jenkins-bot has submitted this change and it was merged.

Change subject: Let users set __NOEDITSECTION__ status
......................................................................


Let users set __NOEDITSECTION__ status

Adds a checkbox to the page settings pane of the meta dialog that lets
users set or unset the __NOEDITSECTION__ flag on the page.

Change-Id: If1eca58e28d214021f5f5582856e595d4d0fbc43
---
M VisualEditor.php
A modules/ve-mw/dm/metaitems/ve.dm.MWNoEditSectionMetaItem.js
M modules/ve-mw/dm/metaitems/ve.dm.MWTOCDisableMetaItem.js
M modules/ve-mw/dm/metaitems/ve.dm.MWTOCForceMetaItem.js
M modules/ve-mw/i18n/en.json
M modules/ve-mw/i18n/qqq.json
M modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js
7 files changed, 95 insertions(+), 12 deletions(-)

Approvals:
  Catrope: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/VisualEditor.php b/VisualEditor.php
index 5b527c7..eaf1729 100644
--- a/VisualEditor.php
+++ b/VisualEditor.php
@@ -524,6 +524,7 @@
                        
'modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js',
                        
'modules/ve-mw/dm/metaitems/ve.dm.MWDefaultSortMetaItem.js',
                        
'modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js',
+                       
'modules/ve-mw/dm/metaitems/ve.dm.MWNoEditSectionMetaItem.js',
                        
'modules/ve-mw/dm/metaitems/ve.dm.MWTransclusionMetaItem.js',
                        
'modules/ve-mw/dm/metaitems/ve.dm.MWTOCDisableMetaItem.js',
                        
'modules/ve-mw/dm/metaitems/ve.dm.MWTOCForceMetaItem.js',
@@ -646,6 +647,7 @@
                        'visualeditor-dialog-meta-languages-readonlynote',
                        'visualeditor-dialog-meta-languages-section',
                        'visualeditor-dialog-meta-settings-label',
+                       'visualeditor-dialog-meta-settings-noeditsection-label',
                        'visualeditor-dialog-meta-settings-section',
                        'visualeditor-dialog-meta-settings-toc-default',
                        'visualeditor-dialog-meta-settings-toc-disable',
diff --git a/modules/ve-mw/dm/metaitems/ve.dm.MWNoEditSectionMetaItem.js 
b/modules/ve-mw/dm/metaitems/ve.dm.MWNoEditSectionMetaItem.js
new file mode 100644
index 0000000..8abb143
--- /dev/null
+++ b/modules/ve-mw/dm/metaitems/ve.dm.MWNoEditSectionMetaItem.js
@@ -0,0 +1,47 @@
+/*!
+ * VisualEditor DataModel MWNoEditSectionMetaItem  class.
+ *
+ * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * DataModel disable section edit links meta item.
+ *
+ * @class
+ * @extends ve.dm.MetaItem
+ * @constructor
+ * @param {Object} element Reference to element in meta-linmod
+ */
+ve.dm.MWNoEditSectionMetaItem = function VeDmMWNoEditSectionMetaItem( element 
) {
+       // Parent constructor
+       ve.dm.MetaItem.call( this, element );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.dm.MWNoEditSectionMetaItem, ve.dm.MetaItem );
+
+/* Static Properties */
+
+ve.dm.MWNoEditSectionMetaItem.static.name = 'mwNoEditSection';
+
+ve.dm.MWNoEditSectionMetaItem.static.group = 'mwNoEditSection';
+
+ve.dm.MWNoEditSectionMetaItem.static.matchTagNames = [ 'meta' ];
+
+ve.dm.MWNoEditSectionMetaItem.static.matchRdfaTypes = [ 
'mw:PageProp/noeditsection' ];
+
+ve.dm.MWNoEditSectionMetaItem.static.toDataElement = function () {
+       return { 'type': this.name };
+};
+
+ve.dm.MWNoEditSectionMetaItem.static.toDomElements = function ( dataElement, 
doc ) {
+       var meta = doc.createElement( 'meta' );
+       meta.setAttribute( 'property', 'mw:PageProp/noeditsection' );
+       return [ meta ];
+};
+
+/* Registration */
+
+ve.dm.modelRegistry.register( ve.dm.MWNoEditSectionMetaItem );
diff --git a/modules/ve-mw/dm/metaitems/ve.dm.MWTOCDisableMetaItem.js 
b/modules/ve-mw/dm/metaitems/ve.dm.MWTOCDisableMetaItem.js
index f8d7d1d..60ed46b 100644
--- a/modules/ve-mw/dm/metaitems/ve.dm.MWTOCDisableMetaItem.js
+++ b/modules/ve-mw/dm/metaitems/ve.dm.MWTOCDisableMetaItem.js
@@ -32,7 +32,7 @@
 
 ve.dm.MWTOCDisableMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/notoc' ];
 
