diff --git a/src/main/java/org/olat/commons/calendar/ui/_content/indexWeekly.html b/src/main/java/org/olat/commons/calendar/ui/_content/indexWeekly.html index 7db03d41e032a76c590ce994e012dd279349bbdd..a1db2c557077c9e85ea156272a7e0eb1642fb7ee 100644 --- a/src/main/java/org/olat/commons/calendar/ui/_content/indexWeekly.html +++ b/src/main/java/org/olat/commons/calendar/ui/_content/indexWeekly.html @@ -4,7 +4,7 @@ #if ($caller == "home") $r.contextHelp("org.olat.commons.calendar","personal-calendar.html","help.hover.personalcal") #elseif ($caller == "course") - $r.contextHelp("org.olat.commons.calendar","course-calendar.html","help.hover.coursecal") + $r.contextHelp("Course Settings#_optionen") #elseif ($caller == "collab") $r.contextHelp("org.olat.commons.calendar","group-calendar.html","help.hover.groupcal") #elseif ($caller == "profile") diff --git a/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevController.java b/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevController.java new file mode 100644 index 0000000000000000000000000000000000000000..a6023c9dd939f40a1483ab650a11232d0701fb63 --- /dev/null +++ b/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevController.java @@ -0,0 +1,244 @@ +package org.olat.core.util.i18n.devtools; + +import java.util.Locale; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItem; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.FormLink; +import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; +import org.olat.core.gui.components.form.flexible.elements.TextElement; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.link.Link; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.util.i18n.I18nModule; +import org.springframework.beans.factory.annotation.Autowired; + +public class TranslationDevController extends FormBasicController { + + @Autowired + private TranslationDevManager translationDevManager; + + private String[] values = { "" }; + private String[] keys = { "on" }; + + private TextElement moveOrigin; + private TextElement moveTarget; + private FormLink submitMove; + + private MultipleSelectionElement sortDryRun; + private MultipleSelectionElement removeEmptyDryRun; + private MultipleSelectionElement removeDeletedNotDry; + + private FormLink submitSort; + + private FormLink submitRemoveEmpty; + + private TextElement mergeOrigin; + private TextElement mergeTarget; + private FormLink submitMerge; + + private TextElement removeRemoveDeletedOrigin; + private TextElement removeRemoveDeletedTarget; + private FormLink submitRemoveDeleted; + + private TextElement deleteKeyLocale; + private TextElement deleteKeyBundle; + private TextElement deleteKeyKey; + + private TextElement renameKeyBundle; + private TextElement renameKeyOrig; + private TextElement renameKeyTarget; + + private FormLink submitRename; + private FormLink submitDelete; + + private TextElement moveKeyOrigBundle; + private TextElement moveKeyKey; + private TextElement moveKeyTargetBundle; + + private FormLink submitMoveKeyToBundle; + private TextElement removePackageBundle; + private FormLink submitRemovePackage; + + private TextElement renameLanguageSource; + private TextElement renameLanguageTarget; + + private FormLink submitRenameLanguage; + private FormLink submitGetDupKeys; + private FormLink submitGetDupVals; + private TextElement addKeyBundle; + private TextElement addKeyLocale; + private TextElement addKeyValue; + private TextElement addKeyKey; + private FormLink submitAdd; + + public TranslationDevController(UserRequest ureq, WindowControl wControl) { + super(ureq, wControl); + setFormTitle("devtools.title"); + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + + if(!I18nModule.isTransToolEnabled()){ + setFormWarning("devtools.warning"); + } + + // create Key + + uifactory.addStaticTextElement("task.add.key", "", formLayout); + addKeyLocale = uifactory.addTextElement("addKeyLocale", "task.add.key.locale", 500, "", formLayout); + addKeyBundle = uifactory.addTextElement("addKeyBundle", "task.add.key.bundle", 500, "", formLayout); + addKeyKey = uifactory.addTextElement("addKeysKey", "task.add.key.key", 500, "", formLayout); + addKeyValue = uifactory.addTextElement("addKeyValue", "task.add.key.value", 500, "" , formLayout); + + submitAdd = uifactory.addFormLink("submitAddKey", formLayout, Link.BUTTON); + uifactory.addSpacerElement("addKeySpacer", formLayout, false); + + // rename keys + uifactory.addStaticTextElement("task.rename.key", "", formLayout); + renameKeyBundle = uifactory.addTextElement("renameKeysBundle", "task.rename.key.bundle", 500, "", formLayout); + renameKeyOrig = uifactory.addTextElement("renameKeyOrig", "task.rename.key.orig", 500, "", formLayout); + renameKeyTarget = uifactory.addTextElement("renameKeyTarget", "task.rename.key.target", 500, "", formLayout); + + submitRename = uifactory.addFormLink("submitRenameKey", formLayout, Link.BUTTON); + uifactory.addSpacerElement("renameKeySpacer", formLayout, false); + + // move Key to bundle + uifactory.addStaticTextElement("task.move.key.to.bundle", "", formLayout); + moveKeyKey = uifactory.addTextElement("moveKeysToBundleKey", "task.move.key.key", 500, "", formLayout); + moveKeyOrigBundle = uifactory.addTextElement("moveKeysToBundleOrig", "task.rename.key.origBundle", 500, "", formLayout); + moveKeyTargetBundle = uifactory.addTextElement("moveKeysToBundleTarget", "task.rename.key.targetBundle", 500, "", formLayout); + + submitMoveKeyToBundle = uifactory.addFormLink("submitMoveKeyToBundle", formLayout, Link.BUTTON); + uifactory.addSpacerElement("moveKeySpacer", formLayout, false); + + // deleteKeys + uifactory.addStaticTextElement("task.remove.key", "", formLayout); + deleteKeyLocale = uifactory.addTextElement("deleteKeyLocale", "task.remove.key.locale", 500, "", formLayout); + deleteKeyBundle = uifactory.addTextElement("deleteKeyBundle", "task.remove.key.bundle", 500, "", formLayout); + deleteKeyKey = uifactory.addTextElement("deleteKeysKey", "task.remove.key.key", 500, "", formLayout); + + submitDelete = uifactory.addFormLink("submitRemoveKey", formLayout, Link.BUTTON); + uifactory.addSpacerElement("removeKeySpacer", formLayout, false); + + // sortKeys + uifactory.addStaticTextElement("task.sort.keys", "", formLayout); + sortDryRun = uifactory.addCheckboxesHorizontal("task.sort.check", formLayout, keys, values); + sortDryRun.selectAll(); + + submitSort = uifactory.addFormLink("submitSort", formLayout, Link.BUTTON); + uifactory.addSpacerElement("sortSpacer", formLayout, false); + + // movePackage + uifactory.addStaticTextElement("task.move.package", "", formLayout); + moveOrigin = uifactory.addTextElement("moveOrig", "task.move.package.source", 500, "", formLayout); + moveTarget = uifactory.addTextElement("moveTarget", "task.move.package.target", 500, "", formLayout); + + submitMove = uifactory.addFormLink("submitMove", formLayout, Link.BUTTON); + uifactory.addSpacerElement("moveSpacer", formLayout, false); + + // mergePackage + uifactory.addStaticTextElement("task.merge.package", "", formLayout); + mergeOrigin = uifactory.addTextElement("mergeOrig", "task.move.package.source", 500, "", formLayout); + mergeTarget = uifactory.addTextElement("mergeTarget", "task.move.package.target", 500, "", formLayout); + + submitMerge = uifactory.addFormLink("submitMerge", formLayout, Link.BUTTON); + uifactory.addSpacerElement("mergeSpacer", formLayout, false); + + // deletePackage + uifactory.addStaticTextElement("task.remove.package", "", formLayout); + removePackageBundle = uifactory.addTextElement("removeBundle", "task.remove.package.bundle", 500, "", formLayout); + + submitRemovePackage = uifactory.addFormLink("submitRemovePackage", formLayout, Link.BUTTON); + uifactory.addSpacerElement("removeSpacer", formLayout, false); + + // rename language + uifactory.addStaticTextElement("task.rename.language", "", formLayout); + renameLanguageSource = uifactory.addTextElement("renameLanguageSource", "task.rename.language.source", 500, "", formLayout); + renameLanguageTarget = uifactory.addTextElement("renameLanguageTarget", "task.rename.language.target", 500, "", formLayout); + + submitRenameLanguage = uifactory.addFormLink("submitRenameLanguage", formLayout, Link.BUTTON); + uifactory.addSpacerElement("renameLanguageSpacer", formLayout, false); + + // removeEmptyKeys + uifactory.addStaticTextElement("task.remove.emptyKeys", "", formLayout); + removeEmptyDryRun = uifactory.addCheckboxesHorizontal("task.remove.emptyKeysCheck", formLayout, keys, values); + removeEmptyDryRun.selectAll(); + + submitRemoveEmpty = uifactory.addFormLink("submitRemoveEmpty", formLayout, Link.BUTTON); + uifactory.addSpacerElement("emptyKeysSpacer", formLayout, false); + + // RemoveDeletedKeys + uifactory.addStaticTextElement("task.remove.deletedKeys", "", formLayout); + removeDeletedNotDry = uifactory.addCheckboxesHorizontal("task.remove.deletedKeysCheck", formLayout, keys, values); + removeDeletedNotDry.selectAll(); + removeRemoveDeletedOrigin = uifactory.addTextElement("removeDeleteKeyOrig", "task.move.package.source", 500, "", formLayout); + removeRemoveDeletedTarget = uifactory.addTextElement("removeDeleteKeyTarget", "task.move.package.target", 500, "", formLayout); + + submitRemoveDeleted = uifactory.addFormLink("submitRemoveDeleted", formLayout, Link.BUTTON); + uifactory.addSpacerElement("deletedKeysSpacer", formLayout, false); + + // get duplicate keys + submitGetDupKeys = uifactory.addFormLink("submitGetDupKeys", formLayout, Link.BUTTON); + uifactory.addSpacerElement("getDoupKeysSpacer", formLayout, false); + + // get duplicate values + submitGetDupVals = uifactory.addFormLink("submitGetDupVals", formLayout, Link.BUTTON); + } + + @Override + protected void formOK(UserRequest ureq) { + + } + + @Override + protected void doDispose() { + + } + + @Override + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + if (source == submitAdd){ + translationDevManager.addKey(new Locale(addKeyLocale.getValue()), addKeyBundle.getValue(), addKeyKey.getValue(), addKeyValue.getValue()); + } + if (source == submitRename) { + translationDevManager.renameKeyTask(renameKeyBundle.getValue(), renameKeyOrig.getValue(), renameKeyTarget.getValue()); + } + if (source == submitDelete) { + translationDevManager.deleteKey(new Locale(deleteKeyLocale.getValue()), deleteKeyBundle.getValue(), deleteKeyKey.getValue()); + } + if (source == submitSort) { + translationDevManager.sortKeysTask(!sortDryRun.isSelected(0)); + } + if (source == submitMoveKeyToBundle) { + translationDevManager.moveKeyToOtherBundle(moveKeyOrigBundle.getValue(), moveKeyTargetBundle.getValue(), moveKeyKey.getValue()); + } + if (source == submitMove) { + translationDevManager.movePackageTask(moveOrigin.getValue(), moveTarget.getValue()); + } + if (source == submitMerge) { + translationDevManager.mergePackageTask(mergeOrigin.getValue(), mergeTarget.getValue()); + } + if (source == submitRemoveEmpty) { + translationDevManager.removeEmptyKeysTask(!removeEmptyDryRun.isSelected(0)); + } + if (source == submitRemovePackage) { + translationDevManager.deletePackage(removePackageBundle.getValue()); + } + if (source == submitRenameLanguage) { + translationDevManager.renameLanguageTask(new Locale(renameLanguageSource.getValue()), new Locale(renameLanguageTarget.getValue())); + } + if (source == submitGetDupKeys) { + translationDevManager.getDouplicateKeys(); + } + if (source == submitGetDupVals) { + translationDevManager.getDouplicateValues(); + } + } + +} diff --git a/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevManager.java b/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevManager.java index d0f51c8c69242e9c5d06c498f0ee90f53692ff3e..3776ef6f83e5b01db0341b3cbe10fccfdb9ba760 100644 --- a/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevManager.java +++ b/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevManager.java @@ -79,7 +79,7 @@ public class TranslationDevManager extends BasicManager { } protected Set<String> getAllLanguages() { - return I18nModule.getTranslatableLanguageKeys(); + return I18nModule.getAvailableLanguageKeys(); } protected void renameKeyTask(String bundleName, String origKey, String targetKey) { @@ -197,7 +197,7 @@ public class TranslationDevManager extends BasicManager { checkForEmptyBundleAndDelete(bundleName); } - private void addKey(Locale locale, String bundleName, String key, String value) { + protected void addKey(Locale locale, String bundleName, String key, String value) { I18nItem i18nItem = new I18nItem(bundleName, key, locale, I18nManager.DEFAULT_BUNDLE_PRIORITY, I18nManager.DEFAULT_KEY_PRIORITY); i18nMgr.saveOrUpdateI18nItem(i18nItem, value); } @@ -319,13 +319,16 @@ public class TranslationDevManager extends BasicManager { addKey(locale, bundleName, key.substring(0, key.length()-1), value); } } - log.info("XKEY detected in lang::" + locale.getLanguage() + " bundle::" + bundleName + " key::" + key); - logText.append(i18nMgr.getPropertiesFile(locale, bundleName, I18nModule.getPropertyFilesBaseDir(locale, bundleName)) + - " XKEY detected in lang::" + locale.getLanguage() + " bundle::" + bundleName + " key::" + key + " value::" + value + "\n"); - if (reallyRemoveIt) { - deleteKey(locale, bundleName, key); + log.info("XKEY detected in lang::" + locale.getLanguage() + " bundle::" + bundleName + " key::" + key); + File propertyFileDir = I18nModule.getPropertyFilesBaseDir(locale, bundleName); + if(propertyFileDir != null) { + File propertyFile = i18nMgr.getPropertiesFile(locale, bundleName, propertyFileDir); + logText.append(propertyFile + " XKEY detected in lang::" + locale.getLanguage() + " bundle::" + bundleName + " key::" + key + " value::" + value + "\n"); + if (reallyRemoveIt) { + deleteKey(locale, bundleName, key); + } + counter++; } - counter++; } } } @@ -415,11 +418,14 @@ public class TranslationDevManager extends BasicManager { String value = properties.getProperty(key); if (!StringHelper.containsNonWhitespace(value) ) { log.info("empty Key detected in lang::" + locale.getLanguage() + " bundle::" + bundleName + " key::" + key + " value::" + value); - logText.append(i18nMgr.getPropertiesFile(locale, bundleName, I18nModule.getPropertyFilesBaseDir(locale, bundleName)) + - " empty Key detected in lang" + locale.getLanguage() + " bundle::" + bundleName + " key::" + key + " value::" + value + "\n"); - if (reallyRemoveIt) { - deleteKey(locale, bundleName, key); - } + File propertyFileDir = I18nModule.getPropertyFilesBaseDir(locale, bundleName); + if(propertyFileDir != null) { + File propertyFile = i18nMgr.getPropertiesFile(locale, bundleName, propertyFileDir); + logText.append(propertyFile + " empty Key detected in lang" + locale.getLanguage() + " bundle::" + bundleName + " key::" + key + " value::" + value + "\n"); + if (reallyRemoveIt) { + deleteKey(locale, bundleName, key); + } + } } counter++; } //each key diff --git a/src/main/java/org/olat/core/util/i18n/devtools/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/util/i18n/devtools/_i18n/LocalStrings_de.properties index ee6ff0008702f86d1149b597070c6cfc3ec5926c..5c5ccb11e8fd7c84cd3246d397f289c0afbf26b1 100644 --- a/src/main/java/org/olat/core/util/i18n/devtools/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/core/util/i18n/devtools/_i18n/LocalStrings_de.properties @@ -1,16 +1,65 @@ -#Mon Mar 02 09:54:04 CET 2009 +#Fri Sep 25 09:34:26 CEST 2015 caching.enabled=Caching ist eingeschaltet. Um die Developer-Werkzeuge verwenden zu k\u00F6nnen, sollte Caching ausgeschaltet sein. coreasjar=Das olatcore Framework ist als Jar geladen, wodurch daran keine \u00C4nderungen vorgenommen werden k\u00F6nnen. devtools.title=Developer-Werkzeuge f\u00FCr \u00DCbersetzungen +devtools.warning=das i18nModul muss aktiviert werden. F\u00FCgen Sie hierzu die Folgenden Zeilen in ihre olat.local.properties\:<br/><br/>is.translation.server\=enabled<br/>i18n.application.src.dir\=${project.build.home.directory}/src/main/java +menu.i18nDev=i18n maintenance +menu.i18nDev.alt=i18n maintenance +submitAddKey=add key\! +submitGetDupKeys=get duplicate keys\! +submitGetDupVals=get duplicate values\! +submitMerge=merge it\! +submitMove=move it\! +submitMoveKey=move Key\! +submitMoveKeyToBundle=move key\! +submitRemoveDeleted=remove deleted keys\! +submitRemoveEmpty=remove empty keys\! +submitRemoveKey=remove key\! +submitRemovePackage=remove Package\! +submitRemoveTodo=remove todo keys\! +submitRenameKey=rename key\! +submitRenameLanguage=rename language\! +submitSort=sort it\! +task.add.key=add new key +task.add.key.bundle=bundle +task.add.key.key=key +task.add.key.locale=locale +task.add.key.value=value task.delete.key=Key l\u00F6schen task.delete.package=Package l\u00F6schen task.find.douplicates=Duplikate finden task.find.unreferenced.keys=Nicht referenzierte Keys finden -task.merge.package=Packages zusammenf\u00FCgen -task.move.key=Key verschieben +task.merge.package=Packages zusammenf\u00FCgenf +task.move.key.key=Key +task.move.key.to.bundle=Key verschieben task.move.language=Sprache verschieben task.move.package=Package verschieben +task.move.package.source=source +task.move.package.target=target +task.remove.deletedKeys=remove deleted keys +task.remove.deletedKeysCheck=dryrun +task.remove.emptyKeys=remove empty keys +task.remove.emptyKeysCheck=dryrun +task.remove.key=Key entfernen +task.remove.key.bundle=bundle +task.remove.key.key=Key +task.remove.key.locale=Locale +task.remove.package=remove package +task.remove.package.bundle=bundle +task.remove.todoKeys=remove todo keys +task.remove.todoKeysCheck=dryrun +task.remove.xKeys=remove x keys +task.remove.xKeysCheck=dryrun task.remove.xkeys=X-Keys entfernen task.rename.key=Key umbenennen +task.rename.key.bundle=Bundle +task.rename.key.orig=origin Keyname +task.rename.key.origBundle=Origin Bundle +task.rename.key.target=target Keyname +task.rename.key.targetBundle=target Bundle task.rename.language=Sprache umbenennen +task.rename.language.source=source language +task.rename.language.target=target language +task.sort.check=dryrun +task.sort.keys=sort all keys task.unknown.keys=falsche Keys anzeigen/l\u00F6schen diff --git a/src/main/java/org/olat/core/util/i18n/devtools/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/util/i18n/devtools/_i18n/LocalStrings_en.properties index 005475f215e5ca008af401a59c7c4f2ab1ca3ee2..e0c43abf9885d025daca177b10502265038858f2 100644 --- a/src/main/java/org/olat/core/util/i18n/devtools/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/core/util/i18n/devtools/_i18n/LocalStrings_en.properties @@ -1,7 +1,9 @@ -#Mon Mar 02 09:54:18 CET 2009 +#Fri Sep 25 09:11:16 CEST 2015 caching.enabled=Cache is activated. In order to be able to use developer tools it has to be deactivated first. coreasjar=The olatcore framework is loaded as Jar. Therefore you cannot make modifications. devtools.title=Developer tools for translation purposes +menu.i18nDev=i18n maintenance +menu.i18nDev.alt=i18n maintenance task.delete.key=Delete key task.delete.package=Delete package task.find.douplicates=Find duplicates diff --git a/src/main/java/org/olat/core/util/i18n/devtools/_i18n/i18nBundleMetadata.properties b/src/main/java/org/olat/core/util/i18n/devtools/_i18n/i18nBundleMetadata.properties deleted file mode 100644 index af659b082f11c275d3fe1d705ef60203696ddb8a..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/core/util/i18n/devtools/_i18n/i18nBundleMetadata.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Feb 17 17:00:01 CET 2009 -bundle.priority=300 diff --git a/src/main/java/org/olat/core/util/i18n/devtools/_spring/devtoolsCorecontext.xml b/src/main/java/org/olat/core/util/i18n/devtools/_spring/devtoolsCorecontext.xml index 323365fece2a368bbf8ead069fe2318023f2a642..e4c33b1f1b5650940352fb6a16cb88dc0ea1a5ca 100644 --- a/src/main/java/org/olat/core/util/i18n/devtools/_spring/devtoolsCorecontext.xml +++ b/src/main/java/org/olat/core/util/i18n/devtools/_spring/devtoolsCorecontext.xml @@ -8,5 +8,23 @@ <bean id="translationDevManager" class="org.olat.core.util.i18n.devtools.TranslationDevManager"> <constructor-arg ref="I18nManager" /> </bean> - + <!-- Devel / snoop user session --> + <bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints"> + <property name="order" value="15120" /> + <property name="actionController"> + <bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype"> + <property name="className" value="org.olat.core.util.i18n.devtools.TranslationDevController"/> + </bean> + </property> + <property name="navigationKey" value="i18nDev" /> + <property name="parentTreeNodeIdentifier" value="develParent" /> + <property name="translationPackage" value="org.olat.core.util.i18n.devtools"/> + <property name="i18nActionKey" value="menu.i18nDev"/> + <property name="i18nDescriptionKey" value="menu.i18nDev.alt"/> + <property name="extensionPoints"> + <list> + <value>org.olat.admin.SystemAdminMainController</value> + </list> + </property> + </bean> </beans> \ No newline at end of file diff --git a/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java b/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java index d7157c014f46b6d4185f97f9d1fc6d0e4da105cb..5e6a704d93636db7c4ca35e59995dd1d0a8ffbe9 100644 --- a/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java +++ b/src/main/java/org/olat/course/certificate/ui/CertificatesOptionsController.java @@ -146,7 +146,7 @@ public class CertificatesOptionsController extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormTitle("options.certificates.title"); setFormTitleIconCss("o_icon o_icon_certificate"); - setFormContextHelp("org.olat.course.config.ui","course-efficiency.html","help.hover.course-eff"); + setFormContextHelp("Course Settings#_leistungsnachweis"); formLayout.setElementCssClass("o_sel_course_certificates"); boolean effEnabled = courseConfig.isEfficencyStatementEnabled(); diff --git a/src/main/java/org/olat/course/condition/_content/defaultaccessedit.html b/src/main/java/org/olat/course/condition/_content/defaultaccessedit.html index 1981979ba8c8da69134f603de9ab751825f75d33..8001749a2852abaf749ee7097fc93fb0a3938f53 100644 --- a/src/main/java/org/olat/course/condition/_content/defaultaccessedit.html +++ b/src/main/java/org/olat/course/condition/_content/defaultaccessedit.html @@ -1,5 +1,5 @@ <fieldset> - <legend>$r.contextHelpWithWrapper("org.olat.course.editor","ced-acc.html","help.hover.acc") + <legend>$r.contextHelpWithWrapper("General Configuration of Course Elements#_zugang") $title</legend> $r.render("defaultAccessConditionView") </fieldset> diff --git a/src/main/java/org/olat/course/config/ui/CourseOptionsController.java b/src/main/java/org/olat/course/config/ui/CourseOptionsController.java index 599d42d58b50bb38a92c240822f98b4d20c6f4a5..e51332089e6c991d110162e7169473925a42c8e0 100644 --- a/src/main/java/org/olat/course/config/ui/CourseOptionsController.java +++ b/src/main/java/org/olat/course/config/ui/CourseOptionsController.java @@ -161,8 +161,8 @@ public class CourseOptionsController extends FormBasicController { FormLayoutContainer calCont = FormLayoutContainer.createDefaultFormLayout("cal", getTranslator()); calCont.setRootForm(mainForm); formLayout.add(calCont); - calCont.setFormContextHelp("org.olat.course.config.ui","course-calendar.html","help.hover.coursecal"); - + calCont.setFormContextHelp("Course Settings#_optionen"); + boolean calendarEnabled = courseConfig.isCalendarEnabled(); boolean managedCal = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.calendar); calendarEl = uifactory.addCheckboxesHorizontal("calIsOn", "chkbx.calendar.onoff", calCont, new String[] {"xx"}, new String[] {""}); @@ -175,7 +175,6 @@ public class CourseOptionsController extends FormBasicController { FormLayoutContainer chatCont = FormLayoutContainer.createDefaultFormLayout("chat", getTranslator()); chatCont.setRootForm(mainForm); formLayout.add(chatCont); - chatCont.setFormContextHelp("org.olat.course.config.ui","course-chat.html","help.hover.course-chat"); boolean chatEnabled = courseConfig.isChatEnabled(); boolean managedChat = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.chat); @@ -188,7 +187,6 @@ public class CourseOptionsController extends FormBasicController { FormLayoutContainer glossaryCont = FormLayoutContainer.createDefaultFormLayout("glossary", getTranslator()); glossaryCont.setRootForm(mainForm); formLayout.add(glossaryCont); - glossaryCont.setFormContextHelp("org.olat.course.config.ui","course-glossary.html","help.hover.course-gloss"); glossaryNameEl = uifactory.addStaticTextElement("glossaryName", "glossary.isconfigured", translate("glossary.no.glossary"), glossaryCont); @@ -206,11 +204,12 @@ public class CourseOptionsController extends FormBasicController { FormLayoutContainer sharedFolderCont = FormLayoutContainer.createDefaultFormLayout("sharedfolder", getTranslator()); sharedFolderCont.setRootForm(mainForm); formLayout.add(sharedFolderCont); - sharedFolderCont.setFormContextHelp("org.olat.course.config.ui","course-resfolder.html","help.hover.course-res"); folderNameEl = uifactory.addStaticTextElement("folderName", "sf.resourcetitle", translate("sf.notconfigured"), sharedFolderCont); - + folderNameEl.setHelpText(translate("sf.resourcetitle.helptext")); + folderNameEl.setHelpUrlForManualPage("Course Settings#_detail_ressourcen"); + FormLayoutContainer buttons2Cont = FormLayoutContainer.createButtonLayout("buttons", getTranslator()); sharedFolderCont.add(buttons2Cont); removeFolderCommand = uifactory.addFormLink("sf.unselectsfresource", buttons2Cont, Link.BUTTON); diff --git a/src/main/java/org/olat/course/config/ui/_chelp/course-chat.html b/src/main/java/org/olat/course/config/ui/_chelp/course-chat.html deleted file mode 100644 index 13d08fcc293f5a283ca09ea36f0e8f39ddc92d02..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/course/config/ui/_chelp/course-chat.html +++ /dev/null @@ -1,3 +0,0 @@ - <br/> - <b>$r.translate("chkbx.chat.onoff")</b>: $r.translate("chelp.cha1") $r.translate("chelp.cha2") $r.translate("chelp.cha3") - diff --git a/src/main/java/org/olat/course/config/ui/_chelp/course-efficiency.html b/src/main/java/org/olat/course/config/ui/_chelp/course-efficiency.html deleted file mode 100644 index 09b79fdc0dde6d5161f84beb143b31c73d1f136e..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/course/config/ui/_chelp/course-efficiency.html +++ /dev/null @@ -1,7 +0,0 @@ -<p><b>$r.translate("chkbx.efficency.onoff")</b>: $r.translate("chelp.eff1")</p> -<p>$r.translate("chelp.eff2")</p> -<p>$r.translate("chelp.eff3")</p> -<p>$r.translate("chelp.eff4")</p> -<p>$r.translate("chelp.eff5")<br />$r.translate("chelp.eff6")<br />$r.translate("chelp.eff7")<br />$r.translate("chelp.eff8")<br />$r.translate("chelp.eff9")</p> -<p>$r.translate("chelp.eff10")</p> -<p>$r.translate("chelp.eff11")</p> \ No newline at end of file diff --git a/src/main/java/org/olat/course/config/ui/_chelp/course-glossary.html b/src/main/java/org/olat/course/config/ui/_chelp/course-glossary.html deleted file mode 100644 index f3a4c9ec7f8f7f834f2f747c2f443234435c5400..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/course/config/ui/_chelp/course-glossary.html +++ /dev/null @@ -1,8 +0,0 @@ - <br/> - <b>$r.translate("glossary.isconfigured")</b>: $r.translate("chelp.glo2") - <p> - $r.translate("chelp.glo3") - </p> - <p> - $r.translate("chelp.glo4") - </p> diff --git a/src/main/java/org/olat/course/config/ui/_chelp/course-resfolder.html b/src/main/java/org/olat/course/config/ui/_chelp/course-resfolder.html deleted file mode 100644 index ab9a7fc8267f636d7dfba37c8aabe01200e81522..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/course/config/ui/_chelp/course-resfolder.html +++ /dev/null @@ -1,20 +0,0 @@ - <br/> -$r.translate("chelp.res1") $r.translate("chelp.res2") $r.translate("chelp.res3") $r.translate("chelp.res4") -(<i>$r.translateWithPackage("org.olat.core.commons.chiefcontrollers","topnav.dr")</i> --> -<i>$r.translateWithPackage("org.olat.repository","tools.new.header")</i> --> -<i>$r.translateWithPackage("org.olat.repository","tools.new.createsharedfolder")</i>) -<br /> -<br /> - - <b>$r.translateWithPackage("org.olat.repository","tools.new.createsharedfolder")</b> - $r.translate("chelp.res5") - <br /> - <br /> - $r.translate("chelp.res6") $r.translate("chelp.res7") - <br /> - <br /> - <b>$r.translateWithPackage("org.olat","chelp.caution")</b> - $r.translate("chelp.res8") - diff --git a/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_de.properties index 9242c43e95b8cf4e011b9ee54820c3bb731d1be9..12076d06d683ec04102fc93d7473fc5025989b27 100644 --- a/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_de.properties @@ -70,6 +70,7 @@ selectfile=Datei ausw\u00E4hlen sf.changesfresource=Auswechseln sf.notconfigured=<i>Kein Ressourcenordner ausgew\u00E4hlt</i> sf.resourcetitle=Gew\u00E4hlter Ressourcenordner +sf.resourcetitle.helptext=Die im Ressourcenordner abgelegten Dateien finden Sie im Ablageordner des Kurses im Unterordner \u201E_sharedfolder\u201C. sf.selectsfresource=Ausw\u00E4hlen sf.unselectsfresource=Auswahl l\u00F6schen tab.calendar.title=Einstellungen diff --git a/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_en.properties index 8399aa61d97d0d5e0d4ad531d894ebc37b990c82..ba75668e4e8f58e2b8ed22550e43eaaf7aea25a7 100644 --- a/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_en.properties @@ -70,6 +70,7 @@ selectfile=Choose file sf.changesfresource=Replace sf.notconfigured=<i>No resource folder selected</i> sf.resourcetitle=Selected recource folder +sf.resourcetitle.helptext=The files stored there can be found in the storage folder of your course when selecting the sub-folder "_sharedfolder". sf.selectsfresource=Select sf.unselectsfresource=Deselect tab.calendar.title=Settings diff --git a/src/main/java/org/olat/course/editor/_chelp/ced-acc.html b/src/main/java/org/olat/course/editor/_chelp/ced-acc.html deleted file mode 100644 index c097d158d89cec722ca69fae708edb34db009d0d..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/course/editor/_chelp/ced-acc.html +++ /dev/null @@ -1,17 +0,0 @@ - <br/>$r.translateWithPackage("org.olat","chelp.moreInfo") <br/> -$r.contextHelpRelativeLink("ced-visacc-expl.html")<br/> -$r.contextHelpRelativeLink("ced-expert-expl.html")<br/> -$r.contextHelpRelativeLink("ced-expert-eg.html")<br/> -$r.contextHelpRelativeLink("ced-attr.html")<br/> -<a href="http://www.switch.ch/aai/" target="_blank"><i class="o_icon o_icon_link_extern"> </i> $r.translate("chelp.generalAAI")</a><br/><br/> -<br/> -<br/> -$r.translate("chelp.coachExclusive") $r.translate("chelp.9") $r.translate("chelp.10acc") <br/><br/> -$r.translate("chelp.dateSwitch") $r.translate("chelp.11acc") <br/><br/> -$r.translate("chelp.groupSwitch") $r.translate("chelp.12acc") <br/><br/> -$r.translate("chelp.assessmentSwitch") $r.translate("chelp.13") $r.translate("chelp.13acc") <br/> -$r.translate("chelp.14acc") <br/><br/> -$r.translate("chelp.attributeEasy") $r.translate("chelp.16acc")$r.contextHelpRelativeLink("ced-attr.html") $r.translate("chelp.and") <a href="http://www.switch.ch/aai/" target="_blank"><i class="o_icon o_icon_link_extern"> </i> $r.translate("chelp.generalAAI")</a><br/><br/> -$r.translate("chelp.applyRulesForCoach") $r.translate("chelp.15acc") <br/><br/> -$r.translate("chelp.16")<br/><br/> -$r.translate("chelp.assessmentMode") $r.translate("chelp.18")<br/><br/> diff --git a/src/main/java/org/olat/course/editor/_chelp/ced-noAcc-expl.html b/src/main/java/org/olat/course/editor/_chelp/ced-noAcc-expl.html deleted file mode 100644 index 5463d4143c0e5e48b18b0b837eddfd8abb324a13..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/course/editor/_chelp/ced-noAcc-expl.html +++ /dev/null @@ -1,6 +0,0 @@ - <br/> - $r.translate("chelp.noAccText") $r.translate("chelp.noAcc1") -<br/> -<br/> -$r.translateWithPackage("org.olat","chelp.see") $r.translate("chelp.fig1D"): -$r.contextHelpRelativeLink("ced-visacc-expl.html") \ No newline at end of file diff --git a/src/main/java/org/olat/course/editor/_chelp/ced-vis.html b/src/main/java/org/olat/course/editor/_chelp/ced-vis.html deleted file mode 100644 index 6774403f96102941caf7858dae755604bc492ce8..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/course/editor/_chelp/ced-vis.html +++ /dev/null @@ -1,19 +0,0 @@ -<br/> -$r.translateWithPackage("org.olat","chelp.moreInfo") <br/> -$r.contextHelpRelativeLink("ced-visacc-expl.html")<br/> -$r.contextHelpRelativeLink("ced-expert-expl.html")<br/> -$r.contextHelpRelativeLink("ced-expert-eg.html")<br/> -$r.contextHelpRelativeLink("ced-attr.html")<br/> -<a href="http://www.switch.ch/aai/" target="_blank"><i class="o_icon o_icon_link_extern"> </i> $r.translate("chelp.generalAAI")</a><br/><br/> - -$r.translate("chelp.8vis")<br/><br/> - -$r.translate("chelp.coachExclusive") $r.translate("chelp.9") $r.translate("chelp.10vis") <br/><br/> -$r.translate("chelp.dateSwitch") $r.translate("chelp.11vis")<br/><br/> -$r.translate("chelp.groupSwitch") $r.translate("chelp.12vis")<br/><br/> -$r.translate("chelp.assessmentSwitch") $r.translate("chelp.13") $r.translate("chelp.13vis")<br/> -$r.translate("chelp.14vis")<br/><br/> -$r.translate("chelp.attributeEasy") $r.translate("chelp.16vis")$r.contextHelpRelativeLink("ced-attr.html") $r.translate("chelp.and") <a href="http://www.switch.ch/aai/" target="_blank"><i class="o_icon o_icon_link_extern"> </i> $r.translate("chelp.generalAAI")</a><br/><br/> -$r.translate("chelp.applyRulesForCoach") $r.translate("chelp.15vis")<br/><br/> -$r.translate("chelp.16")<br/><br/> -$r.translate("chelp.assessmentMode") $r.translate("chelp.17")<br/><br/> \ No newline at end of file diff --git a/src/main/java/org/olat/course/editor/_content/noAccessExplEdit.html b/src/main/java/org/olat/course/editor/_content/noAccessExplEdit.html index 2a7bb884a1a1726361777bcb0cb93812f029410c..43818cb43cc0f84a8a58972eceee0ac62e7026d7 100644 --- a/src/main/java/org/olat/course/editor/_content/noAccessExplEdit.html +++ b/src/main/java/org/olat/course/editor/_content/noAccessExplEdit.html @@ -1,5 +1,4 @@ <fieldset> - <legend>$r.contextHelpWithWrapper("org.olat.course.editor","ced-noAcc-expl.html","help.hover.noAcc") - $r.translate("condition.noAccessExplanation.title")</legend> + <legend>$r.translate("condition.noAccessExplanation.title")</legend> $r.render("noAccexplForm") </fieldset> diff --git a/src/main/java/org/olat/course/editor/_content/nodeedit.html b/src/main/java/org/olat/course/editor/_content/nodeedit.html index 78c1f685e632549e500d226adee5e8cba9424f19..c0d4dbdd720e201dbc4470c968f3b5e2f2d87db1 100644 --- a/src/main/java/org/olat/course/editor/_content/nodeedit.html +++ b/src/main/java/org/olat/course/editor/_content/nodeedit.html @@ -1,6 +1,6 @@ <fieldset id="$r.getCId()" class="o_form form-horizontal" role="form"> <legend> - $r.contextHelpWithWrapper("org.olat.course.editor","ced-des.html","help.hover.des") + $r.contextHelpWithWrapper("General Configuration of Course Elements#_beschreibung") $r.translate("nodeConfigForm.title")</legend> <div class="clearfix"> <div class="small pull-left">Id: $nodeId</div> diff --git a/src/main/java/org/olat/course/editor/_content/visibilityedit.html b/src/main/java/org/olat/course/editor/_content/visibilityedit.html index 93ee6447611ea365c72b05e6a52fb44f637dbef7..8d4762c9751171283adf51433004981191665d85 100644 --- a/src/main/java/org/olat/course/editor/_content/visibilityedit.html +++ b/src/main/java/org/olat/course/editor/_content/visibilityedit.html @@ -1,5 +1,5 @@ <fieldset class="o_form form-horizontal o_sel_course_visibility_condition_form"> - <legend>$r.contextHelpWithWrapper("org.olat.course.editor","ced-vis.html","help.hover.vis") + <legend>$r.contextHelpWithWrapper("General Configuration of Course Elements#_zugang") $r.translate("condition.visibility.title")</legend> $r.render("visibilityCondition") </fieldset> diff --git a/src/main/java/org/olat/course/groupsandrights/CourseGroupManager.java b/src/main/java/org/olat/course/groupsandrights/CourseGroupManager.java index e774a02b29aaba4ad89cb4b4b1619351be84495c..64f35d62cdafac83b9d02a7fd7234cf1277fa902 100644 --- a/src/main/java/org/olat/course/groupsandrights/CourseGroupManager.java +++ b/src/main/java/org/olat/course/groupsandrights/CourseGroupManager.java @@ -56,6 +56,8 @@ public interface CourseGroupManager { public OLATResource getCourseResource(); public RepositoryEntry getCourseEntry(); + + public void refreshRepositoryEntry(RepositoryEntry entry); /** * Checks users course rights in any of the available right group context of diff --git a/src/main/java/org/olat/course/groupsandrights/PersistingCourseGroupManager.java b/src/main/java/org/olat/course/groupsandrights/PersistingCourseGroupManager.java index 6d1471e3e981eecbd5c9965675f975269bf77afb..97e4e5523786c533287cfda6df340390f5e4dc95 100644 --- a/src/main/java/org/olat/course/groupsandrights/PersistingCourseGroupManager.java +++ b/src/main/java/org/olat/course/groupsandrights/PersistingCourseGroupManager.java @@ -115,6 +115,11 @@ public class PersistingCourseGroupManager extends BasicManager implements Course } return courseRepoEntry; } + + @Override + public void refreshRepositoryEntry(RepositoryEntry entry) { + courseRepoEntry = entry; + } /** * @param course The current course diff --git a/src/main/java/org/olat/course/nodes/cal/_content/edit_access.html b/src/main/java/org/olat/course/nodes/cal/_content/edit_access.html index deef553fc803fa993bd13d819a7341dfc90a8c17..62170d2bafa9bc376cd2764b02840efbcbbf4a25 100644 --- a/src/main/java/org/olat/course/nodes/cal/_content/edit_access.html +++ b/src/main/java/org/olat/course/nodes/cal/_content/edit_access.html @@ -4,7 +4,7 @@ $r.render("editCondition") </fieldset> <fieldset class="clearfix"> - <legend>$r.contextHelpWithWrapper("org.olat.course.editor","ced-acc.html","help.hover.cal.acc") + <legend>$r.contextHelpWithWrapper("General Configuration of Course Elements#_zugang") $r.translate("condition.accessibility.title")</legend> $r.render("readerCondition") </fieldset> 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 f32905a624d8eb882aa0e0d888c553ffd8f3e49b..19ef18c35a94fed919af0b5060bfdfe10f5d3dc0 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 @@ -188,7 +188,7 @@ public class CheckListAssessmentController extends FormBasicController implement @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormDescription("coach.desc"); - setFormContextHelp("org.olat.course.nodes.cl.ui", "cl-coach-assessment.html", "help.hover.coach.assessment"); + setFormContextHelp("Assessment#_checklist_manage"); if(formLayout instanceof FormLayoutContainer) { FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout; diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListBoxListEditController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListBoxListEditController.java index 77ad3ef1824d76a065ff8df987084996214b762c..30f533e4195d3d52af00216450a53914da191d61 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/CheckListBoxListEditController.java +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListBoxListEditController.java @@ -104,7 +104,7 @@ public class CheckListBoxListEditController extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormTitle("config.checkbox.title"); setFormDescription("config.checkbox.description"); - setFormContextHelp("org.olat.course.nodes.cl.ui", "cl-checkbox.html", "help.hover.checkbox"); + setFormContextHelp("Assessment#_checklist_cb"); if(inUse) { setFormWarning("config.warning.inuse"); } 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 1f4d28ebc7b8c8f240ebc059c57afa98d737bdf2..083da789ac1a5844e84d622dd50f96f7c4f73620 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 @@ -100,7 +100,7 @@ public class CheckListConfigurationController extends FormBasicController { } else { setFormTitle("config.title"); setFormDescription("config.description"); - setFormContextHelp("org.olat.course.nodes.cl.ui", "cl-config.html", "help.hover.config"); + setFormContextHelp("Assessment#_checklist_kursbaustein"); if(inUse) { setFormWarning("config.warning.inuse"); } diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox-template.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox-template.html index 16f381f024907131d6e9eb2fb57d530a6218e509..97f792eb0b78fbea16b3edd97fadf50cbaba1813 100644 --- a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox-template.html +++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox-template.html @@ -1,3 +1,3 @@ <p>$r.translate("chelp.checkbox.template.1")</p> <p>$r.translate("chelp.checkbox.template.2")</p> -<p>$r.translate("chelp.checkbox.template.3") $r.contextHelpRelativeLink("cl-checkbox.html").</p> \ No newline at end of file +<p>$r.translate("chelp.checkbox.template.3") $r.contextHelpRelativeLink("Assessment#_checklist_cb").</p> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox.html deleted file mode 100644 index cc460dae2b7712343e279aaf073f22feff02a293..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox.html +++ /dev/null @@ -1,7 +0,0 @@ -<p>$r.translate("chelp.checkbox.1")</p> -<p>$r.translate("chelp.checkbox.2")</p> -<p>$r.translate("chelp.checkbox.3")</p> -<p>$r.translate("chelp.checkbox.4")</p> -<p>$r.translate("chelp.checkbox.5")</p> -<p>$r.translate("chelp.checkbox.6")</p> -<p>$r.translate("chelp.checkbox.7")</p> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/info/_content/edit_access.html b/src/main/java/org/olat/course/nodes/info/_content/edit_access.html index d7eede4596dd304c1fdb428a22143666f23a57d3..567d41fcc819db99f62e4e29ceaa4d6fdc41c8f3 100644 --- a/src/main/java/org/olat/course/nodes/info/_content/edit_access.html +++ b/src/main/java/org/olat/course/nodes/info/_content/edit_access.html @@ -9,7 +9,7 @@ $r.render("editCondition") </fieldset> <fieldset class="clearfix"> - <legend>$r.contextHelpWithWrapper("org.olat.course.editor","ced-acc.html","help.hover.info.acc") + <legend>$r.contextHelpWithWrapper("General Configuration of Course Elements#_zugang") $r.translate("condition.accessibility.title")</legend> $r.render("readerCondition") </fieldset> diff --git a/src/main/java/org/olat/course/nodes/projectbroker/_content/edit_condition.html b/src/main/java/org/olat/course/nodes/projectbroker/_content/edit_condition.html index 207e5dcebd3b6059b71bfdb16052a79fe900802c..6e7428817bd7c99ff8c5b4a9b61031e68b8f1b5d 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/_content/edit_condition.html +++ b/src/main/java/org/olat/course/nodes/projectbroker/_content/edit_condition.html @@ -1,6 +1,6 @@ #if ($r.available("projectBrokerCondition")) <fieldset class="clearfix"> - <legend>$r.contextHelpWithWrapper("org.olat.course.editor","ced-acc.html","help.hover.acc") + <legend>$r.contextHelpWithWrapper("General Configuration of Course Elements#_zugang") $r.translate("projectbroker.condition.title")</legend> $r.render("projectBrokerCondition") </fieldset> 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 21266114889390e45316f494b912ac2187ff7b02..c25a25b8ac511683e19e1b8dd5beb9d844099ed9 100644 --- a/src/main/java/org/olat/course/nodes/st/STCourseNodeDisplayConfigFormController.java +++ b/src/main/java/org/olat/course/nodes/st/STCourseNodeDisplayConfigFormController.java @@ -125,8 +125,7 @@ public class STCourseNodeDisplayConfigFormController extends FormBasicController @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormTitle("config.fieldset.view"); - setFormContextHelp("org.olat.course.nodes.st", "ced-st-overview.html", "help.st.design"); - // + setFormContextHelp("Knowledge Transfer#_struktur"); FormUIFactory formFact = FormUIFactory.getInstance(); // Display type String[] values_displayType = new String[] { translate("form.system"), translate("form.peekview"), translate("form.self"), diff --git a/src/main/java/org/olat/course/nodes/st/_chelp/ced-st-overview.html b/src/main/java/org/olat/course/nodes/st/_chelp/ced-st-overview.html deleted file mode 100644 index 469c7e721e523e869b141357ac15e4714430e5a7..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/course/nodes/st/_chelp/ced-st-overview.html +++ /dev/null @@ -1,15 +0,0 @@ -<br/> - $r.translate("chelp.ov1") -<br/> -<br/> - $r.translate("chelp.as") - <ul> - <li>$r.translate("chelp.ov2")</li> - <li>$r.translate("chelp.peekview")</li> - <li>$r.translate("chelp.ov3")</li> - <li>$r.translate("chelp.delegate")</li> - </ul> -<br/> - <b>$r.translate("selectedPeekviewChildren", "10"):</b>$r.translate("chelp.peekview.children")<br/><br/> - <b>$r.translate("displayTwoColumns"):</b> $r.translate("chelp.columns")<br/><br/> - diff --git a/src/main/java/org/olat/course/nodes/st/_content/scoreedit.html b/src/main/java/org/olat/course/nodes/st/_content/scoreedit.html index 491953832d65b873110f0ef03d7ae9647d51a677..12d0ec7dd1599c31cb8c720069bcd0129270b332 100644 --- a/src/main/java/org/olat/course/nodes/st/_content/scoreedit.html +++ b/src/main/java/org/olat/course/nodes/st/_content/scoreedit.html @@ -1,7 +1,7 @@ <fieldset class="o_sel_structure_score"> - <legend>$r.contextHelpWithWrapper("org.olat.course.nodes.st","ced-st-score.html","help.st") + <legend>$r.contextHelpWithWrapper("Knowledge Transfer#_displayscore") $r.translate("score.fieldset.title")</legend> - + #if ($isExpertMode) <div class="o_button_group o_button_group_right">$r.render("cmd.activate.easyMode")</div> #else diff --git a/src/main/java/org/olat/course/nodes/wiki/_content/edit_access.html b/src/main/java/org/olat/course/nodes/wiki/_content/edit_access.html index e44fde325912df9e50aa0f7c605dcfe4b2c55f1e..5ba776d2a734bec625d2d02ffb881155d2a85547 100644 --- a/src/main/java/org/olat/course/nodes/wiki/_content/edit_access.html +++ b/src/main/java/org/olat/course/nodes/wiki/_content/edit_access.html @@ -1,5 +1,5 @@ <fieldset class="clearfix"> - <legend>$r.contextHelpWithWrapper("org.olat.course.editor","ced-acc.html","help.hover.acc") + <legend>$r.contextHelpWithWrapper("General Configuration of Course Elements#_zugang") $r.translate("condition.accessibility.title")</legend> $r.render("readerCondition") </fieldset> diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java index e85e146edc7dd54c9dd642fac20fc57d01875df6..d19f24b839205e20fe13351e6f408097a65c7458 100644 --- a/src/main/java/org/olat/course/run/CourseRuntimeController.java +++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java @@ -271,6 +271,31 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im return run == null ? null : run.getUce(); } + /** + * Refresh the cached repository entry of the course + * @return + */ + @Override + protected RepositoryEntry loadRepositoryEntry() { + RepositoryEntry refreshedEntry = super.loadRepositoryEntry(); + ICourse course = CourseFactory.loadCourse(getRepositoryEntry()); + CourseGroupManager cgm = course.getCourseEnvironment().getCourseGroupManager(); + cgm.refreshRepositoryEntry(refreshedEntry); + return refreshedEntry; + } + + /** + * Refresh the cached repository entry of the course + * @return + */ + @Override + protected RepositoryEntry refreshRepositoryEntry(RepositoryEntry refreshedEntry) { + ICourse course = CourseFactory.loadCourse(getRepositoryEntry()); + CourseGroupManager cgm = course.getCourseEnvironment().getCourseGroupManager(); + cgm.refreshRepositoryEntry(refreshedEntry); + return super.refreshRepositoryEntry(refreshedEntry); + } + private RunMainController getRunMainController() { return getRuntimeController() instanceof RunMainController ? (RunMainController)getRuntimeController() : null; diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java index 1317c6d57f6d74a47e3de050c38ef4f01a48afc6..18ebd07457504411482ddafe121e827aff30ed4c 100644 --- a/src/main/java/org/olat/course/run/RunMainController.java +++ b/src/main/java/org/olat/course/run/RunMainController.java @@ -782,19 +782,20 @@ public class RunMainController extends MainLayoutBasicController implements Gene String type = firstEntry.getOLATResourceable().getResourceableTypeName(); if("CourseNode".equalsIgnoreCase(type)) { CourseNode cn = course.getRunStructure().getNode(firstEntry.getOLATResourceable().getResourceableId().toString()); - - getWindowControl().makeFlat(); - // add logging information for case course gets started via jump-in - // link/search - addLoggingResourceable(LoggingResourceable.wrap(course)); - if (cn != null) { - addLoggingResourceable(LoggingResourceable.wrap(cn)); - } - - if(entries.size() > 1) { - entries = entries.subList(1, entries.size()); + if(currentCourseNode == null || !currentCourseNode.equals(cn)) { + getWindowControl().makeFlat(); + // add logging information for case course gets started via jump-in + // link/search + addLoggingResourceable(LoggingResourceable.wrap(course)); + if (cn != null) { + addLoggingResourceable(LoggingResourceable.wrap(cn)); + } + + if(entries.size() > 1) { + entries = entries.subList(1, entries.size()); + } + updateTreeAndContent(ureq, cn, null, entries, firstEntry.getTransientState()); } - updateTreeAndContent(ureq, cn, null, entries, firstEntry.getTransientState()); } } diff --git a/src/main/java/org/olat/course/run/preview/PreviewCourseGroupManager.java b/src/main/java/org/olat/course/run/preview/PreviewCourseGroupManager.java index 1188ea565a3e322a0b1964dbbac7fe540645716a..36313080a36043de41eeb37e94f5302fa577c8f9 100644 --- a/src/main/java/org/olat/course/run/preview/PreviewCourseGroupManager.java +++ b/src/main/java/org/olat/course/run/preview/PreviewCourseGroupManager.java @@ -49,7 +49,7 @@ final class PreviewCourseGroupManager extends BasicManager implements CourseGrou private List<BGArea> areas; private List<BusinessGroup> groups; - private final RepositoryEntry courseResource; + private RepositoryEntry courseResource; private boolean isCoach, isCourseAdmin; /** @@ -77,6 +77,11 @@ final class PreviewCourseGroupManager extends BasicManager implements CourseGrou return courseResource; } + @Override + public void refreshRepositoryEntry(RepositoryEntry entry) { + this.courseResource = entry; + } + /** * @see org.olat.course.groupsandrights.CourseGroupManager#hasRight(org.olat.core.id.Identity, java.lang.String) */ diff --git a/src/main/java/org/olat/group/ui/area/_content/detailstab.html b/src/main/java/org/olat/group/ui/area/_content/detailstab.html index ae977a8a96434193353b35f70dbfc99da20eec8a..6b4c534fb556d29daae142b59153bb197a030139 100644 --- a/src/main/java/org/olat/group/ui/area/_content/detailstab.html +++ b/src/main/java/org/olat/group/ui/area/_content/detailstab.html @@ -1,5 +1,4 @@ <fieldset> <legend>$r.translate("fieldset.legend.details")</legend> - $r.contextHelpWithWrapper("Using Course Tools#_lernbereich") $r.render("areaForm") </fieldset> \ No newline at end of file diff --git a/src/main/java/org/olat/modules/iq/IQManager.java b/src/main/java/org/olat/modules/iq/IQManager.java index df42024574b7eab8b98b9692fbab317f0ff50435..b29060bd0dc2729975e439aa72e003c8ab446637 100644 --- a/src/main/java/org/olat/modules/iq/IQManager.java +++ b/src/main/java/org/olat/modules/iq/IQManager.java @@ -175,7 +175,9 @@ public class IQManager implements UserDataDeletable { // -- VERY RARE CASE -- 1) qti is open in an editor session right now on the screen (or session on the way to timeout) // -- 99% of cases -- 2) qti is ready to be run as test/survey if (CoordinatorManager.getInstance().getCoordinator().getLocker().isLocked(res, null)){ - GenericMainController glc = createLockedMessageController(ureq, wControl); + LockResult lockEntry = CoordinatorManager.getInstance().getCoordinator().getLocker().aquirePersistentLock(res, ureq.getIdentity(), null); + String fullName = userManager.getUserDisplayName(lockEntry.getOwner()); + GenericMainController glc = createLockedMessageController(ureq, wControl, fullName); return glc; }else{ Controller controller = new IQDisplayController(resolver, type, secCallback, ureq, wControl); @@ -185,14 +187,14 @@ public class IQManager implements UserDataDeletable { } } - private GenericMainController createLockedMessageController(UserRequest ureq, WindowControl wControl) { + private GenericMainController createLockedMessageController(UserRequest ureq, WindowControl wControl, String fullName) { //wrap simple message into mainLayout GenericMainController glc = new GenericMainController(ureq, wControl) { @Override public void init(UserRequest ureq) { - Panel empty = new Panel("empty"); - setTranslator(Util.createPackageTranslator(this.getClass(), ureq.getLocale())); - Controller contentCtr = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), translate("status.currently.locked.title"), translate("status.currently.locked")); + Panel empty = new Panel("empty"); + setTranslator(Util.createPackageTranslator(this.getClass(), ureq.getLocale())); + Controller contentCtr = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), translate("status.currently.locked.title"), translate("status.currently.locked", fullName)); listenTo(contentCtr); // auto dispose later Component resComp = contentCtr.getInitialComponent(); LayoutMain3ColsController columnLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), empty, resComp, /*do not save no prefs*/null); diff --git a/src/main/java/org/olat/repository/RepositoryEntry.java b/src/main/java/org/olat/repository/RepositoryEntry.java index 5da47833b1a621205b7b31b67ebf9523f845e548..be04e3fc51b98f70b80ebfd118995e3e6572012e 100644 --- a/src/main/java/org/olat/repository/RepositoryEntry.java +++ b/src/main/java/org/olat/repository/RepositoryEntry.java @@ -68,8 +68,10 @@ import org.olat.resource.OLATResourceImpl; @Table(name="o_repositoryentry") @NamedQueries({ @NamedQuery(name="getRepositoryEntryRoleAndDefaults", query="select membership.role, relGroup.defaultGroup from repositoryentry as v inner join v.groups as relGroup inner join relGroup.group as baseGroup inner join baseGroup.members as membership where v.key=:repoKey and membership.identity.key=:identityKey"), - @NamedQuery(name="filterRepositoryEntryMembership", query="select v.key, membership.identity.key from repositoryentry as v inner join v.groups as relGroup inner join relGroup.group as baseGroup inner join baseGroup.members as membership on membership.role in ('owner','coach','.participant') where membership.identity.key=:identityKey and v.key in (:repositoryEntryKey)"), - @NamedQuery(name="loadRepositoryEntryByKey", query="select v from repositoryentry as v inner join fetch v.olatResource as ores inner join fetch v.statistics as statistics left join fetch v.lifecycle as lifecycle where v.key = :repoKey") + @NamedQuery(name="filterRepositoryEntryMembership", query="select v.key, membership.identity.key from repositoryentry as v inner join v.groups as relGroup inner join relGroup.group as baseGroup inner join baseGroup.members as membership on membership.role in ('owner','coach','participant') where membership.identity.key=:identityKey and v.key in (:repositoryEntryKey)"), + @NamedQuery(name="loadRepositoryEntryByKey", query="select v from repositoryentry as v inner join fetch v.olatResource as ores inner join fetch v.statistics as statistics left join fetch v.lifecycle as lifecycle where v.key = :repoKey"), + @NamedQuery(name="loadRepositoryEntryByResourceKey", query="select v from repositoryentry as v inner join fetch v.olatResource as ores inner join fetch v.statistics as statistics left join fetch v.lifecycle as lifecycle where ores.key = :resourceKey") + }) public class RepositoryEntry implements CreateInfo, Persistable , RepositoryEntryRef, ModifiedInfo, OLATResourceable { diff --git a/src/main/java/org/olat/repository/_content/editproptabpub.html b/src/main/java/org/olat/repository/_content/editproptabpub.html index b9e6362c3e7030d34e549dc3e282ed91de29b1c3..9e376a09d60163c6b071f52df2ad35f9e2492ff0 100644 --- a/src/main/java/org/olat/repository/_content/editproptabpub.html +++ b/src/main/java/org/olat/repository/_content/editproptabpub.html @@ -1,6 +1,6 @@ <fieldset> <legend>$r.translate("rentry.prop")</legend> - $r.contextHelpWithWrapper("org.olat.repository","rep-meta-olatauthorEd.html", "help.hover.rep.detail") + $r.contextHelpWithWrapper("Course Settings#_zugriff") $r.render("proppupform") #if($r.available("accesscontrol") && $isGuestAccess) diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryDAO.java b/src/main/java/org/olat/repository/manager/RepositoryEntryDAO.java index bcd56e25f366a93ea2a1c760e7a3913110b849cf..0d6ac5051e4210ad5c380932db4fa581bd721769 100644 --- a/src/main/java/org/olat/repository/manager/RepositoryEntryDAO.java +++ b/src/main/java/org/olat/repository/manager/RepositoryEntryDAO.java @@ -44,15 +44,8 @@ public class RepositoryEntryDAO { private DB dbInstance; public RepositoryEntry loadByKey(Long key) { - StringBuilder sb = new StringBuilder(); - sb.append("select v from ").append(RepositoryEntry.class.getName()).append(" as v ") - .append(" inner join fetch v.olatResource as ores") - .append(" inner join fetch v.statistics as statistics") - .append(" left join fetch v.lifecycle as lifecycle") - .append(" where v.key = :repoKey"); - List<RepositoryEntry> entries = dbInstance.getCurrentEntityManager() - .createQuery(sb.toString(), RepositoryEntry.class) + .createNamedQuery("loadRepositoryEntryByKey", RepositoryEntry.class) .setParameter("repoKey", key) .getResultList(); if(entries.isEmpty()) { @@ -63,15 +56,8 @@ public class RepositoryEntryDAO { } public RepositoryEntry loadByResourceKey(Long resourceKey) { - StringBuilder sb = new StringBuilder(); - sb.append("select v from ").append(RepositoryEntry.class.getName()).append(" as v ") - .append(" inner join fetch v.olatResource as ores") - .append(" inner join fetch v.statistics as statistics") - .append(" left join fetch v.lifecycle as lifecycle") - .append(" where ores.key = :resourceKey"); - List<RepositoryEntry> entries = dbInstance.getCurrentEntityManager() - .createQuery(sb.toString(), RepositoryEntry.class) + .createNamedQuery("loadRepositoryEntryByResourceKey", RepositoryEntry.class) .setParameter("resourceKey", resourceKey) .getResultList(); if(entries.isEmpty()) { diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryRelationDAO.java b/src/main/java/org/olat/repository/manager/RepositoryEntryRelationDAO.java index 9f5230282b91d02c3ecec543b54f635047c759db..c80652a5755d6f29d2b6c95d511d7a592e55eb27 100644 --- a/src/main/java/org/olat/repository/manager/RepositoryEntryRelationDAO.java +++ b/src/main/java/org/olat/repository/manager/RepositoryEntryRelationDAO.java @@ -189,7 +189,7 @@ public class RepositoryEntryRelationDAO { */ public void filterMembership(IdentityRef identity, List<Long> entries) { if(entries == null || entries.isEmpty()) return; - + List<Object[]> membershipList = dbInstance.getCurrentEntityManager() .createNamedQuery("filterRepositoryEntryMembership", Object[].class) .setParameter("identityKey", identity.getKey()) diff --git a/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java b/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java index b3d8f45cce6b520363f8ca35e0d885100a0489a3..bbbf8b756a4777668446309a4c705fa2b92adb37 100644 --- a/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java +++ b/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java @@ -254,8 +254,14 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController return re; } - protected void loadRepositoryEntry() { + protected RepositoryEntry loadRepositoryEntry() { re = repositoryService.loadByKey(re.getKey()); + return re; + } + + protected RepositoryEntry refreshRepositoryEntry(RepositoryEntry refreshedEntry) { + re = refreshedEntry; + return re; } protected OLATResourceable getOlatResourceable() { @@ -537,7 +543,7 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController } } else if(accessCtrl == source) { if(event == Event.CHANGED_EVENT) { - re = accessCtrl.getEntry(); + refreshRepositoryEntry(accessCtrl.getEntry()); if(ordersLink != null) { boolean booking = acService.isResourceAccessControled(re.getOlatResource(), null); ordersLink.setVisible(!corrupted && booking); @@ -545,7 +551,7 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController } } else if(descriptionCtrl == source) { if(event == Event.CHANGED_EVENT) { - re = descriptionCtrl.getEntry(); + refreshRepositoryEntry(descriptionCtrl.getEntry()); } } else if(detailsCtrl == source) { if(event instanceof LeavingEvent) { @@ -635,7 +641,8 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController */ protected void doAccess(UserRequest ureq) { WindowControl bwControl = getSubWindowControl("Access"); - AuthoringEditAccessController ctrl = new AuthoringEditAccessController(ureq, addToHistory(ureq, bwControl), re); + RepositoryEntry refreshedEntry = loadRepositoryEntry(); + AuthoringEditAccessController ctrl = new AuthoringEditAccessController(ureq, addToHistory(ureq, bwControl), refreshedEntry); listenTo(ctrl); accessCtrl = pushController(ureq, translate("tab.accesscontrol"), ctrl); setActiveTool(accessLink); @@ -677,8 +684,9 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController if(!reSecurity.isEntryAdmin()) return; WindowControl bwControl = getSubWindowControl("Settings"); + RepositoryEntry refreshedEntry = loadRepositoryEntry(); RepositoryEditDescriptionController ctrl - = new RepositoryEditDescriptionController(ureq, addToHistory(ureq, bwControl), re); + = new RepositoryEditDescriptionController(ureq, addToHistory(ureq, bwControl), refreshedEntry); listenTo(ctrl); descriptionCtrl = pushController(ureq, translate("settings.editor"), ctrl); currentToolCtr = descriptionCtrl; diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryPublishController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryPublishController.java index 3df10da29dcb0f46fd0e78a5fdba4d2ebee9f452..c8ed1af5a36404dbb341125944a1b8b713fca5f1 100644 --- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryPublishController.java +++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryPublishController.java @@ -184,7 +184,7 @@ public class AuthoringEntryPublishController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { setFormTitle("rentry.publish"); - setFormContextHelp("org.olat.repository", "rep-meta-olatauthorEd.html", "help.hover.rep.detail"); + setFormContextHelp("Course Settings#_zugriff"); formLayout.setElementCssClass("o_sel_repositoryentry_access"); String resourceType = entry.getOlatResource().getResourceableTypeName(); 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 6d0b67eb05e60dcb4d5364b23923ed2acf6c94d8..bc99019d2234778ac650831748e4b8ece53f02f0 100644 --- a/src/main/java/org/olat/repository/ui/author/RepositoryEditDescriptionController.java +++ b/src/main/java/org/olat/repository/ui/author/RepositoryEditDescriptionController.java @@ -137,7 +137,7 @@ public class RepositoryEditDescriptionController extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { descCont = FormLayoutContainer.createDefaultFormLayout("desc", getTranslator()); - descCont.setFormContextHelp("org.olat.repository","rep-meta-desc.html","help.hover.lifecycle"); + descCont.setFormContextHelp("Info Page: Add Meta Data"); descCont.setRootForm(mainForm); formLayout.add("desc", descCont); diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryRow.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryRow.java index fdb134c821a81586f6736e631c658807ef5e4457..673d69569d2bb41fcaeb00a8cc2b4ffc072e67ac 100644 --- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryRow.java +++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryRow.java @@ -182,7 +182,6 @@ public class RepositoryEntryRow implements RepositoryEntryRef { public void setDisplayName(String name) { this.name = name; } - public String getShortenedDescription() { if(shortenedDescription != null) { diff --git a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/_chelp/paypalMasterAccount.html b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/_chelp/paypalMasterAccount.html index 7a16464aec8ffea91ea7ff7655f3c69ff46beaf2..4536a634e9d7af85cca4a636d78eb42813a3c325 100644 --- a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/_chelp/paypalMasterAccount.html +++ b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/ui/_chelp/paypalMasterAccount.html @@ -11,7 +11,6 @@ </h5> <p> $r.translate("chelp.paypalMasterAccount.courses") - $r.contextHelpRelativeLink("org.olat.resource.accesscontrol.ui", "accesscontrol.html") </p> <p class="o_warning"> diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java b/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java index 605d53aeaf9415c6cbed3e58578716497de7e88d..827753e0ed3cbe4fe7b995f212ec9cae45a2424c 100644 --- a/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java +++ b/src/main/java/org/olat/resource/accesscontrol/ui/AccessConfigurationController.java @@ -151,8 +151,7 @@ public class AccessConfigurationController extends FormBasicController { if(!embbed) { setFormTitle("accesscontrol.title"); - setFormContextHelp(AccessConfigurationController.class.getPackage().getName(), "accesscontrol.html", "chelp.accesscontrol.hover"); - + if(editable) { final FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator()); buttonGroupLayout.setRootForm(mainForm); diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/_chelp/accesscontrol.html b/src/main/java/org/olat/resource/accesscontrol/ui/_chelp/accesscontrol.html deleted file mode 100644 index 0a07368b8f5fb60f374e49363906d8a5a7ac33dd..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/resource/accesscontrol/ui/_chelp/accesscontrol.html +++ /dev/null @@ -1,22 +0,0 @@ -<p> - $r.translate("chelp.accesscontrol.intro") -</p> -<p> - $r.translate("chelp.accesscontrol.access") - <ol> - <li>$r.translate("chelp.accesscontrol.access.free")</li> - <li>$r.translate("chelp.accesscontrol.access.order")</li> - </ol> -</p> -<p>$r.translate("chelp.accesscontrol.access.member")</p> -<p>$r.translate("chelp.accesscontrol.methods")</p> -<div class="o_access_create"> - <ul> - <li><b><i class="o_icon o_ac_free_icon o_icon-lg"></i> $r.translate("free.method")</b>: $r.translate("chelp.accesscontrol.method.free")</li> - <li><b><i class="o_icon o_ac_token_icon o_icon-lg"></i> $r.translate("token.method")</b>: $r.translate("chelp.accesscontrol.method.token")</li> - <li><b><i class="o_icon o_ac_paypal_icon o_icon-lg"></i> $r.translateWithPackage("org.olat.resource.accesscontrol.provider.paypal.ui", "paypal.method")</b>: $r.translateWithPackage("org.olat.resource.accesscontrol.provider.paypal.ui", "chelp.accesscontrol_group.method.paypal")</li> - </ul> -</div> -<p>$r.translate("chelp.accesscontrol.dates")</p> -<p>$r.translate("chelp.accesscontrol.manual")</p> -<p>$r.translate("chelp.accesscontrol.delete")</p> \ No newline at end of file diff --git a/src/main/webapp/static/js/openolat/iframe.js b/src/main/webapp/static/js/openolat/iframe.js index 1a059c4d29358e04b073088ad77ea9556359ff71..6e089570b8003d4e61aa403323bc3f229a59dd9a 100644 --- a/src/main/webapp/static/js/openolat/iframe.js +++ b/src/main/webapp/static/js/openolat/iframe.js @@ -302,8 +302,19 @@ function b_changeLinkTargets() { if (anchor.getAttribute('href')) { var target = anchor.getAttribute('target'); var href = anchor.getAttribute("href"); - if (href.indexOf("/auth/repo/go?rid=") != -1 || href.indexOf("/url/RepositoryEntry/") != -1 - || href.indexOf("/url/BusinessGroup/") != -1 || href.indexOf("/url/CatalogEntry/") != -1) { + if (href.indexOf("/auth/repo/go?rid=") != -1 + || (href.indexOf("/url/") != -1 && ( + href.indexOf("/RepositoryEntry/") != -1 + || href.indexOf("/BusinessGroup/") != -1 + || href.indexOf("Site/", href.indexOf("/url/")) != -1 + || href.indexOf("/CatalogEntry/") != -1 + || href.indexOf("/Portal/") != -1 + || href.indexOf("/CatalogAdmin/") != -1 + || href.indexOf("/CoachSite/") != -1 + || href.indexOf("/GMCMenuTree/") != -1 + ) + ) + ) { // absolute links to repository entries have to by opened in the parent frame // /auth/repo/ is legacy format, /url/RepositoryEntry/ is new format anchor.target = "_parent"; diff --git a/src/test/java/org/olat/core/util/i18n/I18nTest.java b/src/test/java/org/olat/core/util/i18n/I18nTest.java index c47a0e29704680dd3031345e4adea1d092350a19..e98b518ca211334e68517a515fd2db002f0bf004 100644 --- a/src/test/java/org/olat/core/util/i18n/I18nTest.java +++ b/src/test/java/org/olat/core/util/i18n/I18nTest.java @@ -285,25 +285,29 @@ public class I18nTest extends OlatTestCase { } //remove after execution! - @Test public void testRemoveXKeyTask(){ + @Test + public void testRemoveXKeyTask(){ tDMgr.removeXKeysTask(false); tDMgr.logToFile("XKeys"); } //remove after execution! - @Test public void testRemoveTodoKeyTask(){ + @Test + public void testRemoveTodoKeyTask(){ tDMgr.removeTodoKeysTask(false); tDMgr.logToFile("todoKeys"); } //remove after execution! - @Test public void testRemoveEmptyKeysTask(){ + @Test + public void testRemoveEmptyKeysTask(){ tDMgr.removeEmptyKeysTask(false); tDMgr.logToFile("emptyKeys"); } //remove after execution! - @Test public void testRemoveReferenceLanguageCopiesTask(){ + @Test + public void testRemoveReferenceLanguageCopiesTask(){ if (I18nModule.isTransToolEnabled()) { tDMgr.removeReferenceLanguageCopiesTask(false); tDMgr.logToFile("refLangCopied");