X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/9831076c8f7385dffb533e0327cc7dd7c9f1ef92..9f6d1535529f8d33732ecaac54bbd56afb536b0f:/src/editor/modules/documentCanvas/documentCanvas.js?ds=sidebyside diff --git a/src/editor/modules/documentCanvas/documentCanvas.js b/src/editor/modules/documentCanvas/documentCanvas.js index 3e6a209..7e70f7f 100644 --- a/src/editor/modules/documentCanvas/documentCanvas.js +++ b/src/editor/modules/documentCanvas/documentCanvas.js @@ -3,14 +3,26 @@ define([ 'libs/jquery', 'libs/underscore', +'fnpjs/logging/logging', './canvas/canvas', -'libs/text!./template.html'], function($, _, canvas3, template) { +'libs/text!./template.html'], function($, _, logging, canvas3, template) { 'use strict'; + +var logger = logging.getLogger('documentCanvas'); + return function(sandbox) { - var canvas = canvas3.fromXMLDocument(null); + var canvasElements = []; + + sandbox.getPlugins().forEach(function(plugin) { + canvasElements = canvasElements.concat(plugin.canvasElements || []); + }); + + var canvas = canvas3.fromXMLDocument(null, canvasElements, { + user: sandbox.getConfig().user + }); var canvasWrapper = $(template); var shownAlready = false; var scrollbarPosition = 0, @@ -60,7 +72,7 @@ return function(sandbox) { }, setDocument: function(wlxmlDocument) { canvas.loadWlxmlDocument(wlxmlDocument); - canvasWrapper.find('#rng-module-documentCanvas-content').empty().append(canvas.view()); + canvasWrapper.find('#rng-module-documentCanvas-contentWrapper').empty().append(canvas.view()); }, highlightElement: function(node) { canvas.toggleElementHighlight(node, true); @@ -72,6 +84,13 @@ return function(sandbox) { canvas.setCurrentElement(node); }, onAfterActionExecuted: function(action, ret) { + if(ret && ret.isValid()) { + logger.debug('The action returned a valid fragment'); + return canvas.select(ret); + } + + logger.debug('No valid fragment returned from the action'); + (actionHandlers[action.getPluginName()] || []).forEach(function(handler) { handler(canvas, action, ret); });