From e46d5ef34b67087f80e991a388536ce68e2c5646 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 7 May 2012 15:07:49 +0200 Subject: [PATCH] OO-248: fix NPE if the file is too big for the HTML editor in the CP editor --- .../commons/editor/htmleditor/HTMLEditorController.java | 7 +++++++ src/main/java/org/olat/ims/cp/ui/CPContentController.java | 8 +++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/olat/core/commons/editor/htmleditor/HTMLEditorController.java b/src/main/java/org/olat/core/commons/editor/htmleditor/HTMLEditorController.java index 86a80a8601b..403dc4ff070 100644 --- a/src/main/java/org/olat/core/commons/editor/htmleditor/HTMLEditorController.java +++ b/src/main/java/org/olat/core/commons/editor/htmleditor/HTMLEditorController.java @@ -105,6 +105,7 @@ public class HTMLEditorController extends FormBasicController { private CustomLinkTreeModel customLinkTreeModel; private VelocityContainer metadataVC; + private boolean editable = true; private boolean newFile = true; private boolean editorCheckEnabled = true; // default @@ -147,6 +148,7 @@ public class HTMLEditorController extends FormBasicController { setTranslator(Util.createPackageTranslator(PlainTextEditorController.class, getLocale(),getTranslator())); getWindowControl().setError(translate("plaintext.error.tolarge", new String[]{(size / 1000) + "", (FolderConfig.getMaxEditSizeLimit()/1000)+""})); this.body = ""; + this.editable = false; //initForm(ureq); return; } @@ -165,6 +167,7 @@ public class HTMLEditorController extends FormBasicController { if (!lock.isSuccess()) { vc.contextPut("locked", Boolean.TRUE); vc.contextPut("lockOwner", lock.getOwner().getName()); + this.editable = false; return; } else { vc.contextPut("locked", Boolean.FALSE); @@ -243,6 +246,10 @@ public class HTMLEditorController extends FormBasicController { metadataVC.contextPut("charSet", charSet); metadataVC.contextPut("fileName", fileName); } + + public boolean isEditable() { + return editable; + } /** * Optional configuration option to display the save button below the HTML diff --git a/src/main/java/org/olat/ims/cp/ui/CPContentController.java b/src/main/java/org/olat/ims/cp/ui/CPContentController.java index 08f23b36f99..3817287b316 100644 --- a/src/main/java/org/olat/ims/cp/ui/CPContentController.java +++ b/src/main/java/org/olat/ims/cp/ui/CPContentController.java @@ -137,9 +137,11 @@ public class CPContentController extends BasicController { VFSContainer pseudoContainer = new VFSRootCPContainer(virtualRootFolderName, cp, rootDir, getTranslator()); mceCtr = WysiwygFactory.createWysiwygController(ureq, getWindowControl(), pseudoContainer, filePath, false); - mceCtr.setCancelButtonEnabled(false); - mceCtr.setSaveCloseButtonEnabled(false); - mceCtr.setShowMetadataEnabled(false); + if(mceCtr.isEditable()) { + mceCtr.setCancelButtonEnabled(false); + mceCtr.setSaveCloseButtonEnabled(false); + mceCtr.setShowMetadataEnabled(false); + } listenTo(mceCtr); contentVC.put("content", mceCtr.getInitialComponent()); } else { -- GitLab