diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormButtonRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormButtonRenderer.java index 70bed0a648000f60715f0d157fd62161266e652a..7dc44570979f233aa264c4662c74451adc970c95 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormButtonRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormButtonRenderer.java @@ -35,6 +35,7 @@ import org.olat.core.gui.render.RenderingState; import org.olat.core.gui.render.StringOutput; import org.olat.core.gui.render.URLBuilder; import org.olat.core.gui.translator.Translator; +import org.olat.core.util.StringHelper; /** * Description:<br> @@ -69,6 +70,9 @@ class FormButtonRenderer implements ComponentRenderer { } sb.append(FormJSHelper.getRawJSFor(fs.getRootForm(), id, fs.getAction())); sb.append(" class=\"b_button "); + if(StringHelper.containsNonWhitespace(fs.getElementCssClass())) { + sb.append(fs.getElementCssClass()); + } if(!source.isEnabled()){ sb.append(" b_disabled "); } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormCancel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormCancel.java index 9f88c25def2e5044993f6ac6fc237b128a328397..a82d05e546db5d2e3775f703730c9aff94a46b0e 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormCancel.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormCancel.java @@ -141,6 +141,11 @@ public class FormCancel extends FormItemImpl implements Disposable, Cancel { cancelLink.setCustomEnabledLinkCSS(customEnabledLinkCSS); } + @Override + public void setElementCssClass(String elementCssClass) { + cancelLink.setElementCssClass(elementCssClass); + } + /** * @see org.olat.core.gui.components.form.flexible.elements.Cancel#setI18nKey(java.lang.String) */ diff --git a/src/main/java/org/olat/core/gui/components/link/Link.java b/src/main/java/org/olat/core/gui/components/link/Link.java index ad293c9d6cefb54e4b41fcbb2fb1b5af88b05264..ad09683dac7283bb0fe1437efdbc2ae5f06a39bd 100644 --- a/src/main/java/org/olat/core/gui/components/link/Link.java +++ b/src/main/java/org/olat/core/gui/components/link/Link.java @@ -80,6 +80,7 @@ public class Link extends Component { private String customDisplayText; private String customEnabledLinkCSS; private String customDisabledLinkCSS; + private String elementCssClass; private String target; boolean markIt = false; private Object internalAttachedObj; @@ -338,8 +339,15 @@ public class Link extends Component { } setDirty(true); } - + public String getElementCssClass() { + return elementCssClass; + } + + public void setElementCssClass(String elementCssClass) { + this.elementCssClass = elementCssClass; + } + public void removeCSS(){ this.presentation = presentationBeforeCustomCSS; setDirty(true); diff --git a/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java b/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java index da4a92752856631f2b43cd53f49a06a4fcd2f73b..a0ad96d2d35181fa2bd5480ac8c474cf4bf37645 100644 --- a/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java +++ b/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java @@ -43,6 +43,7 @@ import org.olat.core.gui.render.StringOutput; import org.olat.core.gui.render.URLBuilder; import org.olat.core.gui.translator.Translator; import org.olat.core.logging.AssertException; +import org.olat.core.util.StringHelper; /** * Description: Renders the link component depending of features and style. @@ -84,6 +85,9 @@ public class LinkRenderer implements ComponentRenderer { if (!link.isEnabled()) { cssSb.append(" b_disabled "); } + if(StringHelper.containsNonWhitespace(link.getElementCssClass())) { + cssSb.append(link.getElementCssClass()).append(" "); + } if (presentation == Link.BUTTON_XSMALL) { cssSb.append("b_button b_xsmall"); } else if (presentation == Link.BUTTON_SMALL) { diff --git a/src/main/java/org/olat/user/ChangePrefsController.java b/src/main/java/org/olat/user/ChangePrefsController.java index 833ea7ac0c7508c8586f8524dc85c8c9f9b2e25a..e200dd649f00c763cd2a724074d7c20eb8f86c3c 100644 --- a/src/main/java/org/olat/user/ChangePrefsController.java +++ b/src/main/java/org/olat/user/ChangePrefsController.java @@ -36,17 +36,19 @@ import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElem import org.olat.core.gui.components.form.flexible.elements.SingleSelection; import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.components.form.flexible.impl.elements.FormCancel; +import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; import org.olat.core.id.Identity; -import org.olat.core.util.UserSession; import org.olat.core.id.User; import org.olat.core.id.context.HistoryManager; import org.olat.core.id.context.HistoryModule; import org.olat.core.util.StringHelper; +import org.olat.core.util.UserSession; import org.olat.core.util.prefs.Preferences; import org.olat.core.util.prefs.PreferencesFactory; import org.olat.properties.PropertyManager; @@ -253,8 +255,10 @@ class SpecialPrefsForm extends FormBasicController { final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator()); formLayout.add(buttonLayout); - uifactory.addFormSubmitButton("submit", buttonLayout); - uifactory.addFormCancelButton("cancel", buttonLayout, ureq, getWindowControl()); + FormSubmit submitButton = uifactory.addFormSubmitButton("submit", buttonLayout); + submitButton.setElementCssClass("o_sel_home_settings_gui_submit"); + FormCancel cancelButton = uifactory.addFormCancelButton("cancel", buttonLayout, ureq, getWindowControl()); + cancelButton.setElementCssClass("o_sel_home_settings_gui_cancel"); } private void update() { @@ -330,7 +334,8 @@ class UserPrefsResetForm extends FormBasicController { final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator()); formLayout.add(buttonLayout); - uifactory.addFormSubmitButton("reset.submit", buttonLayout); + FormSubmit submitButton = uifactory.addFormSubmitButton("reset.submit", buttonLayout); + submitButton.setElementCssClass("o_sel_home_settings_reset_sysprefs_submit"); } @Override diff --git a/src/main/java/org/olat/user/PreferencesFormController.java b/src/main/java/org/olat/user/PreferencesFormController.java index a3778f25f798ed44d508733c80bbc7d3e6208b86..938ef3eabb0d0d466d686f06eab5fcdd23929fdb 100644 --- a/src/main/java/org/olat/user/PreferencesFormController.java +++ b/src/main/java/org/olat/user/PreferencesFormController.java @@ -34,6 +34,8 @@ import org.olat.core.gui.components.form.flexible.elements.StaticTextElement; import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormEvent; import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.components.form.flexible.impl.elements.FormCancel; +import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowBackOffice; @@ -224,8 +226,10 @@ public class PreferencesFormController extends FormBasicController { // Submit and cancel buttons final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator()); formLayout.add(buttonLayout); - uifactory.addFormSubmitButton("submit", buttonLayout); - uifactory.addFormCancelButton("cancel", buttonLayout, ureq, getWindowControl()); + FormSubmit submitButton = uifactory.addFormSubmitButton("submit", buttonLayout); + submitButton.setElementCssClass("o_sel_home_settings_prefs_submit"); + FormCancel cancelButton = uifactory.addFormCancelButton("cancel", buttonLayout, ureq, getWindowControl()); + cancelButton.setElementCssClass("o_sel_home_settings_prefs_cancel"); } protected void formInnerEvent (UserRequest ureq, FormItem source, FormEvent event) {