public HomePageSettingsController( UserRequest ureq, WindowControl wControl, Identity identityToModify, boolean isAdministrativeUser) { super(ureq, wControl, LAYOUT_BAREBONE); this.identityToModify = identityToModify; this.isAdministrativeUser = isAdministrativeUser; setTranslator(userManager.getPropertyHandlerTranslator(getTranslator())); userPropertyHandlers = userManager.getUserPropertyHandlersFor(usageIdentifier, isAdministrativeUser); initForm(ureq); }
@Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { boolean firstGroup = true; List<UserPropertyHandler> homepagePropertyHanders = userManager.getUserPropertyHandlersFor( HomePageConfig.class.getCanonicalName(), isAdministrativeUser); Map<String, FormLayoutContainer> groupContainerMap = new HashMap<>(); HomePageConfig conf = hpcm.loadConfigFor(identityToModify.getName()); for (UserPropertyHandler userPropertyHandler : userPropertyHandlers) { if (userPropertyHandler == null) { continue; } // add spacer if necessary (i.e. when group name changes) String group = userPropertyHandler.getGroup(); FormLayoutContainer groupContainer; if (groupContainerMap.containsKey(group)) { groupContainer = groupContainerMap.get(group); } else { groupContainer = FormLayoutContainer.createDefaultFormLayout("group." + group, getTranslator()); groupContainer.setFormTitle(translate("form.group." + group)); formLayout.add(groupContainer); groupContainerMap.put(group, groupContainer); if (firstGroup) { groupContainer.setFormContextHelp("Configuration"); firstGroup = false; } } if (homepagePropertyHanders.contains(userPropertyHandler)) { // add checkbox to container if configured for homepage usage identifier String checkboxName = userPropertyHandler.getName(); MultipleSelectionElement publishCheckbox = uifactory.addCheckboxesHorizontal( checkboxName, userPropertyHandler.i18nFormElementLabelKey(), groupContainer, checkKeys, checkValues); boolean isEnabled = conf.isEnabled(userPropertyHandler.getName()); publishCheckbox.select(checkKeys[0], isEnabled); publishCheckbox.setUserObject(userPropertyHandler.getName()); // Mandatory homepage properties can not be changed by user if (userManager.isMandatoryUserProperty( HomePageConfig.class.getCanonicalName(), userPropertyHandler)) { publishCheckbox.select(checkKeys[0], true); publishCheckbox.setEnabled(false); } else { publishCheckbox.addActionListener(FormEvent.ONCHANGE); } } } String previewPage = velocity_root + "/homepage_preview.html"; previewContainer = FormLayoutContainer.createCustomFormLayout("preview", getTranslator(), previewPage); previewContainer.setFormTitle(translate("tab.preview")); previewContainer.setRootForm(mainForm); formLayout.add(previewContainer); updatePreview(ureq); }