From 72d44a742d0e8eca5d9d655d732d7697a289b171 Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Thu, 4 Feb 2021 13:14:28 +0100 Subject: [PATCH] OO-5273: Release OnlyOffice edit license when window is closed --- .../onlyoffice/manager/OnlyOfficeServiceImpl.java | 2 +- .../onlyoffice/ui/OnlyOfficeEditorController.java | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/manager/OnlyOfficeServiceImpl.java b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/manager/OnlyOfficeServiceImpl.java index b1aba56d3dc..ac72c676ce8 100644 --- a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/manager/OnlyOfficeServiceImpl.java +++ b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/manager/OnlyOfficeServiceImpl.java @@ -293,7 +293,7 @@ public class OnlyOfficeServiceImpl implements OnlyOfficeService { if (licenseEdit.intValue() <= 0) return false; Long accessCount = documentEditorServie.getAccessCount(OnlyOfficeEditor.TYPE, Mode.EDIT); - return accessCount < licenseEdit.intValue(); + return accessCount <= licenseEdit.intValue(); } @Override diff --git a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/ui/OnlyOfficeEditorController.java b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/ui/OnlyOfficeEditorController.java index a838c432e4e..13768de4941 100644 --- a/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/ui/OnlyOfficeEditorController.java +++ b/src/main/java/org/olat/core/commons/services/doceditor/onlyoffice/ui/OnlyOfficeEditorController.java @@ -30,6 +30,7 @@ import org.olat.core.commons.services.doceditor.onlyoffice.OnlyOfficeService; import org.olat.core.commons.services.vfs.VFSMetadata; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.Window; import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; @@ -65,6 +66,8 @@ public class OnlyOfficeEditorController extends BasicController { final DocEditorConfigs configs, Access runAccess) { super(ureq, wControl); access = runAccess; + + wControl.getWindowBackOffice().getWindow().addListener(this); if (Mode.EDIT == access.getMode() && !onlyOfficeService.isEditLicenseAvailable()) { access = docEditorService.updateMode(access, Mode.VIEW); @@ -111,11 +114,14 @@ public class OnlyOfficeEditorController extends BasicController { putInitialPanel(mainVC); } - + @Override - protected void event(UserRequest ureq, Component source, Event event) { - // + public void event(UserRequest ureq, Component source, Event event) { + if(event == Window.CLOSE_WINDOW) { + deleteAccess(); + } } + @Override protected void doDispose() { -- GitLab