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