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