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 -%> - <% =(FCLTHeader.defaultTemplate[itm]).match(/^#(?!#)|^rgb/i) ? '
' + I("fa-square fa-2x", { fastyle: "fas" }) + '
' : '' %> - <%=safe.html(FCLTHeader.defaultTemplate[itm])%> -<% if (itm.slice(-5) === "image") { +%> + +<% 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);