From 0d6184514e1cff39be06893f02731430ceeab3e4 Mon Sep 17 00:00:00 2001 From: uhensler <none@none> Date: Mon, 5 Mar 2018 12:10:26 +0100 Subject: [PATCH] OO-3170: Default config values after registering a new license handler. License enabled checkbox has wrong state after deactivating a license type. Do not show licenses in folder course node, if licenses are disabled. Minor optimisations in display of licenses in learning resources. --- .../modules/bc/components/ListRenderer.java | 25 +++++++++++++------ .../services/license/LicenseModule.java | 5 +++- .../ui/LicenseAdminConfigController.java | 18 +++++++++++++ .../RepositoryEditDescriptionController.java | 12 ++++++--- 4 files changed, 48 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java b/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java index 4afdaf71bcd..ae41682dec5 100644 --- a/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java +++ b/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java @@ -33,11 +33,14 @@ import java.util.List; import org.olat.core.CoreSpringFactory; import org.olat.core.commons.modules.bc.FileSelection; import org.olat.core.commons.modules.bc.FolderConfig; +import org.olat.core.commons.modules.bc.FolderLicenseHandler; import org.olat.core.commons.modules.bc.FolderManager; import org.olat.core.commons.modules.bc.meta.MetaInfo; import org.olat.core.commons.modules.bc.meta.MetaInfoFactory; import org.olat.core.commons.modules.bc.meta.tagged.MetaTagged; import org.olat.core.commons.services.license.License; +import org.olat.core.commons.services.license.LicenseHandler; +import org.olat.core.commons.services.license.LicenseModule; import org.olat.core.commons.services.license.ui.LicenseRenderer; import org.olat.core.gui.components.form.flexible.impl.NameValuePair; import org.olat.core.gui.control.winmgr.AJAXFlags; @@ -89,6 +92,7 @@ public class ListRenderer { private VFSLockManager lockManager; private UserManager userManager; + boolean licensesEnabled ; /** * Default constructor. @@ -114,6 +118,9 @@ public class ListRenderer { if(userManager == null) { userManager = CoreSpringFactory.getImpl(UserManager.class); } + LicenseModule licenseModule = CoreSpringFactory.getImpl(LicenseModule.class); + LicenseHandler licenseHandler = CoreSpringFactory.getImpl(FolderLicenseHandler.class); + licensesEnabled = licenseModule.isEnabled(licenseHandler); List<VFSItem> children = fc.getCurrentContainerChildren(); // folder empty? @@ -133,7 +140,9 @@ public class ListRenderer { .append("<thead><tr><th><a class='o_orderby ").append(sortCss,FolderComponent.SORT_NAME.equals(sortOrder)).append("' "); ubu.buildHrefAndOnclick(sb, null, iframePostEnabled, false, false, new NameValuePair(PARAM_SORTID, FolderComponent.SORT_NAME)) .append(">").append(translator.translate("header.Name")).append("</a>").append("</th>"); - sb.append("<th>").append(translator.translate("header.license")).append("</th>"); + if (licensesEnabled) { + sb.append("<th>").append(translator.translate("header.license")).append("</th>"); + } sb.append("<th><a class='o_orderby ").append(sortCss,FolderComponent.SORT_SIZE.equals(sortOrder)).append("' "); ubu.buildHrefAndOnclick(sb, null, iframePostEnabled, false, false, new NameValuePair(PARAM_SORTID, FolderComponent.SORT_SIZE)) .append(">").append(translator.translate("header.Size")).append("</a>") @@ -344,13 +353,15 @@ public class ListRenderer { sb.append("</td><td>"); // license - MetaInfoFactory metaInfoFactory = CoreSpringFactory.getImpl(MetaInfoFactory.class); - License license = metaInfoFactory.getLicense(metaInfo); - if (license != null) { - LicenseRenderer licenseRenderer = new LicenseRenderer(translator.getLocale()); - licenseRenderer.render(sb, license); + if (licensesEnabled) { + MetaInfoFactory metaInfoFactory = CoreSpringFactory.getImpl(MetaInfoFactory.class); + License license = metaInfoFactory.getLicense(metaInfo); + if (license != null) { + LicenseRenderer licenseRenderer = new LicenseRenderer(translator.getLocale()); + licenseRenderer.render(sb, license); + } + sb.append("</td><td>"); } - sb.append("</td><td>"); // filesize if (!isContainer) { diff --git a/src/main/java/org/olat/core/commons/services/license/LicenseModule.java b/src/main/java/org/olat/core/commons/services/license/LicenseModule.java index e30a1d1ff22..249cc25daac 100644 --- a/src/main/java/org/olat/core/commons/services/license/LicenseModule.java +++ b/src/main/java/org/olat/core/commons/services/license/LicenseModule.java @@ -66,7 +66,10 @@ public class LicenseModule extends AbstractSpringModule { String handlerType = handler.getType(); String enabledObj = getStringPropertyValue(ENABLED_HANDLERS + handlerType, true); - Boolean enabled = Boolean.valueOf(enabledObj); + Boolean enabled = Boolean.FALSE; + if (StringHelper.containsNonWhitespace(enabledObj)) { + enabled = Boolean.valueOf(enabledObj); + } enabledHandlers.put(handlerType, enabled); String defaultLicenseTypeKey = getStringPropertyValue(DEFAULT_LICENSE_TYPE + handlerType, true); diff --git a/src/main/java/org/olat/core/commons/services/license/ui/LicenseAdminConfigController.java b/src/main/java/org/olat/core/commons/services/license/ui/LicenseAdminConfigController.java index 72f95ccc038..842529f4ce4 100644 --- a/src/main/java/org/olat/core/commons/services/license/ui/LicenseAdminConfigController.java +++ b/src/main/java/org/olat/core/commons/services/license/ui/LicenseAdminConfigController.java @@ -59,6 +59,7 @@ import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController; import org.olat.core.gui.translator.Translator; +import org.olat.core.util.StringHelper; import org.olat.core.util.Util; import org.olat.core.util.i18n.ui.SingleKeyTranslatorController; import org.springframework.beans.factory.annotation.Autowired; @@ -446,6 +447,7 @@ public class LicenseAdminConfigController extends FormBasicController { LicenseType licenseType = handlerLicenseType.getLicenseType(); if (active) { licenseService.activate(handler, licenseType); + initDefaultLicenseType(handler, licenseType); reloadDefaultLicenseTypeEl(handler); } else { if (isDefaultLicenseType(handler, licenseType)) { @@ -456,8 +458,24 @@ public class LicenseAdminConfigController extends FormBasicController { reloadDefaultLicenseTypeEl(handler); } } + // checkboxes of enabled handlers was deactivated after deactivating a license type. + initGeneralElements(); } + /** + * Init the default license type of a new license handler, when the first + * license type if activated for the handler. + * + * @param handler + * @param licenseType + */ + private void initDefaultLicenseType(LicenseHandler handler, LicenseType licenseType) { + String defaultLicenseTypeKey = licenseModule.getDefaultLicenseTypeKey(handler); + if (!StringHelper.containsNonWhitespace(defaultLicenseTypeKey)) { + licenseModule.setDefaultLicenseTypeKey(handler, String.valueOf(licenseType.getKey())); + } + } + private boolean isDefaultLicenseType(LicenseHandler handler, LicenseType licenseType) { String defaultLicenseTypeKey = licenseModule.getDefaultLicenseTypeKey(handler); String licenseTypeKey = String.valueOf(licenseType.getKey()); diff --git a/src/main/java/org/olat/repository/ui/author/RepositoryEditDescriptionController.java b/src/main/java/org/olat/repository/ui/author/RepositoryEditDescriptionController.java index 74ebb58b30a..6d34b7d8fbf 100644 --- a/src/main/java/org/olat/repository/ui/author/RepositoryEditDescriptionController.java +++ b/src/main/java/org/olat/repository/ui/author/RepositoryEditDescriptionController.java @@ -36,10 +36,10 @@ import java.util.Set; import java.util.UUID; import org.olat.NewControllerFactory; -import org.olat.core.commons.services.license.ResourceLicense; import org.olat.core.commons.services.license.LicenseModule; import org.olat.core.commons.services.license.LicenseService; import org.olat.core.commons.services.license.LicenseType; +import org.olat.core.commons.services.license.ResourceLicense; import org.olat.core.commons.services.license.ui.LicenseSelectionConfig; import org.olat.core.commons.services.license.ui.LicenseUIFactory; import org.olat.core.gui.UserRequest; @@ -404,8 +404,12 @@ public class RepositoryEditDescriptionController extends FormBasicController { licenseSelected = !licenseService.isNoLicense(licenseType); freetextSelected = licenseService.isFreetext(licenseType); } - licensorEl.setVisible(licenseSelected); - licenseFreetextEl.setVisible(freetextSelected); + if (licensorEl != null) { + licensorEl.setVisible(licenseSelected); + } + if (licenseFreetextEl != null) { + licenseFreetextEl.setVisible(freetextSelected); + } } private void updateDatesVisibility() { @@ -477,7 +481,7 @@ public class RepositoryEditDescriptionController extends FormBasicController { LicenseType selectedLicenseType = licenseService.loadLicenseTypeByKey(selectedKey); isNoLicenseSelected = licenseService.isNoLicense(selectedLicenseType); } - return !isNoLicenseSelected; + return isNoLicenseSelected; } private boolean validateTextElement(TextElement el, int maxLength) { -- GitLab