diff --git a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java index d6b2a05e2d66890b82943202e7075a2006b921d2..6e6ea7e3e8a1d0f46be4f28c9426e69e2bc30943 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java @@ -110,7 +110,9 @@ public class AssessmentCourseTreeController extends BasicController implements A @Override protected void doDispose() { - // + if(stackPanel != null) { + stackPanel.removeListener(this); + } } @Override diff --git a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java index bc4ece695e21586438234823297a8626ca0465f9..3bb50e5cc3dc3684116bffbb4d77ffc9b22c0cfa 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java @@ -224,7 +224,9 @@ public class AssessmentToolController extends MainLayoutBasicController implemen @Override protected void doDispose() { - // + if(stackPanel != null) { + stackPanel.removeListener(this); + } } @Override diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java index a494cee81670b17dfbdf3610fd1538d04afc82f7..8726b8259cf14d151559077b8a56959402a53c76 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java @@ -555,6 +555,9 @@ public class IdentityListCourseNodeController extends FormBasicController @Override protected void doDispose() { + if(stackPanel != null) { + stackPanel.removeListener(this); + } coordinatorManager.getCoordinator().getEventBus() .deregisterFor(this, courseEntry.getOlatResource()); } diff --git a/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java b/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java index 640c8eb4ace61012f55286dd20eae7462890e28d..4298b02d37a96e19f9af52d728d592a4f4f7fc69 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java +++ b/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java @@ -658,11 +658,11 @@ public class IQConfigurationController extends BasicController { return repositoryManager.lookupRepositoryEntryBySoftkey(repoSoftkey, false); } - /** - * @see org.olat.core.gui.control.DefaultController#doDispose(boolean) - */ @Override protected void doDispose() { + if(stackPanel != null) { + stackPanel.removeListener(this); + } //child controllers registered with listenTo() get disposed in BasicController if (previewLayoutCtr != null) { previewLayoutCtr.dispose(); diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java index 912c01f966a26901115ed4938b3fb496b620b7a8..f07145384383c78bb6bef47135c45bd56d9101ec 100644 --- a/src/main/java/org/olat/course/run/CourseRuntimeController.java +++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java @@ -1025,20 +1025,28 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im @Override protected void cleanUp() { removeAsListenerAndDispose(lifeCycleChangeCtr); + removeAsListenerAndDispose(assessmentModeCtrl); + removeAsListenerAndDispose(lecturesAdminCtrl); removeAsListenerAndDispose(assessmentToolCtr); removeAsListenerAndDispose(courseFolderCtrl); removeAsListenerAndDispose(statisticsCtrl); + removeAsListenerAndDispose(remindersCtrl); removeAsListenerAndDispose(databasesCtrl); + removeAsListenerAndDispose(lecturesCtrl); removeAsListenerAndDispose(archiverCtrl); removeAsListenerAndDispose(statsToolCtr); removeAsListenerAndDispose(membersCtrl); removeAsListenerAndDispose(areasCtrl); removeAsListenerAndDispose(leaveDialogBox); lifeCycleChangeCtr = null; + assessmentModeCtrl = null; + lecturesAdminCtrl = null; assessmentToolCtr = null; courseFolderCtrl = null; statisticsCtrl = null; + remindersCtrl = null; databasesCtrl = null; + lecturesCtrl = null; archiverCtrl = null; statsToolCtr = null; membersCtrl = null; diff --git a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_de.properties index 8eb5751ad81bfbf878f5aabd4a7fd986ce9f13a5..1ea9c70c7759c01375c2633aa11bff9e0b96a182 100644 --- a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_de.properties @@ -165,6 +165,7 @@ view=Ansehen view.template=Raumvorlage "{0}" warning.at.least.one.meeting=Sie m\u00FCssen mindestens ein Meeting w\u00E4hlen. warning.meeting.started=Sie k\u00F6nnen ein gestartetes Meeting nicht mehr bearbeiten. +warning.no.access=Sie k\u00F6nnen noch nicht den Meeting beitreten. warning.template.in.use=Die Raumvorlage kann nicht gel\u00F6scht werden da sie nocht benutzt wird. L\u00F6schschen Sie zuerst die entsprechenden Online-Termine oder deaktivieren Sie die Raumvorlage. wizard.dates.title=Datum wizard.meeting.title=Konfiguration diff --git a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_en.properties index 009c3b80c1b9b7b560fa53bcc63eb78fbf58003f..af713e71b0634652465f59d2839f1f54dea7af09 100644 --- a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_en.properties @@ -165,6 +165,7 @@ view=View view.template=Room-template "{0}" warning.at.least.one.meeting=You must select at least one meeting. warning.meeting.started=You cannot edit a started meeting anymore. +warning.no.access=You cannot access the meeting yet. warning.template.in.use=The room-template cannot be deleted because it is used by online-meetings. Delete the corresponding online-meeting or de-activate the room-template. wizard.dates.title=Dates wizard.meeting.title=Configuration diff --git a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_fr.properties index 612e47425ddf4086ad6079cb50bdd4f694b1d053..2ea39b07b9981144880da5f0c797b9525eee2925 100644 --- a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_fr.properties @@ -110,4 +110,5 @@ template.name=Nom templates.title=Mod\u00E8les view=Regarder view.template=Mod\u00E8le de salle de r\u00E9union "{0}" +warning.no.access=Vous ne pouvez pas encore acc\u00E9der au meeting. warning.template.in.use=Le mod\u00E8le ne peut pas \u00EAtre effacer car il est encore utilis\u00E9. diff --git a/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java b/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java index ec0801fc92cddd1921b5b9ea1cd0292966080682..57566ba1fad0dca68f87825f9dfd6ad614b4f6e1 100644 --- a/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java +++ b/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java @@ -274,6 +274,7 @@ public class CurriculumComposerController extends FormBasicController implements @Override protected void doDispose() { + toolbarPanel.removeListener(this); if(!toolbarPanel.isToolbarEnabled()) { toolbarPanel.setToolbarEnabled(true); } diff --git a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java index 94e4a49c84480f6d71dcd4806291ca99620b5bbc..c44e6cbe61b1edf41149107614ba5d1d166863f3 100644 --- a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java +++ b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java @@ -95,6 +95,14 @@ public class TeacherOverviewController extends AbstractTeacherOverviewController super.initTables(ureq, withTeachers, withAssessment); } + @Override + protected void doDispose() { + if(toolbarPanel != null) { + toolbarPanel.removeListener(this); + } + super.doDispose(); + } + @Override protected List<LectureBlockRow> getRows(LecturesBlockSearchParameters searchParams) { Identity filterByTeacher = ((Boolean)allTeachersSwitch.getUserObject()).booleanValue() ? null : getIdentity(); diff --git a/src/main/java/org/olat/modules/portfolio/ui/BinderController.java b/src/main/java/org/olat/modules/portfolio/ui/BinderController.java index 8c11a99351e4bd4a146e782ad61179135ac401d1..2e634f7227d0ef56e6329513618a318ae91b0439 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/BinderController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/BinderController.java @@ -176,7 +176,9 @@ public class BinderController extends BasicController implements TooledControlle @Override protected void doDispose() { - // + if(stackPanel != null) { + stackPanel.removeListener(this); + } } @Override diff --git a/src/main/java/org/olat/modules/portfolio/ui/PageMetadataController.java b/src/main/java/org/olat/modules/portfolio/ui/PageMetadataController.java index 74b66fbe85aa3436155f5fad4e45b88ac722ac39..916dbab7736beacc120b0c52e152b797afb764db 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/PageMetadataController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/PageMetadataController.java @@ -221,10 +221,13 @@ public class PageMetadataController extends BasicController { List<File> documents = null; File storage = fileStorage.getAssignmentDirectory(assignment); - if(storage != null) { - documents = Arrays.<File>asList(storage.listFiles(SystemFileFilter.DIRECTORY_FILES)); - if(!documents.isEmpty()) { - needMapper = true; + if(storage != null && storage.exists()) { + File[] files = storage.listFiles(SystemFileFilter.DIRECTORY_FILES); + if(files != null && files.length > 0) { + documents = Arrays.<File>asList(files); + if(!documents.isEmpty()) { + needMapper = true; + } } } diff --git a/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java b/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java index 73a4a33d51df93dda8b6c4eb3dd4f4e90f7bd6b0..c30186f8d260bd4f52d1022cbc4ee77d2002d88e 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java @@ -354,6 +354,9 @@ public class PageRunController extends BasicController implements TooledControll @Override protected void doDispose() { + if(stackPanel != null) { + stackPanel.removeListener(this); + } if (lockEntry != null && lockEntry.isSuccess()) { // release lock coordinator.getCoordinator().getLocker().releaseLock(lockEntry); diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java index 813f607bac57a6dd1aae31da97c8ef2520986ad3..f48040ca05dc89a0222f09daf8fe0f3eb7a0ccaa 100644 --- a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java +++ b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java @@ -259,6 +259,14 @@ public class QuestionListController extends AbstractItemListController implement bulkChange = uifactory.addFormLink("bulk.change", formLayout, Link.BUTTON); } } + + @Override + protected void doDispose() { + if(stackPanel != null) { + stackPanel.removeListener(this); + } + super.doDispose(); + } public QuestionItemCollection getItemCollection() { return itemCollection; diff --git a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java index 2c32b5a2e53bdf359f349403b11672fcd4ff86c4..64a31ca32d7d765442657691d6c4a03e7b65b79a 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java +++ b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java @@ -210,7 +210,9 @@ public class TaxonomyTreeTableController extends FormBasicController implements @Override protected void doDispose() { - // + if(stackPanel != null) { + stackPanel.removeListener(this); + } } @Override diff --git a/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java b/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java index 69439e536bbfb26a2e30a352f357fdc02933fce5..5561a74df4b635f11d3bcfe1d360b1479ae4710c 100644 --- a/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java +++ b/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java @@ -136,7 +136,9 @@ public class OrganisationsStructureAdminController extends FormBasicController i @Override protected void doDispose() { - // + if(stackPanel != null) { + stackPanel.removeListener(this); + } } private void loadModel(boolean reset) { diff --git a/src/main/webapp/static/js/jquery/openolat/jquery.navbar.js b/src/main/webapp/static/js/jquery/openolat/jquery.navbar.js index 40d3dc7ccf436715c95b8bd8b8d6b2e6b1c1da67..7e4f74ad82b8abae24facbca0124b3ba35126fb5 100644 --- a/src/main/webapp/static/js/jquery/openolat/jquery.navbar.js +++ b/src/main/webapp/static/js/jquery/openolat/jquery.navbar.js @@ -325,7 +325,7 @@ var more = $('#o_navbar_more'); if(more.length == 0){ more = $('<ul id="o_navbar_more" class="nav o_navbar-nav o_dropdown_toggle"><li>' - + '<a class="dropdown-toggle" data-toggle="dropdown" href="#"">'+o_info.i18n_topnav_more+' <b class="caret"></b></a>' + + '<a class="dropdown-toggle" data-toggle="dropdown" href="#">'+o_info.i18n_topnav_more+' <b class="caret"></b></a>' + '<ul class="dropdown-menu dropdown-menu-right"></ul>' + '</li></ul>'); more.appendTo(collapse); diff --git a/src/main/webapp/static/js/jquery/openolat/jquery.paint.js b/src/main/webapp/static/js/jquery/openolat/jquery.paint.js index 95711020fff1311ea4193a7eced7d75fd6b805ea..b89b42459b45bb685413c2224cd475cc50bcb9a4 100644 --- a/src/main/webapp/static/js/jquery/openolat/jquery.paint.js +++ b/src/main/webapp/static/js/jquery/openolat/jquery.paint.js @@ -25,7 +25,7 @@ var usePointerApi = false; if (window.PointerEvent) { - usePointerApi = true; + usePointerApi = false; } var useRequestAnimationFrame = false;