@Override protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { if (source instanceof MultipleSelectionElement) { MultipleSelectionElement publishCheckbox = (MultipleSelectionElement) source; if (publishCheckbox.isEnabled()) { boolean enabled = publishCheckbox.isAtLeastSelected(1); String propName = (String) publishCheckbox.getUserObject(); // load and update config HomePageConfig conf = hpcm.loadConfigFor(identityToModify.getName()); conf.setEnabled(propName, enabled); hpcm.saveConfigTo(identityToModify.getName(), conf); updatePreview(ureq, conf); } } super.formInnerEvent(ureq, source, event); }
@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); }
protected void updatePreview(UserRequest ureq) { HomePageConfig conf = hpcm.loadConfigFor(identityToModify.getName()); updatePreview(ureq, conf); }