YKPN#40205 bezoeker flags toegevoegd aan zoek criteria en lijsten

svn path=/Website/trunk/; revision=34928
This commit is contained in:
2017-08-14 10:21:14 +00:00
parent 1963f0ab9f
commit ab1e559a72
9 changed files with 191 additions and 30 deletions

View File

@@ -514,6 +514,8 @@ bez =
}
bresult.canChange &= bresult.canReadAny; // Dat is toch wel het minste
bresult.canWriteFlags = bresult.canWrite("WEB_BEZBOF") || bresult.canWrite("WEB_BEZFOF"); // Kan ik flags aanpassen
return bresult;
},
default_actie: function ()

40
APPL/BEZ/bez_flag.asp Normal file
View File

@@ -0,0 +1,40 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
verhoog de status van de flag met 1.
*/ %>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="bez.inc" -->
<%
protectRequest.validateToken();
var bez_key = getFParamInt("bez_key");
var afspr_key = getFParamInt("afspr_key");
var flagkey = getFParamInt("flagkey");
var bfe = bez.func_enabled_afspraak(afspr_key);
user.auth_required_or_abort(bfe.canWriteFlags);
var result = {};
flagkey += 1;
flagkey = flagkey % S("bez_bezoekers_flags"); // cycle door de waarden {0, 1, ... , (S('bez_bezoekers_flags')-1)}.
var updatesql = "UPDATE bez_bezoekers"
+ " SET bez_bezoekers_flag = " + flagkey
+ " WHERE bez_bezoekers_key = " + bez_key;
Oracle.Execute(updatesql);
result.success = true;
result.bez_key = bez_key;
result.newflag = flagkey; // Het nieuwe volgnummer van de bezoeker vlaggetjes.
Response.Write(JSON.stringify(result));
%>

View File

@@ -81,6 +81,7 @@ function bez_list(pautfunction, params)
// params.bezInside : boolean (true | false)
// params.bezDepart : boolean (true | false)
// params.bezClosed : boolean (true | false)
// params.flags : intArray [flagkeys {0-9}]
// params.tiny : boolean (true | false) voor als de afspraakgegevens niet hoeven
// params.mobile : boolean (true | false)
@@ -127,6 +128,7 @@ function bez_list(pautfunction, params)
var bezInside = params.bezInside;
var bezDepart = params.bezDepart;
var bezClosed = params.bezClosed;
var flags = params.flags;
var withflex = params.withflex;
var anyflex = false;
@@ -224,6 +226,7 @@ function bez_list(pautfunction, params)
+ ", b.bez_bezoekers_out "
+ ", l.alg_locatie_omschrijving loc_omschr"
+ ", b.bez_bezoekers_key bez_key"
+ ", b.bez_bezoekers_flag"
+ ", COALESCE(rd.res_rsv_deel_key, 0) rsv_deel_key"
+ ", b.bez_bezoekers_pasnr badgenr"
+ ", a.bez_afspraak_datum" // just for sorting
@@ -530,6 +533,25 @@ function bez_list(pautfunction, params)
+ " OR UPPER(b.bez_bezoekers_pasnr) LIKE" + wildsearchtext + ")";
}
if (!afspr_key && flags && flags.length > 0 && flags.length < S("bez_bezoekers_flags"))
{
var filterNull = false;
for (var i = 0; i < flags.length; i++)
{
if (flags[i] === 0)
{
filterNull = true;
}
}
sql += " AND (b.bez_bezoekers_flag IN (" + flags.join(",") + ")";
if (filterNull)
sql += " OR b.bez_bezoekers_flag IS NULL";
sql += ")";
}
if (!afspr_key && host_key)
sql += " AND a.bez_afspraak_host_key = " + host_key;
@@ -701,9 +723,9 @@ function bez_list(pautfunction, params)
+ " ORDER BY 1";
}
/******************************************
* General Callback functies ResultsetTable
*****************************************/
/********************************************
* General Callback functies ResultsetTable *
********************************************/
function fnrowClass(oRs)
{
@@ -969,6 +991,34 @@ function bez_list(pautfunction, params)
);
}
function fncolFlags(oRs)
{
var bez_key = oRs("bez_key").Value;
var afspr_key = oRs("afspr_key").Value;
var flagkey = oRs("bez_bezoekers_flag").Value || 0;
var ttl = L("lcl_bez_flag" + flagkey);
var displ = "";
if (print)
{
if (flagkey != 0) displ = safe.html(ttl); // else blijft-ie gewoon leeg
}
else if (excel) // dan gewoon maar de code, handig groeperen
{
displ = flagkey||"";
}
else // maak er dan nog leuke plaatjes van
{
var flagIcon = flagkey == 0 ? "fa-circle-o" : "fa-circle";
// Met hidden flagkey voor sortering. 999 zorgt dat bij 1 keer sorteren de gevlagde direct bovenaan staan
displ = "<div " + ((urole == "bo" || urole == "fo") ? "onclick='toggleBezFlag(event, "+ afspr_key +", "+ bez_key +");'":"")
+ " title='"+safe.htmlattr(ttl)+"'>"
+ "<i id='bezflagimg"+bez_key+"' flagkey='"+flagkey+"' class='fa "+flagIcon+" bezflag"+flagkey+"'></i>"
+ "<span style='display:none'>"+(flagkey||999)+"</span></div>";
}
return displ;
}
/**********************************************
* End general callback functies ResultsetTable
*********************************************/
@@ -1045,6 +1095,11 @@ function bez_list(pautfunction, params)
// Kolommen
if (!groupbez || groupbez == 99)
{
// Flags
if (S("bez_bezoekers_flags") > 0 && !frontend)
rst.addColumn(new Column({caption: I("fa-circle"), content: fncolFlags, align: "center"}));
if (backo) {
var captionResOk = "<i class='fa fa-sign-in fa-lg'></i>";
rst.addColumn(new Column({caption: (outputmode == 0 ? captionResOk : L("lcl_vis_inside")), content: fncolRegVisit, align: "center"}));

View File

@@ -204,4 +204,34 @@ function SaveBadge(bez_key, badgenr)
data,
FcltCallback,
"json");
}
function toggleBezFlag(evt, afspr_key, bez_key)
{
FcltMgr.stopPropagation(evt);
var flagkey = $('#bezflagimg'+bez_key).attr('flagkey');
var data = { afspr_key: afspr_key
, bez_key : bez_key
, flagkey : flagkey
};
protectRequest.dataToken(data);
$.post("../bez/bez_flag.asp"
, data
, FcltCallbackAndThen(setBezFlag)
, "json"
);
}
function setBezFlag(data)
{ // Zet de flag en het volgnummer van de flag.
var bez_key = data.bez_key;
var flagkey = data.newflag;
var flagimg = 'fa fa-circle bezflag'+flagkey;
$('#bezflagimg'+bez_key).attr('flagkey', flagkey);
$('#bezflagimg'+bez_key).attr('class', flagimg);
$('#bezflagimg'+bez_key).parent().attr('title', L("lcl_bez_flag" + flagkey));
$('#bezflagimg'+bez_key).next().text(flagkey||999); // Hidden span voor sorteren
$('#beztable th').removeClass('sorttable_sorted sorttable_sorted_reverse'); // sortable cache't namelijk
}

