diff --git a/src/main/java/de/bps/course/nodes/cl/ChecklistCourseNodeConfiguration.java b/src/main/java/de/bps/course/nodes/cl/ChecklistCourseNodeConfiguration.java index 90949a971d8fa9ecf0f9dd108bb341dbd9695ad7..3455c0abe64e8e8deef9f1dfc13ea95a74968aa0 100644 --- a/src/main/java/de/bps/course/nodes/cl/ChecklistCourseNodeConfiguration.java +++ b/src/main/java/de/bps/course/nodes/cl/ChecklistCourseNodeConfiguration.java @@ -26,6 +26,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import de.bps.course.nodes.ChecklistCourseNode; @@ -37,43 +38,33 @@ import de.bps.course.nodes.ChecklistCourseNode; * Initial Date: 23.07.2009 <br> * @author bja <bja@bps-system.de> */ -public class ChecklistCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class ChecklistCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private ChecklistCourseNodeConfiguration() { } - - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getAlias() - */ + @Override public String getAlias() { return "cl"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getIconCSSClass() - */ + @Override public String getIconCSSClass() { return "o_cl_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getInstance() - */ + + @Override public CourseNode getInstance() { return new ChecklistCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return "o_cl_icon"; - } - - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); diff --git a/src/main/java/de/bps/course/nodes/den/DENCourseNodeConfiguration.java b/src/main/java/de/bps/course/nodes/den/DENCourseNodeConfiguration.java index e5a4739abfc9b770ba1ae81fd84cc81bb8edfbff..ff8bfe803ed450af96aca1e1e90b3ed96bcff3aa 100644 --- a/src/main/java/de/bps/course/nodes/den/DENCourseNodeConfiguration.java +++ b/src/main/java/de/bps/course/nodes/den/DENCourseNodeConfiguration.java @@ -26,30 +26,36 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import de.bps.course.nodes.DENCourseNode; -public class DENCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class DENCourseNodeConfiguration extends AbstractCourseNodeConfiguration { DENCourseNodeConfiguration() { } - + + @Override public String getAlias() { return "den"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } + @Override public String getIconCSSClass() { return "o_den_icon"; } + @Override public CourseNode getInstance() { return new DENCourseNode(); } - public String getLinkCSSClass() { - return null; - } - + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); diff --git a/src/main/java/de/bps/course/nodes/den/DENEditForm.java b/src/main/java/de/bps/course/nodes/den/DENEditForm.java index 31f5cf3470847fc8fd007470fe6a319c97b52ab8..1e874e9163f3f37f3cc3ed73e48e0c40b3c3d7a0 100644 --- a/src/main/java/de/bps/course/nodes/den/DENEditForm.java +++ b/src/main/java/de/bps/course/nodes/den/DENEditForm.java @@ -72,7 +72,7 @@ public class DENEditForm extends FormBasicController { Boolean initialCancelEnrollEnabled = (Boolean) moduleConfig.get(ENCourseNode.CONF_CANCEL_ENROLL_ENABLED); - enableCancelEnroll = uifactory.addCheckboxesHorizontal("enableCancelEnroll", "form.enableCancelEnroll", formLayout, new String[] { "ison" }, new String[] { "" }, null); + enableCancelEnroll = uifactory.addCheckboxesHorizontal("enableCancelEnroll", "form.enableCancelEnroll", formLayout, new String[] { "ison" }, new String[] { "" }); enableCancelEnroll.select("ison", initialCancelEnrollEnabled); subm = new FormSubmit("subm", "submit"); diff --git a/src/main/java/de/bps/course/nodes/ll/LLCourseNodeConfiguration.java b/src/main/java/de/bps/course/nodes/ll/LLCourseNodeConfiguration.java index 33d4f017cc8262649ef4fa8172de971be9fdb1bb..5be4c9b27a63c06000f2dfd897c712d52518158e 100644 --- a/src/main/java/de/bps/course/nodes/ll/LLCourseNodeConfiguration.java +++ b/src/main/java/de/bps/course/nodes/ll/LLCourseNodeConfiguration.java @@ -26,6 +26,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import de.bps.course.nodes.LLCourseNode; @@ -38,7 +39,7 @@ import de.bps.course.nodes.LLCourseNode; * * @author Marcel Karras (toka@freebits.de) */ -public class LLCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class LLCourseNodeConfiguration extends AbstractCourseNodeConfiguration { /** * [spring only] @@ -47,42 +48,31 @@ public class LLCourseNodeConfiguration extends AbstractCourseNodeConfiguration i private LLCourseNodeConfiguration() { super(); } - - /** - * {@inheritDoc} - */ + + @Override public String getAlias() { return "ll"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } - /** - * {@inheritDoc} - */ + @Override public String getIconCSSClass() { return "o_ll_icon"; } - /** - * {@inheritDoc} - */ + @Override public CourseNode getInstance() { return new LLCourseNode(); } - /** - * {@inheritDoc} - */ - public String getLinkCSSClass() { - return "o_ll_icon"; - } - - /** - * {@inheritDoc} - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_ll"); } - } diff --git a/src/main/java/de/bps/course/nodes/ll/LLEditForm.java b/src/main/java/de/bps/course/nodes/ll/LLEditForm.java index 9c46f3fd3ee90ecfa698e7d8ba3545921e2ddf95..c5da27542349cca5d7a6b54c6f9430b6f0b0ff49 100644 --- a/src/main/java/de/bps/course/nodes/ll/LLEditForm.java +++ b/src/main/java/de/bps/course/nodes/ll/LLEditForm.java @@ -326,7 +326,7 @@ public class LLEditForm extends FormBasicController { lTarget.setUserObject(link); lTargetInputList.add(index, lTarget); //add html target - MultipleSelectionElement htmlTargetSelection = uifactory.addCheckboxesHorizontal("html_target" + counter, titleContainer, new String[]{BLANK_KEY}, new String[]{""}, null); + MultipleSelectionElement htmlTargetSelection = uifactory.addCheckboxesHorizontal("html_target" + counter, titleContainer, new String[]{BLANK_KEY}, new String[]{""}); htmlTargetSelection.setUserObject(link); htmlTargetSelection.select(BLANK_KEY, "_blank".equals(link.getHtmlTarget())); lHtmlTargetInputList.add(index, htmlTargetSelection); diff --git a/src/main/java/de/bps/course/nodes/vc/VCCourseNodeConfiguration.java b/src/main/java/de/bps/course/nodes/vc/VCCourseNodeConfiguration.java index 75875e9e9bc4a1e525a01d0f2737a8ca94f727e7..49d167e5157a7fa7172178bd31aaceefc14a67f2 100644 --- a/src/main/java/de/bps/course/nodes/vc/VCCourseNodeConfiguration.java +++ b/src/main/java/de/bps/course/nodes/vc/VCCourseNodeConfiguration.java @@ -27,6 +27,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import de.bps.course.nodes.VCCourseNode; @@ -40,24 +41,29 @@ import de.bps.course.nodes.VCCourseNode; * @author Jens Lindner(jlindne4@hs-mittweida.de) * @author skoeber */ -public class VCCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class VCCourseNodeConfiguration extends AbstractCourseNodeConfiguration { + @Override public String getAlias() { return "vc"; } + + @Override + public String getGroup() { + return CourseNodeGroup.virtualClassroom.name(); + } + @Override public String getIconCSSClass() { return "o_vc_icon"; } + @Override public CourseNode getInstance() { return new VCCourseNode(); } - public String getLinkCSSClass() { - return "o_vc_icon"; - } - + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); diff --git a/src/main/java/de/bps/course/nodes/vc/VCEditForm.java b/src/main/java/de/bps/course/nodes/vc/VCEditForm.java index 0bf38d223b4838dedc52e2d8bf948f405e731a05..696b1ade1b2a40fd4e1c210bbae118ba368b9ec2 100644 --- a/src/main/java/de/bps/course/nodes/vc/VCEditForm.java +++ b/src/main/java/de/bps/course/nodes/vc/VCEditForm.java @@ -125,7 +125,7 @@ public class VCEditForm extends FormBasicController { boolean useDates = !dateList.isEmpty() | config.isUseMeetingDates(); String[] accessKeys = new String[] {OPTION_DATES}; String[] accessVals = new String[] {translate(OPTION_DATES)}; - multiSelectOptions = uifactory.addCheckboxesVertical("vc.options", "vc.options.label", editVC, accessKeys, accessVals, null, 1); + multiSelectOptions = uifactory.addCheckboxesVertical("vc.options", "vc.options.label", editVC, accessKeys, accessVals, 1); multiSelectOptions.select(OPTION_DATES, useDates); multiSelectOptions.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/de/bps/course/nodes/vc/provider/adobe/AdobeEditForm.java b/src/main/java/de/bps/course/nodes/vc/provider/adobe/AdobeEditForm.java index d897a52b6fade6ab4f697cf9108806b708d0481c..1698f3f45b3044e4c0fdb846ee189eb33d1334e8 100644 --- a/src/main/java/de/bps/course/nodes/vc/provider/adobe/AdobeEditForm.java +++ b/src/main/java/de/bps/course/nodes/vc/provider/adobe/AdobeEditForm.java @@ -66,7 +66,7 @@ public class AdobeEditForm extends FormBasicController { // meeting options String[] accessKeys = new String[] {OPTION_OPEN_MEETING, OPTION_START_MEETING}; String[] accessVals = new String[] {translate(OPTION_OPEN_MEETING), translate(OPTION_START_MEETING)}; - multiSelectOptions = uifactory.addCheckboxesVertical("vc.access", "vc.access.label", formLayout, accessKeys, accessVals, null, 1); + multiSelectOptions = uifactory.addCheckboxesVertical("vc.access", "vc.access.label", formLayout, accessKeys, accessVals, 1); multiSelectOptions.select(OPTION_START_MEETING, !config.isGuestStartMeetingAllowed()); multiSelectOptions.select(OPTION_OPEN_MEETING, !config.isGuestAccessAllowed()); multiSelectOptions.setVisible(showOptions); diff --git a/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaEditForm.java b/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaEditForm.java index 7d2afb46b9c8739be8fa8f890a972391f3229006..31c89f1773806f90729926bc2267c35359d7747a 100644 --- a/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaEditForm.java +++ b/src/main/java/de/bps/course/nodes/vc/provider/wimba/WimbaEditForm.java @@ -61,7 +61,7 @@ public class WimbaEditForm extends FormBasicController { // options String[] optionKeys = new String[] {OPTION_GUEST_ACCESS}; String[] optionVals = new String[] {translate(OPTION_GUEST_ACCESS)}; - multiSelectOptions = uifactory.addCheckboxesVertical("vc.options", "vc.options.label", formLayout, optionKeys, optionVals, null, 1); + multiSelectOptions = uifactory.addCheckboxesVertical("vc.options", "vc.options.label", formLayout, optionKeys, optionVals, 1); multiSelectOptions.select(OPTION_GUEST_ACCESS, config.isGuestAccessAllowed()); multiSelectOptions.showLabel(false); diff --git a/src/main/java/de/bps/olat/portal/links/LinksPortletEditController.java b/src/main/java/de/bps/olat/portal/links/LinksPortletEditController.java index 787c033b6b350f9ba119527f9462706c80382400..a35bbf7164f552a58ba4ee6924a05a5f7c9baf00 100644 --- a/src/main/java/de/bps/olat/portal/links/LinksPortletEditController.java +++ b/src/main/java/de/bps/olat/portal/links/LinksPortletEditController.java @@ -104,7 +104,7 @@ public class LinksPortletEditController extends FormBasicController { return true; } }); - openPopup = uifactory.addCheckboxesHorizontal("link.open.new.window", "link.open.new.window", formLayout, new String[]{TARGET_BLANK}, new String[]{""}, new String[]{""}); + openPopup = uifactory.addCheckboxesHorizontal("link.open.new.window", "link.open.new.window", formLayout, new String[]{TARGET_BLANK}, new String[]{""}); if (portletLink.getTarget().equals(TARGET_BLANK)) { openPopup.selectAll(); } diff --git a/src/main/java/de/bps/olat/user/propertyhandlers/GenericCheckboxPropertyHandler.java b/src/main/java/de/bps/olat/user/propertyhandlers/GenericCheckboxPropertyHandler.java index 0ba16d183ab716026834907108d30a96f96db16c..07ba6f62ff90b0e417ee48828caccbcbed839fc8 100644 --- a/src/main/java/de/bps/olat/user/propertyhandlers/GenericCheckboxPropertyHandler.java +++ b/src/main/java/de/bps/olat/user/propertyhandlers/GenericCheckboxPropertyHandler.java @@ -49,7 +49,7 @@ public class GenericCheckboxPropertyHandler extends AbstractUserPropertyHandler public FormItem addFormItem(Locale locale, User user, String usageIdentifyer, boolean isAdministrativeUser, FormItemContainer formItemContainer) { SelectionElement sElem = null; - sElem = FormUIFactory.getInstance().addCheckboxesVertical(getName(), i18nFormElementLabelKey(), formItemContainer, new String[] { getName() }, new String[]{ "" }, null, 1); + sElem = FormUIFactory.getInstance().addCheckboxesVertical(getName(), i18nFormElementLabelKey(), formItemContainer, new String[] { getName() }, new String[]{ "" }, 1); UserManager um = UserManager.getInstance(); if ( um.isUserViewReadOnly(usageIdentifyer, this) && ! isAdministrativeUser) { diff --git a/src/main/java/de/bps/onyx/plugin/course/nodes/iq/IQEditForm.java b/src/main/java/de/bps/onyx/plugin/course/nodes/iq/IQEditForm.java index fb8f6b392a40bab536f1f7bb246b8f4bb1bea668..96ebdaa0e12a9bc08557ce6376bf74a5e2483f3b 100644 --- a/src/main/java/de/bps/onyx/plugin/course/nodes/iq/IQEditForm.java +++ b/src/main/java/de/bps/onyx/plugin/course/nodes/iq/IQEditForm.java @@ -180,7 +180,7 @@ public class IQEditForm extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - limitAttempts = uifactory.addCheckboxesVertical("limitAttempts", "qti.form.limit.attempts", formLayout, new String[] { "xx" }, new String[] { null }, null, 1); + limitAttempts = uifactory.addCheckboxesVertical("limitAttempts", "qti.form.limit.attempts", formLayout, new String[] { "xx" }, new String[] { null }, 1); Integer confAttempts = (Integer) modConfig.get(IQEditController.CONFIG_KEY_ATTEMPTS); if (confAttempts == null) { @@ -209,7 +209,7 @@ public class IQEditForm extends FormBasicController { String[] valuesShowSolution = new String[]{""}; //Surveys do not have a solution if(!isSurvey){ - allowShowSolutionBox = uifactory.addCheckboxesVertical("allowShowSolution", "qti.form.allowShowSolution", formLayout, allowShowSolution, valuesShowSolution, null, 1); + allowShowSolutionBox = uifactory.addCheckboxesVertical("allowShowSolution", "qti.form.allowShowSolution", formLayout, allowShowSolution, valuesShowSolution, 1); allowShowSolutionBox.addActionListener(FormEvent.ONCLICK); if(confAllowShowSolution!=null){ allowShowSolutionBox.select(ALLOW, confAllowShowSolution); @@ -223,7 +223,7 @@ public class IQEditForm extends FormBasicController { String[] allowSuspension = new String[] { ALLOW }; String[] valuesSuspesion = new String[] { "" }; allowSuspensionBox = uifactory.addCheckboxesVertical("allowSuspension", "qti.form.allowSuspension", formLayout, allowSuspension, - valuesSuspesion, null, 1); + valuesSuspesion, 1); allowSuspensionBox.addActionListener(FormEvent.ONCLICK); if (confAllowSuspension != null) { allowSuspensionBox.select(ALLOW, confAllowSuspension); @@ -287,7 +287,7 @@ public class IQEditForm extends FormBasicController { boolean confEnableShowResultOnHomePage = (showResultOnHomePage != null) ? showResultOnHomePage.booleanValue() : false; confEnableShowResultOnHomePage = !noSummary && confEnableShowResultOnHomePage; showResultsOnHomePage = uifactory.addCheckboxesVertical("qti_enableResultsOnHomePage", "qti.form.results.onhomepage", formLayout, new String[] { "xx" }, - new String[] { null }, null, 1); + new String[] { null }, 1); showResultsOnHomePage.select("xx", confEnableShowResultOnHomePage); showResultsOnHomePage.addActionListener(FormEvent.ONCLICK); showResultsOnHomePage.setVisible(!isSurvey); @@ -299,7 +299,7 @@ public class IQEditForm extends FormBasicController { } showResultsDateDependentButton = uifactory.addCheckboxesVertical("qti_showresult", "qti.form.show.results", formLayout, new String[] { "xx" }, - new String[] { null }, null, 1); + new String[] { null }, 1); if (isAssessment || isSelfTest) { showResultsDateDependentButton.select("xx", showResultsDateDependent); showResultsDateDependentButton.addActionListener(FormEvent.ONCLICK); diff --git a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/CcStep00.java b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/CcStep00.java index 1bd0f1c427b269e34a154b8bf2e06a1572c9dcb6..a33ec51274ac4de6f9e6b7e2de419680eee6c632 100644 --- a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/CcStep00.java +++ b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/CcStep00.java @@ -175,13 +175,19 @@ public class CcStep00 extends BasicStep { // prepare checkboxes String[] keys = new String[] { "sp", "en", "bc", "fo", "co" }; - String[] values = new String[] { translator.translate("cce.informationpage"), translator.translate("cce.enrollment"), - translator.translate("cce.downloadfolder"), translator.translate("cce.forum"), translator.translate("cce.contactform") }; - + String[] values = new String[] { + translator.translate("cce.informationpage"), translator.translate("cce.enrollment"), + translator.translate("cce.downloadfolder"), translator.translate("cce.forum"), + translator.translate("cce.contactform") + }; // CSS for thumbs - String[] cssClasses = new String[] { "cc_sp", "en_sp", "bc_sp", "fo_sp", "co_sp", }; + String[] iconCSS = new String[] { + "o_icon o_sp_icon", "o_icon o_en_icon", + "o_icon o_bc_icon", "o_icon o_fo_icon", + "o_icon o_co_icon" + }; // show checkbox - rightsChooser = FormUIFactory.getInstance().addCheckboxesVertical("rightsChooser", fic, keys, values, cssClasses, 1); + rightsChooser = FormUIFactory.getInstance().addCheckboxesVertical("rightsChooser", fic, keys, values, iconCSS, 1); rightsChooser.addActionListener(FormEvent.ONCLICK); // Radios/Checkboxes need onclick because of IE bug OLAT-5753 // create edit button for enrollment and hide it editButtonEnrollment = FormUIFactory.getInstance().addFormLink("cce.edit", fic); diff --git a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/CcStep02.java b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/CcStep02.java index 1b81d251a573a796860491cf2697171712396745..f76258d4758c514e40fb1fdbb38f82d0fbb53ea0 100644 --- a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/CcStep02.java +++ b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/CcStep02.java @@ -155,7 +155,7 @@ public class CcStep02 extends BasicStep { formLayout.add(formItems); // create access limit checkbox - publishCheckbox = FormUIFactory.getInstance().addCheckboxesVertical("publishCheckbox", formItems, new String[] {"ison"}, new String[] {""}, null, 1); + publishCheckbox = FormUIFactory.getInstance().addCheckboxesVertical("publishCheckbox", formItems, new String[] {"ison"}, new String[] {""}, 1); publishCheckbox.setLabel("car.makepublic", null); publishCheckbox.select("ison", true); diff --git a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/EnrollmentEditForm.java b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/EnrollmentEditForm.java index 12284bd6e1aea644d582f6f663fae1958d9e0030..610555bfadd4ce6952878530c0da063a001a81e0 100644 --- a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/EnrollmentEditForm.java +++ b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/EnrollmentEditForm.java @@ -140,7 +140,7 @@ public class EnrollmentEditForm extends FormBasicController { keys = new String[] { "ison" }; values = new String[] { "" }; - accessLimit = uifactory.addCheckboxesVertical("accessLimit", formLayout, keys, values, null, 1); + accessLimit = uifactory.addCheckboxesVertical("accessLimit", formLayout, keys, values, 1); accessLimit.setLabel("en.accesscheckbox", null); accessLimit.select("ison", courseConfig.getEnableAccessLimit()); accessLimit.addActionListener(FormEvent.ONCLICK); @@ -154,7 +154,7 @@ public class EnrollmentEditForm extends FormBasicController { values[i] = elements.get(i); } - courseElements = uifactory.addCheckboxesVertical("courseElements", formLayout, keys, values, null, 1); + courseElements = uifactory.addCheckboxesVertical("courseElements", formLayout, keys, values, 1); courseElements.setLabel("en.selectelements", null); if (!accessLimit.isSelected(0)) courseElements.setVisible(false); diff --git a/src/main/java/org/olat/admin/privacy/PrivacyAdminController.java b/src/main/java/org/olat/admin/privacy/PrivacyAdminController.java index 0a93314a715417527e3a23c5afeb3a665b21aff8..0b333e332dfd8760984f66f9477707086abb458e 100644 --- a/src/main/java/org/olat/admin/privacy/PrivacyAdminController.java +++ b/src/main/java/org/olat/admin/privacy/PrivacyAdminController.java @@ -71,7 +71,7 @@ public class PrivacyAdminController extends FormBasicController { translate("admin.props.groupmanagers"), translate("admin.props.administrators") }; - adminPropsEl = uifactory.addCheckboxesVertical("admin.props", propsCont, adminPropKeys, adminPropValues, null, 1); + adminPropsEl = uifactory.addCheckboxesVertical("admin.props", propsCont, adminPropKeys, adminPropValues, 1); adminPropsEl.select("users", "enabled".equals(module.getUserSearchAdminPropsForUsers())); adminPropsEl.select("authors", "enabled".equals(module.getUserSearchAdminPropsForAuthors())); adminPropsEl.select("usermanagers", "enabled".equals(module.getUserSearchAdminPropsForUsermanagers())); @@ -81,7 +81,7 @@ public class PrivacyAdminController extends FormBasicController { uifactory.addSpacerElement("admin.space.1", propsCont, true); - lastloginEl = uifactory.addCheckboxesVertical("last.login", propsCont, adminPropKeys, adminPropValues, null, 1); + lastloginEl = uifactory.addCheckboxesVertical("last.login", propsCont, adminPropKeys, adminPropValues, 1); lastloginEl.select("users", "enabled".equals(module.getUserLastLoginVisibleForUsers())); lastloginEl.select("authors", "enabled".equals(module.getUserLastLoginVisibleForAuthors())); lastloginEl.select("usermanagers", "enabled".equals(module.getUserLastLoginVisibleForUsermanagers())); @@ -94,7 +94,7 @@ public class PrivacyAdminController extends FormBasicController { tuCont.setFormTitle(translate("tunnel.title")); tuCont.setFormDescription(translate("tunnel.desc")); - tunnelEl = uifactory.addCheckboxesHorizontal("tunnel.cbb", tuCont, onKeys, new String[]{""}, null); + tunnelEl = uifactory.addCheckboxesHorizontal("tunnel.cbb", tuCont, onKeys, new String[]{""}); tunnelEl.select("on", "enabled".equals(module.getUserInfosTunnelCourseBuildingBlock())); tunnelEl.addActionListener(FormEvent.ONCHANGE); } diff --git a/src/main/java/org/olat/admin/registration/SystemRegistrationAdminController.java b/src/main/java/org/olat/admin/registration/SystemRegistrationAdminController.java index 6f8b6909a5f6e7c3ecec948d13f4a7c8d50e11db..bdbd0df7da98736d5706a4222b231165b80878c2 100644 --- a/src/main/java/org/olat/admin/registration/SystemRegistrationAdminController.java +++ b/src/main/java/org/olat/admin/registration/SystemRegistrationAdminController.java @@ -99,7 +99,7 @@ public class SystemRegistrationAdminController extends FormBasicController { // // Add website publishWebSiteSelection = uifactory.addCheckboxesVertical("registration.publishWebSiteSelection", null, formLayout, - new String[] { YES }, new String[] { "" }, null, 1); + new String[] { YES }, new String[] { "" }, 1); publishWebSiteSelection.addActionListener(FormEvent.ONCLICK); boolean publishWebsiteConfig = registrationModule.isPublishWebsite(); publishWebSiteSelection.select(YES, publishWebsiteConfig); @@ -123,7 +123,7 @@ public class SystemRegistrationAdminController extends FormBasicController { // // Add announce list addToAnnounceListSelection = uifactory.addCheckboxesVertical("registration.addToAnnounceListSelection", null, formLayout, - new String[] { YES }, new String[] { "" }, null, 1); + new String[] { YES }, new String[] { "" }, 1); addToAnnounceListSelection.addActionListener(FormEvent.ONCLICK); addToAnnounceListSelection.select(YES, registrationModule.isNotifyReleases()); // diff --git a/src/main/java/org/olat/admin/restapi/RestapiAdminController.java b/src/main/java/org/olat/admin/restapi/RestapiAdminController.java index eca2fb909ba8d46d63b91ce005089c1a3ab741ac..58ce2e853a534648b703d097b2303b62e64af437 100644 --- a/src/main/java/org/olat/admin/restapi/RestapiAdminController.java +++ b/src/main/java/org/olat/admin/restapi/RestapiAdminController.java @@ -87,7 +87,7 @@ public class RestapiAdminController extends FormBasicController { layoutContainer.add(accessDataFlc); String[] values = new String[] { getTranslator().translate("rest.on") }; - enabled = uifactory.addCheckboxesHorizontal("rest.enabled", accessDataFlc, keys, values, null); + enabled = uifactory.addCheckboxesHorizontal("rest.enabled", accessDataFlc, keys, values); enabled.select(keys[0], restEnabled); enabled.addActionListener(FormEvent.ONCHANGE); @@ -98,12 +98,12 @@ public class RestapiAdminController extends FormBasicController { layoutContainer.add(managedFlc); String[] valueGrps = new String[] { getTranslator().translate("rest.on") }; - managedGroupsEl = uifactory.addCheckboxesHorizontal("managed.group", managedFlc, keys, valueGrps, null); + managedGroupsEl = uifactory.addCheckboxesHorizontal("managed.group", managedFlc, keys, valueGrps); managedGroupsEl.addActionListener(FormEvent.ONCHANGE); managedGroupsEl.select(keys[0], groupModule.isManagedBusinessGroups()); String[] valueRes = new String[] { getTranslator().translate("rest.on") }; - managedRepoEl = uifactory.addCheckboxesHorizontal("managed.repo", managedFlc, keys, valueRes, null); + managedRepoEl = uifactory.addCheckboxesHorizontal("managed.repo", managedFlc, keys, valueRes); managedRepoEl.addActionListener(FormEvent.ONCHANGE); managedRepoEl.select(keys[0], repositoryModule.isManagedRepositoryEntries()); } diff --git a/src/main/java/org/olat/admin/search/SearchAdminForm.java b/src/main/java/org/olat/admin/search/SearchAdminForm.java index 700558e18e76b3d4f53b86214912964a35867146..294669f0b2ae39c8ca0086868ab2c907530431e1 100644 --- a/src/main/java/org/olat/admin/search/SearchAdminForm.java +++ b/src/main/java/org/olat/admin/search/SearchAdminForm.java @@ -138,9 +138,9 @@ public class SearchAdminForm extends FormBasicController { blackList = uifactory.addTextAreaElement("search.admin.label.blackList", 3, 80, "", formLayout); blackList.setExampleKey("search.admin.label.blackList.example", null); - excelFileEnabled = uifactory.addCheckboxesHorizontal("search.admin.label.enableExcel", formLayout, new String[]{"on"}, new String[]{""}, null); - pptFileEnabled = uifactory.addCheckboxesHorizontal("search.admin.label.enablePpt", formLayout, new String[]{"on"}, new String[]{""}, null); - pdfFileEnabled = uifactory.addCheckboxesHorizontal("search.admin.label.enablePdf", formLayout, new String[]{"on"}, new String[]{""}, null); + excelFileEnabled = uifactory.addCheckboxesHorizontal("search.admin.label.enableExcel", formLayout, new String[]{"on"}, new String[]{""}); + pptFileEnabled = uifactory.addCheckboxesHorizontal("search.admin.label.enablePpt", formLayout, new String[]{"on"}, new String[]{""}); + pdfFileEnabled = uifactory.addCheckboxesHorizontal("search.admin.label.enablePdf", formLayout, new String[]{"on"}, new String[]{""}); submit = new FormSubmit("submit", "submit"); formLayout.add(submit); diff --git a/src/main/java/org/olat/admin/security/SecurityAdminController.java b/src/main/java/org/olat/admin/security/SecurityAdminController.java index 919cd41e7d81f95d7a40c5b730d6f9a775047ebe..c4dc10c6d4a552ef2b62ca3bdefb3a3964740aa9 100644 --- a/src/main/java/org/olat/admin/security/SecurityAdminController.java +++ b/src/main/java/org/olat/admin/security/SecurityAdminController.java @@ -62,17 +62,17 @@ public class SecurityAdminController extends FormBasicController { String[] values = new String[]{ "" }; // on: force top top frame (more security); off: allow in frame (less security) - topFrameEl = uifactory.addCheckboxesHorizontal("sec.topframe", "sec.topframe", formLayout, keys, values, null); + topFrameEl = uifactory.addCheckboxesHorizontal("sec.topframe", "sec.topframe", formLayout, keys, values); topFrameEl.select("on", securityModule.isForceTopFrame()); topFrameEl.addActionListener(FormEvent.ONCHANGE); // on: block wiki (more security); off: do not block wiki (less security) - wikiEl = uifactory.addCheckboxesHorizontal("sec.wiki", "sec.wiki", formLayout, keys, values, null); + wikiEl = uifactory.addCheckboxesHorizontal("sec.wiki", "sec.wiki", formLayout, keys, values); wikiEl.select("off", securityModule.isWikiEnabled()); wikiEl.addActionListener(FormEvent.ONCHANGE); // on: force file download in folder component (more security); off: allow execution of content (less security) - forceDownloadEl = uifactory.addCheckboxesHorizontal("sec.download", "sec.force.download", formLayout, keys, values, null); + forceDownloadEl = uifactory.addCheckboxesHorizontal("sec.download", "sec.force.download", formLayout, keys, values); forceDownloadEl.select("on", folderModule.isForceDownload()); forceDownloadEl.addActionListener(FormEvent.ONCHANGE); } diff --git a/src/main/java/org/olat/admin/site/ui/SitesConfigurationController.java b/src/main/java/org/olat/admin/site/ui/SitesConfigurationController.java index d1102e3231975db3925e0a049fd5e015937e4240..2675429b5b77f4f57c909254d8c124424df6905f 100644 --- a/src/main/java/org/olat/admin/site/ui/SitesConfigurationController.java +++ b/src/main/java/org/olat/admin/site/ui/SitesConfigurationController.java @@ -307,7 +307,7 @@ public class SitesConfigurationController extends FormBasicController { } } - enableSiteEl = uifactory.addCheckboxesHorizontal("site.enable." + id, null, formLayout, new String[]{ "x" }, new String[]{ "" }, null); + enableSiteEl = uifactory.addCheckboxesHorizontal("site.enable." + id, null, formLayout, new String[]{ "x" }, new String[]{ "" }); enableSiteEl.addActionListener(FormEvent.ONCHANGE); altControllerEl = uifactory.addDropdownSingleselect("site.alternative." + id, "site.alternative", formLayout, altKeys, altValues, null); diff --git a/src/main/java/org/olat/admin/sysinfo/BlockLoginConfirmationController.java b/src/main/java/org/olat/admin/sysinfo/BlockLoginConfirmationController.java index 64a3d278f637c7068131089fe972858bc4ab9d4f..a1852b27daf9e101307d828c17effa4492501dcb 100644 --- a/src/main/java/org/olat/admin/sysinfo/BlockLoginConfirmationController.java +++ b/src/main/java/org/olat/admin/sysinfo/BlockLoginConfirmationController.java @@ -49,7 +49,7 @@ public class BlockLoginConfirmationController extends FormBasicController { formLayout.add(optionsCont); formLayout.add("options", optionsCont); String[] values = new String[] { translate("persist.block.login")}; - persistEl = uifactory.addCheckboxesVertical("block.login.options", "block.login.options", optionsCont, keys, values, null, 1); + persistEl = uifactory.addCheckboxesVertical("block.login.options", "block.login.options", optionsCont, keys, values, 1); persistEl.select(keys[0], true); FormLayoutContainer buttonCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator()); diff --git a/src/main/java/org/olat/admin/sysinfo/CoreFunctionsController.java b/src/main/java/org/olat/admin/sysinfo/CoreFunctionsController.java index a816ba0a64b4ebf7c1a9a90875fe9792769bfacf..cab10867339cf91ed28d031a376fdd1a022d95ba 100644 --- a/src/main/java/org/olat/admin/sysinfo/CoreFunctionsController.java +++ b/src/main/java/org/olat/admin/sysinfo/CoreFunctionsController.java @@ -58,17 +58,17 @@ public class CoreFunctionsController extends FormBasicController { formLayout.add("functions", serverCont); MultipleSelectionElement clusterEl - = uifactory.addCheckboxesHorizontal("webdav", "core.webdav", serverCont, new String[]{"xx"}, new String[]{""}, null); + = uifactory.addCheckboxesHorizontal("webdav", "core.webdav", serverCont, new String[]{"xx"}, new String[]{""}); clusterEl.setEnabled(false); clusterEl.select("xx", CoreSpringFactory.getImpl(WebDAVModule.class).isEnabled()); MultipleSelectionElement jsMathEl - = uifactory.addCheckboxesHorizontal("jsmath", "core.jsMath", serverCont, new String[]{"xx"}, new String[]{""}, null); + = uifactory.addCheckboxesHorizontal("jsmath", "core.jsMath", serverCont, new String[]{"xx"}, new String[]{""}); jsMathEl.setEnabled(false); jsMathEl.select("xx", Boolean.TRUE); MultipleSelectionElement restEl - = uifactory.addCheckboxesHorizontal("restapi", "core.restapi", serverCont, new String[]{"xx"}, new String[]{""}, null); + = uifactory.addCheckboxesHorizontal("restapi", "core.restapi", serverCont, new String[]{"xx"}, new String[]{""}); restEl.setEnabled(false); RestModule restModule = CoreSpringFactory.getImpl(RestModule.class); restEl.select("xx", restModule.isEnabled()); diff --git a/src/main/java/org/olat/admin/sysinfo/SysinfoController.java b/src/main/java/org/olat/admin/sysinfo/SysinfoController.java index a65efa965f4af5db4d72d8171277b61bb1b0293d..bbd2e542cdb396997c7a9f46bf8a84f13d8de279 100644 --- a/src/main/java/org/olat/admin/sysinfo/SysinfoController.java +++ b/src/main/java/org/olat/admin/sysinfo/SysinfoController.java @@ -162,7 +162,7 @@ public class SysinfoController extends FormBasicController { //cluster boolean clusterMode = "Cluster".equals(Settings.getClusterMode()); MultipleSelectionElement clusterEl - = uifactory.addCheckboxesHorizontal("cluster", "sysinfo.cluster", serverCont, new String[]{"xx"}, new String[]{""}, null); + = uifactory.addCheckboxesHorizontal("cluster", "sysinfo.cluster", serverCont, new String[]{"xx"}, new String[]{""}); clusterEl.setEnabled(false); clusterEl.select("xx", clusterMode); diff --git a/src/main/java/org/olat/admin/user/SystemRolesAndRightsForm.java b/src/main/java/org/olat/admin/user/SystemRolesAndRightsForm.java index b98c4c92eb61e9644248be87274f8e727c7246c8..4df41ef42939b4a885d77eadeded18f66eceafea 100644 --- a/src/main/java/org/olat/admin/user/SystemRolesAndRightsForm.java +++ b/src/main/java/org/olat/admin/user/SystemRolesAndRightsForm.java @@ -300,9 +300,7 @@ public class SystemRolesAndRightsForm extends FormBasicController { RolesSE = uifactory.addCheckboxesVertical( "roles", "rightsForm.roles", formLayout, roleKeys.toArray(new String[roleKeys.size()]), - roleValues.toArray(new String[roleValues.size()]), - null, 1 - ); + roleValues.toArray(new String[roleValues.size()]), 1); rolesSep = uifactory.addSpacerElement("rolesSep", formLayout, false); statusRE = uifactory.addRadiosVertical( diff --git a/src/main/java/org/olat/admin/user/UserCreateController.java b/src/main/java/org/olat/admin/user/UserCreateController.java index 449edba5b128a7a216367d1f06935b2bf3a7e402..575784e5ae10985cdb0088c0aab94987f7dd24c8 100644 --- a/src/main/java/org/olat/admin/user/UserCreateController.java +++ b/src/main/java/org/olat/admin/user/UserCreateController.java @@ -207,7 +207,7 @@ class NewUserForm extends FormBasicController { // checkBox: generate user with OLAT authentication or not String[] authKeys = {"xx"}; String[] authValues = {translate("new.form.auth.true")}; - authCheckbox = uifactory.addCheckboxesHorizontal("new.form.auth", formLayout, authKeys, authValues, null); + authCheckbox = uifactory.addCheckboxesHorizontal("new.form.auth", formLayout, authKeys, authValues); authCheckbox.select("xx", showPasswordFields); authCheckbox.addActionListener(FormEvent.ONCLICK); diff --git a/src/main/java/org/olat/admin/user/UserSearchFlexiController.java b/src/main/java/org/olat/admin/user/UserSearchFlexiController.java index 4427182e39539bb67bc1803c927375add2827ab4..16837364682a9addeb28d960aad20673f121f5cb 100644 --- a/src/main/java/org/olat/admin/user/UserSearchFlexiController.java +++ b/src/main/java/org/olat/admin/user/UserSearchFlexiController.java @@ -442,7 +442,7 @@ public class UserSearchFlexiController extends FlexiAutoCompleterController { private List<UserResultWrapper> wrapIdentities(List<Identity> identities) { List<UserResultWrapper> wrappers = new ArrayList<UserResultWrapper>(identities.size()); for(Identity identity:identities) { - MultipleSelectionElement selectEl = uifactory.addCheckboxesHorizontal("sel_" + identity.getKey(), null, flc, new String[]{"on"}, new String[]{""}, null); + MultipleSelectionElement selectEl = uifactory.addCheckboxesHorizontal("sel_" + identity.getKey(), null, flc, new String[]{"on"}, new String[]{""}); FormLink selectLink = uifactory.addFormLink("sel_lin_" + identity.getKey(), "select", null, flc, Link.LINK); selectLink.setUserObject(identity); wrappers.add(new UserResultWrapper(identity, selectLink, selectEl)); diff --git a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java index 92d82d386f6ac086f335ed76c561a884acf63abb..6bd0874da9c2550bb439694c6f26a9a5c4456405 100644 --- a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java +++ b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java @@ -858,17 +858,12 @@ class UsermanagerUserSearchForm extends FormBasicController { uifactory.addSpacerElement("space1", formLayout, false); roles = uifactory.addCheckboxesVertical( - "roles", "search.form.title.roles", formLayout, roleKeys, roleValues, - null, 1 - ); - - + "roles", "search.form.title.roles", formLayout, roleKeys, roleValues, 1); + uifactory.addSpacerElement("space2", formLayout, false); auth = uifactory.addCheckboxesVertical( "auth", "search.form.title.authentications", - formLayout, authKeys, authValues, null, 1 - ); - + formLayout, authKeys, authValues, 1); uifactory.addSpacerElement("space3", formLayout, false); status = uifactory.addRadiosVertical( diff --git a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangePasswordController.java b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangePasswordController.java index 5894a43182777c7cfce75aa60415cf8a20fb1f76..58b305f0fcb50575221b5798895b036c3959981f 100644 --- a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangePasswordController.java +++ b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangePasswordController.java @@ -173,8 +173,8 @@ public class UserBulkChangePasswordController extends BasicController { userListTextArea = FormUIFactory.getInstance().addTextAreaElement("bulk.psw.users", 10, 2, null, formLayout); olatPasswordAuthentication = FormUIFactory.getInstance().addTextElement("pswtextfield", "bulk.psw.newpsw", 255, "", formLayout); - acceptDisclaimer = FormUIFactory.getInstance().addCheckboxesVertical("bulk.auto.disc", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); - langGerman = FormUIFactory.getInstance().addCheckboxesVertical("bulk.lang.german", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + acceptDisclaimer = FormUIFactory.getInstance().addCheckboxesVertical("bulk.auto.disc", formLayout, new String[]{"xx"}, new String[]{null}, 1); + langGerman = FormUIFactory.getInstance().addCheckboxesVertical("bulk.lang.german", formLayout, new String[]{"xx"}, new String[]{null}, 1); final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator()); formLayout.add(buttonLayout); diff --git a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep00.java b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep00.java index bc96aac5a04b612e77af261dce799abf29cee471..2e42416a6febff607da0873678c339056090f749 100644 --- a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep00.java +++ b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep00.java @@ -282,7 +282,7 @@ class UserBulkChangeStep00 extends BasicStep { // add input field for password Boolean canChangePwd = BaseSecurityModule.USERMANAGER_CAN_MODIFY_PWD; if (canChangePwd.booleanValue() || isOLATAdmin) { - checkbox = uifactory.addCheckboxesVertical("checkboxPWD", "form.name.pwd", innerFormLayout, new String[] { "changePWD" }, new String[] { "" }, null, 1); + checkbox = uifactory.addCheckboxesVertical("checkboxPWD", "form.name.pwd", innerFormLayout, new String[] { "changePWD" }, new String[] { "" }, 1); checkbox.select("changePWD", false); checkbox.addActionListener(FormEvent.ONCLICK); formitem = uifactory.addTextElement(UserBulkChangeManager.PWD_IDENTIFYER, "password", 127, null, innerFormLayout); @@ -310,7 +310,7 @@ class UserBulkChangeStep00 extends BasicStep { languageValues[p] = locdescs.get(key); p++; } - checkbox = uifactory.addCheckboxesVertical("checkboxLang", "form.name.language", innerFormLayout, new String[] { "changeLang" }, new String[] { "" }, null, 1); + checkbox = uifactory.addCheckboxesVertical("checkboxLang", "form.name.language", innerFormLayout, new String[] { "changeLang" }, new String[] { "" }, 1); checkbox.select("changeLang", false); checkbox.addActionListener(FormEvent.ONCLICK); formitem = uifactory.addDropdownSingleselect(UserBulkChangeManager.LANG_IDENTIFYER, innerFormLayout, languageKeys, languageValues, null); @@ -333,7 +333,8 @@ class UserBulkChangeStep00 extends BasicStep { if(!(userPropertyHandler instanceof GenericUnique127CharTextPropertyHandler)) { userPropertyHandlers.add(userPropertyHandler); - checkbox = uifactory.addCheckboxesVertical("checkbox" + i, "form.name." + userPropertyHandler.getName(), innerFormLayout, new String[] { "change" + userPropertyHandler.getName() }, new String[] { "" }, null, 1); + checkbox = uifactory.addCheckboxesVertical("checkbox" + i, "form.name." + userPropertyHandler.getName(), innerFormLayout, + new String[] { "change" + userPropertyHandler.getName() }, new String[] { "" }, 1); checkbox.select("change" + userPropertyHandler.getName(), false); checkbox.addActionListener(FormEvent.ONCLICK); diff --git a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep01.java b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep01.java index e1ed014e7f3b969626a0e4091cb0d5909c276048..3d27185726e362c58b6a278aa59d4190298222df 100644 --- a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep01.java +++ b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep01.java @@ -192,7 +192,7 @@ class UserBulkChangeStep01 extends BasicStep { // usermanager: if (isAdmin || isUserManager || iAmOlatAdmin) { - chkUserManager = uifactory.addCheckboxesVertical("Usermanager", "table.role.useradmin", innerFormLayout, new String[] { "Usermanager" }, new String[] { "" }, null, 1); + chkUserManager = uifactory.addCheckboxesVertical("Usermanager", "table.role.useradmin", innerFormLayout, new String[] { "Usermanager" }, new String[] { "" }, 1); chkUserManager.select("Usermanager", false); chkUserManager.addActionListener(FormEvent.ONCLICK); @@ -206,7 +206,7 @@ class UserBulkChangeStep01 extends BasicStep { // groupmanager if (isAdmin || isGroupManager || iAmOlatAdmin) { - chkGroupManager = uifactory.addCheckboxesVertical("Groupmanager", "table.role.groupadmin", innerFormLayout, new String[] { "Groupmanager" }, new String[] { "" }, null, 1); + chkGroupManager = uifactory.addCheckboxesVertical("Groupmanager", "table.role.groupadmin", innerFormLayout, new String[] { "Groupmanager" }, new String[] { "" }, 1); chkGroupManager.select("Groupmanager", false); chkGroupManager.addActionListener(FormEvent.ONCLICK); @@ -220,7 +220,7 @@ class UserBulkChangeStep01 extends BasicStep { // author if (isAdmin || isAuthor || iAmOlatAdmin) { - chkAuthor = uifactory.addCheckboxesVertical("Author", "table.role.author", innerFormLayout, new String[] { "Author" }, new String[] { "" }, null, 1); + chkAuthor = uifactory.addCheckboxesVertical("Author", "table.role.author", innerFormLayout, new String[] { "Author" }, new String[] { "" }, 1); chkAuthor.select("Author", false); chkAuthor.addActionListener(FormEvent.ONCLICK); @@ -237,7 +237,7 @@ class UserBulkChangeStep01 extends BasicStep { // sysadmin if (isAdmin || iAmOlatAdmin) { - chkAdmin = uifactory.addCheckboxesVertical("Admin", "table.role.admin", innerFormLayout, new String[] { "Admin" }, new String[] { "" }, null, 1); + chkAdmin = uifactory.addCheckboxesVertical("Admin", "table.role.admin", innerFormLayout, new String[] { "Admin" }, new String[] { "" }, 1); chkAdmin.select("Admin", false); chkAdmin.addActionListener(FormEvent.ONCLICK); @@ -251,7 +251,7 @@ class UserBulkChangeStep01 extends BasicStep { // status if (isAdmin || iAmOlatAdmin) { - chkStatus = uifactory.addCheckboxesVertical("Status", "table.role.status", innerFormLayout, new String[] { "Status" }, new String[] { "" }, null, 1); + chkStatus = uifactory.addCheckboxesVertical("Status", "table.role.status", innerFormLayout, new String[] { "Status" }, new String[] { "" }, 1); chkStatus.select("Status", false); chkStatus.addActionListener(FormEvent.ONCLICK); diff --git a/src/main/java/org/olat/admin/user/course/CourseLeaveDialogBoxController.java b/src/main/java/org/olat/admin/user/course/CourseLeaveDialogBoxController.java index 0f5810722a3db044d0499b4047b061f714a75734..3652566f02ab0c0df6d1ea18f9bf875ff155177e 100644 --- a/src/main/java/org/olat/admin/user/course/CourseLeaveDialogBoxController.java +++ b/src/main/java/org/olat/admin/user/course/CourseLeaveDialogBoxController.java @@ -89,7 +89,7 @@ public class CourseLeaveDialogBoxController extends FormBasicController { String[] values = new String[]{ translate("dialog.modal.bg.mail.text") }; - sendMail = uifactory.addCheckboxesHorizontal("send.mail", null, formLayout, keys, values, null); + sendMail = uifactory.addCheckboxesHorizontal("send.mail", null, formLayout, keys, values); if(!groupsToDelete.isEmpty()) { String deletMsg = translate("unsubscribe.group.del"); @@ -98,7 +98,7 @@ public class CourseLeaveDialogBoxController extends FormBasicController { String[] delValues = new String[]{ translate("group.delete.confirmation") }; - groupDeleteEl = uifactory.addCheckboxesHorizontal("group.del", null, formLayout, keys, delValues, null); + groupDeleteEl = uifactory.addCheckboxesHorizontal("group.del", null, formLayout, keys, delValues); groupDeleteEl.select(keys[0], true); } diff --git a/src/main/java/org/olat/admin/user/groups/GroupLeaveDialogBoxController.java b/src/main/java/org/olat/admin/user/groups/GroupLeaveDialogBoxController.java index e2a82b9756991e3458943dcde6a1e47b7687b355..e2694529136e317906cf6f146246702773eae8e4 100644 --- a/src/main/java/org/olat/admin/user/groups/GroupLeaveDialogBoxController.java +++ b/src/main/java/org/olat/admin/user/groups/GroupLeaveDialogBoxController.java @@ -75,7 +75,7 @@ public class GroupLeaveDialogBoxController extends FormBasicController { String[] values = new String[]{ translate("dialog.modal.bg.mail.text") }; - sendMail = uifactory.addCheckboxesHorizontal("send.mail", null, formLayout, keys, values, null); + sendMail = uifactory.addCheckboxesHorizontal("send.mail", null, formLayout, keys, values); if(!groupsToDelete.isEmpty()) { String deletMsg = translate("unsubscribe.group.del"); @@ -84,7 +84,7 @@ public class GroupLeaveDialogBoxController extends FormBasicController { String[] delValues = new String[]{ translate("group.delete.confirmation") }; - groupDeleteEl = uifactory.addCheckboxesHorizontal("group.del", null, formLayout, keys, delValues, null); + groupDeleteEl = uifactory.addCheckboxesHorizontal("group.del", null, formLayout, keys, delValues); groupDeleteEl.select(keys[0], true); } diff --git a/src/main/java/org/olat/admin/user/groups/GroupSearchController.java b/src/main/java/org/olat/admin/user/groups/GroupSearchController.java index 6e65c3e56c7f3e202e19395b1baa2fa1cab9d3cd..8ee3bf48d1e3c96b56bca8094945666aaf4ff4d0 100644 --- a/src/main/java/org/olat/admin/user/groups/GroupSearchController.java +++ b/src/main/java/org/olat/admin/user/groups/GroupSearchController.java @@ -251,7 +251,7 @@ public class GroupSearchController extends StepFormBasicController { private MultipleSelectionElement createSelection(String name) { MultipleSelectionElement selection = new MultipleSelectionElementImpl(name, MultipleSelectionElementImpl.createVerticalLayout("checkbox",1)); - selection.setKeysAndValues(new String[]{"on"}, new String[]{""}, null); + selection.setKeysAndValues(new String[]{"on"}, new String[]{""}); tableCont.add(name, selection); return selection; } diff --git a/src/main/java/org/olat/admin/user/imp/ImportStep01.java b/src/main/java/org/olat/admin/user/imp/ImportStep01.java index b15537abf68ed17579d1c5305ceee27c6226795f..d33b1a90441238f3c4e96265232ea296845b1393 100644 --- a/src/main/java/org/olat/admin/user/imp/ImportStep01.java +++ b/src/main/java/org/olat/admin/user/imp/ImportStep01.java @@ -137,13 +137,13 @@ class ImportStep01 extends BasicStep { if(!updateIdents.isEmpty()) { String[] updateValues = new String[]{ translate("update.user") }; updateEl = uifactory - .addCheckboxesHorizontal("update.user", textContainer, new String[]{"on"}, updateValues, null); + .addCheckboxesHorizontal("update.user", textContainer, new String[]{"on"}, updateValues); updateEl.select("on", true); if(canCreateOLATPassword) { String[] theValues = new String[]{ translate("update.password") }; updatePasswordEl = uifactory - .addCheckboxesHorizontal("update.password", textContainer, new String[]{"on"}, theValues, null); + .addCheckboxesHorizontal("update.password", textContainer, new String[]{"on"}, theValues); } } diff --git a/src/main/java/org/olat/admin/user/imp/SendMailConfirmationController.java b/src/main/java/org/olat/admin/user/imp/SendMailConfirmationController.java index 149d1f8ee601e6d92629b5ffcbf25407a499fd31..e4bdc1b3e1003dc1944c0a964ca688866d4c62fa 100644 --- a/src/main/java/org/olat/admin/user/imp/SendMailConfirmationController.java +++ b/src/main/java/org/olat/admin/user/imp/SendMailConfirmationController.java @@ -59,7 +59,7 @@ public class SendMailConfirmationController extends StepFormBasicController { List<Long> partGroups = (List<Long>) getFromRunContext("partGroups"); String[] values = new String[] { translate("step3.send.mail") }; - typEl = uifactory.addCheckboxesVertical("typ", "step3.send.label", formLayout, keys, values, null, 1); + typEl = uifactory.addCheckboxesVertical("typ", "step3.send.label", formLayout, keys, values, 1); typEl.setEnabled(ownGroups.size() > 0 || partGroups.size() > 0); } diff --git a/src/main/java/org/olat/admin/user/tools/ui/UserToolsAdminController.java b/src/main/java/org/olat/admin/user/tools/ui/UserToolsAdminController.java index f04cbb16a1e0901bac3929f9c0ebdb9860cba56f..bc53d41b963ee186b873f40d204ad82c8ca09d54 100644 --- a/src/main/java/org/olat/admin/user/tools/ui/UserToolsAdminController.java +++ b/src/main/java/org/olat/admin/user/tools/ui/UserToolsAdminController.java @@ -74,7 +74,7 @@ public class UserToolsAdminController extends FormBasicController { toolValues[i] = userTool.getLabel(); } - availableEl = uifactory.addCheckboxesVertical("available.tools", "available.tools", formLayout, toolKeys, toolValues, null, 1); + availableEl = uifactory.addCheckboxesVertical("available.tools", "available.tools", formLayout, toolKeys, toolValues, 1); availableEl.addActionListener(FormEvent.ONCHANGE); if(!userToolsModule.isUserToolsDisabled()) { @@ -92,7 +92,7 @@ public class UserToolsAdminController extends FormBasicController { } } - presetEl = uifactory.addCheckboxesVertical("preset.tools", "preset.tools", formLayout, toolKeys, toolValues, null, 1); + presetEl = uifactory.addCheckboxesVertical("preset.tools", "preset.tools", formLayout, toolKeys, toolValues, 1); presetEl.addActionListener(FormEvent.ONCHANGE); } diff --git a/src/main/java/org/olat/collaboration/CollaborationToolsSettingsController.java b/src/main/java/org/olat/collaboration/CollaborationToolsSettingsController.java index aca9c22bde17edaaf8ce401de105b98d73fbf88b..d54f3b22ec07a1de43daa32150c73ddf9ccc943f 100644 --- a/src/main/java/org/olat/collaboration/CollaborationToolsSettingsController.java +++ b/src/main/java/org/olat/collaboration/CollaborationToolsSettingsController.java @@ -312,9 +312,7 @@ class ChoiceOfToolsForm extends FormBasicController { ms = uifactory.addCheckboxesVertical( "selection", formLayout, theKeys.toArray(new String[theKeys.size()]), - theValues.toArray(new String[theValues.size()]), - null, 1 - ); + theValues.toArray(new String[theValues.size()]), 1); for (int i=0; i<availableTools.length; i++) { ms.select(""+i, cts.isToolEnabled(availableTools[i])); } diff --git a/src/main/java/org/olat/commons/calendar/ui/KalendarEntryForm.java b/src/main/java/org/olat/commons/calendar/ui/KalendarEntryForm.java index 56b270789353f11f69d2f9302fe343fc18f5b25d..173994bf3a76ef012688146a39d03bd5e7390d0a 100644 --- a/src/main/java/org/olat/commons/calendar/ui/KalendarEntryForm.java +++ b/src/main/java/org/olat/commons/calendar/ui/KalendarEntryForm.java @@ -321,7 +321,7 @@ public class KalendarEntryForm extends FormBasicController { end.setMandatory(true); end.setDate(event.getEnd()); - allDayEvent = uifactory.addCheckboxesVertical("allday", "cal.form.allday", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + allDayEvent = uifactory.addCheckboxesVertical("allday", "cal.form.allday", formLayout, new String[]{"xx"}, new String[]{null}, 1); allDayEvent.select("xx", event.isAllDayEvent()); chooseRecurrence = uifactory.addDropdownSingleselect("cal.form.recurrence", formLayout, keysRecurrence, valuesRecurrence, null); diff --git a/src/main/java/org/olat/commons/file/filechooser/FileChooseCreateEditController.java b/src/main/java/org/olat/commons/file/filechooser/FileChooseCreateEditController.java index 6d2814500fd43cfbe99e6093bfd4c600e70aa557..3efb21dc59cc6f3e8eafc5d5b304de4f54918f29 100644 --- a/src/main/java/org/olat/commons/file/filechooser/FileChooseCreateEditController.java +++ b/src/main/java/org/olat/commons/file/filechooser/FileChooseCreateEditController.java @@ -719,7 +719,7 @@ class AllowRelativeLinksForm extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - allowRelativeLinks = uifactory.addCheckboxesVertical("allowRelativeLinks", "allowRelativeLinks", formLayout, new String[] {"xx"}, new String[] {null}, null, 1); + allowRelativeLinks = uifactory.addCheckboxesVertical("allowRelativeLinks", "allowRelativeLinks", formLayout, new String[] {"xx"}, new String[] {null}, 1); allowRelativeLinks.select("xx", isOn); allowRelativeLinks.addActionListener(FormEvent.ONCLICK); } diff --git a/src/main/java/org/olat/commons/info/ui/SendMailStepController.java b/src/main/java/org/olat/commons/info/ui/SendMailStepController.java index afab95f31996dc41d3742b6e6fb763152595b82a..dd5396fdf0181573b5ad4f74705cd37a4ffd83ae 100644 --- a/src/main/java/org/olat/commons/info/ui/SendMailStepController.java +++ b/src/main/java/org/olat/commons/info/ui/SendMailStepController.java @@ -67,7 +67,7 @@ public class SendMailStepController extends StepFormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormTitle("wizard.step1.title"); setFormDescription("wizard.step1.form_description"); - sendSelection = uifactory.addCheckboxesVertical("wizard.step1.send_option", formLayout, sendOptionKeys, sendOptionValues, null, 1); + sendSelection = uifactory.addCheckboxesVertical("wizard.step1.send_option", formLayout, sendOptionKeys, sendOptionValues, 1); } @Override diff --git a/src/main/java/org/olat/core/commons/controllers/resume/ResumeController.java b/src/main/java/org/olat/core/commons/controllers/resume/ResumeController.java index 952f018ec0abf9a095c36599a5dd631a038f5197..d2b62516800d39711f917302cbd42a4cd5ce14c6 100644 --- a/src/main/java/org/olat/core/commons/controllers/resume/ResumeController.java +++ b/src/main/java/org/olat/core/commons/controllers/resume/ResumeController.java @@ -82,7 +82,7 @@ public class ResumeController extends FormBasicController implements SupportsAft @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - askagainCheckbox = uifactory.addCheckboxesHorizontal("askagain",null, formLayout, askagain_keys, new String[]{translate("askagain.label")}, null); + askagainCheckbox = uifactory.addCheckboxesHorizontal("askagain",null, formLayout, askagain_keys, new String[]{translate("askagain.label")}); // Button layout FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator()); diff --git a/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java b/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java index 3255f4fde067611965e0bf77477bc190b4ad3847..0e6def0f8dc306c369269a527b37946f289bbfdd 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java +++ b/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java @@ -230,7 +230,7 @@ public class FileUploadController extends FormBasicController { String[] keys = new String[]{"resize"}; String[] values = new String[]{translate("resize_image")}; - resizeEl = uifactory.addCheckboxesHorizontal("resize_image", resizeCont, keys, values, null); + resizeEl = uifactory.addCheckboxesHorizontal("resize_image", resizeCont, keys, values); resizeEl.setLabel(null, null); resizeEl.select("resize", true); } diff --git a/src/main/java/org/olat/core/commons/modules/glossary/GlossaryFlexionController.java b/src/main/java/org/olat/core/commons/modules/glossary/GlossaryFlexionController.java index e9b0fe89496be981090c60fc9871c86ec5cb2e68..10ce87423444250f2c2840f40bc1c802a9557a71 100644 --- a/src/main/java/org/olat/core/commons/modules/glossary/GlossaryFlexionController.java +++ b/src/main/java/org/olat/core/commons/modules/glossary/GlossaryFlexionController.java @@ -212,12 +212,11 @@ public class GlossaryFlexionController extends FormBasicController { Collections.sort(glossItemFlexions); String[] flexionKeys = ArrayHelper.toArray(glossItemFlexions); String[] flexionValues = new String[flexionKeys.length]; - String[] flexionCSS = new String[flexionKeys.length]; for (int i = 0; i < flexionKeys.length; i++) { flexionValues[i] = glossItemFlexions.get(i); } - existingFlexions = uifactory.addCheckboxesVertical("existing.flexions.checkboxes", null, formLayout, flexionKeys, flexionValues, flexionCSS, - 1); + existingFlexions = uifactory.addCheckboxesVertical("existing.flexions.checkboxes", null, formLayout, + flexionKeys, flexionValues, 1); existingFlexions.addActionListener(FormEvent.ONCLICK); for (String flexKey : existingKeys) { existingFlexions.select(flexKey, true); @@ -226,7 +225,6 @@ public class GlossaryFlexionController extends FormBasicController { selectAllLink = uifactory.addFormLink("flexions.select.all", formLayout, Link.LINK); deselectAllLink = uifactory.addFormLink("flexions.select.none", formLayout, Link.LINK); } - } /** diff --git a/src/main/java/org/olat/core/commons/services/webdav/ui/WebDAVAdminController.java b/src/main/java/org/olat/core/commons/services/webdav/ui/WebDAVAdminController.java index 9e2cbe1ec1d49a770845048b5c4e5435992c0b4e..71bb683a213ca020396ec67ef13dc81bdecc3f4c 100644 --- a/src/main/java/org/olat/core/commons/services/webdav/ui/WebDAVAdminController.java +++ b/src/main/java/org/olat/core/commons/services/webdav/ui/WebDAVAdminController.java @@ -56,16 +56,16 @@ public class WebDAVAdminController extends FormBasicController { boolean enabled = webDAVModule.isEnabled(); String[] values = new String[] { getTranslator().translate("webdav.on") }; - enableModuleEl = uifactory.addCheckboxesHorizontal("webdavModule", "webdav.module", formLayout, new String[]{"xx"}, values, null); + enableModuleEl = uifactory.addCheckboxesHorizontal("webdavModule", "webdav.module", formLayout, new String[]{"xx"}, values); enableModuleEl.select("xx", enabled); enableModuleEl.addActionListener(FormEvent.ONCHANGE); - enableLinkEl = uifactory.addCheckboxesHorizontal("webdavLink", "webdav.link", formLayout, new String[]{"xx"}, values, null); + enableLinkEl = uifactory.addCheckboxesHorizontal("webdavLink", "webdav.link", formLayout, new String[]{"xx"}, values); enableLinkEl.select("xx", webDAVModule.isLinkEnabled()); enableLinkEl.addActionListener(FormEvent.ONCHANGE); enableLinkEl.setEnabled(enabled); - enableDigestEl = uifactory.addCheckboxesHorizontal("webdavDigest", "webdav.digest", formLayout, new String[]{"xx"}, values, null); + enableDigestEl = uifactory.addCheckboxesHorizontal("webdavDigest", "webdav.digest", formLayout, new String[]{"xx"}, values); enableDigestEl.select("xx", webDAVModule.isDigestAuthenticationEnabled()); enableDigestEl.addActionListener(FormEvent.ONCHANGE); enableDigestEl.setEnabled(enabled); diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java b/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java index 95e6c514542de441e6fe702f5e7c2e269f55f828..5f516963ad41c74f3f1da773c29cf4d0dd6ce2ff 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java @@ -192,11 +192,10 @@ public class FormUIFactory { * @param layouter * @param keys * @param values - * @param cssClasses * @return */ - public MultipleSelectionElement addCheckboxesHorizontal(String name, FormItemContainer formLayout, String[] keys, String values[], String[] cssClasses) { - return addCheckboxesHorizontal(name, name, formLayout, keys, values, cssClasses); + public MultipleSelectionElement addCheckboxesHorizontal(String name, FormItemContainer formLayout, String[] keys, String values[]) { + return addCheckboxesHorizontal(name, name, formLayout, keys, values); } /** @@ -207,12 +206,11 @@ public class FormUIFactory { * @param formLayout * @param keys * @param values - * @param cssClasses * @return */ - public MultipleSelectionElement addCheckboxesHorizontal(String name, String i18nLabel, FormItemContainer formLayout, String[] keys, String values[], String[] cssClasses) { + public MultipleSelectionElement addCheckboxesHorizontal(String name, String i18nLabel, FormItemContainer formLayout, String[] keys, String values[]) { MultipleSelectionElement mse = new MultipleSelectionElementImpl(name, MultipleSelectionElementImpl.createHorizontalLayout(name)); - mse.setKeysAndValues(keys, values, cssClasses); + mse.setKeysAndValues(keys, values); setLabelIfNotNull(i18nLabel, mse); formLayout.add(mse); return mse; @@ -231,8 +229,27 @@ public class FormUIFactory { * @param columns Currently 1 and 2 columns are supported * @return */ - public MultipleSelectionElement addCheckboxesVertical(String name, FormItemContainer formLayout, String[] keys, String values[], String[] cssClasses, int columns) { - return addCheckboxesVertical(name, name, formLayout, keys, values, cssClasses, columns); + public MultipleSelectionElement addCheckboxesVertical(String name, FormItemContainer formLayout, String[] keys, String values[], int columns) { + return addCheckboxesVertical(name, name, formLayout, keys, values, null, null, columns); + } + + /** + * + * See above + * @param name + * @param formLayout + * @param keys + * @param values + * @param iconLeftCSS Icon placed with an <i> tag + * @param columns + * @return + */ + public MultipleSelectionElement addCheckboxesVertical(String name, FormItemContainer formLayout, String[] keys, String values[], String[] iconLeftCSS, int columns) { + return addCheckboxesVertical(name, name, formLayout, keys, values, null, iconLeftCSS, columns); + } + + public MultipleSelectionElement addCheckboxesVertical(String name, String i18nLabel, FormItemContainer formLayout, String[] keys, String values[], int columns) { + return addCheckboxesVertical(name, i18nLabel, formLayout, keys, values, null, null, columns); } /** @@ -246,9 +263,10 @@ public class FormUIFactory { * @param columns * @return */ - public MultipleSelectionElement addCheckboxesVertical(String name, String i18nLabel, FormItemContainer formLayout, String[] keys, String values[], String[] cssClasses, int columns) { + public MultipleSelectionElement addCheckboxesVertical(String name, String i18nLabel, FormItemContainer formLayout, + String[] keys, String values[], String[] cssClasses, String[] iconLeftCSS, int columns) { MultipleSelectionElement mse = new MultipleSelectionElementImpl(name, MultipleSelectionElementImpl.createVerticalLayout(name, columns)); - mse.setKeysAndValues(keys, values, cssClasses); + mse.setKeysAndValues(keys, values, cssClasses, iconLeftCSS); setLabelIfNotNull(i18nLabel, mse); formLayout.add(mse); return mse; diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/MultipleSelectionElement.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/MultipleSelectionElement.java index f4b94acd2aa58a43305ec3e6c136d9058f36a2ec..e9397c53e49aa331f32f7bb87d188b9810b665dc 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/elements/MultipleSelectionElement.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/MultipleSelectionElement.java @@ -45,6 +45,8 @@ public interface MultipleSelectionElement extends SelectionElement { * @return a Set of Strings */ public Set<String> getSelectedKeys(); + + public void setKeysAndValues(String[] keys, String values[]); /** * @@ -54,7 +56,7 @@ public interface MultipleSelectionElement extends SelectionElement { * The CSS classes that should be used in the form element for * each key-value pair or NULL not not use special styling */ - public void setKeysAndValues(String[] keys, String values[], String[] cssClasses); + public void setKeysAndValues(String[] keys, String values[], String[] cssClasses, String[] iconLeftCSS); public Set<String> getKeys(); diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/CheckboxElementComponent.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/CheckboxElementComponent.java index 6b22f5a5689fcf674dd8d128a0c9b6d558b6ce7d..3d480931dc67fb8abadc1965ca3a36c103c4ebd5 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/CheckboxElementComponent.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/CheckboxElementComponent.java @@ -44,6 +44,7 @@ class CheckboxElementComponent extends FormBaseComponentImpl { private final SelectionElement selectionWrapper; private final int which; private boolean escapeHtml = true; + private String iconLeftCSS; private final String cssClass; private static final ComponentRenderer RENDERER = new CheckboxRenderer(); //public static final String RENDERARG_ESCAPEHTML = "ESC_HTML"; @@ -64,11 +65,13 @@ class CheckboxElementComponent extends FormBaseComponentImpl { * Optional css class to be added to the checkbox in a span * element. Can be NULL */ - CheckboxElementComponent(String name, Translator translator, SelectionElement selectionWrapper, int which, String cssClass) { + CheckboxElementComponent(String name, Translator translator, SelectionElement selectionWrapper, int which, + String cssClass, String iconLeftCSS) { super(name, translator); this.selectionWrapper = selectionWrapper; this.which = which; this.cssClass = cssClass; + this.iconLeftCSS = iconLeftCSS; } /** @@ -111,6 +114,14 @@ class CheckboxElementComponent extends FormBaseComponentImpl { return cssClass; } + public String getIconLeftCSS() { + return iconLeftCSS; + } + + public void setIconLeftCSS(String iconLeftCSS) { + this.iconLeftCSS = iconLeftCSS; + } + public int getAction(){ return selectionWrapper.getAction(); } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/CheckboxRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/CheckboxRenderer.java index c98059705204d377d201475d4450abf258691c2b..615b3529861ce44463e0ac0a3660dc28c0881ae8 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/CheckboxRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/CheckboxRenderer.java @@ -27,11 +27,10 @@ package org.olat.core.gui.components.form.flexible.impl.elements; import org.apache.commons.lang.StringEscapeUtils; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.ComponentRenderer; +import org.olat.core.gui.components.DefaultComponentRenderer; import org.olat.core.gui.components.form.flexible.impl.FormJSHelper; import org.olat.core.gui.render.RenderResult; import org.olat.core.gui.render.Renderer; -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; @@ -45,11 +44,12 @@ import org.olat.core.util.StringHelper; * Initial Date: 04.01.2007 <br> * @author patrickb */ -class CheckboxRenderer implements ComponentRenderer { +class CheckboxRenderer extends DefaultComponentRenderer { /** * @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer, org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component, org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator, org.olat.core.gui.render.RenderResult, java.lang.String[]) */ + @Override public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) { @@ -69,20 +69,12 @@ class CheckboxRenderer implements ComponentRenderer { boolean selected = cec.isSelected(); - //read write view String cssClass = cec.getCssClass(); //optional CSS class - sb.append("<div class='checkbox "); - if (cssClass != null) sb.append(cssClass); - sb.append("'>"); - sb.append("<input type=\"checkbox\" "); - sb.append("id=\""); - sb.append(cec.getFormDispatchId()); - sb.append("\" "); - sb.append(subStrName); - sb.append(" value=\""); - sb.append(key); - sb.append("\""); + sb.append("<div class='o_checkbox ").append(cssClass, cssClass != null).append("'>") + .append("<input type='checkbox' id='").append(cec.getFormDispatchId()).append("' ") + .append(subStrName) + .append(" value='").append(key).append("'"); if (selected) sb.append(" checked=\"checked\" "); if(!source.isEnabled()){ sb.append(" disabled=\"disabled\" "); @@ -91,10 +83,15 @@ class CheckboxRenderer implements ComponentRenderer { sb.append(FormJSHelper.getRawJSFor(cec.getRootForm(),cec.getSelectionElementFormDisId(), cec.getAction())); } sb.append(" />"); + String iconLeftCSS = cec.getIconLeftCSS(); + if (StringHelper.containsNonWhitespace(iconLeftCSS)) { + sb.append(" <i class='").append(iconLeftCSS).append("'> </i> "); + } + if (StringHelper.containsNonWhitespace(value)) { - sb.append("<label for=\"").append(cec.getFormDispatchId()).append("\">"); - sb.append(value); - sb.append("</label>"); + sb.append("<label for=\"").append(cec.getFormDispatchId()).append("\">") + .append(value) + .append("</label>"); } sb.append("</div>"); @@ -104,24 +101,5 @@ class CheckboxRenderer implements ComponentRenderer { sb.append(FormJSHelper.getSetFlexiFormDirtyForCheckbox(cec.getRootForm(), cec.getFormDispatchId())); sb.append(FormJSHelper.getJSEnd()); } - - } - - /** - * @see org.olat.core.gui.components.ComponentRenderer#renderBodyOnLoadJSFunctionCall(org.olat.core.gui.render.Renderer, org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component, org.olat.core.gui.render.RenderingState) - */ - public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) { - // TODO Auto-generated method stub - } - - /** - * @see org.olat.core.gui.components.ComponentRenderer#renderHeaderIncludes(org.olat.core.gui.render.Renderer, org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component, org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator, org.olat.core.gui.render.RenderingState) - */ - public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, - RenderingState rstate) { - // TODO Auto-generated method stub - - } - -} +} \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultiSelectionTree.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultiSelectionTree.java index 16ca129e9055fd24b7c305655c813e5b8d26710e..6f813a2d1d08d04a77a57114d000aee88db9142c 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultiSelectionTree.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultiSelectionTree.java @@ -91,7 +91,7 @@ public class MultiSelectionTree extends MultipleSelectionElementImpl implements if(selectableFilter.isSelectable(tn)){ // apply css class of tree node to checkbox label wrapper as well String cssClass = tn.getCssClass(); - CheckboxElementComponent ssec = new CheckboxElementComponent(getName()+"_"+keys[i], translator, this, i, cssClass); + CheckboxElementComponent ssec = new CheckboxElementComponent(getName()+"_"+keys[i], translator, this, i, null, cssClass); checkboxitems.put(keys[i], ssec); } else { StaticTextElement ste = new StaticTextElementImpl(keys[i], tn.getTitle()); @@ -143,8 +143,8 @@ public class MultiSelectionTree extends MultipleSelectionElementImpl implements } @Override - public void setKeysAndValues(String[] keys, String[] values, String[] cssClasses) { - super.setKeysAndValues(keys, values, cssClasses); + public void setKeysAndValues(String[] keys, String[] values, String[] cssClasses, String[] iconLeftCSS) { + super.setKeysAndValues(keys, values, cssClasses, iconLeftCSS); // set menu tree dirty to render new values this.component.setDirty(true); } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java index bfc67de72c4411031be7987f111e6ddcec00d474..07d24f8573edddbc362078c5516b7851faacfec7 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java @@ -63,6 +63,7 @@ public class MultipleSelectionElementImpl extends FormItemImpl implements Multip protected String[] keys; protected String[] values; private String[] cssClasses; + private String[] iconLeftCSS; private Set<String> selected; protected FormLayouter formLayoutContainer; @@ -103,10 +104,17 @@ public class MultipleSelectionElementImpl extends FormItemImpl implements Multip return selected; } - public void setKeysAndValues(String[] keys, String[] values, String[] cssClasses){ + @Override + public void setKeysAndValues(String[] keys, String[] values) { + setKeysAndValues(keys, values, null, null); + } + + @Override + public void setKeysAndValues(String[] keys, String[] values, String[] cssClasses, String[] iconLeftCSS) { this.keys = keys; this.values = values; this.cssClasses = cssClasses; + this.iconLeftCSS = iconLeftCSS; // // remove all elements // add new elements @@ -351,7 +359,8 @@ public class MultipleSelectionElementImpl extends FormItemImpl implements Multip // create and add radio elements String[] items = new String[keys.length]; for (int i = 0; i < keys.length; i++) { - CheckboxElementComponent ssec = new CheckboxElementComponent(getName()+"_"+keys[i], translator, this, i, (cssClasses == null ? null : cssClasses[i])); + CheckboxElementComponent ssec = new CheckboxElementComponent(getName()+"_"+keys[i], translator, this, i, + (cssClasses == null ? null : cssClasses[i]), (iconLeftCSS == null ? null : iconLeftCSS[i])); formLayoutContainer.put(getName()+"_"+keys[i], ssec); items[i] = getName()+"_"+keys[i]; ssec.setEnabled(isEnabled()); diff --git a/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java b/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java index b8550b488d0bb0c97048a8858529fa7a8df7f5bf..9071edc81ef482854bc57c558537849b7a6e1cb6 100644 --- a/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java +++ b/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java @@ -258,7 +258,7 @@ public class SelectionTreeRenderer extends DefaultComponentRenderer { } } if (cssClass != null) sb.append("</span>"); - + renderNodeDecorators(sb, child); // END of choice div sb.append("</div></div>"); @@ -282,25 +282,26 @@ public class SelectionTreeRenderer extends DefaultComponentRenderer { // item icon css class and icon decorator (for each icon quadrant a div, eclipse style) String iconCssClass = node.getIconCssClass(); if (iconCssClass != null) { - sb.append("<div class=\"").append(iconCssClass).append("\" title=\"").append(StringEscapeUtils.escapeHtml(node.getAltText())).append("\">"); - - String deco1 = node.getIconDecorator1CssClass(); - if (deco1 != null) - sb.append("<span class=\"").append(deco1).append("\"></span>"); - - String deco2 = node.getIconDecorator2CssClass(); - if (deco2 != null) - sb.append("<span class=\"").append(deco2).append("\"></span>"); - - String deco3 = node.getIconDecorator3CssClass(); - if (deco3 != null) - sb.append("<span class=\"").append(deco3).append("\"></span>"); - - String deco4 = node.getIconDecorator4CssClass(); - if (deco4 != null) - sb.append("<span class=\"").append(deco4).append("\"></span>"); - - sb.append("</div>"); + sb.append("<div title=\"").append(StringEscapeUtils.escapeHtml(node.getAltText())) + .append("\"><i class='o_icon ").append(iconCssClass).append("'> </i></div>"); + } + } + private void renderNodeDecorators(StringOutput sb, TreeNode node) { + String deco1 = node.getIconDecorator1CssClass(); + if (deco1 != null) { + sb.append("<span class='badge pull-right ").append(deco1).append("'></span>"); + } + String deco2 = node.getIconDecorator2CssClass(); + if (deco2 != null) { + sb.append("<span class='badge pull-right ").append(deco2).append("'></span>"); + } + String deco3 = node.getIconDecorator3CssClass(); + if (deco3 != null) { + sb.append("<span class='badge pull-right ").append(deco3).append("'></span>"); + } + String deco4 = node.getIconDecorator4CssClass(); + if (deco4 != null) { + sb.append("<span class='badge pull-right").append(deco4).append("'></span>"); } } diff --git a/src/main/java/org/olat/core/gui/control/generic/choice/ChoiceController.java b/src/main/java/org/olat/core/gui/control/generic/choice/ChoiceController.java index a7b4c627b4c4f0c59e5932eb76136c7da6ff6fe4..c568a529097db3b1f178a5094ac03bcdfb6f72de 100644 --- a/src/main/java/org/olat/core/gui/control/generic/choice/ChoiceController.java +++ b/src/main/java/org/olat/core/gui/control/generic/choice/ChoiceController.java @@ -126,9 +126,9 @@ public class ChoiceController extends FormBasicController { }else if(singleSelection && !layoutVertical){ entrySelector = uifactory.addRadiosHorizontal(selectionName, null, formLayout, keysIn, translatedKeys); }else if(!singleSelection && layoutVertical){ - entrySelector = uifactory.addCheckboxesVertical(selectionName, null, formLayout, keysIn, translatedKeys, null, 1); + entrySelector = uifactory.addCheckboxesVertical(selectionName, null, formLayout, keysIn, translatedKeys, 1); }else if(!singleSelection && !layoutVertical){ - entrySelector = uifactory.addCheckboxesHorizontal(selectionName, null, formLayout, keysIn, translatedKeys, null); + entrySelector = uifactory.addCheckboxesHorizontal(selectionName, null, formLayout, keysIn, translatedKeys); } // add Submit diff --git a/src/main/java/org/olat/core/gui/control/generic/folder/FolderTreeModel.java b/src/main/java/org/olat/core/gui/control/generic/folder/FolderTreeModel.java index 1aa963267117dfe224286e34e1ae804eeff4fb0b..9557d18fdd36959d445fcce795c394232c45c6d3 100644 --- a/src/main/java/org/olat/core/gui/control/generic/folder/FolderTreeModel.java +++ b/src/main/java/org/olat/core/gui/control/generic/folder/FolderTreeModel.java @@ -76,7 +76,7 @@ public class FolderTreeModel extends GenericTreeModel { this.fileFilter = fileFilter; GenericTreeNode newRoot = new GenericTreeNode(rootContainer.getName(), rootContainer.getName()); - newRoot.setIconCssClass("b_filetype_folder"); + newRoot.setIconCssClass("o_filetype_folder"); setRootNode(newRoot); if (allowRootFolderSelect) { // include root folder as selection GenericTreeNode effectiveRoot = new GenericTreeNode("/", "/"); @@ -116,7 +116,7 @@ public class FolderTreeModel extends GenericTreeModel { // container node String filePath = parentPath + childName + "/"; GenericTreeNode tChild = new GenericTreeNode(childName, filePath); // filePath is the information to be remembered later - tChild.setIconCssClass("b_filetype_folder"); + tChild.setIconCssClass("o_filetype_folder"); tChild.setAltText(child.getName()); tChild.setAccessible(selectableFolders ? (child.canWrite() == VFSConstants.YES) : false); tParent.addChild(tChild); @@ -134,7 +134,7 @@ public class FolderTreeModel extends GenericTreeModel { GenericTreeNode tChild = new GenericTreeNode(childName, filePath); String type = FolderHelper.extractFileType(childName, locale); if (!FolderHelper.isKnownFileType(type)) { type = "file"; } - tChild.setIconCssClass("b_filetype_" + type); + tChild.setIconCssClass("o_filetype_" + type); tChild.setAltText(childName); tChild.setAccessible(selectableFiles); tParent.addChild(tChild); diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java b/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java index 2df55c9e49e3b1490d22cab9ef1c97fbf52582c9..29f2e247ae86230baab0b5029f8a9e029f316c2c 100644 --- a/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java +++ b/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java @@ -176,7 +176,7 @@ public class DeliveryOptionsConfigurationController extends FormBasicController jsOptionEl = uifactory.addRadiosVertical("option.js", formLayout, jsKeys, jsValues); jsOptionEl.addActionListener(FormEvent.ONCHANGE); - glossarEl = uifactory.addCheckboxesHorizontal("option.glossary", formLayout, new String[]{"on"}, new String[]{""}, null); + glossarEl = uifactory.addCheckboxesHorizontal("option.glossary", formLayout, new String[]{"on"}, new String[]{""}); String[] values = new String[]{ translate("height.auto"), "460px", "480px", "500px", "520px", "540px", "560px", "580px", diff --git a/src/main/java/org/olat/core/util/i18n/I18nManager.java b/src/main/java/org/olat/core/util/i18n/I18nManager.java index d02d4ee9f35fe8e0420e473c6129a5278544a5c5..985a1fa2392983c6c6a5be7f65b1f64d2ef22829 100644 --- a/src/main/java/org/olat/core/util/i18n/I18nManager.java +++ b/src/main/java/org/olat/core/util/i18n/I18nManager.java @@ -1287,7 +1287,7 @@ public class I18nManager extends BasicManager { for (int i = 0; i < languageKeys.length; i++) { String cssClasses = (additionalCssClass == null ? "" : additionalCssClass); String langKey = languageKeys[i]; - cssClasses += " b_flag_" + langKey; + cssClasses += " o_flag_" + langKey; flagsCssClasses[i] = cssClasses; } return flagsCssClasses; diff --git a/src/main/java/org/olat/core/util/i18n/ui/I18nConfigController.java b/src/main/java/org/olat/core/util/i18n/ui/I18nConfigController.java index 362448626273d5b49086dffef05b13365d648f8a..d8d28398a0ba7203d7ad9a4c3663dc5344bfc92d 100644 --- a/src/main/java/org/olat/core/util/i18n/ui/I18nConfigController.java +++ b/src/main/java/org/olat/core/util/i18n/ui/I18nConfigController.java @@ -99,7 +99,7 @@ class I18nConfigController extends FormBasicController { defaultLangValues[i] = all; } ArrayHelper.sort(defaultlangKeys, defaultLangValues, false, true, false); - String[] defaultLangCssClasses = i18nMgr.createLanguageFlagsCssClasses(defaultlangKeys, "b_with_small_icon_left"); + String[] defaultLangCssClasses = i18nMgr.createLanguageFlagsCssClasses(defaultlangKeys, "o_flag"); defaultLangSelection = uifactory.addDropdownSingleselect("configuration.defaultLangSelection", formLayout, defaultlangKeys, defaultLangValues, defaultLangCssClasses); defaultLangSelection.addActionListener(FormEvent.ONCHANGE); @@ -127,9 +127,9 @@ class I18nConfigController extends FormBasicController { availableValues[i] = all; } ArrayHelper.sort(availablelangKeys, availableValues, false, true, false); - String[] availableLangCssClasses = i18nMgr.createLanguageFlagsCssClasses(availablelangKeys, "b_with_small_icon_left"); + String[] availableLangIconCss = i18nMgr.createLanguageFlagsCssClasses(availablelangKeys, "o_flag"); enabledLangSelection = uifactory.addCheckboxesVertical("configuration.enabledLangSelection", null, formLayout, availablelangKeys, - availableValues, availableLangCssClasses, 2); + availableValues, null, availableLangIconCss, 2); enabledLangSelection.setEscapeHtml(false); enabledLangSelection.addActionListener(FormEvent.ONCLICK); // Radios/Checkboxes need onclick because of IE bug OLAT-5753 // Enable current enabled languages diff --git a/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubDeleteLangController.java b/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubDeleteLangController.java index 8175609d2dd6a97c197d078512224976d142e979..3fbfa2a7b74f9649276d6c6ea549269602e5cfa6 100644 --- a/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubDeleteLangController.java +++ b/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubDeleteLangController.java @@ -106,7 +106,7 @@ class I18nConfigSubDeleteLangController extends FormBasicController { ArrayHelper.sort(deletableKeys, availableValues, false, true, false); String[] availableLangCssClasses = i18nMgr.createLanguageFlagsCssClasses(deletableKeys, "b_with_small_icon_left"); deleteLangSelection = uifactory.addCheckboxesVertical("configuration.deleteLangSelection", null, formLayout, deletableKeys, - availableValues, availableLangCssClasses, 2); + availableValues, availableLangCssClasses, null, 2); deleteLangSelection.addActionListener(FormEvent.ONCLICK); // Add cancel and submit in button group layout FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttonGroupLayout", getTranslator()); diff --git a/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubExportLangController.java b/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubExportLangController.java index 0098338d621f274306b20b7d1f9af3bde26a919c..a8a79545545d12fa7658b6651ebda2c3e23b6de1 100644 --- a/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubExportLangController.java +++ b/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubExportLangController.java @@ -101,9 +101,9 @@ class I18nConfigSubExportLangController extends FormBasicController { availableValues[i] = all; } ArrayHelper.sort(availableKeys, availableValues, false, true, false); - String[] availableLangCssClasses = i18nMgr.createLanguageFlagsCssClasses(availableKeys, "b_with_small_icon_left"); + String[] availableLangCssClasses = i18nMgr.createLanguageFlagsCssClasses(availableKeys, "o_flag"); exportLangSelection = uifactory.addCheckboxesVertical("configuration.exportLangSelection", null, formLayout, availableKeys, - availableValues, availableLangCssClasses, 2); + availableValues, availableLangCssClasses, null, 1); exportLangSelection.addActionListener(FormEvent.ONCLICK); // Add cancel and submit in button group layout FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttonGroupLayout", getTranslator()); diff --git a/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubImportLangController.java b/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubImportLangController.java index b9353a78ba2a42ff745403918e214c7704894f58..ff2bb6fb423370e723496f8d9bcd00906f786b6a 100644 --- a/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubImportLangController.java +++ b/src/main/java/org/olat/core/util/i18n/ui/I18nConfigSubImportLangController.java @@ -91,7 +91,7 @@ class I18nConfigSubImportLangController extends FormBasicController { // // Add checkboxes for the found languages - hide so far String[] langKeys = new String[]{}; - importKeys = uifactory.addCheckboxesVertical("configuration.management.package.import.select", this.flc, langKeys, langKeys, null, 1); + importKeys = uifactory.addCheckboxesVertical("configuration.management.package.import.select", flc, langKeys, langKeys, 1); importKeys.setVisible(false); // // Add cancel and submit in button group layout @@ -160,7 +160,7 @@ class I18nConfigSubImportLangController extends FormBasicController { // // enable language key selection String[] langKeys = ArrayHelper.toArray(importLangKeys); - importKeys.setKeysAndValues(langKeys, langKeys, null); + importKeys.setKeysAndValues(langKeys, langKeys); importKeys.selectAll(); importKeys.setVisible(true); // In language adaption mode the import is done as a package - can't deselect anything diff --git a/src/main/java/org/olat/core/util/i18n/ui/TranslationToolI18nItemEditCrumbController.java b/src/main/java/org/olat/core/util/i18n/ui/TranslationToolI18nItemEditCrumbController.java index 31e7fa7e0be946df963381a10725428971164d66..f956f1cc16209104b19244ebab1d927f0c97270e 100644 --- a/src/main/java/org/olat/core/util/i18n/ui/TranslationToolI18nItemEditCrumbController.java +++ b/src/main/java/org/olat/core/util/i18n/ui/TranslationToolI18nItemEditCrumbController.java @@ -193,7 +193,7 @@ public class TranslationToolI18nItemEditCrumbController extends CrumbFormBasicCo compareArea.setEnabled(false); // read only compareArea.setVisible(compareEnabledPrefs.booleanValue()); compareSwitch = formFactory.addCheckboxesHorizontal("compareSwitch", null, this.flc, new String[] { KEYS_ENABLED }, - new String[] { KEYS_EMPTY }, null);//i18nLabel set to null -> disabled label + new String[] { KEYS_EMPTY });//i18nLabel set to null -> disabled label compareSwitch.select(KEYS_ENABLED, compareEnabledPrefs.booleanValue()); compareSwitch.addActionListener(FormEvent.ONCLICK); formLayout.add(compareSwitch); diff --git a/src/main/java/org/olat/core/util/i18n/ui/TranslationToolStartCrumbController.java b/src/main/java/org/olat/core/util/i18n/ui/TranslationToolStartCrumbController.java index afc4f5ed9fb9a580c6407d4be7962bf522e1e27f..68802ad76bd9973a5a8bff6476ca203008482782 100644 --- a/src/main/java/org/olat/core/util/i18n/ui/TranslationToolStartCrumbController.java +++ b/src/main/java/org/olat/core/util/i18n/ui/TranslationToolStartCrumbController.java @@ -261,14 +261,14 @@ class TranslationToolStartCrumbController extends CrumbFormBasicController { missingBundlesSelection.select(ALL_BUNDLES_IDENTIFYER, true); // Add missing bundles children switch missingBundlesIncludeBundlesChildrenSwitch = formFactory.addCheckboxesHorizontal("missingBundlesIncludeBundlesChildrenSwitch", null, - this.flc, new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY }, null);//disabled label by setting i18nLabel to null + this.flc, new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY });//disabled label by setting i18nLabel to null missingBundlesIncludeBundlesChildrenSwitch.select(KEYS_ENABLED, true); missingBundlesIncludeBundlesChildrenSwitch.addActionListener(FormEvent.ONCLICK); formLayout.add(missingBundlesIncludeBundlesChildrenSwitch); missingBundlesIncludeBundlesChildrenSwitch.setEnabled(false); // Add priority sort switch missingBundlesPrioritySortSwitch = formFactory.addCheckboxesHorizontal("missingBundlesPrioritySortSwitch", null, this.flc, - new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY }, null);//disabled label by setting i18nLabel to null + new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY });//disabled label by setting i18nLabel to null missingBundlesPrioritySortSwitch.select(KEYS_ENABLED, true); missingBundlesPrioritySortSwitch.addActionListener(FormEvent.ONCLICK); formLayout.add(missingBundlesPrioritySortSwitch); @@ -287,14 +287,14 @@ class TranslationToolStartCrumbController extends CrumbFormBasicController { existingBundlesSelection.select(ALL_BUNDLES_IDENTIFYER, true); // Add existing bundles children switch existingBundlesIncludeBundlesChildrenSwitch = formFactory.addCheckboxesHorizontal("existingBundlesIncludeBundlesChildrenSwitch", null, - this.flc, new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY }, null);//disabled label by setting i18nLabel to null + this.flc, new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY });//disabled label by setting i18nLabel to null existingBundlesIncludeBundlesChildrenSwitch.select(KEYS_ENABLED, true); existingBundlesIncludeBundlesChildrenSwitch.addActionListener(FormEvent.ONCLICK); formLayout.add(existingBundlesIncludeBundlesChildrenSwitch); existingBundlesIncludeBundlesChildrenSwitch.setEnabled(false); // Add priority sort switch existingBundlesPrioritySortSwitch = formFactory.addCheckboxesHorizontal("existingBundlesPrioritySortSwitch", null, this.flc, - new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY }, null);//disabled label by setting i18nLabel to null + new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY });//disabled label by setting i18nLabel to null existingBundlesPrioritySortSwitch.select(KEYS_ENABLED, true); existingBundlesPrioritySortSwitch.addActionListener(FormEvent.ONCLICK); formLayout.add(existingBundlesPrioritySortSwitch); @@ -313,14 +313,14 @@ class TranslationToolStartCrumbController extends CrumbFormBasicController { allBundlesSelection.select(ALL_BUNDLES_IDENTIFYER, true); // Add all bundles children switch allBundlesIncludeBundlesChildrenSwitch = formFactory.addCheckboxesHorizontal("allBundlesIncludeBundlesChildrenSwitch", null, this.flc, - new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY }, null);//disabled label by setting i18nLabel to null + new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY });//disabled label by setting i18nLabel to null allBundlesIncludeBundlesChildrenSwitch.select(KEYS_ENABLED, true); allBundlesIncludeBundlesChildrenSwitch.addActionListener(FormEvent.ONCLICK); formLayout.add(allBundlesIncludeBundlesChildrenSwitch); allBundlesIncludeBundlesChildrenSwitch.setEnabled(false); // Add priority sort switch allBundlesPrioritySortSwitch = formFactory.addCheckboxesHorizontal("allBundlesPrioritySortSwitch", null, this.flc, - new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY }, null);//disabled label by setting i18nLabel to null + new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY });//disabled label by setting i18nLabel to null allBundlesPrioritySortSwitch.select(KEYS_ENABLED, true); allBundlesPrioritySortSwitch.addActionListener(FormEvent.ONCLICK); formLayout.add(allBundlesPrioritySortSwitch); @@ -363,13 +363,13 @@ class TranslationToolStartCrumbController extends CrumbFormBasicController { searchBundlesSelection.select(ALL_BUNDLES_IDENTIFYER, true); // Add search bundles children switch searchBundlesIncludeBundlesChildrenSwitch = formFactory.addCheckboxesHorizontal("searchBundlesIncludeBundlesChildrenSwitch", - "generic.limit.bundles.includeChildren", searchLayoutContainer, new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY }, null); + "generic.limit.bundles.includeChildren", searchLayoutContainer, new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY }); searchBundlesIncludeBundlesChildrenSwitch.select(KEYS_ENABLED, true); searchBundlesIncludeBundlesChildrenSwitch.addActionListener(FormEvent.ONCLICK); searchBundlesIncludeBundlesChildrenSwitch.setEnabled(false); // Add priority sort switch searchBundlesPrioritySortSwitch = formFactory.addCheckboxesHorizontal("searchBundlesPrioritySortSwitch", "generic.sort.by.priority", - searchLayoutContainer, new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY }, null); + searchLayoutContainer, new String[] { KEYS_ENABLED }, new String[] { KEYS_EMPTY }); searchBundlesPrioritySortSwitch.select(KEYS_ENABLED, true); searchBundlesPrioritySortSwitch.addActionListener(FormEvent.ONCLICK); formLayout.add(searchBundlesPrioritySortSwitch); diff --git a/src/main/java/org/olat/core/util/mail/MailTemplateForm.java b/src/main/java/org/olat/core/util/mail/MailTemplateForm.java index 9f559a4e51b89c4f9e93f2479479dea6b06c5d8d..ed3c5313d2c226224a7af9d3c2756b0a04967f22 100644 --- a/src/main/java/org/olat/core/util/mail/MailTemplateForm.java +++ b/src/main/java/org/olat/core/util/mail/MailTemplateForm.java @@ -137,7 +137,7 @@ public class MailTemplateForm extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { if(!mandatoryEmail) { - sendMail = uifactory.addCheckboxesVertical("sendmail", "", formLayout, new String[]{"xx"}, new String[]{translate("mailtemplateform.sendMailSwitchElem")}, null, 1); + sendMail = uifactory.addCheckboxesVertical("sendmail", "", formLayout, new String[]{"xx"}, new String[]{translate("mailtemplateform.sendMailSwitchElem")}, 1); sendMail.addActionListener(FormEvent.ONCLICK); } @@ -148,7 +148,7 @@ public class MailTemplateForm extends FormBasicController { bodyElem = uifactory.addTextAreaElement("bodyElem", "mailtemplateform.body", -1, 15, 60, true, template.getBodyTemplate(), formLayout); bodyElem.setMandatory(true); - ccSender = uifactory.addCheckboxesVertical("tcpfrom", "", formLayout, new String[]{"xx"}, new String[]{translate(NLS_CONTACT_SEND_CP_FROM)}, null, 1); + ccSender = uifactory.addCheckboxesVertical("tcpfrom", "", formLayout, new String[]{"xx"}, new String[]{translate(NLS_CONTACT_SEND_CP_FROM)}, 1); ccSender.setVisible(cc); FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttonGroupLayout", getTranslator()); diff --git a/src/main/java/org/olat/core/util/mail/ui/MailSettingsAdminController.java b/src/main/java/org/olat/core/util/mail/ui/MailSettingsAdminController.java index 843bdcd348fa2d8f5feefadcc19c5250661e81b8..42cd4c5e1e6b49a2d9fdc9303ca7be4228443057 100644 --- a/src/main/java/org/olat/core/util/mail/ui/MailSettingsAdminController.java +++ b/src/main/java/org/olat/core/util/mail/ui/MailSettingsAdminController.java @@ -68,7 +68,7 @@ public class MailSettingsAdminController extends FormBasicController { setFormContextHelp(MailUIFactory.class.getPackage().getName(), "mail-admin.html", "chelp.mail-admin.title"); boolean internEnabled = isEnabled(); - enabled = uifactory.addCheckboxesHorizontal("mail.admin.intern.enabled", formLayout, keys, values, null); + enabled = uifactory.addCheckboxesHorizontal("mail.admin.intern.enabled", formLayout, keys, values); enabled.select(keys[0], internEnabled); enabled.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/org/olat/course/archiver/LogFileChooserForm.java b/src/main/java/org/olat/course/archiver/LogFileChooserForm.java index feeaefb29a6a5470d08c1b0f11670dda4033b03e..0ebe4a102b62df3fb4026114510bfcdd24aee67b 100644 --- a/src/main/java/org/olat/course/archiver/LogFileChooserForm.java +++ b/src/main/java/org/olat/course/archiver/LogFileChooserForm.java @@ -155,9 +155,9 @@ public class LogFileChooserForm extends FormBasicController { setFormDescription("course.logs.intro"); setFormContextHelp("org.olat.course.archiver", "arch-logf.html", "help.hover.log"); - aE = uifactory.addCheckboxesVertical("a", "logfilechooserform.logadmin", formLayout, new String[]{"xx"}, new String[]{""}, null, 1); - uE = uifactory.addCheckboxesVertical("u", "logfilechooserform.loguser", formLayout, new String[]{"xx"}, new String[]{""}, null, 1); - sE = uifactory.addCheckboxesVertical("s", "logfilechooserform.logstat", formLayout, new String[]{"xx"}, new String[]{""}, null, 1); + aE = uifactory.addCheckboxesVertical("a", "logfilechooserform.logadmin", formLayout, new String[]{"xx"}, new String[]{""}, 1); + uE = uifactory.addCheckboxesVertical("u", "logfilechooserform.loguser", formLayout, new String[]{"xx"}, new String[]{""}, 1); + sE = uifactory.addCheckboxesVertical("s", "logfilechooserform.logstat", formLayout, new String[]{"xx"}, new String[]{""}, 1); aE.setVisible(admin || a); uE.setVisible(admin || u); diff --git a/src/main/java/org/olat/course/condition/AreaSelectionController.java b/src/main/java/org/olat/course/condition/AreaSelectionController.java index 8c52828e3c22035ec2909bc65b3fe03b970c6a8b..1eb4f8ec00584dd2fc3f06d8315afb90088e6f70 100644 --- a/src/main/java/org/olat/course/condition/AreaSelectionController.java +++ b/src/main/java/org/olat/course/condition/AreaSelectionController.java @@ -113,7 +113,7 @@ public class AreaSelectionController extends FormBasicController { if (event == Event.DONE_EVENT) { loadNamesAndKeys(); // select new value - entrySelector.setKeysAndValues(areaKeys, areaNames, null); + entrySelector.setKeysAndValues(areaKeys, areaNames); entrySelector.select(areaCreateCntrllr.getCreatedArea().getKey().toString(), true); //inform condition config easy about new groups -> which informs further @@ -140,7 +140,7 @@ public class AreaSelectionController extends FormBasicController { } - entrySelector = uifactory.addCheckboxesVertical("entries", null, boundTo, areaKeys, areaNames, null, 1); + entrySelector = uifactory.addCheckboxesVertical("entries", null, boundTo, areaKeys, areaNames, 1); // submitCancel after checkboxes // Submit subm = new FormSubmit("subm", "apply"); diff --git a/src/main/java/org/olat/course/condition/ConditionConfigEasyController.java b/src/main/java/org/olat/course/condition/ConditionConfigEasyController.java index 6da011832c96911f6ddc42b132b9e3af8290e01d..ea489f9b5f667e53212370ff4fd58df49797b551 100644 --- a/src/main/java/org/olat/course/condition/ConditionConfigEasyController.java +++ b/src/main/java/org/olat/course/condition/ConditionConfigEasyController.java @@ -738,7 +738,7 @@ public class ConditionConfigEasyController extends FormBasicController implement /* * yes / no chooser defines if learner do not see the building block at all */ - attributeSwitch = uifactory.addCheckboxesVertical("attributeSwitch", "form.easy.attributeSwitch", formLayout, new String[] { "ison" }, new String[] { "" }, null, 1); + attributeSwitch = uifactory.addCheckboxesVertical("attributeSwitch", "form.easy.attributeSwitch", formLayout, new String[] { "ison" }, new String[] { "" }, 1); attributeSwitch.select("ison", validatedCondition.getAttributeConditions()!=null); // register for on click event to hide/disable other elements attributeSwitch.addActionListener(FormEvent.ONCLICK); @@ -1078,7 +1078,7 @@ public class ConditionConfigEasyController extends FormBasicController implement /* * yes / no chooser defines if learner do not see the building block at all */ - coachExclusive = uifactory.addCheckboxesHorizontal("coachExclusive", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.coachExclusive") }, null); + coachExclusive = uifactory.addCheckboxesHorizontal("coachExclusive", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.coachExclusive") }); boolean coachesAndAdminsInitValue = validatedCondition.isEasyModeCoachesAndAdmins(); coachExclusive.select("ison", coachesAndAdminsInitValue); @@ -1096,7 +1096,7 @@ public class ConditionConfigEasyController extends FormBasicController implement /* * yes / no chooser defines if learner do not see the building block at all */ - applyRulesForCoach = uifactory.addCheckboxesHorizontal("applyRulesForCoach", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.applyRulesForCoach") }, null); + applyRulesForCoach = uifactory.addCheckboxesHorizontal("applyRulesForCoach", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.applyRulesForCoach") }); if(isDateGroupAssessmentOAttributeSwitchOn()) { applyRulesForCoach.setVisible(true); } else { @@ -1141,7 +1141,7 @@ public class ConditionConfigEasyController extends FormBasicController implement toDate.setDisplaySize(toDate.getExampleDateString().length()); dateSubContainer.add(toDate); - dateSwitch = uifactory.addCheckboxesHorizontal("dateSwitch", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.dateSwitch") }, null); + dateSwitch = uifactory.addCheckboxesHorizontal("dateSwitch", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.dateSwitch") }); if (fromDate.getDate() != null || toDate.getDate() != null) { dateSwitch.select("ison", true); } else { @@ -1164,7 +1164,7 @@ public class ConditionConfigEasyController extends FormBasicController implement List<Long> areaKeyList = validatedCondition.getEasyModeGroupAreaAccessIdList(); String areaInitVal = getAreaNames(areaKeyList); - groupSwitch = uifactory.addCheckboxesHorizontal("groupSwitch", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.groupSwitch") }, null); + groupSwitch = uifactory.addCheckboxesHorizontal("groupSwitch", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.groupSwitch") }); // initialize selection if (!groupKeyList.isEmpty() || !areaKeyList.isEmpty()) { groupSwitch.select("ison", true); @@ -1213,7 +1213,7 @@ public class ConditionConfigEasyController extends FormBasicController implement String cutInitStrValue = validatedCondition.getEasyModeCutValue(); int cutInitValue = 0; - assessmentSwitch = uifactory.addCheckboxesHorizontal("assessmentSwitch", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.assessmentSwitch") }, null); + assessmentSwitch = uifactory.addCheckboxesHorizontal("assessmentSwitch", null, formLayout, new String[] { "ison" }, new String[] { translate("form.easy.assessmentSwitch") }); assessmentSwitch.addActionListener(FormEvent.ONCLICK); diff --git a/src/main/java/org/olat/course/condition/GroupSelectionController.java b/src/main/java/org/olat/course/condition/GroupSelectionController.java index 70ade8464da93d5c97d649cb022065073a51609c..0d04459f7f86e759d2c8c31a58baf20f10b8310b 100644 --- a/src/main/java/org/olat/course/condition/GroupSelectionController.java +++ b/src/main/java/org/olat/course/condition/GroupSelectionController.java @@ -122,7 +122,7 @@ public class GroupSelectionController extends FormBasicController { if (event == Event.DONE_EVENT) { loadNamesAndKeys(); // select new value - entrySelector.setKeysAndValues(groupKeys, groupNames, null); + entrySelector.setKeysAndValues(groupKeys, groupNames); entrySelector.select(groupCreateCntrllr.getCreatedGroup().getKey().toString(), true); //inform condition config easy about new groups -> which informs further @@ -151,7 +151,7 @@ public class GroupSelectionController extends FormBasicController { formLayout.add(createNew); } - entrySelector = uifactory.addCheckboxesVertical("entries", null, formLayout, groupKeys, groupNames, null, 1); + entrySelector = uifactory.addCheckboxesVertical("entries", null, formLayout, groupKeys, groupNames, 1); // submitCancel after checkboxes Submit subm = new FormSubmit("subm", "apply"); Reset reset = new FormReset("reset", "cancel"); diff --git a/src/main/java/org/olat/course/condition/additionalconditions/PasswordConditionEditController.java b/src/main/java/org/olat/course/condition/additionalconditions/PasswordConditionEditController.java index 3046adae1ff0ba6712f62efbd9cbd4ddf35e657c..6a1dd20ab406314822f0515fcad5f578156b8293 100644 --- a/src/main/java/org/olat/course/condition/additionalconditions/PasswordConditionEditController.java +++ b/src/main/java/org/olat/course/condition/additionalconditions/PasswordConditionEditController.java @@ -56,7 +56,7 @@ public class PasswordConditionEditController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - passwordSwitch = uifactory.addCheckboxesHorizontal("passwordSwitch", "", formLayout, new String[]{"ison"}, new String[]{translate("password.field")}, new String[]{""}); + passwordSwitch = uifactory.addCheckboxesHorizontal("passwordSwitch", "", formLayout, new String[]{"ison"}, new String[]{translate("password.field")}); passwordSwitch.addActionListener(FormEvent.ONCHANGE); passwordField = uifactory.addTextElement("passwordField", "password.field", 30, "", formLayout); diff --git a/src/main/java/org/olat/course/config/ui/CourseCalendarConfigForm.java b/src/main/java/org/olat/course/config/ui/CourseCalendarConfigForm.java index 950622872c80d18e11705a7c55aa416f516a554a..31c6de80f3dd8cbf701a86d2a7a8ea53d3662673 100644 --- a/src/main/java/org/olat/course/config/ui/CourseCalendarConfigForm.java +++ b/src/main/java/org/olat/course/config/ui/CourseCalendarConfigForm.java @@ -71,7 +71,7 @@ public class CourseCalendarConfigForm extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormContextHelp("org.olat.course.config.ui","course-calendar.html","help.hover.coursecal"); - isOn = uifactory.addCheckboxesVertical("isOn", "chkbx.calendar.onoff", formLayout, new String[] {"xx"}, new String[] {""}, null, 1); + isOn = uifactory.addCheckboxesVertical("isOn", "chkbx.calendar.onoff", formLayout, new String[] {"xx"}, new String[] {""}, 1); isOn.select("xx", calendarEnabled); isOn.setEnabled(editable); diff --git a/src/main/java/org/olat/course/config/ui/CourseChatSettingsForm.java b/src/main/java/org/olat/course/config/ui/CourseChatSettingsForm.java index 6380f213cccee7ba4b7968f17634e71abcaf0b9c..6450726772dc879c370427d7c4a2ae91d19acc3d 100644 --- a/src/main/java/org/olat/course/config/ui/CourseChatSettingsForm.java +++ b/src/main/java/org/olat/course/config/ui/CourseChatSettingsForm.java @@ -68,7 +68,7 @@ public class CourseChatSettingsForm extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormContextHelp("org.olat.course.config.ui","course-chat.html","help.hover.course-chat"); - isOn = uifactory.addCheckboxesVertical("isOn", "chkbx.chat.onoff", formLayout, new String[] {"xx"}, new String[] {""}, null, 1); + isOn = uifactory.addCheckboxesVertical("isOn", "chkbx.chat.onoff", formLayout, new String[] {"xx"}, new String[] {""}, 1); isOn.select("xx", chatEnabled); isOn.setEnabled(editable); diff --git a/src/main/java/org/olat/course/config/ui/CourseEfficencyStatementForm.java b/src/main/java/org/olat/course/config/ui/CourseEfficencyStatementForm.java index 26e6f131a5346148c8a0bdc0e054b5725353d57f..a11fe769995ac471e31cea50f894856814ffd6d1 100644 --- a/src/main/java/org/olat/course/config/ui/CourseEfficencyStatementForm.java +++ b/src/main/java/org/olat/course/config/ui/CourseEfficencyStatementForm.java @@ -85,7 +85,7 @@ public class CourseEfficencyStatementForm extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormContextHelp("org.olat.course.config.ui","course-efficiency.html","help.hover.course-eff"); - isOn = uifactory.addCheckboxesVertical("isOn", "chkbx.efficency.onoff", formLayout, new String[] {"xx"}, new String[] {""}, null, 1); + isOn = uifactory.addCheckboxesVertical("isOn", "chkbx.efficency.onoff", formLayout, new String[] {"xx"}, new String[] {""}, 1); isOn.select("xx", enabled); isOn.setEnabled(editable); diff --git a/src/main/java/org/olat/course/editor/ChooseNodeController.java b/src/main/java/org/olat/course/editor/ChooseNodeController.java new file mode 100644 index 0000000000000000000000000000000000000000..eb78e755eb8f3aa1e428106c85d64c769221ff91 --- /dev/null +++ b/src/main/java/org/olat/course/editor/ChooseNodeController.java @@ -0,0 +1,170 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.editor; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.link.Link; +import org.olat.core.gui.components.link.LinkFactory; +import org.olat.core.gui.components.velocity.VelocityContainer; +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.OLATResourceable; +import org.olat.course.CourseFactory; +import org.olat.course.ICourse; +import org.olat.course.nodes.CourseNode; +import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeFactory; +import org.olat.course.tree.CourseEditorTreeModel; +import org.olat.course.tree.CourseEditorTreeNode; + +/** + * + * Initial date: 26.05.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class ChooseNodeController extends BasicController { + + private CourseNode createdNode; + private final OLATResourceable courseOres; + private final CourseEditorTreeNode currentNode; + + private Link multiSpsLink, multiCheckListLink; + + public ChooseNodeController(UserRequest ureq, WindowControl wControl, + OLATResourceable courseOres, CourseEditorTreeNode currentNode) { + super(ureq, wControl); + + this.currentNode = currentNode; + this.courseOres = courseOres; + + multiSpsLink = LinkFactory.createToolLink(EditorMainController.CMD_MULTI_SP, + translate("command.multi.sps"), this, "o_icon_wizard"); + multiCheckListLink = LinkFactory.createToolLink(EditorMainController.CMD_MULTI_CHECKLIST, + translate("command.multi.checklist"), this, "o_icon_wizard"); + + VelocityContainer mainVC = createVelocityContainer("create_node"); + + Map<String, CourseNodeTypesGroup> linkNames = new HashMap<>(); + CourseNodeFactory cnf = CourseNodeFactory.getInstance(); + for (String courseNodeAlias : cnf.getRegisteredCourseNodeAliases()) { + CourseNodeConfiguration cnConfig = cnf.getCourseNodeConfiguration(courseNodeAlias); + try { + String group = cnConfig.getGroup(); + CourseNodeTypesGroup typesGroup = linkNames.get(group); + if(typesGroup == null) { + typesGroup = new CourseNodeTypesGroup(group); + linkNames.put(group, typesGroup); + } + Link l = LinkFactory.createToolLink(courseNodeAlias, cnConfig.getLinkText(getLocale()), this, cnConfig.getIconCSSClass()); + typesGroup.getNodeTypes().add(l.getComponentName()); + mainVC.put(l.getComponentName(), l); + + if("sp".equals(courseNodeAlias)) { + typesGroup.getNodeTypes().add(multiSpsLink.getComponentName()); + mainVC.put(multiSpsLink.getComponentName(), multiSpsLink); + } else if("cl".equals(courseNodeAlias)) { + typesGroup.getNodeTypes().add(multiCheckListLink.getComponentName()); + mainVC.put(multiCheckListLink.getComponentName(), multiCheckListLink); + } + } catch (Exception e) { + logError("Error while trying to add a course buildingblock of type \""+courseNodeAlias +"\" to the editor", e); + } + } + + mainVC.contextPut("linkNames", linkNames); + putInitialPanel(mainVC); + } + + public CourseNode getCreatedNode() { + return createdNode; + } + + @Override + protected void doDispose() { + // + } + + @Override + protected void event(UserRequest ureq, Component source, Event event) { + if(multiSpsLink == source) { + fireEvent(ureq, event); + } else if(multiCheckListLink == source) { + fireEvent(ureq, event); + } else if(source instanceof Link) { + doCreateNode(event.getCommand()); + String cmd = EditorMainController.TB_ACTION + event.getCommand(); + fireEvent(ureq, new Event(cmd)); + } + } + + private void doCreateNode(String type) { + ICourse course = CourseFactory.getCourseEditSession(courseOres.getResourceableId()); + // user chose a position to insert a new node + CourseNodeConfiguration newNodeConfig = CourseNodeFactory.getInstance().getCourseNodeConfiguration(type); + createdNode = newNodeConfig.getInstance(); + + // Set some default values + String title = new String(newNodeConfig.getLinkText(getLocale())); + createdNode.setShortTitle(title); + String longTitle = new String(translate("longtitle.default") + " " + title); + createdNode.setLongTitle(longTitle); + createdNode.setNoAccessExplanation(translate("form.noAccessExplanation.default")); + + // Insert it now + CourseEditorTreeModel editorTreeModel = course.getEditorTreeModel(); + if(editorTreeModel.getRootNode().equals(currentNode)) { + //root, add as last child + int pos = currentNode.getChildCount(); + CourseNode selectedNode = currentNode.getCourseNode(); + editorTreeModel.insertCourseNodeAt(createdNode, selectedNode, pos); + } else { + CourseEditorTreeNode parentNode = (CourseEditorTreeNode)currentNode.getParent(); + CourseNode selectedNode = parentNode.getCourseNode(); + int pos = currentNode.getPosition(); + editorTreeModel.insertCourseNodeAt(createdNode, selectedNode, pos + 1); + } + CourseFactory.saveCourseEditorTreeModel(course.getResourceableId()); + } + + public static class CourseNodeTypesGroup { + private final String name; + private final List<String> nodeTypes = new ArrayList<>(); + + public CourseNodeTypesGroup(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public List<String> getNodeTypes() { + return nodeTypes; + } + } +} diff --git a/src/main/java/org/olat/course/editor/EditorMainController.java b/src/main/java/org/olat/course/editor/EditorMainController.java index d9ded69f0d6587b9017ba31fcfa4b1c04bfce24c..3973603ffe44ed877ea6434cb0365e247e62879d 100644 --- a/src/main/java/org/olat/course/editor/EditorMainController.java +++ b/src/main/java/org/olat/course/editor/EditorMainController.java @@ -122,7 +122,7 @@ import org.olat.util.logging.activity.LoggingResourceable; public class EditorMainController extends MainLayoutBasicController implements GenericEventListener { private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(EditorMainController.class); - private static final String TB_ACTION = "o_tb_do_"; + protected static final String TB_ACTION = "o_tb_do_"; private static final String CMD_COPYNODE = "copyn"; private static final String CMD_MOVENODE = "moven"; @@ -130,8 +130,8 @@ public class EditorMainController extends MainLayoutBasicController implements G private static final String CMD_CLOSEEDITOR = "cmd.close"; private static final String CMD_PUBLISH = "pbl"; private static final String CMD_COURSEPREVIEW = "cprev"; - private static final String CMD_MULTI_SP = "cmp.multi.sp"; - private static final String CMD_MULTI_CHECKLIST = "cmp.multi.checklist"; + protected static final String CMD_MULTI_SP = "cmp.multi.sp"; + protected static final String CMD_MULTI_CHECKLIST = "cmp.multi.checklist"; // NLS support @@ -153,9 +153,6 @@ public class EditorMainController extends MainLayoutBasicController implements G private static final String NLS_DELETENODE_ERROR_ROOTNODE = "deletenode.error.rootnode"; private static final String NLS_MOVECOPYNODE_ERROR_SELECTFIRST = "movecopynode.error.selectfirst"; private static final String NLS_MOVECOPYNODE_ERROR_ROOTNODE = "movecopynode.error.rootnode"; - private static final String NLS_ADMIN_HEADER = "command.admin.header"; - private static final String NLS_MULTI_SPS = "command.multi.sps"; - private static final String NLS_MULTI_CHECKLIST = "command.multi.checklist"; private MenuTree menuTree; private VelocityContainer main; @@ -163,7 +160,7 @@ public class EditorMainController extends MainLayoutBasicController implements G private TabbedPane tabbedNodeConfig; private SelectionTree selTree; - CourseEditorTreeModel cetm; + private CourseEditorTreeModel cetm; private TabbableController nodeEditCntrllr; private StepsMainRunController publishStepsController; private StepsMainRunController checklistWizard; @@ -174,6 +171,7 @@ public class EditorMainController extends MainLayoutBasicController implements G private LayoutMain3ColsController columnLayoutCtr; private AlternativeCourseNodeController alternateCtr; private EditorStatusController statusCtr; + private ChooseNodeController chooseNodeTypeCtr; private LockResult lockEntry; @@ -182,8 +180,7 @@ public class EditorMainController extends MainLayoutBasicController implements G private Link undelButton, alternativeLink, statusLink; private Link previewLink, publishLink, closeLink; - private Link deleteNodeLink, moveNodeLink, copyNodeLink; - private Link multiSpsLink, multiCheckListLink; + private Link createNodeLink, deleteNodeLink, moveNodeLink, copyNodeLink; private CloseableModalController cmc; private CloseableCalloutWindowController calloutCtrl; @@ -350,30 +347,10 @@ public class EditorMainController extends MainLayoutBasicController implements G editTools.addComponent(closeLink); } - //toolC.addHeader(translate(NLS_HEADER_INSERTNODES)); - - Dropdown elementsTools = new Dropdown("insertNodes", NLS_HEADER_INSERTNODES, false, getTranslator()); - stackPanel.addTool(elementsTools); - - CourseNodeFactory cnf = CourseNodeFactory.getInstance(); - for (String courseNodeAlias : cnf.getRegisteredCourseNodeAliases()) { - CourseNodeConfiguration cnConfig = cnf.getCourseNodeConfiguration(courseNodeAlias); - try { - Link l = LinkFactory.createToolLink(TB_ACTION + courseNodeAlias, cnConfig.getLinkText(getLocale()), this, cnConfig.getIconCSSClass()); - elementsTools.addComponent(l); - } catch (Exception e) { - log.error("Error while trying to add a course buildingblock of type \""+courseNodeAlias +"\" to the editor", e); - } - } - - Dropdown multiTools = new Dropdown("insertNodes", NLS_ADMIN_HEADER, false, getTranslator()); - stackPanel.addTool(multiTools); - - multiSpsLink = LinkFactory.createToolLink(CMD_MULTI_SP, translate(NLS_MULTI_SPS), this, "o_icon_wizard"); - multiTools.addComponent(multiSpsLink); - multiCheckListLink = LinkFactory.createToolLink(CMD_MULTI_CHECKLIST, translate(NLS_MULTI_CHECKLIST), this, "o_icon_wizard"); - multiTools.addComponent(multiCheckListLink); - + createNodeLink = LinkFactory.createToolLink(NLS_HEADER_INSERTNODES, translate(NLS_HEADER_INSERTNODES), this); + createNodeLink.setDomReplacementWrapperRequired(false); + stackPanel.addTool(createNodeLink); + Dropdown nodeTools = new Dropdown("insertNodes", NLS_COMMAND_DELETENODE_HEADER, false, getTranslator()); stackPanel.addTool(nodeTools); @@ -425,6 +402,8 @@ public class EditorMainController extends MainLayoutBasicController implements G } else if(closeLink == source) { doReleaseEditLock(); fireEvent(ureq, Event.DONE_EVENT); + } else if(createNodeLink == source) { + doOpenNodeTypeChooser(ureq); } else if(deleteNodeLink == source) { doDeleteNode(ureq); } else if(moveNodeLink == source) { @@ -433,13 +412,6 @@ public class EditorMainController extends MainLayoutBasicController implements G doMove(ureq, course, true); } else if(statusLink == source) { doOpenStatusOverview(ureq); - } else if(multiSpsLink == source) { - launchSinglePagesWizard(ureq, course); - } else if(multiCheckListLink == source) { - launchChecklistsWizard(ureq); - } else if(source instanceof Link && event.getCommand().startsWith(TB_ACTION)) { - String cnAlias = event.getCommand().substring(TB_ACTION.length()); - doCreate(ureq, course, cnAlias); } } catch (RuntimeException e) { log.warn(RELEASE_LOCK_AT_CATCH_EXCEPTION+" [in event(UserRequest,Component,Event)]", e); @@ -625,6 +597,21 @@ public class EditorMainController extends MainLayoutBasicController implements G } calloutCtrl.deactivate(); cleanUp(); + } else if (source == chooseNodeTypeCtr) { + cmc.deactivate(); + + String cmd = event.getCommand(); + if(cmd.startsWith(TB_ACTION)) { + CourseNode newNode = chooseNodeTypeCtr.getCreatedNode(); + cleanUp(); + doInsert(ureq, newNode); + } else if(CMD_MULTI_SP.equals(cmd)) { + cleanUp(); + launchSinglePagesWizard(ureq, course); + } else if(CMD_MULTI_CHECKLIST.equals(cmd)) { + cleanUp(); + launchChecklistsWizard(ureq); + } } else if (source == publishStepsController) { getWindowControl().pop(); removeAsListenerAndDispose(publishStepsController); @@ -662,17 +649,7 @@ public class EditorMainController extends MainLayoutBasicController implements G } } } else if (source == cmc) { - //aggressive clean-up - removeAsListenerAndDispose(multiSPChooserCtr); - removeAsListenerAndDispose(moveCopyController); - removeAsListenerAndDispose(insertNodeController); - removeAsListenerAndDispose(alternateCtr); - removeAsListenerAndDispose(cmc); - moveCopyController = null; - insertNodeController = null; - multiSPChooserCtr = null; - alternateCtr = null; - cmc = null; + cleanUp(); } else if (source == moveCopyController) { cmc.deactivate(); if (event == Event.DONE_EVENT) { @@ -757,11 +734,26 @@ public class EditorMainController extends MainLayoutBasicController implements G } } + /** + * Aggressive clean-up of popup controllers + */ private void cleanUp() { + removeAsListenerAndDispose(insertNodeController); + removeAsListenerAndDispose(moveCopyController); + removeAsListenerAndDispose(multiSPChooserCtr); + removeAsListenerAndDispose(chooseNodeTypeCtr); + removeAsListenerAndDispose(alternateCtr); removeAsListenerAndDispose(calloutCtrl); removeAsListenerAndDispose(statusCtr); + removeAsListenerAndDispose(cmc); + insertNodeController = null; + moveCopyController = null; + chooseNodeTypeCtr = null; + multiSPChooserCtr = null; + alternateCtr = null; calloutCtrl = null; statusCtr = null; + cmc = null; } private void doMove(UserRequest ureq, ICourse course, boolean copy) { @@ -878,6 +870,23 @@ public class EditorMainController extends MainLayoutBasicController implements G cmc.activate(); } + private void doOpenNodeTypeChooser(UserRequest ureq) { + removeAsListenerAndDispose(cmc); + removeAsListenerAndDispose(chooseNodeTypeCtr); + + menuTree.getSelectedNode(); + + TreeNode tn = menuTree.getSelectedNode(); + CourseEditorTreeNode cetn = tn == null ? null : cetm.getCourseEditorNodeById(tn.getIdent()); + chooseNodeTypeCtr = new ChooseNodeController(ureq, getWindowControl(), ores, cetn); + listenTo(chooseNodeTypeCtr); + + cmc = new CloseableModalController(getWindowControl(), translate("close"), chooseNodeTypeCtr.getInitialComponent(), + true, translate(NLS_INSERTNODE_TITLE)); + listenTo(cmc); + cmc.activate(); + } + private void doOpenStatusOverview(UserRequest ureq) { removeAsListenerAndDispose(statusCtr); @@ -1121,13 +1130,15 @@ public class EditorMainController extends MainLayoutBasicController implements G private void launchSinglePagesWizard(UserRequest ureq, ICourse course) { removeAsListenerAndDispose(multiSPChooserCtr); + removeAsListenerAndDispose(cmc); + VFSContainer rootContainer = course.getCourseEnvironment().getCourseFolderContainer(); CourseEditorTreeNode selectedNode = (CourseEditorTreeNode)menuTree.getSelectedNode(); multiSPChooserCtr = new MultiSPController(ureq, getWindowControl(), rootContainer, ores, selectedNode); listenTo(multiSPChooserCtr); - removeAsListenerAndDispose(cmc); - cmc = new CloseableModalController(getWindowControl(), translate("close"), multiSPChooserCtr.getInitialComponent()); + cmc = new CloseableModalController(getWindowControl(), translate("close"), + multiSPChooserCtr.getInitialComponent(), true, translate("multi.sps.title")); listenTo(cmc); cmc.activate(); } diff --git a/src/main/java/org/olat/course/editor/MultiSPController.java b/src/main/java/org/olat/course/editor/MultiSPController.java index a37cf89061415562569a7a608ca89878ac41c56e..b004d79dd617b4b908af429ec95c2f6d9643e2d9 100644 --- a/src/main/java/org/olat/course/editor/MultiSPController.java +++ b/src/main/java/org/olat/course/editor/MultiSPController.java @@ -102,7 +102,6 @@ public class MultiSPController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - setFormTitle("multi.sps.title"); setFormDescription("multi.sps.desc"); if(formLayout instanceof FormLayoutContainer) { @@ -130,8 +129,8 @@ public class MultiSPController extends FormBasicController { String[] singleKey = new String[]{ node.getId() }; String[] singleValue = new String[]{ node.getName() }; - String[] css = new String[]{ "b_with_small_icon_left " + node.getIconCssClass() }; - MultipleSelectionElement nodeSelection = uifactory.addCheckboxesVertical("print.node.list." + nodeSelections.size(), layoutcont, singleKey, singleValue, css, 1); + String[] iconCSS = new String[]{ "o_icon o_icon-fw " + node.getIconCssClass() }; + MultipleSelectionElement nodeSelection = uifactory.addCheckboxesVertical("print.node.list." + nodeSelections.size(), layoutcont, singleKey, singleValue, iconCSS, 1); nodeSelection.setLabel("multi.sps.file", null); nodeSelection.setUserObject(node); @@ -330,7 +329,7 @@ public class MultiSPController extends FormBasicController { public String getIconCssClass() { if(item instanceof VFSContainer) { - return "b_filetype_folder"; + return "o_filetype_folder"; } return CSSHelper.createFiletypeIconCssClassFor(item.getName()); } diff --git a/src/main/java/org/olat/course/editor/_content/choosesps.html b/src/main/java/org/olat/course/editor/_content/choosesps.html index f9bae8c89d314be64759d8f4d7bc178e5c5949ad..5b175b687cbf1fecb2d0f333333e9a7bc1822338 100644 --- a/src/main/java/org/olat/course/editor/_content/choosesps.html +++ b/src/main/java/org/olat/course/editor/_content/choosesps.html @@ -1,14 +1,10 @@ -<div class="b_form #if ($off_css_class) $off_css_class #end b_clearfix"> -#if ($off_title) <fieldset><legend>$off_title</legend> #end -#if ($off_chelp_package) $r.contextHelpWithWrapper("$off_chelp_package","$off_chelp_page","$off_chelp_hover") #end -#if ($off_desc) <div class="b_form_desc">$off_desc</div> #end - +<div class="o_form form-horizontal clearfix"> + <div class="o_desc">$off_desc</div> #foreach($nodeSelection in $nodeSelections) <div style="margin-left:${nodeSelection.getUserObject().getIndentation()}0px;"> $r.render($nodeSelection.getComponent().getComponentName()) </div> #end - <br/> <div class="b_togglecheck"> <input type="checkbox" checked="checked" disabled="disabled" />$r.render("checkall") @@ -20,6 +16,4 @@ $r.render("ok-cancel") </div> </div> - -#if ($off_title) </fieldset> #end </div> \ No newline at end of file diff --git a/src/main/java/org/olat/course/editor/_content/create_node.html b/src/main/java/org/olat/course/editor/_content/create_node.html new file mode 100644 index 0000000000000000000000000000000000000000..6358b3f9b95310d51e1d62499807d9f8315ecfd5 --- /dev/null +++ b/src/main/java/org/olat/course/editor/_content/create_node.html @@ -0,0 +1,12 @@ +<div id="o_course_editor_choose_nodetype" class="row"> +#foreach($group in $linkNames) + <div class="col-sm-3"> + <h5>$r.translate($group.name)</h5> + <ul> + #foreach($nodeType in $group.nodeTypes) + <li>$r.render($nodeType)</li> + #end + </ul> + </div> +#end +</div> \ No newline at end of file diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties index 6f6f5a9a3025a06dd0811af163fc47ffb1f9412a..46faf5251cff9ca480da22248b2d8c4bac6439db 100644 --- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties @@ -338,6 +338,10 @@ chelp.wordTrue=TRUE chelp.signLearningGroupFull=Gibt f\u00FCr die angegebene Lerngruppe den Boolean $\:chelp.wordTrue (=voll) oder $\:chelp.wordFalse (=nicht voll) zur\u00FCck. chelp.funcLearningGroupFull=<i>isLearningGroupFull("</i>$\:chelp.string<i>")</i> checklist.wizard=Checklisten +content=Inhalt +virtualClassroom=Virtual class rooms +test=Test +other=Andere... command.closeeditor=Editor schliessen command.copynode=Kopieren command.coursepreview=Kursvorschau diff --git a/src/main/java/org/olat/course/groupsandrights/GroupsAndRightsController.java b/src/main/java/org/olat/course/groupsandrights/GroupsAndRightsController.java index 5e9382f3db0909e970a1ea84f5d917ec6ad09f2b..0368e780c2b7866b12f0d32fe5c23c6995d56f01 100644 --- a/src/main/java/org/olat/course/groupsandrights/GroupsAndRightsController.java +++ b/src/main/java/org/olat/course/groupsandrights/GroupsAndRightsController.java @@ -148,7 +148,7 @@ public class GroupsAndRightsController extends FormBasicController { private MultipleSelectionElement createSelection(boolean selected) { String name = "cb" + UUID.randomUUID().toString().replace("-", ""); MultipleSelectionElement selection = new MultipleSelectionElementImpl(name, MultipleSelectionElementImpl.createVerticalLayout("checkbox",1)); - selection.setKeysAndValues(keys, values, null); + selection.setKeysAndValues(keys, values); flc.add(name, selection); selection.select(keys[0], selected); return selection; diff --git a/src/main/java/org/olat/course/member/MemberSearchForm.java b/src/main/java/org/olat/course/member/MemberSearchForm.java index a5c3d302d2afc2955a288c73bcbc8469f0856d3e..782ed8468c88c9e9f5ac606c30f347a36ebecec8 100644 --- a/src/main/java/org/olat/course/member/MemberSearchForm.java +++ b/src/main/java/org/olat/course/member/MemberSearchForm.java @@ -107,7 +107,7 @@ public class MemberSearchForm extends FormBasicController { for(int i=roleKeys.length; i-->0; ) { roleValues[i] = translate("search." + roleKeys[i]); } - rolesEl = uifactory.addCheckboxesHorizontal("roles", "search.roles", rightContainer, roleKeys, roleValues, null); + rolesEl = uifactory.addCheckboxesHorizontal("roles", "search.roles", rightContainer, roleKeys, roleValues); for(String roleKey: roleKeys) { rolesEl.select(roleKey, true); } diff --git a/src/main/java/org/olat/course/nodes/CourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/CourseNodeConfiguration.java index 6404f4b0e6f0da3bf71b82f53a34c24c985f4115..83e41546f6788cfa6f04d83a80f456202b00b261 100644 --- a/src/main/java/org/olat/course/nodes/CourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/CourseNodeConfiguration.java @@ -39,14 +39,14 @@ public interface CourseNodeConfiguration extends ConfigOnOff{ public String getAlias(); + public String getGroup(); + public CourseNode getInstance(); public String getLinkText(Locale locale); public String getIconCSSClass(); - public String getLinkCSSClass(); - public int getOrder(); public List<String> getAlternativeCourseNodes(); diff --git a/src/main/java/org/olat/course/nodes/CourseNodeGroup.java b/src/main/java/org/olat/course/nodes/CourseNodeGroup.java new file mode 100644 index 0000000000000000000000000000000000000000..1c20e3799adcaa7525423fc4fbfca20dfec341bb --- /dev/null +++ b/src/main/java/org/olat/course/nodes/CourseNodeGroup.java @@ -0,0 +1,39 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes; + +/** + * Can group the course element in the chooser. + * + * + * + * Initial date: 26.05.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public enum CourseNodeGroup { + + test, + virtualClassroom, + content, + other + + +} diff --git a/src/main/java/org/olat/course/nodes/basiclti/LTIConfigForm.java b/src/main/java/org/olat/course/nodes/basiclti/LTIConfigForm.java index 3e3c027b5571ce25c59076d5bd448719a7cffabd..263aa686292f5169486e5d5d1425c9e4d54e38f7 100644 --- a/src/main/java/org/olat/course/nodes/basiclti/LTIConfigForm.java +++ b/src/main/java/org/olat/course/nodes/basiclti/LTIConfigForm.java @@ -249,10 +249,10 @@ public class LTIConfigForm extends FormBasicController { uifactory.addSpacerElement("attributes", formLayout, false); - sendName = uifactory.addCheckboxesVertical("sendName", "display.config.sendName", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + sendName = uifactory.addCheckboxesVertical("sendName", "display.config.sendName", formLayout, new String[]{"xx"}, new String[]{null}, 1); sendName.select("xx", sendNameConfig); - sendEmail = uifactory.addCheckboxesVertical("sendEmail", "display.config.sendEmail", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + sendEmail = uifactory.addCheckboxesVertical("sendEmail", "display.config.sendEmail", formLayout, new String[]{"xx"}, new String[]{null}, 1); sendEmail.select("xx", sendEmailConfig); String page = velocity_root + "/custom.html"; @@ -269,11 +269,11 @@ public class LTIConfigForm extends FormBasicController { uifactory.addSpacerElement("roles", formLayout, false); uifactory.addStaticTextElement("roletitle", "roles.title.oo", translate("roles.title.lti"), formLayout); - authorRoleEl = uifactory.addCheckboxesHorizontal("author", "author.roles", formLayout, ltiRolesKeys, ltiRolesValues, null); + authorRoleEl = uifactory.addCheckboxesHorizontal("author", "author.roles", formLayout, ltiRolesKeys, ltiRolesValues); udpateRoles(authorRoleEl, BasicLTICourseNode.CONFIG_KEY_AUTHORROLE, "Instructor,Administrator,TeachingAssistant,ContentDeveloper,Mentor"); - coachRoleEl = uifactory.addCheckboxesHorizontal("coach", "coach.roles", formLayout, ltiRolesKeys, ltiRolesValues, null); + coachRoleEl = uifactory.addCheckboxesHorizontal("coach", "coach.roles", formLayout, ltiRolesKeys, ltiRolesValues); udpateRoles(coachRoleEl, BasicLTICourseNode.CONFIG_KEY_COACHROLE, "Instructor,TeachingAssistant,Mentor"); - participantRoleEl = uifactory.addCheckboxesHorizontal("participant", "participant.roles", formLayout, ltiRolesKeys, ltiRolesValues, null); + participantRoleEl = uifactory.addCheckboxesHorizontal("participant", "participant.roles", formLayout, ltiRolesKeys, ltiRolesValues); udpateRoles(participantRoleEl, BasicLTICourseNode.CONFIG_KEY_PARTICIPANTROLE, "Learner"); uifactory.addSpacerElement("scoring", formLayout, false); @@ -281,7 +281,7 @@ public class LTIConfigForm extends FormBasicController { //add score info String[] assessableKeys = new String[]{ "on" }; String[] assessableValues = new String[]{ "" }; - isAssessableEl = uifactory.addCheckboxesHorizontal("isassessable", "assessable.label", formLayout, assessableKeys, assessableValues, null); + isAssessableEl = uifactory.addCheckboxesHorizontal("isassessable", "assessable.label", formLayout, assessableKeys, assessableValues); isAssessableEl.addActionListener(FormEvent.ONCHANGE); if(isAssessable) { isAssessableEl.select("on", true); @@ -327,7 +327,7 @@ public class LTIConfigForm extends FormBasicController { uifactory.addSpacerElement("debug", formLayout, false); - doDebug = uifactory.addCheckboxesVertical("doDebug", "display.config.doDebug", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + doDebug = uifactory.addCheckboxesVertical("doDebug", "display.config.doDebug", formLayout, new String[]{"xx"}, new String[]{null}, 1); doDebug.select("xx", doDebugConfig); uifactory.addSpacerElement("buttons", formLayout, false); diff --git a/src/main/java/org/olat/course/nodes/basiclti/LTICourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/basiclti/LTICourseNodeConfiguration.java index d00b92ab490674afd7be70d39790d7633065784a..07f46e3eccabdb589bfeaeec3b837c9c42f9416f 100644 --- a/src/main/java/org/olat/course/nodes/basiclti/LTICourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/basiclti/LTICourseNodeConfiguration.java @@ -33,6 +33,7 @@ import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.BasicLTICourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; /** * Description:<br> @@ -40,47 +41,36 @@ import org.olat.course.nodes.CourseNodeConfiguration; * @author guido * @author Charles Severance */ -public class LTICourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class LTICourseNodeConfiguration extends AbstractCourseNodeConfiguration { private LTICourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new BasicLTICourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_lti"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_lti_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "lti"; } - - // - // OLATExtension interface implementations. - // - public String getName() { - return getAlias(); + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); } } diff --git a/src/main/java/org/olat/course/nodes/bc/BCCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/bc/BCCourseNodeConfiguration.java index ae935456cc7419047a2e6006de5e90c0f32685ac..fd28d7bc5030a645b4a97b613577cf80fd0831ff 100644 --- a/src/main/java/org/olat/course/nodes/bc/BCCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/bc/BCCourseNodeConfiguration.java @@ -33,53 +33,43 @@ import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.BCCourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; /** * Description:<br> * TODO: guido Class Description for BCCourseNodeConfiguration */ -public class BCCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class BCCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private BCCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new BCCourseNode(); } - // - // CourseNodeConfiguration interface implementations. - // - - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getAlias() - */ + @Override public String getAlias() { return "bc"; } + + @Override + public String getGroup() { + return CourseNodeGroup.content.name(); + } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_bc"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_bc_icon"; } - - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } } diff --git a/src/main/java/org/olat/course/nodes/cal/CalCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/cal/CalCourseNodeConfiguration.java index 648bca8402d5e31055e49955ce2bf23b6911de96..7d891573c2bfdd31d4f02e3f3db0f65cd475718d 100644 --- a/src/main/java/org/olat/course/nodes/cal/CalCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/cal/CalCourseNodeConfiguration.java @@ -28,6 +28,7 @@ import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CalCourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; /** * @@ -37,40 +38,36 @@ import org.olat.course.nodes.CourseNodeConfiguration; * * @author srosse, stephane.rosse@frentix.com, www.frentix.com */ -public class CalCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class CalCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private CalCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new CalCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("calendar.title"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_cal_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return CalCourseNode.TYPE; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/cal/CalEditController.java b/src/main/java/org/olat/course/nodes/cal/CalEditController.java index 3533c6a75558dc4eea68c920cde86db351691007..bfdd6a44dadb81cb93b1fe365d52606d77970c7c 100644 --- a/src/main/java/org/olat/course/nodes/cal/CalEditController.java +++ b/src/main/java/org/olat/course/nodes/cal/CalEditController.java @@ -265,7 +265,7 @@ public class CalEditController extends ActivateableTabbableDefaultController imp boolean autoSubscribe = getAutoSubscribe(config); String[] subscribesKeys = new String[]{""}; String[] subscribesValues = new String[]{translate("pane.tab.auto_subscribe.value")}; - autoSubscribeEl = uifactory.addCheckboxesHorizontal("pane.tab.auto_subscribe", formLayout, subscribesKeys, subscribesValues, null); + autoSubscribeEl = uifactory.addCheckboxesHorizontal("pane.tab.auto_subscribe", formLayout, subscribesKeys, subscribesValues); autoSubscribeEl.select("", autoSubscribe); autoSubscribeEl.setLabel("pane.tab.auto_subscribe", null); diff --git a/src/main/java/org/olat/course/nodes/cl/CheckListCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/cl/CheckListCourseNodeConfiguration.java index fdb04246939fdb5e318a34d5780edf95ee3f29dd..fd26cb53eb373970347d79942829b425c67cc0c5 100644 --- a/src/main/java/org/olat/course/nodes/cl/CheckListCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/cl/CheckListCourseNodeConfiguration.java @@ -27,6 +27,7 @@ import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CheckListCourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; /** * @@ -34,7 +35,7 @@ import org.olat.course.nodes.CourseNodeConfiguration; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * */ -public class CheckListCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class CheckListCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private CheckListCourseNodeConfiguration() { super(); @@ -45,9 +46,6 @@ public class CheckListCourseNodeConfiguration extends AbstractCourseNodeConfigur return new CheckListCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); @@ -55,24 +53,18 @@ public class CheckListCourseNodeConfiguration extends AbstractCourseNodeConfigur return translator.translate("title_checklist"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ @Override public String getIconCSSClass() { return "o_cl_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - @Override - public String getLinkCSSClass() { - return null; - } - @Override public String getAlias() { return "checklist"; } + + @Override + public String getGroup() { + return CourseNodeGroup.test.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java index 7a402d15c03ea2aee61a97be80dd6681eea040a5..addfd6296ffd4fda9651a5ef8d7ff927fa81d46d 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java @@ -143,7 +143,7 @@ public class AssessedIdentityCheckListController extends FormBasicController { String boxId = "box_" + checkbox.getCheckboxId(); MultipleSelectionElement boxEl = uifactory - .addCheckboxesHorizontal(boxId, null, formLayout, onKeys, values, null); + .addCheckboxesHorizontal(boxId, null, formLayout, onKeys, values); boxEl.setEnabled(!readOnly); boxEl.setLabel(checkbox.getTitle(), null, false); boxEl.showLabel(true); diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java index 1f645e98d9388d654cf8450e83e733f9918e3c7d..e7eea2addfbb7e824e229ff222036c803372d93d 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java @@ -499,7 +499,7 @@ public class CheckListAssessmentController extends FormBasicController implement MultipleSelectionElement[] checkedEls = new MultipleSelectionElement[numOfCheckbox]; for(int i=0; i<numOfCheckbox; i++) { String checkName = "c" + i + "-" + row.getIdentityKey(); - checkedEls[i] = uifactory.addCheckboxesHorizontal(checkName, null, flc, onKeys, onValues, null); + checkedEls[i] = uifactory.addCheckboxesHorizontal(checkName, null, flc, onKeys, onValues); if(checked != null && i<checked.length && checked[i] != null) { checkedEls[i].select(onKeys[0], checked[i].booleanValue()); } diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListConfigurationController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListConfigurationController.java index 266e4c60b223e5b84eef57eafe0af1abf1fdaa19..1f4d28ebc7b8c8f240ebc059c57afa98d737bdf2 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/CheckListConfigurationController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListConfigurationController.java @@ -110,7 +110,7 @@ public class CheckListConfigurationController extends FormBasicController { Boolean dueDateBool = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_CLOSE_AFTER_DUE_DATE); Date dueDate = (Date)config.get(CheckListCourseNode.CONFIG_KEY_DUE_DATE); String[] theValues = new String[] { "" }; - dueDateEl = uifactory.addCheckboxesHorizontal("duedate", "config.due.date.on", formLayout, onKeys, theValues, null); + dueDateEl = uifactory.addCheckboxesHorizontal("duedate", "config.due.date.on", formLayout, onKeys, theValues); dueDateEl.addActionListener(FormEvent.ONCHANGE); if(dueDateBool != null && dueDateBool.booleanValue()) { dueDateEl.select(onKeys[0], true); @@ -130,7 +130,7 @@ public class CheckListConfigurationController extends FormBasicController { Float minVal = (Float)config.get(MSCourseNode.CONFIG_KEY_SCORE_MIN); Float maxVal = (Float)config.get(MSCourseNode.CONFIG_KEY_SCORE_MAX); String[] pointsValues = new String[]{ translate("config.points.on") }; - scoreGrantedEl = uifactory.addCheckboxesHorizontal("points", "config.points", formLayout, onKeys, pointsValues, null); + scoreGrantedEl = uifactory.addCheckboxesHorizontal("points", "config.points", formLayout, onKeys, pointsValues); scoreGrantedEl.addActionListener(FormEvent.ONCHANGE); if(scoreGrantedBool == null || (scoreGrantedBool != null && scoreGrantedBool.booleanValue())) { scoreGrantedEl.select(onKeys[0], true); @@ -154,7 +154,7 @@ public class CheckListConfigurationController extends FormBasicController { Integer sumCutValue = (Integer)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CUTVALUE); Boolean manualCorr = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_MANUAL_CORRECTION); - passedEl = uifactory.addCheckboxesHorizontal("passed", "config.passed", formLayout, onKeys, theValues, null); + passedEl = uifactory.addCheckboxesHorizontal("passed", "config.passed", formLayout, onKeys, theValues); passedEl.addActionListener(FormEvent.ONCHANGE); if(passedBool == null || (passedBool != null && passedBool.booleanValue())) { passedEl.select(onKeys[0], true); @@ -193,7 +193,7 @@ public class CheckListConfigurationController extends FormBasicController { uifactory.addSpacerElement("spacer-passed", formLayout, false); //comment - commentEl = uifactory.addCheckboxesHorizontal("comment", "config.comment", formLayout, onKeys, theValues, null); + commentEl = uifactory.addCheckboxesHorizontal("comment", "config.comment", formLayout, onKeys, theValues); Boolean commentBool = (Boolean)config.get(MSCourseNode.CONFIG_KEY_HAS_COMMENT_FIELD); if(commentBool != null && commentBool.booleanValue()) { commentEl.select(onKeys[0], true); diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java index 39ee75d7d194564c5409dafacab8e51246135b63..68d302ed76c1fcd8ce426e27b44e39d296e8e943 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java @@ -202,7 +202,7 @@ public class CheckListRunController extends FormBasicController implements Contr String boxId = "box_" + checkbox.getCheckboxId(); MultipleSelectionElement el = uifactory - .addCheckboxesHorizontal(boxId, null, formLayout, onKeys, values, null); + .addCheckboxesHorizontal(boxId, null, formLayout, onKeys, values); el.setEnabled(canCheck && !readOnly); el.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentController.java index 9f9c5966fba7aa58064816fd365908a57d50e66c..61db889358a9bdbfcd0b65cbb99a76e61577e7b9 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentController.java @@ -205,7 +205,7 @@ public class CheckboxAssessmentController extends FormBasicController { TextElement pointEl = uifactory.addTextElement(name + "point", null, 5, pointVal, formLayout); pointEl.setDisplaySize(5); - MultipleSelectionElement checkEl = uifactory.addCheckboxesHorizontal(name + "check", formLayout, onKeys, onValues, null); + MultipleSelectionElement checkEl = uifactory.addCheckboxesHorizontal(name + "check", formLayout, onKeys, onValues); checkEl.addActionListener(FormEvent.ONCHANGE); checkEl.setUserObject(row); if(checked != null && checked.length > currentCheckboxIndex diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java index 23d7ba057fe04a4ca75e1d366b1bc4184590dcb1..b8b289ab0d965beb1b1cc9cbd6d675b88af7fac4 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java @@ -136,7 +136,7 @@ public class CheckboxEditController extends FormBasicController { String[] onKeys = new String[] { "on" }; String[] onValues = new String[] { translate("award.point.on") }; - awardPointEl = uifactory.addCheckboxesHorizontal("points", formLayout, onKeys, onValues, null); + awardPointEl = uifactory.addCheckboxesHorizontal("points", formLayout, onKeys, onValues); awardPointEl.setVisible(withScore); awardPointEl.addActionListener(FormEvent.ONCHANGE); if(checkbox.getPoints() != null) { diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/StructureNodeStepController.java b/src/main/java/org/olat/course/nodes/cl/ui/wizard/StructureNodeStepController.java index 58c59427399e9e8f591d67fc52ec255b191f6cc7..16608c730818bb3105363a877b0c5eee576cfce1 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/StructureNodeStepController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/StructureNodeStepController.java @@ -83,10 +83,10 @@ public class StructureNodeStepController extends StepFormBasicController { uifactory.addSpacerElement("spaceman", formLayout, false); String[] pointValues = new String[]{ translate("points.sum.checklists") }; - pointsEl = uifactory.addCheckboxesHorizontal("points", formLayout, onKeys, pointValues, null); + pointsEl = uifactory.addCheckboxesHorizontal("points", formLayout, onKeys, pointValues); String[] passedValues = new String[]{ "" }; - passedEl = uifactory.addCheckboxesHorizontal("passed", "config.passed", formLayout, onKeys, passedValues, null); + passedEl = uifactory.addCheckboxesHorizontal("passed", "config.passed", formLayout, onKeys, passedValues); passedEl.addActionListener(FormEvent.ONCHANGE); String[] outputValues = new String[]{ diff --git a/src/main/java/org/olat/course/nodes/co/COConfigForm.java b/src/main/java/org/olat/course/nodes/co/COConfigForm.java index 601dd5faf7eec0514e40aa30a4ebd6722c5b9502..bd8addc639f4a03f1205a6cf06e7855515cb13a1 100644 --- a/src/main/java/org/olat/course/nodes/co/COConfigForm.java +++ b/src/main/java/org/olat/course/nodes/co/COConfigForm.java @@ -422,12 +422,12 @@ public class COConfigForm extends FormBasicController { setFormTitle("header", null); setFormContextHelp("org.olat.course.nodes.co","ced-co.html","help.hover.co"); - wantGroup = uifactory.addCheckboxesVertical("wantGroup", "message.want.group", formLayout, new String[]{"xx"},new String[]{null} , null, 1); + wantGroup = uifactory.addCheckboxesVertical("wantGroup", "message.want.group", formLayout, new String[]{"xx"},new String[]{null}, 1); wantGroup.addActionListener(FormEvent.ONCLICK); - coaches = uifactory.addCheckboxesVertical("coaches", "form.message.chckbx.coaches", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + coaches = uifactory.addCheckboxesVertical("coaches", "form.message.chckbx.coaches", formLayout, new String[]{"xx"}, new String[]{null}, 1); coaches.select("xx", config.getBooleanEntry(COEditController.CONFIG_KEY_EMAILTOCOACHES)); - partips = uifactory.addCheckboxesVertical("partips", "form.message.chckbx.partips", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + partips = uifactory.addCheckboxesVertical("partips", "form.message.chckbx.partips", formLayout, new String[]{"xx"}, new String[]{null}, 1); partips.select("xx", config.getBooleanEntry(COEditController.CONFIG_KEY_EMAILTOPARTICIPANTS)); wantGroup.select("xx", coaches.isSelected(0) || partips.isSelected(0)); @@ -492,7 +492,7 @@ public class COConfigForm extends FormBasicController { s2 = uifactory.addSpacerElement("s2", formLayout, false); - wantEmail = uifactory.addCheckboxesVertical("wantEmail", "message.want.email", formLayout, new String[]{"xx"},new String[]{null} , null, 1); + wantEmail = uifactory.addCheckboxesVertical("wantEmail", "message.want.email", formLayout, new String[]{"xx"},new String[]{null}, 1); wantEmail.addActionListener(FormEvent.ONCLICK); //recipients diff --git a/src/main/java/org/olat/course/nodes/co/COCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/co/COCourseNodeConfiguration.java index 7258af90282f0a12ea2094fc1b8e5198f721d2b9..111f6fa5f7534b4257abd4a7e5cb0b94e1c1288a 100644 --- a/src/main/java/org/olat/course/nodes/co/COCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/co/COCourseNodeConfiguration.java @@ -33,45 +33,42 @@ import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.COCourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; /** * Description:<br> * TODO: guido Class Description for COCourseNodeConfiguration */ -public class COCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class COCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private COCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new COCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_co"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_co_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "co"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } } \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cp/CPCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/cp/CPCourseNodeConfiguration.java index ad58b2e67089f3d2578655b914f403abd94dbb99..6065f9a35ec6798a55156d5a51910deadddf2c7e 100644 --- a/src/main/java/org/olat/course/nodes/cp/CPCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/cp/CPCourseNodeConfiguration.java @@ -33,45 +33,42 @@ import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CPCourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; /** * Description:<br> * TODO: guido Class Description for CPCourseNodeConfiguration */ -public class CPCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class CPCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private CPCourseNodeConfiguration() { super(); } - + + @Override public CourseNode getInstance() { return new CPCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_cp"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_cp_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "cp"; } + + @Override + public String getGroup() { + return CourseNodeGroup.content.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/cp/CPEditController.java b/src/main/java/org/olat/course/nodes/cp/CPEditController.java index f0449363f9e6abf2c3e1802b36f59706abbf01c8..6ab5ec53c77e031ab87f55f1578157345fbb8084 100644 --- a/src/main/java/org/olat/course/nodes/cp/CPEditController.java +++ b/src/main/java/org/olat/course/nodes/cp/CPEditController.java @@ -419,10 +419,10 @@ class CompMenuForm extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - cpMenu = uifactory.addCheckboxesVertical("cpMenu", NLS_DISPLAY_CONFIG_COMPMENU, formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + cpMenu = uifactory.addCheckboxesVertical("cpMenu", NLS_DISPLAY_CONFIG_COMPMENU, formLayout, new String[]{"xx"}, new String[]{null}, 1); cpMenu.select("xx",compMenuConfig); - cpNavButtons = uifactory.addCheckboxesVertical("cpNextPrevious", NLS_DISPLAY_CONFIG_COMP_NEXT_PREVIOUS, formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + cpNavButtons = uifactory.addCheckboxesVertical("cpNextPrevious", NLS_DISPLAY_CONFIG_COMP_NEXT_PREVIOUS, formLayout, new String[]{"xx"}, new String[]{null}, 1); cpNavButtons.select("xx",compNavButtonsConfig); uifactory.addFormSubmitButton("submit", formLayout); diff --git a/src/main/java/org/olat/course/nodes/dialog/DialogConfigForm.java b/src/main/java/org/olat/course/nodes/dialog/DialogConfigForm.java index c13e66b2927ea1844fd9c962ea9b97a915574a84..b9d6e7dce294d4ba556911ebc5c4bf85e310cd5c 100644 --- a/src/main/java/org/olat/course/nodes/dialog/DialogConfigForm.java +++ b/src/main/java/org/olat/course/nodes/dialog/DialogConfigForm.java @@ -104,8 +104,7 @@ public class DialogConfigForm extends FormBasicController { select = uifactory.addCheckboxesVertical( "forumAsPopup", "selection.forumAsPopup.label", - formLayout, new String[]{"xx"}, new String[]{null}, null, 1 - ); + formLayout, new String[]{"xx"}, new String[]{null}, 1); String selectConfig = (String) config.get(DialogConfigForm.DIALOG_CONFIG_INTEGRATION); select.select ("xx", selectConfig == CONFIG_INTEGRATION_VALUE_POPUP); diff --git a/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeConfiguration.java index 63957dde47bffc16cac7d6ff58bfbfe12bbca3ac..dda83a34cee6a2ff0de448c414421ec7a851adbc 100644 --- a/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeConfiguration.java @@ -32,6 +32,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.DialogCourseNode; /** @@ -43,46 +44,36 @@ import org.olat.course.nodes.DialogCourseNode; * * @author guido */ -public class DialogCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class DialogCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private DialogCourseNodeConfiguration() { super(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getAlias() - */ + @Override public String getAlias() { return DialogCourseNode.TYPE; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getInstance() - */ + @Override public CourseNode getInstance() { return new DialogCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_" + DialogCourseNode.TYPE); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getIconCSSClass() - */ + @Override public String getIconCSSClass() { return "o_" + DialogCourseNode.TYPE + "_icon"; } - - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); } } diff --git a/src/main/java/org/olat/course/nodes/en/ENCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/en/ENCourseNodeConfiguration.java index c6cab2ea5f133e16493d604106dfc22f6476d2e1..46e8db0b1037194863a9e7542f4ee7f1c0189300 100644 --- a/src/main/java/org/olat/course/nodes/en/ENCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/en/ENCourseNodeConfiguration.java @@ -32,46 +32,43 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.ENCourseNode; /** * Description:<br> * TODO: guido Class Description for ENCourseNodeConfiguration */ -public class ENCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class ENCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private ENCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new ENCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_en"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_en_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "en"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/en/ENEditGroupAreaFormController.java b/src/main/java/org/olat/course/nodes/en/ENEditGroupAreaFormController.java index a351d4e936580d886319aa1623b105e8d2cd8b2e..76bdc963efcc2e13b7d45364914f46bc062943da 100644 --- a/src/main/java/org/olat/course/nodes/en/ENEditGroupAreaFormController.java +++ b/src/main/java/org/olat/course/nodes/en/ENEditGroupAreaFormController.java @@ -239,7 +239,7 @@ class ENEditGroupAreaFormController extends FormBasicController implements Gener // enrolment Boolean initialCancelEnrollEnabled = (Boolean) moduleConfig.get(ENCourseNode.CONF_CANCEL_ENROLL_ENABLED); - enableCancelEnroll = uifactory.addCheckboxesHorizontal("enableCancelEnroll", "form.enableCancelEnroll", formLayout, new String[] { "ison" }, new String[] { "" }, null); + enableCancelEnroll = uifactory.addCheckboxesHorizontal("enableCancelEnroll", "form.enableCancelEnroll", formLayout, new String[] { "ison" }, new String[] { "" }); enableCancelEnroll.select("ison", initialCancelEnrollEnabled); subm = uifactory.addFormSubmitButton("submit", formLayout); diff --git a/src/main/java/org/olat/course/nodes/feed/blog/BlogCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/feed/blog/BlogCourseNodeConfiguration.java index 67b729e3b56b315c8ed6633e36d91fecae0fa0a7..e1bb814f8342646924d89b28edb59f23fea8d157 100644 --- a/src/main/java/org/olat/course/nodes/feed/blog/BlogCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/feed/blog/BlogCourseNodeConfiguration.java @@ -27,6 +27,7 @@ import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.BlogCourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; /** * The blog course node configuration class @@ -36,7 +37,7 @@ import org.olat.course.nodes.CourseNodeConfiguration; * * @author gwassmann */ -public class BlogCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class BlogCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private static final String ICON_CSS_CLASS = "o_blog_icon"; @@ -44,38 +45,27 @@ public class BlogCourseNodeConfiguration extends AbstractCourseNodeConfiguration super(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getAlias() - */ + @Override public String getAlias() { return BlogCourseNode.TYPE; } + + @Override + public String getGroup() { + return CourseNodeGroup.content.name(); + } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getIconCSSClass() - */ + @Override public String getIconCSSClass() { return ICON_CSS_CLASS; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getInstance() - */ + @Override public CourseNode getInstance() { return new BlogCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - // No particular styles - return null; - } - - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); diff --git a/src/main/java/org/olat/course/nodes/feed/podcast/PodcastCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/feed/podcast/PodcastCourseNodeConfiguration.java index a8e5a01da5a95968acfb9760707dcd77fe7f16ac..465e847606f3e3c7645e6073af4bc0f495de14f8 100644 --- a/src/main/java/org/olat/course/nodes/feed/podcast/PodcastCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/feed/podcast/PodcastCourseNodeConfiguration.java @@ -26,6 +26,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.PodcastCourseNode; /** @@ -36,7 +37,7 @@ import org.olat.course.nodes.PodcastCourseNode; * * @author gwassmann */ -public class PodcastCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class PodcastCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private static final String ICON_CSS_CLASS = "o_podcast_icon"; @@ -44,38 +45,27 @@ public class PodcastCourseNodeConfiguration extends AbstractCourseNodeConfigurat super(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getAlias() - */ + @Override public String getAlias() { return PodcastCourseNode.TYPE; } + + @Override + public String getGroup() { + return CourseNodeGroup.content.name(); + } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getIconCSSClass() - */ + @Override public String getIconCSSClass() { return ICON_CSS_CLASS; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getInstance() - */ + @Override public CourseNode getInstance() { return new PodcastCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - // No particular styles - return null; - } - - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); diff --git a/src/main/java/org/olat/course/nodes/fo/FOCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/fo/FOCourseNodeConfiguration.java index 4223a450f2473fbdbfc2da2aa0217c4ce819e02e..467a3b2168b88b984e3e263bdfc84a27b23d90fe 100644 --- a/src/main/java/org/olat/course/nodes/fo/FOCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/fo/FOCourseNodeConfiguration.java @@ -32,6 +32,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.FOCourseNode; /** @@ -42,40 +43,36 @@ import org.olat.course.nodes.FOCourseNode; * * @author guido */ -public class FOCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class FOCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private FOCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new FOCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_fo"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_fo_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "fo"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/info/InfoConfigForm.java b/src/main/java/org/olat/course/nodes/info/InfoConfigForm.java index 9fbc0255ffed53e75f33f1e3b04824cab3aa1feb..3cd0050d34be66135c2ead3d6ed5e598616e58eb 100644 --- a/src/main/java/org/olat/course/nodes/info/InfoConfigForm.java +++ b/src/main/java/org/olat/course/nodes/info/InfoConfigForm.java @@ -102,7 +102,7 @@ public class InfoConfigForm extends FormBasicController { lengthSelection.select("5", true); } - autoSubscribeSelection = uifactory.addCheckboxesHorizontal("auto_subscribe", formLayout, autoSubscribeKeys, autoSubscribeValues, null); + autoSubscribeSelection = uifactory.addCheckboxesHorizontal("auto_subscribe", formLayout, autoSubscribeKeys, autoSubscribeValues); String autoSubscribeStr = (String)config.get(InfoCourseNodeConfiguration.CONFIG_AUTOSUBSCRIBE); if("on".equals(autoSubscribeStr) || !StringHelper.containsNonWhitespace(autoSubscribeStr)) { autoSubscribeSelection.select("on", true); diff --git a/src/main/java/org/olat/course/nodes/info/InfoCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/info/InfoCourseNodeConfiguration.java index b4c117a12add6b1e217fccac85b0671ba3e070ae..b3a63fe0a090a011a641bc95c22a7e01457c04be 100644 --- a/src/main/java/org/olat/course/nodes/info/InfoCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/info/InfoCourseNodeConfiguration.java @@ -27,6 +27,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.InfoCourseNode; /** @@ -38,17 +39,21 @@ import org.olat.course.nodes.InfoCourseNode; * Initial Date: 3 aug. 2010 <br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class InfoCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class InfoCourseNodeConfiguration extends AbstractCourseNodeConfiguration { public static final String CONFIG_DURATION = "duration"; public static final String CONFIG_LENGTH = "length"; public static final String CONFIG_AUTOSUBSCRIBE = "autosubscribe"; - @Override public String getAlias() { return "info"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } @Override public CourseNode getInstance() { @@ -66,9 +71,4 @@ public class InfoCourseNodeConfiguration extends AbstractCourseNodeConfiguration public String getIconCSSClass() { return "o_infomsg_icon"; } - - @Override - public String getLinkCSSClass() { - return null; - } } diff --git a/src/main/java/org/olat/course/nodes/iq/IQ12EditForm.java b/src/main/java/org/olat/course/nodes/iq/IQ12EditForm.java index baf7ef27d4cf14dc7173c0d004d6c85475c6f9d6..fb79b65dd154b2a7741aae61119141def22d98e9 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQ12EditForm.java +++ b/src/main/java/org/olat/course/nodes/iq/IQ12EditForm.java @@ -159,7 +159,7 @@ public class IQ12EditForm extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - limitAttempts = uifactory.addCheckboxesVertical("limitAttempts", "qti.form.limit.attempts", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + limitAttempts = uifactory.addCheckboxesVertical("limitAttempts", "qti.form.limit.attempts", formLayout, new String[]{"xx"}, new String[]{null}, 1); Integer confAttempts = (Integer) modConfig.get(IQEditController.CONFIG_KEY_ATTEMPTS); if (confAttempts == null) confAttempts = new Integer(0); @@ -169,7 +169,7 @@ public class IQ12EditForm extends FormBasicController { attempts.setMaxValueCheck(20, null); //add it - blockAfterSuccess = uifactory.addCheckboxesVertical("blockAfterSuccess", "qti.form.block.afterSuccess", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + blockAfterSuccess = uifactory.addCheckboxesVertical("blockAfterSuccess", "qti.form.block.afterSuccess", formLayout, new String[]{"xx"}, new String[]{null}, 1); Boolean block = (Boolean) modConfig.get(IQEditController.CONFIG_KEY_BLOCK_AFTER_SUCCESS); blockAfterSuccess.select("xx", block == null ? false : block.booleanValue() ); @@ -188,16 +188,16 @@ public class IQ12EditForm extends FormBasicController { } Boolean fullWindow = (Boolean) modConfig.get(IQEditController.CONFIG_FULLWINDOW); - fullWindowEl = uifactory.addCheckboxesVertical("fullwindow", "qti.form.fullwindow", formLayout, new String[]{"fullwindow"}, new String[]{null}, null, 1); + fullWindowEl = uifactory.addCheckboxesVertical("fullwindow", "qti.form.fullwindow", formLayout, new String[]{"fullwindow"}, new String[]{null}, 1); fullWindowEl.select("fullwindow", fullWindow == null ? true : fullWindow.booleanValue()); Boolean CdisplayMenu = (Boolean)modConfig.get(IQEditController.CONFIG_KEY_DISPLAYMENU); - displayMenu = uifactory.addCheckboxesVertical("qti_displayMenu", "qti.form.menudisplay", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + displayMenu = uifactory.addCheckboxesVertical("qti_displayMenu", "qti.form.menudisplay", formLayout, new String[]{"xx"}, new String[]{null}, 1); displayMenu.select("xx", CdisplayMenu == null ? true : CdisplayMenu ); displayMenu.addActionListener(FormEvent.ONCLICK); Boolean CenableMenu = (Boolean)modConfig.get(IQEditController.CONFIG_KEY_ENABLEMENU); - enableMenu = uifactory.addCheckboxesVertical("qti_enableMenu", "qti.form.menuenable", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + enableMenu = uifactory.addCheckboxesVertical("qti_enableMenu", "qti.form.menuenable", formLayout, new String[]{"xx"}, new String[]{null}, 1); enableMenu.select("xx", CenableMenu == null ? true : CenableMenu); menuRenderOptions = uifactory.addRadiosVertical("qti_form_menurenderoption", "qti.form.menurender", formLayout, menuRenderOptKeys, menuRenderOptValues); @@ -226,33 +226,33 @@ public class IQ12EditForm extends FormBasicController { Boolean bDisplayQuestionTitle = (Boolean)modConfig.get(IQEditController.CONFIG_KEY_QUESTIONTITLE); boolean confDisplayQuestionTitle = (bDisplayQuestionTitle != null) ? bDisplayQuestionTitle.booleanValue() : true; - displayQuestionTitle = uifactory.addCheckboxesVertical("qti_displayQuestionTitle", "qti.form.questiontitle", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + displayQuestionTitle = uifactory.addCheckboxesVertical("qti_displayQuestionTitle", "qti.form.questiontitle", formLayout, new String[]{"xx"}, new String[]{null}, 1); displayQuestionTitle.select("xx", confDisplayQuestionTitle); //display automatic enumetation of choice options Boolean bAutoEnum = (Boolean)modConfig.get(IQEditController.CONFIG_KEY_AUTOENUM_CHOICES); boolean confAutoEnum = (bAutoEnum != null) ? bAutoEnum.booleanValue() : false; - autoEnumerateChoices = uifactory.addCheckboxesVertical("qti_AutoEnumChoices", "qti.form.auto.enumerate.choices", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + autoEnumerateChoices = uifactory.addCheckboxesVertical("qti_AutoEnumChoices", "qti.form.auto.enumerate.choices", formLayout, new String[]{"xx"}, new String[]{null}, 1); autoEnumerateChoices.select("xx", confAutoEnum); //provide memo field Boolean bMemo = (Boolean)modConfig.get(IQEditController.CONFIG_KEY_MEMO); boolean confMemo = (bMemo != null) ? bMemo.booleanValue() : false; - provideMemoField = uifactory.addCheckboxesVertical("qti_provideMemoField", "qti.form.auto.memofield", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + provideMemoField = uifactory.addCheckboxesVertical("qti_provideMemoField", "qti.form.auto.memofield", formLayout, new String[]{"xx"}, new String[]{null}, 1); provideMemoField.select("xx", confMemo); // question progress Boolean bEnableQuestionProgress = (Boolean)modConfig.get(IQEditController.CONFIG_KEY_QUESTIONPROGRESS); boolean confEnableQuestionProgress = (bEnableQuestionProgress != null) ? bEnableQuestionProgress.booleanValue() : true; - displayQuestionProgress = uifactory.addCheckboxesVertical("qti_enableQuestionProgress", "qti.form.questionprogress", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + displayQuestionProgress = uifactory.addCheckboxesVertical("qti_enableQuestionProgress", "qti.form.questionprogress", formLayout, new String[]{"xx"}, new String[]{null}, 1); displayQuestionProgress.select("xx", confEnableQuestionProgress); displayQuestionProgress.setVisible(!isSurvey); // score progress Boolean bEnableScoreProgress = (Boolean)modConfig.get(IQEditController.CONFIG_KEY_SCOREPROGRESS); boolean confEnableScoreProgress = (bEnableScoreProgress != null) ? bEnableScoreProgress.booleanValue() : true; - displayScoreProgress = uifactory.addCheckboxesVertical("resultTitle", "qti.form.scoreprogress", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + displayScoreProgress = uifactory.addCheckboxesVertical("resultTitle", "qti.form.scoreprogress", formLayout, new String[]{"xx"}, new String[]{null}, 1); if (isAssessment || isSelfTest) { displayScoreProgress.select("xx", confEnableScoreProgress); @@ -274,7 +274,7 @@ public class IQ12EditForm extends FormBasicController { if (configKeyType != null && configKeyType.equals(AssessmentInstance.QMD_ENTRY_TYPE_ASSESS)) confEnableCancel = false; } - enableCancel = uifactory.addCheckboxesVertical("qti_enableCancel", "qti.form.enablecancel", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + enableCancel = uifactory.addCheckboxesVertical("qti_enableCancel", "qti.form.enablecancel", formLayout, new String[]{"xx"}, new String[]{null}, 1); enableCancel.select("xx", confEnableCancel); if (isSelfTest) { @@ -286,7 +286,7 @@ public class IQ12EditForm extends FormBasicController { // enable suspend Boolean bEnableSuspend = (Boolean)modConfig.get(IQEditController.CONFIG_KEY_ENABLESUSPEND); boolean confEnableSuspend = (bEnableSuspend != null) ? bEnableSuspend.booleanValue() : false; - enableSuspend = uifactory.addCheckboxesVertical("qti_enableSuspend", "qti.form.enablesuspend", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + enableSuspend = uifactory.addCheckboxesVertical("qti_enableSuspend", "qti.form.enablesuspend", formLayout, new String[]{"xx"}, new String[]{null}, 1); enableSuspend.select("xx", confEnableSuspend); uifactory.addSpacerElement("s2", formLayout, true); @@ -294,7 +294,7 @@ public class IQ12EditForm extends FormBasicController { //Show score infos on start page Boolean bEnableScoreInfos = (Boolean)modConfig.get(IQEditController.CONFIG_KEY_ENABLESCOREINFO); boolean enableScoreInfos = (bEnableScoreInfos != null) ? bEnableScoreInfos.booleanValue() : true; - scoreInfo = uifactory.addCheckboxesVertical("qti_scoreInfo", "qti.form.scoreinfo", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + scoreInfo = uifactory.addCheckboxesVertical("qti_scoreInfo", "qti.form.scoreinfo", formLayout, new String[]{"xx"}, new String[]{null}, 1); scoreInfo.select("xx", enableScoreInfos); if (isAssessment || isSelfTest) { scoreInfo.select("xx", enableScoreInfos); @@ -313,7 +313,7 @@ public class IQ12EditForm extends FormBasicController { Boolean showResultOnHomePage = (Boolean) modConfig.get(IQEditController.CONFIG_KEY_RESULT_ON_HOME_PAGE); boolean confEnableShowResultOnHomePage = (showResultOnHomePage != null) ? showResultOnHomePage.booleanValue() : false; confEnableShowResultOnHomePage = !noSummary && confEnableShowResultOnHomePage; - showResultsOnHomePage = uifactory.addCheckboxesVertical("qti_enableResultsOnHomePage", "qti.form.results.onhomepage", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + showResultsOnHomePage = uifactory.addCheckboxesVertical("qti_enableResultsOnHomePage", "qti.form.results.onhomepage", formLayout, new String[]{"xx"}, new String[]{null}, 1); showResultsOnHomePage.select("xx", confEnableShowResultOnHomePage); showResultsOnHomePage.addActionListener(FormEvent.ONCLICK); showResultsOnHomePage.setVisible(!isSurvey); @@ -324,7 +324,7 @@ public class IQ12EditForm extends FormBasicController { showResultsDateDependent = showResultsActive.booleanValue(); } - showResultsDateDependentButton = uifactory.addCheckboxesVertical("qti_showresult", "qti.form.show.results", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + showResultsDateDependentButton = uifactory.addCheckboxesVertical("qti_showresult", "qti.form.show.results", formLayout, new String[]{"xx"}, new String[]{null}, 1); if (isAssessment || isSelfTest) { showResultsDateDependentButton.select("xx", showResultsDateDependent); showResultsDateDependentButton.addActionListener(FormEvent.ONCLICK); @@ -346,7 +346,7 @@ public class IQ12EditForm extends FormBasicController { Boolean showResultOnFinish = (Boolean) modConfig.get(IQEditController.CONFIG_KEY_RESULT_ON_FINISH); boolean confEnableShowResultOnFinish = (showResultOnFinish != null) ? showResultOnFinish.booleanValue() : true; confEnableShowResultOnFinish = !noSummary && confEnableShowResultOnFinish; - showResultsAfterFinishTest = uifactory.addCheckboxesVertical("qti_enableResultsOnFinish", "qti.form.results.onfinish", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + showResultsAfterFinishTest = uifactory.addCheckboxesVertical("qti_enableResultsOnFinish", "qti.form.results.onfinish", formLayout, new String[]{"xx"}, new String[]{null}, 1); showResultsAfterFinishTest.select("xx", confEnableShowResultOnFinish); showResultsAfterFinishTest.addActionListener(FormEvent.ONCLICK); showResultsAfterFinishTest.setVisible(!isSurvey); diff --git a/src/main/java/org/olat/course/nodes/iq/IQSELFCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/iq/IQSELFCourseNodeConfiguration.java index 5472adaaa3edd75678a57141fe46b6bcc12d1966..df4a04aeb570c3cca0c7370d57e257359763ac61 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQSELFCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/iq/IQSELFCourseNodeConfiguration.java @@ -32,46 +32,43 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.IQSELFCourseNode; /** * * Description:<br> * TODO: guido Class Description for IQSELFCourseNodeConfiguration */ -public class IQSELFCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class IQSELFCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private IQSELFCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new IQSELFCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_iqself"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_iqself_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "iqself"; } + + @Override + public String getGroup() { + return CourseNodeGroup.test.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/iq/IQSURVCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/iq/IQSURVCourseNodeConfiguration.java index 91c2aab13436af1ab8edaa299cad93945110e635..95e4e0b8a3ddb4fc216a919e8271483cc8337d06 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQSURVCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/iq/IQSURVCourseNodeConfiguration.java @@ -32,46 +32,43 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.IQSURVCourseNode; /** * * Description:<br> * TODO: guido Class Description for IQSURVCourseNodeConfiguration */ -public class IQSURVCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class IQSURVCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private IQSURVCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new IQSURVCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_iqsurv"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_iqsurv_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "iqsurv"; } + + @Override + public String getGroup() { + return CourseNodeGroup.test.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/iq/IQTESTCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/iq/IQTESTCourseNodeConfiguration.java index 75a556a455c23009053a324fbd7ced28f2aacbf6..f284229b368575dee5dfabcfc550d6a39576a507 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQTESTCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/iq/IQTESTCourseNodeConfiguration.java @@ -32,13 +32,14 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.IQTESTCourseNode; /** * * Description:<br> * */ -public class IQTESTCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class IQTESTCourseNodeConfiguration extends AbstractCourseNodeConfiguration { /** * [spring] @@ -46,36 +47,31 @@ public class IQTESTCourseNodeConfiguration extends AbstractCourseNodeConfigurati private IQTESTCourseNodeConfiguration() { super(); } - + + @Override public CourseNode getInstance() { return new IQTESTCourseNode(); } - - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_iqtest"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_iqtest_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "iqtest"; } + + @Override + public String getGroup() { + return CourseNodeGroup.test.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/members/MembersCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/members/MembersCourseNodeConfiguration.java index fc714f815e79b406c8928655a96689c8ad7aa2ae..f03bd0230feb502ecd1493092adf317107c8ed97 100644 --- a/src/main/java/org/olat/course/nodes/members/MembersCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/members/MembersCourseNodeConfiguration.java @@ -26,6 +26,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.MembersCourseNode; /** @@ -37,7 +38,7 @@ import org.olat.course.nodes.MembersCourseNode; * Initial Date: 11 mars 2011 <br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class MembersCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class MembersCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private MembersCourseNodeConfiguration() { super(); @@ -47,6 +48,11 @@ public class MembersCourseNodeConfiguration extends AbstractCourseNodeConfigurat public String getAlias() { return "cmembers"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } @Override public CourseNode getInstance() { @@ -64,9 +70,4 @@ public class MembersCourseNodeConfiguration extends AbstractCourseNodeConfigurat public String getIconCSSClass() { return "o_cmembers_icon"; } - - @Override - public String getLinkCSSClass() { - return null; - } } diff --git a/src/main/java/org/olat/course/nodes/ms/MSCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/ms/MSCourseNodeConfiguration.java index edaf45cd7f4ab8c4abd5f09f0bfbc70b138f4705..171a36226166a991864a2edf2af9c769308f1fcc 100644 --- a/src/main/java/org/olat/course/nodes/ms/MSCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/ms/MSCourseNodeConfiguration.java @@ -32,6 +32,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.MSCourseNode; /** * @@ -39,40 +40,36 @@ import org.olat.course.nodes.MSCourseNode; * TODO: guido Class Description for MSCourseNodeConfiguration * */ -public class MSCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class MSCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private MSCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new MSCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_ms"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_ms_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "ms"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/ms/MSEditFormController.java b/src/main/java/org/olat/course/nodes/ms/MSEditFormController.java index 88af97be4fa0b98f9571a0c3d5049e91d188dfe7..a319063f71c19eb1023ed90385d35e77a94c3fa1 100644 --- a/src/main/java/org/olat/course/nodes/ms/MSEditFormController.java +++ b/src/main/java/org/olat/course/nodes/ms/MSEditFormController.java @@ -149,7 +149,7 @@ public class MSEditFormController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { // Create the "score granted" field... - scoreGranted = uifactory.addCheckboxesVertical("form.score", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + scoreGranted = uifactory.addCheckboxesVertical("form.score", formLayout, new String[]{"xx"}, new String[]{null}, 1); scoreGranted.addActionListener(FormEvent.ONCLICK); Boolean sf = (Boolean) modConfig.get(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD); scoreGranted.select("xx", sf == null ? false : sf.booleanValue()); @@ -175,7 +175,7 @@ public class MSEditFormController extends FormBasicController { uifactory.addSpacerElement("spacer1", formLayout, false); // Create the "display passed / failed" - displayPassed = uifactory.addCheckboxesVertical("form.passed", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + displayPassed = uifactory.addCheckboxesVertical("form.passed", formLayout, new String[]{"xx"}, new String[]{null}, 1); displayPassed.addActionListener(FormEvent.ONCLICK); Boolean pf = (Boolean) modConfig.get(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD); if (pf == null) pf = Boolean.TRUE; @@ -201,7 +201,7 @@ public class MSEditFormController extends FormBasicController { uifactory.addSpacerElement("spacer2", formLayout, false); // Create the "individual comment" dropdown. - commentFlag = uifactory.addCheckboxesVertical("form.comment", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + commentFlag = uifactory.addCheckboxesVertical("form.comment", formLayout, new String[]{"xx"}, new String[]{null}, 1); Boolean cf = (Boolean) modConfig.get(MSCourseNode.CONFIG_KEY_HAS_COMMENT_FIELD); if (cf == null) cf = Boolean.TRUE; commentFlag.select("xx", cf.booleanValue()); diff --git a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsCourseNodeConfiguration.java index 5604e7c2ca876cf947e522f3212b0f20357de1a4..fbe3f7c516124fe6cb7ce04eab075ea416900631 100644 --- a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsCourseNodeConfiguration.java @@ -27,6 +27,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.OpenMeetingsCourseNode; import org.olat.modules.openmeetings.OpenMeetingsModule; @@ -39,24 +40,28 @@ import org.olat.modules.openmeetings.OpenMeetingsModule; * * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class OpenMeetingsCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class OpenMeetingsCourseNodeConfiguration extends AbstractCourseNodeConfiguration { + @Override public String getAlias() { return "openmeetings"; } + + @Override + public String getGroup() { + return CourseNodeGroup.virtualClassroom.name(); + } + @Override public String getIconCSSClass() { return "o_openmeetings_icon"; } + @Override public CourseNode getInstance() { return new OpenMeetingsCourseNode(); } - public String getLinkCSSClass() { - return "o_openmeetings_icon"; - } - public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); @@ -68,8 +73,4 @@ public class OpenMeetingsCourseNodeConfiguration extends AbstractCourseNodeConfi OpenMeetingsModule module = CoreSpringFactory.getImpl(OpenMeetingsModule.class); return module.isEnabled(); } - - public String getName() { - return getAlias(); - } } \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java index 3d0fcb1f868d45a5ee37ba1c7e358653d5d69185..1bfb55dec915fec33b22347c130c6fbac3e4e627 100644 --- a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java +++ b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java @@ -105,7 +105,7 @@ public class OpenMeetingsEditFormController extends FormBasicController { roomSizeEl = uifactory.addStaticTextElement("room.size", "room.size", "", formLayout); moderationModeEl = uifactory.addStaticTextElement("mod", "room.moderation.mode", "", formLayout); String[] recordingValues = new String[]{ translate("room.recording.enabled") }; - recordingEl = uifactory.addCheckboxesHorizontal("recording", "room.recording", formLayout, recordingKeys, recordingValues, null); + recordingEl = uifactory.addCheckboxesHorizontal("recording", "room.recording", formLayout, recordingKeys, recordingValues); recordingEl.setEnabled(false); roomCommentEl = uifactory.addStaticTextElement("room.comment", "room.comment", "", formLayout); diff --git a/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeConfiguration.java index f78632d2b38655d098badec922432c6891f4c3f8..edce11448e64811e8a4f966fe2e6919472037d9c 100644 --- a/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeConfiguration.java @@ -28,6 +28,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.PortfolioCourseNode; import org.olat.portfolio.PortfolioModule; @@ -40,7 +41,7 @@ import org.olat.portfolio.PortfolioModule; * Initial Date: 6 oct. 2010 <br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class PortfolioCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class PortfolioCourseNodeConfiguration extends AbstractCourseNodeConfiguration { public static final String MAP_KEY = "map-key"; public static final String REPO_SOFT_KEY = "repo-soft-key"; @@ -63,6 +64,11 @@ public class PortfolioCourseNodeConfiguration extends AbstractCourseNodeConfigur public String getAlias() { return "ep"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } @Override public CourseNode getInstance() { @@ -81,11 +87,6 @@ public class PortfolioCourseNodeConfiguration extends AbstractCourseNodeConfigur return "o_ep_icon"; } - @Override - public String getLinkCSSClass() { - return null; - } - /** * @see org.olat.core.configuration.AbstractConfigOnOff#isEnabled() */ diff --git a/src/main/java/org/olat/course/nodes/projectbroker/CustomfieldsFormController.java b/src/main/java/org/olat/course/nodes/projectbroker/CustomfieldsFormController.java index f44b692bfe3a445e178d037dce223f04e3469ba6..5ea3eecd240be584cdd5739996b2339f15000614 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/CustomfieldsFormController.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/CustomfieldsFormController.java @@ -183,7 +183,7 @@ public class CustomfieldsFormController extends FormBasicController { if (i == 0) valueElement.setExampleKey("customfield.example.value", null); customFieldValueElementList.add(valueElement); - MultipleSelectionElement tableEnabledElement = uifactory.addCheckboxesHorizontal("customfield.table.enabled." + i, null, formLayout, keys, values, null); + MultipleSelectionElement tableEnabledElement = uifactory.addCheckboxesHorizontal("customfield.table.enabled." + i, null, formLayout, keys, values); tableEnabledElement.select(keys[0], customField.isTableViewEnabled()); customFieldTableFlagElementList.add(tableEnabledElement); diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ModulesFormController.java b/src/main/java/org/olat/course/nodes/projectbroker/ModulesFormController.java index 5f2c46afc6fef1ac1f501b091c6c7e863a8bbcbf..811e1d3a578957b1b4baa0ceac81c97337022582 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/ModulesFormController.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/ModulesFormController.java @@ -66,7 +66,7 @@ public class ModulesFormController extends FormBasicController { //create form elements final Boolean dropboxEnabled = (Boolean)config.get(ProjectBrokerCourseNode.CONF_DROPBOX_ENABLED); - selectionDropbox = uifactory.addCheckboxesVertical("dropbox", "form.modules.dropbox", formLayout, keys, values, null, 1); + selectionDropbox = uifactory.addCheckboxesVertical("dropbox", "form.modules.dropbox", formLayout, keys, values, 1); selectionDropbox.select(keys[0], dropboxEnabled); selectionDropbox.addActionListener(FormEvent.ONCLICK); @@ -81,7 +81,7 @@ public class ModulesFormController extends FormBasicController { if (returnboxEnabled == null) { returnboxEnabled = Boolean.TRUE; } - selectionReturnbox = uifactory.addCheckboxesVertical("returnbox", "form.modules.returnbox", formLayout, keys, values, null, 1); + selectionReturnbox = uifactory.addCheckboxesVertical("returnbox", "form.modules.returnbox", formLayout, keys, values, 1); selectionReturnbox.select(keys[0], returnboxEnabled); selectionReturnbox.addActionListener(FormEvent.ONCLICK); } diff --git a/src/main/java/org/olat/course/nodes/projectbroker/OptionsFormController.java b/src/main/java/org/olat/course/nodes/projectbroker/OptionsFormController.java index 4c33149a20f392cdc36e09d4914a6304c82c5152..98147276d5c69b47c3f7ce5d52e5a38ae0453bac 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/OptionsFormController.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/OptionsFormController.java @@ -87,7 +87,7 @@ public class OptionsFormController extends FormBasicController { //create form elements int nbrOfParticipantsValue = config.getNbrParticipantsPerTopic(); - selectionLimitedAttendees = uifactory.addCheckboxesHorizontal("form.options.number.of.topics.per.participant", formLayout, keys, values,null); + selectionLimitedAttendees = uifactory.addCheckboxesHorizontal("form.options.number.of.topics.per.participant", formLayout, keys, values); nbrOfAttendees = uifactory.addIntegerElement("form.options.number.of.participants.per.topic_nbr", nbrOfParticipantsValue, formLayout); nbrOfAttendees.setMinValueCheck(0, null); nbrOfAttendees.setDisplaySize(3); @@ -101,12 +101,12 @@ public class OptionsFormController extends FormBasicController { selectionLimitedAttendees.addActionListener(FormEvent.ONCLICK); final Boolean selectionAcceptValue = config.isAcceptSelectionManually(); - selectionAccept = uifactory.addCheckboxesVertical("form.options.selection.accept", formLayout, keys, values, null, 1); + selectionAccept = uifactory.addCheckboxesVertical("form.options.selection.accept", formLayout, keys, values, 1); selectionAccept.select(keys[0], selectionAcceptValue); selectionAccept.addActionListener(FormEvent.ONCLICK); final Boolean autoSignOut = config.isAutoSignOut(); - selectionAutoSignOut = uifactory.addCheckboxesVertical("form.options.auto.sign.out", formLayout, keys, values, null, 1); + selectionAutoSignOut = uifactory.addCheckboxesVertical("form.options.auto.sign.out", formLayout, keys, values, 1); selectionAutoSignOut.select(keys[0], autoSignOut); // enable auto-sign-out only when 'accept-selection' is enabled selectionAutoSignOut.setVisible(selectionAcceptValue); diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerNodeConfiguration.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerNodeConfiguration.java index 04aa8b5749afe3d3e48ea05e955c86ab14875900..11858dc05912694c964a65e84121515a824ef640 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerNodeConfiguration.java @@ -32,45 +32,38 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.ProjectBrokerCourseNode; /** * @author guretzki */ -public class ProjectBrokerNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { - - public ProjectBrokerNodeConfiguration() { - super(); - } +public class ProjectBrokerNodeConfiguration extends AbstractCourseNodeConfiguration { + @Override public CourseNode getInstance() { return new ProjectBrokerCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_projectbroker"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_projectbroker_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "projectbroker"; } + + @Override + public String getGroup() { + return CourseNodeGroup.other.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java index 5aa3de9e8261f428475e43719ebc6a6753c66be8..c1f781f31be494d9b088beb34773b0be5dfaba9d 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java @@ -206,7 +206,7 @@ public class ProjectEditDetailsFormController extends FormBasicController { } else { keyDetailsformMax = "detailsform.max.members.label"; } - selectionMaxMembers = uifactory.addCheckboxesHorizontal(keyDetailsformMax, formLayout, keys, values,null); + selectionMaxMembers = uifactory.addCheckboxesHorizontal(keyDetailsformMax, formLayout, keys, values); maxMembers = uifactory.addIntegerElement("form.options.number.of.participants.per.topic_nbr", project.getMaxMembers(), formLayout); maxMembers.setMinValueCheck(0, null); maxMembers.setDisplaySize(3); @@ -301,7 +301,7 @@ public class ProjectEditDetailsFormController extends FormBasicController { } attachmentFileName.addActionListener(FormEvent.ONCHANGE); - mailNotification = uifactory.addCheckboxesHorizontal("detailsform.mail.notification.label", formLayout, keys, values, null); + mailNotification = uifactory.addCheckboxesHorizontal("detailsform.mail.notification.label", formLayout, keys, values); mailNotification.select(keys[0], project.isMailNotificationEnabled()); FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttonGroupLayout", getTranslator()); diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventFormController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventFormController.java index 7a5fd7defecbbe218716451cbc8e8b6fd72eb531..e1f65dd93b6c5a59f92e0035ae8a29d31650dee6 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventFormController.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventFormController.java @@ -79,7 +79,7 @@ public class ProjectEventFormController extends FormBasicController { String[] values = new String[] { translate(eventType.getI18nKey() + ".label"), translate(KEY_EVENT_TABLE_VIEW_ENABLED) }; boolean isEventEnabled = config.isProjectEventEnabled(eventType); boolean isTableViewEnabled = config.isProjectEventTableViewEnabled(eventType); - MultipleSelectionElement projectEventElement = uifactory.addCheckboxesVertical(eventType.toString(), null, formLayout, keys, values, null, 1); + MultipleSelectionElement projectEventElement = uifactory.addCheckboxesVertical(eventType.toString(), null, formLayout, keys, values, 1); projectEventElement.select(keys[0], isEventEnabled); projectEventElement.setVisible(keys[1], isEventEnabled); projectEventElement.select(keys[1], isTableViewEnabled); diff --git a/src/main/java/org/olat/course/nodes/scorm/ScormCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/scorm/ScormCourseNodeConfiguration.java index 107fd854a48700bef4aeb758175f6949d979f145..0cd4ea24acbcabd80532f76ff781045b7706f0d2 100644 --- a/src/main/java/org/olat/course/nodes/scorm/ScormCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/scorm/ScormCourseNodeConfiguration.java @@ -32,6 +32,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.ScormCourseNode; /** @@ -40,46 +41,36 @@ import org.olat.course.nodes.ScormCourseNode; * * @author guido */ -public class ScormCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class ScormCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private ScormCourseNodeConfiguration() { super(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getInstance() - */ + @Override public CourseNode getInstance() { return new ScormCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_scorm"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getIconCSSClass() - */ + @Override public String getIconCSSClass() { return "o_scorm_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getAlias() - */ + @Override public String getAlias() { return "scorm"; } + + @Override + public String getGroup() { + return CourseNodeGroup.test.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/scorm/ScormEditController.java b/src/main/java/org/olat/course/nodes/scorm/ScormEditController.java index 4c7b9da92ae930c9c3b0e358bbc0cfe24e3469d9..cb8d79468a7fe7807388267a6c5348bb7622cf78 100644 --- a/src/main/java/org/olat/course/nodes/scorm/ScormEditController.java +++ b/src/main/java/org/olat/course/nodes/scorm/ScormEditController.java @@ -520,19 +520,19 @@ class VarForm extends FormBasicController { setFormTitle("headerform"); setFormContextHelp("org.olat.course.nodes.scorm","ced-scorm-settings.html","help.hover.scorm-settings-filename"); - showMenuEl = uifactory.addCheckboxesVertical("showmenu", "showmenu.label", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + showMenuEl = uifactory.addCheckboxesVertical("showmenu", "showmenu.label", formLayout, new String[]{"xx"}, new String[]{null}, 1); showMenuEl.select("xx", showMenu); - skipLaunchPageEl = uifactory.addCheckboxesVertical("skiplaunchpage", "skiplaunchpage.label", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + skipLaunchPageEl = uifactory.addCheckboxesVertical("skiplaunchpage", "skiplaunchpage.label", formLayout, new String[]{"xx"}, new String[]{null}, 1); skipLaunchPageEl.select("xx", skipLaunchPage); - showNavButtonsEl = uifactory.addCheckboxesVertical("shownavbuttons", "shownavbuttons.label", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + showNavButtonsEl = uifactory.addCheckboxesVertical("shownavbuttons", "shownavbuttons.label", formLayout, new String[]{"xx"}, new String[]{null}, 1); showNavButtonsEl.select("xx", showNavButtons); //fxdiff FXOLAT-116: SCORM improvements - fullWindowEl = uifactory.addCheckboxesVertical("fullwindow", "fullwindow.label", formLayout, new String[]{"fullwindow"}, new String[]{null}, null, 1); + fullWindowEl = uifactory.addCheckboxesVertical("fullwindow", "fullwindow.label", formLayout, new String[]{"fullwindow"}, new String[]{null}, 1); fullWindowEl.select("fullwindow", fullWindow); - closeOnFinishEl = uifactory.addCheckboxesVertical("closeonfinish", "closeonfinish.label", formLayout, new String[]{"closeonfinish"}, new String[]{null}, null, 1); + closeOnFinishEl = uifactory.addCheckboxesVertical("closeonfinish", "closeonfinish.label", formLayout, new String[]{"closeonfinish"}, new String[]{null}, 1); closeOnFinishEl.select("closeonfinish", closeOnFinish); isAssessableEl = uifactory.addRadiosVertical("isassessable", "assessable.label", formLayout, assessableKeys, assessableValues); @@ -550,7 +550,7 @@ class VarForm extends FormBasicController { // <OLATCE-289> isAssessableEl.addActionListener(FormEvent.ONCHANGE); - advanceScoreEl = uifactory.addCheckboxesVertical("advanceScore", "advance.score.label", formLayout, new String[]{"ison"}, new String[]{null}, null, 1); + advanceScoreEl = uifactory.addCheckboxesVertical("advanceScore", "advance.score.label", formLayout, new String[]{"ison"}, new String[]{null}, 1); advanceScoreEl.select("ison", advanceScore); advanceScoreEl.addActionListener(FormEvent.ONCHANGE); @@ -564,7 +564,7 @@ class VarForm extends FormBasicController { RulesFactory.createShowRule(isAssessableEl, assessableKeys[1], cutValueEl, formLayout); RulesFactory.createHideRule(isAssessableEl, assessableKeys[2], cutValueEl, formLayout); - scoreAttemptsEl = uifactory.addCheckboxesVertical("scoreAttempts", "attempts.depends.label", formLayout, new String[]{"ison"}, new String[]{null}, null, 1); + scoreAttemptsEl = uifactory.addCheckboxesVertical("scoreAttempts", "attempts.depends.label", formLayout, new String[]{"ison"}, new String[]{null}, 1); scoreAttemptsEl.select("ison", scoreAttempts); scoreAttemptsEl.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/org/olat/course/nodes/sp/SPCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/sp/SPCourseNodeConfiguration.java index 9bca068b194800d2d3278f07b3e41ebd91a2c33e..9085d31c2bc8a15ab5d61adb9353793664e774f2 100644 --- a/src/main/java/org/olat/course/nodes/sp/SPCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/sp/SPCourseNodeConfiguration.java @@ -32,46 +32,43 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.SPCourseNode; /** * * Description:<br> * TODO: guido Class Description for SPCourseNodeConfiguration */ -public class SPCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class SPCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private SPCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new SPCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_sp"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_sp_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "sp"; } + + @Override + public String getGroup() { + return CourseNodeGroup.content.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/st/EditScoreCalculationEasyForm.java b/src/main/java/org/olat/course/nodes/st/EditScoreCalculationEasyForm.java index 1c81e1b599487b835b9380884695b5c6cf801967..1aa81717dc949911dd734ce348560fc70752ffe4 100644 --- a/src/main/java/org/olat/course/nodes/st/EditScoreCalculationEasyForm.java +++ b/src/main/java/org/olat/course/nodes/st/EditScoreCalculationEasyForm.java @@ -236,7 +236,7 @@ public class EditScoreCalculationEasyForm extends FormBasicController { nodeValues[allNodesList.size()] = translate("scform.deletedNode"); } - MultipleSelectionElement mse = uifactory.addCheckboxesVertical(elemId, formLayout, nodeKeys, nodeValues, null, 2); + MultipleSelectionElement mse = uifactory.addCheckboxesVertical(elemId, formLayout, nodeKeys, nodeValues, 2); // preselect nodes from configuration if (scoreCalculator != null && selectedNodeList != null) { for (Iterator<String> iter = selectedNodeList.iterator(); iter.hasNext();) { @@ -281,7 +281,7 @@ public class EditScoreCalculationEasyForm extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - hasScore = uifactory.addCheckboxesHorizontal("scform.hasScore", formLayout, new String[]{"xx"}, new String[]{null}, null); + hasScore = uifactory.addCheckboxesHorizontal("scform.hasScore", formLayout, new String[]{"xx"}, new String[]{null}); hasScore.select("xx", sc != null && sc.getSumOfScoreNodes() != null && sc.getSumOfScoreNodes().size() > 0); hasScore.addActionListener(FormEvent.ONCLICK); // Radios/Checkboxes need onclick because of IE bug OLAT-5753 @@ -292,7 +292,7 @@ public class EditScoreCalculationEasyForm extends FormBasicController { uifactory.addSpacerElement("spacer", formLayout, false); - hasPassed = uifactory.addCheckboxesHorizontal("scform.passedtype", formLayout, new String[]{"xx"}, new String[]{null}, null); + hasPassed = uifactory.addCheckboxesHorizontal("scform.passedtype", formLayout, new String[]{"xx"}, new String[]{null}); hasPassed.select("xx", sc != null && sc.getPassedType() != null && !sc.getPassedType().equals(ScoreCalculator.PASSED_TYPE_NONE)); hasPassed.addActionListener(FormEvent.ONCLICK); // Radios/Checkboxes need onclick because of IE bug OLAT-5753 diff --git a/src/main/java/org/olat/course/nodes/st/STCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/st/STCourseNodeConfiguration.java index 64be991d1fd63470efc9740fcb1c4a2738e5fe83..e706ad02d4a8ef0385209f82b55330e0361bda28 100644 --- a/src/main/java/org/olat/course/nodes/st/STCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/st/STCourseNodeConfiguration.java @@ -33,6 +33,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.STCourseNode; /** * @@ -40,43 +41,39 @@ import org.olat.course.nodes.STCourseNode; * TODO: guido Class Description for STCourseNodeConfiguration * */ -public class STCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class STCourseNodeConfiguration extends AbstractCourseNodeConfiguration { transient public static int MAX_PEEKVIEW_CHILD_NODES = 10; // default 10 private STCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new STCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_st"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_st_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "st"; } + + @Override + public String getGroup() { + return CourseNodeGroup.content.name(); + } /** * Spring setter method to configure the maximum number of selectable child diff --git a/src/main/java/org/olat/course/nodes/st/STCourseNodeDisplayConfigFormController.java b/src/main/java/org/olat/course/nodes/st/STCourseNodeDisplayConfigFormController.java index 49131cd36a37596fa1a67fc1a77f76d8889eaf55..7fe7d3b81b6029766735488d918716559510fb7c 100644 --- a/src/main/java/org/olat/course/nodes/st/STCourseNodeDisplayConfigFormController.java +++ b/src/main/java/org/olat/course/nodes/st/STCourseNodeDisplayConfigFormController.java @@ -94,7 +94,7 @@ public class STCourseNodeDisplayConfigFormController extends FormBasicController CourseEditorTreeNode child = node.getCourseEditorTreeNodeChildAt(i); selectedPeekviewChildKeys[i] = child.getIdent(); selectedPeekviewChildValues[i] = child.getTitle() + " (" + child.getIdent() + ")"; - selectedPeekviewChildCssClasses[i] = child.getIconCssClass() + " b_with_small_icon_left"; + selectedPeekviewChildCssClasses[i] = "o_icon " + child.getIconCssClass(); } selectedPeekviewChildNodesConfig = config.getStringValue(STCourseNodeEditController.CONFIG_KEY_PEEKVIEW_CHILD_NODES, ""); // initialize the form now @@ -169,7 +169,7 @@ public class STCourseNodeDisplayConfigFormController extends FormBasicController // Number of rows (only available in system or peekview type) SpacerElement spacerCols = formFact.addSpacerElement("spacerCols", formLayout, true); displayTwoColumns = formFact - .addCheckboxesVertical("displayTwoColumns", formLayout, new String[] { "on" }, new String[] { "" }, null, 1); + .addCheckboxesVertical("displayTwoColumns", formLayout, new String[] { "on" }, new String[] { "" }, 1); displayTwoColumns.setLabel("displayTwoColumns", null); displayTwoColumns.addActionListener(FormEvent.ONCLICK); if (columnsConfig == 2) { diff --git a/src/main/java/org/olat/course/nodes/ta/DropboxForm.java b/src/main/java/org/olat/course/nodes/ta/DropboxForm.java index 9b090094258f85c114e6e3c9936353be78766847..e8421d07e7b367d0dbd45eb21a2da08f3efa9fee 100644 --- a/src/main/java/org/olat/course/nodes/ta/DropboxForm.java +++ b/src/main/java/org/olat/course/nodes/ta/DropboxForm.java @@ -113,7 +113,7 @@ public class DropboxForm extends FormBasicController { Boolean enableMail = (Boolean)config.get(TACourseNode.CONF_DROPBOX_ENABLEMAIL); confirmation.setMandatory(enableMail); - enablemail = uifactory.addCheckboxesVertical("enablemail", "form.dropbox.enablemail", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + enablemail = uifactory.addCheckboxesVertical("enablemail", "form.dropbox.enablemail", formLayout, new String[]{"xx"}, new String[]{null}, 1); enablemail.select("xx", enableMail != null ? enableMail.booleanValue() : true); enablemail.addActionListener(FormEvent.ONCLICK); diff --git a/src/main/java/org/olat/course/nodes/ta/ModulesForm.java b/src/main/java/org/olat/course/nodes/ta/ModulesForm.java index 378a1d7bb4fa6c911cb6a8304190ce68a466412f..c4e6c217eedb94cc477b28697dad8945c8a03a3f 100644 --- a/src/main/java/org/olat/course/nodes/ta/ModulesForm.java +++ b/src/main/java/org/olat/course/nodes/ta/ModulesForm.java @@ -92,11 +92,11 @@ public class ModulesForm extends FormBasicController { setFormTitle("form.modules.title"); setFormContextHelp("org.olat.course.nodes.ta","ced-ta-select.html","help.hover.ta-module"); - task = uifactory.addCheckboxesVertical("task", "form.modules.task", formLayout, new String[]{"xx"}, new String[]{""}, null, 1); - dropbox = uifactory.addCheckboxesVertical("dropbox", "form.modules.dropbox", formLayout, new String[]{"xx"}, new String[]{""}, null, 1); - returnbox = uifactory.addCheckboxesVertical("returnbox", "form.modules.returnbox", formLayout, new String[]{"xx"}, new String[]{""}, null, 1); - scoring = uifactory.addCheckboxesVertical("scoring", "form.modules.scoring", formLayout, new String[]{"xx"}, new String[]{""}, null, 1); - solution = uifactory.addCheckboxesVertical("solution", "form.modules.sample", formLayout, new String[]{"xx"}, new String[]{""}, null, 1); + task = uifactory.addCheckboxesVertical("task", "form.modules.task", formLayout, new String[]{"xx"}, new String[]{""}, 1); + dropbox = uifactory.addCheckboxesVertical("dropbox", "form.modules.dropbox", formLayout, new String[]{"xx"}, new String[]{""}, 1); + returnbox = uifactory.addCheckboxesVertical("returnbox", "form.modules.returnbox", formLayout, new String[]{"xx"}, new String[]{""}, 1); + scoring = uifactory.addCheckboxesVertical("scoring", "form.modules.scoring", formLayout, new String[]{"xx"}, new String[]{""}, 1); + solution = uifactory.addCheckboxesVertical("solution", "form.modules.sample", formLayout, new String[]{"xx"}, new String[]{""}, 1); Boolean cv; diff --git a/src/main/java/org/olat/course/nodes/ta/TACourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/ta/TACourseNodeConfiguration.java index 238f67f95b6ef27e11a5a77b9b2bc5a3bb2f3d38..7bd919ff7360146d03afcb5f10efbc590000a1ba 100644 --- a/src/main/java/org/olat/course/nodes/ta/TACourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/ta/TACourseNodeConfiguration.java @@ -32,45 +32,42 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.TACourseNode; /** * Course-node-configuration for task-node */ -public class TACourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class TACourseNodeConfiguration extends AbstractCourseNodeConfiguration { private TACourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new TACourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_ta"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_ta_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "ta"; } + + @Override + public String getGroup() { + return CourseNodeGroup.test.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/tu/TUConfigForm.java b/src/main/java/org/olat/course/nodes/tu/TUConfigForm.java index 3999ea07c922564ee5c7aa7a9ef4e72b283b4ca2..60938e3af1b581219d78f49b6e15453b34a157cd 100644 --- a/src/main/java/org/olat/course/nodes/tu/TUConfigForm.java +++ b/src/main/java/org/olat/course/nodes/tu/TUConfigForm.java @@ -273,7 +273,7 @@ public class TUConfigForm extends FormBasicController { selectables.select(loadedConfig, true); selectables.addActionListener(FormEvent.ONCLICK); - checkboxPagePasswordProtected = uifactory.addCheckboxesVertical("checkbox", "TUConfigForm.protected", formLayout, new String[] { "ison" }, new String[] { "" }, null, 1); + checkboxPagePasswordProtected = uifactory.addCheckboxesVertical("checkbox", "TUConfigForm.protected", formLayout, new String[] { "ison" }, new String[] { "" }, 1); checkboxPagePasswordProtected.select("ison", (user != null) && !user.equals("")); // register for on click event to hide/disable other elements diff --git a/src/main/java/org/olat/course/nodes/tu/TUCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/tu/TUCourseNodeConfiguration.java index 11a9d2873f690edd5979dbd3dbeb5d78722583bf..9148f7eaeb54ebcb5f7cd6d9624d76ce8e645074 100644 --- a/src/main/java/org/olat/course/nodes/tu/TUCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/tu/TUCourseNodeConfiguration.java @@ -32,13 +32,14 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.TUCourseNode; /** * Description:<br> * TODO: guido Class Description for TUCourseNodeConfiguration */ -public class TUCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class TUCourseNodeConfiguration extends AbstractCourseNodeConfiguration { /** * [spring only] @@ -48,34 +49,30 @@ public class TUCourseNodeConfiguration extends AbstractCourseNodeConfiguration i super(); } + @Override public CourseNode getInstance() { return new TUCourseNode(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_tu"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return "o_tu_icon"; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return "tu"; } + + @Override + public String getGroup() { + return CourseNodeGroup.content.name(); + } } diff --git a/src/main/java/org/olat/course/nodes/vitero/ViteroCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/vitero/ViteroCourseNodeConfiguration.java index 49f593daf2b4e2e769ee0f74cfa9ec17699d9e97..b1f8f69014ce5bc3fa9c980cfcb9f0822c444c48 100644 --- a/src/main/java/org/olat/course/nodes/vitero/ViteroCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/vitero/ViteroCourseNodeConfiguration.java @@ -27,6 +27,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.ViteroCourseNode; import org.olat.modules.vitero.ViteroModule; @@ -39,24 +40,29 @@ import org.olat.modules.vitero.ViteroModule; * * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ -public class ViteroCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class ViteroCourseNodeConfiguration extends AbstractCourseNodeConfiguration { + @Override public String getAlias() { return "vitero"; } + @Override + public String getGroup() { + return CourseNodeGroup.virtualClassroom.name(); + } + + @Override public String getIconCSSClass() { return "o_vitero_icon"; } + @Override public CourseNode getInstance() { return new ViteroCourseNode(); } - public String getLinkCSSClass() { - return "o_vitero_icon"; - } - + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); @@ -68,8 +74,4 @@ public class ViteroCourseNodeConfiguration extends AbstractCourseNodeConfigurati ViteroModule viteroModule = CoreSpringFactory.getImpl(ViteroModule.class); return viteroModule.isEnabled(); } - - public String getName() { - return getAlias(); - } } \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java index 882ebecd30cd08844e2e4e5a96696d6f65ae7368..e96f86c1120d654230cfcb3e24b1cc0b3b676693 100644 --- a/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java +++ b/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java @@ -34,6 +34,7 @@ import org.olat.core.util.Util; import org.olat.course.nodes.AbstractCourseNodeConfiguration; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeGroup; import org.olat.course.nodes.WikiCourseNode; import org.olat.modules.wiki.Wiki; /** @@ -42,12 +43,13 @@ import org.olat.modules.wiki.Wiki; * Configuration of the wiki course node * */ -public class WikiCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { +public class WikiCourseNodeConfiguration extends AbstractCourseNodeConfiguration { private WikiCourseNodeConfiguration() { super(); } + @Override public CourseNode getInstance() { return new WikiCourseNode(); } @@ -57,30 +59,25 @@ public class WikiCourseNodeConfiguration extends AbstractCourseNodeConfiguration return CoreSpringFactory.getImpl(BaseSecurityModule.class).isWikiEnabled() && super.isEnabled(); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) - */ + @Override public String getLinkText(Locale locale) { Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); return translator.translate("title_wiki"); } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() - */ + @Override public String getIconCSSClass() { return Wiki.CSS_CLASS_WIKI_ICON; } - /** - * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() - */ - public String getLinkCSSClass() { - return null; - } - + @Override public String getAlias() { return WikiCourseNode.TYPE; } + + @Override + public String getGroup() { + return CourseNodeGroup.content.name(); + } } diff --git a/src/main/java/org/olat/course/site/ui/CourseSiteAdminController.java b/src/main/java/org/olat/course/site/ui/CourseSiteAdminController.java index be10f4ff807d147d4dc6e660639235efd4524b7e..f1101d908e22b78472ae18d97c7d4d84f4e62fc9 100644 --- a/src/main/java/org/olat/course/site/ui/CourseSiteAdminController.java +++ b/src/main/java/org/olat/course/site/ui/CourseSiteAdminController.java @@ -94,7 +94,7 @@ public class CourseSiteAdminController extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormTitle("admin.menu.title"); - enableToolbar = uifactory.addCheckboxesHorizontal("site.enable.toolbar", "site.enable.toolbar", formLayout, new String[]{ "x" }, new String[]{ "" }, null); + enableToolbar = uifactory.addCheckboxesHorizontal("site.enable.toolbar", "site.enable.toolbar", formLayout, new String[]{ "x" }, new String[]{ "" }); enableToolbar.addActionListener(FormEvent.ONCHANGE); if(siteConfiguration.isToolbar()) { enableToolbar.select("x", true); @@ -262,7 +262,7 @@ public class CourseSiteAdminController extends FormBasicController { null, 32, configuration.getTitle(), formLayout); formLayout.add("site.flexi.title.hook." + language, titleEl); defLangEl = uifactory.addCheckboxesHorizontal("site.def." + language, null, - formLayout, new String[]{ "x"}, new String[]{ "" }, null); + formLayout, new String[]{ "x"}, new String[]{ "" }); if(configuration.isDefaultConfiguration()) { defLangEl.select("x", true); diff --git a/src/main/java/org/olat/course/tree/InsertTreeModel.java b/src/main/java/org/olat/course/tree/InsertTreeModel.java index 7f255d0579866208ee3d2c8f7cd2dd0840304f71..62a5f5d64689e81fa8262909485c1a5116c736da 100644 --- a/src/main/java/org/olat/course/tree/InsertTreeModel.java +++ b/src/main/java/org/olat/course/tree/InsertTreeModel.java @@ -37,6 +37,7 @@ import org.olat.course.nodes.CourseNode; */ public class InsertTreeModel extends GenericTreeModel { + private static final long serialVersionUID = -3770001422175650965L; private int nodeCnt = -1; public InsertTreeModel(CourseEditorTreeModel cetm) { diff --git a/src/main/java/org/olat/group/ui/BusinessGroupFormController.java b/src/main/java/org/olat/group/ui/BusinessGroupFormController.java index 7b104165898cd7a6c7c4a70f5aaafdf98df18860..f9bc6c7cbd8978d1373309986e128831c7121c81 100644 --- a/src/main/java/org/olat/group/ui/BusinessGroupFormController.java +++ b/src/main/java/org/olat/group/ui/BusinessGroupFormController.java @@ -200,9 +200,9 @@ public class BusinessGroupFormController extends FormBasicController { // Checkboxes enableWaitingList = uifactory.addCheckboxesHorizontal("create.form.enableWaitinglist", null, formLayout, waitingListKeys, - waitingListValues, null); + waitingListValues); enableAutoCloseRanks = uifactory.addCheckboxesHorizontal("create.form.enableAutoCloseRanks", null, formLayout, autoCloseKeys, - autoCloseValues, null); + autoCloseValues); // Enable only if specification of min and max members is possible businessGroupMinimumMembers.setVisible(false); // currently the minimum feature is not enabled diff --git a/src/main/java/org/olat/group/ui/BusinessGroupModuleAdminController.java b/src/main/java/org/olat/group/ui/BusinessGroupModuleAdminController.java index 1778ee9071b535ede1a1a4ee3d7248684b4488b4..38a71fc465c13c66d25dfe130464b10cdd4d112a 100644 --- a/src/main/java/org/olat/group/ui/BusinessGroupModuleAdminController.java +++ b/src/main/java/org/olat/group/ui/BusinessGroupModuleAdminController.java @@ -84,7 +84,7 @@ public class BusinessGroupModuleAdminController extends FormBasicController impl translate("user.allow.create"), translate("author.allow.create") }; - allowEl = uifactory.addCheckboxesVertical("module.admin.allow.create", optionsContainer, onKeys, values, null, 1); + allowEl = uifactory.addCheckboxesVertical("module.admin.allow.create", optionsContainer, onKeys, values, 1); allowEl.select("user", module.isUserAllowedCreate()); allowEl.select("author", module.isAuthorAllowedCreate()); allowEl.addActionListener(FormEvent.ONCHANGE); @@ -93,12 +93,12 @@ public class BusinessGroupModuleAdminController extends FormBasicController impl formLayout.add(resourceAssignmentContainer); String[] courseValues = new String[]{ translate("module.resource.courses.grant") }; - assignCoursesEl = uifactory.addCheckboxesVertical("module.resource.courses", resourceAssignmentContainer, assignKeys, courseValues, null, 1); + assignCoursesEl = uifactory.addCheckboxesVertical("module.resource.courses", resourceAssignmentContainer, assignKeys, courseValues, 1); assignCoursesEl.select(assignKeys[0], module.isGroupManagersAllowedToLinkCourses()); assignCoursesEl.addActionListener(FormEvent.ONCHANGE); String[] groupValues = new String[]{ translate("module.resource.groups.grant") }; - assignGroupsEl = uifactory.addCheckboxesVertical("module.resource.groups", resourceAssignmentContainer, assignKeys, groupValues, null, 1); + assignGroupsEl = uifactory.addCheckboxesVertical("module.resource.groups", resourceAssignmentContainer, assignKeys, groupValues, 1); assignGroupsEl.select(assignKeys[0], module.isResourceManagersAllowedToLinkGroups()); assignGroupsEl.addActionListener(FormEvent.ONCHANGE); @@ -111,7 +111,7 @@ public class BusinessGroupModuleAdminController extends FormBasicController impl translate("enrolment.email.groupmanagers"), translate("enrolment.email.administrators") }; - enrolmentEl = uifactory.addCheckboxesVertical("mandatory.enrolment", privacyOptionsContainer, enrollmentKeys, enrollmentValues, null, 1); + enrolmentEl = uifactory.addCheckboxesVertical("mandatory.enrolment", privacyOptionsContainer, enrollmentKeys, enrollmentValues, 1); enrolmentEl.select("users", "true".equals(module.getMandatoryEnrolmentEmailForUsers())); enrolmentEl.select("authors", "true".equals(module.getMandatoryEnrolmentEmailForAuthors())); enrolmentEl.select("usermanagers", "true".equals(module.getMandatoryEnrolmentEmailForUsermanagers())); @@ -126,7 +126,7 @@ public class BusinessGroupModuleAdminController extends FormBasicController impl translate("enrolment.email.groupmanagers"), translate("enrolment.email.administrators") }; - membershipEl = uifactory.addCheckboxesVertical("mandatory.membership", privacyOptionsContainer, enrollmentKeys, membershipValues, null, 1); + membershipEl = uifactory.addCheckboxesVertical("mandatory.membership", privacyOptionsContainer, enrollmentKeys, membershipValues, 1); membershipEl.select("users", "true".equals(module.getAcceptMembershipForUsers())); membershipEl.select("authors", "true".equals(module.getAcceptMembershipForAuthors())); membershipEl.select("usermanagers", "true".equals(module.getAcceptMembershipForUsermanagers())); diff --git a/src/main/java/org/olat/group/ui/edit/DisplayMemberSwitchForm.java b/src/main/java/org/olat/group/ui/edit/DisplayMemberSwitchForm.java index ee1dfa414b3e2cc5269aab0178ed7d633f7e49fd..38120c28a790a11e97881dfc67bf0cc84bf78d60 100644 --- a/src/main/java/org/olat/group/ui/edit/DisplayMemberSwitchForm.java +++ b/src/main/java/org/olat/group/ui/edit/DisplayMemberSwitchForm.java @@ -141,21 +141,21 @@ public class DisplayMemberSwitchForm extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - showOwners = uifactory.addCheckboxesVertical("ShowOwners", "chkBox.show.owners", formLayout, new String[]{"show_owners"}, new String[]{""}, null, 1); + showOwners = uifactory.addCheckboxesVertical("ShowOwners", "chkBox.show.owners", formLayout, new String[]{"show_owners"}, new String[]{""}, 1); showOwners.setVisible(hasOwners); - showPartips = uifactory.addCheckboxesVertical("ShowPartips", "chkBox.show.partips", formLayout, new String[]{"show_participants"}, new String[]{""}, null, 1); + showPartips = uifactory.addCheckboxesVertical("ShowPartips", "chkBox.show.partips", formLayout, new String[]{"show_participants"}, new String[]{""}, 1); showPartips.setVisible(hasPartips); - showWaitingList = uifactory.addCheckboxesVertical("ShowWaitingList", "chkBox.show.waitingList", formLayout, new String[]{"show_waiting_list"}, new String[]{""}, null, 1); + showWaitingList = uifactory.addCheckboxesVertical("ShowWaitingList", "chkBox.show.waitingList", formLayout, new String[]{"show_waiting_list"}, new String[]{""}, 1); showWaitingList.setVisible(hasWaitingList); - openOwners = uifactory.addCheckboxesVertical("OpenOwners", "chkBox.open.owners", formLayout, new String[]{"open_owners"}, new String[]{""}, null, 1); + openOwners = uifactory.addCheckboxesVertical("OpenOwners", "chkBox.open.owners", formLayout, new String[]{"open_owners"}, new String[]{""}, 1); openOwners.setVisible(hasOwners); - openPartips = uifactory.addCheckboxesVertical("OpenPartips", "chkBox.open.partips", formLayout, new String[]{"open_participants"}, new String[]{""}, null, 1); + openPartips = uifactory.addCheckboxesVertical("OpenPartips", "chkBox.open.partips", formLayout, new String[]{"open_participants"}, new String[]{""}, 1); openPartips.setVisible(hasPartips); - openWaitingList = uifactory.addCheckboxesVertical("OpenWaitingList", "chkBox.open.waitingList", formLayout, new String[]{"open_waiting_list"}, new String[]{""}, null, 1); + openWaitingList = uifactory.addCheckboxesVertical("OpenWaitingList", "chkBox.open.waitingList", formLayout, new String[]{"open_waiting_list"}, new String[]{""}, 1); openWaitingList.setVisible(hasWaitingList); - downloadList = uifactory.addCheckboxesVertical("DownloadList", "chkBox.open.downloadList", formLayout, new String[]{"download_list"}, new String[]{""}, null, 1); + downloadList = uifactory.addCheckboxesVertical("DownloadList", "chkBox.open.downloadList", formLayout, new String[]{"download_list"}, new String[]{""}, 1); showOwners.addActionListener(FormEvent.ONCLICK); showPartips.addActionListener(FormEvent.ONCLICK); diff --git a/src/main/java/org/olat/group/ui/main/BusinessGroupSearchController.java b/src/main/java/org/olat/group/ui/main/BusinessGroupSearchController.java index 64503f3dff89220ecb814d4499b4630c7b3304c5..7a5bd669a30e16e8e59a60386feee0a9beb153fa 100644 --- a/src/main/java/org/olat/group/ui/main/BusinessGroupSearchController.java +++ b/src/main/java/org/olat/group/ui/main/BusinessGroupSearchController.java @@ -166,7 +166,7 @@ public class BusinessGroupSearchController extends FormBasicController implement if(showAdminTools) { String[] keys = new String[] { "headless" }; String[] values = new String[] { translate("search.headless.check") }; - headlessEl = uifactory.addCheckboxesHorizontal("headless.groups", "search.headless", rightContainer, keys, values, null); + headlessEl = uifactory.addCheckboxesHorizontal("headless.groups", "search.headless", rightContainer, keys, values); headlessEl.setElementCssClass("o_sel_group_search_headless_field"); } diff --git a/src/main/java/org/olat/group/ui/main/DedupMembersConfirmationController.java b/src/main/java/org/olat/group/ui/main/DedupMembersConfirmationController.java index f59bafb0093eb2b647b834c6102c6e3f7151d76b..4aba600fa7f711d38c136c16e36fe3243f313149 100644 --- a/src/main/java/org/olat/group/ui/main/DedupMembersConfirmationController.java +++ b/src/main/java/org/olat/group/ui/main/DedupMembersConfirmationController.java @@ -66,7 +66,7 @@ public class DedupMembersConfirmationController extends FormBasicController { String[] values = new String[] { translate("dedup.members.coaches"), translate("dedup.members.particpants") }; - typEl = uifactory.addCheckboxesVertical("typ", "dedup.members.typ", optionsCont, keys, values, null, 1); + typEl = uifactory.addCheckboxesVertical("typ", "dedup.members.typ", optionsCont, keys, values, 1); typEl.select(keys[0], true); typEl.select(keys[1], true); diff --git a/src/main/java/org/olat/group/ui/main/EditMembershipController.java b/src/main/java/org/olat/group/ui/main/EditMembershipController.java index 111446f53e1bb91570a87931e2e38084da118033..d7ed8d88604f2fdd0803c118207cee73da374db7 100644 --- a/src/main/java/org/olat/group/ui/main/EditMembershipController.java +++ b/src/main/java/org/olat/group/ui/main/EditMembershipController.java @@ -202,7 +202,7 @@ public class EditMembershipController extends FormBasicController { private MultipleSelectionElement createSelection(boolean selected, boolean enabled) { String name = "cb" + UUID.randomUUID().toString().replace("-", ""); MultipleSelectionElement selection = new MultipleSelectionElementImpl(name, MultipleSelectionElementImpl.createVerticalLayout("checkbox",1)); - selection.setKeysAndValues(keys, values, null); + selection.setKeysAndValues(keys, values); flc.add(name, selection); selection.select(keys[0], selected); selection.setEnabled(enabled); @@ -225,7 +225,7 @@ public class EditMembershipController extends FormBasicController { translate("role.repo.owner"), translate("role.repo.tutor"), translate("role.repo.participant") }; boolean managed = RepositoryEntryManagedFlag.isManaged(repoEntry, RepositoryEntryManagedFlag.membersmanagement); - repoRightsEl = uifactory.addCheckboxesVertical("repoRights", formLayout, repoRightsKeys, repoValues, null, 1); + repoRightsEl = uifactory.addCheckboxesVertical("repoRights", formLayout, repoRightsKeys, repoValues, 1); repoRightsEl.setEnabled(!managed); if(member != null) { RepoPermission repoPermission = PermissionHelper.getPermission(repoEntry, member, memberships); diff --git a/src/main/java/org/olat/group/ui/main/MemberChangeConfirmationController.java b/src/main/java/org/olat/group/ui/main/MemberChangeConfirmationController.java index 5c6a69e8e79c7e30f0d392fbd8fbacef4c5b3205..9fa29ac49606a9fa3f248c36600fbf7f5fb103e0 100644 --- a/src/main/java/org/olat/group/ui/main/MemberChangeConfirmationController.java +++ b/src/main/java/org/olat/group/ui/main/MemberChangeConfirmationController.java @@ -80,7 +80,7 @@ public class MemberChangeConfirmationController extends FormBasicController { String[] values = new String[] { translate("remove.send.mail") }; - mailEl = uifactory.addCheckboxesVertical("typ", "remove.send.mail.label", optionsCont, keys, values, null, 1); + mailEl = uifactory.addCheckboxesVertical("typ", "remove.send.mail.label", optionsCont, keys, values, 1); mailEl.select(keys[0], true); mailEl.setEnabled(!mandatoryEmail); diff --git a/src/main/java/org/olat/group/ui/main/MemberLeaveConfirmationController.java b/src/main/java/org/olat/group/ui/main/MemberLeaveConfirmationController.java index 74929a2ad3cf6bc5bf513dd6f81263fd38c433b5..3794f31585c1e5ecc663a6300ea1ba8b461cba96 100644 --- a/src/main/java/org/olat/group/ui/main/MemberLeaveConfirmationController.java +++ b/src/main/java/org/olat/group/ui/main/MemberLeaveConfirmationController.java @@ -81,7 +81,7 @@ public class MemberLeaveConfirmationController extends FormBasicController { String[] values = new String[] { translate("remove.send.mail") }; - mailEl = uifactory.addCheckboxesVertical("typ", "remove.send.mail.label", optionsCont, keys, values, null, 1); + mailEl = uifactory.addCheckboxesVertical("typ", "remove.send.mail.label", optionsCont, keys, values, 1); mailEl.select(keys[0], true); mailEl.setEnabled(!mandatoryEmail); diff --git a/src/main/java/org/olat/group/ui/run/BusinessGroupSendToChooserForm.java b/src/main/java/org/olat/group/ui/run/BusinessGroupSendToChooserForm.java index bbc8433a4b8115124286893aedbdaf2053fc0c04..ea4499b005bfe2b52abc425ddd540aeef10cc96d 100644 --- a/src/main/java/org/olat/group/ui/run/BusinessGroupSendToChooserForm.java +++ b/src/main/java/org/olat/group/ui/run/BusinessGroupSendToChooserForm.java @@ -416,7 +416,7 @@ public class BusinessGroupSendToChooserForm extends FormBasicController { radioButtonOwner.select(NLS_RADIO_ALL, true); radioButtonOwner.addActionListener(FormEvent.ONCLICK); if ( (keysOwner != null) && (valuesOwner != null) ) { - multiSelectionOwnerKeys = uifactory.addCheckboxesVertical("multiSelectionOwnerKeys", "", formLayout, keysOwner, valuesOwner, null, 1); + multiSelectionOwnerKeys = uifactory.addCheckboxesVertical("multiSelectionOwnerKeys", "", formLayout, keysOwner, valuesOwner, 1); } //} @@ -424,14 +424,14 @@ public class BusinessGroupSendToChooserForm extends FormBasicController { radioButtonPartips.select(NLS_RADIO_ALL, true); radioButtonPartips.addActionListener(FormEvent.ONCLICK); if ( (keysPartips != null) && (valuesPartips != null) ) { - multiSelectionPartipKeys = uifactory.addCheckboxesVertical("multiSelectionPartipKeys", "", formLayout, keysPartips, valuesPartips, null, 1); + multiSelectionPartipKeys = uifactory.addCheckboxesVertical("multiSelectionPartipKeys", "", formLayout, keysPartips, valuesPartips, 1); } radioButtonWaitings = uifactory.addRadiosVertical("radioButtonWaiting", "sendtochooser.form.radio.waitings", formLayout, radioKeysWaitings, radioValuesWaitings); radioButtonWaitings.select(NLS_RADIO_NOTHING, true); radioButtonWaitings.addActionListener(FormEvent.ONCLICK); if ( (keysWaitings != null) && (valuesWaitings != null) ) { - multiSelectionWaitingKeys = uifactory.addCheckboxesVertical("multiSelectionWaitingKeys", "", formLayout, keysWaitings, valuesWaitings, null, 1); + multiSelectionWaitingKeys = uifactory.addCheckboxesVertical("multiSelectionWaitingKeys", "", formLayout, keysWaitings, valuesWaitings, 1); } uifactory.addSpacerElement("space", formLayout, true); diff --git a/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStepController.java b/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStepController.java index 8c4de18744d892f95f80dde5a8fa7cc175170042..252557a8945660cbe02092051a02cd69e1964312 100644 --- a/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStepController.java +++ b/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStepController.java @@ -86,7 +86,7 @@ public class BGConfigToolsStepController extends StepFormBasicController { String[] values = new String[]{ translate("collabtools.named." + k) }; String i18n = first ? "config.tools.desc" : null; - MultipleSelectionElement selectEl = uifactory.addCheckboxesHorizontal(k, i18n, formLayout, keys, values, null); + MultipleSelectionElement selectEl = uifactory.addCheckboxesHorizontal(k, i18n, formLayout, keys, values); selectEl.addActionListener(FormEvent.ONCHANGE); toolList.add(selectEl); diff --git a/src/main/java/org/olat/group/ui/wizard/BGCopyPreparationStepController.java b/src/main/java/org/olat/group/ui/wizard/BGCopyPreparationStepController.java index 79b83c858a7f475322fd09003421ff3039b314c4..3cbb8787e68f9ab1100a994353960a255354765b 100644 --- a/src/main/java/org/olat/group/ui/wizard/BGCopyPreparationStepController.java +++ b/src/main/java/org/olat/group/ui/wizard/BGCopyPreparationStepController.java @@ -138,7 +138,7 @@ public class BGCopyPreparationStepController extends StepFormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - ce = uifactory.addCheckboxesVertical("toCopy", "bgcopywizard.copyform.label", formLayout, keys, values, null, 1); + ce = uifactory.addCheckboxesVertical("toCopy", "bgcopywizard.copyform.label", formLayout, keys, values, 1); ce.select("Tools", true); if(coursesEnabled) { ce.select("Courses", true); diff --git a/src/main/java/org/olat/group/ui/wizard/BGCopyWizardCopyForm.java b/src/main/java/org/olat/group/ui/wizard/BGCopyWizardCopyForm.java index f24107b759737a66f51892a70f08ae4780ed8a35..4313d8bfa05da31bb71b5796f1187e25f1df6642 100644 --- a/src/main/java/org/olat/group/ui/wizard/BGCopyWizardCopyForm.java +++ b/src/main/java/org/olat/group/ui/wizard/BGCopyWizardCopyForm.java @@ -130,7 +130,7 @@ class BGCopyWizardCopyForm extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - ce = uifactory.addCheckboxesVertical("toCopy", "bgcopywizard.copyform.label", formLayout, keys, values, null, 1); + ce = uifactory.addCheckboxesVertical("toCopy", "bgcopywizard.copyform.label", formLayout, keys, values, 1); ce.select("Tools", true); if(coursesEnabled) { ce.select("Courses", true); diff --git a/src/main/java/org/olat/group/ui/wizard/BGEmailSelectReceiversStepController.java b/src/main/java/org/olat/group/ui/wizard/BGEmailSelectReceiversStepController.java index d6afea24bc81b3737f099a568f0ed7c8feff5456..a139fa757fac58db8a6ce0a2a612d9bc8b1a4daf 100644 --- a/src/main/java/org/olat/group/ui/wizard/BGEmailSelectReceiversStepController.java +++ b/src/main/java/org/olat/group/ui/wizard/BGEmailSelectReceiversStepController.java @@ -53,7 +53,7 @@ public class BGEmailSelectReceiversStepController extends StepFormBasicControlle translate("email.select.receiver.tutor"), translate("email.select.receiver.participant") }; - receiversEl = uifactory.addCheckboxesVertical("select.receivers", "email.select.receivers", formLayout, receiverKeys, receiverValues, null, 1); + receiversEl = uifactory.addCheckboxesVertical("select.receivers", "email.select.receivers", formLayout, receiverKeys, receiverValues, 1); receiversEl.select(receiverKeys[0], true); receiversEl.select(receiverKeys[1], true); } diff --git a/src/main/java/org/olat/group/ui/wizard/BGMailTemplateController.java b/src/main/java/org/olat/group/ui/wizard/BGMailTemplateController.java index cdfa22c7b382add9b28118a25536b5a76e6ae545..f44b48d9a20f90f7712b5bb5f23be7f9d17f22ca 100644 --- a/src/main/java/org/olat/group/ui/wizard/BGMailTemplateController.java +++ b/src/main/java/org/olat/group/ui/wizard/BGMailTemplateController.java @@ -157,12 +157,12 @@ public class BGMailTemplateController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { if(!mandatoryEmail) { - sendMail = uifactory.addCheckboxesVertical("sendmail", "", formLayout, new String[]{"xx"}, new String[]{translate("mailtemplateform.sendMailSwitchElem")}, null, 1); + sendMail = uifactory.addCheckboxesVertical("sendmail", "", formLayout, new String[]{"xx"}, new String[]{translate("mailtemplateform.sendMailSwitchElem")}, 1); sendMail.select("xx", true); sendMail.addActionListener(FormEvent.ONCLICK); } - defaultTemplate = uifactory.addCheckboxesVertical("deftemplate", "", formLayout, new String[]{"xx"}, new String[]{translate("mailtemplateform.defaultTemplate")}, null, 1); + defaultTemplate = uifactory.addCheckboxesVertical("deftemplate", "", formLayout, new String[]{"xx"}, new String[]{translate("mailtemplateform.defaultTemplate")}, 1); if(!customizingAvailable && StringHelper.containsNonWhitespace(template.getSubjectTemplate())) { defaultTemplate.select("xx", true); } @@ -180,7 +180,7 @@ public class BGMailTemplateController extends FormBasicController { } if(ccSenderAllowed) { - ccSender = uifactory.addCheckboxesVertical("tcpfrom", "", formLayout, new String[]{"xx"}, new String[]{translate(NLS_CONTACT_SEND_CP_FROM)}, null, 1); + ccSender = uifactory.addCheckboxesVertical("tcpfrom", "", formLayout, new String[]{"xx"}, new String[]{translate(NLS_CONTACT_SEND_CP_FROM)}, 1); } if(useSubmit || useCancel) { diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormAdvancedController.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormAdvancedController.java index b95c336a93724ea69137e36e8788a7d187b06ce9..84872f840dcb6e7a61fa403bb1a3945e75d99378 100644 --- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormAdvancedController.java +++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormAdvancedController.java @@ -196,7 +196,7 @@ public class GuiDemoFlexiFormAdvancedController extends FormBasicController { verticalRadioButtons.addActionListener(FormEvent.ONCLICK); // checkboxes - uifactory.addCheckboxesVertical("checkboxes", "advanced_form.checkboxes", form, keys, options, null, 1); + uifactory.addCheckboxesVertical("checkboxes", "advanced_form.checkboxes", form, keys, options, 1); // Translate the keys to the yes and no option values final String[] yesOrNoOptions = new String[yesOrNoKeys.length]; diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormHideUnhide.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormHideUnhide.java index 03fca9eaac38ddd2edc256cde045bf7ecca86f9d..000df14a04085187592b072077114ef952a85e0e 100644 --- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormHideUnhide.java +++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormHideUnhide.java @@ -124,7 +124,7 @@ public class GuiDemoFlexiFormHideUnhide extends FormBasicController{ /* * hide unhide chooser */ - checkbox = uifactory.addCheckboxesVertical("checkbox", "guidemo.flexi.form.show", formLayout, new String[] { "ison" }, new String[] { "" }, null, 1); + checkbox = uifactory.addCheckboxesVertical("checkbox", "guidemo.flexi.form.show", formLayout, new String[] { "ison" }, new String[] { "" }, 1); checkbox.select("ison", true); // register for on click event to hide/disable other elements checkbox.addActionListener(FormEvent.ONCLICK); diff --git a/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java b/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java index 6713345a2f38f9a7c7c186dab2a324de752ef725..041325b9afeb64d9e4edf56381fe700d0961914b 100644 --- a/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java +++ b/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java @@ -127,7 +127,7 @@ public class CPFileImportController extends FormBasicController { // checkboxes String[] keys = { "htm", "pdf", "doc", "xls", "ppt", ALL }; String[] values = { "HTML", "PDF", "Word", "Excel", "PowerPoint", translate("cpfileuploadcontroller.form.all.types") }; - checkboxes = uifactory.addCheckboxesVertical("checkboxes", "cpfileuploadcontroller.form.file.types", this.flc, keys, values, null, 1); + checkboxes = uifactory.addCheckboxesVertical("checkboxes", "cpfileuploadcontroller.form.file.types", this.flc, keys, values, 1); checkboxes.setVisible(false); // Submit and cancel buttons diff --git a/src/main/java/org/olat/ims/qti/editor/ChangeMessageForm.java b/src/main/java/org/olat/ims/qti/editor/ChangeMessageForm.java index 4d76a639ce46c13a9ed2d22e3fa63c27c1f9ef33..d41d8160c8a8485cfa14c154b40d900f73f2e483 100644 --- a/src/main/java/org/olat/ims/qti/editor/ChangeMessageForm.java +++ b/src/main/java/org/olat/ims/qti/editor/ChangeMessageForm.java @@ -78,7 +78,7 @@ public class ChangeMessageForm extends FormBasicController { setFormDescription("form.chngmsg.info"); userMsg = uifactory.addTextAreaElement("userMsg", "form.chngmsg.usermsg", -1, 7, 80, true, "", formLayout); - chkbx = uifactory.addCheckboxesVertical("learnerYes", "form.chngmsg.informlearners", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + chkbx = uifactory.addCheckboxesVertical("learnerYes", "form.chngmsg.informlearners", formLayout, new String[]{"xx"}, new String[]{null}, 1); FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator()); formLayout.add(buttonLayout); diff --git a/src/main/java/org/olat/ims/qti/export/DelimChooseForm.java b/src/main/java/org/olat/ims/qti/export/DelimChooseForm.java index 1535ca08938873f2fc45370ceca43427f80577b7..a7fbf1a8f2aaddbaf3d4510914bbf315bcaa73ef 100644 --- a/src/main/java/org/olat/ims/qti/export/DelimChooseForm.java +++ b/src/main/java/org/olat/ims/qti/export/DelimChooseForm.java @@ -111,7 +111,7 @@ public class DelimChooseForm extends FormBasicController { fileNameSuffixEl.setDisplaySize(5); fileNameSuffixEl.setExampleKey("form.filenamesuffix.ex", null); - taglessMattext = uifactory.addCheckboxesVertical("taglessmattext", "form.taglessmattext", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + taglessMattext = uifactory.addCheckboxesVertical("taglessmattext", "form.taglessmattext", formLayout, new String[]{"xx"}, new String[]{null}, 1); uifactory.addFormSubmitButton("form.finished", formLayout); } diff --git a/src/main/java/org/olat/ims/qti/export/OptionsChooseForm.java b/src/main/java/org/olat/ims/qti/export/OptionsChooseForm.java index b28342cfac56ffce2a01c83c1910cba2acf28e48..e4c83ea33391a270a8e7be3b9bebe309505e1ba3 100644 --- a/src/main/java/org/olat/ims/qti/export/OptionsChooseForm.java +++ b/src/main/java/org/olat/ims/qti/export/OptionsChooseForm.java @@ -189,7 +189,7 @@ public class OptionsChooseForm extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - scq = uifactory.addCheckboxesVertical("scq", "form.scqtitle", formLayout, scqKeys, scqVals, null, 1); + scq = uifactory.addCheckboxesVertical("scq", "form.scqtitle", formLayout, scqKeys, scqVals, 1); if(hasSCQ){ QTIExportItemFormatConfig c = (QTIExportItemFormatConfig) mapWithConfigs.get(QTIExportSCQItemFormatConfig.class); scq.select(SCQ_ITEMCOLS, c.hasResponseCols()); @@ -200,7 +200,7 @@ public class OptionsChooseForm extends FormBasicController { scq.setVisible(false); } - mcq = uifactory.addCheckboxesVertical("mcq", "form.mcqtitle", formLayout, mcqKeys, mcqVals, null, 1); + mcq = uifactory.addCheckboxesVertical("mcq", "form.mcqtitle", formLayout, mcqKeys, mcqVals, 1); if(hasMCQ){ QTIExportItemFormatConfig c = (QTIExportItemFormatConfig) mapWithConfigs.get(QTIExportMCQItemFormatConfig.class); mcq.select(MCQ_ITEMCOLS, c.hasResponseCols()); @@ -211,7 +211,7 @@ public class OptionsChooseForm extends FormBasicController { mcq.setVisible(false); } - kprim = uifactory.addCheckboxesVertical("kprim", "form.kprimtitle", formLayout, kprimKeys, kprimVals, null, 1); + kprim = uifactory.addCheckboxesVertical("kprim", "form.kprimtitle", formLayout, kprimKeys, kprimVals, 1); if(hasKRIM){ QTIExportItemFormatConfig c = (QTIExportItemFormatConfig) mapWithConfigs.get(QTIExportKPRIMItemFormatConfig.class); kprim.select(KPRIM_ITEMCOLS, c.hasResponseCols()); @@ -221,7 +221,7 @@ public class OptionsChooseForm extends FormBasicController { kprim.setVisible(false); } - fib = uifactory.addCheckboxesVertical("fib", "form.fibtitle", formLayout, fibKeys, fibVals, null, 1); + fib = uifactory.addCheckboxesVertical("fib", "form.fibtitle", formLayout, fibKeys, fibVals, 1); if(hasFIB){ QTIExportItemFormatConfig c = (QTIExportItemFormatConfig) mapWithConfigs.get(QTIExportFIBItemFormatConfig.class); fib.select(FIB_ITEMCOLS, c.hasResponseCols()); @@ -231,7 +231,7 @@ public class OptionsChooseForm extends FormBasicController { fib.setVisible(false); } - essay = uifactory.addCheckboxesVertical("essay", "form.essaytitle", formLayout, essayKeys, essayVals, null, 1); + essay = uifactory.addCheckboxesVertical("essay", "form.essaytitle", formLayout, essayKeys, essayVals, 1); if(hasEssay){ QTIExportItemFormatConfig c = (QTIExportItemFormatConfig) mapWithConfigs.get(QTIExportEssayItemFormatConfig.class); essay.select(FIB_ITEMCOLS, c.hasResponseCols()); diff --git a/src/main/java/org/olat/instantMessaging/ui/IMPreferenceController.java b/src/main/java/org/olat/instantMessaging/ui/IMPreferenceController.java index 26a7c666a31cb56746a804e870f2bc50c9330313..b6f894e0fd2318cca70a3fb7434d36716343c6e1 100644 --- a/src/main/java/org/olat/instantMessaging/ui/IMPreferenceController.java +++ b/src/main/java/org/olat/instantMessaging/ui/IMPreferenceController.java @@ -90,7 +90,7 @@ public class IMPreferenceController extends FormBasicController { ImPreferences imPrefs = imService.getImPreferences(changeableIdentity); - toogleVisibility = uifactory.addCheckboxesVertical("online_list", "form.onlinelist", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + toogleVisibility = uifactory.addCheckboxesVertical("online_list", "form.onlinelist", formLayout, new String[]{"xx"}, new String[]{null}, 1); toogleVisibility.select("xx", imPrefs.isVisibleToOthers()); toogleVisibility.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/org/olat/instantMessaging/ui/InstantMessagingAdminController.java b/src/main/java/org/olat/instantMessaging/ui/InstantMessagingAdminController.java index 42b8e166abad930f516a2480faa9a6a6a749eb58..479a63a45eea2ee007bbdb096a59e3daf7c2d8dd 100644 --- a/src/main/java/org/olat/instantMessaging/ui/InstantMessagingAdminController.java +++ b/src/main/java/org/olat/instantMessaging/ui/InstantMessagingAdminController.java @@ -78,7 +78,7 @@ public class InstantMessagingAdminController extends FormBasicController { formLayout.add(moduleFlc); String[] enabledValues = new String[]{ translate("enabled") }; - imEnabledEl = uifactory.addCheckboxesHorizontal("im.module.enabled", moduleFlc, enabledKeys, enabledValues, null); + imEnabledEl = uifactory.addCheckboxesHorizontal("im.module.enabled", moduleFlc, enabledKeys, enabledValues); imEnabledEl.select(enabledKeys[0], imModule.isEnabled()); imEnabledEl.addActionListener(FormEvent.ONCHANGE); @@ -86,44 +86,44 @@ public class InstantMessagingAdminController extends FormBasicController { FormLayoutContainer chatOptionsFlc = FormLayoutContainer.createDefaultFormLayout("flc_chatOptions", getTranslator()); formLayout.add(chatOptionsFlc); - imEnableGroupEl = uifactory.addCheckboxesHorizontal("im.module.enabled.group", chatOptionsFlc, enabledKeys, enabledValues, null); + imEnableGroupEl = uifactory.addCheckboxesHorizontal("im.module.enabled.group", chatOptionsFlc, enabledKeys, enabledValues); imEnableGroupEl.select(enabledKeys[0], imModule.isGroupEnabled()); imEnableGroupEl.addActionListener(FormEvent.ONCHANGE); - imEnableGroupAnonymEl = uifactory.addCheckboxesHorizontal("im.module.enabled.group.anonym", chatOptionsFlc, enabledKeys, enabledValues, null); + imEnableGroupAnonymEl = uifactory.addCheckboxesHorizontal("im.module.enabled.group.anonym", chatOptionsFlc, enabledKeys, enabledValues); imEnableGroupAnonymEl.select(enabledKeys[0], imModule.isGroupAnonymEnabled()); imEnableGroupAnonymEl.addActionListener(FormEvent.ONCHANGE); - imEnableGroupAnonymDefaultEl = uifactory.addCheckboxesHorizontal("im.module.enabled.group.anonym.default", chatOptionsFlc, enabledKeys, enabledValues, null); + imEnableGroupAnonymDefaultEl = uifactory.addCheckboxesHorizontal("im.module.enabled.group.anonym.default", chatOptionsFlc, enabledKeys, enabledValues); imEnableGroupAnonymDefaultEl.select(enabledKeys[0], imModule.isGroupAnonymDefaultEnabled()); imEnableGroupAnonymDefaultEl.addActionListener(FormEvent.ONCHANGE); uifactory.addSpacerElement("spacer", chatOptionsFlc, true); - imEnableCourseEl = uifactory.addCheckboxesHorizontal("im.module.enabled.course", chatOptionsFlc, enabledKeys, enabledValues, null); + imEnableCourseEl = uifactory.addCheckboxesHorizontal("im.module.enabled.course", chatOptionsFlc, enabledKeys, enabledValues); imEnableCourseEl.select(enabledKeys[0], imModule.isCourseEnabled()); imEnableCourseEl.addActionListener(FormEvent.ONCHANGE); - imEnableCourseAnonymEl = uifactory.addCheckboxesHorizontal("im.module.enabled.course.anonym", chatOptionsFlc, enabledKeys, enabledValues, null); + imEnableCourseAnonymEl = uifactory.addCheckboxesHorizontal("im.module.enabled.course.anonym", chatOptionsFlc, enabledKeys, enabledValues); imEnableCourseAnonymEl.select(enabledKeys[0], imModule.isCourseAnonymEnabled()); imEnableCourseAnonymEl.addActionListener(FormEvent.ONCHANGE); - imEnableCourseAnonymDefaultEl = uifactory.addCheckboxesHorizontal("im.module.enabled.course.anonym.default", chatOptionsFlc, enabledKeys, enabledValues, null); + imEnableCourseAnonymDefaultEl = uifactory.addCheckboxesHorizontal("im.module.enabled.course.anonym.default", chatOptionsFlc, enabledKeys, enabledValues); imEnableCourseAnonymDefaultEl.select(enabledKeys[0], imModule.isCourseAnonymDefaultEnabled()); imEnableCourseAnonymDefaultEl.addActionListener(FormEvent.ONCHANGE); FormLayoutContainer messageOptionsFlc = FormLayoutContainer.createDefaultFormLayout("flc_messageOptions", getTranslator()); formLayout.add(messageOptionsFlc); - imEnablePrivateEl = uifactory.addCheckboxesHorizontal("im.module.enabled.private", messageOptionsFlc, enabledKeys, enabledValues, null); + imEnablePrivateEl = uifactory.addCheckboxesHorizontal("im.module.enabled.private", messageOptionsFlc, enabledKeys, enabledValues); imEnablePrivateEl.select(enabledKeys[0], imModule.isPrivateEnabled()); imEnablePrivateEl.addActionListener(FormEvent.ONCHANGE); - imEnableGroupPeersEl = uifactory.addCheckboxesHorizontal("im.module.enabled.grouppeers", messageOptionsFlc, enabledKeys, enabledValues, null); + imEnableGroupPeersEl = uifactory.addCheckboxesHorizontal("im.module.enabled.grouppeers", messageOptionsFlc, enabledKeys, enabledValues); imEnableGroupPeersEl.select(enabledKeys[0], imModule.isGroupPeersEnabled()); imEnableGroupPeersEl.addActionListener(FormEvent.ONCHANGE); - imEnableOnlineStatusEl = uifactory.addCheckboxesHorizontal("im.module.enabled.onlineStatus", messageOptionsFlc, enabledKeys, enabledValues, null); + imEnableOnlineStatusEl = uifactory.addCheckboxesHorizontal("im.module.enabled.onlineStatus", messageOptionsFlc, enabledKeys, enabledValues); imEnableOnlineStatusEl.select(enabledKeys[0], imModule.isOnlineStatusEnabled()); imEnableOnlineStatusEl.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/org/olat/modules/co/ContactForm.java b/src/main/java/org/olat/modules/co/ContactForm.java index 717f06fe055b616ef8a8d0dbc6b7f31e76c5d3b3..90016cae25ef179afec7bd95bfb9e4d9a2ae5ab3 100644 --- a/src/main/java/org/olat/modules/co/ContactForm.java +++ b/src/main/java/org/olat/modules/co/ContactForm.java @@ -399,7 +399,7 @@ public class ContactForm extends FormBasicController { attachmentEl.setExampleKey(NLS_CONTACT_ATTACHMENT_EXPL, new String[]{Integer.toString(contactAttachmentMaxSizeInMb)}); - tcpfrom = uifactory.addCheckboxesVertical("tcpfrom", "", formLayout, new String[]{"xx"}, new String[]{translate(NLS_CONTACT_SEND_CP_FROM)}, null, 1); + tcpfrom = uifactory.addCheckboxesVertical("tcpfrom", "", formLayout, new String[]{"xx"}, new String[]{translate(NLS_CONTACT_SEND_CP_FROM)}, 1); FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttonGroupLayout", getTranslator()); formLayout.add(buttonGroupLayout); diff --git a/src/main/java/org/olat/modules/coach/ui/CoachAdminController.java b/src/main/java/org/olat/modules/coach/ui/CoachAdminController.java index f362f1ced6406c87b378ee90265bf592764a9b6d..5568ae0114a7c4e3e6c10bb32834b9c535f6d9b4 100644 --- a/src/main/java/org/olat/modules/coach/ui/CoachAdminController.java +++ b/src/main/java/org/olat/modules/coach/ui/CoachAdminController.java @@ -57,7 +57,7 @@ public class CoachAdminController extends FormBasicController { boolean restEnabled = isEnabled(); - enabled = uifactory.addCheckboxesHorizontal("coaching.enabled", formLayout, keys, values, null); + enabled = uifactory.addCheckboxesHorizontal("coaching.enabled", formLayout, keys, values); enabled.select(keys[0], restEnabled); final FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator()); diff --git a/src/main/java/org/olat/modules/cp/CPSelectPrintPagesController.java b/src/main/java/org/olat/modules/cp/CPSelectPrintPagesController.java index 81d7faf7ecc991ba626a473947caf6f2eec218cd..86809d48dd42d67e5adbd6918de94c9d81c53a39 100644 --- a/src/main/java/org/olat/modules/cp/CPSelectPrintPagesController.java +++ b/src/main/java/org/olat/modules/cp/CPSelectPrintPagesController.java @@ -73,7 +73,7 @@ public class CPSelectPrintPagesController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - setFormTitle("print.node.list.title"); + //setFormTitle("print.node.list.title"); setFormDescription("print.node.list.desc"); if(formLayout instanceof FormLayoutContainer) { @@ -94,10 +94,9 @@ public class CPSelectPrintPagesController extends FormBasicController { } private void initTreeRec(int level, TreeNode node, FormLayoutContainer layoutcont) { - String[] cssClass = new String[]{"b_tree_l" + level}; String[] singleKey = new String[]{node.getIdent()}; String[] singleValue = new String[]{node.getTitle()}; - MultipleSelectionElement nodeSelection = uifactory.addCheckboxesVertical("print.node.list." + nodeSelections.size(), layoutcont, singleKey, singleValue, cssClass, 1); + MultipleSelectionElement nodeSelection = uifactory.addCheckboxesVertical("print.node.list." + nodeSelections.size(), layoutcont, singleKey, singleValue, 1); nodeSelection.setLabel("print.node.list", null); nodeSelection.setUserObject(new SelectNodeObject(node, level)); nodeSelection.addActionListener(FormEvent.ONCLICK); diff --git a/src/main/java/org/olat/modules/fo/MessageEditController.java b/src/main/java/org/olat/modules/fo/MessageEditController.java index f066f778a085d9020739e049e069d3f7dc1d2e09..b56b77181d44b1e6f31c5790b2ddf46c1c478f04 100644 --- a/src/main/java/org/olat/modules/fo/MessageEditController.java +++ b/src/main/java/org/olat/modules/fo/MessageEditController.java @@ -174,7 +174,7 @@ public class MessageEditController extends FormBasicController { // show stickyCheckBox only if moderator and message is threadtop stickyCheckBox = uifactory.addCheckboxesHorizontal("stickyCheckBox", null, formLayout, new String[] { STICKY_SET_IDENTIFIER }, - new String[] { translate("msg.sticky") }, new String[] { "" }); + new String[] { translate("msg.sticky") }); Status msgStatus = Status.getStatus(message.getStatusCode()); if (msgStatus.isSticky()) stickyCheckBox.select(STICKY_SET_IDENTIFIER, true); if (!(forumCallback.mayEditMessageAsModerator() && message.getParent() == null)) { diff --git a/src/main/java/org/olat/modules/glossary/GlossaryEditSettingsController.java b/src/main/java/org/olat/modules/glossary/GlossaryEditSettingsController.java index 329b2442264ace056afa6c2a8d80de253ec6bea2..d54dbc0c1a054c8ac044108c4451c7757d748442 100644 --- a/src/main/java/org/olat/modules/glossary/GlossaryEditSettingsController.java +++ b/src/main/java/org/olat/modules/glossary/GlossaryEditSettingsController.java @@ -66,7 +66,7 @@ public class GlossaryEditSettingsController extends FormBasicController { String[] regKeys = {"true"}; String[] regValues = {""}; - editByUserEnabled = uifactory.addCheckboxesHorizontal("edit.onoff", formLayout, regKeys, regValues, null); + editByUserEnabled = uifactory.addCheckboxesHorizontal("edit.onoff", formLayout, regKeys, regValues); editByUserEnabled.addActionListener(FormEvent.ONCLICK); Properties glossProps = GlossaryItemManager.getInstance().getGlossaryConfig(glossaryFolder); diff --git a/src/main/java/org/olat/modules/glossary/GlossaryRegisterSettingsController.java b/src/main/java/org/olat/modules/glossary/GlossaryRegisterSettingsController.java index 71fb76fbc07226797f66be6aa057352e359c6e9e..9cc9e8237454554196ad054495bc005715119dc3 100644 --- a/src/main/java/org/olat/modules/glossary/GlossaryRegisterSettingsController.java +++ b/src/main/java/org/olat/modules/glossary/GlossaryRegisterSettingsController.java @@ -94,9 +94,8 @@ public class GlossaryRegisterSettingsController extends FormBasicController { setFormDescription("register.intro"); String[] regKeys = {"true"}; String[] regValues = {""}; - String[] regCSS = new String[1]; - regOnOff = uifactory.addCheckboxesHorizontal("register.onoff", formLayout, regKeys, regValues, regCSS); + regOnOff = uifactory.addCheckboxesHorizontal("register.onoff", formLayout, regKeys, regValues); regOnOff.addActionListener(FormEvent.ONCLICK); Properties glossProps = GlossaryItemManager.getInstance().getGlossaryConfig(glossaryFolder); diff --git a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsConfigurationController.java b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsConfigurationController.java index c93f752a7bcd9fa79019d8359f26f4ab0f627cad..7991ec3e17fc46b0d8d290d2b89ab7f042f957cd 100644 --- a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsConfigurationController.java +++ b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsConfigurationController.java @@ -83,7 +83,7 @@ public class OpenMeetingsConfigurationController extends FormBasicController { FormLayoutContainer moduleFlc = FormLayoutContainer.createDefaultFormLayout("flc_module", getTranslator()); layoutContainer.add(moduleFlc); - moduleEnabled = uifactory.addCheckboxesHorizontal("openmeetings.module.enabled", moduleFlc, enabledKeys, enabledValues, null); + moduleEnabled = uifactory.addCheckboxesHorizontal("openmeetings.module.enabled", moduleFlc, enabledKeys, enabledValues); moduleEnabled.select(enabledKeys[0], openMeetingsModule.isEnabled()); moduleEnabled.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java index 378d4441cd76b42a85fc0b5fdbe039f5b833a255..93bdf3200acff5f11d55cc12b260a778d21bfedf 100644 --- a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java +++ b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java @@ -172,7 +172,7 @@ public class OpenMeetingsRoomEditController extends FormBasicController { } String[] recordingValues = new String[]{ translate("room.recording.enabled") }; - recordingEl = uifactory.addCheckboxesHorizontal("recording", "room.recording", formLayout, recordingKeys, recordingValues, null); + recordingEl = uifactory.addCheckboxesHorizontal("recording", "room.recording", formLayout, recordingKeys, recordingValues); if(room != null) { recordingEl.select(recordingKeys[0], room.isRecordingAllowed()); } else if(defaultSettings != null) { diff --git a/src/main/java/org/olat/modules/qpool/ui/admin/PoolEditController.java b/src/main/java/org/olat/modules/qpool/ui/admin/PoolEditController.java index 123dec7bdb53da32acd478f7aef5cf25dc42da0d..9407f7c15a086d9d32b54456e50ec3b2f9f8fb62 100644 --- a/src/main/java/org/olat/modules/qpool/ui/admin/PoolEditController.java +++ b/src/main/java/org/olat/modules/qpool/ui/admin/PoolEditController.java @@ -70,7 +70,7 @@ public class PoolEditController extends FormBasicController { String[] keys = new String[]{"on"}; String[] values = new String[]{""}; - publicEl = uifactory.addCheckboxesHorizontal("pool.public", formLayout, keys, values, null); + publicEl = uifactory.addCheckboxesHorizontal("pool.public", formLayout, keys, values); boolean publicPool = pool == null ? false : pool.isPublicPool(); publicEl.select("on", publicPool); diff --git a/src/main/java/org/olat/modules/qpool/ui/metadata/MetadataBulkChangeController.java b/src/main/java/org/olat/modules/qpool/ui/metadata/MetadataBulkChangeController.java index 06111d72973e48d5fb050ccb469236fd2452ebee..344068c923e88d0d79e932178ce7f91e12af1a0d 100644 --- a/src/main/java/org/olat/modules/qpool/ui/metadata/MetadataBulkChangeController.java +++ b/src/main/java/org/olat/modules/qpool/ui/metadata/MetadataBulkChangeController.java @@ -281,7 +281,7 @@ public class MetadataBulkChangeController extends FormBasicController { private FormItem decorate(FormItem item, FormLayoutContainer formLayout) { String itemName = item.getName(); - MultipleSelectionElement checkbox = uifactory.addCheckboxesVertical("cbx_" + itemName, itemName, formLayout, new String[] { itemName }, EMPTY_VALUES, null, 1); + MultipleSelectionElement checkbox = uifactory.addCheckboxesVertical("cbx_" + itemName, itemName, formLayout, new String[] { itemName }, EMPTY_VALUES, 1); checkbox.select(itemName, false); checkbox.addActionListener(FormEvent.ONCLICK); checkbox.setUserObject(item); diff --git a/src/main/java/org/olat/modules/qpool/ui/metadata/RightsMetadataController.java b/src/main/java/org/olat/modules/qpool/ui/metadata/RightsMetadataController.java index b1620934d1b6bf76c38e73f33705a736be4a1819..5719536b35741ab2e012b15f225d69cfde6a0f85 100644 --- a/src/main/java/org/olat/modules/qpool/ui/metadata/RightsMetadataController.java +++ b/src/main/java/org/olat/modules/qpool/ui/metadata/RightsMetadataController.java @@ -93,7 +93,7 @@ public class RightsMetadataController extends FormBasicController { String[] keys = new String[]{ "on" }; String[] values = new String[]{ "" }; - copyrightEl = uifactory.addCheckboxesHorizontal("rights.copyright", "rights.copyright", metaCont, keys, values, null); + copyrightEl = uifactory.addCheckboxesHorizontal("rights.copyright", "rights.copyright", metaCont, keys, values); copyrightEl.setEnabled(false); descriptionEl = uifactory.addStaticTextElement("rights.description", "", metaCont); diff --git a/src/main/java/org/olat/modules/vitero/ui/ViteroAdminBookingRawInfosController.java b/src/main/java/org/olat/modules/vitero/ui/ViteroAdminBookingRawInfosController.java index 4c4dcd6d651cc4cfbf96f6eb2a37e931ea142da4..e96c6b0c8b972e05ed1f2b28b7925d43aec3e823 100644 --- a/src/main/java/org/olat/modules/vitero/ui/ViteroAdminBookingRawInfosController.java +++ b/src/main/java/org/olat/modules/vitero/ui/ViteroAdminBookingRawInfosController.java @@ -76,7 +76,7 @@ public class ViteroAdminBookingRawInfosController extends FormBasicController { } uifactory.addStaticTextElement("group.name", name, formLayout); - MultipleSelectionElement autoSignIn = uifactory.addCheckboxesHorizontal("booking.autoSignIn", formLayout, autoSignInKeys, autoSignInValues, null); + MultipleSelectionElement autoSignIn = uifactory.addCheckboxesHorizontal("booking.autoSignIn", formLayout, autoSignInKeys, autoSignInValues); if(booking.isAutoSignIn()) { autoSignIn.select(autoSignInKeys[0], true); } diff --git a/src/main/java/org/olat/modules/vitero/ui/ViteroBookingEditController.java b/src/main/java/org/olat/modules/vitero/ui/ViteroBookingEditController.java index 0a1ae4b004dbc3a1db7c4fc0a72a357751f5c0c7..c3d449f8415a464e578bd72efeb18f3e76b39b44 100644 --- a/src/main/java/org/olat/modules/vitero/ui/ViteroBookingEditController.java +++ b/src/main/java/org/olat/modules/vitero/ui/ViteroBookingEditController.java @@ -148,7 +148,7 @@ public class ViteroBookingEditController extends FormBasicController { } roomSizeEl.setEnabled(editable); - autoSignIn = uifactory.addCheckboxesHorizontal("booking.autoSignIn", formLayout, autoSignInKeys, autoSignInValues, null); + autoSignIn = uifactory.addCheckboxesHorizontal("booking.autoSignIn", formLayout, autoSignInKeys, autoSignInValues); if(booking.isAutoSignIn()) { autoSignIn.select(autoSignInKeys[0], true); } diff --git a/src/main/java/org/olat/modules/vitero/ui/ViteroConfigurationController.java b/src/main/java/org/olat/modules/vitero/ui/ViteroConfigurationController.java index c345101348d205b8026b62231478242ba8ce4969..c85bed147a59bdd637bf2f95b3c1a4750e66518a 100644 --- a/src/main/java/org/olat/modules/vitero/ui/ViteroConfigurationController.java +++ b/src/main/java/org/olat/modules/vitero/ui/ViteroConfigurationController.java @@ -89,7 +89,7 @@ public class ViteroConfigurationController extends FormBasicController { FormLayoutContainer moduleFlc = FormLayoutContainer.createDefaultFormLayout("flc_module", getTranslator()); layoutContainer.add(moduleFlc); - viteroEnabled = uifactory.addCheckboxesHorizontal("vitero.module.enabled", moduleFlc, enabledKeys, enabledValues, null); + viteroEnabled = uifactory.addCheckboxesHorizontal("vitero.module.enabled", moduleFlc, enabledKeys, enabledValues); viteroEnabled.select(enabledKeys[0], viteroModule.isEnabled()); viteroEnabled.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/org/olat/portfolio/ui/PortfolioAdminController.java b/src/main/java/org/olat/portfolio/ui/PortfolioAdminController.java index 317a74dd5e40227d01cfbe5bfa1209d84d6afd14..b54fcd465a25a4eafb921edca8c573263dc806ca 100644 --- a/src/main/java/org/olat/portfolio/ui/PortfolioAdminController.java +++ b/src/main/java/org/olat/portfolio/ui/PortfolioAdminController.java @@ -80,7 +80,7 @@ public class PortfolioAdminController extends FormBasicController { FormLayoutContainer moduleFlc = FormLayoutContainer.createDefaultFormLayout("flc_module", getTranslator()); layoutContainer.add(moduleFlc); - portfolioEnabled = uifactory.addCheckboxesHorizontal("portfolio.module.enabled", moduleFlc, enabledKeys, enabledValues, null); + portfolioEnabled = uifactory.addCheckboxesHorizontal("portfolio.module.enabled", moduleFlc, enabledKeys, enabledValues); portfolioEnabled.select(enabledKeys[0], portfolioModule.isEnabled()); portfolioEnabled.addActionListener(FormEvent.ONCHANGE); @@ -93,7 +93,7 @@ public class PortfolioAdminController extends FormBasicController { Translator handlerTrans = handler.getHandlerTranslator(getTranslator()); handlersFlc.setTranslator(handlerTrans); String handlerClass = PortfolioFilterController.HANDLER_PREFIX + handler.getClass().getSimpleName() + PortfolioFilterController.HANDLER_TITLE_SUFFIX; - MultipleSelectionElement handlerEnabled = uifactory.addCheckboxesHorizontal(handlerClass, handlersFlc, enabledKeys, enabledValues, null); + MultipleSelectionElement handlerEnabled = uifactory.addCheckboxesHorizontal(handlerClass, handlersFlc, enabledKeys, enabledValues); handlerEnabled.select(enabledKeys[0], handler.isEnabled()); handlerEnabled.setUserObject(handler); handlerEnabled.addActionListener(FormEvent.ONCHANGE); @@ -103,11 +103,11 @@ public class PortfolioAdminController extends FormBasicController { // configure steps in artefact collection wizard FormLayoutContainer wizardFlc = FormLayoutContainer.createDefaultFormLayout("flc_wizard", getTranslator()); layoutContainer.add(wizardFlc); - copyrightStepCB = uifactory.addCheckboxesHorizontal("wizard.step.copyright", wizardFlc, enabledKeys, enabledValues, null); + copyrightStepCB = uifactory.addCheckboxesHorizontal("wizard.step.copyright", wizardFlc, enabledKeys, enabledValues); copyrightStepCB.select(enabledKeys[0], portfolioModule.isCopyrightStepEnabled()); copyrightStepCB.addActionListener(FormEvent.ONCHANGE); - reflexionStepCB = uifactory.addCheckboxesHorizontal("wizard.step.reflexion", wizardFlc, enabledKeys, enabledValues, null); + reflexionStepCB = uifactory.addCheckboxesHorizontal("wizard.step.reflexion", wizardFlc, enabledKeys, enabledValues); reflexionStepCB.select(enabledKeys[0], portfolioModule.isReflexionStepEnabled()); reflexionStepCB.addActionListener(FormEvent.ONCHANGE); diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm02.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm02.java index 8e598e87a46d20fb3a924fe5df1b942dc59a4f6c..f09158b16b3037fddf9c69348b649f514b2cbb8a 100644 --- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm02.java +++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm02.java @@ -63,7 +63,7 @@ public class EPCollectStepForm02 extends StepFormBasicController { String[] theKeys = new String[] { Boolean.TRUE.toString() }; String[] theValues = new String[] { translate("copyright.yes") }; - crCheck = uifactory.addCheckboxesHorizontal("copyright.label", null, formLayout, theKeys, theValues, null); + crCheck = uifactory.addCheckboxesHorizontal("copyright.label", null, formLayout, theKeys, theValues); if (getFromRunContext("copyright.accepted") != null && (Boolean) getFromRunContext("copyright.accepted")) { crCheck.select(Boolean.TRUE.toString(), true); } diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/view/EPArtefactAttributeSettingController.java b/src/main/java/org/olat/portfolio/ui/artefacts/view/EPArtefactAttributeSettingController.java index 660c0b5b8be23bc51d9b0a873769b0a436d1ef3c..b70ef7070b68c62815da119f2cbcbef466450300 100644 --- a/src/main/java/org/olat/portfolio/ui/artefacts/view/EPArtefactAttributeSettingController.java +++ b/src/main/java/org/olat/portfolio/ui/artefacts/view/EPArtefactAttributeSettingController.java @@ -68,7 +68,7 @@ public class EPArtefactAttributeSettingController extends FormBasicController { Entry<String, Boolean> entry = iterator.next(); String attKey = entry.getKey(); Boolean attVal = artAttribConfig.get(attKey); - MultipleSelectionElement chkBox = uifactory.addCheckboxesHorizontal(attKey, formLayout, keys, values, null); + MultipleSelectionElement chkBox = uifactory.addCheckboxesHorizontal(attKey, formLayout, keys, values); chkBox.addActionListener(FormEvent.ONCHANGE ); if (attVal == null) attVal = entry.getValue(); // either use users settings or the defaults chkBox.select(keys[0], attVal); diff --git a/src/main/java/org/olat/portfolio/ui/filter/EPArtefactTagSelectionController.java b/src/main/java/org/olat/portfolio/ui/filter/EPArtefactTagSelectionController.java index b25096fbbdcf98ef5cc53a4282773404f9cb4d66..cdc3f67dc34f40adb4e5f133cddf1493914e50fe 100644 --- a/src/main/java/org/olat/portfolio/ui/filter/EPArtefactTagSelectionController.java +++ b/src/main/java/org/olat/portfolio/ui/filter/EPArtefactTagSelectionController.java @@ -80,7 +80,7 @@ public class EPArtefactTagSelectionController extends FormBasicController { values[i] = tag; i++; } - chkBox = (MultipleSelectionElementImpl) uifactory.addCheckboxesVertical("tag", null, formLayout, keys, values, null, 2); + chkBox = (MultipleSelectionElementImpl) uifactory.addCheckboxesVertical("tag", null, formLayout, keys, values, 2); if (selectedTagsList != null) { String[] selectedKeys = selectedTagsList.toArray(new String[0]); diff --git a/src/main/java/org/olat/portfolio/ui/filter/EPArtefactTypeSelectionController.java b/src/main/java/org/olat/portfolio/ui/filter/EPArtefactTypeSelectionController.java index 61934ea43395961b7e8f74ed4df495f30f7f62da..c0f8c9e2588b304539217886c91aa3570ec062cb 100644 --- a/src/main/java/org/olat/portfolio/ui/filter/EPArtefactTypeSelectionController.java +++ b/src/main/java/org/olat/portfolio/ui/filter/EPArtefactTypeSelectionController.java @@ -77,7 +77,7 @@ public class EPArtefactTypeSelectionController extends FormBasicController { Translator handlerTrans = handler.getHandlerTranslator(getTranslator()); this.flc.setTranslator(handlerTrans); String handlerClass = PortfolioFilterController.HANDLER_PREFIX + handler.getClass().getSimpleName() + PortfolioFilterController.HANDLER_TITLE_SUFFIX; - MultipleSelectionElement chkBox = uifactory.addCheckboxesHorizontal(handlerClass, formLayout, keys, values, null); + MultipleSelectionElement chkBox = uifactory.addCheckboxesHorizontal(handlerClass, formLayout, keys, values); if (selectedTypeList != null && selectedTypeList.contains(handler.getType())) { chkBox.select(keys[0], true); } diff --git a/src/main/java/org/olat/registration/DisclaimerFormController.java b/src/main/java/org/olat/registration/DisclaimerFormController.java index c8e406a1429da5878331b17e74fbfaa4ee49ac33..2ef4b832e0359d4d38e6830bb6d28adbb4d49ce0 100644 --- a/src/main/java/org/olat/registration/DisclaimerFormController.java +++ b/src/main/java/org/olat/registration/DisclaimerFormController.java @@ -81,7 +81,7 @@ public class DisclaimerFormController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { // Add the "accept" checkbox to the form. - acceptCheckbox = uifactory.addCheckboxesVertical(ACKNOWLEDGE_CHECKBOX_NAME, null, formLayout, new String[] {DCL_CHECKBOX_KEY}, new String[] {translate(NLS_DISCLAIMER_ACKNOWLEDGED)}, null, 1); + acceptCheckbox = uifactory.addCheckboxesVertical(ACKNOWLEDGE_CHECKBOX_NAME, null, formLayout, new String[] {DCL_CHECKBOX_KEY}, new String[] {translate(NLS_DISCLAIMER_ACKNOWLEDGED)}, 1); acceptCheckbox.setEscapeHtml(false); acceptCheckbox.setMandatory(false); acceptCheckbox.select(DCL_CHECKBOX_KEY, readOnly); @@ -90,7 +90,7 @@ public class DisclaimerFormController extends FormBasicController { if(CoreSpringFactory.getImpl(RegistrationModule.class).isDisclaimerAdditionalCheckbox()) { String additionalCheckboxText = translate("disclaimer.additionalcheckbox"); if (additionalCheckboxText != null) { - additionalCheckbox = uifactory.addCheckboxesVertical(ADDITIONAL_CHECKBOX_NAME, null, formLayout, new String[] {DCL_CHECKBOX_KEY2}, new String[] {additionalCheckboxText}, null, 1); + additionalCheckbox = uifactory.addCheckboxesVertical(ADDITIONAL_CHECKBOX_NAME, null, formLayout, new String[] {DCL_CHECKBOX_KEY2}, new String[] {additionalCheckboxText}, 1); additionalCheckbox.setEscapeHtml(false); additionalCheckbox.select(DCL_CHECKBOX_KEY2, readOnly); } diff --git a/src/main/java/org/olat/registration/RegistrationAdminController.java b/src/main/java/org/olat/registration/RegistrationAdminController.java index 5ea143e4aaa5e4312665af7258f1576a82d8eab2..c5c0b2873b6cb599328808fd01319dfcd25995eb 100644 --- a/src/main/java/org/olat/registration/RegistrationAdminController.java +++ b/src/main/java/org/olat/registration/RegistrationAdminController.java @@ -110,15 +110,15 @@ public class RegistrationAdminController extends FormBasicController { settingsContainer.setFormTitle(translate("admin.registration.title")); formLayout.add(settingsContainer); - registrationElement = uifactory.addCheckboxesHorizontal("enable.self.registration", "admin.enableRegistration", settingsContainer, enableRegistrationKeys, enableRegistrationValues, null); + registrationElement = uifactory.addCheckboxesHorizontal("enable.self.registration", "admin.enableRegistration", settingsContainer, enableRegistrationKeys, enableRegistrationValues); registrationElement.addActionListener(FormEvent.ONCHANGE); registrationElement.select("on", registrationModule.isSelfRegistrationEnabled()); - registrationLoginElement = uifactory.addCheckboxesHorizontal("enable.registration.login", "admin.enableRegistrationLogin", settingsContainer, enableRegistrationKeys, enableRegistrationValues, null); + registrationLoginElement = uifactory.addCheckboxesHorizontal("enable.registration.login", "admin.enableRegistrationLogin", settingsContainer, enableRegistrationKeys, enableRegistrationValues); registrationLoginElement.addActionListener(FormEvent.ONCHANGE); registrationLoginElement.select("on", registrationModule.isSelfRegistrationLoginEnabled()); - registrationLinkElement = uifactory.addCheckboxesHorizontal("enable.registration.link", "admin.enableRegistrationLink", settingsContainer, enableRegistrationKeys, enableRegistrationValues, null); + registrationLinkElement = uifactory.addCheckboxesHorizontal("enable.registration.link", "admin.enableRegistrationLink", settingsContainer, enableRegistrationKeys, enableRegistrationValues); registrationLinkElement.addActionListener(FormEvent.ONCHANGE); registrationLinkElement.select("on", registrationModule.isSelfRegistrationLinkEnabled()); @@ -143,7 +143,7 @@ public class RegistrationAdminController extends FormBasicController { uifactory.addStaticTextElement("admin.registration.staticprop.error", null, translate("admin.registration.staticprop.desc"), staticPropContainer); - staticPropElement = uifactory.addCheckboxesHorizontal("enable.staticprop", "admin.enableStaticProp", staticPropContainer, enableRegistrationKeys, enableRegistrationValues, null); + staticPropElement = uifactory.addCheckboxesHorizontal("enable.staticprop", "admin.enableStaticProp", staticPropContainer, enableRegistrationKeys, enableRegistrationValues); staticPropElement.addActionListener(FormEvent.ONCHANGE); staticPropElement.select("on", registrationModule.isStaticPropertyMappingEnabled()); diff --git a/src/main/java/org/olat/repository/controllers/SearchForm.java b/src/main/java/org/olat/repository/controllers/SearchForm.java index 1eade49a472de95b6066e009a0c23c012ac7e4c9..9e4a5216e740596e366e9fd7bbdadb629fe50032 100644 --- a/src/main/java/org/olat/repository/controllers/SearchForm.java +++ b/src/main/java/org/olat/repository/controllers/SearchForm.java @@ -81,7 +81,7 @@ import org.olat.repository.RepositoryService; * to a special type * */ -public class SearchForm extends FormBasicController{ +public class SearchForm extends FormBasicController { private TextElement id; // only for admins private TextElement displayName; @@ -277,13 +277,13 @@ public class SearchForm extends FormBasicController{ externalRef.setElementCssClass("o_sel_repo_search_external_ref"); externalRef.setVisible(managedEnabled); - typesSelection = uifactory.addCheckboxesVertical("search.limit.type", formLayout, new String[]{"xx"}, new String[]{""}, new String[]{null}, 1); + typesSelection = uifactory.addCheckboxesVertical("search.limit.type", formLayout, new String[]{"xx"}, new String[]{""}, 1); typesSelection.addActionListener(FormEvent.ONCLICK); typesSelection.setElementCssClass("o_sel_repo_search_type_limit"); String[] typeKeys = getResources().toArray(new String[0]); - String[] typeCssClasess = getCssResources(getResources()); - types = uifactory.addCheckboxesVertical("cif_types", "cif.type", formLayout, typeKeys, getTranslatedResources(getResources()), typeCssClasess, 1); + String[] iconCSS = getCssResources(getResources()); + types = uifactory.addCheckboxesVertical("cif_types", "cif.type", formLayout, typeKeys, getTranslatedResources(getResources()), null, iconCSS, 1); types.setElementCssClass("o_sel_repo_search_types"); FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator()); @@ -314,8 +314,12 @@ public class SearchForm extends FormBasicController{ private String[] getCssResources(List<String> resources) { String[] cssClasses= new String[resources.size()]; int count = 0; - for(String key: resources){ - cssClasses[count++] = "o_sel_repo_search_" + key.toLowerCase().replace(".", "_"); + for(String key: resources) { + StringBuilder sb = new StringBuilder(); + sb.append("o_icon o_icon-fw o_").append(key.replace(".", "-")) + .append("_icon o_sel_repo_search_") + .append(key.toLowerCase().replace(".", "_")); + cssClasses[count++] = sb.toString(); } return cssClasses; } diff --git a/src/main/java/org/olat/repository/controllers/WizardCloseCourseController.java b/src/main/java/org/olat/repository/controllers/WizardCloseCourseController.java index 8f160b1313a7da0cc03fe6ca1efe9f998d051126..425b6552f61d8b178d1a1eff722ae8acc170f024 100644 --- a/src/main/java/org/olat/repository/controllers/WizardCloseCourseController.java +++ b/src/main/java/org/olat/repository/controllers/WizardCloseCourseController.java @@ -333,7 +333,7 @@ class CloseRessourceOptionForm extends FormBasicController { String[] keys = new String[] {"form.clean.catalog", "form.clean.groups"}; String[] values = new String[] {translator.translate("form.clean.catalog"), translator.translate("form.clean.groups")}; - checkboxClean = uifactory.addCheckboxesVertical("form.clean.catalog", null, formLayout, keys, values, null, 1); + checkboxClean = uifactory.addCheckboxesVertical("form.clean.catalog", null, formLayout, keys, values, 1); submit = new FormSubmit("next", "next"); back = new FormReset("back", "back"); diff --git a/src/main/java/org/olat/repository/ui/admin/CatalogAdminController.java b/src/main/java/org/olat/repository/ui/admin/CatalogAdminController.java index 43cfa2e06cf8dbd000ec624eb43f02e25dec5a6e..4dd50d66c7544ec03b279795fb576086ea7a180a 100644 --- a/src/main/java/org/olat/repository/ui/admin/CatalogAdminController.java +++ b/src/main/java/org/olat/repository/ui/admin/CatalogAdminController.java @@ -68,16 +68,16 @@ public class CatalogAdminController extends FormBasicController { formLayout.add("functions", serverCont); boolean enabled = repositoryModule.isCatalogEnabled(); - enableEl = uifactory.addCheckboxesHorizontal("catalog.enable", "catalog.enable", serverCont, new String[]{"xx"}, new String[]{""}, null); + enableEl = uifactory.addCheckboxesHorizontal("catalog.enable", "catalog.enable", serverCont, new String[]{"xx"}, new String[]{""}); enableEl.select("xx", enabled); enableEl.addActionListener(FormEvent.ONCLICK); - enableBrowsingEl = uifactory.addCheckboxesHorizontal("catalog.browsing", "catalog.browsing", serverCont, new String[]{"xx"}, new String[]{""}, null); + enableBrowsingEl = uifactory.addCheckboxesHorizontal("catalog.browsing", "catalog.browsing", serverCont, new String[]{"xx"}, new String[]{""}); enableBrowsingEl.select("xx", repositoryModule.isCatalogBrowsingEnabled()); enableBrowsingEl.setEnabled(enabled); enableBrowsingEl.addActionListener(FormEvent.ONCLICK); - siteEl = uifactory.addCheckboxesHorizontal("catalog.site", "catalog.site", serverCont, new String[]{"xx"}, new String[]{""}, null); + siteEl = uifactory.addCheckboxesHorizontal("catalog.site", "catalog.site", serverCont, new String[]{"xx"}, new String[]{""}); siteEl.select("xx", repositoryModule.isCatalogSiteEnabled()); siteEl.setEnabled(enabled); siteEl.addActionListener(FormEvent.ONCLICK); diff --git a/src/main/java/org/olat/repository/ui/author/AuthorListController.java b/src/main/java/org/olat/repository/ui/author/AuthorListController.java index 85abc6dbb4b22fa2947bc2a2abf8ddfdddcbb5f0..9d54e8e47df19b6d08b0cb7b0127420ff1c1665b 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthorListController.java +++ b/src/main/java/org/olat/repository/ui/author/AuthorListController.java @@ -80,6 +80,7 @@ import org.olat.repository.handlers.RepositoryHandler; import org.olat.repository.handlers.RepositoryHandlerFactory; import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams; import org.olat.repository.model.TransientRepositoryEntryRef; +import org.olat.repository.ui.RepositoyUIFactory; import org.olat.repository.ui.author.AuthoringEntryDataModel.Cols; import org.olat.repository.ui.list.RepositoryEntryRow; import org.olat.util.logging.activity.LoggingResourceable; @@ -160,6 +161,7 @@ public class AuthorListController extends FormBasicController implements Activat private void addCreateLink(RepositoryHandler handler, Dropdown dropdown) { Link createLink = LinkFactory.createLink(handler.getSupportedType(), getTranslator(), this); + createLink.setIconLeftCSS("o_icon o_icon-fw " + RepositoyUIFactory.getIconCssClass(handler.getSupportedType())); createLink.setUserObject(handler); dropdown.addComponent(createLink); } diff --git a/src/main/java/org/olat/repository/ui/author/ImportRepositoryEntryController.java b/src/main/java/org/olat/repository/ui/author/ImportRepositoryEntryController.java index cc6a5f4becb532797e844598c68a2be1ecd2de92..87d7d5f6da218de4d4cda25eae157e0898727072 100644 --- a/src/main/java/org/olat/repository/ui/author/ImportRepositoryEntryController.java +++ b/src/main/java/org/olat/repository/ui/author/ImportRepositoryEntryController.java @@ -97,7 +97,7 @@ public class ImportRepositoryEntryController extends FormBasicController { displaynameEl.setVisible(false); String[] refValues = new String[]{ "" }; - referencesEl = uifactory.addCheckboxesHorizontal("references", "references", formLayout, refKeys, refValues, null); + referencesEl = uifactory.addCheckboxesHorizontal("references", "references", formLayout, refKeys, refValues); referencesEl.setVisible(false); FormLayoutContainer buttonContainer = FormLayoutContainer.createButtonLayout("buttonContainer", getTranslator()); diff --git a/src/main/java/org/olat/repository/ui/author/PropPupForm.java b/src/main/java/org/olat/repository/ui/author/PropPupForm.java index 513063cb9474e01a06bcfabc05f403726e3ecdef..6b4831410bf2fa717758e47b711ccf957d746123 100644 --- a/src/main/java/org/olat/repository/ui/author/PropPupForm.java +++ b/src/main/java/org/olat/repository/ui/author/PropPupForm.java @@ -189,15 +189,15 @@ public class PropPupForm extends FormBasicController { flc.contextPut("off_warn", warning); } - canCopy = uifactory.addCheckboxesVertical("cif_canCopy", "cif.canCopy", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + canCopy = uifactory.addCheckboxesVertical("cif_canCopy", "cif.canCopy", formLayout, new String[]{"xx"}, new String[]{null}, 1); canCopy.select("xx", entry.getCanCopy()); canCopy.setEnabled(!managedSettings); - canReference = uifactory.addCheckboxesVertical("cif_canReference", "cif.canReference", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + canReference = uifactory.addCheckboxesVertical("cif_canReference", "cif.canReference", formLayout, new String[]{"xx"}, new String[]{null}, 1); canReference.select("xx", entry.getCanReference()); canReference.setEnabled(!managedSettings); - canDownload = uifactory.addCheckboxesVertical("cif_canDownload", "cif.canDownload", formLayout, new String[]{"xx"}, new String[]{null}, null, 1); + canDownload = uifactory.addCheckboxesVertical("cif_canDownload", "cif.canDownload", formLayout, new String[]{"xx"}, new String[]{null}, 1); canDownload.select("xx", entry.getCanDownload()); canDownload.setVisible(handler != null && handler.supportsDownload(this.entry)); diff --git a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/PaypalAccessConfigurationController.java b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/PaypalAccessConfigurationController.java index f28677586fb097f8a5d6025c9a91ba8f7088377d..3bea03e909488b41a95fb6c77a517e9c89597e38 100644 --- a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/PaypalAccessConfigurationController.java +++ b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/PaypalAccessConfigurationController.java @@ -120,7 +120,7 @@ public class PaypalAccessConfigurationController extends AbstractConfigurationMe currencyEl.select("CHF", true); } - vatEnabledEl = uifactory.addCheckboxesHorizontal("vat.enabled", "vat.enabled", formLayout, vatKeys, vatValues, null); + vatEnabledEl = uifactory.addCheckboxesHorizontal("vat.enabled", "vat.enabled", formLayout, vatKeys, vatValues); if(acModule.isVatEnabled()) { vatEnabledEl.select(vatKeys[0], true); } diff --git a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/PaypalMasterAccountController.java b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/PaypalMasterAccountController.java index fc5a055a5373c89c4ede6625caaf087325ab6840..b7dc2d60f9729439d5e4f248db6ff6fd9f2d6021 100644 --- a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/PaypalMasterAccountController.java +++ b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/PaypalMasterAccountController.java @@ -133,7 +133,7 @@ public class PaypalMasterAccountController extends FormBasicController { currencyEl.select("", true); } - vatEnabledEl = uifactory.addCheckboxesHorizontal("vat.enabled", "vat.enabled", formLayout, vatKeys, vatValues, null); + vatEnabledEl = uifactory.addCheckboxesHorizontal("vat.enabled", "vat.enabled", formLayout, vatKeys, vatValues); vatEnabledEl.addActionListener(FormEvent.ONCHANGE); if(acModule.isVatEnabled()) { vatEnabledEl.select(vatKeys[0], true); diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/AccessControlAdminController.java b/src/main/java/org/olat/resource/accesscontrol/ui/AccessControlAdminController.java index 110d09a6889815649bf5b765aa77c6e5efcedefb..bc268d4c139e37ea47387003c35201e78a51ff7a 100644 --- a/src/main/java/org/olat/resource/accesscontrol/ui/AccessControlAdminController.java +++ b/src/main/java/org/olat/resource/accesscontrol/ui/AccessControlAdminController.java @@ -86,12 +86,12 @@ public class AccessControlAdminController extends FormBasicController { setFormTitle("admin.title"); setFormDescription("admin.desc"); - enabled = uifactory.addCheckboxesHorizontal("ac.enabled", formLayout, keys, values, null); + enabled = uifactory.addCheckboxesHorizontal("ac.enabled", formLayout, keys, values); enabled.select(keys[0], acModule.isEnabled()); uifactory.addSpacerElement("spaceman", formLayout, false); - methods = uifactory.addCheckboxesVertical("ac.methods", formLayout, methodKeys, methodValues, null, 1); + methods = uifactory.addCheckboxesVertical("ac.methods", formLayout, methodKeys, methodValues, 1); methods.select("free.method", acModule.isFreeEnabled()); methods.select("token.method", acModule.isTokenEnabled()); methods.select("paypal.method", acModule.isPaypalEnabled()); @@ -100,7 +100,7 @@ public class AccessControlAdminController extends FormBasicController { uifactory.addSpacerElement("itgirl", formLayout, false); - homeEnabled = uifactory.addCheckboxesHorizontal("ac.home.enabled", formLayout, keys, values, null); + homeEnabled = uifactory.addCheckboxesHorizontal("ac.home.enabled", formLayout, keys, values); homeEnabled.select(keys[0], acModule.isPaypalEnabled() || acModule.isHomeOverviewEnabled()); final FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator()); diff --git a/src/main/java/org/olat/search/ui/AdvancedSearchInputController.java b/src/main/java/org/olat/search/ui/AdvancedSearchInputController.java index d40f17f9895e2d69944b2bc43ff7aa5b45ed212c..3368df1cdb8681b50bf71d71a0d53a96dcb16633 100644 --- a/src/main/java/org/olat/search/ui/AdvancedSearchInputController.java +++ b/src/main/java/org/olat/search/ui/AdvancedSearchInputController.java @@ -131,7 +131,7 @@ public class AdvancedSearchInputController extends FormBasicController { documentTypeKeys[j] = documentType.getKey(); documentTypeValues[j++] = documentType.getValue(); } - documentTypeQuery = uifactory.addCheckboxesHorizontal("doc_type", "form.search.label.documenttype", formLayout, documentTypeKeys, documentTypeValues, null); + documentTypeQuery = uifactory.addCheckboxesHorizontal("doc_type", "form.search.label.documenttype", formLayout, documentTypeKeys, documentTypeValues); //metadatas SearchMetadataFieldsProvider metadataProvider = (SearchMetadataFieldsProvider) CoreSpringFactory.getBean("SearchMetadataFieldsProvider"); diff --git a/src/main/java/org/olat/user/ChangePrefsController.java b/src/main/java/org/olat/user/ChangePrefsController.java index b015cf5f712745ebc64a432a003333a8dc990ab0..8ab4028f660dc72fe1d9983e61caded67d94ab95 100644 --- a/src/main/java/org/olat/user/ChangePrefsController.java +++ b/src/main/java/org/olat/user/ChangePrefsController.java @@ -268,7 +268,7 @@ class SpecialPrefsForm extends FormBasicController { setFormTitle("title.prefs.special"); setFormContextHelp(this.getClass().getPackage().getName(), "home-prefs-special.html", "help.hover.home.prefs.special"); - prefsElement = uifactory.addCheckboxesVertical("prefs", "title.prefs.accessibility", formLayout, keys, values, null, 1); + prefsElement = uifactory.addCheckboxesVertical("prefs", "title.prefs.accessibility", formLayout, keys, values, 1); prefsElement.setElementCssClass("o_sel_home_settings_accessibility"); if(historyModule.isResumeEnabled()) { @@ -368,7 +368,7 @@ class UserPrefsResetForm extends FormBasicController { keys = new String[]{"guiprefs", "sysprefs", "resume"}; values = new String[] {translate("reset.elements.guiprefs"), translate("reset.elements.sysprefs"), translate("reset.elements.resume")}; - resetElements = uifactory.addCheckboxesVertical("prefs", "reset.elements", formLayout, keys, values, null, 1); + resetElements = uifactory.addCheckboxesVertical("prefs", "reset.elements", formLayout, keys, values, 1); resetElements.setElementCssClass("o_sel_home_settings_reset_sysprefs"); final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator()); diff --git a/src/main/java/org/olat/user/ToolsPrefsController.java b/src/main/java/org/olat/user/ToolsPrefsController.java index eacba213aebc2dd4b598f7abf08ec920f63b434e..07958a80f09e99f983871941b7496ad3e0776bfc 100644 --- a/src/main/java/org/olat/user/ToolsPrefsController.java +++ b/src/main/java/org/olat/user/ToolsPrefsController.java @@ -110,7 +110,7 @@ public class ToolsPrefsController extends FormBasicController { toolKeys = new String[0]; toolValues = new String[0]; } - presetEl = uifactory.addCheckboxesVertical("usertools.set", "usertools.set", formLayout, toolKeys, toolValues, null, 1); + presetEl = uifactory.addCheckboxesVertical("usertools.set", "usertools.set", formLayout, toolKeys, toolValues, 1); presetEl.addActionListener(FormEvent.ONCHANGE); presetEl.setEnabled(enabled); diff --git a/src/main/webapp/static/themes/light/modules/_courseeditor.scss b/src/main/webapp/static/themes/light/modules/_courseeditor.scss index 7acfad338001f03c8996d0bc8452fadc2076a6e5..c523501455f4bc69a79be12070462e43c2457c8b 100644 --- a/src/main/webapp/static/themes/light/modules/_courseeditor.scss +++ b/src/main/webapp/static/themes/light/modules/_courseeditor.scss @@ -10,4 +10,29 @@ #o_course_editor_errorbox ul, #o_course_editor_warningbox ul { list-style-type: none; -} \ No newline at end of file +} + +#o_course_editor_choose_nodetype ul, { + padding: 0; + list-style-type: none; +} + +/* SELECTION TREE (when you insert a BuildingBlock into a course) */ +div.b_selectiontree { + font-size: 95%; + div.b_selectiontree_item { + clear: both; position: relative; top: 0; left: 0; vertical-align:middle; height: 16px; width: auto; + div { width:16px; height: 16px; float: left; display: inline; background-repeat: no-repeat; } + div.b_selectiontree_content { float: left; display: inline; margin-left: 0.5em; width: auto; white-space: nowrap; } + } + div.b_selectiontree_content { + width: auto; + div { width: auto;} + input { width: 1em; height: 1em; padding: 0; margin: 0 0.5em; vertical-align: middle;} + input.b_radio { margin: 0;} + } + .b_selectiontree_line {background-image: url(../openolat/images/tree/dots.gif); } + .b_selectiontree_space {background-image: url(../openolat/images/tree/dots_spacer.gif); } + .b_selectiontree_junction {background-image: url(../openolat/images/tree/dots_nt.gif); } + .b_selectiontree_end {background-image: url(../openolat/images/tree/dots_nl.gif); } +} diff --git a/src/main/webapp/static/themes/light/modules/_icons.scss b/src/main/webapp/static/themes/light/modules/_icons.scss index 66e5afad318504e4e8dd476cd87c259fe52e2579..fc3818ad11eb2dbdc48e62c87eda0fe7b651ce45 100644 --- a/src/main/webapp/static/themes/light/modules/_icons.scss +++ b/src/main/webapp/static/themes/light/modules/_icons.scss @@ -150,6 +150,18 @@ a.o_icon { .o_FileResource-SURVEY_icon{ @extend .o_icon-meh-o; } .o_FileResource-TEST_icon{ @extend .o_icon-pencil-square-o; } .o_FileResource-WIKI_icon{ @extend .o_icon-globe; } +.o_FileResource-SHAREDFOLDER_icon { @extend .o_icon-folder-open-o; } +.o_FileResource-GLOSSARY_icon { @extend .o_icon-graduation-cap; } +.o_FileResource-PDF_icon { @extend .o_icon-file-pdf-o; } +.o_FileResource-XLS_icon { @extend .o_icon-file-excel-o; } +.o_FileResource-PPT_icon { @extend .o_icon-file-powerpoint-o; } +.o_FileResource-DOC_icon { @extend .o_icon-file-word-o; } +.o_FileResource-ANIM_icon { @extend .o_icon-file-video-o; } +.o_FileResource-IMAGE_icon { @extend .o_icon-file-image-o; } +.o_FileResource-SOUND_icon { @extend .o_icon-file-audio-o; } +.o_FileResource-MOVIE_icon { @extend .o_icon-file-video-o; } +.o_FileResource-FILE_icon { @extend .o_icon-file-o; } + /* notification icons */ .o_forum_message_icon {@extend .o_icon-comment-o; } diff --git a/src/main/webapp/static/themes/light/theme.css b/src/main/webapp/static/themes/light/theme.css index 3c0d395b57a3e449a76fee2292a35f3e81f1275b..bf7ded22f0ff275689cc28b8c07993c030b28366 100644 --- a/src/main/webapp/static/themes/light/theme.css +++ b/src/main/webapp/static/themes/light/theme.css @@ -42,11 +42,11 @@ small,.small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4,.alert .o_cal .fc-header-title h2,.o_cal .fc-header-title .alert h2{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left,#o_main_wrapper #o_main_container .media>#o_main_left,#o_navbar_imclient .media>#o_im_message,#o_navbar_imclient .media>#o_im_status,#o_navbar_imclient .media>#o_im_summary,.o_comments .o_comment_wrapper .media>.o_avatar,.o_cal_toptoolbar .media>.o_cal_toptoolbar_sub,.o_cal_toptoolbar .media>.o_cal_toptoolbar_help,.o_feed .o_blog_posts .o_ratings_and_comments .media>.o_rating_wrapper,.o_catalog .o_sublevels .media>.o_sublevel,.o_repo_details .o_social .media>.o_rating_wrapper{margin-right:10px}.media>.pull-right,.media>div.o_chelp_wrapper,.o_withEllipsis .media>.o_ellipsis_links,#o_main_wrapper #o_main_container .media>#o_main_right,.o_comments .o_comment_wrapper .media>.o_reply,.o_comments .o_comment_wrapper .media>.o_delete,.media>.o_noti,.o_repo_details .o_lead .media>.o_media{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel-collapse>.table,.panel-collapse>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child,.panel-collapse>.table:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel-collapse>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel-collapse>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel-collapse>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child,.panel-collapse>.table:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel-collapse>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel-collapse>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel-collapse>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel-collapse>.panel-body+.table,.panel-collapse>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td,.panel-collapse>.table>tbody:first-child>tr:first-child th,.panel-collapse>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered,.panel-collapse>.table-bordered,.panel-collapse>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel-collapse>.table-bordered>thead>tr>th:first-child,.panel-collapse>.table-bordered>thead>tr>td:first-child,.panel-collapse>.table-bordered>tbody>tr>th:first-child,.panel-collapse>.table-bordered>tbody>tr>td:first-child,.panel-collapse>.table-bordered>tfoot>tr>th:first-child,.panel-collapse>.table-bordered>tfoot>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel-collapse>.table-bordered>thead>tr>th:last-child,.panel-collapse>.table-bordered>thead>tr>td:last-child,.panel-collapse>.table-bordered>tbody>tr>th:last-child,.panel-collapse>.table-bordered>tbody>tr>td:last-child,.panel-collapse>.table-bordered>tfoot>tr>th:last-child,.panel-collapse>.table-bordered>tfoot>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel-collapse>.table-bordered>thead>tr:first-child>td,.panel-collapse>.table-bordered>thead>tr:first-child>th,.panel-collapse>.table-bordered>tbody>tr:first-child>td,.panel-collapse>.table-bordered>tbody>tr:first-child>th,.panel-collapse>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel-collapse>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel-collapse>.table-bordered>tbody>tr:last-child>td,.panel-collapse>.table-bordered>tbody>tr:last-child>th,.panel-collapse>.table-bordered>tfoot>tr:last-child>td,.panel-collapse>.table-bordered>tfoot>tr:last-child>th,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel-collapse>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel-collapse>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive,.panel-collapse>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog,.modal.fade .o_alert_info .alert,.o_alert_info .modal.fade .alert{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog,.modal.in .o_alert_info .alert,.o_alert_info .modal.in .alert{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog,.o_alert_info .alert{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn,.modal-footer a.o_chelp+.btn,.modal-footer .btn+a.o_chelp,.modal-footer a.o_chelp+a.o_chelp{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn,.modal-footer .btn-group a.o_chelp+.btn,.modal-footer .btn-group .btn+a.o_chelp,.modal-footer .btn-group a.o_chelp+a.o_chelp{margin-left:-1px}.modal-footer .btn-block+.btn-block,.modal-footer .o_repo_details .o_start+.btn-block,.o_repo_details .modal-footer .o_start+.btn-block,.modal-footer .o_repo_details .o_book+.btn-block,.o_repo_details .modal-footer .o_book+.btn-block,.modal-footer .o_repo_details .btn-block+.o_start,.o_repo_details .modal-footer .btn-block+.o_start,.modal-footer .o_repo_details .o_start+.o_start,.o_repo_details .modal-footer .o_start+.o_start,.modal-footer .o_repo_details .o_book+.o_start,.o_repo_details .modal-footer .o_book+.o_start,.modal-footer .o_repo_details .btn-block+.o_book,.o_repo_details .modal-footer .btn-block+.o_book,.modal-footer .o_repo_details .o_start+.o_book,.o_repo_details .modal-footer .o_start+.o_book,.modal-footer .o_repo_details .o_book+.o_book,.o_repo_details .modal-footer .o_book+.o_book{margin-left:0}@media (min-width: 768px){.modal-dialog,.o_alert_info .alert{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:fadein(rgba(0,0,0,0.2), 5%);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:fadein(rgba(0,0,0,0.2), 5%)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:fadein(rgba(0,0,0,0.2), 5%);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:fadein(rgba(0,0,0,0.2), 5%)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.5) 0%), color-stop(rgba(0,0,0,0.0001) 100%));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.0001) 0%), color-stop(rgba(0,0,0,0.5) 100%));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:none;color:#fff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn,.carousel-caption a.o_chelp{text-shadow:none}@media screen and (min-width: 768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.o_catalog .o_sublevels:before,.o_repo_details .o_social:before,.clearfix:after,.o_catalog .o_sublevels:after,.o_repo_details .o_social:after{content:" ";display:table}.clearfix:after,.o_catalog .o_sublevels:after,.o_repo_details .o_social:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right,div.o_chelp_wrapper,.o_withEllipsis .o_ellipsis_links,#o_main_wrapper #o_main_container #o_main_right,.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete,.o_noti,.o_repo_details .o_lead .o_media{float:right !important}.pull-left,#o_main_wrapper #o_main_container #o_main_left,#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary,.o_comments .o_comment_wrapper .o_avatar,.o_cal_toptoolbar .o_cal_toptoolbar_sub,.o_cal_toptoolbar .o_cal_toptoolbar_help,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper,.o_catalog .o_sublevels .o_sublevel,.o_repo_details .o_social .o_rating_wrapper{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}@media print{.hidden-print{display:none !important}}body .modal{position:absolute;overflow:visible}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body .modal-body.alert{border-radius:0}body .progress{margin-bottom:0}.panel-body:nth-child(n+2){border-top:1px solid #ddd}/*! * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url("../../../font-awesome/fonts/fontawesome-webfont.eot?v=4.1.0");src:url("../../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.1.0") format("embedded-opentype"),url("../../../font-awesome/fonts/fontawesome-webfont.woff?v=4.1.0") format("woff"),url("../../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.1.0") format("truetype"),url("../../../font-awesome/fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg,.o_icon_help{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.28571em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.o_icon-li.o_icon-lg,.o_icon-li.o_icon_help{left:-1.85714em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right,div.o_chelp_wrapper,.o_withEllipsis .o_ellipsis_links,#o_main_wrapper #o_main_container #o_main_right,.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete,.o_noti,.o_repo_details .o_lead .o_media{float:right}.pull-left,#o_main_wrapper #o_main_container #o_main_left,#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary,.o_comments .o_comment_wrapper .o_avatar,.o_cal_toptoolbar .o_cal_toptoolbar_sub,.o_cal_toptoolbar .o_cal_toptoolbar_help,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper,.o_catalog .o_sublevels .o_sublevel,.o_repo_details .o_social .o_rating_wrapper{float:left}.o_icon.pull-left,#o_main_wrapper #o_main_container .o_icon#o_main_left,#o_navbar_imclient .o_icon#o_im_message,#o_navbar_imclient .o_icon#o_im_status,#o_navbar_imclient .o_icon#o_im_summary,.o_comments .o_comment_wrapper .o_icon.o_avatar,.o_cal_toptoolbar .o_icon.o_cal_toptoolbar_sub,.o_cal_toptoolbar .o_icon.o_cal_toptoolbar_help,.o_feed .o_blog_posts .o_ratings_and_comments .o_icon.o_rating_wrapper,.o_catalog .o_sublevels .o_icon.o_sublevel,.o_repo_details .o_social .o_icon.o_rating_wrapper{margin-right:.3em}.o_icon.pull-right,div.o_icon.o_chelp_wrapper,.o_withEllipsis .o_icon.o_ellipsis_links,#o_main_wrapper #o_main_container .o_icon#o_main_right,.o_comments .o_comment_wrapper .o_icon.o_reply,.o_comments .o_comment_wrapper .o_icon.o_delete,.o_icon.o_noti,.o_repo_details .o_lead .o_icon.o_media{margin-left:.3em}.o_icon-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon-glass:before{content:"\f000"}.o_icon-music:before{content:"\f001"}.o_icon-search:before,.o_icon_search:before{content:"\f002"}.o_icon-envelope-o:before,.o_icon_mail:before,.o_co_icon:before{content:"\f003"}.o_icon-heart:before{content:"\f004"}.o_icon-star:before,.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before{content:"\f005"}.o_icon-star-o:before,.o_icon_rating_off:before{content:"\f006"}.o_icon-user:before,.o_icon_user:before{content:"\f007"}.o_icon-film:before,.o_icon_video:before{content:"\f008"}.o_icon-th-large:before{content:"\f009"}.o_icon-th:before{content:"\f00a"}.o_icon-th-list:before{content:"\f00b"}.o_icon-check:before,.o_icon_check:before{content:"\f00c"}.o_icon-times:before,.o_icon_close:before,.o_icon_close_tab:before,.o_icon_close_tool:before{content:"\f00d"}.o_icon-search-plus:before{content:"\f00e"}.o_icon-search-minus:before{content:"\f010"}.o_icon-power-off:before{content:"\f011"}.o_icon-signal:before{content:"\f012"}.o_icon-gear:before,.o_icon_customize:before,.o_icon_edit_metadata:before,.o_icon_tool:before,.o_icon-cog:before{content:"\f013"}.o_icon-trash-o:before,.o_icon_delete_item:before{content:"\f014"}.o_icon-home:before,.o_icon_home:before{content:"\f015"}.o_icon-file-o:before,.o_filetype_file:before,.o_filetype_ico:before{content:"\f016"}.o_icon-clock-o:before,.o_icon_expenditure:before{content:"\f017"}.o_icon-road:before{content:"\f018"}.o_icon-download:before,.o_icon_archive_tool:before,.o_icon_download:before{content:"\f019"}.o_icon-arrow-circle-o-down:before{content:"\f01a"}.o_icon-arrow-circle-o-up:before{content:"\f01b"}.o_icon-inbox:before{content:"\f01c"}.o_icon-play-circle-o:before{content:"\f01d"}.o_icon-rotate-right:before,.o_icon-repeat:before{content:"\f01e"}.o_icon-refresh:before,.o_icon_attempt_limit:before,.o_icon_refresh:before{content:"\f021"}.o_icon-list-alt:before{content:"\f022"}.o_icon-lock:before,.o_icon_locked:before,.o_ac_membersonly_icon:before,.o_midlock:before{content:"\f023"}.o_icon-flag:before{content:"\f024"}.o_icon-headphones:before{content:"\f025"}.o_icon-volume-off:before{content:"\f026"}.o_icon-volume-down:before{content:"\f027"}.o_icon-volume-up:before,.o_icon_audio:before{content:"\f028"}.o_icon-qrcode:before{content:"\f029"}.o_icon-barcode:before{content:"\f02a"}.o_icon-tag:before{content:"\f02b"}.o_icon-tags:before{content:"\f02c"}.o_icon-book:before{content:"\f02d"}.o_icon-bookmark:before,.o_icon_bookmark:before{content:"\f02e"}.o_icon-print:before,.o_icon_print:before{content:"\f02f"}.o_icon-camera:before{content:"\f030"}.o_icon-font:before{content:"\f031"}.o_icon-bold:before,.o_icon_bold:before{content:"\f032"}.o_icon-italic:before,.o_icon_italic:before{content:"\f033"}.o_icon-text-height:before{content:"\f034"}.o_icon-text-width:before{content:"\f035"}.o_icon-align-left:before,.o_mi_qtiessay:before{content:"\f036"}.o_icon-align-center:before{content:"\f037"}.o_icon-align-right:before{content:"\f038"}.o_icon-align-justify:before{content:"\f039"}.o_icon-list:before,.o_icon_list:before{content:"\f03a"}.o_icon-dedent:before,.o_icon-outdent:before{content:"\f03b"}.o_icon-indent:before{content:"\f03c"}.o_icon-video-camera:before,.o_FileResource-PODCAST_icon:before,.o_podcast_icon:before{content:"\f03d"}.o_icon-photo:before,.o_icon-image:before,.o_icon-picture-o:before{content:"\f03e"}.o_icon-pencil:before,.o_icon_notes:before{content:"\f040"}.o_icon-map-marker:before{content:"\f041"}.o_icon-adjust:before{content:"\f042"}.o_icon-tint:before{content:"\f043"}.o_icon-edit:before,.o_icon_edit:before,.o_icon_edit_file:before,.o_icon_readonly:before,.o_icon_readwrite:before,.o_icon-pencil-square-o:before,.o_FileResource-TEST_icon:before,.o_iqtest_icon:before,.o_iqself_icon:before{content:"\f044"}.o_icon-share-square-o:before{content:"\f045"}.o_icon-check-square-o:before,.o_mi_qtimc:before,.o_cl_icon:before{content:"\f046"}.o_icon-arrows:before,.o_icon_move:before{content:"\f047"}.o_icon-step-backward:before{content:"\f048"}.o_icon-fast-backward:before{content:"\f049"}.o_icon-backward:before{content:"\f04a"}.o_icon-play:before{content:"\f04b"}.o_icon-pause:before{content:"\f04c"}.o_icon-stop:before,.o_icon_close_resource:before{content:"\f04d"}.o_icon-forward:before{content:"\f04e"}.o_icon-fast-forward:before{content:"\f050"}.o_icon-step-forward:before{content:"\f051"}.o_icon-eject:before{content:"\f052"}.o_icon-chevron-left:before,.o_icon_back:before{content:"\f053"}.o_icon-chevron-right:before,.o_icon_start:before{content:"\f054"}.o_icon-plus-circle:before{content:"\f055"}.o_icon-minus-circle:before,.o_icon_delete:before{content:"\f056"}.o_icon-times-circle:before,.o_icon_failed:before{content:"\f057"}.o_icon-check-circle:before,.o_icon_passed:before,.o_midpub:before{content:"\f058"}.o_icon-question-circle:before,.o_icon_help:before{content:"\f059"}.o_icon-info-circle:before,.o_icon_impress:before,.o_icon_info:before,.o_icon_news:before,.o_infomsg_icon:before{content:"\f05a"}.o_icon-crosshairs:before{content:"\f05b"}.o_icon-times-circle-o:before,.o_icon_status_unavailable:before{content:"\f05c"}.o_icon-check-circle-o:before{content:"\f05d"}.o_icon-ban:before{content:"\f05e"}.o_icon-arrow-left:before{content:"\f060"}.o_icon-arrow-right:before{content:"\f061"}.o_icon-arrow-up:before{content:"\f062"}.o_icon-arrow-down:before{content:"\f063"}.o_icon-mail-forward:before,.o_icon-share:before,.o_icon_publish:before{content:"\f064"}.o_icon-expand:before{content:"\f065"}.o_icon-compress:before{content:"\f066"}.o_icon-plus:before{content:"\f067"}.o_icon-minus:before{content:"\f068"}.o_icon-asterisk:before,.o_icon_new:before,.o_icon_mandatory:before{content:"\f069"}.o_icon-exclamation-circle:before,.o_icon_error:before{content:"\f06a"}.o_icon-gift:before,.o_ac_free_icon:before{content:"\f06b"}.o_icon-leaf:before{content:"\f06c"}.o_icon-fire:before{content:"\f06d"}.o_icon-eye:before,.o_icon_details:before,.o_icon_preview:before{content:"\f06e"}.o_icon-eye-slash:before{content:"\f070"}.o_icon-warning:before,.o_midwarn:before,.o_miderr:before,.o_icon-exclamation-triangle:before,.o_icon_warn:before{content:"\f071"}.o_icon-plane:before{content:"\f072"}.o_icon-calendar:before,.o_icon_calendar:before,.o_icon_lifecycle:before,.o_calendar_icon:before,.o_cal_icon:before{content:"\f073"}.o_icon-random:before{content:"\f074"}.o_icon-comment:before,.o_icon_status_chat:before{content:"\f075"}.o_icon-magnet:before{content:"\f076"}.o_icon-chevron-up:before,.o_icon_top:before{content:"\f077"}.o_icon-chevron-down:before{content:"\f078"}.o_icon-retweet:before,.o_icon_managed:before{content:"\f079"}.o_icon-shopping-cart:before{content:"\f07a"}.o_icon-folder:before,.o_icon_new_folder:before{content:"\f07b"}.o_icon-folder-open:before{content:"\f07c"}.o_icon-arrows-v:before{content:"\f07d"}.o_icon-arrows-h:before,.o_icon_spacer:before{content:"\f07e"}.o_icon-bar-chart-o:before{content:"\f080"}.o_icon-twitter-square:before,.o_icon_twitter:before{content:"\f081"}.o_icon-facebook-square:before,.o_icon_facebook:before{content:"\f082"}.o_icon-camera-retro:before{content:"\f083"}.o_icon-key:before,.o_icon_password:before,.o_ac_token_icon:before{content:"\f084"}.o_icon-gears:before,.o_icon_actions:before,.o_icon_settings:before,.o_icon-cogs:before{content:"\f085"}.o_icon-comments:before,.o_icon_comments:before{content:"\f086"}.o_icon-thumbs-o-up:before,.o_ms_icon:before{content:"\f087"}.o_icon-thumbs-o-down:before{content:"\f088"}.o_icon-star-half:before{content:"\f089"}.o_icon-heart-o:before{content:"\f08a"}.o_icon-sign-out:before,.o_icon_logout:before{content:"\f08b"}.o_icon-linkedin-square:before{content:"\f08c"}.o_icon-thumb-tack:before{content:"\f08d"}.o_icon-external-link:before,.o_icon_content_popup:before,.o_icon_external_link:before,.o_FileResource-SHAREDFOLDER:before,.o_tu_icon:before,.o_lti_icon:before{content:"\f08e"}.o_icon-sign-in:before,.o_icon_login:before,.o_en_icon:before{content:"\f090"}.o_icon-trophy:before,.o_icon_assessment_tool:before{content:"\f091"}.o_icon-github-square:before{content:"\f092"}.o_icon-upload:before,.o_icon_upload:before{content:"\f093"}.o_icon-lemon-o:before{content:"\f094"}.o_icon-phone:before{content:"\f095"}.o_icon-square-o:before{content:"\f096"}.o_icon-bookmark-o:before,.o_icon_bookmark_add:before{content:"\f097"}.o_icon-phone-square:before{content:"\f098"}.o_icon-twitter:before{content:"\f099"}.o_icon-facebook:before{content:"\f09a"}.o_icon-github:before{content:"\f09b"}.o_icon-unlock:before{content:"\f09c"}.o_icon-credit-card:before,.o_ac_paypal_icon:before{content:"\f09d"}.o_icon-rss:before,.o_icon_notification:before,.o_icon_rss:before{content:"\f09e"}.o_icon-hdd-o:before{content:"\f0a0"}.o_icon-bullhorn:before,.o_FileResource-BLOG_icon:before,.o_blog_icon:before{content:"\f0a1"}.o_icon-bell:before{content:"\f0f3"}.o_icon-certificate:before,.o_icon_certificate:before{content:"\f0a3"}.o_icon-hand-o-right:before{content:"\f0a4"}.o_icon-hand-o-left:before{content:"\f0a5"}.o_icon-hand-o-up:before{content:"\f0a6"}.o_icon-hand-o-down:before{content:"\f0a7"}.o_icon-arrow-circle-left:before,.o_icon_previous:before{content:"\f0a8"}.o_icon-arrow-circle-right:before,.o_icon_next:before{content:"\f0a9"}.o_icon-arrow-circle-up:before{content:"\f0aa"}.o_icon-arrow-circle-down:before{content:"\f0ab"}.o_icon-globe:before,.o_icon_language:before,.o_FileResource-WIKI_icon:before,.o_wiki_icon:before{content:"\f0ac"}.o_icon-wrench:before{content:"\f0ad"}.o_icon-tasks:before,.o_ta_icon:before{content:"\f0ae"}.o_icon-filter:before,.o_icon_filter:before{content:"\f0b0"}.o_icon-briefcase:before{content:"\f0b1"}.o_icon-arrows-alt:before{content:"\f0b2"}.o_icon-group:before,.o_ac_group_icon:before,.o_icon-users:before,.o_icon_group:before,.o_icon_membersmanagement:before,.o_cmembers_icon:before{content:"\f0c0"}.o_icon-chain:before,.o_icon-link:before,.o_icon_link:before,.o_ll_icon:before{content:"\f0c1"}.o_icon-cloud:before{content:"\f0c2"}.o_icon-flask:before{content:"\f0c3"}.o_icon-cut:before,.o_icon-scissors:before{content:"\f0c4"}.o_icon-copy:before,.o_icon_copy:before,.o_icon-files-o:before,.o_dialog_icon:before{content:"\f0c5"}.o_icon-paperclip:before{content:"\f0c6"}.o_icon-save:before,.o_icon-floppy-o:before{content:"\f0c7"}.o_icon-square:before{content:"\f0c8"}.o_icon-navicon:before,.o_icon-reorder:before,.o_icon-bars:before{content:"\f0c9"}.o_icon-list-ul:before{content:"\f0ca"}.o_icon-list-ol:before,.o_icon_list_num:before{content:"\f0cb"}.o_icon-strikethrough:before{content:"\f0cc"}.o_icon-underline:before{content:"\f0cd"}.o_icon-table:before,.o_icon_table:before{content:"\f0ce"}.o_icon-magic:before,.o_icon_wizard:before{content:"\f0d0"}.o_icon-truck:before{content:"\f0d1"}.o_icon-pinterest:before{content:"\f0d2"}.o_icon-pinterest-square:before{content:"\f0d3"}.o_icon-google-plus-square:before,.o_icon_google:before{content:"\f0d4"}.o_icon-google-plus:before{content:"\f0d5"}.o_icon-money:before{content:"\f0d6"}.o_icon-caret-down:before,.o_icon_close_tree:before,.o_icon_close_togglebox:before,.o_togglebox_wrapper .o_opener.o_in i:before{content:"\f0d7"}.o_icon-caret-up:before{content:"\f0d8"}.o_icon-caret-left:before{content:"\f0d9"}.o_icon-caret-right:before,.o_icon_open_tree:before,.o_icon_open_togglebox:before,.o_togglebox_wrapper .o_opener i:before{content:"\f0da"}.o_icon-columns:before{content:"\f0db"}.o_icon-unsorted:before,.o_icon-sort:before,.o_icon_sort:before{content:"\f0dc"}.o_icon-sort-down:before,.o_icon-sort-desc:before,.o_icon_sort_desc:before{content:"\f0dd"}.o_icon-sort-up:before,.o_icon-sort-asc:before,.o_icon_sort_asc:before{content:"\f0de"}.o_icon-envelope:before,.o_icon_message:before{content:"\f0e0"}.o_icon-linkedin:before{content:"\f0e1"}.o_icon-rotate-left:before,.o_icon-undo:before{content:"\f0e2"}.o_icon-legal:before,.o_icon-gavel:before{content:"\f0e3"}.o_icon-dashboard:before,.o_icon-tachometer:before,.o_icon_statistics_tool:before{content:"\f0e4"}.o_icon-comment-o:before,.o_icon_chat:before,.o_icon_comments_none:before,.o_icon_post:before,.o_forum_message_icon:before{content:"\f0e5"}.o_icon-comments-o:before,.o_fo_icon:before{content:"\f0e6"}.o_icon-flash:before,.o_icon-bolt:before{content:"\f0e7"}.o_icon-sitemap:before{content:"\f0e8"}.o_icon-umbrella:before{content:"\f0e9"}.o_icon-paste:before,.o_icon-clipboard:before{content:"\f0ea"}.o_icon-lightbulb-o:before{content:"\f0eb"}.o_icon-exchange:before{content:"\f0ec"}.o_icon-cloud-download:before{content:"\f0ed"}.o_icon-cloud-upload:before{content:"\f0ee"}.o_icon-user-md:before{content:"\f0f0"}.o_icon-stethoscope:before{content:"\f0f1"}.o_icon-suitcase:before{content:"\f0f2"}.o_icon-bell-o:before{content:"\f0a2"}.o_icon-coffee:before{content:"\f0f4"}.o_icon-cutlery:before{content:"\f0f5"}.o_icon-file-text-o:before,.o_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before,.o_sp_icon:before,.o_cp_item:before{content:"\f0f6"}.o_icon-building-o:before{content:"\f0f7"}.o_icon-hospital-o:before{content:"\f0f8"}.o_icon-ambulance:before{content:"\f0f9"}.o_icon-medkit:before{content:"\f0fa"}.o_icon-fighter-jet:before,.o_icon_read:before,.o_icon_to_read:before{content:"\f0fb"}.o_icon-beer:before{content:"\f0fc"}.o_icon-h-square:before{content:"\f0fd"}.o_icon-plus-square:before{content:"\f0fe"}.o_icon-angle-double-left:before,.o_icon_move_left:before,.o_icon_previous_page:before{content:"\f100"}.o_icon-angle-double-right:before,.o_icon_move_right:before,.o_icon_next_page:before{content:"\f101"}.o_icon-angle-double-up:before,.o_icon_move_up:before{content:"\f102"}.o_icon-angle-double-down:before,.o_icon_move_down:before{content:"\f103"}.o_icon-angle-left:before{content:"\f104"}.o_icon-angle-right:before{content:"\f105"}.o_icon-angle-up:before{content:"\f106"}.o_icon-angle-down:before{content:"\f107"}.o_icon-desktop:before,.o_vc_icon:before,.o_vitero_icon:before,.o_openmeetings_icon:before{content:"\f108"}.o_icon-laptop:before{content:"\f109"}.o_icon-tablet:before{content:"\f10a"}.o_icon-mobile-phone:before,.o_icon-mobile:before{content:"\f10b"}.o_icon-circle-o:before,.o_projectbroker_icon:before{content:"\f10c"}.o_icon-quote-left:before{content:"\f10d"}.o_icon-quote-right:before{content:"\f10e"}.o_icon-spinner:before{content:"\f110"}.o_icon-circle:before,.o_icon_status_available:before,.o_icon_toggle:before,.o_black_led:before,.o_green_led:before,.o_yellow_led:before,.o_red_led:before{content:"\f111"}.o_icon-mail-reply:before,.o_icon-reply:before{content:"\f112"}.o_icon-github-alt:before{content:"\f113"}.o_icon-folder-o:before,.o_icon_coursefolder:before,.o_filetype_folder:before{content:"\f114"}.o_icon-folder-open-o:before,.o_filetype_folder_open:before,.o_bc_icon:before{content:"\f115"}.o_icon-smile-o:before{content:"\f118"}.o_icon-frown-o:before{content:"\f119"}.o_icon-meh-o:before,.o_FileResource-SURVEY_icon:before,.o_iqsurv_icon:before{content:"\f11a"}.o_icon-gamepad:before{content:"\f11b"}.o_icon-keyboard-o:before{content:"\f11c"}.o_icon-flag-o:before{content:"\f11d"}.o_icon-flag-checkered:before{content:"\f11e"}.o_icon-terminal:before{content:"\f120"}.o_icon-code:before,.o_icon_code:before{content:"\f121"}.o_icon-mail-reply-all:before,.o_icon-reply-all:before{content:"\f122"}.o_icon-star-half-empty:before,.o_icon-star-half-full:before,.o_icon-star-half-o:before{content:"\f123"}.o_icon-location-arrow:before{content:"\f124"}.o_icon-crop:before{content:"\f125"}.o_icon-code-fork:before{content:"\f126"}.o_icon-unlink:before,.o_icon-chain-broken:before{content:"\f127"}.o_icon-question:before{content:"\f128"}.o_icon-info:before{content:"\f129"}.o_icon-exclamation:before{content:"\f12a"}.o_icon-superscript:before{content:"\f12b"}.o_icon-subscript:before{content:"\f12c"}.o_icon-eraser:before,.o_middel:before{content:"\f12d"}.o_icon-puzzle-piece:before,.o_icon_eportfolio_add:before,.o_EPStructuredMapTemplate_icon:before,.o_ep_icon:before{content:"\f12e"}.o_icon-microphone:before{content:"\f130"}.o_icon-microphone-slash:before{content:"\f131"}.o_icon-shield:before{content:"\f132"}.o_icon-calendar-o:before{content:"\f133"}.o_icon-fire-extinguisher:before{content:"\f134"}.o_icon-rocket:before{content:"\f135"}.o_icon-maxcdn:before{content:"\f136"}.o_icon-chevron-circle-left:before{content:"\f137"}.o_icon-chevron-circle-right:before{content:"\f138"}.o_icon-chevron-circle-up:before{content:"\f139"}.o_icon-chevron-circle-down:before{content:"\f13a"}.o_icon-html5:before{content:"\f13b"}.o_icon-css3:before{content:"\f13c"}.o_icon-anchor:before{content:"\f13d"}.o_icon-unlock-alt:before{content:"\f13e"}.o_icon-bullseye:before{content:"\f140"}.o_icon-ellipsis-h:before,.o_mi_qtifib:before{content:"\f141"}.o_icon-ellipsis-v:before{content:"\f142"}.o_icon-rss-square:before{content:"\f143"}.o_icon-play-circle:before{content:"\f144"}.o_icon-ticket:before{content:"\f145"}.o_icon-minus-square:before{content:"\f146"}.o_icon-minus-square-o:before{content:"\f147"}.o_icon-level-up:before{content:"\f148"}.o_icon-level-down:before{content:"\f149"}.o_icon-check-square:before,.o_mi_qtikprim:before{content:"\f14a"}.o_icon-pencil-square:before{content:"\f14b"}.o_icon-external-link-square:before{content:"\f14c"}.o_icon-share-square:before{content:"\f14d"}.o_icon-compass:before{content:"\f14e"}.o_icon-toggle-down:before,.o_icon_show_more:before,.o_icon-caret-square-o-down:before{content:"\f150"}.o_icon-toggle-up:before,.o_icon_show_less:before,.o_icon-caret-square-o-up:before{content:"\f151"}.o_icon-toggle-right:before,.o_icon-caret-square-o-right:before{content:"\f152"}.o_icon-euro:before,.o_icon-eur:before{content:"\f153"}.o_icon-gbp:before{content:"\f154"}.o_icon-dollar:before,.o_icon_booking:before,.o_icon-usd:before{content:"\f155"}.o_icon-rupee:before,.o_icon-inr:before{content:"\f156"}.o_icon-cny:before,.o_icon-rmb:before,.o_icon-yen:before,.o_icon-jpy:before{content:"\f157"}.o_icon-ruble:before,.o_icon-rouble:before,.o_icon-rub:before{content:"\f158"}.o_icon-won:before,.o_icon-krw:before{content:"\f159"}.o_icon-bitcoin:before,.o_icon-btc:before{content:"\f15a"}.o_icon-file:before{content:"\f15b"}.o_icon-file-text:before,.o_icon_new_document:before{content:"\f15c"}.o_icon-sort-alpha-asc:before{content:"\f15d"}.o_icon-sort-alpha-desc:before{content:"\f15e"}.o_icon-sort-amount-asc:before,.o_icon_sort_menu:before{content:"\f160"}.o_icon-sort-amount-desc:before{content:"\f161"}.o_icon-sort-numeric-asc:before{content:"\f162"}.o_icon-sort-numeric-desc:before{content:"\f163"}.o_icon-thumbs-up:before{content:"\f164"}.o_icon-thumbs-down:before{content:"\f165"}.o_icon-youtube-square:before{content:"\f166"}.o_icon-youtube:before{content:"\f167"}.o_icon-xing:before{content:"\f168"}.o_icon-xing-square:before{content:"\f169"}.o_icon-youtube-play:before{content:"\f16a"}.o_icon-dropbox:before{content:"\f16b"}.o_icon-stack-overflow:before{content:"\f16c"}.o_icon-instagram:before{content:"\f16d"}.o_icon-flickr:before{content:"\f16e"}.o_icon-adn:before{content:"\f170"}.o_icon-bitbucket:before{content:"\f171"}.o_icon-bitbucket-square:before{content:"\f172"}.o_icon-tumblr:before{content:"\f173"}.o_icon-tumblr-square:before{content:"\f174"}.o_icon-long-arrow-down:before{content:"\f175"}.o_icon-long-arrow-up:before{content:"\f176"}.o_icon-long-arrow-left:before{content:"\f177"}.o_icon-long-arrow-right:before{content:"\f178"}.o_icon-apple:before,.o_icon_apple:before{content:"\f179"}.o_icon-windows:before{content:"\f17a"}.o_icon-android:before{content:"\f17b"}.o_icon-linux:before{content:"\f17c"}.o_icon-dribbble:before{content:"\f17d"}.o_icon-skype:before{content:"\f17e"}.o_icon-foursquare:before{content:"\f180"}.o_icon-trello:before{content:"\f181"}.o_icon-female:before{content:"\f182"}.o_icon-male:before{content:"\f183"}.o_icon-gittip:before{content:"\f184"}.o_icon-sun-o:before{content:"\f185"}.o_icon-moon-o:before{content:"\f186"}.o_icon-archive:before,.o_FileResource-IMSCP_icon:before,.o_FileResource-SCORMCP_icon:before,.o_cp_icon:before,.o_scorm_icon:before{content:"\f187"}.o_icon-bug:before,.o_icon_dev:before{content:"\f188"}.o_icon-vk:before{content:"\f189"}.o_icon-weibo:before{content:"\f18a"}.o_icon-renren:before{content:"\f18b"}.o_icon-pagelines:before{content:"\f18c"}.o_icon-stack-exchange:before{content:"\f18d"}.o_icon-arrow-circle-o-right:before{content:"\f18e"}.o_icon-arrow-circle-o-left:before{content:"\f190"}.o_icon-toggle-left:before,.o_icon-caret-square-o-left:before{content:"\f191"}.o_icon-dot-circle-o:before,.o_icon_status_dnd:before,.o_mi_qtisc:before{content:"\f192"}.o_icon-wheelchair:before{content:"\f193"}.o_icon-vimeo-square:before{content:"\f194"}.o_icon-turkish-lira:before,.o_icon-try:before{content:"\f195"}.o_icon-plus-square-o:before{content:"\f196"}.o_icon-space-shuttle:before{content:"\f197"}.o_icon-slack:before,.o_icon_math:before{content:"\f198"}.o_icon-envelope-square:before,.o_icon_mailto:before{content:"\f199"}.o_icon-wordpress:before{content:"\f19a"}.o_icon-openid:before{content:"\f19b"}.o_icon-institution:before,.o_icon-bank:before,.o_icon_institution:before,.o_icon-university:before{content:"\f19c"}.o_icon-mortar-board:before,.o_icon-graduation-cap:before{content:"\f19d"}.o_icon-yahoo:before,.o_icon_yahoo:before{content:"\f19e"}.o_icon-google:before{content:"\f1a0"}.o_icon-reddit:before{content:"\f1a1"}.o_icon-reddit-square:before{content:"\f1a2"}.o_icon-stumbleupon-circle:before{content:"\f1a3"}.o_icon-stumbleupon:before{content:"\f1a4"}.o_icon-delicious:before,.o_icon_delicious:before{content:"\f1a5"}.o_icon-digg:before,.o_icon_digg:before{content:"\f1a6"}.o_icon-pied-piper-square:before,.o_icon-pied-piper:before{content:"\f1a7"}.o_icon-pied-piper-alt:before{content:"\f1a8"}.o_icon-drupal:before{content:"\f1a9"}.o_icon-joomla:before{content:"\f1aa"}.o_icon-language:before{content:"\f1ab"}.o_icon-fax:before{content:"\f1ac"}.o_icon-building:before{content:"\f1ad"}.o_icon-child:before{content:"\f1ae"}.o_icon-paw:before{content:"\f1b0"}.o_icon-spoon:before{content:"\f1b1"}.o_icon-cube:before,.o_icon_courseeditor:before,.o_CourseModule_icon:before{content:"\f1b2"}.o_icon-cubes:before,.o_st_icon:before{content:"\f1b3"}.o_icon-behance:before{content:"\f1b4"}.o_icon-behance-square:before{content:"\f1b5"}.o_icon-steam:before{content:"\f1b6"}.o_icon-steam-square:before{content:"\f1b7"}.o_icon-recycle:before,.o_icon_recycle:before{content:"\f1b8"}.o_icon-automobile:before,.o_icon-car:before{content:"\f1b9"}.o_icon-cab:before,.o_icon-taxi:before{content:"\f1ba"}.o_icon-tree:before{content:"\f1bb"}.o_icon-spotify:before{content:"\f1bc"}.o_icon-deviantart:before{content:"\f1bd"}.o_icon-soundcloud:before{content:"\f1be"}.o_icon-database:before,.o_icon_coursedb:before{content:"\f1c0"}.o_icon-file-pdf-o:before,.o_filetype_ps:before,.o_filetype_pdf:before{content:"\f1c1"}.o_icon-file-word-o:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:"\f1c2"}.o_icon-file-excel-o:before,.o_filetype_xls:before,.o_filetype_xlsx:before{content:"\f1c3"}.o_icon-file-powerpoint-o:before,.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:"\f1c4"}.o_icon-file-photo-o:before,.o_icon-file-picture-o:before,.o_icon-file-image-o:before,.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:"\f1c5"}.o_icon-file-zip-o:before,.o_icon-file-archive-o:before,.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:"\f1c6"}.o_icon-file-sound-o:before,.o_icon-file-audio-o:before,.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:"\f1c7"}.o_icon-file-movie-o:before,.o_icon-file-video-o:before,.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:"\f1c8"}.o_icon-file-code-o:before,.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before,.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:"\f1c9"}.o_icon-vine:before{content:"\f1ca"}.o_icon-codepen:before{content:"\f1cb"}.o_icon-jsfiddle:before{content:"\f1cc"}.o_icon-life-bouy:before,.o_icon-life-saver:before,.o_icon-support:before,.o_icon-life-ring:before{content:"\f1cd"}.o_icon-circle-o-notch:before{content:"\f1ce"}.o_icon-ra:before,.o_icon-rebel:before{content:"\f1d0"}.o_icon-ge:before,.o_icon-empire:before{content:"\f1d1"}.o_icon-git-square:before{content:"\f1d2"}.o_icon-git:before{content:"\f1d3"}.o_icon-hacker-news:before{content:"\f1d4"}.o_icon-tencent-weibo:before{content:"\f1d5"}.o_icon-qq:before{content:"\f1d6"}.o_icon-wechat:before,.o_icon-weixin:before{content:"\f1d7"}.o_icon-send:before,.o_icon-paper-plane:before{content:"\f1d8"}.o_icon-send-o:before,.o_icon-paper-plane-o:before{content:"\f1d9"}.o_icon-history:before,.o_icon_version:before{content:"\f1da"}.o_icon-circle-thin:before,.o_icon_courseareas:before{content:"\f1db"}.o_icon-header:before,.o_icon_header:before{content:"\f1dc"}.o_icon-paragraph:before{content:"\f1dd"}.o_icon-sliders:before{content:"\f1de"}.o_icon-share-alt:before{content:"\f1e0"}.o_icon-share-alt-square:before{content:"\f1e1"}.o_icon-bomb:before,.o_icon_timelimit:before{content:"\f1e2"}.o_icon_bookmark{color:#996633}.o_icon_bookmark_add{color:#999999}.o_icon_delete{color:#A87E7E}.o_icon_error{color:#d9534f}.o_icon_help{cursor:help}.o_icon_info{color:#5bc0de}.o_icon_new{color:#5cb85c}.o_icon_mandatory{color:#f0ad4e}.o_icon_managed{color:#999}.o_icon_read{color:green}.o_icon_readonly{color:red}.o_icon_status_available{color:#006633}.o_icon_status_dnd{color:#CCCC33}.o_icon_status_unavailable{color:#996633}.o_icon_to_read{color:blue}.o_icon_warn{color:#f0ad4e}.o_black_led{color:#428bca}.o_green_led{color:#5cb85c}.o_yellow_led{color:#f0ad4e}.o_red_led{color:#d9534f}.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png")}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png")}.o_portrait_anonymous{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png")}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png")}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/dummy_small.png")}a.o_chelp{padding:1px 3px;font-size:10px;line-height:1.5;border-radius:2px}div.o_chelp_wrapper{position:relative}.o_undecorated:hover,a.o_icon:hover,.o_withEllipsis .o_morelink:hover,.o_withEllipsis .o_lesslink:hover,#o_main_wrapper #o_toplink:hover,.o_button_toggle:hover,.o_noti .o_label:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_undecorated:focus,a.o_icon:focus,.o_withEllipsis .o_morelink:focus,.o_withEllipsis .o_lesslink:focus,#o_main_wrapper #o_toplink:focus,.o_button_toggle:focus,.o_noti .o_label:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus{text-decoration:none}.o_block_bottom,.o_block,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-bottom:1em}.o_block_top,.o_block,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-top:1em}.o_block_large_bottom,.o_block_large,.o_button_group,.o_block_with_datecomp{margin-bottom:2em}.o_block_large_top,.o_block_large,.o_button_group,.o_block_with_datecomp{margin-top:2em}.o_scrollblock{overflow-x:auto;overflow-y:hidden}.o_copy_code{overflow-x:auto;overflow-y:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button{margin-right:1em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child{margin-right:0}.o_nowrap{white-space:nowrap}.o_titled_wrapper .o_content{margin-top:20px}.o_portrait img{background-color:#eee;background-position:50% 50%;background-repeat:no-repeat}.o_portrait img.o_small{width:30px;height:30px}.o_portrait img.o_large{width:100px;height:100px}.o_video{display:inline-block}.o_image{display:inline-block;max-width:100%}.o_rotate_90,#o_main_wrapper #o_main_container #o_main_center #o_offcanvas_toggle{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.o_segments_content{margin-top:20px}.o_withEllipsis .o_morelink,.o_withEllipsis .o_lesslink{display:none}.o_withEllipsis.o_hasOverflow .o_morelink{display:block}.o_withEllipsis.o_hasOverflow .o_lesslink{display:none}.o_withEllipsis.o_hasOverflow.o_showOverflow{height:auto !important}.o_withEllipsis.o_hasOverflow.o_showOverflow .o_morelink{display:none}.o_withEllipsis.o_hasOverflow.o_showOverflow .o_lesslink{display:block}.o_info,.o_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc,.o_important,.o_bc_empty,.o_course_run .o_no_scoreinfo,.o_success,.o_warning,.o_form .o_warning,.o_error,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback{margin:20px 0;padding:20px;background-color:#eee;border-left:3px solid #d4d4d4}.o_info h2,.o_note h2,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.o_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.o_success h2,.o_warning h2,.o_form .o_warning h2,.o_error h2,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback h2,.o_info h3,.o_note h3,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.o_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.o_success h3,.o_warning h3,.o_form .o_warning h3,.o_error h3,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox_content h3,div.o_qti_item_itemfeedback h3,.o_info h4,.o_note h4,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.o_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.o_success h4,.o_warning h4,.o_form .o_warning h4,.o_error h4,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox_content h4,div.o_qti_item_itemfeedback h4,.o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_info h2,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_togglebox_wrapper div.o_togglebox_content .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback .o_cal .fc-header-title h2,.o_cal .fc-header-title div.o_qti_item_itemfeedback h2,.o_info h5,.o_note h5,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5,.o_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5,.o_success h5,.o_warning h5,.o_form .o_warning h5,.o_error h5,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox_content h5,div.o_qti_item_itemfeedback h5{color:#bbbbbb}p.o_info,p.o_note,.o_form p.o_desc,.o_course_run p.o_statusinfo,.o_course_stats p.o_desc,p.o_important,p.o_bc_empty,.o_course_run p.o_no_scoreinfo,p.o_success,p.o_warning,.o_form p.o_warning,p.o_error,.o_form p.o_info,div.o_info,div.o_note,.o_form div.o_desc,.o_course_run div.o_statusinfo,.o_course_stats div.o_desc,div.o_important,div.o_bc_empty,.o_course_run div.o_no_scoreinfo,div.o_success,div.o_warning,.o_form div.o_warning,div.o_error,.o_form div.o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback{margin:20px 0}.o_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc{background-color:#f4f8fa;border-color:#5bc0de}.o_note h2,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.o_note h3,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.o_note h4,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.o_note h5,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5{color:#5bc0de}p.o_note,.o_form p.o_desc,.o_course_run p.o_statusinfo,.o_course_stats p.o_desc,div.o_note,.o_form div.o_desc,.o_course_run div.o_statusinfo,.o_course_stats div.o_desc{margin:20px 0}.o_important,.o_bc_empty,.o_course_run .o_no_scoreinfo{background-color:#FFF1A4;border-color:#F4D000}.o_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.o_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.o_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.o_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#F4D000}p.o_important,p.o_bc_empty,.o_course_run p.o_no_scoreinfo,div.o_important,div.o_bc_empty,.o_course_run div.o_no_scoreinfo{margin:20px 0}.o_success{background-color:#d6e9c6;border-color:#3c763d}.o_success h2,.o_success h3,.o_success h4,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_success h5{color:#3c763d}o.o_success,div.o_success{margin:20px 0}.o_warning,.o_form .o_warning{background-color:#FFD5AA;border-color:#FF9E3E}.o_warning h2,.o_form .o_warning h2,.o_warning h3,.o_form .o_warning h3,.o_warning h4,.o_form .o_warning h4,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_warning h5,.o_form .o_warning h5{color:#FF9E3E}o.o_warning,.o_form o.o_warning,div.o_warning,.o_form div.o_warning{margin:20px 0}.o_error{background-color:#fdf7f7;border-color:#d9534f}.o_error h2,.o_error h3,.o_error h4,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_error h5{color:#d9534f}o.o_error,div.o_error{margin:20px 0}.o_border_box{border:1px solid #999;padding:1em;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}p.o_border_box,div.o_border_box{margin:1em 0}table.b_grid{background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:2px 5px;border:1px solid #888}table.b_grid thead th{background:#ccc}table.b_grid tbody th{background:#eee}table.b_border{background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:2px 5px;border:1px solid #888}table.b_full{width:99.5%}table td{vertical-align:top}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}.b_selected,p.b_selected,div.b_selected{font-weight:bold}.b_dimmed,p.b_dimmed,div.b_dimmed{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;opacity:0.4}.b_disabled,p.b_disabled,div.b_disabled{color:#999}.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.b_xsmall,sup,sub,p.b_xsmall,div.b_xsmall{font-size:80%}.b_small,small,p.b_small,div.b_small{font-size:90%}.b_large,p.b_large,div.b_large{font-size:110%}.b_xlarge,big,p.b_xlarge,div.b_xlarge{font-size:120%}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.o_ochre{color:#c8a959}.o_blue{color:#12223F}a.b_link_extern{background:transparent url("../../openolat/images/external_link_trimmed.png") no-repeat right top;padding-right:13px}a.b_link_mailto{background:transparent url("../../openolat/images/mail_small.png") no-repeat left center;padding-left:18px}a.b_link_forward{background:transparent url("../../openolat/images/arrow_right.png") no-repeat right center;padding-right:18px}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_centered{display:block;margin:0 auto 2em auto}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:60px}#o_navbar_wrapper{z-index:4}#o_navbar_wrapper #o_navbar_container{position:relative}#o_navbar_wrapper #o_navbar_container a.o_navbar-brand{font-size:40px;vertical-align:top;font-weight:bold;color:#31729B}#o_navbar_wrapper #o_navbar_container a.o_navbar-brand:after{content:"\221E"}.o_navbar .o_navbar_tabs li a{padding-right:30px}.o_navbar .o_navbar_tabs .o_navbar_tab_close{position:absolute;top:15px;right:0.5em;padding:0;width:1em;height:1em}.o_navbar .o_navbar_tabs .o_navbar_tab_close i:before{color:#A87E7E}.o_navbar .o_navbar_tabs .o_navbar_tab_close:hover i:before{color:#CC0000}.o_navbar #o_navbar_tools #o_navbar_langchooser{color:#777;padding:15px}.o_navbar #o_navbar_tools #o_navbar_langchooser form span+div{display:inline}.o_navbar #o_navbar_tools #o_navbar_help a i{margin-right:0.4em}.o_navbar #o_navbar_tools #o_navbar_my_menu .dropdown-toggle{padding-left:45px}.o_navbar #o_navbar_tools #o_navbar_my_menu img{position:absolute;left:7px;top:10px;height:30px;width:30px}.o_navbar.o_navbar-offcanvas .o_navbar_tab_close{top:10px}.o_navbar.o_navbar-offcanvas .o_navbar_personalTool{display:none}.o_navbar.o_navbar-offcanvas #o_navbar_my_menu a,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener a{color:#999}.o_navbar.o_navbar-offcanvas #o_navbar_my_menu a:hover,.o_navbar.o_navbar-offcanvas #o_navbar_my_menu a:focus,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener a:hover,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener a:focus{color:#fff;background-color:transparent}.o_navbar.o_navbar-offcanvas #o_navbar_my_menu .dropdown-toggle,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener .dropdown-toggle{display:none}.o_navbar.o_navbar-offcanvas #o_navbar_my_menu .dropdown-menu,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener .dropdown-menu{box-shadow:none;position:relative;top:0;left:0;display:block;float:none;background-color:#222;color:#999;font-size:14px}.o_navbar.o_navbar-offcanvas #o_navbar_my_menu .dropdown-menu .divider,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener .dropdown-menu .divider{background:none}.o_navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.o_navbar:before,.o_navbar:after{content:" ";display:table}.o_navbar:after{clear:both}.o_navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.o_navbar-collapse:before,.o_navbar-collapse:after{content:" ";display:table}.o_navbar-collapse:after{clear:both}.o_navbar-collapse.o_collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.o_navbar-offcanvas .o_navbar-collapse{width:auto;border-top:0;box-shadow:none;margin-top:10px;margin-right:-15px;margin-left:-15px}.o_navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.o_navbar-brand:hover,.o_navbar-brand:focus{text-decoration:none}.o_navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.o_navbar-toggle:focus{outline:none}.o_navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.o_navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.o_navbar-nav{margin:7.5px -15px}.o_navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}.o_collapse .o_navbar-nav{float:left;margin:0}.o_collapse .o_navbar-nav>li{float:left}.o_collapse .o_navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.o_collapse .o_navbar-nav.o_navbar-right:last-child{margin-right:-15px}.o_collapse.o_navbar-collapse .o_navbar-left{float:left !important}.o_collapse.o_navbar-collapse .o_navbar-right{float:right !important}.o_navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (max-width: 767px){.o_navbar-form .form-group{margin-bottom:5px}} + */@font-face{font-family:'FontAwesome';src:url("../../../font-awesome/fonts/fontawesome-webfont.eot?v=4.1.0");src:url("../../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.1.0") format("embedded-opentype"),url("../../../font-awesome/fonts/fontawesome-webfont.woff?v=4.1.0") format("woff"),url("../../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.1.0") format("truetype"),url("../../../font-awesome/fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg,.o_icon_help{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.28571em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.o_icon-li.o_icon-lg,.o_icon-li.o_icon_help{left:-1.85714em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right,div.o_chelp_wrapper,.o_withEllipsis .o_ellipsis_links,#o_main_wrapper #o_main_container #o_main_right,.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete,.o_noti,.o_repo_details .o_lead .o_media{float:right}.pull-left,#o_main_wrapper #o_main_container #o_main_left,#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary,.o_comments .o_comment_wrapper .o_avatar,.o_cal_toptoolbar .o_cal_toptoolbar_sub,.o_cal_toptoolbar .o_cal_toptoolbar_help,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper,.o_catalog .o_sublevels .o_sublevel,.o_repo_details .o_social .o_rating_wrapper{float:left}.o_icon.pull-left,#o_main_wrapper #o_main_container .o_icon#o_main_left,#o_navbar_imclient .o_icon#o_im_message,#o_navbar_imclient .o_icon#o_im_status,#o_navbar_imclient .o_icon#o_im_summary,.o_comments .o_comment_wrapper .o_icon.o_avatar,.o_cal_toptoolbar .o_icon.o_cal_toptoolbar_sub,.o_cal_toptoolbar .o_icon.o_cal_toptoolbar_help,.o_feed .o_blog_posts .o_ratings_and_comments .o_icon.o_rating_wrapper,.o_catalog .o_sublevels .o_icon.o_sublevel,.o_repo_details .o_social .o_icon.o_rating_wrapper{margin-right:.3em}.o_icon.pull-right,div.o_icon.o_chelp_wrapper,.o_withEllipsis .o_icon.o_ellipsis_links,#o_main_wrapper #o_main_container .o_icon#o_main_right,.o_comments .o_comment_wrapper .o_icon.o_reply,.o_comments .o_comment_wrapper .o_icon.o_delete,.o_icon.o_noti,.o_repo_details .o_lead .o_icon.o_media{margin-left:.3em}.o_icon-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon-glass:before{content:"\f000"}.o_icon-music:before{content:"\f001"}.o_icon-search:before,.o_icon_search:before{content:"\f002"}.o_icon-envelope-o:before,.o_icon_mail:before,.o_co_icon:before{content:"\f003"}.o_icon-heart:before{content:"\f004"}.o_icon-star:before,.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before{content:"\f005"}.o_icon-star-o:before,.o_icon_rating_off:before{content:"\f006"}.o_icon-user:before,.o_icon_user:before{content:"\f007"}.o_icon-film:before,.o_icon_video:before{content:"\f008"}.o_icon-th-large:before{content:"\f009"}.o_icon-th:before{content:"\f00a"}.o_icon-th-list:before{content:"\f00b"}.o_icon-check:before,.o_icon_check:before{content:"\f00c"}.o_icon-times:before,.o_icon_close:before,.o_icon_close_tab:before,.o_icon_close_tool:before{content:"\f00d"}.o_icon-search-plus:before{content:"\f00e"}.o_icon-search-minus:before{content:"\f010"}.o_icon-power-off:before{content:"\f011"}.o_icon-signal:before{content:"\f012"}.o_icon-gear:before,.o_icon_customize:before,.o_icon_edit_metadata:before,.o_icon_tool:before,.o_icon-cog:before{content:"\f013"}.o_icon-trash-o:before,.o_icon_delete_item:before{content:"\f014"}.o_icon-home:before,.o_icon_home:before{content:"\f015"}.o_icon-file-o:before,.o_FileResource-FILE_icon:before,.o_filetype_file:before,.o_filetype_ico:before{content:"\f016"}.o_icon-clock-o:before,.o_icon_expenditure:before{content:"\f017"}.o_icon-road:before{content:"\f018"}.o_icon-download:before,.o_icon_archive_tool:before,.o_icon_download:before{content:"\f019"}.o_icon-arrow-circle-o-down:before{content:"\f01a"}.o_icon-arrow-circle-o-up:before{content:"\f01b"}.o_icon-inbox:before{content:"\f01c"}.o_icon-play-circle-o:before{content:"\f01d"}.o_icon-rotate-right:before,.o_icon-repeat:before{content:"\f01e"}.o_icon-refresh:before,.o_icon_attempt_limit:before,.o_icon_refresh:before{content:"\f021"}.o_icon-list-alt:before{content:"\f022"}.o_icon-lock:before,.o_icon_locked:before,.o_ac_membersonly_icon:before,.o_midlock:before{content:"\f023"}.o_icon-flag:before{content:"\f024"}.o_icon-headphones:before{content:"\f025"}.o_icon-volume-off:before{content:"\f026"}.o_icon-volume-down:before{content:"\f027"}.o_icon-volume-up:before,.o_icon_audio:before{content:"\f028"}.o_icon-qrcode:before{content:"\f029"}.o_icon-barcode:before{content:"\f02a"}.o_icon-tag:before{content:"\f02b"}.o_icon-tags:before{content:"\f02c"}.o_icon-book:before{content:"\f02d"}.o_icon-bookmark:before,.o_icon_bookmark:before{content:"\f02e"}.o_icon-print:before,.o_icon_print:before{content:"\f02f"}.o_icon-camera:before{content:"\f030"}.o_icon-font:before{content:"\f031"}.o_icon-bold:before,.o_icon_bold:before{content:"\f032"}.o_icon-italic:before,.o_icon_italic:before{content:"\f033"}.o_icon-text-height:before{content:"\f034"}.o_icon-text-width:before{content:"\f035"}.o_icon-align-left:before,.o_mi_qtiessay:before{content:"\f036"}.o_icon-align-center:before{content:"\f037"}.o_icon-align-right:before{content:"\f038"}.o_icon-align-justify:before{content:"\f039"}.o_icon-list:before,.o_icon_list:before{content:"\f03a"}.o_icon-dedent:before,.o_icon-outdent:before{content:"\f03b"}.o_icon-indent:before{content:"\f03c"}.o_icon-video-camera:before,.o_FileResource-PODCAST_icon:before,.o_podcast_icon:before{content:"\f03d"}.o_icon-photo:before,.o_icon-image:before,.o_icon-picture-o:before{content:"\f03e"}.o_icon-pencil:before,.o_icon_notes:before{content:"\f040"}.o_icon-map-marker:before{content:"\f041"}.o_icon-adjust:before{content:"\f042"}.o_icon-tint:before{content:"\f043"}.o_icon-edit:before,.o_icon_edit:before,.o_icon_edit_file:before,.o_icon_readonly:before,.o_icon_readwrite:before,.o_icon-pencil-square-o:before,.o_FileResource-TEST_icon:before,.o_iqtest_icon:before,.o_iqself_icon:before{content:"\f044"}.o_icon-share-square-o:before{content:"\f045"}.o_icon-check-square-o:before,.o_mi_qtimc:before,.o_cl_icon:before{content:"\f046"}.o_icon-arrows:before,.o_icon_move:before{content:"\f047"}.o_icon-step-backward:before{content:"\f048"}.o_icon-fast-backward:before{content:"\f049"}.o_icon-backward:before{content:"\f04a"}.o_icon-play:before{content:"\f04b"}.o_icon-pause:before{content:"\f04c"}.o_icon-stop:before,.o_icon_close_resource:before{content:"\f04d"}.o_icon-forward:before{content:"\f04e"}.o_icon-fast-forward:before{content:"\f050"}.o_icon-step-forward:before{content:"\f051"}.o_icon-eject:before{content:"\f052"}.o_icon-chevron-left:before,.o_icon_back:before{content:"\f053"}.o_icon-chevron-right:before,.o_icon_start:before{content:"\f054"}.o_icon-plus-circle:before{content:"\f055"}.o_icon-minus-circle:before,.o_icon_delete:before{content:"\f056"}.o_icon-times-circle:before,.o_icon_failed:before{content:"\f057"}.o_icon-check-circle:before,.o_icon_passed:before,.o_midpub:before{content:"\f058"}.o_icon-question-circle:before,.o_icon_help:before{content:"\f059"}.o_icon-info-circle:before,.o_icon_impress:before,.o_icon_info:before,.o_icon_news:before,.o_infomsg_icon:before{content:"\f05a"}.o_icon-crosshairs:before{content:"\f05b"}.o_icon-times-circle-o:before,.o_icon_status_unavailable:before{content:"\f05c"}.o_icon-check-circle-o:before{content:"\f05d"}.o_icon-ban:before{content:"\f05e"}.o_icon-arrow-left:before{content:"\f060"}.o_icon-arrow-right:before{content:"\f061"}.o_icon-arrow-up:before{content:"\f062"}.o_icon-arrow-down:before{content:"\f063"}.o_icon-mail-forward:before,.o_icon-share:before,.o_icon_publish:before{content:"\f064"}.o_icon-expand:before{content:"\f065"}.o_icon-compress:before{content:"\f066"}.o_icon-plus:before{content:"\f067"}.o_icon-minus:before{content:"\f068"}.o_icon-asterisk:before,.o_icon_new:before,.o_icon_mandatory:before{content:"\f069"}.o_icon-exclamation-circle:before,.o_icon_error:before{content:"\f06a"}.o_icon-gift:before,.o_ac_free_icon:before{content:"\f06b"}.o_icon-leaf:before{content:"\f06c"}.o_icon-fire:before{content:"\f06d"}.o_icon-eye:before,.o_icon_details:before,.o_icon_preview:before{content:"\f06e"}.o_icon-eye-slash:before{content:"\f070"}.o_icon-warning:before,.o_midwarn:before,.o_miderr:before,.o_icon-exclamation-triangle:before,.o_icon_warn:before{content:"\f071"}.o_icon-plane:before{content:"\f072"}.o_icon-calendar:before,.o_icon_calendar:before,.o_icon_lifecycle:before,.o_calendar_icon:before,.o_cal_icon:before{content:"\f073"}.o_icon-random:before{content:"\f074"}.o_icon-comment:before,.o_icon_status_chat:before{content:"\f075"}.o_icon-magnet:before{content:"\f076"}.o_icon-chevron-up:before,.o_icon_top:before{content:"\f077"}.o_icon-chevron-down:before{content:"\f078"}.o_icon-retweet:before,.o_icon_managed:before{content:"\f079"}.o_icon-shopping-cart:before{content:"\f07a"}.o_icon-folder:before,.o_icon_new_folder:before{content:"\f07b"}.o_icon-folder-open:before{content:"\f07c"}.o_icon-arrows-v:before{content:"\f07d"}.o_icon-arrows-h:before,.o_icon_spacer:before{content:"\f07e"}.o_icon-bar-chart-o:before{content:"\f080"}.o_icon-twitter-square:before,.o_icon_twitter:before{content:"\f081"}.o_icon-facebook-square:before,.o_icon_facebook:before{content:"\f082"}.o_icon-camera-retro:before{content:"\f083"}.o_icon-key:before,.o_icon_password:before,.o_ac_token_icon:before{content:"\f084"}.o_icon-gears:before,.o_icon_actions:before,.o_icon_settings:before,.o_icon-cogs:before{content:"\f085"}.o_icon-comments:before,.o_icon_comments:before{content:"\f086"}.o_icon-thumbs-o-up:before,.o_ms_icon:before{content:"\f087"}.o_icon-thumbs-o-down:before{content:"\f088"}.o_icon-star-half:before{content:"\f089"}.o_icon-heart-o:before{content:"\f08a"}.o_icon-sign-out:before,.o_icon_logout:before{content:"\f08b"}.o_icon-linkedin-square:before{content:"\f08c"}.o_icon-thumb-tack:before{content:"\f08d"}.o_icon-external-link:before,.o_icon_content_popup:before,.o_icon_external_link:before,.o_FileResource-SHAREDFOLDER:before,.o_tu_icon:before,.o_lti_icon:before{content:"\f08e"}.o_icon-sign-in:before,.o_icon_login:before,.o_en_icon:before{content:"\f090"}.o_icon-trophy:before,.o_icon_assessment_tool:before{content:"\f091"}.o_icon-github-square:before{content:"\f092"}.o_icon-upload:before,.o_icon_upload:before{content:"\f093"}.o_icon-lemon-o:before{content:"\f094"}.o_icon-phone:before{content:"\f095"}.o_icon-square-o:before{content:"\f096"}.o_icon-bookmark-o:before,.o_icon_bookmark_add:before{content:"\f097"}.o_icon-phone-square:before{content:"\f098"}.o_icon-twitter:before{content:"\f099"}.o_icon-facebook:before{content:"\f09a"}.o_icon-github:before{content:"\f09b"}.o_icon-unlock:before{content:"\f09c"}.o_icon-credit-card:before,.o_ac_paypal_icon:before{content:"\f09d"}.o_icon-rss:before,.o_icon_notification:before,.o_icon_rss:before{content:"\f09e"}.o_icon-hdd-o:before{content:"\f0a0"}.o_icon-bullhorn:before,.o_FileResource-BLOG_icon:before,.o_blog_icon:before{content:"\f0a1"}.o_icon-bell:before{content:"\f0f3"}.o_icon-certificate:before,.o_icon_certificate:before{content:"\f0a3"}.o_icon-hand-o-right:before{content:"\f0a4"}.o_icon-hand-o-left:before{content:"\f0a5"}.o_icon-hand-o-up:before{content:"\f0a6"}.o_icon-hand-o-down:before{content:"\f0a7"}.o_icon-arrow-circle-left:before,.o_icon_previous:before{content:"\f0a8"}.o_icon-arrow-circle-right:before,.o_icon_next:before{content:"\f0a9"}.o_icon-arrow-circle-up:before{content:"\f0aa"}.o_icon-arrow-circle-down:before{content:"\f0ab"}.o_icon-globe:before,.o_icon_language:before,.o_FileResource-WIKI_icon:before,.o_wiki_icon:before{content:"\f0ac"}.o_icon-wrench:before{content:"\f0ad"}.o_icon-tasks:before,.o_ta_icon:before{content:"\f0ae"}.o_icon-filter:before,.o_icon_filter:before{content:"\f0b0"}.o_icon-briefcase:before{content:"\f0b1"}.o_icon-arrows-alt:before{content:"\f0b2"}.o_icon-group:before,.o_ac_group_icon:before,.o_icon-users:before,.o_icon_group:before,.o_icon_membersmanagement:before,.o_cmembers_icon:before{content:"\f0c0"}.o_icon-chain:before,.o_icon-link:before,.o_icon_link:before,.o_ll_icon:before{content:"\f0c1"}.o_icon-cloud:before{content:"\f0c2"}.o_icon-flask:before{content:"\f0c3"}.o_icon-cut:before,.o_icon-scissors:before{content:"\f0c4"}.o_icon-copy:before,.o_icon_copy:before,.o_icon-files-o:before,.o_dialog_icon:before{content:"\f0c5"}.o_icon-paperclip:before{content:"\f0c6"}.o_icon-save:before,.o_icon-floppy-o:before{content:"\f0c7"}.o_icon-square:before{content:"\f0c8"}.o_icon-navicon:before,.o_icon-reorder:before,.o_icon-bars:before{content:"\f0c9"}.o_icon-list-ul:before{content:"\f0ca"}.o_icon-list-ol:before,.o_icon_list_num:before{content:"\f0cb"}.o_icon-strikethrough:before{content:"\f0cc"}.o_icon-underline:before{content:"\f0cd"}.o_icon-table:before,.o_icon_table:before{content:"\f0ce"}.o_icon-magic:before,.o_icon_wizard:before{content:"\f0d0"}.o_icon-truck:before{content:"\f0d1"}.o_icon-pinterest:before{content:"\f0d2"}.o_icon-pinterest-square:before{content:"\f0d3"}.o_icon-google-plus-square:before,.o_icon_google:before{content:"\f0d4"}.o_icon-google-plus:before{content:"\f0d5"}.o_icon-money:before{content:"\f0d6"}.o_icon-caret-down:before,.o_icon_close_tree:before,.o_icon_close_togglebox:before,.o_togglebox_wrapper .o_opener.o_in i:before{content:"\f0d7"}.o_icon-caret-up:before{content:"\f0d8"}.o_icon-caret-left:before{content:"\f0d9"}.o_icon-caret-right:before,.o_icon_open_tree:before,.o_icon_open_togglebox:before,.o_togglebox_wrapper .o_opener i:before{content:"\f0da"}.o_icon-columns:before{content:"\f0db"}.o_icon-unsorted:before,.o_icon-sort:before,.o_icon_sort:before{content:"\f0dc"}.o_icon-sort-down:before,.o_icon-sort-desc:before,.o_icon_sort_desc:before{content:"\f0dd"}.o_icon-sort-up:before,.o_icon-sort-asc:before,.o_icon_sort_asc:before{content:"\f0de"}.o_icon-envelope:before,.o_icon_message:before{content:"\f0e0"}.o_icon-linkedin:before{content:"\f0e1"}.o_icon-rotate-left:before,.o_icon-undo:before{content:"\f0e2"}.o_icon-legal:before,.o_icon-gavel:before{content:"\f0e3"}.o_icon-dashboard:before,.o_icon-tachometer:before,.o_icon_statistics_tool:before{content:"\f0e4"}.o_icon-comment-o:before,.o_icon_chat:before,.o_icon_comments_none:before,.o_icon_post:before,.o_forum_message_icon:before{content:"\f0e5"}.o_icon-comments-o:before,.o_fo_icon:before{content:"\f0e6"}.o_icon-flash:before,.o_icon-bolt:before{content:"\f0e7"}.o_icon-sitemap:before{content:"\f0e8"}.o_icon-umbrella:before{content:"\f0e9"}.o_icon-paste:before,.o_icon-clipboard:before{content:"\f0ea"}.o_icon-lightbulb-o:before{content:"\f0eb"}.o_icon-exchange:before{content:"\f0ec"}.o_icon-cloud-download:before{content:"\f0ed"}.o_icon-cloud-upload:before{content:"\f0ee"}.o_icon-user-md:before{content:"\f0f0"}.o_icon-stethoscope:before{content:"\f0f1"}.o_icon-suitcase:before{content:"\f0f2"}.o_icon-bell-o:before{content:"\f0a2"}.o_icon-coffee:before{content:"\f0f4"}.o_icon-cutlery:before{content:"\f0f5"}.o_icon-file-text-o:before,.o_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before,.o_sp_icon:before,.o_cp_item:before{content:"\f0f6"}.o_icon-building-o:before{content:"\f0f7"}.o_icon-hospital-o:before{content:"\f0f8"}.o_icon-ambulance:before{content:"\f0f9"}.o_icon-medkit:before{content:"\f0fa"}.o_icon-fighter-jet:before,.o_icon_read:before,.o_icon_to_read:before{content:"\f0fb"}.o_icon-beer:before{content:"\f0fc"}.o_icon-h-square:before{content:"\f0fd"}.o_icon-plus-square:before{content:"\f0fe"}.o_icon-angle-double-left:before,.o_icon_move_left:before,.o_icon_previous_page:before{content:"\f100"}.o_icon-angle-double-right:before,.o_icon_move_right:before,.o_icon_next_page:before{content:"\f101"}.o_icon-angle-double-up:before,.o_icon_move_up:before{content:"\f102"}.o_icon-angle-double-down:before,.o_icon_move_down:before{content:"\f103"}.o_icon-angle-left:before{content:"\f104"}.o_icon-angle-right:before{content:"\f105"}.o_icon-angle-up:before{content:"\f106"}.o_icon-angle-down:before{content:"\f107"}.o_icon-desktop:before,.o_vc_icon:before,.o_vitero_icon:before,.o_openmeetings_icon:before{content:"\f108"}.o_icon-laptop:before{content:"\f109"}.o_icon-tablet:before{content:"\f10a"}.o_icon-mobile-phone:before,.o_icon-mobile:before{content:"\f10b"}.o_icon-circle-o:before,.o_projectbroker_icon:before{content:"\f10c"}.o_icon-quote-left:before{content:"\f10d"}.o_icon-quote-right:before{content:"\f10e"}.o_icon-spinner:before{content:"\f110"}.o_icon-circle:before,.o_icon_status_available:before,.o_icon_toggle:before,.o_black_led:before,.o_green_led:before,.o_yellow_led:before,.o_red_led:before{content:"\f111"}.o_icon-mail-reply:before,.o_icon-reply:before{content:"\f112"}.o_icon-github-alt:before{content:"\f113"}.o_icon-folder-o:before,.o_icon_coursefolder:before,.o_filetype_folder:before{content:"\f114"}.o_icon-folder-open-o:before,.o_FileResource-SHAREDFOLDER_icon:before,.o_filetype_folder_open:before,.o_bc_icon:before{content:"\f115"}.o_icon-smile-o:before{content:"\f118"}.o_icon-frown-o:before{content:"\f119"}.o_icon-meh-o:before,.o_FileResource-SURVEY_icon:before,.o_iqsurv_icon:before{content:"\f11a"}.o_icon-gamepad:before{content:"\f11b"}.o_icon-keyboard-o:before{content:"\f11c"}.o_icon-flag-o:before{content:"\f11d"}.o_icon-flag-checkered:before{content:"\f11e"}.o_icon-terminal:before{content:"\f120"}.o_icon-code:before,.o_icon_code:before{content:"\f121"}.o_icon-mail-reply-all:before,.o_icon-reply-all:before{content:"\f122"}.o_icon-star-half-empty:before,.o_icon-star-half-full:before,.o_icon-star-half-o:before{content:"\f123"}.o_icon-location-arrow:before{content:"\f124"}.o_icon-crop:before{content:"\f125"}.o_icon-code-fork:before{content:"\f126"}.o_icon-unlink:before,.o_icon-chain-broken:before{content:"\f127"}.o_icon-question:before{content:"\f128"}.o_icon-info:before{content:"\f129"}.o_icon-exclamation:before{content:"\f12a"}.o_icon-superscript:before{content:"\f12b"}.o_icon-subscript:before{content:"\f12c"}.o_icon-eraser:before,.o_middel:before{content:"\f12d"}.o_icon-puzzle-piece:before,.o_icon_eportfolio_add:before,.o_EPStructuredMapTemplate_icon:before,.o_ep_icon:before{content:"\f12e"}.o_icon-microphone:before{content:"\f130"}.o_icon-microphone-slash:before{content:"\f131"}.o_icon-shield:before{content:"\f132"}.o_icon-calendar-o:before{content:"\f133"}.o_icon-fire-extinguisher:before{content:"\f134"}.o_icon-rocket:before{content:"\f135"}.o_icon-maxcdn:before{content:"\f136"}.o_icon-chevron-circle-left:before{content:"\f137"}.o_icon-chevron-circle-right:before{content:"\f138"}.o_icon-chevron-circle-up:before{content:"\f139"}.o_icon-chevron-circle-down:before{content:"\f13a"}.o_icon-html5:before{content:"\f13b"}.o_icon-css3:before{content:"\f13c"}.o_icon-anchor:before{content:"\f13d"}.o_icon-unlock-alt:before{content:"\f13e"}.o_icon-bullseye:before{content:"\f140"}.o_icon-ellipsis-h:before,.o_mi_qtifib:before{content:"\f141"}.o_icon-ellipsis-v:before{content:"\f142"}.o_icon-rss-square:before{content:"\f143"}.o_icon-play-circle:before{content:"\f144"}.o_icon-ticket:before{content:"\f145"}.o_icon-minus-square:before{content:"\f146"}.o_icon-minus-square-o:before{content:"\f147"}.o_icon-level-up:before{content:"\f148"}.o_icon-level-down:before{content:"\f149"}.o_icon-check-square:before,.o_mi_qtikprim:before{content:"\f14a"}.o_icon-pencil-square:before{content:"\f14b"}.o_icon-external-link-square:before{content:"\f14c"}.o_icon-share-square:before{content:"\f14d"}.o_icon-compass:before{content:"\f14e"}.o_icon-toggle-down:before,.o_icon_show_more:before,.o_icon-caret-square-o-down:before{content:"\f150"}.o_icon-toggle-up:before,.o_icon_show_less:before,.o_icon-caret-square-o-up:before{content:"\f151"}.o_icon-toggle-right:before,.o_icon-caret-square-o-right:before{content:"\f152"}.o_icon-euro:before,.o_icon-eur:before{content:"\f153"}.o_icon-gbp:before{content:"\f154"}.o_icon-dollar:before,.o_icon_booking:before,.o_icon-usd:before{content:"\f155"}.o_icon-rupee:before,.o_icon-inr:before{content:"\f156"}.o_icon-cny:before,.o_icon-rmb:before,.o_icon-yen:before,.o_icon-jpy:before{content:"\f157"}.o_icon-ruble:before,.o_icon-rouble:before,.o_icon-rub:before{content:"\f158"}.o_icon-won:before,.o_icon-krw:before{content:"\f159"}.o_icon-bitcoin:before,.o_icon-btc:before{content:"\f15a"}.o_icon-file:before{content:"\f15b"}.o_icon-file-text:before,.o_icon_new_document:before{content:"\f15c"}.o_icon-sort-alpha-asc:before{content:"\f15d"}.o_icon-sort-alpha-desc:before{content:"\f15e"}.o_icon-sort-amount-asc:before,.o_icon_sort_menu:before{content:"\f160"}.o_icon-sort-amount-desc:before{content:"\f161"}.o_icon-sort-numeric-asc:before{content:"\f162"}.o_icon-sort-numeric-desc:before{content:"\f163"}.o_icon-thumbs-up:before{content:"\f164"}.o_icon-thumbs-down:before{content:"\f165"}.o_icon-youtube-square:before{content:"\f166"}.o_icon-youtube:before{content:"\f167"}.o_icon-xing:before{content:"\f168"}.o_icon-xing-square:before{content:"\f169"}.o_icon-youtube-play:before{content:"\f16a"}.o_icon-dropbox:before{content:"\f16b"}.o_icon-stack-overflow:before{content:"\f16c"}.o_icon-instagram:before{content:"\f16d"}.o_icon-flickr:before{content:"\f16e"}.o_icon-adn:before{content:"\f170"}.o_icon-bitbucket:before{content:"\f171"}.o_icon-bitbucket-square:before{content:"\f172"}.o_icon-tumblr:before{content:"\f173"}.o_icon-tumblr-square:before{content:"\f174"}.o_icon-long-arrow-down:before{content:"\f175"}.o_icon-long-arrow-up:before{content:"\f176"}.o_icon-long-arrow-left:before{content:"\f177"}.o_icon-long-arrow-right:before{content:"\f178"}.o_icon-apple:before,.o_icon_apple:before{content:"\f179"}.o_icon-windows:before{content:"\f17a"}.o_icon-android:before{content:"\f17b"}.o_icon-linux:before{content:"\f17c"}.o_icon-dribbble:before{content:"\f17d"}.o_icon-skype:before{content:"\f17e"}.o_icon-foursquare:before{content:"\f180"}.o_icon-trello:before{content:"\f181"}.o_icon-female:before{content:"\f182"}.o_icon-male:before{content:"\f183"}.o_icon-gittip:before{content:"\f184"}.o_icon-sun-o:before{content:"\f185"}.o_icon-moon-o:before{content:"\f186"}.o_icon-archive:before,.o_FileResource-IMSCP_icon:before,.o_FileResource-SCORMCP_icon:before,.o_cp_icon:before,.o_scorm_icon:before{content:"\f187"}.o_icon-bug:before,.o_icon_dev:before{content:"\f188"}.o_icon-vk:before{content:"\f189"}.o_icon-weibo:before{content:"\f18a"}.o_icon-renren:before{content:"\f18b"}.o_icon-pagelines:before{content:"\f18c"}.o_icon-stack-exchange:before{content:"\f18d"}.o_icon-arrow-circle-o-right:before{content:"\f18e"}.o_icon-arrow-circle-o-left:before{content:"\f190"}.o_icon-toggle-left:before,.o_icon-caret-square-o-left:before{content:"\f191"}.o_icon-dot-circle-o:before,.o_icon_status_dnd:before,.o_mi_qtisc:before{content:"\f192"}.o_icon-wheelchair:before{content:"\f193"}.o_icon-vimeo-square:before{content:"\f194"}.o_icon-turkish-lira:before,.o_icon-try:before{content:"\f195"}.o_icon-plus-square-o:before{content:"\f196"}.o_icon-space-shuttle:before{content:"\f197"}.o_icon-slack:before,.o_icon_math:before{content:"\f198"}.o_icon-envelope-square:before,.o_icon_mailto:before{content:"\f199"}.o_icon-wordpress:before{content:"\f19a"}.o_icon-openid:before{content:"\f19b"}.o_icon-institution:before,.o_icon-bank:before,.o_icon_institution:before,.o_icon-university:before{content:"\f19c"}.o_icon-mortar-board:before,.o_icon-graduation-cap:before,.o_FileResource-GLOSSARY_icon:before{content:"\f19d"}.o_icon-yahoo:before,.o_icon_yahoo:before{content:"\f19e"}.o_icon-google:before{content:"\f1a0"}.o_icon-reddit:before{content:"\f1a1"}.o_icon-reddit-square:before{content:"\f1a2"}.o_icon-stumbleupon-circle:before{content:"\f1a3"}.o_icon-stumbleupon:before{content:"\f1a4"}.o_icon-delicious:before,.o_icon_delicious:before{content:"\f1a5"}.o_icon-digg:before,.o_icon_digg:before{content:"\f1a6"}.o_icon-pied-piper-square:before,.o_icon-pied-piper:before{content:"\f1a7"}.o_icon-pied-piper-alt:before{content:"\f1a8"}.o_icon-drupal:before{content:"\f1a9"}.o_icon-joomla:before{content:"\f1aa"}.o_icon-language:before{content:"\f1ab"}.o_icon-fax:before{content:"\f1ac"}.o_icon-building:before{content:"\f1ad"}.o_icon-child:before{content:"\f1ae"}.o_icon-paw:before{content:"\f1b0"}.o_icon-spoon:before{content:"\f1b1"}.o_icon-cube:before,.o_icon_courseeditor:before,.o_CourseModule_icon:before{content:"\f1b2"}.o_icon-cubes:before,.o_st_icon:before{content:"\f1b3"}.o_icon-behance:before{content:"\f1b4"}.o_icon-behance-square:before{content:"\f1b5"}.o_icon-steam:before{content:"\f1b6"}.o_icon-steam-square:before{content:"\f1b7"}.o_icon-recycle:before,.o_icon_recycle:before{content:"\f1b8"}.o_icon-automobile:before,.o_icon-car:before{content:"\f1b9"}.o_icon-cab:before,.o_icon-taxi:before{content:"\f1ba"}.o_icon-tree:before{content:"\f1bb"}.o_icon-spotify:before{content:"\f1bc"}.o_icon-deviantart:before{content:"\f1bd"}.o_icon-soundcloud:before{content:"\f1be"}.o_icon-database:before,.o_icon_coursedb:before{content:"\f1c0"}.o_icon-file-pdf-o:before,.o_FileResource-PDF_icon:before,.o_filetype_ps:before,.o_filetype_pdf:before{content:"\f1c1"}.o_icon-file-word-o:before,.o_FileResource-DOC_icon:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:"\f1c2"}.o_icon-file-excel-o:before,.o_FileResource-XLS_icon:before,.o_filetype_xls:before,.o_filetype_xlsx:before{content:"\f1c3"}.o_icon-file-powerpoint-o:before,.o_FileResource-PPT_icon:before,.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:"\f1c4"}.o_icon-file-photo-o:before,.o_icon-file-picture-o:before,.o_icon-file-image-o:before,.o_FileResource-IMAGE_icon:before,.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:"\f1c5"}.o_icon-file-zip-o:before,.o_icon-file-archive-o:before,.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:"\f1c6"}.o_icon-file-sound-o:before,.o_icon-file-audio-o:before,.o_FileResource-SOUND_icon:before,.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:"\f1c7"}.o_icon-file-movie-o:before,.o_icon-file-video-o:before,.o_FileResource-ANIM_icon:before,.o_FileResource-MOVIE_icon:before,.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:"\f1c8"}.o_icon-file-code-o:before,.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before,.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:"\f1c9"}.o_icon-vine:before{content:"\f1ca"}.o_icon-codepen:before{content:"\f1cb"}.o_icon-jsfiddle:before{content:"\f1cc"}.o_icon-life-bouy:before,.o_icon-life-saver:before,.o_icon-support:before,.o_icon-life-ring:before{content:"\f1cd"}.o_icon-circle-o-notch:before{content:"\f1ce"}.o_icon-ra:before,.o_icon-rebel:before{content:"\f1d0"}.o_icon-ge:before,.o_icon-empire:before{content:"\f1d1"}.o_icon-git-square:before{content:"\f1d2"}.o_icon-git:before{content:"\f1d3"}.o_icon-hacker-news:before{content:"\f1d4"}.o_icon-tencent-weibo:before{content:"\f1d5"}.o_icon-qq:before{content:"\f1d6"}.o_icon-wechat:before,.o_icon-weixin:before{content:"\f1d7"}.o_icon-send:before,.o_icon-paper-plane:before{content:"\f1d8"}.o_icon-send-o:before,.o_icon-paper-plane-o:before{content:"\f1d9"}.o_icon-history:before,.o_icon_version:before{content:"\f1da"}.o_icon-circle-thin:before,.o_icon_courseareas:before{content:"\f1db"}.o_icon-header:before,.o_icon_header:before{content:"\f1dc"}.o_icon-paragraph:before{content:"\f1dd"}.o_icon-sliders:before{content:"\f1de"}.o_icon-share-alt:before{content:"\f1e0"}.o_icon-share-alt-square:before{content:"\f1e1"}.o_icon-bomb:before,.o_icon_timelimit:before{content:"\f1e2"}.o_icon_bookmark{color:#996633}.o_icon_bookmark_add{color:#999999}.o_icon_delete{color:#A87E7E}.o_icon_error{color:#d9534f}.o_icon_help{cursor:help}.o_icon_info{color:#5bc0de}.o_icon_new{color:#5cb85c}.o_icon_mandatory{color:#f0ad4e}.o_icon_managed{color:#999}.o_icon_read{color:green}.o_icon_readonly{color:red}.o_icon_status_available{color:#006633}.o_icon_status_dnd{color:#CCCC33}.o_icon_status_unavailable{color:#996633}.o_icon_to_read{color:blue}.o_icon_warn{color:#f0ad4e}.o_black_led{color:#428bca}.o_green_led{color:#5cb85c}.o_yellow_led{color:#f0ad4e}.o_red_led{color:#d9534f}.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png")}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png")}.o_portrait_anonymous{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png")}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png")}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/dummy_small.png")}a.o_chelp{padding:1px 3px;font-size:10px;line-height:1.5;border-radius:2px}div.o_chelp_wrapper{position:relative}.o_undecorated:hover,a.o_icon:hover,.o_withEllipsis .o_morelink:hover,.o_withEllipsis .o_lesslink:hover,#o_main_wrapper #o_toplink:hover,.o_button_toggle:hover,.o_noti .o_label:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_undecorated:focus,a.o_icon:focus,.o_withEllipsis .o_morelink:focus,.o_withEllipsis .o_lesslink:focus,#o_main_wrapper #o_toplink:focus,.o_button_toggle:focus,.o_noti .o_label:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus{text-decoration:none}.o_block_bottom,.o_block,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-bottom:1em}.o_block_top,.o_block,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-top:1em}.o_block_large_bottom,.o_block_large,.o_button_group,.o_block_with_datecomp{margin-bottom:2em}.o_block_large_top,.o_block_large,.o_button_group,.o_block_with_datecomp{margin-top:2em}.o_scrollblock{overflow-x:auto;overflow-y:hidden}.o_copy_code{overflow-x:auto;overflow-y:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button{margin-right:1em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child{margin-right:0}.o_nowrap{white-space:nowrap}.o_titled_wrapper .o_content{margin-top:20px}.o_portrait img{background-color:#eee;background-position:50% 50%;background-repeat:no-repeat}.o_portrait img.o_small{width:30px;height:30px}.o_portrait img.o_large{width:100px;height:100px}.o_video{display:inline-block}.o_image{display:inline-block;max-width:100%}.o_rotate_90,#o_main_wrapper #o_main_container #o_main_center #o_offcanvas_toggle{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.o_segments_content{margin-top:20px}.o_withEllipsis .o_morelink,.o_withEllipsis .o_lesslink{display:none}.o_withEllipsis.o_hasOverflow .o_morelink{display:block}.o_withEllipsis.o_hasOverflow .o_lesslink{display:none}.o_withEllipsis.o_hasOverflow.o_showOverflow{height:auto !important}.o_withEllipsis.o_hasOverflow.o_showOverflow .o_morelink{display:none}.o_withEllipsis.o_hasOverflow.o_showOverflow .o_lesslink{display:block}.o_info,.o_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc,.o_important,.o_bc_empty,.o_course_run .o_no_scoreinfo,.o_success,.o_warning,.o_form .o_warning,.o_error,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback{margin:20px 0;padding:20px;background-color:#eee;border-left:3px solid #d4d4d4}.o_info h2,.o_note h2,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.o_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.o_success h2,.o_warning h2,.o_form .o_warning h2,.o_error h2,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback h2,.o_info h3,.o_note h3,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.o_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.o_success h3,.o_warning h3,.o_form .o_warning h3,.o_error h3,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox_content h3,div.o_qti_item_itemfeedback h3,.o_info h4,.o_note h4,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.o_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.o_success h4,.o_warning h4,.o_form .o_warning h4,.o_error h4,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox_content h4,div.o_qti_item_itemfeedback h4,.o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_info h2,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_togglebox_wrapper div.o_togglebox_content .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback .o_cal .fc-header-title h2,.o_cal .fc-header-title div.o_qti_item_itemfeedback h2,.o_info h5,.o_note h5,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5,.o_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5,.o_success h5,.o_warning h5,.o_form .o_warning h5,.o_error h5,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox_content h5,div.o_qti_item_itemfeedback h5{color:#bbbbbb}p.o_info,p.o_note,.o_form p.o_desc,.o_course_run p.o_statusinfo,.o_course_stats p.o_desc,p.o_important,p.o_bc_empty,.o_course_run p.o_no_scoreinfo,p.o_success,p.o_warning,.o_form p.o_warning,p.o_error,.o_form p.o_info,div.o_info,div.o_note,.o_form div.o_desc,.o_course_run div.o_statusinfo,.o_course_stats div.o_desc,div.o_important,div.o_bc_empty,.o_course_run div.o_no_scoreinfo,div.o_success,div.o_warning,.o_form div.o_warning,div.o_error,.o_form div.o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback{margin:20px 0}.o_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc{background-color:#f4f8fa;border-color:#5bc0de}.o_note h2,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.o_note h3,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.o_note h4,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.o_note h5,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5{color:#5bc0de}p.o_note,.o_form p.o_desc,.o_course_run p.o_statusinfo,.o_course_stats p.o_desc,div.o_note,.o_form div.o_desc,.o_course_run div.o_statusinfo,.o_course_stats div.o_desc{margin:20px 0}.o_important,.o_bc_empty,.o_course_run .o_no_scoreinfo{background-color:#FFF1A4;border-color:#F4D000}.o_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.o_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.o_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.o_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#F4D000}p.o_important,p.o_bc_empty,.o_course_run p.o_no_scoreinfo,div.o_important,div.o_bc_empty,.o_course_run div.o_no_scoreinfo{margin:20px 0}.o_success{background-color:#d6e9c6;border-color:#3c763d}.o_success h2,.o_success h3,.o_success h4,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_success h5{color:#3c763d}o.o_success,div.o_success{margin:20px 0}.o_warning,.o_form .o_warning{background-color:#FFD5AA;border-color:#FF9E3E}.o_warning h2,.o_form .o_warning h2,.o_warning h3,.o_form .o_warning h3,.o_warning h4,.o_form .o_warning h4,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_warning h5,.o_form .o_warning h5{color:#FF9E3E}o.o_warning,.o_form o.o_warning,div.o_warning,.o_form div.o_warning{margin:20px 0}.o_error{background-color:#fdf7f7;border-color:#d9534f}.o_error h2,.o_error h3,.o_error h4,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_error h5{color:#d9534f}o.o_error,div.o_error{margin:20px 0}.o_border_box{border:1px solid #999;padding:1em;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}p.o_border_box,div.o_border_box{margin:1em 0}table.b_grid{background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:2px 5px;border:1px solid #888}table.b_grid thead th{background:#ccc}table.b_grid tbody th{background:#eee}table.b_border{background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:2px 5px;border:1px solid #888}table.b_full{width:99.5%}table td{vertical-align:top}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}.b_selected,p.b_selected,div.b_selected{font-weight:bold}.b_dimmed,p.b_dimmed,div.b_dimmed{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;opacity:0.4}.b_disabled,p.b_disabled,div.b_disabled{color:#999}.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.b_xsmall,sup,sub,p.b_xsmall,div.b_xsmall{font-size:80%}.b_small,small,p.b_small,div.b_small{font-size:90%}.b_large,p.b_large,div.b_large{font-size:110%}.b_xlarge,big,p.b_xlarge,div.b_xlarge{font-size:120%}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.o_ochre{color:#c8a959}.o_blue{color:#12223F}a.b_link_extern{background:transparent url("../../openolat/images/external_link_trimmed.png") no-repeat right top;padding-right:13px}a.b_link_mailto{background:transparent url("../../openolat/images/mail_small.png") no-repeat left center;padding-left:18px}a.b_link_forward{background:transparent url("../../openolat/images/arrow_right.png") no-repeat right center;padding-right:18px}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_centered{display:block;margin:0 auto 2em auto}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:60px}#o_navbar_wrapper{z-index:4}#o_navbar_wrapper #o_navbar_container{position:relative}#o_navbar_wrapper #o_navbar_container a.o_navbar-brand{font-size:40px;vertical-align:top;font-weight:bold;color:#31729B}#o_navbar_wrapper #o_navbar_container a.o_navbar-brand:after{content:"\221E"}.o_navbar .o_navbar_tabs li a{padding-right:30px}.o_navbar .o_navbar_tabs .o_navbar_tab_close{position:absolute;top:15px;right:0.5em;padding:0;width:1em;height:1em}.o_navbar .o_navbar_tabs .o_navbar_tab_close i:before{color:#A87E7E}.o_navbar .o_navbar_tabs .o_navbar_tab_close:hover i:before{color:#CC0000}.o_navbar #o_navbar_tools #o_navbar_langchooser{color:#777;padding:15px}.o_navbar #o_navbar_tools #o_navbar_langchooser form span+div{display:inline}.o_navbar #o_navbar_tools #o_navbar_help a i{margin-right:0.4em}.o_navbar #o_navbar_tools #o_navbar_my_menu .dropdown-toggle{padding-left:45px}.o_navbar #o_navbar_tools #o_navbar_my_menu img{position:absolute;left:7px;top:10px;height:30px;width:30px}.o_navbar.o_navbar-offcanvas .o_navbar_tab_close{top:10px}.o_navbar.o_navbar-offcanvas .o_navbar_personalTool{display:none}.o_navbar.o_navbar-offcanvas #o_navbar_my_menu a,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener a{color:#999}.o_navbar.o_navbar-offcanvas #o_navbar_my_menu a:hover,.o_navbar.o_navbar-offcanvas #o_navbar_my_menu a:focus,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener a:hover,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener a:focus{color:#fff;background-color:transparent}.o_navbar.o_navbar-offcanvas #o_navbar_my_menu .dropdown-toggle,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener .dropdown-toggle{display:none}.o_navbar.o_navbar-offcanvas #o_navbar_my_menu .dropdown-menu,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener .dropdown-menu{box-shadow:none;position:relative;top:0;left:0;display:block;float:none;background-color:#222;color:#999;font-size:14px}.o_navbar.o_navbar-offcanvas #o_navbar_my_menu .dropdown-menu .divider,.o_navbar.o_navbar-offcanvas #o_navbar_search_opener .dropdown-menu .divider{background:none}.o_navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.o_navbar:before,.o_navbar:after{content:" ";display:table}.o_navbar:after{clear:both}.o_navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.o_navbar-collapse:before,.o_navbar-collapse:after{content:" ";display:table}.o_navbar-collapse:after{clear:both}.o_navbar-collapse.o_collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.o_navbar-offcanvas .o_navbar-collapse{width:auto;border-top:0;box-shadow:none;margin-top:10px;margin-right:-15px;margin-left:-15px}.o_navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.o_navbar-brand:hover,.o_navbar-brand:focus{text-decoration:none}.o_navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.o_navbar-toggle:focus{outline:none}.o_navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.o_navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.o_navbar-nav{margin:7.5px -15px}.o_navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}.o_collapse .o_navbar-nav{float:left;margin:0}.o_collapse .o_navbar-nav>li{float:left}.o_collapse .o_navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.o_collapse .o_navbar-nav.o_navbar-right:last-child{margin-right:-15px}.o_collapse.o_navbar-collapse .o_navbar-left{float:left !important}.o_collapse.o_navbar-collapse .o_navbar-right{float:right !important}.o_navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (max-width: 767px){.o_navbar-form .form-group{margin-bottom:5px}} .o_collapse .o_navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.o_collapse .o_navbar-form.o_navbar-right:last-child{margin-right:-15px}.o_navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.o_navbar-fixed-bottom .o_navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.o_navbar-btn{margin-top:8px;margin-bottom:8px}.o_navbar-btn.btn-sm,.btn-group-sm>.o_navbar-btn.btn,.btn-group-sm>a.o_navbar-btn.o_chelp{margin-top:10px;margin-bottom:10px}.o_navbar-btn.btn-xs,.btn-group-xs>.o_navbar-btn.btn,.btn-group-xs>a.o_navbar-btn.o_chelp{margin-top:14px;margin-bottom:14px}.o_navbar-text{margin-top:15px;margin-bottom:15px}.o_collapse .o_navbar-text{float:left;margin-left:15px;margin-right:15px}.o_collapse .o_navbar-text.o_navbar-right:last-child{margin-right:0}.o_navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.o_navbar-default .o_navbar-brand{color:#777}.o_navbar-default .o_navbar-brand:hover,.o_navbar-default .o_navbar-brand:focus{color:#5e5e5e;background-color:transparent}.o_navbar-default .o_navbar-text{color:#777}.o_navbar-default .o_navbar-nav>li>a{color:#777}.o_navbar-default .o_navbar-nav>li>a:hover,.o_navbar-default .o_navbar-nav>li>a:focus{color:#333;background-color:transparent}.o_navbar-default .o_navbar-nav>.active>a,.o_navbar-default .o_navbar-nav>.active>a:hover,.o_navbar-default .o_navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar-default .o_navbar-nav>.disabled>a,.o_navbar-default .o_navbar-nav>.disabled>a:hover,.o_navbar-default .o_navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.o_navbar-default .o_navbar-toggle{border-color:#ddd}.o_navbar-default .o_navbar-toggle:hover,.o_navbar-default .o_navbar-toggle:focus{background-color:#ddd}.o_navbar-default .o_navbar-toggle .icon-bar{background-color:#888}.o_navbar-default .o_navbar-collapse,.o_navbar-default .o_navbar-form{border-color:#e7e7e7}.o_navbar-default .o_navbar-nav>.open>a,.o_navbar-default .o_navbar-nav>.open>a:hover,.o_navbar-default .o_navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}.o_navbar-default .o_navbar-link{color:#777}.o_navbar-default .o_navbar-link:hover{color:#333}.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>li>a{color:#777}.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>li>a:hover,.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.active>a,.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.active>a:hover,.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.disabled>a,.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.disabled>a:hover,.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}.o_navbar-inverse{background-color:#222;border-color:#090909}.o_navbar-inverse .o_navbar-brand{color:#999}.o_navbar-inverse .o_navbar-brand:hover,.o_navbar-inverse .o_navbar-brand:focus{color:#fff;background-color:transparent}.o_navbar-inverse .o_navbar-text{color:#999}.o_navbar-inverse .o_navbar-nav>li>a{color:#999}.o_navbar-inverse .o_navbar-nav>li>a:hover,.o_navbar-inverse .o_navbar-nav>li>a:focus{color:#fff;background-color:transparent}.o_navbar-inverse .o_navbar-nav>.active>a,.o_navbar-inverse .o_navbar-nav>.active>a:hover,.o_navbar-inverse .o_navbar-nav>.active>a:focus{color:#fff;background-color:#090909}.o_navbar-inverse .o_navbar-nav>.disabled>a,.o_navbar-inverse .o_navbar-nav>.disabled>a:hover,.o_navbar-inverse .o_navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.o_navbar-inverse .o_navbar-toggle{border-color:#333}.o_navbar-inverse .o_navbar-toggle:hover,.o_navbar-inverse .o_navbar-toggle:focus{background-color:#333}.o_navbar-inverse .o_navbar-toggle .icon-bar{background-color:#fff}.o_navbar-inverse .o_navbar-collapse,.o_navbar-inverse .o_navbar-form{border-color:#101010}.o_navbar-inverse .o_navbar-nav>.open>a,.o_navbar-inverse .o_navbar-nav>.open>a:hover,.o_navbar-inverse .o_navbar-nav>.open>a:focus{background-color:#090909;color:#fff}.o_navbar-inverse .o_navbar-nav .o_navbar-link{color:#999}.o_navbar-inverse .o_navbar-nav .o_navbar-link:hover{color:#fff}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu .divider{background-color:#090909}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>li>a{color:#999}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>li>a:hover,.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.active>a,.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.active>a:hover,.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.disabled>a,.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.disabled>a:hover,.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}#o_main_wrapper{background:#fff;z-index:3}#o_main_wrapper #o_main_container{background:#fff}#o_main_wrapper #o_main_container #o_main_left{position:absolute}#o_main_wrapper #o_main_container #o_main_left #o_main_left_content{padding:30px 30px 30px 15px}#o_main_wrapper #o_main_container #o_main_right{position:relative;background:#999}#o_main_wrapper #o_main_container #o_main_right #o_main_right_content{padding:30px}#o_main_wrapper #o_main_container #o_main_center{position:relative}#o_main_wrapper #o_main_container #o_main_center h2:first-child{margin-top:0}@media screen and (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center{margin-left:0 !important}}#o_main_wrapper #o_main_container #o_main_center #o_offcanvas_toggle{position:absolute;left:-4em;top:0;left:-2em;top:1.7em;z-index:2}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:30px 15px}#o_main_wrapper #o_toplink{position:absolute;bottom:0;right:10px;text-align:center}@media (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:15px}} #o_footer_wrapper{position:absolute;bottom:0;width:100%;z-index:2;min-height:60px;background-color:#f5f5f5;color:#999;line-height:16px}#o_footer_wrapper a{color:#999}#o_footer_wrapper a:hover{color:#000}#o_footer_wrapper #o_footer_container{position:relative;padding-top:10px;min-height:60px;background:#f5f5f5}#o_footer_wrapper #o_footer_container #o_footer_user #o_counter{white-space:nowrap}#o_footer_wrapper #o_footer_container #o_footer_user #o_username{white-space:nowrap;margin-right:1em}#o_footer_wrapper #o_footer_container #o_footer_version{text-align:right}@media (max-width: 767px){#o_footer_wrapper #o_footer_container #o_footer_version{padding-top:10px;text-align:left}}#o_footer_wrapper #o_footer_container #o_footer_powered{text-align:center}#o_footer_wrapper #o_footer_container #o_footer_powered img{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#o_footer_wrapper #o_footer_container #o_footer_powered img:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}@media (max-width: 767px){#o_footer_wrapper #o_footer_container #o_footer_powered{display:none}} #o_share{margin-top:10px;width:250px}#o_share a{margin:0 5px 0 0;float:left;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#o_share a:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}body{overflow-x:hidden}.o_container_offcanvas{position:relative;max-width:1324px;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;-m-transition:all .25s ease-in-out;transition:all .25s ease-in-out}@media screen and (min-width: 1324px) and (max-width: 1574px){body.o_offcanvas_right_visible .o_container_offcanvas{left:-125px;max-width:1074px}}@media screen and (min-width: 1574px) and (max-width: 1824px){body.o_offcanvas_right_visible .o_container_offcanvas{left:-125px}}#o_offcanvas_right{position:absolute;top:0;right:-250px;width:250px;padding:15px 15px;background-color:#222;color:#999;border:1px solid #090909;-webkit-box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);min-height:100%;z-index:10;display:none}#o_offcanvas_right:before,#o_offcanvas_right:after{content:" ";display:table}#o_offcanvas_right:after{clear:both}@media screen and (max-width: 767px){.row-offcanvas{position:relative;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;transition:all .25s ease-out}.row-offcanvas-right{right:0}.row-offcanvas-right .sidebar-offcanvas{right:-50%}.row-offcanvas-right.active{right:50%}.row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}.row-offcanvas-left.active{left:50%}.sidebar-offcanvas{position:absolute;top:0;width:50%}}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=1);-moz-opacity:0.01;-khtml-opacity:0.01;opacity:0.01}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{margin:0px auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_icon_close{float:right;color:#999}.o_alert_info .alert .o_icon_close:hover{color:#555}.o_tree{position:relative;display:block;background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree ul{background-color:white;margin:0;padding:0;list-style-type:none}.o_tree ul li{margin:0;padding:0}.o_tree ul li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_tree ul li div a.o_tree_oc_l0{position:absolute;top:8px;left:1px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l0,.o_tree ul .o_tree_level_close.b_tree_oc_l0{z-index:10}.o_tree ul li div a.o_tree_oc_l1{position:absolute;top:8px;left:16px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l1,.o_tree ul .o_tree_level_close.b_tree_oc_l1{z-index:10}.o_tree ul li div a.o_tree_oc_l2{position:absolute;top:8px;left:31px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l2,.o_tree ul .o_tree_level_close.b_tree_oc_l2{z-index:10}.o_tree ul li div a.o_tree_oc_l3{position:absolute;top:8px;left:46px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l3,.o_tree ul .o_tree_level_close.b_tree_oc_l3{z-index:10}.o_tree ul li div a.o_tree_oc_l4{position:absolute;top:8px;left:61px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l4,.o_tree ul .o_tree_level_close.b_tree_oc_l4{z-index:10}.o_tree ul li div a.o_tree_oc_l5{position:absolute;top:8px;left:76px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l5,.o_tree ul .o_tree_level_close.b_tree_oc_l5{z-index:10}.o_tree ul li div a.o_tree_oc_l6{position:absolute;top:8px;left:91px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l6,.o_tree ul .o_tree_level_close.b_tree_oc_l6{z-index:10}.o_tree ul li div a.o_tree_oc_l7{position:absolute;top:8px;left:106px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l7,.o_tree ul .o_tree_level_close.b_tree_oc_l7{z-index:10}.o_tree ul li div a.o_tree_oc_l8{position:absolute;top:8px;left:121px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l8,.o_tree ul .o_tree_level_close.b_tree_oc_l8{z-index:10}.o_tree ul li div a.o_tree_oc_l9{position:absolute;top:8px;left:136px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l9,.o_tree ul .o_tree_level_close.b_tree_oc_l9{z-index:10}.o_tree ul li div a.o_tree_oc_l10{position:absolute;top:8px;left:151px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l10,.o_tree ul .o_tree_level_close.b_tree_oc_l10{z-index:10}.o_tree ul li div a.o_tree_oc_l11{position:absolute;top:8px;left:166px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l11,.o_tree ul .o_tree_level_close.b_tree_oc_l11{z-index:10}.o_tree ul li div a.o_tree_l0{display:block;padding:10px 2px 10px 14px;z-index:9}.o_tree ul li div a.o_tree_l1{display:block;padding:10px 2px 10px 29px;z-index:9}.o_tree ul li div a.o_tree_l2{display:block;padding:10px 2px 10px 44px;z-index:9}.o_tree ul li div a.o_tree_l3{display:block;padding:10px 2px 10px 59px;z-index:9}.o_tree ul li div a.o_tree_l4{display:block;padding:10px 2px 10px 74px;z-index:9}.o_tree ul li div a.o_tree_l5{display:block;padding:10px 2px 10px 89px;z-index:9}.o_tree ul li div a.o_tree_l6{display:block;padding:10px 2px 10px 104px;z-index:9}.o_tree ul li div a.o_tree_l7{display:block;padding:10px 2px 10px 119px;z-index:9}.o_tree ul li div a.o_tree_l8{display:block;padding:10px 2px 10px 134px;z-index:9}.o_tree ul li div a.o_tree_l9{display:block;padding:10px 2px 10px 149px;z-index:9}.o_tree ul li div a.o_tree_l10{display:block;padding:10px 2px 10px 164px;z-index:9}.o_tree ul li div a.o_tree_l11{display:block;padding:10px 2px 10px 179px;z-index:9}.o_tree ul span.o_tree_leaf{display:none}.o_tree ul li .badge{float:right;font-size:70%}.o_tree ul li div.o_dnd_sibling{margin:0;padding:0;border-bottom:none}.o_tree ul li a.active{font-weight:bold}.o_tree ul li a.active_parent{color:black;font-weight:bold}.o_tree .o_dnd_item{cursor:move;z-index:100}.o_tree .o_dnd_proxy{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;opacity:0.4;background-color:yellow}.o_tree .o_dnd_item.o_dnd_over{background-color:#ffff60}.o_tree .o_dnd_sibling{height:3px;width:100%}.o_tree .o_dnd_sibling.o_dnd_over{background:transparent url(../openolat/images/arrow_dd.png) top left no-repeat}.o_tree .o_dnd_l1{margin-left:0 !important}.o_tree .o_dnd_l2{margin-left:1em !important}.o_tree .o_dnd_l3{margin-left:2em !important}.o_tree .o_dnd_l4{margin-left:3em !important}.o_tree .o_dnd_l5{margin-left:4em !important}.o_tree .o_dnd_l6{margin-left:5em !important}.o_tree .o_dnd_l7{margin-left:6em !important}.o_tree .o_dnd_l8{margin-left:7em !important}.o_tree .o_dnd_l9{margin-left:8em !important}.o_tree .o_dnd_l10{margin-left:9em !important}.o_tree .o_dnd_l11{margin-left:10em !important}.o_breadcrumb{position:relative}.o_breadcrumb .o_breadcrumb_close{float:right}.o_form .o_icon_mandatory{position:absolute;right:-0.25em;line-height:1.5em}.o_form.form-horizontal .o_icon_mandatory{position:relative;right:0;line-height:inherit;margin-left:0.25em}.o_form .o_error{margin-top:1px;margin-bottom:0;padding:10px}.o_form .o_picker_wrapper{position:absolute;top:0;right:0;height:34px;width:34px;text-align:right;vertical-align:middle;line-height:34px;font-size:22px;color:#428bca}.o_form .o_picker_wrapper:hover{color:#2a6496}.o_form .o_date{position:relative;padding-right:34px}.o_form .o_filepreview{margin-bottom:10px}.o_form .o_fileinput{cursor:pointer;position:relative}.o_form .o_fileinput .o_fakechooser{position:relative;padding-right:34px;z-index:1}.o_form .o_fileinput .o_realchooser{position:absolute;top:0;left:0;z-index:2;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;opacity:0}.o_catalog .o_catalog_delete_img{position:relative;top:-0.5em}.o_button_toggle{border:1px solid #999;border-top-right-radius:9px;border-top-left-radius:9px;border-bottom-right-radius:9px;border-bottom-left-radius:9px;background:#eee;display:inline-block;height:18px;line-height:16px;font-size:16px;text-align:left;padding:0 0.5em 0 0;margin:0}.o_button_toggle i{color:#999;text-shadow:1px 0 2px rgba(0,0,0,0.25)}.o_button_toggle span{line-height:16px;vertical-align:top;font-size:60%;text-transform:uppercase}.o_button_toggle.o_on{text-align:right;padding:0 0 0 0.5em}.o_button_toggle.o_on i{color:#428bca;text-shadow:-1px 0 2px rgba(0,0,0,0.25)}.o_table_wrapper.o_table_flexi .o_table_body{margin-top:20px}.o_table_wrapper.o_table_flexi .table{margin-top:20px}.o_table_wrapper .o_table_search{max-width:50em}.o_table_wrapper .o_table_footer .o_table_buttons{text-align:center}.o_table_wrapper .o_table_footer .o_table_buttons input{margin-right:1em}.o_table_wrapper .o_table_footer .o_table_buttons input:last-child{margin-right:0}.o_table_wrapper .o_table_footer .o_table_pagination{text-align:center}.o_table_wrapper a.b_sorting{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow-resize-090.png") no-repeat center right}.o_table_wrapper a.b_sorting_asc{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow_up.png") no-repeat center right}.o_table_wrapper a.b_sorting_desc{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow_down.png") no-repeat center right}.o_table_wrapper .o_table{margin-bottom:0}.o_table_tools{margin-left:0.5em}.o_info .table-bordered td,.o_note .table-bordered td,.o_form .o_desc .table-bordered td,.o_course_run .o_statusinfo .table-bordered td,.o_course_stats .o_desc .table-bordered td,.o_important .table-bordered td,.o_bc_empty .table-bordered td,.o_course_run .o_no_scoreinfo .table-bordered td,.o_success .table-bordered td,.o_warning .table-bordered td,.o_error .table-bordered td,.o_togglebox_wrapper div.o_togglebox_content .table-bordered td,div.o_qti_item_itemfeedback .table-bordered td,o_note .table-bordered td,o_important .table-bordered td,o_warning .table-bordered td,o_error .table-bordered td{border-color:#333}.panel .o_table_layout{border-top:1px solid #ddd;padding-top:6px}.panel .o_table_count{padding:0 15px}#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary{position:relative;padding:15px 3px}#o_navbar_imclient #o_im_summary{padding-right:15px}#o_navbar_imclient #o_im_status div.o_chelp_wrapper{right:0.5em}.o_flag{position:relative;top:1px;display:inline-block;line-height:1;width:16px;height:16px;background-repeat:no-repeat;background-position:0 100%}.o_flag_en{background-image:url("../light/images/flags/gb.png")}.o_flag_de{background-image:url("../light/images/flags/de.png")}.o_flag_fr{background-image:url("../light/images/flags/fr.png")}.o_flag_it{background-image:url("../light/images/flags/it.png")}.o_flag_es{background-image:url("../light/images/flags/es.png")}.o_flag_da{background-image:url("../light/images/flags/dk.png")}.o_flag_cs{background-image:url("../light/images/flags/cz.png")}.o_flag_el{background-image:url("../light/images/flags/gr.png")}.o_flag_ee{background-image:url("../light/images/flags/ee.png")}.o_flag_ru{background-image:url("../light/images/flags/ru.png")}.o_flag_pl{background-image:url("../light/images/flags/pl.png")}.o_flag_zh_CN{background-image:url("../light/images/flags/cn.png")}.o_flag_zh_TW{background-image:url("../light/images/flags/tw.png")}.o_flag_lt{background-image:url("../light/images/flags/lt.png")}.o_flag_fa{background-image:url("../light/images/flags/ir.png")}.o_flag_pt_PT{background-image:url("../light/images/flags/pt.png")}.o_flag_pt_BR{background-image:url("../light/images/flags/br.png")}.o_flag_tr{background-image:url("../light/images/flags/tr.png")}.o_flag_hu{background-image:url("../light/images/flags/hu.png")}.o_flag_sq{background-image:url("../light/images/flags/al.png")}.o_flag_in{background-image:url("../light/images/flags/id.png")}.o_flag_ar{background-image:url("../light/images/flags/eg.png")}.o_flag_rm{background-image:url("../light/images/flags/rm.png")}.o_flag_af{background-image:url("../light/images/flags/za.png")}.o_flag_vi{background-image:url("../light/images/flags/vn.png")}.o_flag_mn{background-image:url("../light/images/flags/mn.png")}.o_flag_iw{background-image:url("../light/images/flags/il.png")}.o_flag_ko{background-image:url("../light/images/flags/kr.png")}.o_flag_nl_NL{background-image:url("../light/images/flags/nl.png")}.o_flag_jp{background-image:url("../light/images/flags/jp.png")}.o_flag_nb_NO{background-image:url("../light/images/flags/no.png")}.o_flag_et_EE{background-image:url("../light/images/flags/ee.png")}.o_flag_bg{background-image:url("../light/images/flags/bg.png")}.o_flag_hi_IN_ASIA{background-image:url("../light/images/flags/in.png")}.o_flag_ar_LB{background-image:url("../light/images/flags/lb.png")}.o_flag_gl_ES{background-image:url("../light/images/flags/galicia.png")}.o_rating .o_rating_title{font-size:12px}.o_rating .o_rating_items{white-space:nowrap}.o_rating .o_rating_items .o_icon{color:#f0ad4e}.o_rating .o_rating_items .o_icon:hover{color:#428bca}.o_rating .o_rating_items .o_legend{margin-left:1em;font-size:12px;line-height:1em}.o_rating .o_rating_explanation{font-size:12px}@media (max-width: 991px){.o_rating .o_rating_title,.o_rating .o_rating_explanation{display:none}} .o_comments .o_comment_wrapper .o_avatar{margin:0 1em 0 0}.o_ratings_and_comments .o_rating_wrapper{vertical-align:middle;display:inline-block}.o_ratings_and_comments a.o_comments{margin-left:10px;position:relative;top:0.1em}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#7eb0db}.d3chart .bar_default{fill:#428bca}.d3chart .bar_default_dark{fill:#2a6496}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_iframedisplay iframe{width:100%}.o_singlepage .o_edit{position:absolute;top:10px;right:37px}.o_content_popup{position:absolute;top:10px;right:12px}.o_module_cp_wrapper .o_tools{position:absolute;top:10px;right:12px;text-align:right;vertical-align:middle}.o_module_cp_wrapper .o_tools .o_search_wrapper{display:inline-block;position:relative;top:-2px}.o_bc_meta .o_thumbnail{width:200px;height:200px}.o_notifications_news_wrapper .o_notifications_news_subscription{margin:10px 0}.o_notifications_news_wrapper .o_notifications_news_subscription h4 i,.o_notifications_news_wrapper .o_notifications_news_subscription .o_cal .fc-header-title h2 i,.o_cal .fc-header-title .o_notifications_news_wrapper .o_notifications_news_subscription h2 i{display:none}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content{margin-left:1.5em;position:relative}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_icon{position:absolute;left:-1.5em;line-height:1.5em;top:0}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_url{margin-left:1.5em}.o_noti{margin:6px 0 6px 12px}.o_noti .o_label{cursor:help}@media (max-width: 767px){.o_noti .o_label span{display:none}} .panel-body .o_noti{margin:0}.o_datecomp{position:relative;width:40px;height:52px;border:1px solid #555;margin-right:12px;text-align:center;vertical-align:middle}.o_datecomp div.o_year{position:absolute;left:0;width:100%;top:-20px;height:20px;line-height:20px;font-size:10px}.o_datecomp div.o_month{height:20px;line-height:20px;font-size:12px}.o_datecomp div.o_day{height:30px;line-height:30px;font-size:18px;border-top:1px solid #555;background-color:#fff}.o_block_with_datecomp .o_head{position:relative;padding-left:52px}.o_block_with_datecomp .o_datecomp{position:absolute;top:0.2em;left:0}.o_block_with_datecomp .o_title{margin-top:0}.o_block_with_datecomp .o_content{border-left:5px solid #eee;padding:0 20px}.o_block_with_datecomp .o_block_footer{padding-left:25px}.o_cal_toptoolbar{margin-bottom:6px}.o_cal_toptoolbar .o_cal_toptoolbar_sub,.o_cal_toptoolbar .o_cal_toptoolbar_help{margin-right:12px}.o_feed .o_subscription a{margin-right:1.5em}.o_feed .o_subscription form{margin-top:6px}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_title,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_explanation,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_legend{display:none}.o_feed .o_blog_posts .o_ratings_and_comments a.o_comments span{display:none}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.typeahead,.tt-query,.tt-hint{width:396px;height:30px;padding:8px 12px;font-size:24px;line-height:30px;border:2px solid #ccc;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;outline:none}.typeahead{background-color:#fff}.typeahead:focus{border:2px solid #0097cf}.tt-query{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.tt-hint{color:#999}.tt-dropdown-menu{width:422px;margin-top:12px;padding:8px 0;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.tt-suggestion{padding:3px 20px;font-size:18px;line-height:24px}.tt-suggestion.tt-cursor{color:#fff;background-color:#0097cf}.tt-suggestion p{margin:0}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #428bca;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{border-right:1px solid #428bca}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #428bca;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#5bc0de}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:1em;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;font-size:90%;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;line-height:50px}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #428bca;border-bottom:1px solid #428bca}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels .o_sublevel{position:relative;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #428bca;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #428bca;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}} .o_repo_details{position:relative}.o_repo_details .o_lead .o_media{margin-left:2em;margin-bottom:2em}.o_repo_details .o_lead h1 i{display:none}.o_repo_details .o_overview i{margin-right:0.5em}.o_repo_details .o_overview div{margin-bottom:0.25em}.o_repo_details .o_start,.o_repo_details .o_book{margin:2em 0}.o_repo_details .o_social .o_comments{margin-left:1em}@media (max-width: 767px){.o_repo_details .o_lead p{font-size:16px}.o_repo_details .o_lead .o_media{margin-top:0}}@media (max-width: 613px){.o_repo_details .o_subcolumn{width:100%}} -.o_midpub{color:green}.o_midwarn{color:orange}.o_miderr{color:red}.o_passed{font-weight:bold}.o_passed th{color:#333}.o_failed{font-weight:bold}.o_failed th{color:#333}.o_unknown{font-weight:bold}.o_unknown th{color:#333}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #999}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_cmembers .o_cmember{margin:12px 0}.o_cmembers .o_cmember .o_portrait{margin-right:6px}.o_cmembers .o_cmember .o_cmember_info_wrapper{line-height:30px}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}.o_course_editor .o_node_config{margin-bottom:20px}#o_course_editor_errorbox ul,#o_course_editor_warningbox ul{list-style-type:none}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_editform_wrapper{margin-top:30px} +.o_midpub{color:green}.o_midwarn{color:orange}.o_miderr{color:red}.o_passed{font-weight:bold}.o_passed th{color:#333}.o_failed{font-weight:bold}.o_failed th{color:#333}.o_unknown{font-weight:bold}.o_unknown th{color:#333}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #999}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_cmembers .o_cmember{margin:12px 0}.o_cmembers .o_cmember .o_portrait{margin-right:6px}.o_cmembers .o_cmember .o_cmember_info_wrapper{line-height:30px}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}.o_course_editor .o_node_config{margin-bottom:20px}#o_course_editor_errorbox ul,#o_course_editor_warningbox ul{list-style-type:none}#o_course_editor_choose_nodetype ul{padding:0;list-style-type:none}div.b_selectiontree{font-size:95%}div.b_selectiontree div.b_selectiontree_item{clear:both;position:relative;top:0;left:0;vertical-align:middle;height:16px;width:auto}div.b_selectiontree div.b_selectiontree_item div{width:16px;height:16px;float:left;display:inline;background-repeat:no-repeat}div.b_selectiontree div.b_selectiontree_item div.b_selectiontree_content{float:left;display:inline;margin-left:0.5em;width:auto;white-space:nowrap}div.b_selectiontree div.b_selectiontree_content{width:auto}div.b_selectiontree div.b_selectiontree_content div{width:auto}div.b_selectiontree div.b_selectiontree_content input{width:1em;height:1em;padding:0;margin:0 0.5em;vertical-align:middle}div.b_selectiontree div.b_selectiontree_content input.b_radio{margin:0}div.b_selectiontree .b_selectiontree_line{background-image:url(../openolat/images/tree/dots.gif)}div.b_selectiontree .b_selectiontree_space{background-image:url(../openolat/images/tree/dots_spacer.gif)}div.b_selectiontree .b_selectiontree_junction{background-image:url(../openolat/images/tree/dots_nt.gif)}div.b_selectiontree .b_selectiontree_end{background-image:url(../openolat/images/tree/dots_nl.gif)}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_editform_wrapper{margin-top:30px}