edtior: fix exercise.order document events handling
[fnpeditor.git] / src / editor / plugins / core / edumed / order / element.js
index 7c5e383..724f2ec 100644 (file)
@@ -6,13 +6,13 @@ define(function(require) {
 
 var _ = require('libs/underscore');
 
-var documentElement = require('modules/documentCanvas/canvas/documentElement'),
+var elementBase = require('plugins/core/edumed/elementBase'),
     OrderExerciseView = require('./view');
 
-var OrderExerciceElement = Object.create(documentElement.DocumentNodeElement.prototype);
+var OrderExerciceElement = Object.create(elementBase);
 _.extend(OrderExerciceElement, {
     init: function() {
-        documentElement.DocumentNodeElement.prototype.init.call(this);
+        elementBase.init.call(this);
         
         this.view = new OrderExerciseView(this, this.wlxmlNode);
         this._container().append(this.view.dom);
@@ -55,8 +55,9 @@ _.extend(OrderExerciceElement, {
 
         var exerciseNode = this.wlxmlNode;
         this.createContainer(this.wlxmlNode.object.getDescription(), {
+            resetBackground: true,
             manages: function(node, removedFrom) {
-                if(node.is('list.orderable')) {
+                if(node.is('list.orderable') || (removedFrom && removedFrom.is('list.orderable'))) {
                     return false;
                 }
                 return exerciseNode.sameNode(node.parent() || removedFrom); //!n.hasFollowingSibing(this.params.listnode);    
@@ -78,6 +79,12 @@ _.extend(OrderExerciceElement, {
             this.reloadView();
         }
     },
+    onNodeDetached: function(event) {
+        var node = event.meta.node;
+        if(node.is('item.answer') && event.meta.parent && event.meta.parent.is('list.orderable')) {
+            this.reloadView();
+        }
+    },
     reloadView: function() {
         this.view.clearItems();
         this.wlxmlNode.object.getItems().forEach(function(item) {