573 lines
25 KiB
PHP
573 lines
25 KiB
PHP
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: shared/header.inc
|
|
Description: Generieke serverside header functie.
|
|
Stelt de HTML header samen op basis van de meegegeven eisen.
|
|
|
|
Parameters: params:
|
|
title
|
|
outputmode (default 0=screen)
|
|
plugins []
|
|
js []
|
|
Context: Eenmalig per ASP, automatisch via shared.inc
|
|
Result:
|
|
Note: Gebruikt veel de globale rooturl die tegenwoordig autodetect is
|
|
Deprecated aanroepen als volgt kunnen gewoon verwijderd worden
|
|
FCLTHeader.Generate({ root: "../../appl/" });
|
|
FCLTHeader.Set({root: "../../../appl/"});
|
|
|
|
*/
|
|
|
|
/************************************************************/
|
|
|
|
// Huidige jQuery versie: 3.3.1
|
|
|
|
// Huidige jQuery versie gebruikt voor mobile: 2.2.4 (!= jquery.mobile versie)
|
|
// (nog) geen nieuwere versie ivm incompatibiliteit tussen laatste stable jQuery-mobile (1.4.5) & jQuery 3.x+
|
|
|
|
// Huidige jQuery-ui versie: 1.12.1
|
|
|
|
if (typeof FCLTHeader != "undefined")
|
|
{
|
|
Response.Write("common.inc is indirect dubbel included. Dat mag niet.")
|
|
Response.End;
|
|
}
|
|
|
|
FCLTHeader =
|
|
{
|
|
filters: null,
|
|
advfilters: null,
|
|
|
|
_plugins : [],
|
|
|
|
_params: { title: getQParam("_titel_", null),
|
|
outputmode: 0,
|
|
plugins: [], js: [], css: [], extrahead: [] },
|
|
|
|
_myPush: function (arr, itm)
|
|
{
|
|
var j;
|
|
for (j = 0; j < arr.length; j++)
|
|
{
|
|
if (typeof itm == "string" && arr[j].toLowerCase() == itm.toLowerCase()
|
|
|| arr[j] == itm)
|
|
return; // hij is er al
|
|
}
|
|
arr.push(itm);
|
|
},
|
|
|
|
Title: function(title)
|
|
{
|
|
// TODO: Titel van het tabje zetten.
|
|
FCLTHeader._params.title = title;
|
|
},
|
|
|
|
Set: function(params)
|
|
{
|
|
var i;
|
|
for (i in params)
|
|
FCLTHeader._params[i] = params[i];
|
|
},
|
|
|
|
Requires: function(params)
|
|
{
|
|
if (JSON_Result)
|
|
__SafeLog("<span style='background-color:#0ff'>JSON_Result staat aan, dan is FCLTHeader.Requires erg onlogisch.</span>");
|
|
|
|
if (!params) params = {};
|
|
|
|
var i, j;
|
|
// 'Explodeer' de plugins naar onderdelen
|
|
if (params.plugins)
|
|
for (i = 0; i < params.plugins.length; i++)
|
|
{
|
|
this._plugins[params.plugins[i]] = true;
|
|
var i;
|
|
switch (params.plugins[i])
|
|
{
|
|
case "bootstrap":
|
|
FCLTHeader.Requires({js: [rooturl + "/appl/localscripts/bootstrap/js/bootstrap.min.js"],
|
|
css: [rooturl + "/appl/localscripts/bootstrap/css/bootstrap.min.css"]});
|
|
case "masonry":
|
|
FCLTHeader.Requires({js: [rooturl + "/appl/localscripts/masonry/masonry.min.js"]});
|
|
case "jQuery":
|
|
FCLTHeader.Requires({js: ["jQuery.js", "FcltJquery.js"]});
|
|
FCLTHeader.Requires({js: ["jquery.toast.min.js"],
|
|
css: [rooturl + "/appl/localscripts/jquery.toast.min.css"]});
|
|
break;
|
|
case "suggest":
|
|
FCLTHeader.Requires({js: [rooturl + "/appl/shared/suggest/suggest.js"],
|
|
css: [rooturl + "/appl/shared/suggest/suggest.css"]});
|
|
break;
|
|
case "kenmerk":
|
|
FCLTHeader.Requires({js: ["jquery-ui.js", "modal_kenmerken.js", "date.js", rooturl + "/appl/shared/kenmerk_js.asp"],
|
|
css: []});
|
|
break;
|
|
break;
|
|
default: _AiAi("INTERNAL_ERROR_PLUGIN_"+params.plugins[i]+"_IS_ONBEKEND");
|
|
}
|
|
}
|
|
|
|
if (params.js)
|
|
for (i = 0; i < params.js.length; i++)
|
|
{
|
|
if (params.js[i].toLowerCase() != "fcltmgr.js")
|
|
FCLTHeader._myPush(FCLTHeader._params.js, params.js[i]);
|
|
};
|
|
|
|
if (params.css)
|
|
for (i = 0; i < params.css.length; i++)
|
|
{
|
|
FCLTHeader._myPush(FCLTHeader._params.css, params.css[i]);
|
|
};
|
|
|
|
if (params.extrahead)
|
|
FCLTHeader._myPush(FCLTHeader._params.extrahead, params.extrahead);
|
|
},
|
|
|
|
_fso:Server.CreateObject("Scripting.FileSystemObject"),
|
|
AddTimeStamp: function(fPath, isOptional)
|
|
{
|
|
fPath = fPath.toLowerCase(); // canonical can improve caching
|
|
if (fPath.indexOf(rooturl.toLowerCase()) == 0)
|
|
fPath = rooturl + fPath.substring(rooturl.length); // Afblijven van rooturl-deel, cookies verdwijnen anders
|
|
try
|
|
{
|
|
var f = this._fso.GetFile(Server.MapPath(fPath));
|
|
var ts=new Date(f.DateLastModified);
|
|
return fPath + "?" + Math.floor(ts.getTime()/1000);
|
|
}
|
|
catch(e)
|
|
{
|
|
if (isOptional)
|
|
return false; // niet erg
|
|
Response.Write("\"></script></style></head><p><b>Internal error: kan bestand " + fPath + " niet vinden/openen</b></p>");
|
|
Response.Write(e.description);
|
|
Response.End;
|
|
}
|
|
},
|
|
AddStylesheet: function(fPath, isOptional)
|
|
{
|
|
var timedpath = this.AddTimeStamp(fPath, isOptional);
|
|
if (timedpath)
|
|
{
|
|
%>
|
|
<link rel="stylesheet" href="<%=timedpath%>" type="text/css"><%
|
|
}
|
|
},
|
|
_templateCss: rooturl + "/cache/" + customerId + ".css",
|
|
_mobileTemplateCss: rooturl + "/cache/m" + customerId + ".css",
|
|
_webAppManifest: rooturl + "/cache/mf" + customerId + ".json",
|
|
|
|
// params
|
|
// cssmode: 0: is normale customer css
|
|
// 1: is default css
|
|
// 2: concept css uit params.csstemplate
|
|
Generate: function (params)
|
|
{
|
|
if (!params) params = {};
|
|
|
|
if (params.outputmode == 2 || params.outputmode == 6) // Excel (incl. flex)
|
|
{
|
|
if (S("excel_mode") == 1)
|
|
{
|
|
params.outputmode = 4;
|
|
}
|
|
else
|
|
{
|
|
Response.ContentType = "application/vnd.ms-excel";
|
|
Response.AddHeader ("content-disposition", "inline; filename=facilitor.xls");
|
|
%> <meta http-equiv="Content-Type" content="text/html;charset=<%=Response.Charset%>"><%
|
|
return; // Excel is heel kaal
|
|
}
|
|
}
|
|
|
|
if (params.outputmode == 4) // csv
|
|
{
|
|
Response.ContentType = "text.csv";
|
|
Response.AddHeader ("content-disposition", "attachment; filename=facilitor.csv");
|
|
return; // csv is heel kaal
|
|
}
|
|
|
|
if (params.mobile) // mobile
|
|
{
|
|
var themeColor = S("csstemplate")["theme_color"] || this.defaultTemplate["theme_color"];
|
|
%> <meta name="theme-color" content="<%=themeColor%>">
|
|
<link rel="manifest" href="<%=this._webAppManifest%>">
|
|
<meta name="apple-mobile-web-app-capable" content="yes"><%
|
|
}
|
|
|
|
%> <meta http-equiv="Content-Type" content="text/html;charset=<%=Response.Charset%>">
|
|
<%=S("http_meta_head")%>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
|
<%
|
|
// FSN#14103 Voorkom back-button problemen
|
|
// user_lang en rooturl resp. voor date.js en FcltMgr.js
|
|
%> <script type="text/javascript">
|
|
<% if (!params.mobile) { %>
|
|
window.history.forward(1);
|
|
<% } %>
|
|
var user_lang = "<%=safe.jsstring(user_lang)%>";
|
|
var rooturl = "<%=safe.jsstring(rooturl)%>";
|
|
S_fontawesomestyle = '<%=safe.jsstring(S("fontawesomestyle"))%>';
|
|
<% if (Response.Expires <= 0) { /* niet als gecached, te irritant */ %>
|
|
var userId = "<%=safe.jsstring(customerId)+"/"+user_key%>";
|
|
|
|
<% } %>
|
|
var LCL = {}; // Bouw het clientside LCL-array voor teksten die in js gebruikt worden
|
|
var RVT_token = "<%=safe.jsstring(protectRequest.theToken())%>";
|
|
<% lcl.buildClientLCL();
|
|
if (getQParamInt("has_filters", 0) == 1)
|
|
{
|
|
var fsql = " SELECT fac_menu_filter, fac_menu_advfilter"
|
|
+ " FROM fac_menu"
|
|
+ " WHERE prs_perslid_key = " + user_key
|
|
+ " AND fac_menu_key = " + getQParamInt("tab_menu_key");
|
|
var foRs = Oracle.Execute( fsql );
|
|
if (foRs.Eof)
|
|
{
|
|
Response.Write("</script>");
|
|
FCLTHeader.AddStylesheet(rooturl + "/appl/fontawesome/css/all.min.css");
|
|
Response.Write("</head><body>" + L("lcl_shared_pin_removed_error") + "</body></html>");
|
|
Response.End;
|
|
}
|
|
else
|
|
{
|
|
this.filters = foRs("fac_menu_filter").Value || "";
|
|
this.advfilters = foRs("fac_menu_advfilter").Value || "";
|
|
}
|
|
foRs.Close();
|
|
}
|
|
if (this.filters)
|
|
{
|
|
Response.Write("\nvar fcltfilters = '" + safe.jsstring(this.filters) + "';");
|
|
}
|
|
if (this.advfilters)
|
|
{
|
|
Response.Write("\nvar advfilters = '" + safe.jsstring(this.advfilters) + "';");
|
|
}
|
|
|
|
if (typeof placeholder_icons !== "undefined") /* uit icons.inc, is aanwezig indien iface.inc */
|
|
{ /* Stel dan de placeholder iconen ook clientside beschikbaar, voor iface.js */ %>
|
|
var placeholder_icons = {
|
|
<% for (i in placeholder_icons)
|
|
{
|
|
%> "<%=i%>": "<%=placeholder_icons[i]%>",
|
|
<% } /* Trailing comma in object literals is allowed in supported browsers */
|
|
%> }; <%
|
|
} %>
|
|
|
|
</script>
|
|
<%
|
|
|
|
if (FCLTHeader._params.title)
|
|
{
|
|
%><title><%=safe.html(FCLTHeader._params.title)%></title><%
|
|
}
|
|
// FcltMgr.js altijd
|
|
%> <script type="text/javascript" src="<%=this.AddTimeStamp(rooturl + '/appl/LocalScripts/FcltMgr.js')%>"></script><%
|
|
|
|
FCLTHeader.AddStylesheet(rooturl + "/appl/fontawesome/css/all.min.css");
|
|
if (params.outputmode == 1 || params.outputmode == 5) { // Printen is vrij kaal
|
|
FCLTHeader.AddStylesheet(rooturl+"/appl/shared/default-print.css");
|
|
if (getQParam('autosortby', "") || getFParam('autosortby', "")) // Deze twee wel nodig bij printen
|
|
{
|
|
%><script type="text/javascript" src="<%=this.AddTimeStamp(rooturl+'/appl/LocalScripts/jquery.min.js')%>"></script><%
|
|
%><script type="text/javascript" src="<%=this.AddTimeStamp(rooturl+'/appl/LocalScripts/sorttable.js')%>"></script><%
|
|
}
|
|
return;
|
|
}
|
|
var theme = // S("cssfordesktop") ||
|
|
"/appl/Localscripts/theme/jquery-ui.min.css";
|
|
FCLTHeader.AddStylesheet(rooturl + theme);
|
|
|
|
for (var i = 0; i < FCLTHeader._params.css.length; i++)
|
|
{
|
|
var pad = FCLTHeader._params.css[i];
|
|
if (pad.indexOf("/") == -1)
|
|
pad = rooturl+"/appl/shared/" + pad;
|
|
FCLTHeader.AddStylesheet(pad);
|
|
}
|
|
if (params.mobile)
|
|
{
|
|
this.testTemplateCssRefresh(params.mobile);
|
|
if (!this._fso.FileExists(Server.MapPath(this._mobileTemplateCss)))
|
|
this.generateTemplateCss(undefined, undefined, params.mobile);
|
|
FCLTHeader.AddStylesheet(getCustCss("m"), true);
|
|
}
|
|
else
|
|
{
|
|
this.testTemplateCssRefresh();
|
|
if (!this._fso.FileExists(Server.MapPath(this._templateCss)))
|
|
this.generateTemplateCss();
|
|
|
|
// 0=normaal, 1=kale default, 2=concept
|
|
var previewfile = rooturl + "/cache/" + customerId + "_concept.css";
|
|
switch (params.cssmode)
|
|
{
|
|
case 2:
|
|
this.generateTemplateCss(params.csstemplate, previewfile);
|
|
FCLTHeader.AddStylesheet(previewfile);
|
|
break
|
|
case 1:
|
|
this.generateTemplateCss(FCLTHeader.defaultTemplate, previewfile);
|
|
FCLTHeader.AddStylesheet(previewfile);
|
|
break
|
|
default:
|
|
FCLTHeader.AddStylesheet(this._templateCss, true); // Template, optional
|
|
}
|
|
if (Session("interface") == "touch")
|
|
FCLTHeader.AddStylesheet(rooturl+"/appl/shared/touch.css");
|
|
if (Session("interface") == "mobile")
|
|
FCLTHeader.AddStylesheet(FCLTHeader._mobileTemplateCss, true);
|
|
if ((params.cssmode || 0) == 0)
|
|
{
|
|
FCLTHeader.AddStylesheet(getCustCss(), true); // optional
|
|
FCLTHeader.AddStylesheet(custpath + "/custenv.css", true); // optional, handig voor testomgevingen
|
|
}
|
|
}
|
|
for (var i = 0; i < FCLTHeader._params.js.length; i++)
|
|
{
|
|
var pad = FCLTHeader._params.js[i];
|
|
if (__Logging == 0)
|
|
{
|
|
if (pad.toLowerCase() == "jquery.js")
|
|
{
|
|
if (params.mobile)
|
|
pad = "jquerymob.min.js";
|
|
else
|
|
pad = "jquery.min.js";
|
|
}
|
|
if (pad.toLowerCase() == "jquery-ui.js")
|
|
pad = "jquery-ui.min.js";
|
|
}
|
|
else
|
|
{
|
|
if (pad.toLowerCase() == "jquery.js")
|
|
{
|
|
if (params.mobile)
|
|
pad = "jquerymob.js";
|
|
else
|
|
pad = "jquery.js";
|
|
}
|
|
if (pad.toLowerCase() == "jquery-ui.js")
|
|
pad = "jquery-ui.js";
|
|
}
|
|
|
|
if (pad.indexOf("/") == -1)
|
|
pad = rooturl+"/appl/LocalScripts/" + pad;
|
|
%>
|
|
<script type="text/javascript" src="<%=this.AddTimeStamp(pad)%>"></script><%
|
|
}
|
|
|
|
for (var i = 0; i < FCLTHeader._params.extrahead.length; i++)
|
|
{
|
|
FCLTHeader._params.extrahead[i]();
|
|
}
|
|
},
|
|
|
|
defaultTemplate : // De defaults
|
|
{
|
|
fontfamily: "fclt-skolar-sans, Verdana, Tahoma, Arial, Helvetica, sans-serif",
|
|
fontfamily_alt: "Tahoma, Arial, Helvetica, sans-serif",
|
|
fontfamily_titles: "fclt-skolar-sans, sans-serif",
|
|
|
|
headerimage: "../appl/pictures/banner.png",
|
|
loginbgimage: "../appl/pictures/loginbg.jpg",
|
|
//20212 menubgimage: "../appl/pictures/sidebarbg.jpg",
|
|
|
|
newsbgimage: "../appl/pictures/loginbg.jpg",
|
|
newscolor: "#ffffff",
|
|
|
|
portalmenubgimage: "../appl/pictures/loginbg.jpg",
|
|
portalmenucardbgimage: "../appl/pictures/portalcardbg.jpg",
|
|
portalbgimage: "../appl/pictures/framebodybg.jpg",
|
|
//framebgimage: "../appl/pictures/nobg.jpg",
|
|
framebgimage: "../appl/pictures/framebodybg.jpg",
|
|
|
|
textcolor: "#343f4d",
|
|
//backgroundcolor: "#fffffe", /* blijkt niets significants (meer) te doen */
|
|
inputbackgroundcolor: "#ebefff",
|
|
linkcolor: "#0237ff",
|
|
linkhovercolor: "#f26522",
|
|
requiredbordercolor: "#d50000",
|
|
|
|
headerbackgroundcolor: "#ffffff",
|
|
headercolor: "#666666",
|
|
dividercolor: "#dddddd",
|
|
portalkopcolor: "#ffffff", /* should fit the backgroundimage */
|
|
|
|
activetabbackgroundcolor: "#FCFCFC",
|
|
activetabcolor: "#002C67",//"#343F4D",
|
|
inactivetabbackgroundcolor: "#1a5b85",//"#002C67",//"#e6e8ea",
|
|
inactivetabcolor: "#e6e8ea",//"#002C67",
|
|
|
|
buttonbackgroundcolor: "#e6e8ea", /* 002C67 = Aareon Ink Blue, 343F4D = Urban Grey */
|
|
buttoncolor: "#002c67", /* default, emphasishigh*/
|
|
buttonhoverbackgroundcolor: "#df742f", /* tussen rood en oranje */
|
|
buttonhovercolor: "#ffffff",
|
|
buttonbackgroundcolormediumlow: "#f0f1f2", /* Urban Grey 10% */
|
|
buttoncolormediumlow: "#343f4d", /* emphasismedium, emphasislow */
|
|
|
|
frameheaderbackgroundcolor: "#f0f1f2",//"#dde5ee", // voorstel deze te kleuren in relatie tot buttonbackgroundcolormediumlow
|
|
frameheadercolor: "#343f4d",//"#343f4d", // voorstel deze te kleuren in relatie tot buttoncolormediumlow
|
|
|
|
inlineactionbackgroundcolor: "#ffffff",
|
|
inlineactioncolor: "#f26522",
|
|
flexlabelbackgroundcolor: "transparent",
|
|
flexlabelcolor: "#df742f",
|
|
listsubjectcolor: "#343f4d", /* textcolor. meldingonderwerp in de lijst */
|
|
logincolor: "#eeeeee",
|
|
|
|
menubackgroundcolor: "#f8f8f8",
|
|
menucolor: "#002c67",
|
|
menukophoverbackgroundcolor: "#b6dffa",
|
|
menukophovercolor: "#1a5b85",
|
|
menuitembackgroundcolor: "#ffffff",
|
|
menuitemcolor: "#000000",
|
|
menuitemhoverbackgroundcolor: "#e6effa",
|
|
menuitemhovercolor: "inherit", // kan dat nit gewoon? maaar wat dan?
|
|
|
|
notesbackgroundcolor: "#F59D04",
|
|
|
|
welcomebackgroundcolor: "#FFFFFF", // =backgroundcolor
|
|
welcomecolor: "#df742f",
|
|
|
|
tableheaderbackgroundcolor: "#df742f",
|
|
tableheadercolor: "#ffffff",
|
|
|
|
/* if mobile_enabled */
|
|
mobilebackgroundcolor: "#f7f7f7", /* er moet onderscheid met de inputs zijn vind ik */
|
|
mobiletextcolor: "#343F4D",
|
|
mobilefooterbackgroundcolor: "inherit",
|
|
mobilefootercolor: "inherit",
|
|
mobileheaderimage: "../appl/pictures/mfbanner.png",
|
|
mobileiconcolor: "inherit",
|
|
mobileicontextcolor: "inherit",
|
|
mobilelistbackgroundcolor: "inherit",
|
|
mobilelisttextcolor: "inherit",
|
|
mobilelisttitlecolor: "inherit",
|
|
mobilelistsubtitlecolor: "inherit"
|
|
/* end if mobile_enabled */
|
|
},
|
|
|
|
// tpl en cssfile worden alleen gebruikt bij concept/preview, anders zijn ze leeg
|
|
generateTemplateCss : function(tpl, cssfile, mobile)
|
|
{
|
|
if (!tpl && !cssfile && !mobile) // gewone generate dan mobile voor de volledigheid ook altijd
|
|
this.generateTemplateCss(undefined, undefined, true);
|
|
|
|
if (!this._fso.FolderExists(Server.MapPath(rooturl + "/cache/")))
|
|
{
|
|
Response.Write("ERROR: Folder {0} does not exist on the Webserver".format(Server.MapPath(rooturl + "/CACHE")));
|
|
Response.Write("<br>Please create it and make sure IUSR user has modify permissions to this folder on the webserver (just like on TEMP)");
|
|
Response.End;
|
|
}
|
|
mobile = mobile || false;
|
|
var templatecss = mobile ? this._mobileTemplateCss : this._templateCss;
|
|
if (typeof tpl == "undefined")
|
|
var custtemplate = S("csstemplate");
|
|
else
|
|
var custtemplate = tpl;
|
|
|
|
var outfname = Server.MapPath(cssfile || templatecss);
|
|
__Log("Regenerating template {0}".format(outfname));
|
|
|
|
var inFile = this._fso.OpenTextFile(Server.MapPath(rooturl + (mobile ? "/appl/pda/default.csx" : "/appl/shared/default.csx")));
|
|
|
|
var inCss = inFile.ReadAll();
|
|
for (itm in this.defaultTemplate) // vervang alle bekende variabelen
|
|
{
|
|
var val = this.defaultTemplate[itm];
|
|
if (itm in custtemplate)
|
|
val = custtemplate[itm];
|
|
var regexp = new RegExp("\\=\\="+itm+"\\=\\=", 'gi');
|
|
inCss = inCss.replace(regexp, val);
|
|
}
|
|
|
|
// http://stackoverflow.com/questions/5522733/removing-comments-in-javascript-using-ruby
|
|
inCss = inCss.replace(/\/\*[^*]*\*+(?:[^*\/][^*]*\*+)*\//ig, ""); // Verwijder alle commentaar
|
|
inCss = inCss.replace(/\n\s+/g, "\n"); // alle leading spaties schrappen
|
|
inCss = inCss.replace(/\n\n/g, "\n"); // lege regels schrappen
|
|
|
|
try
|
|
{
|
|
var outFile = this._fso.OpenTextFile(outfname, 2, true); // 2=write, true=create?
|
|
}
|
|
catch (e)
|
|
{
|
|
Response.Write("ERROR: Unable to write " + outfname + "<br>" + e.description);
|
|
if (this._fso.FileExists(outfname))
|
|
Response.Write("<br>File owner: " + getFileOwner(outfname));
|
|
Response.Write("<br>Make sure " + getUserContext() + " user has modify permissions to this folder on the webserver");
|
|
Response.End;
|
|
}
|
|
outFile.WriteLine("/*********************************");
|
|
outFile.WriteLine(" * GENERATED FILE, DO NOT MODIFY *");
|
|
outFile.WriteLine(" *********************************/");
|
|
outFile.Write(inCss);
|
|
|
|
if (S("csscust"))
|
|
{
|
|
outFile.WriteLine("\n\n/*********************");
|
|
outFile.WriteLine(" * Setting 'csscust' *");
|
|
outFile.WriteLine(" *********************/");
|
|
outFile.WriteLine(S("csscust"));
|
|
}
|
|
if (S("cssenvcust"))
|
|
{
|
|
outFile.WriteLine("\n\n/************************");
|
|
outFile.WriteLine(" * Setting 'cssenvcust' *");
|
|
outFile.WriteLine(" ************************/");
|
|
outFile.WriteLine(S("cssenvcust"));
|
|
}
|
|
|
|
__Log("Template file {0} has been generated.".format(outfname));
|
|
inFile.Close();
|
|
outFile.Close();
|
|
if (mobile)
|
|
{
|
|
var themeColor = S("csstemplate")["theme_color"] || this.defaultTemplate["theme_color"];
|
|
try
|
|
{
|
|
var outFile = this._fso.OpenTextFile(Server.MapPath(this._webAppManifest), 2, true); // 2=write, true=create?
|
|
outFile.WriteLine('{ "theme_color": "' + themeColor + '", "name": "' + safe.jsstring(L("lcl_facilitor_ie_title")) + '", "display": "standalone", "scope": "' + rooturl + '/", "start_url": "' + rooturl+ '/" }');
|
|
outFile.Close();
|
|
}
|
|
catch (e)
|
|
{
|
|
Response.Write("ERROR: Unable to write " + Server.MapPath(this._webAppManifest) + "<br>" + e.description);
|
|
if (this._fso.FileExists(Server.MapPath(this._webAppManifest)))
|
|
Response.Write("<br>File owner: " + getFileOwner(Server.MapPath(this._webAppManifest)));
|
|
Response.Write("<br>Make sure " + getUserContext() + " user has modify permissions to this folder on the webserver");
|
|
Response.End;
|
|
}
|
|
}
|
|
},
|
|
// Kijk of default.csx nieuwer is dan onze temp-css. Dan verversen
|
|
testTemplateCssRefresh: function (mobile)
|
|
{
|
|
mobile = mobile || false;
|
|
var templatecss = mobile ? this._mobileTemplateCss : this._templateCss;
|
|
if (this._fso.FileExists(Server.MapPath(templatecss)))
|
|
{
|
|
var fcss = this._fso.GetFile(Server.MapPath(templatecss));
|
|
var tcss = new Date(fcss.DateLastModified);
|
|
}
|
|
else
|
|
tcss = 0;
|
|
var fcsx = this._fso.GetFile(Server.MapPath(rooturl + (mobile ? "/appl/pda/default.csx" : "/appl/shared/default.csx")));
|
|
var tcsx = new Date(fcsx.DateLastModified);
|
|
var hinc = this._fso.GetFile(Server.MapPath(rooturl + "/appl/shared/header.inc"));
|
|
var tinc = new Date(hinc.DateLastModified);
|
|
if (tcsx > tcss || tinc > tcss)
|
|
{
|
|
__Log("{0} is older ({1}) than default.csx ({2}), refreshing it.".format(templatecss, toISODateTimeString(tcss, true), toISODateTimeString(tcsx, true)));
|
|
this.generateTemplateCss(undefined, undefined, mobile);
|
|
}
|
|
}
|
|
}
|
|
%>
|