Esanders has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/281250

Change subject: Sections: Make sections & articles undeletable
......................................................................

Sections: Make sections & articles undeletable

Requires us to check in SurfaceFragment#delete if removal
ops are no-ops as this is the result of making a branch node
undeletable.

Bug: T131659
Change-Id: I76570eedbbd5a0d0338508432e1a323721d48810
---
M src/dm/nodes/ve.dm.ArticleNode.js
M src/dm/nodes/ve.dm.SectionNode.js
M src/dm/ve.dm.SurfaceFragment.js
3 files changed, 19 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/50/281250/1

diff --git a/src/dm/nodes/ve.dm.ArticleNode.js 
b/src/dm/nodes/ve.dm.ArticleNode.js
index 9e2a19b..58c203a 100644
--- a/src/dm/nodes/ve.dm.ArticleNode.js
+++ b/src/dm/nodes/ve.dm.ArticleNode.js
@@ -27,6 +27,8 @@
 
 ve.dm.ArticleNode.static.name = 'article';
 
+ve.dm.ArticleNode.static.isDeletable = false;
+
 ve.dm.ArticleNode.static.matchTagNames = [ 'article' ];
 
 /* Methods */
diff --git a/src/dm/nodes/ve.dm.SectionNode.js 
b/src/dm/nodes/ve.dm.SectionNode.js
index 3dd7d96..0d707ac 100644
--- a/src/dm/nodes/ve.dm.SectionNode.js
+++ b/src/dm/nodes/ve.dm.SectionNode.js
@@ -27,6 +27,8 @@
 
 ve.dm.SectionNode.static.name = 'section';
 
+ve.dm.SectionNode.static.isDeletable = false;
+
 ve.dm.SectionNode.static.defaultAttributes = {
        style: 'section'
 };
diff --git a/src/dm/ve.dm.SurfaceFragment.js b/src/dm/ve.dm.SurfaceFragment.js
index fa0384b..a088683 100644
--- a/src/dm/ve.dm.SurfaceFragment.js
+++ b/src/dm/ve.dm.SurfaceFragment.js
@@ -926,18 +926,21 @@
                                        return false;
                                }
                        } );
-                       // Move contents of endNode into startNode, and delete 
nodeToDelete
-                       this.change( [
-                               ve.dm.Transaction.newFromRemoval(
-                                       this.document,
-                                       nodeToDelete.getOuterRange()
-                               ),
-                               ve.dm.Transaction.newFromInsertion(
-                                       this.document,
-                                       rangeAfterRemove.start,
-                                       endNodeData
-                               )
-                       ] );
+                       tx = ve.dm.Transaction.newFromRemoval(
+                               this.document,
+                               nodeToDelete.getOuterRange()
+                       );
+                       if ( !tx.isNoOp() ) {
+                               // Move contents of endNode into startNode, and 
delete nodeToDelete
+                               this.change( [
+                                       tx,
+                                       ve.dm.Transaction.newFromInsertion(
+                                               this.document,
+                                               rangeAfterRemove.start,
+                                               endNodeData
+                                       )
+                               ] );
+                       }
                }
        }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/281250
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I76570eedbbd5a0d0338508432e1a323721d48810
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to