-ve.dm.MWTOCDisableMetaItem.static.toDataElement = function ( ) {
+ve.dm.MWTOCDisableMetaItem.static.toDataElement = function () {
        return { 'type': this.name };
 };
 
diff --git a/modules/ve-mw/dm/metaitems/ve.dm.MWTOCForceMetaItem.js 
b/modules/ve-mw/dm/metaitems/ve.dm.MWTOCForceMetaItem.js
index df885a6..4eeb0ac 100644
--- a/modules/ve-mw/dm/metaitems/ve.dm.MWTOCForceMetaItem.js
+++ b/modules/ve-mw/dm/metaitems/ve.dm.MWTOCForceMetaItem.js
@@ -32,7 +32,7 @@
 
 ve.dm.MWTOCForceMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/forcetoc' ];
 
-ve.dm.MWTOCForceMetaItem.static.toDataElement = function ( ) {
+ve.dm.MWTOCForceMetaItem.static.toDataElement = function () {
        return { 'type': this.name };
 };
 
diff --git a/modules/ve-mw/i18n/en.json b/modules/ve-mw/i18n/en.json
index b54f03c..68999d8 100644
--- a/modules/ve-mw/i18n/en.json
+++ b/modules/ve-mw/i18n/en.json
@@ -58,6 +58,7 @@
     "visualeditor-dialog-meta-languages-readonlynote": "This is a list of 
pages in other languages that are linked to this one; for now, it can only be 
edited in source mode or on Wikidata.",
     "visualeditor-dialog-meta-languages-section": "Languages",
     "visualeditor-dialog-meta-settings-label": "Page settings",
+    "visualeditor-dialog-meta-settings-noeditsection-label": "Disable the edit 
links next to each heading on this page.",
     "visualeditor-dialog-meta-settings-section": "Page settings",
     "visualeditor-dialog-meta-settings-toc-default": "Show if needed",
     "visualeditor-dialog-meta-settings-toc-disable": "Never show",
@@ -174,4 +175,4 @@
     "visualeditor-wikitext-warning": "You are using VisualEditor - 
[[{{MediaWiki:visualeditor-wikitext-warning-link}}|wikitext]] does not work 
here. Click \"{{int:visualeditor-ca-editsource}}\" to edit the page in wikitext 
mode – unsaved changes will be lost.",
     "visualeditor-wikitext-warning-link": "Help:Wiki markup",
     "visualeditor-wikitext-warning-title": "Wikitext markup detected"
-}
\ No newline at end of file
+}
diff --git a/modules/ve-mw/i18n/qqq.json b/modules/ve-mw/i18n/qqq.json
index 05a8d93..9f7851c 100644
--- a/modules/ve-mw/i18n/qqq.json
+++ b/modules/ve-mw/i18n/qqq.json
@@ -61,6 +61,7 @@
     "visualeditor-dialog-meta-languages-readonlynote": "Text of a note 
informing users that the language links cannot yet be edited.\n\nSee also:\n* 
{{msg-mw|Visualeditor-referencelist-missingref}}",
     "visualeditor-dialog-meta-languages-section": "Label for the language 
links dialog section.\n{{Identical|Language}}",
     "visualeditor-dialog-meta-settings-label": "Title for the page settings 
dialog section",
+    "visualeditor-dialog-meta-settings-noeditsection-label": "Prompt for the 
checkbox to let the user disable section edit links on the page.",
     "visualeditor-dialog-meta-settings-section": "Label for the page settings 
dialog section.",
     "visualeditor-dialog-meta-settings-toc-default": "Label for the default 
