<%@language = "javascript" %> <% /* $Revision$ $Id$ File: shorturl.asp Description: Redirect naar een bookmark url Parameters: u Bookmark die in de bookmark tabel moet zitten. Dit moet de eerste parameter zijn als er nog meer komen k Een integer keywaarde die plat achter de bookmark_query wordt geplakt -- Optionele parameter(s): die worden allemaal blind doorgegeven naar het volgende scherm Context: Vanuit root Note: Welbeschouwd is dit gewoon een url-shortener http://sgf12/Facilitor5iWork/?u=J448UIrR43 Het is verleidelijk de u= parameter ook door te geven maar dat is in tegenspraak met het betekenisloos zijn van de u-param Als je dat wilt moet je maar BOOKMARK's gebruiken */ ANONYMOUS_Allowed = 1; %> <% 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, // dat is hier safer dan Request.QueryString // Strip eventuele leading &fac_id=XXXX er ook af. rest = rest.substring(rest.indexOf("u=")).substring(("u="+u).length+1); if (u in known_bookmarks) { checkUserAgent(); // devicebits waren anders mogelijk nog niet gezet 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; if (keyparam > -1) { rest = rest.substring(("k="+keyparam).length+1); } if (rest) url += "&" + rest; } else { 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) { 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; } else { if (rest) params = rest; } oRs.Close(); if (params) url = url + "?" + params; } // Als de bookmark een refreshrate heeft ingesteld wordt automatisch gerefreshed // We doen een refresh van de complete bookmark, niet alleen van de pagina waar de // bookmark naar wijst. Daarmee wordt de fallback_user voor elke refresh opnieuw // gebruikt en 'overleeft' de refresh een 'session expired' // Voorkom recursie met norefresh if (refresher > 0 && getQParamInt("norefresh",0) == 0) { theURL = "appl/shared/refresher.asp?url=" + Server.URLencode("/?norefresh=1" + transitQS()) + "&refreshrate=" + refresher; } else var theURL = protectQS.create(url); Response.Redirect(theURL); %>