Skip to content
Snippets Groups Projects
Commit 4720f18f authored by Thomas Mortagne's avatar Thomas Mortagne
Browse files

XWIKI-13555: sdoc is not always available in the script binding

XWIKI-13528: Add support for replacing the default WYSIWYG editor
parent fb54cde0
No related branches found
No related tags found
No related merge requests found
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
import com.xpn.xwiki.api.Context; import com.xpn.xwiki.api.Context;
import com.xpn.xwiki.api.Document; import com.xpn.xwiki.api.Document;
import com.xpn.xwiki.api.XWiki; import com.xpn.xwiki.api.XWiki;
import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.web.Utils; import com.xpn.xwiki.web.Utils;
import com.xpn.xwiki.web.XWikiMessageTool; import com.xpn.xwiki.web.XWikiMessageTool;
...@@ -91,18 +92,32 @@ public void initialize(ScriptContext scriptContext) ...@@ -91,18 +92,32 @@ public void initialize(ScriptContext scriptContext)
ScriptContext.ENGINE_SCOPE); ScriptContext.ENGINE_SCOPE);
} }
if (xcontext.getDoc() != null) { // Current document
Document apiDocument = xcontext.getDoc().newDocument(xcontext); XWikiDocument doc = xcontext.getDoc();
Document translatedDocument = apiDocument; if (doc != null) {
try { Document previousDoc = (Document) scriptContext.getAttribute("doc");
translatedDocument = apiDocument.getTranslatedDocument(); if (previousDoc == null || !previousDoc.getDocumentReference().equals(doc.getDocumentReference())) {
} catch (XWikiException e) { Document apiDocument = doc.newDocument(xcontext);
this.logger.warn("Failed to retrieve the translated document for [{}]. " Document translatedDocument = apiDocument;
+ "Continue using the default translation.", apiDocument.getFullName(), e); try {
translatedDocument = apiDocument.getTranslatedDocument();
} catch (XWikiException e) {
this.logger.warn("Failed to retrieve the translated document for [{}]. "
+ "Continue using the default translation.", apiDocument.getFullName(), e);
}
scriptContext.setAttribute("doc", apiDocument, ScriptContext.ENGINE_SCOPE);
scriptContext.setAttribute("cdoc", translatedDocument, ScriptContext.ENGINE_SCOPE);
scriptContext.setAttribute("tdoc", translatedDocument, ScriptContext.ENGINE_SCOPE);
}
}
// Current secure document
XWikiDocument sdoc = (XWikiDocument) xcontext.get("sdoc");
if (sdoc != null) {
Document previousSDoc = (Document) scriptContext.getAttribute("sdoc");
if (previousSDoc == null || !previousSDoc.getDocumentReference().equals(sdoc.getDocumentReference())) {
scriptContext.setAttribute("sdoc", sdoc.newDocument(xcontext), ScriptContext.ENGINE_SCOPE);
} }
scriptContext.setAttribute("doc", apiDocument, ScriptContext.ENGINE_SCOPE);
scriptContext.setAttribute("cdoc", translatedDocument, ScriptContext.ENGINE_SCOPE);
scriptContext.setAttribute("tdoc", translatedDocument, ScriptContext.ENGINE_SCOPE);
} }
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment