AAIT#29734 Deeplinks naar meldingen niet meer per se via bookmark tabel maakt device detectie simpeler

svn path=/Website/trunk/; revision=24663
This commit is contained in:
Jos Groot Lipman
2015-04-02 07:38:41 +00:00
parent a5b5366c45
commit 8bb873bbca
2 changed files with 77 additions and 60 deletions

View File

@@ -22,6 +22,26 @@
<!-- #include file="../Shared/common.inc"-->
<%
var u = getQParam("u");
var known_bookmarks =
{
'afspraak': { gui: 'appl/bez/bez_afspraak.asp?afspr_key=', mob: 'appl/pda/afspraak.asp?afs_key=' },
'bestelling': { gui: 'appl/bes/bes_bestelling.asp?bes_key=', mob: 'appl/pda/bestelling.asp?bes_key=' },
'bestelopdr': { gui: 'appl/bes/bes_opdr.asp?ordernr=' },
'contract': { gui: 'appl/cnt/cnt_contract.asp?cnt_key=', mob: 'appl/pda/contract.asp?cnt_key=' },
'deel': { gui: 'appl/ins/ins_deel.asp?ins_key=', mob: 'appl/pda/ins_deel.asp?ins_key=' },
'factuur': { gui: 'appl/fin/fin_factuur.asp?fin_key=', mob: 'appl/pda/factuur.asp?fin_key=' },
'gebouw': { gui: 'appl/alg/alg_gebouw.asp?key=' },
'locatie': { gui: 'appl/alg/alg_locatie.asp?key=' },
'melding': { gui: 'appl/mld/mld_melding.asp?mld_key=', mob: 'appl/pda/melding.asp?mld_key=' },
'message': { gui: 'appl/msg/msg_message.asp?message_key=' },
'opdracht': { gui: 'appl/mld/mld_opdr.asp?opdr_key=', mob: 'appl/pda/order.asp?opdr_key=' },
'perslid': { gui: 'appl/prs/prs_perslid.asp?prs_key=', mob: 'appl/pda/user_info.asp?prs_key=' },
'reservering': { gui: 'appl/res/res_reservering.asp?rsv_ruimte_key=', mob: 'appl/pda/reservering.asp?rsv_ruimte_key=' },
'ruimte': { gui: 'appl/alg/alg_ruimte.asp?key=', mob: 'appl/pda/ruimte.asp?ruimte_key=' },
'verdieping': { gui: 'appl/alg/alg_verdieping.asp?key='},
'xreservering': { gui: 'appl/res/res_reservering.asp?rsv_ruimte_key='}
}
var keyparam = getQParamInt("k", -1);
// For flexiblity reasons: Literal or runtime parameter(s), just pass through...
var rest = String(Request.ServerVariables("QUERY_STRING")); // Request.ServerVariables("QUERY_STRING") is url-encoded,
@@ -29,75 +49,69 @@
// Strip eventuele leading &fac_id=XXXX er ook af.
rest = rest.substring(rest.indexOf("u=")).substring(("u="+u).length+1);
var sql = "SELECT fac_bookmark_path,"
+ " fac_bookmark_query,"
+ " prs_perslid_key_auth,"
+ " fac_bookmark_unauth_url,"
+ " fac_bookmark_expire,"
+ " fac_bookmark_refreshtime"
+ " FROM fac_bookmark"
+ " WHERE fac_bookmark_id = " + safe.quoted_sql(u);
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
if (u in known_bookmarks)
{
shared.simpel_page(L("lcl_fac_bookmark_unknown"));
}
if (oRs("fac_bookmark_expire").Value != null)
{
var expire = new Date(oRs("fac_bookmark_expire").Value);
if (expire <= new Date)
{
shared.simpel_page(L("lcl_fac_bookmark_expired"));
}
}
var url = oRs("fac_bookmark_path").Value;
var refresher = oRs("fac_bookmark_refreshtime").Value;
if (oRs("prs_perslid_key_auth").Value)
{
Session("fallback_user_key") = oRs("prs_perslid_key_auth").Value; // wordt opgepikt door loginTry.asp
}
else
Session("unauth_url") = oRs("fac_bookmark_unauth_url").Value; // wordt opgepikt door common.asp
var params = oRs("fac_bookmark_query").Value;
if (params)
{
if (keyparam > -1)
{
rest = rest.substring(("k="+keyparam).length+1);
params += keyparam;
}
if (rest)
params += "&" + rest;
if (device.test(device.isDesktop) || device.test(device.isTouch))
url = known_bookmarks[u].gui;
else
url = known_bookmarks[u].mob || known_bookmarks[u].gui;
url = rooturl + "/" + url + keyparam;
}
else
{
if (rest)
params = rest;
}
oRs.Close();
// Als getQParam maar dan uit een string. Altijd null als niet gevonden
// Let op: de query mag niet (meer) URL-escaped zijn
function getSParam (key, query)
{
var nn = 1;
var params = query.split("&");
for (var i in params)
var sql = "SELECT fac_bookmark_path,"
+ " fac_bookmark_query,"
+ " prs_perslid_key_auth,"
+ " fac_bookmark_unauth_url,"
+ " fac_bookmark_expire,"
+ " fac_bookmark_refreshtime"
+ " FROM fac_bookmark"
+ " WHERE fac_bookmark_id = " + safe.quoted_sql(u);
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{
var xx = params[i].split("=");
if (xx[0].toUpperCase() == key.toUpperCase() && xx.length > 1)
shared.simpel_page(L("lcl_fac_bookmark_unknown"));
}
if (oRs("fac_bookmark_expire").Value != null)
{
var expire = new Date(oRs("fac_bookmark_expire").Value);
if (expire <= new Date)
{
return String(xx[1]);
shared.simpel_page(L("lcl_fac_bookmark_expired"));
}
}
return null;
}
if (params)
url = url + "?" + params;
var url = oRs("fac_bookmark_path").Value;
var refresher = oRs("fac_bookmark_refreshtime").Value;
if (oRs("prs_perslid_key_auth").Value)
{
Session("fallback_user_key") = oRs("prs_perslid_key_auth").Value; // wordt opgepikt door loginTry.asp
}
else
Session("unauth_url") = oRs("fac_bookmark_unauth_url").Value; // wordt opgepikt door common.asp
var params = oRs("fac_bookmark_query").Value;
if (params)
{
if (keyparam > -1)
{
rest = rest.substring(("k="+keyparam).length+1);
params += keyparam;
}
if (rest)
params += "&" + rest;
}
else
{
if (rest)
params = rest;
}
oRs.Close();
if (params)
url = url + "?" + params;
}
// Als de bookmark een refreshrate heeft ingesteld wordt automatisch gerefreshed
// Voorkom recursie met norefresh