TOC behaviour option.",
     "visualeditor-dialog-meta-settings-toc-disable": "Label for the TOC 
behaviour option to never show.",
diff --git a/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js 
b/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js
index 875733c..5e7587e 100644
--- a/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js
+++ b/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js
@@ -33,6 +33,10 @@
                'label': ve.msg( 'visualeditor-dialog-meta-settings-label' ),
                'icon': 'settings'
        } );
+
+       // Initialization
+
+       // Table of Contents items
        this.tocOptionSelector = new OO.ui.SelectWidget( { '$': this.$ } );
        this.tocOptionWidgets = {
                'default': new OO.ui.OptionWidget(
@@ -49,18 +53,20 @@
                )
        };
        this.tocOptionSelector.addItems( ve.getObjectValues( 
this.tocOptionWidgets ) );
-
-       // Events
-       this.tocOptionSelector.connect( this, {
-               'select': 'onTOCOptionChange'
-       } );
-
-       // Initialization
        this.settingsFieldset.$element.append(
                this.$( '<span>' )
                        .text( ve.msg( 
'visualeditor-dialog-meta-settings-toc-label' ) ),
                this.tocOptionSelector.$element
        );
+       this.tocOptionSelector.connect( this, { 'select': 'onTOCOptionChange' } 
);
+
+       // Disable section edit links items
+       this.disableSectionEditLinksInput = new OO.ui.CheckboxWidget( {
+               '$': this.$,
+               'label': ve.msg( 
'visualeditor-dialog-meta-settings-noeditsection-label' )
+       } );
+       this.settingsFieldset.$element.append( 
this.disableSectionEditLinksInput.$element );
+
        this.$element.append( this.settingsFieldset.$element );
 };
 
@@ -89,6 +95,15 @@
 };
 
 /**
+ * Get the section edit link disabling item
+ *
+ * @returns {Object|null} Section edit link disabling meta item, if any
+ */
+ve.ui.MWSettingsPage.prototype.getDisableSectionEditLinksItem = function () {
+       return this.metaList.getItemsInGroup( 'mwNoEditSection' )[0] || null;
+};
+
+/**
  * Setup settings page.
  *
  * @param {Object} [data] Dialog setup data
@@ -97,8 +112,12 @@
        var tocOption = this.getTOCOptionItem(),
                tocType = tocOption && tocOption.element.type || 'default';
 
+       // Table of Contents items
        this.tocOptionSelector.selectItem( this.tocOptionWidgets[tocType] );
        this.tocOptionTouched = false;
+
+       // Disable section edit links items
+       this.disableSectionEditLinksInput.setValue( 
!!this.getDisableSectionEditLinksItem() );
 };
 
 /**
@@ -110,8 +129,13 @@
        // Data initialisation
        data = data || {};
 
-       var currentTOCItem = this.getTOCOptionItem(),
-               newTOCData = this.tocOptionSelector.getSelectedItem();
+       var // Table of Contents items
+               currentTOCItem = this.getTOCOptionItem(),
+               newTOCData = this.tocOptionSelector.getSelectedItem(),
+
+               // Disable section edit links items
+               currentDisableSectionEditLinksItem = 
this.getDisableSectionEditLinksItem(),
+               newDisableSectionEditState = 
this.disableSectionEditLinksInput.getValue();
 
        // Alter the TOC option flag iff it's been touched & is actually 
different
        if ( this.tocOptionTouched ) {
@@ -132,4 +156,12 @@
                        }
                }
        }
+
+       // Disable section edit links items
+       if ( currentDisableSectionEditLinksItem && !newDisableSectionEditState 
) {
+               currentDisableSectionEditLinksItem.remove();
+       }
+       if ( !currentDisableSectionEditLinksItem && newDisableSectionEditState 
) {
+               this.metaList.insertMeta( { 'type': 'mwNoEditSection' } );
+       }
 };

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

Gerrit-MessageType: merged
Gerrit-Change-Id: If1eca58e28d214021f5f5582856e595d4d0fbc43
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Jforrester <jforres...@wikimedia.org>
Gerrit-Reviewer: Catrope <roan.katt...@gmail.com>
Gerrit-Reviewer: Jforrester <jforres...@wikimedia.org>
Gerrit-Reviewer: Siebrand <siebr...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to