From 3aae3e80bd3ed965146a6143dc9f5681503fe734 Mon Sep 17 00:00:00 2001 From: Catrope Date: Wed, 5 Jun 2013 17:48:16 -0700 Subject: [PATCH] Fix protectedness of MWReferenceList The update() method wiped out the entire contents of the node, including the shield that makes ce.ProtectedNode work. Fixed by only wiping out and reconstructing the contents of the
    Change-Id: Ib2978a72939884be67964ce8a3d89a570f70bfa3 --- modules/ve/ce/nodes/ve.ce.MWReferenceListNode.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/ve/ce/nodes/ve.ce.MWReferenceListNode.js b/modules/ve/ce/nodes/ve.ce.MWReferenceListNode.js index e84cbc837a..8166d37284 100644 --- a/modules/ve/ce/nodes/ve.ce.MWReferenceListNode.js +++ b/modules/ve/ce/nodes/ve.ce.MWReferenceListNode.js @@ -26,6 +26,8 @@ ve.ce.MWReferenceListNode = function VeCeMWReferenceListNode( model, config ) { // DOM Changes this.$.addClass( 've-ce-mwReferenceListNode', 'reference' ) .attr( 'contenteditable', false ); + this.$reflist = $( '
      ' ); + this.$.append( this.$reflist ); // Events this.model.getDocument().internalList.connect( this, { 'update': 'onInternalListUpdate' } ); @@ -45,6 +47,8 @@ ve.mixinClass( ve.ce.MWReferenceListNode, ve.ce.ProtectedNode ); ve.ce.MWReferenceListNode.static.name = 'mwReferenceList'; +ve.ce.MWReferenceListNode.static.tagName = 'div'; + /* Methods */ /** @@ -81,11 +85,11 @@ ve.ce.MWReferenceListNode.prototype.onListNodeUpdate = function () { */ ve.ce.MWReferenceListNode.prototype.update = function () { var i, j, iLen, jLen, key, keyNodes, $li, itemNode, - $ol = $( '
        ' ), internalList = this.model.getDocument().internalList, listGroup = this.model.getAttribute( 'listGroup' ), nodes = internalList.getNodeGroup( listGroup ); + this.$reflist.empty(); if ( nodes && nodes.keyOrder.length ) { for ( i = 0, iLen = nodes.keyOrder.length; i < iLen; i++ ) { key = nodes.keyOrder[i]; @@ -108,11 +112,9 @@ ve.ce.MWReferenceListNode.prototype.update = function () { internalList.getItemNode( keyNodes[0].getAttribute( 'listIndex' ) ) ); $li.append( $( '' ).html( itemNode.$.show() ) ); - $ol.append( $li ); + this.$reflist.append( $li ); } } // TODO: Show a placeholder for an empty reference list in the 'else' section - - this.$.html( $ol ); }; /* Registration */