View File

@@ -208,7 +208,29 @@ var authparams = user.checkAutorisation(autfunction);
label: L("lcl_BEZ_group")
});
} %>
}
if (!frontend && S("bez_bezoekers_flags") > 1) // Flags checkboxen -->
{
%>
<tr>
<td class="label"><label><%=L("lcl_bez_flags")%>:&nbsp;</label></td>
<td id="bezFlags">
<% for (flagkey=0; flagkey < S("bez_bezoekers_flags"); flagkey++)
{
if (flagkey == 0)
{
%><label for="flag0"><input type="checkbox" name="flag0" id="flag0" checked>&nbsp;<%=safe.html(L("lcl_bez_flag0"))%></label><br>
<% }
else
{
%><label for="flag<%=flagkey%>"><input type="checkbox" name="flag<%=flagkey%>" id="flag<%=flagkey%>" checked><i class="fa fa-circle bezflag<%=flagkey%> bezs"></i>&nbsp;<%=safe.html(L("lcl_bez_flag"+flagkey))%></label><br>
<% }
} %>
</td>
</tr>
<% } %>
</table>
</td><!-- end column 1 -->
@@ -242,33 +264,33 @@ var authparams = user.checkAutorisation(autfunction);
secsearch: 4, // verdieping en hoger
whenEmpty: L("lcl_search_generic") // want filter
});
sql = "SELECT bez_actie_key"
+ " , " + lcl.xsqla('bez_actie_omschrijving', 'bez_actie_key')
+ " FROM bez_actie"
+ " WHERE bez_actie_verwijder IS NULL"
+ " ORDER BY bez_actie_key";
var sqlcnt = "SELECT COUNT ( * ) nraction"
+ " FROM (" + sql + ")";
var oRs2 = Oracle.Execute(sqlcnt);
var nractions = oRs2("nraction").Value;
oRs2.close();
if (nractions > 1)
{
if (nractions > 1)
{
FCLTselector("actie",
sql,
{ initKey: action_key,
trclass:"primsearch noxd",
label: L("lcl_action"),
emptyOption: (action_key == -1? L("lcl_all") : null),
emptyOption: (action_key == -1? L("lcl_all") : null),
readonly: action_key > -1
}
)
)
}
}
}
if (!fronto || minfo)
{
// <!-- Aanvrager -->

View File

@@ -53,6 +53,14 @@ var bezInside = (getQParamInt("bezInside", 0) == 1); // Binnen
var bezDepart = (getQParamInt("bezDepart", 0) == 1); // Vertrokken
var bezClosed = (getQParamInt("bezClosed", 0) == 1); // Verwerkt
// Flags
var flags = [];
for (flagkey=0; flagkey < S("bez_bezoekers_flags"); flagkey++)
{
if (getQParam("flag" + flagkey, "off") == "on")
flags.push(flagkey);
}
var autfunction = "";
switch(urole)
{
@@ -89,6 +97,7 @@ bez_list ( autfunction,
bezInside: bezInside,
bezDepart: bezDepart,
bezClosed: bezClosed,
flags: flags,
withflex: true,
contactonly: getQParamInt("contactonly", 0)
}

View File

@@ -210,7 +210,8 @@ var urlMail = "../shared/queuemail.asp?pcode=BEZMAI&defemail_key=" + bez_afspraa
{
BLOCK_START("bezBezoekers", L("lcl_vis_visitors"));
bez_list("*", {afspr_key: afspr_key,
bez_list("*", {urole : urole,
afspr_key: afspr_key,
tiny: true,
noPrint: true,
noHeader: true, // die hebben we zelf al gedaan

View File

@@ -621,14 +621,11 @@ function mld_list (pautfunction, params)
}
else // maak er dan nog leuke plaatjes van
{
if (flagkey == 0)
var flagimg = "<i id='mldflagimg"+mldkey+"' flagkey='0' class='fa fa-circle-o mldflag"+flagkey+"'>";
else
var flagimg = "<i id='mldflagimg"+mldkey+"' flagkey='"+flagkey+"' class='fa fa-circle mldflag"+flagkey+"'>";
var flagIcon = flagkey == 0 ? "fa-circle-o" : "fa-circle";
// Met hidden flagkey voor sortering. 999 zorgt dat bij 1 keer sorteren de gevlagde direct bovenaan staan
displ = "<div " + ((urole == "bo" || urole == "fo") ? "onclick='toggleMldFlag(event, "+ mldkey +");'":"")
+ " title='"+safe.htmlattr(ttl)+"'>"
+ flagimg
+ "<i id='mldflagimg"+mldkey+"' flagkey='"+flagkey+"' class='fa "+flagIcon+" mldflag"+flagkey+"'></i>"
+ "<span style='display:none'>"+(flagkey||999)+"</span></div>";
}
return displ;

View File

@@ -1597,6 +1597,10 @@ border-spacing: 1px;
.opdrflag3,.opdrflag4,.opdrflag5,
.opdrflag6,.opdrflag7,.opdrflag8,
.opdrflag9,
.bezflag0,.bezflag1,.bezflag2,
.bezflag3,.bezflag4,.bezflag5,
.bezflag6,.bezflag7,.bezflag8,
.bezflag9,
.resflag0,.resflag1,.resflag2,
.resflag3,.resflag4,.resflag5,
.resflag6,.resflag7,.resflag8,
@@ -1604,18 +1608,19 @@ border-spacing: 1px;
font-size: 1.3em;
vertical-align: middle;
}
.mldflag0, .resflag0, .opdrflag0 { color: #eee;}
.mldflag1, .resflag1, .opdrflag1 { color: #4d4d4d; }
.mldflag2, .resflag2, .opdrflag2 { color: #f15854; }
.mldflag3, .resflag3, .opdrflag3 { color: #ffd600; }
.mldflag4, .resflag4, .opdrflag4 { color: #5da5da; }
.mldflag5, .resflag5, .opdrflag5 { color: #60bd68; }
.mldflag6, .resflag6, .opdrflag6 { color: #673ab7; }
.mldflag7, .resflag7, .opdrflag7 { color: #faa43a; }
.mldflag8, .resflag8, .opdrflag8 { color: #b276b2; }
.mldflag9, .resflag9, .opdrflag9 { color: #b2912f; }
.mlds, .ress, .opdrs { /* small flags for search use*/
.mldflag0, .resflag0, .opdrflag0, .bezflag0 { color: #eee;}
.mldflag1, .resflag1, .opdrflag1, .bezflag1 { color: #4d4d4d; }
.mldflag2, .resflag2, .opdrflag2, .bezflag2 { color: #f15854; }
.mldflag3, .resflag3, .opdrflag3, .bezflag3 { color: #ffd600; }
.mldflag4, .resflag4, .opdrflag4, .bezflag4 { color: #5da5da; }
.mldflag5, .resflag5, .opdrflag5, .bezflag5 { color: #60bd68; }
.mldflag6, .resflag6, .opdrflag6, .bezflag6 { color: #673ab7; }
.mldflag7, .resflag7, .opdrflag7, .bezflag7 { color: #faa43a; }
.mldflag8, .resflag8, .opdrflag8, .bezflag8 { color: #b276b2; }
.mldflag9, .resflag9, .opdrflag9, .bezflag9 { color: #b2912f; }
.mlds, .ress, .opdrs, .bezs { /* small flags for search use*/
font-size: 1em;
vertical-align: inherit;
}