AAIT#76202 Verbeteringen flow reserveringen op mobile

svn path=/Website/trunk/; revision=62217
This commit is contained in:
Erik Groener
2023-10-17 08:49:55 +00:00
parent f2f8a07888
commit 81947ea020
4 changed files with 118 additions and 79 deletions

View File

@@ -474,13 +474,27 @@ var subject = (isReservering
function bez_submit()
{
// Gegevens van bezoekers aanpassen en afsluiten
var submit_url = "../bez/bez_edit_bezoekers_save.asp?urole=fe&mobile=1&afspr_key=<%=afs_key%>"
+ "&rsv_ruimte_key=<%=rsv_ruimte_key%>";
$.post( submit_url
, $("form[name=afspraak]").serialize()
, McltCallbackRefresh
, "json");
// Gegevens van bezoekers aanpassen en afsluiten
var submit_url = "../bez/bez_edit_bezoekers_save.asp?urole=fe&mobile=1&afspr_key=<%=afs_key%>"
+ "&rsv_ruimte_key=<%=rsv_ruimte_key%>";
$.post( submit_url
, $("form[name=afspraak]").serialize()
, McltCallbackAndThenAlways(bez_submit_callback) //McltCallbackRefresh
, "json");
}
function bez_submit_callback(json)
{
var rsv_key = <%=rsv_ruimte_key%>;
if (rsv_key != -1)
{ // is reservering
purl = "../pda/reservering.asp?rsv_ruimte_key=" + rsv_key;
window.location.href = purl;
}
else
{ // is afspraak
McltCallbackHome(json);
}
}
function bez_submit_add()
@@ -872,7 +886,14 @@ var subject = (isReservering
if (this_bez.canDelete)
BUTTON(L("lcl_delete"), {click: "bez_delete()", dataicon: "fa fa-trash-alt", singlepress: (afs_key == -1)});
}
BUTTON((afs_key>-1 ? L("lcl_submit") : L("lcl_mobile_bezoek")), {click: "afs_submit(false)", dataicon: (afs_key>-1 ? "fa-fclt-save" : "fa fa-users"), singlepress: (afs_key == -1)});
if (isReservering)
{
BUTTON(L("lcl_mobile_save_reservation"), {click: "afs_submit(false)", dataicon: "fa-fclt-save"});
}
else
{
BUTTON((afs_key>-1 ? L("lcl_mobile_save_home") : L("lcl_mobile_bezoek")), {click: "afs_submit(false)", dataicon: (afs_key>-1 ? "fa-fclt-save" : "fa fa-users"), singlepress: (afs_key == -1)});
}
}
CONTROLGROUP_END();
IFACE.FORM_END();

View File

@@ -125,7 +125,14 @@ var subject = isReservering
function bez_submit_callback(json)
{
window.location.href = "afspraak.asp?afs_key=" + json.afspraak_key + "&toaster=1";
var res_rsv_key = <%=rsv_ruimte_key%>;
var purl = "afspraak.asp?";
if (res_rsv_key > 0)
purl += "rsv_ruimte_key=" + res_rsv_key; // Om van afspraak weer terug naar reservering te kunnen!
else
purl += "afs_key=" + json.afspraak_key;
window.location.href = purl + "&toaster=1";
}
function validateBezoekers()

View File

