HOUT#27908 Extra mogelijkheid kleur toevoegen in reserveringen planbord (bolletjes)

svn path=/Website/trunk/; revision=20640
This commit is contained in:
Erik Groener
2014-02-14 10:00:12 +00:00
parent acf32a9ed8
commit dbe60c5c77
19 changed files with 153 additions and 9 deletions

BIN
APPL/Pictures/resflag0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
APPL/Pictures/resflag1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

BIN
APPL/Pictures/resflag2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

BIN
APPL/Pictures/resflag3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

BIN
APPL/Pictures/resflag4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

BIN
APPL/Pictures/resflag5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

BIN
APPL/Pictures/resflag6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

BIN
APPL/Pictures/resflag7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
APPL/Pictures/resflag8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
APPL/Pictures/resflag9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

View File

@@ -393,6 +393,7 @@ res = {
return statustekst;
},
// Controleert/bepaalt de rechten op het 'Algemeen' blok bij een (deel)reservering
// Altijd worden de disciplines van de catering/voorziening bekeken
// Voor restype=="R" wordt ook de discipline van de RES_RUIMTE bekeken
@@ -1088,7 +1089,7 @@ res = {
+ " , rv.res_rsv_ruimte_tot"
+ " , rv.res_rsv_ruimte_dirtlevel"
+ " , res_ruimte_key_1"
+ " , rv.res_status_fo_key, rv.res_reservering_key, res_rsv_ruimte_volgnr, rv.res_rsv_ruimte_key, res_ruimte_key_2"
+ " , rv.res_status_fo_key, rv.res_rsv_ruimte_flag, rv.res_reservering_key, res_rsv_ruimte_volgnr, rv.res_rsv_ruimte_key, res_ruimte_key_2"
+ " , rv.res_rsv_ruimte_host_key"
+ " , rv.res_rsv_ruimte_contact_key"
+ " , rv.res_rsv_ruimte_omschrijving"
@@ -1134,6 +1135,7 @@ res = {
var data = { res_van : new Date(oRs("res_rsv_ruimte_van").value),
res_tot : new Date(oRs("res_rsv_ruimte_tot").value),
fo_status : oRs("res_status_fo_key").value,
flag_status : oRs("res_rsv_ruimte_flag").value||0,
na_koppel : (oRs("res_ruimte_key_1").value == oRs("res_ruimte_key_2").value)? 0 : 1,
//aantalP : oRs("aantalP").value, // doen we nog niets mee
dirtlevel : oRs("res_rsv_ruimte_dirtlevel").value

View File

@@ -122,6 +122,7 @@ FCLTHeader.Requires({plugins: ["jQuery", "kenmerk"],
reservering_key : -1,
status_fo_key : urole=='fo'?S("res_default_fo_status_key"):2,
status_bo_key : 2, // default 2, ingevoerd
status_flag : 0,
activiteit_key : activiteit_key,
srtactiviteit_key : srtact,
alg_ruimte_key : getQParamInt("alg_ruimte_key", S("res_default_alg_ruimte_key")),
@@ -342,6 +343,7 @@ FCLTHeader.Requires({plugins: ["jQuery", "kenmerk"],
sql = "SELECT rr.res_reservering_key, "
+ " rrr.res_status_fo_key, "
+ " rrr.res_status_bo_key, "
+ " rrr.res_rsv_ruimte_flag, "
+ " rrr.res_rsv_ruimte_van, "
+ " rrr.res_rsv_ruimte_tot, "
+ " rrr.res_activiteit_key, "
@@ -394,6 +396,7 @@ FCLTHeader.Requires({plugins: ["jQuery", "kenmerk"],
reservering_key : oRs("res_reservering_key").value,
status_fo_key : oRs("res_status_fo_key").value,
status_bo_key : oRs("res_status_bo_key").value||2, // default 2, ingevoerd
status_flag : oRs("res_rsv_ruimte_flag").value||0,
activiteit_key : oRs("res_activiteit_key").value,
srtactiviteit_key : srtact,
rsv_ruimte_van : new Date(oRs("res_rsv_ruimte_van").value),
@@ -475,6 +478,16 @@ FCLTHeader.Requires({plugins: ["jQuery", "kenmerk"],
rrr.alg_verdieping_key = oRs("alg_verdieping_key").Value;
rrr.alg_ruimte_key = oRs("alg_ruimte_key").Value;
}
// Script zorgt ervoor dat ook bij het openen van het scherm de image achter het label komt te staan.
%>
<script type="text/javascript">
$(document).ready(function()
{
OnChangeSubstatus();
});
</script>
<%
}
lcl.set_dialect(srtact, "RES_SRTACTIVITEIT_KEY");
@@ -747,6 +760,12 @@ FCLTHeader.Requires({plugins: ["jQuery", "kenmerk"],
autosetEindtijd();
}
function OnChangeSubstatus()
{
var i = $("#resflag").val();
$('label[for="resflag"]').html(L("lcl_res_flags") + ":&nbsp;" + " " + "<img src='../Pictures/resflag"+i+".png'>");
}
function onAfhaalBezorgClick()
{
$("#ab_mode_filtcode").val( $("#afhaal").prop("checked")? "RESA" : "RESB" );
@@ -1069,6 +1088,23 @@ FCLTHeader.Requires({plugins: ["jQuery", "kenmerk"],
}
);
if (S("res_reservering_flags") > 0)
{
flag_array = [];
for (i=0; i<S("res_reservering_flags"); i++)
{
flag_array.push("SELECT "+i+", "+safe.quoted_sql(L("lcl_res_flag"+i))+" FROM DUAL");
}
sql = flag_array.join(" UNION ");
FCLTselector( "resflag"
, sql
, { initKey: rrr.status_flag
, label: L("lcl_res_flags")
, onChange: "OnChangeSubstatus()"
}
);
}
if (S("res_noshow_detailed") == 0 && backo)
{ // Allow editing of No show
CHECKBOXTR(L("lcl_res_no_show"), "", "res_noshow", rrr.rsv_ruimte_noshow, { html: (reado_rsv_ruimte?"disabled":"")});

View File

@@ -279,6 +279,10 @@ var fields = [ { dbs: "res_rsv_ruimte_omschrijving", typ: "varchar", frm: "des
{ dbs: "res_rsv_ruimte_telefoon", typ: "varchar", frm: "phone" } // MGE: Wordt volgens mij niet gebruikt!!
];
if (S("res_reservering_flags") > 0)
fields.push({ dbs: "res_rsv_ruimte_flag", typ: "number", frm: "resflag" /* notrack */ });
// Afhalen of bezorgen alleen voor CV reserveringen
if (restype == "CV")
{

View File

@@ -151,6 +151,7 @@ function res_list (pautfunction, params)
var res_closed = params.res_closed;
var sortout = params.sortout;
var groupres = params.groupres;
var flags = params.flags||[];
var roa_arr = new Array(); // array met *alle* disciplines
roa_arr = roa_arr.concat(room_key_arr);
@@ -214,10 +215,10 @@ function res_list (pautfunction, params)
+ " (SELECT *"
+ " FROM res_rsv_ruimte WHERE 1=1";
if (res_key)
theResrsv += " AND res_reservering_key = " + res_key
else
{ // If there is no res_key then determine sql_date
if (res_key)
theResrsv += " AND res_reservering_key = " + res_key
else
{ // If there is no res_key then determine sql_date
// If from and to are given both are used
// If only one of from and to are give, this is used as a (1) day, not an half open interval
// 20-10-2009 9:46:28/PF
@@ -250,7 +251,12 @@ function res_list (pautfunction, params)
if (host_key)
theResrsv += " AND res_rsv_ruimte_host_key = " + host_key;
}
// Flags
if (params.flags && params.flags.length > 0 && params.flags.length < S("res_reservering_flags"))
{
theResrsv += " AND res_rsv_ruimte_flag IN (" + params.flags.join(",") + ")";
}
}
if (frontend) // Altijd de FE-autorisatie erop
{
@@ -283,6 +289,7 @@ function res_list (pautfunction, params)
+ ", rm.res_rsv_ruimte_key"
+ ", rm.res_rsv_ruimte_omschrijving descr"
+ ", rm.res_status_fo_key"
+ ", rm.res_rsv_ruimte_flag"
+ ", rm.res_rsv_ruimte_dirtlevel dirtlevel"
+ "," + lcl.xsql('r.res_ruimte_nr', 'r.res_ruimte_key') + " waar"
+ ", res_rsv_ruimte_van datumvan"
@@ -418,6 +425,7 @@ function res_list (pautfunction, params)
+ ", rvarr.res_rsv_ruimte_key"
+ ", res_rsv_ruimte_omschrijving descr"
+ ", rvarr.res_status_fo_key"
+ ", rvarr.res_rsv_ruimte_flag"
+ ", rd.res_rsv_deel_dirtlevel dirtlevel"
+ ", alg_ruimte_aanduiding waar"
+ ", res_rsv_ruimte_van datumvan"
@@ -521,6 +529,7 @@ function res_list (pautfunction, params)
+ ", rvarr.res_rsv_ruimte_key"
+ ", res_rsv_ruimte_omschrijving descr"
+ ", rvarr.res_status_fo_key"
+ ", rvarr.res_rsv_ruimte_flag"
+ ", ra.res_rsv_artikel_dirtlevel dirtlevel"
+ ", alg_ruimte_aanduiding waar"
+ ", ra.res_rsv_artikel_levering datumvan"
@@ -575,6 +584,7 @@ function res_list (pautfunction, params)
sql_select = " rec2.res_reservering_key"
+ ", rec2.descr"
+ ", rec2.res_status_fo_key"
+ ", rec2.res_rsv_ruimte_flag"
+ ", rec2.dirtlevel"
+ ", rec2.waar"
+ ", MIN(rec2.datumvan) datumvan"
@@ -604,6 +614,7 @@ function res_list (pautfunction, params)
sql_groupby = " rec2.res_reservering_key"
+ ", rec2.descr"
+ ", rec2.res_status_fo_key"
+ ", rec2.res_rsv_ruimte_flag"
+ ", rec2.dirtlevel"
+ ", rec2.waar"
+ ", rec2.contact"
@@ -619,7 +630,8 @@ function res_list (pautfunction, params)
+ ", rec2.res_rsv_ruimte_key"
+ ", rec2.res_srtactiviteit_prefix";
if (fronto) {
if (fronto)
{
if (!res_key && sql_onrgoed != "")
sqlA += sql_onrgoed;
@@ -659,6 +671,7 @@ function res_list (pautfunction, params)
+ ", res_rsv_ruimte_key"
+ ", descr"
+ ", res_status_fo_key"
+ ", res_rsv_ruimte_flag"
+ ", MAX(dirtlevel) dirtlevel"
+ ", waar"
+ ", datumvan"
@@ -679,6 +692,7 @@ function res_list (pautfunction, params)
+ ", res_rsv_ruimte_key"
+ ", descr"
+ ", res_status_fo_key"
+ ", res_rsv_ruimte_flag"
+ ", waar"
+ ", datumvan"
+ ", datumtot"
@@ -811,6 +825,28 @@ function res_list (pautfunction, params)
return res.getfostatustext(oRs("res_status_fo_key").value);
}
function fncolFlags(oRs)
{
var reskey = oRs("res_reservering_key").Value;
var flagkey = oRs("res_rsv_ruimte_flag").Value || 0;
var displ = flagkey||"";
if (!excel) // maak er dan nog leuke plaatjes van
{
// Je hoeft er niet op te kunnen klikken, dus voor flag0 niets tonen.
if (flagkey != 0)
{
var flagimg = "<img id='resflagimg"+reskey+"' flagkey='"+flagkey+"' src='../Pictures/resflag"+flagkey+".png'>";
// Met hidden flagkey voor sortering. 999 zorgt dat bij 1 keer sorteren de gevlagde direct bovenaan staan
var ttl = L("lcl_res_flag" + flagkey);
displ = "<div " + " title='"+safe.htmlattr(ttl)+"'>"
+ flagimg
+ "<span style='display:none'>"+(flagkey||999)+"</span></div>";
}
}
return displ;
}
function fnHasVZ(oRs)
{
if (oRs("nrObjects").value > 0)
@@ -856,6 +892,8 @@ function res_list (pautfunction, params)
});
// Kolommen
if (S("res_reservering_flags") > 0)
rst.addColumn(new Column({caption: "o", content: fncolFlags, align: "center"}));
rst.addColumn(new Column({caption: L("lcl_resnr"), content: fncolResNr }));
rst.addColumn(new Column({caption: L("lcl_room_n"), content: "waar", hasActions: true}));
// Compacter op scherm als datefrom==dateto
@@ -954,6 +992,12 @@ function res_list (pautfunction, params)
else if (srtact)
sql_act = " AND ract.res_srtactiviteit_key = " + srtact;
// Flags
if (params.flags && params.flags.length > 0 && params.flags.length < S("res_reservering_flags"))
{
sql_flag = " AND rrr.res_rsv_ruimte_flag IN (" + params.flags.join(",") + ")";
}
if (room_key_arr.length != 0)
sql_room_key = " AND res_discipline_key IN (" + room_key_arr.join(",") + ")";

View File

@@ -175,6 +175,12 @@ function make_plan_regel(room, ar, params, nr_days, hour_px)
}
}
var res_flag = "";
if ((S("res_reservering_flags") > 0) && (ar[ci].flag_status != 0))
{
res_flag = "<img src='../pictures/resflag"+ar[ci].flag_status+".png'>";
}
if (ar[ci].na_koppel == 0 && !not_available && !params.forSelectRoom)
theClass += " click";
@@ -190,7 +196,7 @@ function make_plan_regel(room, ar, params, nr_days, hour_px)
div += " title='" + safe.htmlattr(txt) + "'"
}
div += " style='z-index:"+ci+";left:"+px_start+"px;width:"+px_width+"px;"+theStyleLeft+theStyleRight+"'>"
+"&nbsp;</div>";
+res_flag+"&nbsp;</div>";
html.push("\n"+div);
}
html.push("</div></td>")

View File

@@ -286,6 +286,26 @@ var authparams = user.checkAutorisation(autfunction);
});
} // !frontend
if (S("res_reservering_flags") > 1 && !frontend) // Flags checkboxen -->
{
%>
<tr>
<td class="label"><label><%=L("lcl_res_flags")%>:&nbsp;</label></td>
<td>
<% // Vlag0 heeft dezelfde betekenis als 'geen vlag' en krijgt geen vinkje
for (flagkey=1; flagkey < S("res_reservering_flags"); flagkey++)
{
%>
<label for="flag<%=flagkey%>" title='<%=safe.htmlattr(L("lcl_res_flag"+flagkey))%>'><input type="checkbox" name="flag<%=flagkey%>"><img src='../Pictures/resflag<%=flagkey%>.png'></label>
<%
}
%>
</td>
</tr>
<%
}
if (backo || minfo)
{ %>
<!-- Checkboxen ruimten, voorzieningen en verbruiksartikelen -->

View File

@@ -123,6 +123,14 @@ else
params.res_open = (backo || minfo? res_open : null); // Wordt alleen gebruikt bij bo en mi
params.res_closed = (backo || minfo? res_closed : null); // Wordt alleen gebruikt bij bo en mi
params.res_noshowonly = (getFParam("res_noshowonly", "") == "on"); // Wordt alleen gebruikt bij bo en mi
// Flags
params.flags = [];
for (flagkey=0; flagkey < S("res_reservering_flags"); flagkey++)
{
if (getFParam("flag" + flagkey, "off") == "on")
params.flags.push(flagkey);
}
}
var sortout = getFParamInt("sortout", -1); // Sortering

View File

@@ -339,6 +339,20 @@ hour_px = res.hour_px(width_px-300, nr_days);
<td align="right"><img src="../Pictures/room_na.gif"></td>
<td colspan=3><% = L("lcl_niet_beschikbaar") %></td>
</tr>
<%
if (S("res_reservering_flags") > 1)
{
for (flagIndex=1; flagIndex<S("res_reservering_flags"); flagIndex++)
{
%>
<tr>
<td align="right"><img src="../Pictures/resflag<%=flagIndex%>.png"></td>
<td colspan=3><% = L("lcl_res_flag" + flagIndex) %></td>
</tr>
<% }
}
%>
<% if (urole != 'fe') { %>
<tr>
<td align="right"><img src="../Pictures/cake.png"></td>

View File

@@ -53,6 +53,7 @@ FCLTHeader.Requires({plugins: ["jQuery"]})
+ " res_rsv_ruimte_verwijder, "
+ " rrr.res_status_fo_key, "
+ " rrr.res_status_bo_key, "
+ " rrr.res_rsv_ruimte_flag, "
+ " rrr.res_rsv_ruimte_van, "
+ " rrr.res_rsv_ruimte_tot, "
+ " trunc(rrr.res_rsv_ruimte_tot) - trunc(rrr.res_rsv_ruimte_van) meerdaags, "
@@ -99,6 +100,7 @@ FCLTHeader.Requires({plugins: ["jQuery"]})
rsv_ruimte_verwijder: oRs("res_rsv_ruimte_verwijder").value,
status_fo_key : oRs("res_status_fo_key").value,
status_bo_key : oRs("res_status_bo_key").value || 2, // let op: bij CV is deze NULL
status_flag : oRs("res_rsv_ruimte_flag").value||0,
activiteit_key : oRs("res_activiteit_key").value,
rsv_ruimte_van : new Date(oRs("res_rsv_ruimte_van").value),
rsv_ruimte_tot : new Date(oRs("res_rsv_ruimte_tot").value),
@@ -378,7 +380,15 @@ FCLTHeader.Requires({plugins: ["jQuery"]})
});
}
ROFIELDTR("fldresstatus", L("lcl_status_FO"), res.getfostatustext(rrr.status_fo_key));
if (S("res_reservering_flags") > 0)
{
ROFIELDTR("fld", L("lcl_res_flags")
, L("lcl_res_flag"+rrr.status_flag)
, { html: "style='padding-left: 20px; background-repeat: no-repeat; background-image: url(../Pictures/resflag"+rrr.status_flag+".png)'"
, suppressEmpty: true
}
);
}
BLOCK_END()
BLOCK_START("resUser",L("lcl_res_info"));