diff --git a/APPL/FAC/fac_edit_template.asp b/APPL/FAC/fac_edit_template.asp
index a153b0e2f6..6b7dd80942 100644
--- a/APPL/FAC/fac_edit_template.asp
+++ b/APPL/FAC/fac_edit_template.asp
@@ -10,6 +10,7 @@
+
<%
@@ -45,6 +46,18 @@ function prettyJson(j)
$(function()
{
+ $("#main-color").on("change", _ => {
+ $("#main-color-contrast").val(0);
+ });
+ $("#accent-color").on("change", _ => {
+ $("#accent-color-contrast").val(0);
+ });
+
+ $("#frameheader-in-color").on("change", function (e) {
+ var frameheadercolor = ["#F2F2F2", "color-mix(in srgb, var(--main-color) 50%, var(--fclt-color-grey))"][this.checked ? 1 : 0];
+ $(this).closest("td").next("td").find(".color-preview").css("color", frameheadercolor);
+ })
+
$('textarea').autogrow();
FcltMgr.startEdit(window);
});
@@ -168,45 +181,96 @@ function prettyJson(j)
<%=L("lcl_fac_template_curval")%>
<%
- for (itm in FCLTHeader.defaultTemplate)
+ for (item in FCLTHeader.defaultTemplate)
{
- var act = "";
- if (itm in S("csstemplate"))
- act = S("csstemplate")[itm];
- var con = "";
- if (itm in S("csstemplate"))
- con = S("csstemplate")[itm];
+ var defaultValue = FCLTHeader.defaultTemplate[item];
+ var actualValue = "";
+ if (item in S("csstemplate")) {
+ actualValue = S("csstemplate")[item];
+ }
+ var isColor = function(s) { return (s).match(/^#(?!#)|^rgb/i); };
+ var isImage = item.slice(-5) === "image";
+
// Voor kleurwaarden tonen we een kleurvoorbeeld, dat bepalen we aan de hand van onze defaultwaarde
-%><%=safe.html(itm)%>
- <% =(FCLTHeader.defaultTemplate[itm]).match(/^#(?!#)|^rgb/i) ? '' + I("fa-square fa-2x", { fastyle: "fas" }) + '
' : '' %>
- <%=safe.html(FCLTHeader.defaultTemplate[itm])%>
-<% if (itm.slice(-5) === "image") {
+%><%=safe.html(item)%>
+
+<% if (isColor(defaultValue)) { %>
+ <%=I("fa-square fa-2x", { fastyle: "fas" })%>
+<% } %>
+
+ <%=safe.html(defaultValue)%>
+<% if (isImage) {
Response.Write(" "
- + " "
+ + " "
+ " "
+ " " + I("fa-file-image") + " "
- + " "
+ " "
- + " "
+ + " "
+ I("fa-trash-alt")
+ " "
+ " ");
-} else { %>
+ } else { %>
<%
- RWFIELD(itm, "fld", "", con, { "datatype": "color" });
- %> <%
-} %>
- <% =(act && (FCLTHeader.defaultTemplate[itm]).match(/^#(?!#)|^rgb/i) || act.match(/^#(?!#)|^rgb/i)) ? '' + I("fa-square fa-2x", { fastyle: "fas" }) + '
' : '' %>
-<% if (itm.slice(-5) === "image" && act && act.match(/^## .* ##$/) === null) { %>
- ');"><%=safe.html(act)%>
+ RWFIELD(item, "fld", "", actualValue, { "datatype": "color" });
+%> <%
+ } %>
+
+ <%=(actualValue && isColor(defaultValue) || isColor(actualValue) ? '' + I("fa-square fa-2x", { fastyle: "fas" }) + '
' : '')%>
+<% if (item.slice(-5) === "image" && actualValue && actualValue.match(/^## .* ##$/) === null) { %>
+ ');"><%=safe.html(actualValue)%>
<% } else { %>
- <%=safe.html(act)%>
+ <%=safe.html(actualValue)%>
<% } %>
<%
+
+ if (item == "main-color" || item == "accent-color") { %>
+
+ <%=item%>-contrast
+
+ Hoogste contrast
+ <%
+ var sql = " SELECT 0, 'Hoogste contrast' FROM DUAL"
+ + " UNION ALL"
+ + " SELECT 1, '#FFFFFF' FROM DUAL"
+ + " UNION ALL"
+ + " SELECT 2, '#081326' FROM DUAL"
+ + " UNION ALL"
+ + " SELECT 3, " + safe.quoted_sql(item == "main-color" ? "accent-color" : "main-color") + " FROM DUAL";
+ var initKey = 0;
+ if (item + "-contrast" in S("csstemplate")) {
+ initKey = S("csstemplate")[item + "-contrast"];
+ }
+ FCLTselector(item + "-contrast", sql, {
+ initKey: initKey,
+ required: true
+ });
+%>
+ <%=I("fa-square fa-2x", { fastyle: "fas" })%>
+ *Dit niet aanpassen om aan toegankelijkheidseisen te voldoen
+ <%
+ if (item == "accent-color") { // Na accent-color-contrast nog een pseudo-veld; frameheader-in-color
+%>
+ frameheader-in-color
+ <%=I("fa-square fa-2x", { fastyle: "fas" })%>
+ #F2F2F2
+ <%
+ var initKey = 0;
+ if ("frameheader-in-color" in S("csstemplate")) {
+ initKey = S("csstemplate")["frameheader-in-color"] == 1 ? 1 : 0;
+ }
+ var frameheadercolor = ["#F2F2F2", "color-mix(in srgb, var(--main-color) 50%, var(--fclt-color-grey))"][initKey];
+ CHECKBOX("", "frameheader-in-color", initKey != 0, { });
+%>
+ <%=I("fa-square fa-2x", { fastyle: "fas" })%>
+
+
+<% }
+ }
}
%>
diff --git a/APPL/FAC/fac_edit_template_save.asp b/APPL/FAC/fac_edit_template_save.asp
index 1bfd27d99f..7c36b3f731 100644
--- a/APPL/FAC/fac_edit_template_save.asp
+++ b/APPL/FAC/fac_edit_template_save.asp
@@ -34,14 +34,29 @@ var cssparams = { cssmode: previewmode };
if (previewmode == 2)
{
cssparams.csstemplate = {};
- for (itm in FCLTHeader.defaultTemplate)
+ for (item in FCLTHeader.defaultTemplate)
{
- var conceptval = getFParam(itm);
+ var conceptval = getFParam(item);
if (conceptval != "")
- cssparams.csstemplate[itm] = conceptval;
+ cssparams.csstemplate[item] = conceptval;
else
- delete cssparams.csstemplate[itm];
+ delete cssparams.csstemplate[item];
}
+
+ var mainColorContrast = getFParamInt("main-color-contrast", 0);
+ if (mainColorContrast) {
+ cssparams.csstemplate["main-color-contrast"] = mainColorContrast;
+ }
+ var accentColorContrast = getFParamInt("accent-color-contrast", 0);
+ if (accentColorContrast) {
+ cssparams.csstemplate["accent-color-contrast"] = accentColorContrast;
+ }
+
+ var frameheaderInColor = getFParamSafe("frameheader-in-color", "off") == "on";
+ if (frameheaderInColor) {
+ cssparams.csstemplate["frameheader-in-color"] = 1;
+ }
+
if (submitting)
{
var fields = [ { dbs: "fac_setting_pvalue", typ: "varchar", val: JSON.stringify(cssparams.csstemplate) },
diff --git a/APPL/Shared/default.css b/APPL/Shared/default.css
index 18d7a5f6ef..265de9bae5 100644
--- a/APPL/Shared/default.css
+++ b/APPL/Shared/default.css
@@ -3616,10 +3616,15 @@ div.mldhandlinghead {
{
color: var(--tableheadercolor);
background-color: var(--tableheaderbackgroundcolor);
- font-weight: normal;
+ border-top: 1px solid var(--fclt-color-grey-50);
border-right: 1px ridge #ccc;
+ border-bottom: 1px solid var(--fclt-color-grey-50);
white-space: nowrap;
padding: 2px 3px 2px 3px; /* want tfoot td = th */
+ font-weight: normal;
+ &:is(th) {
+ font-weight: 600;
+ }
}
.rstable :is(thead th,
tfoot td):first-child {
diff --git a/APPL/Shared/header.inc b/APPL/Shared/header.inc
index dd830da5c3..ec55f59e83 100644
--- a/APPL/Shared/header.inc
+++ b/APPL/Shared/header.inc
@@ -566,12 +566,37 @@ FCLTHeader =
var mainColor = custtemplate["main-color"] || this.defaultTemplate["main-color"];
var accentColor = custtemplate["accent-color"] || this.defaultTemplate["accent-color"];
- var mainColorContrast = _pickContrastColor(mainColor, ["#FFFFFF", aareonBlack, accentColor]);
- var accentColorContrast = _pickContrastColor(accentColor, ["#FFFFFF", aareonBlack, mainColor]);
+ var mainColorContrastOptions = ["#FFFFFF", aareonBlack, accentColor];
+ var mainColorContrastIndex = custtemplate["main-color-contrast"] || 0;
+ var mainColorContrast;
+ if (mainColorContrastIndex) {
+ mainColorContrast = mainColorContrastOptions[mainColorContrastIndex - 1];
+ } else {
+ mainColorContrast = _pickContrastColor(mainColor, mainColorContrastOptions);
+ }
+
+ var accentColorContrastOptions = ["#FFFFFF", aareonBlack, mainColor];
+ var accentColorContrastIndex = custtemplate["accent-color-contrast"] || 0;
+ var accentColorContrast;
+ if (accentColorContrastIndex) {
+ accentColorContrast = accentColorContrastOptions[accentColorContrastIndex - 1];
+ } else {
+ accentColorContrast = _pickContrastColor(accentColor, accentColorContrastOptions);
+ }
inCss += "--main-color-contrast: " + mainColorContrast + ";\n";
inCss += "--accent-color-contrast: " + accentColorContrast + ";\n";
+ var frameHeaderBackgroundColorOptions = ["#F2F2F2", "color-mix(in srgb, var(--main-color) 50%, rgb(128, 128, 128))"];
+ var frameHeaderBackgroundColorIndex = custtemplate["frameheader-in-color"] || 0;
+ var frameHeaderBackgroundColor = frameHeaderBackgroundColorOptions[frameHeaderBackgroundColorIndex];
+
+ var frameHeaderColorOptions = ["var(--headertextcolor)", "#FFFFFF"];
+ var frameHeaderColor = frameHeaderColorOptions[frameHeaderBackgroundColorIndex];
+
+ inCss += "--frameheaderbackgroundcolor: " + frameHeaderBackgroundColor + ";\n";
+ inCss += "--frameheadercolor: " + frameHeaderColor + ";\n";
+
inCss += "}";
var outFile = _getFileByFilename.call(this, outfname);
diff --git a/APPL/Shared/variables.css b/APPL/Shared/variables.css
index 675fcbc7ea..d29004e67f 100644
--- a/APPL/Shared/variables.css
+++ b/APPL/Shared/variables.css
@@ -86,6 +86,8 @@
--fclt-color-grey-40: color-mix(in srgb, var(--aareon-urban-grey) 40%, transparent);
/* General */
+ --fclt-color-grey: rgb(128, 128, 128);
+ --fclt-color-grey-50: rgba(128, 128, 128, 0.5);
--fclt-color-bad: rgb(156, 0, 6);
--fclt-color-bad-contrast: rgb(255, 199, 206);
--fclt-color-good: rgb(0, 97, 0);
@@ -168,8 +170,8 @@
--buttonbackgroundcolormediumlow: #F2F2F2; /* 95% wit, 5% zwart */;
--buttoncolormediumlow: var(--headertextcolor);
- --frameheaderbackgroundcolor: #F2F2F2; /* 95% wit, 5% zwart */;
- --frameheadercolor: var(--headertextcolor); /* accent-light is licht genoeg om hoog contrast te garanderen */
+ /* berekend; --frameheaderbackgroundcolor: #F2F2F2; /* 95% wit, 5% zwart */;
+ /* berekend; --frameheadercolor: var(--headertextcolor); /* accent-light is licht genoeg om hoog contrast te garanderen */
--inlineactionbackgroundcolor: var(--main-color-contrast);
--inlineactioncolor: var(--main-color);