@@ -481,26 +481,19 @@ if (!rsv.verwijderd) // geen script nodig als reservering verwijderd is.
%>
<script type="text/javascript">
function res_submit_callback(json)
{ // Alleen nog de mogelijk om tijdstippen en zaal aan te passen.
// Nog geen nieuwe reservering aanmaken en qr code.
if (json.rsv_ruimte_key > 0)
{
if ("<%=restype%>" == "C")
{ // Verder button geklikt (=opslaan nieuwe reservering voor catering).
// Ga gelijk door naar het scherm Catering.
var url = "<%=rooturl%>/appl/pda/catering.asp?urole=fe&isnew=1"
+ "&rsv_ruimte_key="+json.rsv_ruimte_key
+ (<%=rsv.artikel_key%> > -1 ? "&artikel_key=<%=rsv.artikel_key%>" : "");
window.location.href = url;
function windowLocation(url)
{ // iOS fix to force refresh after back(), otherwise the date-from is messed up
<%
var agent = "" + Request.ServerVariables("HTTP_USER_AGENT");
// Try to find out with some certainty that it is an Ios device
var acknowledgeIos = ((agent.indexOf("Opera Mini") != -1 || agent.indexOf("iPhone") != -1) ? "iOS" : "");
%>
if ("<%=acknowledgeIos%>" == "iOS")
{
setTimeout(function() { location.reload(); }, 250);
}
else
{ // Opslaan button geklikt. Er hoeft niet gerefreshed te worden. Er kan direct weer gewijzigd worden
jqToast(L("lcl_res_is_resnew_nr").format(json.reservering_key+"/"+json.reservering_volgnr));
window.location.href = "<%=rooturl%>/appl/pda/reservering.asp"+ "?rsv_ruimte_key="+json.rsv_ruimte_key;
}
}
};
window.location.href = url;
}
async function res_submit()
{
@@ -533,6 +526,36 @@ if (!rsv.verwijderd) // geen script nodig als reservering verwijderd is.
return true;
}
function res_submit_callback(json)
{ // Alleen nog de mogelijk om tijdstippen en zaal aan te passen.
// Nog geen nieuwe reservering aanmaken en qr code.
if (json.rsv_ruimte_key > 0)
{
if ("<%=restype%>" == "C")
{ // Verder button geklikt (=opslaan nieuwe reservering voor catering).
// Ga gelijk door naar het scherm Catering.
var url = "<%=rooturl%>/appl/pda/catering.asp?urole=fe&isnew=1"
+ "&rsv_ruimte_key="+json.rsv_ruimte_key
+ (<%=rsv.artikel_key%> > -1 ? "&artikel_key=<%=rsv.artikel_key%>" : "");
window.location.href = url;
}
else
{
if (json.isnew)
{ // Registreer button geklikt. Er hoeft niet gerefreshed te worden.
// Er kan direct weer gewijzigd worden of toevoegen cateing/bezoekers.
jqToast(L("lcl_res_is_resnew_nr").format(json.reservering_key+"/"+json.reservering_volgnr));
window.location.href = "<%=rooturl%>/appl/pda/reservering.asp"+ "?rsv_ruimte_key="+json.rsv_ruimte_key;
}
else
{ // Opslaan en terug naar Home.
jqToast(L("lcl_mobile_saved"));
McltCallbackHome(json);
}
}
}
};
function res_delete()
{
if (confirm(L("lcl_res_confirm_delete_afspraak")))
@@ -546,6 +569,18 @@ if (!rsv.verwijderd) // geen script nodig als reservering verwijderd is.
}
}
async function res_vis()
{
if (!await validateForm("res"))
return false;
$.post( $("form[name=res]")[0].action
, $("form[name=res]").serialize()
, McltCallbackAndThenAlways(res_vis_callback)
, "json");
return false;
}
function res_vis_callback(json)
{
<% // Direct door naar bezoekers toevoegen als er al een afspraak bij deze reservering bestaat.
@@ -563,18 +598,6 @@ if (!rsv.verwijderd) // geen script nodig als reservering verwijderd is.
windowLocation("<%=purl%>"); // iOS fix to force refresh after back()
}
async function res_vis()
{
if (!await validateForm("res"))
return false;
$.post( $("form[name=res]")[0].action
, $("form[name=res]").serialize()
, McltCallbackAndThenAlways(res_vis_callback)
, "json");
return false;
}
async function res_cat()
{
// Eerst wijzigingen in de reservering opslaan
@@ -587,30 +610,15 @@ if (!rsv.verwijderd) // geen script nodig als reservering verwijderd is.
, "json");
return false;
}
// iOS fix to force refresh after back(), otherwise the date-from is messed up
function windowLocation(url)
{
<%
var agent = "" + Request.ServerVariables("HTTP_USER_AGENT");
// Try to find out with some certainty that it is an Ios device
var acknowledgeIos = ((agent.indexOf("Opera Mini") != -1 || agent.indexOf("iPhone") != -1) ? "iOS" : "");
%>
if ("<%=acknowledgeIos%>" == "iOS")
{
setTimeout(function() { location.reload(); }, 250);
}
window.location.href = url;
}
function res_cat_callback(json)
{
purl = "<%=rooturl%>/appl/pda/catering.asp?urole=fe&rsv_ruimte_key="+json.rsv_ruimte_key;
windowLocation(purl); // iOS fix to force refresh after back()
// window.location.href = purl;
}
// Process de ruimte-data die van de Ajax terugkomt.
function process_res_ruimte_info(data)
{
{ // Process de ruimte-data die van de Ajax terugkomt.
if (data.default_opstel_key > 0)
$("#ruimte_opstel").val(data.default_opstel_key);
else
@@ -900,14 +908,12 @@ else
CONTROLGROUP_START();
if (this_res.canChange || rsv_ruimte_key == -1)
BUTTON((rsv_ruimte_key > -1 ? L("lcl_submit") : (restype == "C" ? L("lcl_next") : L("lcl_newsubmit")))
BUTTON((rsv_ruimte_key > -1 ? L("lcl_mobile_save_home") : (restype == "C" ? L("lcl_next") : L("lcl_newsubmit")))
, { click: "res_submit()"
, dataicon: "fa-fclt-save"
, singlepress: (rsv_ruimte_key == -1)
}
);
if (this_res.canDelete)
BUTTON(L("lcl_delete"), {click: "res_delete()", dataicon: "fa fa-trash-alt", singlepress: (rsv_ruimte_key == -1)});
if (this_res.canChange && rsv_ruimte_key > -1)
{
var sql_fo_catering_scope = "";
@@ -957,31 +963,35 @@ else
oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
BUTTON(L("lcl_catering") , {click: "res_cat()", dataicon: "fa fa-shopping-bag"});
BUTTON(L("lcl_mobile_save_catering"), {click: "res_cat()", dataicon: "fa fa-shopping-bag"});
}
oRs.close();
}
if ((this_res.canChange || rsv.extern_nr) && canHaveBez && rsv_ruimte_key > -1 && rsv.restype == "R")
{
BUTTON(L("lcl_mobile_bezoek"), {click: "res_vis()", dataicon: "fa fa-th"});
BUTTON(L("lcl_mobile_save_visitors"), {click: "res_vis()", dataicon: "fa fa-th"});
}
// Toon meldingenknop als er bijbehorende lopende meldingen zijn en ik die mag zien (kan vast nog scherper)
if (user.checkAutorisation( "WEB_MLDBOF", true)) {
// De prijs is wel dat ik mld.inc moet includen..
var perform=false; // ???? JGL: MLD.INC gebruikt deze illegaal globaal
var frontend=false;
var tsql = "SELECT COUNT(m.mld_melding_key), MAX(m.mld_melding_key)"
+ mld.getfromwherelist_sql("WEB_MLDBOF", {"rsv_ruimte_key": rsv_ruimte_key})
+ " AND m.mld_melding_status IN (0,2,4,7)";
toRs = Oracle.Execute(tsql);
if (toRs(0).value == 1) { // eentje slechts, dan naar de details; max is vanzelfsprekend die ene
BUTTON(L("lcl_mobile_meldingen")+ " (1)", {linkid: rooturl+"/appl/pda/melding.asp?mld_key="+toRs(1).value , dataicon: "fa fa-exclamation-circle", dataajax: "false"});
} else if (toRs(0).value > 0) { // meerdere, dan naar lijst
// Lijst tonen van alle meldingen met dezelfde rsv_ruimte_key (reservering).
BUTTON(L("lcl_mobile_meldingen") + " (" + toRs(0).value+")", {linkid: rooturl + "/appl/pda/mld_list.asp?rsv_ruimte_key=" + rsv_ruimte_key, dataicon: "fa fa-exclamation-circle", dataajax: "false"});
}
toRs.Close();
}
if (this_res.canDelete)
{
BUTTON(L("lcl_delete"), {click: "res_delete()", dataicon: "fa fa-trash-alt", singlepress: (rsv_ruimte_key == -1)});
}
// Toon meldingenknop als er bijbehorende lopende meldingen zijn en ik die mag zien (kan vast nog scherper)
if (user.checkAutorisation( "WEB_MLDBOF", true)) {
// De prijs is wel dat ik mld.inc moet includen..
var perform=false; // ???? JGL: MLD.INC gebruikt deze illegaal globaal
var frontend=false;
var tsql = "SELECT COUNT(m.mld_melding_key), MAX(m.mld_melding_key)"+ mld.getfromwherelist_sql("WEB_MLDBOF", {"rsv_ruimte_key": rsv_ruimte_key})
+ " AND m.mld_melding_status IN (0,2,4,7)";
toRs = Oracle.Execute(tsql);
if (toRs(0).value == 1) { // eentje slechts, dan naar de details; max is vanzelfsprekend die ene
BUTTON(L("lcl_mobile_meldingen")+ " (1)", {linkid: rooturl+"/appl/pda/melding.asp?mld_key="+toRs(1).value , dataicon: "fa fa-exclamation-circle", dataajax: 'false'});
} else if (toRs(0).value > 0) { // meerdere, dan naar lijst
// Lijst tonen van alle meldingen met dezelfde rsv_ruimte_key (reservering).
BUTTON(L("lcl_mobile_meldingen") + " (" + toRs(0).value+")", {linkid: rooturl + "/appl/pda/mld_list.asp?rsv_ruimte_key=" + rsv_ruimte_key, dataicon: "fa fa-exclamation-circle", dataajax: 'false'});
}
toRs.Close();
}
CONTROLGROUP_END();
IFACE.FORM_END();
%>

View File

@@ -922,6 +922,7 @@ if (!custfunc.res_postsave(rsv_ruimte_key, pResult))
}
doneParams = { rsv_ruimte_key: rsv_ruimte_key,
isnew: isNew,
park_voor: Pvoor,
park_na: Pna,
reservering_key: reservering_key,