diff options
author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2013-10-16 20:09:40 +0200 |
---|---|---|
committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2013-10-16 20:09:40 +0200 |
commit | 8d417057d38d56510a1d3d2e39381a1df3dd96ee (patch) | |
tree | 26e2d71409bdb10a5fefad1b538af583e984b776 /id | |
parent | a7c22b659f5bc760cb46d5892409dab12cc047d6 (diff) | |
download | moa-id-spss-8d417057d38d56510a1d3d2e39381a1df3dd96ee.tar.gz moa-id-spss-8d417057d38d56510a1d3d2e39381a1df3dd96ee.tar.bz2 moa-id-spss-8d417057d38d56510a1d3d2e39381a1df3dd96ee.zip |
@ConfigWebTool
--add JS ColorPicker to select colors easier
--add BKUSelectionFrom preview
--add useMandate checkbox
--change position of some checkboxes in OA configuration
@MOAID lib
--change API of BKUFormCustomization utils
Diffstat (limited to 'id')
44 files changed, 1243 insertions, 249 deletions
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java index 915ddf8ff..9dc49bba8 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java @@ -22,12 +22,17 @@ public class Constants { public static final String SESSION_FORM = "form"; public static final String SESSION_PVP2REQUESTID = "pvp2requestid"; public static final String SESSION_RETURNAREA = "returnarea"; + public static final String SESSION_BKUFORMPREVIEW = "bkuformpreview"; + public static enum STRUTS_RETURNAREA_VALUES {adminRequestsInit, main, usermanagementInit}; public static final String REQUEST_OAID = "oaid"; public static final String REQUEST_USERREQUESTTOKKEN = "tokken"; + public static final String REQUEST_FORMCUSTOM_MODULE = "module"; + public static final String REQUEST_FORMCUSTOM_VALUE = "value"; + public static final String BKU_ONLINE = "bkuonline"; public static final String BKU_LOCAL = "bkulocal"; public static final String BKU_HANDY = "bkuhandy"; diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java index 13e13bcc7..2b6c326eb 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java @@ -34,6 +34,9 @@ import at.gv.egovernment.moa.util.MiscUtil; public class ConfigurationProvider { + public static final String HTMLTEMPLATE_DIR = "/htmlTemplates"; + public static final String HTMLTEMPLATE_FILE = "/loginFormFull.html"; + private static final Logger log = Logger.getLogger(ConfigurationProvider.class); private static final String SYSTEM_PROP_CONFIG = "moa.id.webconfig"; @@ -181,6 +184,10 @@ public class ConfigurationProvider { return configRootDir; } + public String getMOAIDInstanceURL() { + return props.getProperty("general.moaid.instance.url"); + } + public boolean isLoginDeaktivated() { String result = props.getProperty("general.login.deaktivate", "false"); return Boolean.parseBoolean(result); diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java index 0d13de3fe..6c90ac89a 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java @@ -1,12 +1,15 @@ package at.gv.egovernment.moa.id.configuration.data; import java.util.Arrays; +import java.util.Collections; import java.util.List; +import java.util.Map; import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA; import at.gv.egovernment.moa.id.commons.db.dao.config.BKUSelectionCustomizationType; import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; import at.gv.egovernment.moa.id.commons.db.dao.config.TemplatesType; +import at.gv.egovernment.moa.id.util.FormBuildUtils; import at.gv.egovernment.moa.util.MiscUtil; public class FormularCustomization { @@ -27,13 +30,17 @@ public class FormularCustomization { private String appletRedirectTarget = null; public static List<String> appletRedirectTargetList = null; + + public static List<String> fontTypeList = null; + public String fontTypeListValue = null; public FormularCustomization() { appletRedirectTargetList = Arrays.asList("","_blank","_self","_parent","_top"); + fontTypeList = Arrays.asList("","Verdana","Geneva","Arial","Helvetica","sans-serif","Times New Roman"); + Collections.sort(fontTypeList); } - - - public void parse(OnlineApplication dbOAConfig) { + + public void parse(OnlineApplication dbOAConfig, Map<String, String> map) { AuthComponentOA auth = dbOAConfig.getAuthComponentOA(); if (auth != null) { @@ -42,41 +49,61 @@ public class FormularCustomization { BKUSelectionCustomizationType formcustom = templates.getBKUSelectionCustomization(); if (formcustom != null) { - if (formcustom.isMandateLoginButton() != null) + if (formcustom.isMandateLoginButton() != null) { showMandateLoginButton = formcustom.isMandateLoginButton(); + } - if (formcustom.isOnlyMandateLoginAllowed() != null) + if (formcustom.isOnlyMandateLoginAllowed() != null) { onlyMandateAllowed = formcustom.isOnlyMandateLoginAllowed(); + } if (MiscUtil.isNotEmpty(formcustom.getAppletRedirectTarget())) appletRedirectTarget = formcustom.getAppletRedirectTarget(); - if (MiscUtil.isNotEmpty(formcustom.getBackGroundColor())) + if (MiscUtil.isNotEmpty(formcustom.getBackGroundColor())) { backGroundColor = formcustom.getBackGroundColor(); + map.put(FormBuildUtils.MAIN_BACKGROUNDCOLOR, formcustom.getBackGroundColor()); + } - if (MiscUtil.isNotEmpty(formcustom.getButtonBackGroundColor())) + if (MiscUtil.isNotEmpty(formcustom.getButtonBackGroundColor())) { button_BackGroundColor = formcustom.getButtonBackGroundColor(); - - if (MiscUtil.isNotEmpty(formcustom.getButtonBackGroundColorFocus())) + map.put(FormBuildUtils.BUTTON_BACKGROUNDCOLOR, formcustom.getButtonBackGroundColor()); + } + + if (MiscUtil.isNotEmpty(formcustom.getButtonBackGroundColorFocus())) { button_BackGroundColorFocus = formcustom.getButtonBackGroundColorFocus(); + map.put(FormBuildUtils.BUTTON_BACKGROUNDCOLOR_FOCUS, formcustom.getButtonBackGroundColorFocus()); + } - if (MiscUtil.isNotEmpty(formcustom.getButtonFontColor())) + if (MiscUtil.isNotEmpty(formcustom.getButtonFontColor())) { button_FrontColor = formcustom.getButtonFontColor(); + map.put(FormBuildUtils.BUTTON_COLOR, formcustom.getButtonFontColor()); + } - if (MiscUtil.isNotEmpty(formcustom.getFontType())) + if (MiscUtil.isNotEmpty(formcustom.getFontType())) { fontType = formcustom.getFontType(); + map.put(FormBuildUtils.FONTFAMILY, formcustom.getFontType()); + } - if (MiscUtil.isNotEmpty(formcustom.getFrontColor())) + if (MiscUtil.isNotEmpty(formcustom.getFrontColor())) { frontColor = formcustom.getFrontColor(); + map.put(FormBuildUtils.MAIN_COLOR, formcustom.getFrontColor()); + } - if (MiscUtil.isNotEmpty(formcustom.getHeaderBackGroundColor())) + if (MiscUtil.isNotEmpty(formcustom.getHeaderBackGroundColor())) { header_BackGroundColor = formcustom.getHeaderBackGroundColor(); + map.put(FormBuildUtils.HEADER_BACKGROUNDCOLOR, formcustom.getHeaderBackGroundColor()); + } - if (MiscUtil.isNotEmpty(formcustom.getHeaderFrontColor())) + if (MiscUtil.isNotEmpty(formcustom.getHeaderFrontColor())) { header_FrontColor = formcustom.getHeaderFrontColor(); + map.put(FormBuildUtils.HEADER_COLOR, formcustom.getHeaderFrontColor()); + } - if (MiscUtil.isNotEmpty(formcustom.getHeaderText())) + if (MiscUtil.isNotEmpty(formcustom.getHeaderText())) { header_text = formcustom.getHeaderText(); + map.put(FormBuildUtils.HEADER_TEXT, formcustom.getHeaderText()); + } } } } @@ -281,6 +308,28 @@ public class FormularCustomization { return appletRedirectTargetList; } + /** + * @return the fontTypeList + */ + public List<String> getFontTypeList() { + return fontTypeList; + } + + /** + * @return the fontTypeListValue + */ + public String getFontTypeListValue() { + return fontTypeListValue; + } + + /** + * @param fontTypeListValue the fontTypeListValue to set + */ + public void setFontTypeListValue(String fontTypeListValue) { + this.fontTypeListValue = fontTypeListValue; + } + + } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java index 07c07a964..429a05242 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java @@ -50,6 +50,7 @@ public class OAGeneralConfig { private String aditionalAuthBlockText = null; private String mandateProfiles = null; + private boolean useMandates = false; private boolean isActive = false; private boolean calculateHPI = false; @@ -175,7 +176,17 @@ public class OAGeneralConfig { Mandates mandates = oaauth.getMandates(); if (mandates != null) { - mandateProfiles = mandates.getProfiles(); + + if (MiscUtil.isNotEmpty(mandates.getProfiles())) { + mandateProfiles = mandates.getProfiles(); + useMandates = true; + + } else { + mandateProfiles = new String(); + useMandates = false; + } + + } TemplatesType templates = oaauth.getTemplates(); @@ -553,5 +564,23 @@ public class OAGeneralConfig { */ public void setHideBPKAuthBlock(boolean isHideBPKAuthBlock) { this.isHideBPKAuthBlock = isHideBPKAuthBlock; + } + + + /** + * @return the useMandates + */ + public boolean isUseMandates() { + return useMandates; + } + + + /** + * @param useMandates the useMandates to set + */ + public void setUseMandates(boolean useMandates) { + this.useMandates = useMandates; } + + } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java index ca547204f..56d6ba9d7 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java @@ -1,11 +1,18 @@ package at.gv.egovernment.moa.id.configuration.struts.action; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.math.BigInteger; +import java.net.URI; import java.security.cert.CertificateException; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -15,6 +22,7 @@ import org.apache.log4j.Logger; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; +import at.gv.egovernment.moa.id.auth.builder.LoginFormBuilder; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils; import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA; @@ -36,8 +44,10 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.TemplatesType; import at.gv.egovernment.moa.id.commons.db.dao.config.TransformsInfoType; import at.gv.egovernment.moa.id.commons.db.dao.config.UserDatabase; import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException; +import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; import at.gv.egovernment.moa.id.configuration.Constants; import at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser; +import at.gv.egovernment.moa.id.configuration.config.ConfigurationProvider; import at.gv.egovernment.moa.id.configuration.data.FormularCustomization; import at.gv.egovernment.moa.id.configuration.data.oa.OAGeneralConfig; import at.gv.egovernment.moa.id.configuration.data.oa.OAPVP2Config; @@ -55,6 +65,7 @@ import at.gv.egovernment.moa.id.configuration.validation.oa.OAPVP2ConfigValidati import at.gv.egovernment.moa.id.configuration.validation.oa.OASAML1ConfigValidation; import at.gv.egovernment.moa.id.configuration.validation.oa.OASSOConfigValidation; import at.gv.egovernment.moa.id.configuration.validation.oa.OASTORKConfigValidation; +import at.gv.egovernment.moa.id.util.FormBuildUtils; import at.gv.egovernment.moa.id.util.Random; import at.gv.egovernment.moa.util.MiscUtil; @@ -90,6 +101,8 @@ ServletResponseAware { private OASTORKConfig storkOA; private FormularCustomization formOA = new FormularCustomization(); + private InputStream stream; + //STRUTS actions public String inital() { HttpSession session = request.getSession(); @@ -144,7 +157,13 @@ ServletResponseAware { generalOA.parse(onlineapplication); ssoOA.parse(onlineapplication); saml1OA.parse(onlineapplication); - formOA.parse(onlineapplication); + + + Map<String, String> map = new HashMap<String, String>(); + map.putAll(FormBuildUtils.getDefaultMap()); + formOA.parse(onlineapplication, map); + + session.setAttribute(Constants.SESSION_BKUFORMPREVIEW, map); List<String> errors = pvp2OA.parse(onlineapplication); @@ -216,6 +235,7 @@ ServletResponseAware { formID = Random.nextRandom(); session.setAttribute(Constants.SESSION_FORMID, formID); + session.setAttribute(Constants.SESSION_BKUFORMPREVIEW, null); return Constants.STRUTS_OA_EDIT; } @@ -611,6 +631,83 @@ ServletResponseAware { } + public String bkuFramePreview() { + + String preview = null; + + HttpSession session = request.getSession(); + if (session == null) { + log.info("No http Session found."); + preview = LanguageHelper.getErrorString("error.bkuformpreview.notpossible"); + + } else { + InputStream input = null; + + try { + Object mapobj = session.getAttribute(Constants.SESSION_BKUFORMPREVIEW); + if (mapobj != null && mapobj instanceof Map<?, ?>) { + + ConfigurationProvider config = ConfigurationProvider.getInstance(); + String templateURL = config.getConfigRootDir() + + ConfigurationProvider.HTMLTEMPLATE_DIR + + ConfigurationProvider.HTMLTEMPLATE_FILE; + + File file = new File(templateURL); + input = new FileInputStream(file); + + String contextpath = config.getMOAIDInstanceURL(); + if (MiscUtil.isEmpty(contextpath)) { + log.info("NO MOA-ID instance URL configurated."); + throw new ConfigurationException("No MOA-ID instance configurated"); + } + + preview = LoginFormBuilder.getTemplate(input); + preview = preview.replace(LoginFormBuilder.CONTEXTPATH, contextpath); + + + Map<String, String> map = (Map<String, String>) mapobj; + + String module = request.getParameter(Constants.REQUEST_FORMCUSTOM_MODULE); + String value = request.getParameter(Constants.REQUEST_FORMCUSTOM_VALUE); + + synchronized (map) { + + if (MiscUtil.isNotEmpty(module)) { + if (map.containsKey("#"+module+"#")) { + if (MiscUtil.isNotEmpty(value)) { + if (FormBuildUtils.FONTFAMILY.contains(module) || + FormBuildUtils.HEADER_TEXT.contains(module) || + value.startsWith("#")) + map.put("#"+module+"#", value); + else + map.put("#"+module+"#", "#"+value); + + } else { + map.put("#"+module+"#", + FormBuildUtils.getDefaultMap().get("#"+module+"#")); + } + } + } + preview = FormBuildUtils.customiceLayoutBKUSelection(preview, true, false, map); + } + + } else { + preview = LanguageHelper.getErrorString("error.bkuformpreview.notpossible"); + + } + + } catch (Exception e) { + log.warn("BKUSelection Preview can not be generated.", e); + preview = LanguageHelper.getErrorString("error.bkuformpreview.notpossible"); + + } + } + + stream = new ByteArrayInputStream(preview.getBytes()); + + return Constants.STRUTS_SUCCESS; + } + private String saveOAConfigToDatabase(OnlineApplication dboa, boolean newentry) { AuthComponentOA authoa = dboa.getAuthComponentOA(); @@ -715,17 +812,31 @@ ServletResponseAware { bkuruls.setLocalBKU(generalOA.getBkuLocalURL()); bkuruls.setOnlineBKU(generalOA.getBkuOnlineURL()); } - - Mandates mandates = new Mandates(); - mandates.setProfiles(generalOA.getMandateProfiles()); - authoa.setMandates(mandates); - + TemplatesType templates = authoa.getTemplates(); if (templates == null) { templates = new TemplatesType(); authoa.setTemplates(templates); } + BKUSelectionCustomizationType bkuselectioncustom = templates.getBKUSelectionCustomization(); + if (bkuselectioncustom == null) { + bkuselectioncustom = new BKUSelectionCustomizationType(); + templates.setBKUSelectionCustomization(bkuselectioncustom); + } + + Mandates mandates = new Mandates(); + if (generalOA.isUseMandates()) { + mandates.setProfiles(generalOA.getMandateProfiles()); + + } else { + mandates.setProfiles(new String()); + } + + authoa.setMandates(mandates); + bkuselectioncustom.setMandateLoginButton(MiscUtil.isNotEmpty(generalOA.getMandateProfiles())); + bkuselectioncustom.setOnlyMandateLoginAllowed(formOA.isOnlyMandateAllowed()); + if (authUser.isAdmin()) { templates.setAditionalAuthBlockText(generalOA.getAditionalAuthBlockText()); @@ -757,14 +868,7 @@ ServletResponseAware { if (template != null && template.size() > 0) template.clear(); } - - - BKUSelectionCustomizationType bkuselectioncustom = templates.getBKUSelectionCustomization(); - if (bkuselectioncustom == null) { - bkuselectioncustom = new BKUSelectionCustomizationType(); - templates.setBKUSelectionCustomization(bkuselectioncustom); - } - + bkuselectioncustom.setBackGroundColor(parseColor(formOA.getBackGroundColor())); bkuselectioncustom.setFrontColor(parseColor(formOA.getFrontColor())); @@ -779,11 +883,8 @@ ServletResponseAware { if (MiscUtil.isNotEmpty(formOA.getAppletRedirectTarget())) bkuselectioncustom.setAppletRedirectTarget(formOA.getAppletRedirectTarget()); - bkuselectioncustom.setFontType(formOA.getFontType()); - - bkuselectioncustom.setMandateLoginButton(formOA.isShowMandateLoginButton()); - bkuselectioncustom.setOnlyMandateLoginAllowed(formOA.isOnlyMandateAllowed()); - + bkuselectioncustom.setFontType(formOA.getFontType()); + } //set default transformation if it is empty @@ -1120,6 +1221,13 @@ ServletResponseAware { public void setFormOA(FormularCustomization formOA) { this.formOA = formOA; } + + /** + * @return the stream + */ + public InputStream getStream() { + return stream; + } } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java index 87ac31e89..f3f96e7f2 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java @@ -131,12 +131,20 @@ public class OAGeneralConfigValidation { //check Mandate Profiles check = form.getMandateProfiles(); if (MiscUtil.isNotEmpty(check)) { + + if (!form.isUseMandates()) { + log.info("MandateProfiles configured but useMandates is false."); + errors.add(LanguageHelper.getErrorString("validation.general.mandate.usemandate")); + } + if (ValidationHelper.containsPotentialCSSCharacter(check, true)) { log.warn("MandateProfiles contains potentail XSS characters: " + check); errors.add(LanguageHelper.getErrorString("validation.general.mandate.profiles", new Object[] {ValidationHelper.getPotentialCSSCharacter(true)} )); } } + + boolean businessservice = form.isBusinessService(); diff --git a/id/ConfigWebTool/src/main/resources/applicationResources.properties b/id/ConfigWebTool/src/main/resources/applicationResources.properties index 103be82c4..cad135b95 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources.properties @@ -26,6 +26,7 @@ error.login=Der Anmeldevorgang wurde abgebrochen. Bitte Versuchen sie es noch ei error.mail.send=An die angegebene Mailadresse konnte keine Nachticht versendet werden. error.mail.verification=Der Verifikationsvorgang wurde durch einen internen Fehler unterbrochen. Bitte Versuchen sie es noch einmal. error.editoa.mailverification=Die Verwaltung von Online-Applikationen ist vor\u00FCbergehend deaktiviert, da die Mailadresse des Benutzeraccounts noch nicht verifiziert wurde. +error.bkuformpreview.notpossible="Die Vorschau konnte nicht generiert werden da ein interner Fehler auftreten ist." mail.userrequest.subject=Accountanforderung MOA-ID 2.x Konfigurationstool @@ -162,6 +163,7 @@ webpages.oaconfig.general.bku.sltemplate.third=3. SecurityLayer Template webpages.oaconfig.general.identification=Eindeutiger Identifikatior (PublicURLPrefix) webpages.oaconfig.general.mandate.header=Vollmachten webpages.oaconfig.general.mandate.profiles=Profile +webpages.oaconfig.general.mandate.usemandate=Vollmachten (ja/nein) webpages.oaconfig.general.friendlyname=Name der Online-Applikation webpages.oaconfig.general.isbusinessservice=Privatwirtschaftliche Applikation webpages.oaconfig.general.public.header=Öffentlicher Bereich @@ -192,10 +194,9 @@ webpages.oaconfig.menu.stork=STORK Konfiguration webpages.oaconfig.protocols.header=Authentifizierungsprotokolle -webpages.oaconfig.general.BKUSelection.button.show=Formularkonfiguration einblenden -webpages.oaconfig.general.BKUSelection.button.hidden=Formularkonfiguration ausblenden +webpages.oaconfig.general.BKUSelection.button.show=Login-Fenster Konfiguration einblenden +webpages.oaconfig.general.BKUSelection.button.hidden=Login-Fenster Konfiguration ausblenden webpages.oaconfig.general.BKUSelection.header=Formularkonfiguration -webpages.oaconfig.general.BKUSelection.isMandateLoginCheckboxVisible=Vollmachtenanmeldung anzeigen webpages.oaconfig.general.BKUSelection.isOnlyMandateLoginAllowed=Nur Vollmachtenanmeldung erlauben webpages.oaconfig.general.BKUSelection.backgroundcolor=Hintergrundfarbe der BKU-Auswahl webpages.oaconfig.general.BKUSelection.frontcolor=Vordergrundfarbe der BKU-Auswahl @@ -207,6 +208,7 @@ webpages.oaconfig.general.BKUSelection.header.button.background.focus=Hintergrun webpages.oaconfig.general.BKUSelection.header.button.front=Vordergrundfarbe der Schaltfl\u00E4chen webpages.oaconfig.general.BKUSelection.redirectTarget=Targetparameter webpages.oaconfig.general.BKUSelection.fonttype=Formularschrifttyp +webpages.oaconfig.general.BKUSelection.fonttype.list=Formularschrifttypen webpages.oaconfig.sso.header=Single Sign-On webpages.oaconfig.sso.singlelogouturl=Single Log-Out URL @@ -332,6 +334,7 @@ validation.general.sltemplate1.valid=Die erste SecurityLayer Template URL hat ke validation.general.sltemplate2.valid=Die zweite SecurityLayer Template URL hat kein g\u00FCltiges Format. validation.general.sltemplate3.valid=Die dritte SecurityLayer Template URL hat kein g\u00FCltiges Format. validation.general.mandate.profiles=Die Liste von Vollmachtsprofilen enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.mandate.usemandate=Die Konfiguration von Vollmachtsprofile ist nur mit aktivierten Vollmachten m\u00F6glich. validation.general.target.empty=Der Target f\u00FCr die Online-Applikation ist leer. validation.general.target.valid=Der Target f\u00FCr die Online-Applikation hat kein g\u00FCltiges Format. validation.general.target.subsector.valid=Der Target-Subsektor hat kein g\u00FCltiges Format. @@ -362,13 +365,13 @@ validation.saml1.providestammzahl=ProvideStammZahl kann nicht mit Applikationen validation.general.bkuselection.specialfeatures.valid=Die speziellen Einstellungen f\u00FCr die BKU Auswahl (Vollmachtsanmeldung ausblenden / zwingend voraussetzen) k\u00F6nnen nicht in Kombination mit SSO verwendet werden. validation.general.bkuselection.specialfeatures.combination=Eine zwingend erforderliche Vollmachtenanmeldung in Kombination mit einer ausgeblendeten Vollmachtenauswahlcheckbox ist nicht m\u00F6glich. -validation.general.form.color.background=Die Hintergrundfarbe f\\u00FCr die BKU Auswahl enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) -validation.general.form.color.front=Die Vordergrundfarbe f\\u00FCr die BKU Auswahl enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) -validation.general.form.header.color.back=Die Hintergrundfarbe der BKU-Auswahl\\u00FCberschrift enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) -validation.general.form.header.color.front=Die Vordergrundfarbe der BKU-Auswahl\\u00FCberschrift enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) +validation.general.form.color.background=Die Hintergrundfarbe f\\u00FCr die BKU Auswahl enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.color.front=Die Vordergrundfarbe f\\u00FCr die BKU Auswahl enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.header.color.back=Die Hintergrundfarbe der BKU-Auswahl\\u00FCberschrift enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.header.color.front=Die Vordergrundfarbe der BKU-Auswahl\\u00FCberschrift enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) validation.general.form.header.text=Die BKU-Auswahl\\u00FCberschrift enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} -validation.general.form.button.color.back.focus=Die Hintergrundfarbe f\\u00FCr Focus der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) -validation.general.form.button.color.back=Die Hintergrundfarbe der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) -validation.general.form.button.color.front=Die Vordergrundfarbe der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) +validation.general.form.button.color.back.focus=Die Hintergrundfarbe f\\u00FCr Focus der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.button.color.back=Die Hintergrundfarbe der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.button.color.front=Die Vordergrundfarbe der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) validation.general.form.appletredirecttarget=Der RedirectTarget beinhaltet einen ung\\u00FCltiten Wert. validation.general.form.fonttype=Der BKU-Auswahl Schrifttyp enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0}
\ No newline at end of file diff --git a/id/ConfigWebTool/src/main/resources/struts.xml b/id/ConfigWebTool/src/main/resources/struts.xml index a0bf3f468..ee5baf8d6 100644 --- a/id/ConfigWebTool/src/main/resources/struts.xml +++ b/id/ConfigWebTool/src/main/resources/struts.xml @@ -135,6 +135,14 @@ <interceptor-ref name="defaultStack"/> </action> + <action name="bkuFramePreview" method="bkuFramePreview" class="at.gv.egovernment.moa.id.configuration.struts.action.EditOAAction"> + <result type="stream"> + <param name="contentType">text/html</param> + <param name="inputName">stream</param> + </result> + <interceptor-ref name="defaultStack"/> + </action> + <action name="saveOA" method="saveOA" class="at.gv.egovernment.moa.id.configuration.struts.action.EditOAAction"> <result name="success" type="chain">${nextPage}</result> <result name="error_validation">/jsp/editOAGeneral.jsp</result> diff --git a/id/ConfigWebTool/src/main/webapp/css/colorpicker.css b/id/ConfigWebTool/src/main/webapp/css/colorpicker.css new file mode 100644 index 000000000..0b3d5d936 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/css/colorpicker.css @@ -0,0 +1,161 @@ +.colorpicker { + width: 356px; + height: 176px; + overflow: hidden; + position: absolute; + background: url(../images/colorpicker_background.png); + font-family: Arial, Helvetica, sans-serif; + display: none; +} +.colorpicker_color { + width: 150px; + height: 150px; + left: 14px; + top: 13px; + position: absolute; + background: #f00; + overflow: hidden; + cursor: crosshair; +} +.colorpicker_color div { + position: absolute; + top: 0; + left: 0; + width: 150px; + height: 150px; + background: url(../images/colorpicker_overlay.png); +} +.colorpicker_color div div { + position: absolute; + top: 0; + left: 0; + width: 11px; + height: 11px; + overflow: hidden; + background: url(../images/colorpicker_select.gif); + margin: -5px 0 0 -5px; +} +.colorpicker_hue { + position: absolute; + top: 13px; + left: 171px; + width: 35px; + height: 150px; + cursor: n-resize; +} +.colorpicker_hue div { + position: absolute; + width: 35px; + height: 9px; + overflow: hidden; + background: url(../images/colorpicker_indic.gif) left top; + margin: -4px 0 0 0; + left: 0px; +} +.colorpicker_new_color { + position: absolute; + width: 60px; + height: 30px; + left: 213px; + top: 13px; + background: #f00; +} +.colorpicker_current_color { + position: absolute; + width: 60px; + height: 30px; + left: 283px; + top: 13px; + background: #f00; +} +.colorpicker input { + background-color: transparent; + border: 1px solid transparent; + position: absolute; + font-size: 10px; + font-family: Arial, Helvetica, sans-serif; + color: #898989; + top: 4px; + right: 11px; + text-align: right; + margin: 0; + padding: 0; + height: 11px; +} +.colorpicker_hex { + position: absolute; + width: 72px; + height: 22px; + background: url(../images/colorpicker_hex.png) top; + left: 212px; + top: 142px; +} +.colorpicker_hex input { + right: 6px; +} +.colorpicker_field { + height: 22px; + width: 62px; + background-position: top; + position: absolute; +} +.colorpicker_field span { + position: absolute; + width: 12px; + height: 22px; + overflow: hidden; + top: 0; + right: 0; + cursor: n-resize; +} +.colorpicker_rgb_r { + background-image: url(../images/colorpicker_rgb_r.png); + top: 52px; + left: 212px; +} +.colorpicker_rgb_g { + background-image: url(../images/colorpicker_rgb_g.png); + top: 82px; + left: 212px; +} +.colorpicker_rgb_b { + background-image: url(../images/colorpicker_rgb_b.png); + top: 112px; + left: 212px; +} +.colorpicker_hsb_h { + background-image: url(../images/colorpicker_hsb_h.png); + top: 52px; + left: 282px; +} +.colorpicker_hsb_s { + background-image: url(../images/colorpicker_hsb_s.png); + top: 82px; + left: 282px; +} +.colorpicker_hsb_b { + background-image: url(../images/colorpicker_hsb_b.png); + top: 112px; + left: 282px; +} +.colorpicker_submit { + position: absolute; + width: 22px; + height: 22px; + background: url(../images/colorpicker_submit.png) top; + left: 322px; + top: 142px; + overflow: hidden; +} +.colorpicker_focus { + background-position: center; +} +.colorpicker_hex.colorpicker_focus { + background-position: bottom; +} +.colorpicker_submit.colorpicker_focus { + background-position: bottom; +} +.colorpicker_slider { + background-position: bottom; +} diff --git a/id/ConfigWebTool/src/main/webapp/css/index.css b/id/ConfigWebTool/src/main/webapp/css/index.css index 911db5334..14591f1dc 100644 --- a/id/ConfigWebTool/src/main/webapp/css/index.css +++ b/id/ConfigWebTool/src/main/webapp/css/index.css @@ -147,6 +147,16 @@ margin-bottom: 50px; } +#formCustomValues { + float: left; +} + +#formCustomPreview { + float: left; + margin-bottom: 25px; + margin-left: 25px; +} + #mail_area input { float: right; } @@ -230,7 +240,7 @@ } .wwgrp { - clear:both; + clear:left; } #oa_saml1_area .wwgrp { @@ -258,7 +268,7 @@ div .wwgrp br { } .textfield_mail { - width: 400px; + width: 300px; } .textfield_long { diff --git a/id/ConfigWebTool/src/main/webapp/images/blank.gif b/id/ConfigWebTool/src/main/webapp/images/blank.gif Binary files differnew file mode 100644 index 000000000..75b945d25 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/blank.gif diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_background.png b/id/ConfigWebTool/src/main/webapp/images/colorpicker_background.png Binary files differnew file mode 100644 index 000000000..8401572f1 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_background.png diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_hex.png b/id/ConfigWebTool/src/main/webapp/images/colorpicker_hex.png Binary files differnew file mode 100644 index 000000000..4e532d7c6 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_hex.png diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_hsb_b.png b/id/ConfigWebTool/src/main/webapp/images/colorpicker_hsb_b.png Binary files differnew file mode 100644 index 000000000..dfac595d0 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_hsb_b.png diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_hsb_h.png b/id/ConfigWebTool/src/main/webapp/images/colorpicker_hsb_h.png Binary files differnew file mode 100644 index 000000000..3977ed9f2 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_hsb_h.png diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_hsb_s.png b/id/ConfigWebTool/src/main/webapp/images/colorpicker_hsb_s.png Binary files differnew file mode 100644 index 000000000..a2a699736 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_hsb_s.png diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_indic.gif b/id/ConfigWebTool/src/main/webapp/images/colorpicker_indic.gif Binary files differnew file mode 100644 index 000000000..f9fa95e28 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_indic.gif diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_overlay.png b/id/ConfigWebTool/src/main/webapp/images/colorpicker_overlay.png Binary files differnew file mode 100644 index 000000000..561cdd9c5 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_overlay.png diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_rgb_b.png b/id/ConfigWebTool/src/main/webapp/images/colorpicker_rgb_b.png Binary files differnew file mode 100644 index 000000000..dfac595d0 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_rgb_b.png diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_rgb_g.png b/id/ConfigWebTool/src/main/webapp/images/colorpicker_rgb_g.png Binary files differnew file mode 100644 index 000000000..72b32760a --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_rgb_g.png diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_rgb_r.png b/id/ConfigWebTool/src/main/webapp/images/colorpicker_rgb_r.png Binary files differnew file mode 100644 index 000000000..4855fe03f --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_rgb_r.png diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_select.gif b/id/ConfigWebTool/src/main/webapp/images/colorpicker_select.gif Binary files differnew file mode 100644 index 000000000..599f7f13a --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_select.gif diff --git a/id/ConfigWebTool/src/main/webapp/images/colorpicker_submit.png b/id/ConfigWebTool/src/main/webapp/images/colorpicker_submit.png Binary files differnew file mode 100644 index 000000000..7f4c0825f --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/colorpicker_submit.png diff --git a/id/ConfigWebTool/src/main/webapp/images/custom_background.png b/id/ConfigWebTool/src/main/webapp/images/custom_background.png Binary files differnew file mode 100644 index 000000000..cf55ffdd6 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/custom_background.png diff --git a/id/ConfigWebTool/src/main/webapp/images/custom_hex.png b/id/ConfigWebTool/src/main/webapp/images/custom_hex.png Binary files differnew file mode 100644 index 000000000..888f44449 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/custom_hex.png diff --git a/id/ConfigWebTool/src/main/webapp/images/custom_hsb_b.png b/id/ConfigWebTool/src/main/webapp/images/custom_hsb_b.png Binary files differnew file mode 100644 index 000000000..2f99dae8e --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/custom_hsb_b.png diff --git a/id/ConfigWebTool/src/main/webapp/images/custom_hsb_h.png b/id/ConfigWebTool/src/main/webapp/images/custom_hsb_h.png Binary files differnew file mode 100644 index 000000000..a217e9218 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/custom_hsb_h.png diff --git a/id/ConfigWebTool/src/main/webapp/images/custom_hsb_s.png b/id/ConfigWebTool/src/main/webapp/images/custom_hsb_s.png Binary files differnew file mode 100644 index 000000000..7826b4150 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/custom_hsb_s.png diff --git a/id/ConfigWebTool/src/main/webapp/images/custom_indic.gif b/id/ConfigWebTool/src/main/webapp/images/custom_indic.gif Binary files differnew file mode 100644 index 000000000..222fb94cf --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/custom_indic.gif diff --git a/id/ConfigWebTool/src/main/webapp/images/custom_rgb_b.png b/id/ConfigWebTool/src/main/webapp/images/custom_rgb_b.png Binary files differnew file mode 100644 index 000000000..80764e5d6 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/custom_rgb_b.png diff --git a/id/ConfigWebTool/src/main/webapp/images/custom_rgb_g.png b/id/ConfigWebTool/src/main/webapp/images/custom_rgb_g.png Binary files differnew file mode 100644 index 000000000..fc9778be1 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/custom_rgb_g.png diff --git a/id/ConfigWebTool/src/main/webapp/images/custom_rgb_r.png b/id/ConfigWebTool/src/main/webapp/images/custom_rgb_r.png Binary files differnew file mode 100644 index 000000000..91b0cd4c5 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/custom_rgb_r.png diff --git a/id/ConfigWebTool/src/main/webapp/images/custom_submit.png b/id/ConfigWebTool/src/main/webapp/images/custom_submit.png Binary files differnew file mode 100644 index 000000000..cd202cd93 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/custom_submit.png diff --git a/id/ConfigWebTool/src/main/webapp/images/select.png b/id/ConfigWebTool/src/main/webapp/images/select.png Binary files differnew file mode 100644 index 000000000..21213bfd5 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/select.png diff --git a/id/ConfigWebTool/src/main/webapp/images/select2.png b/id/ConfigWebTool/src/main/webapp/images/select2.png Binary files differnew file mode 100644 index 000000000..2cd2cabeb --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/select2.png diff --git a/id/ConfigWebTool/src/main/webapp/images/slider.png b/id/ConfigWebTool/src/main/webapp/images/slider.png Binary files differnew file mode 100644 index 000000000..8b03da96e --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/images/slider.png diff --git a/id/ConfigWebTool/src/main/webapp/js/colorpicker.js b/id/ConfigWebTool/src/main/webapp/js/colorpicker.js new file mode 100644 index 000000000..45f56ced7 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/js/colorpicker.js @@ -0,0 +1,484 @@ +/** + * + * Color picker + * Author: Stefan Petre www.eyecon.ro + * + * Dual licensed under the MIT and GPL licenses + * + */ +(function ($) { + var ColorPicker = function () { + var + ids = {}, + inAction, + charMin = 65, + visible, + tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>', + defaults = { + eventName: 'click', + onShow: function () {}, + onBeforeShow: function(){}, + onHide: function () {}, + onChange: function () {}, + onSubmit: function () {}, + color: 'ff0000', + livePreview: true, + flat: false + }, + fillRGBFields = function (hsb, cal) { + var rgb = HSBToRGB(hsb); + $(cal).data('colorpicker').fields + .eq(1).val(rgb.r).end() + .eq(2).val(rgb.g).end() + .eq(3).val(rgb.b).end(); + }, + fillHSBFields = function (hsb, cal) { + $(cal).data('colorpicker').fields + .eq(4).val(hsb.h).end() + .eq(5).val(hsb.s).end() + .eq(6).val(hsb.b).end(); + }, + fillHexFields = function (hsb, cal) { + $(cal).data('colorpicker').fields + .eq(0).val(HSBToHex(hsb)).end(); + }, + setSelector = function (hsb, cal) { + $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100})); + $(cal).data('colorpicker').selectorIndic.css({ + left: parseInt(150 * hsb.s/100, 10), + top: parseInt(150 * (100-hsb.b)/100, 10) + }); + }, + setHue = function (hsb, cal) { + $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10)); + }, + setCurrentColor = function (hsb, cal) { + $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb)); + }, + setNewColor = function (hsb, cal) { + $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb)); + }, + keyDown = function (ev) { + var pressedKey = ev.charCode || ev.keyCode || -1; + if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) { + return false; + } + var cal = $(this).parent().parent(); + if (cal.data('colorpicker').livePreview === true) { + change.apply(this); + } + }, + change = function (ev) { + var cal = $(this).parent().parent(), col; + if (this.parentNode.className.indexOf('_hex') > 0) { + cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value)); + } else if (this.parentNode.className.indexOf('_hsb') > 0) { + cal.data('colorpicker').color = col = fixHSB({ + h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10), + s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10), + b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10) + }); + } else { + cal.data('colorpicker').color = col = RGBToHSB(fixRGB({ + r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10), + g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10), + b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10) + })); + } + if (ev) { + fillRGBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + } + setSelector(col, cal.get(0)); + setHue(col, cal.get(0)); + setNewColor(col, cal.get(0)); + cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]); + }, + blur = function (ev) { + var cal = $(this).parent().parent(); + cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus'); + }, + focus = function () { + charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65; + $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus'); + $(this).parent().addClass('colorpicker_focus'); + }, + downIncrement = function (ev) { + var field = $(this).parent().find('input').focus(); + var current = { + el: $(this).parent().addClass('colorpicker_slider'), + max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255), + y: ev.pageY, + field: field, + val: parseInt(field.val(), 10), + preview: $(this).parent().parent().data('colorpicker').livePreview + }; + $(document).bind('mouseup', current, upIncrement); + $(document).bind('mousemove', current, moveIncrement); + }, + moveIncrement = function (ev) { + ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10)))); + if (ev.data.preview) { + change.apply(ev.data.field.get(0), [true]); + } + return false; + }, + upIncrement = function (ev) { + change.apply(ev.data.field.get(0), [true]); + ev.data.el.removeClass('colorpicker_slider').find('input').focus(); + $(document).unbind('mouseup', upIncrement); + $(document).unbind('mousemove', moveIncrement); + return false; + }, + downHue = function (ev) { + var current = { + cal: $(this).parent(), + y: $(this).offset().top + }; + current.preview = current.cal.data('colorpicker').livePreview; + $(document).bind('mouseup', current, upHue); + $(document).bind('mousemove', current, moveHue); + }, + moveHue = function (ev) { + change.apply( + ev.data.cal.data('colorpicker') + .fields + .eq(4) + .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10)) + .get(0), + [ev.data.preview] + ); + return false; + }, + upHue = function (ev) { + fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + $(document).unbind('mouseup', upHue); + $(document).unbind('mousemove', moveHue); + return false; + }, + downSelector = function (ev) { + var current = { + cal: $(this).parent(), + pos: $(this).offset() + }; + current.preview = current.cal.data('colorpicker').livePreview; + $(document).bind('mouseup', current, upSelector); + $(document).bind('mousemove', current, moveSelector); + }, + moveSelector = function (ev) { + change.apply( + ev.data.cal.data('colorpicker') + .fields + .eq(6) + .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10)) + .end() + .eq(5) + .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10)) + .get(0), + [ev.data.preview] + ); + return false; + }, + upSelector = function (ev) { + fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + $(document).unbind('mouseup', upSelector); + $(document).unbind('mousemove', moveSelector); + return false; + }, + enterSubmit = function (ev) { + $(this).addClass('colorpicker_focus'); + }, + leaveSubmit = function (ev) { + $(this).removeClass('colorpicker_focus'); + }, + clickSubmit = function (ev) { + var cal = $(this).parent(); + var col = cal.data('colorpicker').color; + cal.data('colorpicker').origColor = col; + setCurrentColor(col, cal.get(0)); + cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); + }, + show = function (ev) { + var cal = $('#' + $(this).data('colorpickerId')); + cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]); + var pos = $(this).offset(); + var viewPort = getViewport(); + var top = pos.top + this.offsetHeight; + var left = pos.left; + if (top + 176 > viewPort.t + viewPort.h) { + top -= this.offsetHeight + 176; + } + if (left + 356 > viewPort.l + viewPort.w) { + left -= 356; + } + cal.css({left: left + 'px', top: top + 'px'}); + if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) { + cal.show(); + } + $(document).bind('mousedown', {cal: cal}, hide); + return false; + }, + hide = function (ev) { + if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { + if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { + ev.data.cal.hide(); + } + $(document).unbind('mousedown', hide); + } + }, + isChildOf = function(parentEl, el, container) { + if (parentEl == el) { + return true; + } + if (parentEl.contains) { + return parentEl.contains(el); + } + if ( parentEl.compareDocumentPosition ) { + return !!(parentEl.compareDocumentPosition(el) & 16); + } + var prEl = el.parentNode; + while(prEl && prEl != container) { + if (prEl == parentEl) + return true; + prEl = prEl.parentNode; + } + return false; + }, + getViewport = function () { + var m = document.compatMode == 'CSS1Compat'; + return { + l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), + t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), + w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), + h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) + }; + }, + fixHSB = function (hsb) { + return { + h: Math.min(360, Math.max(0, hsb.h)), + s: Math.min(100, Math.max(0, hsb.s)), + b: Math.min(100, Math.max(0, hsb.b)) + }; + }, + fixRGB = function (rgb) { + return { + r: Math.min(255, Math.max(0, rgb.r)), + g: Math.min(255, Math.max(0, rgb.g)), + b: Math.min(255, Math.max(0, rgb.b)) + }; + }, + fixHex = function (hex) { + var len = 6 - hex.length; + if (len > 0) { + var o = []; + for (var i=0; i<len; i++) { + o.push('0'); + } + o.push(hex); + hex = o.join(''); + } + return hex; + }, + HexToRGB = function (hex) { + var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16); + return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)}; + }, + HexToHSB = function (hex) { + return RGBToHSB(HexToRGB(hex)); + }, + RGBToHSB = function (rgb) { + var hsb = { + h: 0, + s: 0, + b: 0 + }; + var min = Math.min(rgb.r, rgb.g, rgb.b); + var max = Math.max(rgb.r, rgb.g, rgb.b); + var delta = max - min; + hsb.b = max; + if (max != 0) { + + } + hsb.s = max != 0 ? 255 * delta / max : 0; + if (hsb.s != 0) { + if (rgb.r == max) { + hsb.h = (rgb.g - rgb.b) / delta; + } else if (rgb.g == max) { + hsb.h = 2 + (rgb.b - rgb.r) / delta; + } else { + hsb.h = 4 + (rgb.r - rgb.g) / delta; + } + } else { + hsb.h = -1; + } + hsb.h *= 60; + if (hsb.h < 0) { + hsb.h += 360; + } + hsb.s *= 100/255; + hsb.b *= 100/255; + return hsb; + }, + HSBToRGB = function (hsb) { + var rgb = {}; + var h = Math.round(hsb.h); + var s = Math.round(hsb.s*255/100); + var v = Math.round(hsb.b*255/100); + if(s == 0) { + rgb.r = rgb.g = rgb.b = v; + } else { + var t1 = v; + var t2 = (255-s)*v/255; + var t3 = (t1-t2)*(h%60)/60; + if(h==360) h = 0; + if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3} + else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3} + else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3} + else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3} + else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3} + else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3} + else {rgb.r=0; rgb.g=0; rgb.b=0} + } + return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)}; + }, + RGBToHex = function (rgb) { + var hex = [ + rgb.r.toString(16), + rgb.g.toString(16), + rgb.b.toString(16) + ]; + $.each(hex, function (nr, val) { + if (val.length == 1) { + hex[nr] = '0' + val; + } + }); + return hex.join(''); + }, + HSBToHex = function (hsb) { + return RGBToHex(HSBToRGB(hsb)); + }, + restoreOriginal = function () { + var cal = $(this).parent(); + var col = cal.data('colorpicker').origColor; + cal.data('colorpicker').color = col; + fillRGBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + setSelector(col, cal.get(0)); + setHue(col, cal.get(0)); + setNewColor(col, cal.get(0)); + }; + return { + init: function (opt) { + opt = $.extend({}, defaults, opt||{}); + if (typeof opt.color == 'string') { + opt.color = HexToHSB(opt.color); + } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) { + opt.color = RGBToHSB(opt.color); + } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) { + opt.color = fixHSB(opt.color); + } else { + return this; + } + return this.each(function () { + if (!$(this).data('colorpickerId')) { + var options = $.extend({}, opt); + options.origColor = opt.color; + var id = 'collorpicker_' + parseInt(Math.random() * 1000); + $(this).data('colorpickerId', id); + var cal = $(tpl).attr('id', id); + if (options.flat) { + cal.appendTo(this).show(); + } else { + cal.appendTo(document.body); + } + options.fields = cal + .find('input') + .bind('keyup', keyDown) + .bind('change', change) + .bind('blur', blur) + .bind('focus', focus); + cal + .find('span').bind('mousedown', downIncrement).end() + .find('>div.colorpicker_current_color').bind('click', restoreOriginal); + options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector); + options.selectorIndic = options.selector.find('div div'); + options.el = this; + options.hue = cal.find('div.colorpicker_hue div'); + cal.find('div.colorpicker_hue').bind('mousedown', downHue); + options.newColor = cal.find('div.colorpicker_new_color'); + options.currentColor = cal.find('div.colorpicker_current_color'); + cal.data('colorpicker', options); + cal.find('div.colorpicker_submit') + .bind('mouseenter', enterSubmit) + .bind('mouseleave', leaveSubmit) + .bind('click', clickSubmit); + fillRGBFields(options.color, cal.get(0)); + fillHSBFields(options.color, cal.get(0)); + fillHexFields(options.color, cal.get(0)); + setHue(options.color, cal.get(0)); + setSelector(options.color, cal.get(0)); + setCurrentColor(options.color, cal.get(0)); + setNewColor(options.color, cal.get(0)); + if (options.flat) { + cal.css({ + position: 'relative', + display: 'block' + }); + } else { + $(this).bind(options.eventName, show); + } + } + }); + }, + showPicker: function() { + return this.each( function () { + if ($(this).data('colorpickerId')) { + show.apply(this); + } + }); + }, + hidePicker: function() { + return this.each( function () { + if ($(this).data('colorpickerId')) { + $('#' + $(this).data('colorpickerId')).hide(); + } + }); + }, + setColor: function(col) { + if (typeof col == 'string') { + col = HexToHSB(col); + } else if (col.r != undefined && col.g != undefined && col.b != undefined) { + col = RGBToHSB(col); + } else if (col.h != undefined && col.s != undefined && col.b != undefined) { + col = fixHSB(col); + } else { + return this; + } + return this.each(function(){ + if ($(this).data('colorpickerId')) { + var cal = $('#' + $(this).data('colorpickerId')); + cal.data('colorpicker').color = col; + cal.data('colorpicker').origColor = col; + fillRGBFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + setHue(col, cal.get(0)); + setSelector(col, cal.get(0)); + setCurrentColor(col, cal.get(0)); + setNewColor(col, cal.get(0)); + } + }); + } + }; + }(); + $.fn.extend({ + ColorPicker: ColorPicker.init, + ColorPickerHide: ColorPicker.hidePicker, + ColorPickerShow: ColorPicker.showPicker, + ColorPickerSetColor: ColorPicker.setColor + }); +})(jQuery)
\ No newline at end of file diff --git a/id/ConfigWebTool/src/main/webapp/js/common.js b/id/ConfigWebTool/src/main/webapp/js/common.js index d32350ce1..305e4d1ee 100644 --- a/id/ConfigWebTool/src/main/webapp/js/common.js +++ b/id/ConfigWebTool/src/main/webapp/js/common.js @@ -53,6 +53,7 @@ function oaFormCustom() { $('#formcustom_area').css('display', "block"); $('#formcustom_button_show').css('display', "none"); $('#formcustom_button_hidden').css('display', "block"); + $("#formCustomPreview>iframe").attr("src", "./bkuFramePreview.action"); } } function editOA(oaid){ @@ -135,6 +136,11 @@ function sendVerificationMail() { }, }); } +function updateBKUFormPreview(module) { + var value = $("#"+module).val(); + + $("#formCustomPreview>iframe").attr("src", "./bkuFramePreview.action?module="+module+"&value="+value.replace("#","")); +} function userOnLoad() { UseUserNamePassword(); return true; @@ -145,5 +151,18 @@ function oaOnLoad() { oaLegacyService(); AdminTarget(); oaTargetSubSector(); + + $(".colorfield").each( + function() { + $(this).ColorPicker({ + color : $(this).val(), + onSubmit : function(hsb, hex, rgb, el) { + $(el).val(hex); + updateBKUFormPreview($(el).attr("id")); + } + }); + } + ); + return true; }
\ No newline at end of file diff --git a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp index f7a722893..e8bb346a6 100644 --- a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp +++ b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp @@ -7,9 +7,12 @@ <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <link rel="stylesheet" type="text/css" href="../css/index.css"> + <link rel="stylesheet" media="screen" type="text/css" href="../css/colorpicker.css" /> + <title><%=LanguageHelper.getGUIString("title", request) %></title> <script type="text/javascript" src="../js/common.js"></script> <script src="../js/jquery.js"></script> + <script type="text/javascript" src="../js/colorpicker.js"></script> </head> @@ -244,12 +247,28 @@ <div class="oa_config_block"> <h3><%=LanguageHelper.getGUIString("webpages.oaconfig.general.mandate.header", request) %></h3> + + <s:checkbox name="generalOA.useMandates" + value="%{generalOA.useMandates}" + labelposition="left" + key="webpages.oaconfig.general.mandate.usemandate" + cssClass="checkbox"> + </s:checkbox> + <s:textfield name="generalOA.mandateProfiles" value="%{generalOA.mandateProfiles}" labelposition="left" key="webpages.oaconfig.general.mandate.profiles" cssClass="textfield_long"> </s:textfield> + + <s:checkbox name="formOA.onlyMandateAllowed" + value="%{formOA.onlyMandateAllowed}" + labelposition="left" + key="webpages.oaconfig.general.BKUSelection.isOnlyMandateLoginAllowed" + cssClass="checkbox"> + </s:checkbox> + </div> <div class="oa_config_block"> @@ -326,13 +345,13 @@ key="webpages.oaconfig.saml1.provideAuthBlock" cssClass="checkbox"> </s:checkbox> + <br> <s:checkbox name="saml1OA.provideIdentityLink" value="%{saml1OA.provideIdentityLink}" labelposition="left" key="webpages.oaconfig.saml1.provideIdentityLink" cssClass="checkbox"> - </s:checkbox> - <br> + </s:checkbox> <s:checkbox name="saml1OA.provideCertificate" value="%{saml1OA.provideCertificate}" labelposition="left" @@ -417,85 +436,111 @@ <div id="formcustom_area" class="oa_protocol_area"> <h4><%=LanguageHelper.getGUIString("webpages.oaconfig.general.BKUSelection.header", request) %></h4> - - <s:checkbox name="formOA.showMandateLoginButton" - value="%{formOA.showMandateLoginButton}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.isMandateLoginCheckboxVisible" - cssClass="checkbox"> - </s:checkbox> - <s:checkbox name="formOA.onlyMandateAllowed" - value="%{formOA.onlyMandateAllowed}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.isOnlyMandateLoginAllowed" - cssClass="checkbox"> - </s:checkbox> - - <s:textfield name="formOA.backGroundColor" - value="%{formOA.backGroundColor}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.backgroundcolor" - cssClass="textfield_middle"> - </s:textfield> - <s:textfield name="formOA.frontColor" - value="%{formOA.frontColor}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.frontcolor" - cssClass="textfield_middle"> - </s:textfield> - - <s:textfield name="formOA.header_BackGroundColor" - value="%{formOA.header_BackGroundColor}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.header.backgroundcolor" - cssClass="textfield_middle"> - </s:textfield> - <s:textfield name="formOA.header_FrontColor" - value="%{formOA.header_FrontColor}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.header.frontcolor" - cssClass="textfield_middle"> - </s:textfield> - <s:textfield name="formOA.header_text" - value="%{formOA.header_text}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.header.text" - cssClass="textfield_middle"> - </s:textfield> - - <s:textfield name="formOA.button_BackGroundColor" - value="%{formOA.button_BackGroundColor}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.header.button.background" - cssClass="textfield_middle"> - </s:textfield> - <s:textfield name="formOA.button_BackGroundColorFocus" - value="%{formOA.button_BackGroundColorFocus}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.header.button.background.focus" - cssClass="textfield_middle"> - </s:textfield> - <s:textfield name="formOA.button_FrontColor" - value="%{formOA.button_FrontColor}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.header.button.front" - cssClass="textfield_middle"> - </s:textfield> - - <s:select list="formOA.appletRedirectTargetList" - key="webpages.oaconfig.general.BKUSelection.redirectTarget" - labelposition="left" - cssClass="selectfield" - value="%{formOA.appletRedirectTarget}" - name="formOA.appletRedirectTarget"> - </s:select> - <s:textfield name="formOA.fontType" - value="%{formOA.fontType}" - labelposition="left" - key="webpages.oaconfig.general.BKUSelection.fonttype" - cssClass="textfield_long"> - </s:textfield> + + <div id="formCustomValues"> + <s:textfield name="formOA.backGroundColor" + value="%{formOA.backGroundColor}" + labelposition="left" + key="webpages.oaconfig.general.BKUSelection.backgroundcolor" + cssClass="textfield_middle colorfield" + onchange='updateBKUFormPreview("MAIN_BACKGOUNDCOLOR")' + id="MAIN_BACKGOUNDCOLOR"> + </s:textfield> + <s:textfield name="formOA.frontColor" + value="%{formOA.frontColor}" + labelposition="left" + key="webpages.oaconfig.general.BKUSelection.frontcolor" + cssClass="textfield_middle colorfield" + onchange='updateBKUFormPreview("MAIN_COLOR")' + id="MAIN_COLOR"> + </s:textfield> + + <s:textfield name="formOA.header_BackGroundColor" + value="%{formOA.header_BackGroundColor}" + labelposition="left" + key="webpages.oaconfig.general.BKUSelection.header.backgroundcolor" + cssClass="textfield_middle colorfield" + onchange='updateBKUFormPreview("HEADER_BACKGROUNDCOLOR")' + id="HEADER_BACKGROUNDCOLOR"> + </s:textfield> + <s:textfield name="formOA.header_FrontColor" + value="%{formOA.header_FrontColor}" + labelposition="left" + key="webpages.oaconfig.general.BKUSelection.header.frontcolor" + cssClass="textfield_middle colorfield" + onchange='updateBKUFormPreview("HEADER_COLOR")' + id="HEADER_COLOR"> + </s:textfield> + <s:textfield name="formOA.header_text" + value="%{formOA.header_text}" + labelposition="left" + key="webpages.oaconfig.general.BKUSelection.header.text" + cssClass="textfield_middle" + onchange='updateBKUFormPreview("HEADER_TEXT")' + id="HEADER_TEXT"> + </s:textfield> + + <%-- <s:textfield name="formOA.button_BackGroundColor" + value="%{formOA.button_BackGroundColor}" + labelposition="left" + key="webpages.oaconfig.general.BKUSelection.header.button.background" + cssClass="textfield_middle colorfield" + onchange='updateBKUFormPreview("BUTTON_BACKGROUNDCOLOR")' + id="BUTTON_BACKGROUNDCOLOR"> + </s:textfield> + <s:textfield name="formOA.button_BackGroundColorFocus" + value="%{formOA.button_BackGroundColorFocus}" + labelposition="left" + key="webpages.oaconfig.general.BKUSelection.header.button.background.focus" + cssClass="textfield_middle colorfield" + onchange='updateBKUFormPreview("BUTTON_BACKGROUNDCOLOR_FOCUS")' + id="BUTTON_BACKGROUNDCOLOR_FOCUS"> + </s:textfield> + <s:textfield name="formOA.button_FrontColor" + value="%{formOA.button_FrontColor}" + labelposition="left" + key="webpages.oaconfig.general.BKUSelection.header.button.front" + cssClass="textfield_middle colorfield" + onchange='updateBKUFormPreview("BUTTON_COLOR")' + id="BUTTON_COLOR"> + </s:textfield> --%> + + <s:select list="formOA.appletRedirectTargetList" + key="webpages.oaconfig.general.BKUSelection.redirectTarget" + labelposition="left" + cssClass="selectfield" + value="%{formOA.appletRedirectTarget}" + name="formOA.appletRedirectTarget"> + </s:select> + + <s:select list="formOA.fontTypeList" + key="webpages.oaconfig.general.BKUSelection.fonttype.list" + labelposition="left" + cssClass="selectfield" + value="%{formOA.fontType}" + name="formOA.fontTypeListValue" + id="fontTypeList" + onchange='$("#FONTTYPE").val($("#fontTypeList").val());updateBKUFormPreview("FONTTYPE");'> + </s:select> + + <s:textfield name="formOA.fontType" + value="%{formOA.fontType}" + labelposition="left" + key="webpages.oaconfig.general.BKUSelection.fonttype" + cssClass="textfield_mail" + onchange='updateBKUFormPreview("FONTTYPE")' + id="FONTTYPE"> + </s:textfield> + </div> + <div id="formCustomPreview"> + <iframe scrolling="none" + title="BKUForm Preview" + height="220" + width="250"> + </iframe> + </div> + </div> </s:if> diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java index 729af48f7..a00ae4ccf 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java @@ -7,9 +7,11 @@ import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; import java.net.URI; +import java.net.URISyntaxException; import org.apache.commons.io.IOUtils; +import at.gv.egovernment.moa.id.config.ConfigurationException; import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; import at.gv.egovernment.moa.id.protocols.saml1.SAML1Protocol; @@ -29,32 +31,42 @@ public class LoginFormBuilder { private static String BKU_ONLINE = "#ONLINE#"; private static String BKU_HANDY = "#HANDY#"; private static String BKU_LOCAL = "#LOCAL#"; - private static String CONTEXTPATH = "#CONTEXTPATH#"; + public static String CONTEXTPATH = "#CONTEXTPATH#"; private static String MOASESSIONID = "#SESSIONID#"; private static String SERVLET = CONTEXTPATH+"/GenerateIframeTemplate"; - private static String getTemplate() { + public static String getTemplate() { + String pathLocation =""; + InputStream input = null; + + try { + String rootconfigdir = AuthConfigurationProvider.getInstance().getRootConfigFileDir(); + pathLocation = rootconfigdir + HTMLTEMPLATESDIR + HTMLTEMPLATEFULL; + File file = new File(new URI(pathLocation)); + input = new FileInputStream(file); + + } catch (ConfigurationException e) { + Logger.warn("MOA-ID configuration can not be loaded."); + + } catch (Exception e) { + + } + + return getTemplate(input); + + } + + public static String getTemplate(InputStream input) { String template = null; - InputStream input = null; try { - String pathLocation; - - String rootconfigdir = AuthConfigurationProvider.getInstance().getRootConfigFileDir(); - pathLocation = rootconfigdir + HTMLTEMPLATESDIR + HTMLTEMPLATEFULL; - - try { - File file = new File(new URI(pathLocation)); - input = new FileInputStream(file); - - } catch (FileNotFoundException e) { + if (input == null) { Logger.warn("No LoginFormTempaltes found. Use Generic Templates from package."); - pathLocation = "resources/templates/" + HTMLTEMPLATEFULL; - + String pathLocation = "resources/templates/" + HTMLTEMPLATEFULL; input = Thread.currentThread() .getContextClassLoader() .getResourceAsStream(pathLocation); @@ -82,7 +94,7 @@ public class LoginFormBuilder { } return template; } - + public static String buildLoginForm(String modul, String action, OAAuthParameter oaParam, String contextpath, String moaSessionID) { String value = getTemplate(); @@ -99,10 +111,12 @@ public class LoginFormBuilder { value = value.replace(CONTEXTPATH, contextpath); value = value.replace(MOASESSIONID, moaSessionID); - value = FormBuildUtils.customiceLayoutBKUSelection(value, oaParam); + value = FormBuildUtils.customiceLayoutBKUSelection(value, + oaParam.isShowMandateCheckBox(), + oaParam.isOnlyMandateAllowed(), + oaParam.getFormCustomizaten()); } return value; } - } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java index 1617ef796..b763afd65 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java @@ -98,7 +98,10 @@ public class SendAssertionFormBuilder { value = value.replace(OANAME, oaParam.getFriendlyName()); value = value.replace(CONTEXTPATH, contextpath); - value = FormBuildUtils.customiceLayoutBKUSelection(value, oaParam); + value = FormBuildUtils.customiceLayoutBKUSelection(value, + oaParam.isShowMandateCheckBox(), + oaParam.isOnlyMandateAllowed(), + oaParam.getFormCustomizaten()); } return value; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java index 533957cc8..e8af82872 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java @@ -5,6 +5,7 @@ import java.util.Map; import java.util.Set; import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.util.MiscUtil; public class FormBuildUtils { @@ -43,21 +44,22 @@ public class FormBuildUtils { defaultmap.put(BUTTON_BACKGROUNDCOLOR_FOCUS, "#EBEBEB"); defaultmap.put(BUTTON_COLOR, "#000000"); - defaultmap.put(FONTFAMILY, "Verdana, Geneva, Arial, sans-serif"); + defaultmap.put(FONTFAMILY, "Verdana,Geneva,Arial,sans-serif"); defaultmap.put(REDIRECTTARGET, "_top"); } } - public static String customiceLayoutBKUSelection(String value, OAAuthParameter oaParam) { + public static String customiceLayoutBKUSelection(String value, boolean isShowMandateCheckbox, + boolean isOnlyMandateAllowed, Map<String, String> map) { - if (oaParam.isShowMandateCheckBox()) + if (isShowMandateCheckbox) value = value.replace(MANDATEVISIBLE, ""); else value = value.replace(MANDATEVISIBLE, TEMPLATEVISIBLE); - if (oaParam.isOnlyMandateAllowed()) { + if (isOnlyMandateAllowed) { value = value.replace(MANDATECHECKED, TEMPLATECHECKED + " " + TEMPLATEDISABLED + " " + TEMPLATE_ARIACHECKED + "\"true\""); @@ -65,7 +67,18 @@ public class FormBuildUtils { } else value = value.replace(MANDATECHECKED, TEMPLATE_ARIACHECKED + "\"false\""); - Map<String, String> map = oaParam.getFormCustomizaten(); + String fonttype = map.get(FONTFAMILY); + if (MiscUtil.isNotEmpty(fonttype)) { + String[] fonttypeList = fonttype.split(","); + String fonttypeformated = "\"" + fonttypeList[0].trim().replace("\"", "") + "\""; + + for (int i=1; i<fonttypeList.length; i++) { + fonttypeformated += ",\"" + fonttypeList[i].trim().replace("\"", "") + "\""; + } + + map.put(FONTFAMILY, fonttypeformated); + } + Set<String> elements = map.keySet(); for (String element: elements) { value = value.replace(element, map.get(element)); diff --git a/id/server/idserverlib/src/main/resources/resources/templates/loginFormFull.html b/id/server/idserverlib/src/main/resources/resources/templates/loginFormFull.html index efc3e8d9d..99a66727b 100644 --- a/id/server/idserverlib/src/main/resources/resources/templates/loginFormFull.html +++ b/id/server/idserverlib/src/main/resources/resources/templates/loginFormFull.html @@ -22,13 +22,14 @@ #localBKU input{ font-size: 0.7em; - border-radius: 5px; + /*border-radius: 5px;*/ } - #bkuselectionarea button { + #bkuselectionarea input[type=button] { font-size: 0.85em; - border-radius: 7px; + /*border-radius: 7px;*/ margin-bottom: 25px; + min-width: 80px; } #mandateLogin { @@ -132,7 +133,7 @@ button { height: 25px; - width: 90px; + width: 75px; margin-bottom: 10px; } @@ -153,16 +154,16 @@ #localBKU input { font-size: 0.6em; min-width: 60px; - max-width: 65px; + /* max-width: 65px; */ min-height: 1.0em; - border-radius: 5px; + /* border-radius: 5px; */ } - #bkuselectionarea button { - font-size: 0.8em; - min-width: 65px; - min-height: 1.3em; - border-radius: 5px; + #bkuselectionarea input[type=button] { + font-size: 0.7em; + min-width: 55px; + /*min-height: 1.1em; + border-radius: 5px;*/ margin-bottom: 2% } @@ -171,8 +172,13 @@ } #bku_header h2 { - font-size: 0.8em; - margin-top: -0.4em; + font-size: 0.75em; + margin-top: -0.37em; + padding-top: 0.37em; + } + + #bkulogin { + min-height: 150px; } } @@ -184,16 +190,16 @@ #localBKU input { font-size: 0.7em; min-width: 70px; - max-width: 75px; + /* max-width: 75px; */ min-height: 0.95em; - border-radius: 6px; + /* border-radius: 6px; */ } - #bkuselectionarea button{ - font-size: 0.85em; - min-width: 70px; - min-height: 0.95em; - border-radius: 6px; + #bkuselectionarea input[type=button] { + font-size: 0.75em; + min-width: 60px; + /* min-height: 0.95em; + border-radius: 6px; */ margin-bottom: 5% } @@ -202,9 +208,14 @@ } #bku_header h2 { - font-size: 0.9em; - margin-top: -0.45em; - } + font-size: 0.8em; + margin-top: -0.40em; + padding-top: 0.40em; + } + + #bkulogin { + min-height: 180px; + } } @media screen and (max-width: 299px) and (min-width: 250px) { @@ -215,14 +226,14 @@ #localBKU input { font-size: 0.8em; min-width: 70px; - max-width: 75px; - border-radius: 6px; + /* max-width: 75px; */ + /* border-radius: 6px; */ } - #bkuselectionarea button { - font-size: 1.0em; - min-height: 1.05em; - border-radius: 7px; + #bkuselectionarea input[type=button] { + font-size: 0.85em; + /* min-height: 1.05em; + border-radius: 7px; */ margin-bottom: 10%; } @@ -231,8 +242,9 @@ } #bku_header h2 { - font-size: 1.0em; - margin-top: -0.50em; + font-size: 0.9em; + margin-top: -0.45em; + padding-top: 0.45em; } } @@ -244,15 +256,16 @@ #localBKU input { font-size: 0.8em; min-width: 70px; - max-width: 75px; - border-radius: 6px; + /* max-width: 75px; */ + /* border-radius: 6px; */ } - #bkuselectionarea button { - font-size: 1.1em; - min-height: 1.2em; - border-radius: 8px; + #bkuselectionarea input[type=button] { + font-size: 0.9em; + /* min-height: 1.2em; + border-radius: 8px; */ margin-bottom: 10%; + max-width: 80px; } #mandateLogin { @@ -262,6 +275,7 @@ #bku_header h2 { font-size: 1.1em; margin-top: -0.55em; + padding-top: 0.55em; } } @@ -273,15 +287,16 @@ #localBKU input { font-size: 0.8em; min-width: 70px; - max-width: 80px; - border-radius: 6px; + /* max-width: 80px; */ + /* border-radius: 6px; */ } - #bkuselectionarea button { - font-size: 1.3em; - min-height: 1.3em; - border-radius: 10px; + #bkuselectionarea input[type=button] { + font-size: 1.0em; + /* min-height: 1.3em; + border-radius: 10px; */ margin-bottom: 10%; + max-width: 85px; } #mandateLogin { @@ -291,6 +306,7 @@ #bku_header h2 { font-size: 1.3em; margin-top: -0.65em; + padding-top: 0.65em; } } @@ -337,9 +353,9 @@ margin-bottom: 0px; text-align: left; border:none; - min-width: 190px; - min-height: 190px; vertical-align: middle; + min-height: 173px; + min-width: 204px; } @@ -352,14 +368,13 @@ h2#tabheader{ padding-left: 2%; padding-right: 2%; - padding-top: 1%; position: relative; top: 50%; } #bkulogin { min-width: 190px; - min-height: 150px; + min-height: 155px; } .setAssertionButton_full { @@ -370,8 +385,8 @@ height: 25px; } - button { - height: 11%; + input[type=button] { +/* height: 11%; */ width: 70%; } } @@ -379,7 +394,6 @@ * { margin: 0; padding: 0; - border: 0; font-family: "#FONTTYPE#"; } @@ -416,8 +430,8 @@ } #mandateLogin { - padding-bottom: 2%; - padding-top: 2%; + padding-bottom: 4%; + padding-top: 4%; height: 10%; position: relative; text-align: center; @@ -442,7 +456,8 @@ #localBKU { padding-left: 5%; padding-right: 2%; - padding-bottom: 2%; + padding-bottom: 4%; + padding-top: 4%; position: relative; clear: both; } @@ -474,31 +489,42 @@ text-align:center; padding : 5px 5px 5px 5px; } - - button, .sendButton { + +/* input[type=button], .sendButton { background: #BUTTON_BACKGROUNDCOLOR#; color: #BUTTON_COLOR#; - border:1px solid #000; - cursor: pointer; - box-shadow: 3px 3px 3px #222222; - } +/* border:1px solid #000; */ +/* cursor: pointer; +/* box-shadow: 3px 3px 3px #222222; */ +/* } - button:hover, button:focus, button:active, +/* button:hover, button:focus, button:active, .sendButton:hover , .sendButton:focus, .sendButton:active, #mandateCheckBox:hover, #mandateCheckBox:focus, #mandateCheckBox:active { background: #BUTTON_BACKGROUNDCOLOR_FOCUS#; color: #BUTTON_COLOR#; - border:1px solid #000; - cursor: pointer; - box-shadow: -1px -1px 3px #222222; - } - +/* border:1px solid #000; */ +/* cursor: pointer; +/* box-shadow: -1px -1px 3px #222222; */ +/* } +*/ input { - border:1px solid #000; + /*border:1px solid #000;*/ cursor: pointer; } + + #localBKU input { +/* color: #BUTTON_COLOR#; */ + border: 0px; + display: inline-block; + + } + #localBKU input:hover, #localBKU input:focus, #localBKU input:active { + text-decoration: underline; + } + #installJava, #BrowserNOK { clear:both; font-size:0.8em; @@ -656,14 +682,14 @@ var width = el.clientWidth; var heigth = el.clientHeight - 20; var parent = el.parentNode; - + iFrameURL += "&heigth=" + heigth; iFrameURL += "&width=" + width; var iframe = document.createElement("iframe"); iframe.setAttribute("src", iFrameURL); - iframe.setAttribute("width", width); - iframe.setAttribute("height", el.clientHeight); + iframe.setAttribute("width", el.clientWidth - 1); + iframe.setAttribute("height", el.clientHeight - 1); iframe.setAttribute("frameborder", "0"); iframe.setAttribute("scrolling", "no"); iframe.setAttribute("title", "Login"); @@ -741,23 +767,23 @@ <img class="bkuimage" src="#CONTEXTPATH#/img/online-bku.png" alt="OnlineBKU"/> - <button name="bkuButton" + <input name="bkuButtonOnline" type="button" onClick="bkuOnlineClicked();" tabindex="2" - role="button">KARTE - </button> + role="button" + value="Karte"/> </div> <div id="bkuhandy"> <img class="bkuimage" src="#CONTEXTPATH#/img/mobile-bku.png" alt="HandyBKU"/> - <button name="bkuButton" + <input name="bkuButtonHandy" type="button" onClick="bkuHandyClicked();" tabindex="3" - role="button">HANDY - </button> + role="button" + value="HANDY"/> </div> </div> <div id="localBKU"> @@ -770,13 +796,13 @@ <input type="hidden" name="ACTION" value="#ACTION#"> <input type="hidden" name="MOASessionID" value="#SESSIONID#"> <input type="submit" - value="lokale BKU" - class="sendButton" + value=">lokale Bürgerkartenumgebung" tabindex="4" - role="button"> - <p> + role="button" + class="hell"> + <!--p> <small>Alternativ können Sie eine lokal installierte BKU verwenden.</small> - </p> + </p--> </form> </div> diff --git a/id/server/idserverlib/src/main/resources/resources/templates/sendAssertionFormFull.html b/id/server/idserverlib/src/main/resources/resources/templates/sendAssertionFormFull.html index cc715fa4f..b80d654cc 100644 --- a/id/server/idserverlib/src/main/resources/resources/templates/sendAssertionFormFull.html +++ b/id/server/idserverlib/src/main/resources/resources/templates/sendAssertionFormFull.html @@ -114,7 +114,7 @@ height: 30px; font-size: 1.3em; min-height: 1.3em; - border-radius: 10px; +/* border-radius: 10px;*/ } #leftbutton { @@ -161,7 +161,7 @@ font-size: 0.8em; min-width: 65px; min-height: 1.3em; - border-radius: 5px; + /* border-radius: 5px; */ margin-bottom: 2% } @@ -191,7 +191,7 @@ font-size: 0.85em; min-width: 70px; min-height: 0.95em; - border-radius: 6px; + /* border-radius: 6px; */ margin-bottom: 2% } @@ -219,7 +219,7 @@ #bkuselectionarea button, .setAssertionButton_full { font-size: 1.0em; min-height: 1.05em; - border-radius: 7px; + /* border-radius: 7px; */ margin-bottom: 5%; } @@ -247,7 +247,7 @@ #bkuselectionarea button, .setAssertionButton_full { font-size: 1.1em; min-height: 1.2em; - border-radius: 8px; + /* border-radius: 8px; */ margin-bottom: 5%; } @@ -275,7 +275,7 @@ #bkuselectionarea button, .setAssertionButton_full { font-size: 1.3em; min-height: 1.3em; - border-radius: 10px; +/* border-radius: 10px; */ margin-bottom: 5%; } @@ -333,7 +333,7 @@ text-align: left; border:none; min-width: 190px; - min-height: 190px; +/* min-height: 190px; */ vertical-align: middle; } @@ -378,7 +378,7 @@ * { margin: 0; padding: 0; - border: 0; +/* border: 0; */ font-family: #FONTTYPE#; } @@ -475,21 +475,23 @@ } button, .sendButton { - background: #BUTTON_BACKGROUNDCOLOR#; - color: #BUTTON_COLOR#; - border:1px solid #000; - cursor: pointer; - box-shadow: 3px 3px 3px #222222; +/* background: #BUTTON_BACKGROUNDCOLOR#; + color: #BUTTON_COLOR#; */ + cursor: pointer; + +/* border:1px solid #000; + box-shadow: 3px 3px 3px #222222; */ } button:hover, button:focus, button:active, .sendButton:hover , .sendButton:focus, .sendButton:active, #mandateCheckBox:hover, #mandateCheckBox:focus, #mandateCheckBox:active { - background: #BUTTON_BACKGROUNDCOLOR_FOCUS#; - color: #BUTTON_COLOR#; - border:1px solid #000; - cursor: pointer; - box-shadow: -1px -1px 3px #222222; +/* background: #BUTTON_BACKGROUNDCOLOR_FOCUS#; + color: #BUTTON_COLOR#; */ + cursor: pointer; + +/* border:1px solid #000; + box-shadow: -1px -1px 3px #222222; */ } #installJava, #BrowserNOK { |