mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-09-25 11:16:51 +00:00
Merge "dm.metaitems: Turn grouped metas into variadic ones"
This commit is contained in:
commit
b278907870
|
@ -1537,19 +1537,17 @@
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWDefaultSortMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWDefaultSortMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWDisplayTitleMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWDisplayTitleMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWHiddenCategoryMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWHiddenCategoryMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWIndexDisableMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWFlaggedMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWIndexForceMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWIndexMetaItem.js",
|
||||||
|
"modules/ve-mw/dm/metaitems/ve.dm.MWNewSectionEditMetaItem.js",
|
||||||
|
"modules/ve-mw/dm/metaitems/ve.dm.MWTOCMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWNewSectionEditDisableMetaItem.js",
|
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWNewSectionEditForceMetaItem.js",
|
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWNoContentConvertMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWNoContentConvertMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWNoEditSectionMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWNoEditSectionMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWNoGalleryMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWNoGalleryMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWNoTitleConvertMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWNoTitleConvertMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWRedirectMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWRedirectMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWStaticRedirectMetaItem.js",
|
"modules/ve-mw/dm/metaitems/ve.dm.MWStaticRedirectMetaItem.js",
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWTOCDisableMetaItem.js",
|
|
||||||
"modules/ve-mw/dm/metaitems/ve.dm.MWTOCForceMetaItem.js",
|
|
||||||
"modules/ve-mw/ui/widgets/ve.ui.MWCategoryInputWidget.js",
|
"modules/ve-mw/ui/widgets/ve.ui.MWCategoryInputWidget.js",
|
||||||
"modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js",
|
"modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js",
|
||||||
"modules/ve-mw/ui/widgets/ve.ui.MWCategoryItemWidget.js",
|
"modules/ve-mw/ui/widgets/ve.ui.MWCategoryItemWidget.js",
|
||||||
|
|
57
modules/ve-mw/dm/metaitems/ve.dm.MWFlaggedMetaItem.js
Normal file
57
modules/ve-mw/dm/metaitems/ve.dm.MWFlaggedMetaItem.js
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
/*!
|
||||||
|
* VisualEditor DataModel MWFlaggedMetaItem class.
|
||||||
|
*
|
||||||
|
* @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
|
||||||
|
* @license The MIT License (MIT); see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataModel flagged meta item abstract (for pairs of meta items).
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @abstract
|
||||||
|
* @extends ve.dm.MetaItem
|
||||||
|
* @constructor
|
||||||
|
* @param {Object} [element] Reference to element in meta-linmod
|
||||||
|
*/
|
||||||
|
ve.dm.MWFlaggedMetaItem = function VeDmMWFlaggedMetaItem() {
|
||||||
|
// Parent constructor
|
||||||
|
ve.dm.MWFlaggedMetaItem.super.apply( this, arguments );
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Inheritance */
|
||||||
|
|
||||||
|
OO.inheritClass( ve.dm.MWFlaggedMetaItem, ve.dm.MetaItem );
|
||||||
|
|
||||||
|
/* Static Properties */
|
||||||
|
|
||||||
|
/* No name/group/matchRdfaTypes, as this is not a valid meta item, just an abstract class. */
|
||||||
|
|
||||||
|
ve.dm.MWFlaggedMetaItem.static.matchTagNames = [ 'meta' ];
|
||||||
|
|
||||||
|
ve.dm.MWFlaggedMetaItem.static.toDataElement = function ( domElements ) {
|
||||||
|
var type = domElements[ 0 ].getAttribute( 'property' );
|
||||||
|
|
||||||
|
if ( !type || this.matchRdfaTypes.indexOf( type ) === -1 ) {
|
||||||
|
// Fallback to first match if somehow unset
|
||||||
|
type = this.matchRdfaTypes[ 0 ];
|
||||||
|
}
|
||||||
|
|
||||||
|
return { type: this.name, attributes: { type: type } };
|
||||||
|
};
|
||||||
|
|
||||||
|
ve.dm.MWFlaggedMetaItem.static.toDomElements = function ( dataElement, doc ) {
|
||||||
|
var meta = doc.createElement( 'meta' ),
|
||||||
|
type = OO.getProp( dataElement, 'attributes', 'property' );
|
||||||
|
|
||||||
|
if ( !type || this.matchRdfaTypes.indexOf( type ) === -1 ) {
|
||||||
|
// Fallback to first item if somehow unset
|
||||||
|
type = this.matchRdfaTypes[ 0 ];
|
||||||
|
}
|
||||||
|
|
||||||
|
meta.setAttribute( 'property', type );
|
||||||
|
|
||||||
|
return [ meta ];
|
||||||
|
};
|
||||||
|
|
||||||
|
/* No registration, as this is not a valid meta item, just an abstract class. */
|
|
@ -1,47 +0,0 @@
|
||||||
/*!
|
|
||||||
* VisualEditor DataModel MWIndexDisableMetaItem class.
|
|
||||||
*
|
|
||||||
* @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
|
|
||||||
* @license The MIT License (MIT); see LICENSE.txt
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DataModel disable index meta item (for __NOINDEX__).
|
|
||||||
*
|
|
||||||
* @class
|
|
||||||
* @extends ve.dm.MetaItem
|
|
||||||
* @constructor
|
|
||||||
* @param {Object} element Reference to element in meta-linmod
|
|
||||||
*/
|
|
||||||
ve.dm.MWIndexDisableMetaItem = function VeDmMWIndexDisableMetaItem() {
|
|
||||||
// Parent constructor
|
|
||||||
ve.dm.MWIndexDisableMetaItem.super.apply( this, arguments );
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Inheritance */
|
|
||||||
|
|
||||||
OO.inheritClass( ve.dm.MWIndexDisableMetaItem, ve.dm.MetaItem );
|
|
||||||
|
|
||||||
/* Static Properties */
|
|
||||||
|
|
||||||
ve.dm.MWIndexDisableMetaItem.static.name = 'mwIndexDisable';
|
|
||||||
|
|
||||||
ve.dm.MWIndexDisableMetaItem.static.group = 'mwIndex';
|
|
||||||
|
|
||||||
ve.dm.MWIndexDisableMetaItem.static.matchTagNames = [ 'meta' ];
|
|
||||||
|
|
||||||
ve.dm.MWIndexDisableMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/noindex' ];
|
|
||||||
|
|
||||||
ve.dm.MWIndexDisableMetaItem.static.toDataElement = function () {
|
|
||||||
return { type: this.name };
|
|
||||||
};
|
|
||||||
|
|
||||||
ve.dm.MWIndexDisableMetaItem.static.toDomElements = function ( dataElement, doc ) {
|
|
||||||
var meta = doc.createElement( 'meta' );
|
|
||||||
meta.setAttribute( 'property', 'mw:PageProp/noindex' );
|
|
||||||
return [ meta ];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Registration */
|
|
||||||
|
|
||||||
ve.dm.modelRegistry.register( ve.dm.MWIndexDisableMetaItem );
|
|
|
@ -1,47 +0,0 @@
|
||||||
/*!
|
|
||||||
* VisualEditor DataModel MWIndexForceMetaItem class.
|
|
||||||
*
|
|
||||||
* @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
|
|
||||||
* @license The MIT License (MIT); see LICENSE.txt
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DataModel force index meta item (for __INDEX__).
|
|
||||||
*
|
|
||||||
* @class
|
|
||||||
* @extends ve.dm.MetaItem
|
|
||||||
* @constructor
|
|
||||||
* @param {Object} element Reference to element in meta-linmod
|
|
||||||
*/
|
|
||||||
ve.dm.MWIndexForceMetaItem = function VeDmMWIndexForceMetaItem() {
|
|
||||||
// Parent constructor
|
|
||||||
ve.dm.MWIndexForceMetaItem.super.apply( this, arguments );
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Inheritance */
|
|
||||||
|
|
||||||
OO.inheritClass( ve.dm.MWIndexForceMetaItem, ve.dm.MetaItem );
|
|
||||||
|
|
||||||
/* Static Properties */
|
|
||||||
|
|
||||||
ve.dm.MWIndexForceMetaItem.static.name = 'mwIndexForce';
|
|
||||||
|
|
||||||
ve.dm.MWIndexForceMetaItem.static.group = 'mwIndex';
|
|
||||||
|
|
||||||
ve.dm.MWIndexForceMetaItem.static.matchTagNames = [ 'meta' ];
|
|
||||||
|
|
||||||
ve.dm.MWIndexForceMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/index' ];
|
|
||||||
|
|
||||||
ve.dm.MWIndexForceMetaItem.static.toDataElement = function () {
|
|
||||||
return { type: this.name };
|
|
||||||
};
|
|
||||||
|
|
||||||
ve.dm.MWIndexForceMetaItem.static.toDomElements = function ( dataElement, doc ) {
|
|
||||||
var meta = doc.createElement( 'meta' );
|
|
||||||
meta.setAttribute( 'property', 'mw:PageProp/index' );
|
|
||||||
return [ meta ];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Registration */
|
|
||||||
|
|
||||||
ve.dm.modelRegistry.register( ve.dm.MWIndexForceMetaItem );
|
|
35
modules/ve-mw/dm/metaitems/ve.dm.MWIndexMetaItem.js
Normal file
35
modules/ve-mw/dm/metaitems/ve.dm.MWIndexMetaItem.js
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/*!
|
||||||
|
* VisualEditor DataModel MWIndexMetaItem class.
|
||||||
|
*
|
||||||
|
* @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
|
||||||
|
* @license The MIT License (MIT); see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataModel index meta item (for __INDEX__ and __NOINDEX__).
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @extends ve.dm.MWFlaggedMetaItem
|
||||||
|
* @constructor
|
||||||
|
* @param {Object} [element] Reference to element in meta-linmod
|
||||||
|
*/
|
||||||
|
ve.dm.MWIndexMetaItem = function VeDmMWIndexMetaItem() {
|
||||||
|
// Parent constructor
|
||||||
|
ve.dm.MWIndexMetaItem.super.apply( this, arguments );
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Inheritance */
|
||||||
|
|
||||||
|
OO.inheritClass( ve.dm.MWIndexMetaItem, ve.dm.MWFlaggedMetaItem );
|
||||||
|
|
||||||
|
/* Static Properties */
|
||||||
|
|
||||||
|
ve.dm.MWIndexMetaItem.static.name = 'mwIndex';
|
||||||
|
|
||||||
|
ve.dm.MWIndexMetaItem.static.group = 'mwIndex';
|
||||||
|
|
||||||
|
ve.dm.MWIndexMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/index', 'mw:PageProp/noindex' ];
|
||||||
|
|
||||||
|
/* Registration */
|
||||||
|
|
||||||
|
ve.dm.modelRegistry.register( ve.dm.MWIndexMetaItem );
|
|
@ -1,47 +0,0 @@
|
||||||
/*!
|
|
||||||
* VisualEditor DataModel MWNewSectionEditDisableMetaItem class.
|
|
||||||
*
|
|
||||||
* @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
|
|
||||||
* @license The MIT License (MIT); see LICENSE.txt
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DataModel disable new section edit link meta item (for __NONEWSECTIONLINK__).
|
|
||||||
*
|
|
||||||
* @class
|
|
||||||
* @extends ve.dm.MetaItem
|
|
||||||
* @constructor
|
|
||||||
* @param {Object} element Reference to element in meta-linmod
|
|
||||||
*/
|
|
||||||
ve.dm.MWNewSectionEditDisableMetaItem = function VeDmMWNewSectionEditDisableMetaItem() {
|
|
||||||
// Parent constructor
|
|
||||||
ve.dm.MWNewSectionEditDisableMetaItem.super.apply( this, arguments );
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Inheritance */
|
|
||||||
|
|
||||||
OO.inheritClass( ve.dm.MWNewSectionEditDisableMetaItem, ve.dm.MetaItem );
|
|
||||||
|
|
||||||
/* Static Properties */
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditDisableMetaItem.static.name = 'mwNewSectionEditDisable';
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditDisableMetaItem.static.group = 'mwNewSectionEdit';
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditDisableMetaItem.static.matchTagNames = [ 'meta' ];
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditDisableMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/nonewsectionlink' ];
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditDisableMetaItem.static.toDataElement = function () {
|
|
||||||
return { type: this.name };
|
|
||||||
};
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditDisableMetaItem.static.toDomElements = function ( dataElement, doc ) {
|
|
||||||
var meta = doc.createElement( 'meta' );
|
|
||||||
meta.setAttribute( 'property', 'mw:PageProp/nonewsectionlink' );
|
|
||||||
return [ meta ];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Registration */
|
|
||||||
|
|
||||||
ve.dm.modelRegistry.register( ve.dm.MWNewSectionEditDisableMetaItem );
|
|
|
@ -1,47 +0,0 @@
|
||||||
/*!
|
|
||||||
* VisualEditor DataModel MWNewSectionEditForceMetaItem class.
|
|
||||||
*
|
|
||||||
* @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
|
|
||||||
* @license The MIT License (MIT); see LICENSE.txt
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DataModel force new section edit link meta item (for __NEWSECTIONLINK__).
|
|
||||||
*
|
|
||||||
* @class
|
|
||||||
* @extends ve.dm.MetaItem
|
|
||||||
* @constructor
|
|
||||||
* @param {Object} element Reference to element in meta-linmod
|
|
||||||
*/
|
|
||||||
ve.dm.MWNewSectionEditForceMetaItem = function VeDmMWNewSectionEditForceMetaItem() {
|
|
||||||
// Parent constructor
|
|
||||||
ve.dm.MWNewSectionEditForceMetaItem.super.apply( this, arguments );
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Inheritance */
|
|
||||||
|
|
||||||
OO.inheritClass( ve.dm.MWNewSectionEditForceMetaItem, ve.dm.MetaItem );
|
|
||||||
|
|
||||||
/* Static Properties */
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditForceMetaItem.static.name = 'mwNewSectionEditForce';
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditForceMetaItem.static.group = 'mwNewSectionEdit';
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditForceMetaItem.static.matchTagNames = [ 'meta' ];
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditForceMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/newsectionlink' ];
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditForceMetaItem.static.toDataElement = function () {
|
|
||||||
return { type: this.name };
|
|
||||||
};
|
|
||||||
|
|
||||||
ve.dm.MWNewSectionEditForceMetaItem.static.toDomElements = function ( dataElement, doc ) {
|
|
||||||
var meta = doc.createElement( 'meta' );
|
|
||||||
meta.setAttribute( 'property', 'mw:PageProp/newsectionlink' );
|
|
||||||
return [ meta ];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Registration */
|
|
||||||
|
|
||||||
ve.dm.modelRegistry.register( ve.dm.MWNewSectionEditForceMetaItem );
|
|
35
modules/ve-mw/dm/metaitems/ve.dm.MWNewSectionEditMetaItem.js
Normal file
35
modules/ve-mw/dm/metaitems/ve.dm.MWNewSectionEditMetaItem.js
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/*!
|
||||||
|
* VisualEditor DataModel MWNewSectionEditMetaItem class.
|
||||||
|
*
|
||||||
|
* @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
|
||||||
|
* @license The MIT License (MIT); see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataModel new section edit link meta item (for __NEWSECTIONLINK__ and __NONEWSECTIONLINK__).
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @extends ve.dm.MWFlaggedMetaItem
|
||||||
|
* @constructor
|
||||||
|
* @param {Object} [element] Reference to element in meta-linmod
|
||||||
|
*/
|
||||||
|
ve.dm.MWNewSectionEditMetaItem = function VeDmMWNewSectionEditMetaItem() {
|
||||||
|
// Parent constructor
|
||||||
|
ve.dm.MWNewSectionEditMetaItem.super.apply( this, arguments );
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Inheritance */
|
||||||
|
|
||||||
|
OO.inheritClass( ve.dm.MWNewSectionEditMetaItem, ve.dm.MWFlaggedMetaItem );
|
||||||
|
|
||||||
|
/* Static Properties */
|
||||||
|
|
||||||
|
ve.dm.MWNewSectionEditMetaItem.static.name = 'mwNewSectionEdit';
|
||||||
|
|
||||||
|
ve.dm.MWNewSectionEditMetaItem.static.group = 'mwNewSectionEdit';
|
||||||
|
|
||||||
|
ve.dm.MWNewSectionEditMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/newsectionlink', 'mw:PageProp/nonewsectionlink' ];
|
||||||
|
|
||||||
|
/* Registration */
|
||||||
|
|
||||||
|
ve.dm.modelRegistry.register( ve.dm.MWNewSectionEditMetaItem );
|
|
@ -1,43 +0,0 @@
|
||||||
/*!
|
|
||||||
* VisualEditor DataModel MWTOCDisableMetaItem class.
|
|
||||||
*
|
|
||||||
* @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
|
|
||||||
* @license The MIT License (MIT); see LICENSE.txt
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DataModel disable TOC meta item.
|
|
||||||
*
|
|
||||||
* @class
|
|
||||||
* @extends ve.dm.MetaItem
|
|
||||||
* @constructor
|
|
||||||
* @param {Object} element Reference to element in meta-linmod
|
|
||||||
*/
|
|
||||||
ve.dm.MWTOCDisableMetaItem = function VeDmMWTOCDisableMetaItem() {
|
|
||||||
// Parent constructor
|
|
||||||
ve.dm.MWTOCDisableMetaItem.super.apply( this, arguments );
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Inheritance */
|
|
||||||
|
|
||||||
OO.inheritClass( ve.dm.MWTOCDisableMetaItem, ve.dm.MetaItem );
|
|
||||||
|
|
||||||
/* Static Properties */
|
|
||||||
|
|
||||||
ve.dm.MWTOCDisableMetaItem.static.name = 'mwTOCDisable';
|
|
||||||
|
|
||||||
ve.dm.MWTOCDisableMetaItem.static.group = 'mwTOC';
|
|
||||||
|
|
||||||
ve.dm.MWTOCDisableMetaItem.static.matchTagNames = [ 'meta' ];
|
|
||||||
|
|
||||||
ve.dm.MWTOCDisableMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/notoc' ];
|
|
||||||
|
|
||||||
ve.dm.MWTOCDisableMetaItem.static.toDomElements = function ( dataElement, doc ) {
|
|
||||||
var meta = doc.createElement( 'meta' );
|
|
||||||
meta.setAttribute( 'property', 'mw:PageProp/notoc' );
|
|
||||||
return [ meta ];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Registration */
|
|
||||||
|
|
||||||
ve.dm.modelRegistry.register( ve.dm.MWTOCDisableMetaItem );
|
|
|
@ -1,43 +0,0 @@
|
||||||
/*!
|
|
||||||
* VisualEditor DataModel MWTOCForceMetaItem class.
|
|
||||||
*
|
|
||||||
* @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
|
|
||||||
* @license The MIT License (MIT); see LICENSE.txt
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DataModel force TOC meta item.
|
|
||||||
*
|
|
||||||
* @class
|
|
||||||
* @extends ve.dm.MetaItem
|
|
||||||
* @constructor
|
|
||||||
* @param {Object} element Reference to element in meta-linmod
|
|
||||||
*/
|
|
||||||
ve.dm.MWTOCForceMetaItem = function VeDmMWTOCForceMetaItem() {
|
|
||||||
// Parent constructor
|
|
||||||
ve.dm.MWTOCForceMetaItem.super.apply( this, arguments );
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Inheritance */
|
|
||||||
|
|
||||||
OO.inheritClass( ve.dm.MWTOCForceMetaItem, ve.dm.MetaItem );
|
|
||||||
|
|
||||||
/* Static Properties */
|
|
||||||
|
|
||||||
ve.dm.MWTOCForceMetaItem.static.name = 'mwTOCForce';
|
|
||||||
|
|
||||||
ve.dm.MWTOCForceMetaItem.static.group = 'mwTOC';
|
|
||||||
|
|
||||||
ve.dm.MWTOCForceMetaItem.static.matchTagNames = [ 'meta' ];
|
|
||||||
|
|
||||||
ve.dm.MWTOCForceMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/forcetoc' ];
|
|
||||||
|
|
||||||
ve.dm.MWTOCForceMetaItem.static.toDomElements = function ( dataElement, doc ) {
|
|
||||||
var meta = doc.createElement( 'meta' );
|
|
||||||
meta.setAttribute( 'property', 'mw:PageProp/forcetoc' );
|
|
||||||
return [ meta ];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Registration */
|
|
||||||
|
|
||||||
ve.dm.modelRegistry.register( ve.dm.MWTOCForceMetaItem );
|
|
35
modules/ve-mw/dm/metaitems/ve.dm.MWTOCMetaItem.js
Normal file
35
modules/ve-mw/dm/metaitems/ve.dm.MWTOCMetaItem.js
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/*!
|
||||||
|
* VisualEditor DataModel MWTOCDisableMetaItem class.
|
||||||
|
*
|
||||||
|
* @copyright 2011-2017 VisualEditor Team and others; see AUTHORS.txt
|
||||||
|
* @license The MIT License (MIT); see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataModel TOC meta item (for __FORCETOC__ and __NOTOC__).
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @extends ve.dm.MWFlaggedMetaItem
|
||||||
|
* @constructor
|
||||||
|
* @param {Object} element Reference to element in meta-linmod
|
||||||
|
*/
|
||||||
|
ve.dm.MWTOCMetaItem = function VeDmMWTOCMetaItem() {
|
||||||
|
// Parent constructor
|
||||||
|
ve.dm.MWTOCMetaItem.super.apply( this, arguments );
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Inheritance */
|
||||||
|
|
||||||
|
OO.inheritClass( ve.dm.MWTOCMetaItem, ve.dm.MWFlaggedMetaItem );
|
||||||
|
|
||||||
|
/* Static Properties */
|
||||||
|
|
||||||
|
ve.dm.MWTOCMetaItem.static.name = 'mwTOC';
|
||||||
|
|
||||||
|
ve.dm.MWTOCMetaItem.static.group = 'mwTOC';
|
||||||
|
|
||||||
|
ve.dm.MWTOCMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/forcetoc', 'mw:PageProp/notoc' ];
|
||||||
|
|
||||||
|
/* Registration */
|
||||||
|
|
||||||
|
ve.dm.modelRegistry.register( ve.dm.MWTOCMetaItem );
|
|
@ -39,7 +39,7 @@ ve.ui.MWAdvancedSettingsPage = function VeUiMWAdvancedSettingsPage( name, config
|
||||||
new OO.ui.ButtonSelectWidget()
|
new OO.ui.ButtonSelectWidget()
|
||||||
.addItems( [
|
.addItems( [
|
||||||
new OO.ui.ButtonOptionWidget( {
|
new OO.ui.ButtonOptionWidget( {
|
||||||
data: 'mwIndexForce',
|
data: 'mw:PageProp/index',
|
||||||
label: ve.msg( 'visualeditor-dialog-meta-settings-index-force' )
|
label: ve.msg( 'visualeditor-dialog-meta-settings-index-force' )
|
||||||
} ),
|
} ),
|
||||||
new OO.ui.ButtonOptionWidget( {
|
new OO.ui.ButtonOptionWidget( {
|
||||||
|
@ -47,7 +47,7 @@ ve.ui.MWAdvancedSettingsPage = function VeUiMWAdvancedSettingsPage( name, config
|
||||||
label: ve.msg( 'visualeditor-dialog-meta-settings-index-default' )
|
label: ve.msg( 'visualeditor-dialog-meta-settings-index-default' )
|
||||||
} ),
|
} ),
|
||||||
new OO.ui.ButtonOptionWidget( {
|
new OO.ui.ButtonOptionWidget( {
|
||||||
data: 'mwIndexDisable',
|
data: 'mw:PageProp/noindex',
|
||||||
label: ve.msg( 'visualeditor-dialog-meta-settings-index-disable' )
|
label: ve.msg( 'visualeditor-dialog-meta-settings-index-disable' )
|
||||||
} )
|
} )
|
||||||
] )
|
] )
|
||||||
|
@ -65,7 +65,7 @@ ve.ui.MWAdvancedSettingsPage = function VeUiMWAdvancedSettingsPage( name, config
|
||||||
new OO.ui.ButtonSelectWidget()
|
new OO.ui.ButtonSelectWidget()
|
||||||
.addItems( [
|
.addItems( [
|
||||||
new OO.ui.ButtonOptionWidget( {
|
new OO.ui.ButtonOptionWidget( {
|
||||||
data: 'mwNewSectionEditForce',
|
data: 'mw:PageProp/newsectionlink',
|
||||||
label: ve.msg( 'visualeditor-dialog-meta-settings-newsectioneditlink-force' )
|
label: ve.msg( 'visualeditor-dialog-meta-settings-newsectioneditlink-force' )
|
||||||
} ),
|
} ),
|
||||||
new OO.ui.ButtonOptionWidget( {
|
new OO.ui.ButtonOptionWidget( {
|
||||||
|
@ -73,7 +73,7 @@ ve.ui.MWAdvancedSettingsPage = function VeUiMWAdvancedSettingsPage( name, config
|
||||||
label: ve.msg( 'visualeditor-dialog-meta-settings-newsectioneditlink-default' )
|
label: ve.msg( 'visualeditor-dialog-meta-settings-newsectioneditlink-default' )
|
||||||
} ),
|
} ),
|
||||||
new OO.ui.ButtonOptionWidget( {
|
new OO.ui.ButtonOptionWidget( {
|
||||||
data: 'mwNewSectionEditDisable',
|
data: 'mw:PageProp/nonewsectionlink',
|
||||||
label: ve.msg( 'visualeditor-dialog-meta-settings-newsectioneditlink-disable' )
|
label: ve.msg( 'visualeditor-dialog-meta-settings-newsectioneditlink-disable' )
|
||||||
} )
|
} )
|
||||||
] )
|
] )
|
||||||
|
@ -207,14 +207,14 @@ ve.ui.MWAdvancedSettingsPage.prototype.setup = function ( metaList ) {
|
||||||
// Indexing items
|
// Indexing items
|
||||||
indexingField = this.indexing.getField();
|
indexingField = this.indexing.getField();
|
||||||
indexingOption = this.getMetaItem( 'mwIndex' );
|
indexingOption = this.getMetaItem( 'mwIndex' );
|
||||||
indexingType = indexingOption && indexingOption.element.type || 'default';
|
indexingType = indexingOption.getAttribute( 'property' ) || 'default';
|
||||||
indexingField.selectItemByData( indexingType );
|
indexingField.selectItemByData( indexingType );
|
||||||
this.indexingOptionTouched = false;
|
this.indexingOptionTouched = false;
|
||||||
|
|
||||||
// New section edit link items
|
// New section edit link items
|
||||||
newSectionEditField = this.newEditSectionLink.getField();
|
newSectionEditField = this.newEditSectionLink.getField();
|
||||||
newSectionEditLinkOption = this.getMetaItem( 'mwNewSectionEdit' );
|
newSectionEditLinkOption = this.getMetaItem( 'mwNewSectionEdit' );
|
||||||
newSectionEditLinkType = newSectionEditLinkOption && newSectionEditLinkOption.element.type || 'default';
|
newSectionEditLinkType = newSectionEditLinkOption.getAttribute( 'property' ) || 'default';
|
||||||
newSectionEditField.selectItemByData( newSectionEditLinkType );
|
newSectionEditField.selectItemByData( newSectionEditLinkType );
|
||||||
this.newSectionEditLinkOptionTouched = false;
|
this.newSectionEditLinkOptionTouched = false;
|
||||||
|
|
||||||
|
@ -240,9 +240,9 @@ ve.ui.MWAdvancedSettingsPage.prototype.setup = function ( metaList ) {
|
||||||
* @param {Object} [data] Dialog tear down data
|
* @param {Object} [data] Dialog tear down data
|
||||||
*/
|
*/
|
||||||
ve.ui.MWAdvancedSettingsPage.prototype.teardown = function ( data ) {
|
ve.ui.MWAdvancedSettingsPage.prototype.teardown = function ( data ) {
|
||||||
var currentIndexingItem, newIndexingData,
|
var currentIndexingItem, newIndexingData, newIndexingItem,
|
||||||
currentNewSectionEditLinkItem, newNewSectionEditLinkOptionData,
|
currentNewSectionEditLinkItem, newNewSectionEditLinkData, newNewSectionEditLinkItem,
|
||||||
currentDisplayTitleItem, newDisplayTitle, newDisplayTitleItemData,
|
currentDisplayTitleItem, newDisplayTitle, newDisplayTitleItem,
|
||||||
advancedSettingsPage = this;
|
advancedSettingsPage = this;
|
||||||
|
|
||||||
// Data initialization
|
// Data initialization
|
||||||
|
@ -262,14 +262,13 @@ ve.ui.MWAdvancedSettingsPage.prototype.teardown = function ( data ) {
|
||||||
currentIndexingItem.remove();
|
currentIndexingItem.remove();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
newIndexingItem = { type: 'mwIndex', attributes: { property: newIndexingData.data } };
|
||||||
|
|
||||||
if ( !currentIndexingItem ) {
|
if ( !currentIndexingItem ) {
|
||||||
this.metaList.insertMeta( { type: newIndexingData.data } );
|
this.metaList.insertMeta( newIndexingItem );
|
||||||
} else if ( currentIndexingItem.element.type !== newIndexingData.data ) {
|
} else if ( currentIndexingItem.getAttribute( 'property' ) !== newIndexingData.data ) {
|
||||||
currentIndexingItem.replaceWith(
|
currentIndexingItem.replaceWith(
|
||||||
ve.extendObject( true, {},
|
ve.extendObject( true, {}, currentIndexingItem.getElement(), newIndexingItem )
|
||||||
currentIndexingItem.getElement(),
|
|
||||||
{ type: newIndexingData.data }
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -277,23 +276,22 @@ ve.ui.MWAdvancedSettingsPage.prototype.teardown = function ( data ) {
|
||||||
|
|
||||||
// New section edit link items
|
// New section edit link items
|
||||||
currentNewSectionEditLinkItem = this.getMetaItem( 'mwNewSectionEdit' );
|
currentNewSectionEditLinkItem = this.getMetaItem( 'mwNewSectionEdit' );
|
||||||
newNewSectionEditLinkOptionData = this.newEditSectionLink.getField().getSelectedItem();
|
newNewSectionEditLinkData = this.newEditSectionLink.getField().getSelectedItem();
|
||||||
|
|
||||||
// Alter the new section edit option flag iff it's been touched & is actually different
|
// Alter the new section edit option flag iff it's been touched & is actually different
|
||||||
if ( this.newSectionEditLinkOptionTouched ) {
|
if ( this.newSectionEditLinkOptionTouched ) {
|
||||||
if ( newNewSectionEditLinkOptionData.data === 'default' ) {
|
if ( newNewSectionEditLinkData.data === 'default' ) {
|
||||||
if ( currentNewSectionEditLinkItem ) {
|
if ( currentNewSectionEditLinkItem ) {
|
||||||
currentNewSectionEditLinkItem.remove();
|
currentNewSectionEditLinkItem.remove();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
newNewSectionEditLinkItem = { type: 'mwNewSectionEdit', attributes: { property: newNewSectionEditLinkData.data } };
|
||||||
|
|
||||||
if ( !currentNewSectionEditLinkItem ) {
|
if ( !currentNewSectionEditLinkItem ) {
|
||||||
this.metaList.insertMeta( { type: newNewSectionEditLinkOptionData.data } );
|
this.metaList.insertMeta( newNewSectionEditLinkItem );
|
||||||
} else if ( currentNewSectionEditLinkItem.element.type !== newNewSectionEditLinkOptionData.data ) {
|
} else if ( currentNewSectionEditLinkItem.getAttribute( 'property' ) !== newNewSectionEditLinkData.data ) {
|
||||||
currentNewSectionEditLinkItem.replaceWith(
|
currentNewSectionEditLinkItem.replaceWith(
|
||||||
ve.extendObject( true, {},
|
ve.extendObject( true, {}, currentNewSectionEditLinkItem.getElement(), newNewSectionEditLinkItem )
|
||||||
currentNewSectionEditLinkItem.getElement(),
|
|
||||||
{ type: newNewSectionEditLinkOptionData.data }
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -305,7 +303,7 @@ ve.ui.MWAdvancedSettingsPage.prototype.teardown = function ( data ) {
|
||||||
if ( newDisplayTitle === mw.Title.newFromText( mw.config.get( 'wgPageName' ) ).getPrefixedText() ) {
|
if ( newDisplayTitle === mw.Title.newFromText( mw.config.get( 'wgPageName' ) ).getPrefixedText() ) {
|
||||||
newDisplayTitle = '';
|
newDisplayTitle = '';
|
||||||
}
|
}
|
||||||
newDisplayTitleItemData = { type: 'mwDisplayTitle', attributes: { content: newDisplayTitle } };
|
newDisplayTitleItem = { type: 'mwDisplayTitle', attributes: { content: newDisplayTitle } };
|
||||||
|
|
||||||
// Alter the display title flag iff it's been touched & is actually different
|
// Alter the display title flag iff it's been touched & is actually different
|
||||||
if ( this.displayTitleTouched ) {
|
if ( this.displayTitleTouched ) {
|
||||||
|
@ -316,7 +314,7 @@ ve.ui.MWAdvancedSettingsPage.prototype.teardown = function ( data ) {
|
||||||
currentDisplayTitleItem.replaceWith(
|
currentDisplayTitleItem.replaceWith(
|
||||||
ve.extendObject( true, {},
|
ve.extendObject( true, {},
|
||||||
currentDisplayTitleItem.getElement(),
|
currentDisplayTitleItem.getElement(),
|
||||||
newDisplayTitleItemData
|
newDisplayTitleItem
|
||||||
) );
|
) );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -327,7 +325,7 @@ ve.ui.MWAdvancedSettingsPage.prototype.teardown = function ( data ) {
|
||||||
if ( newDisplayTitle ) {
|
if ( newDisplayTitle ) {
|
||||||
// There's no existing display title but there is a new one, so create
|
// There's no existing display title but there is a new one, so create
|
||||||
// HACK: Putting this at index 0, offset 0 so that it works – bug 61862
|
// HACK: Putting this at index 0, offset 0 so that it works – bug 61862
|
||||||
this.metaList.insertMeta( newDisplayTitleItemData, 0, 0 );
|
this.metaList.insertMeta( newDisplayTitleItem, 0, 0 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ ve.ui.MWSettingsPage = function VeUiMWSettingsPage( name, config ) {
|
||||||
} )
|
} )
|
||||||
.addItems( [
|
.addItems( [
|
||||||
new OO.ui.ButtonOptionWidget( {
|
new OO.ui.ButtonOptionWidget( {
|
||||||
data: 'mwTOCForce',
|
data: 'mw:PageProp/forcetoc',
|
||||||
label: ve.msg( 'visualeditor-dialog-meta-settings-toc-force' )
|
label: ve.msg( 'visualeditor-dialog-meta-settings-toc-force' )
|
||||||
} ),
|
} ),
|
||||||
new OO.ui.ButtonOptionWidget( {
|
new OO.ui.ButtonOptionWidget( {
|
||||||
|
@ -51,7 +51,7 @@ ve.ui.MWSettingsPage = function VeUiMWSettingsPage( name, config ) {
|
||||||
label: ve.msg( 'visualeditor-dialog-meta-settings-toc-default' )
|
label: ve.msg( 'visualeditor-dialog-meta-settings-toc-default' )
|
||||||
} ),
|
} ),
|
||||||
new OO.ui.ButtonOptionWidget( {
|
new OO.ui.ButtonOptionWidget( {
|
||||||
data: 'mwTOCDisable',
|
data: 'mw:PageProp/notoc',
|
||||||
label: ve.msg( 'visualeditor-dialog-meta-settings-toc-disable' )
|
label: ve.msg( 'visualeditor-dialog-meta-settings-toc-disable' )
|
||||||
} )
|
} )
|
||||||
] )
|
] )
|
||||||
|
@ -264,8 +264,7 @@ ve.ui.MWSettingsPage.prototype.setup = function ( metaList ) {
|
||||||
// Table of Contents items
|
// Table of Contents items
|
||||||
tableOfContentsMetaItem = this.getMetaItem( 'mwTOC' );
|
tableOfContentsMetaItem = this.getMetaItem( 'mwTOC' );
|
||||||
tableOfContentsField = this.tableOfContents.getField();
|
tableOfContentsField = this.tableOfContents.getField();
|
||||||
tableOfContentsMode = tableOfContentsMetaItem &&
|
tableOfContentsMode = tableOfContentsMetaItem.getAttribute( 'property' ) || 'default';
|
||||||
tableOfContentsMetaItem.getType() || 'default';
|
|
||||||
tableOfContentsField.selectItemByData( tableOfContentsMode );
|
tableOfContentsField.selectItemByData( tableOfContentsMode );
|
||||||
this.tableOfContentsTouched = false;
|
this.tableOfContentsTouched = false;
|
||||||
|
|
||||||
|
@ -293,7 +292,7 @@ ve.ui.MWSettingsPage.prototype.setup = function ( metaList ) {
|
||||||
* @param {Object} [data] Dialog tear down data
|
* @param {Object} [data] Dialog tear down data
|
||||||
*/
|
*/
|
||||||
ve.ui.MWSettingsPage.prototype.teardown = function ( data ) {
|
ve.ui.MWSettingsPage.prototype.teardown = function ( data ) {
|
||||||
var tableOfContentsMetaItem, tableOfContentsSelectedItem, tableOfContentsValue,
|
var currentTableOfContents, newTableOfContentsData, newTableOfContentsItem,
|
||||||
currentRedirectTargetItem, newRedirectData, newRedirectItemData,
|
currentRedirectTargetItem, newRedirectData, newRedirectItemData,
|
||||||
currentStaticRedirectItem, newStaticRedirectState,
|
currentStaticRedirectItem, newStaticRedirectState,
|
||||||
settingsPage = this;
|
settingsPage = this;
|
||||||
|
@ -305,9 +304,8 @@ ve.ui.MWSettingsPage.prototype.teardown = function ( data ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Table of Contents items
|
// Table of Contents items
|
||||||
tableOfContentsMetaItem = this.getMetaItem( 'mwTOC' );
|
currentTableOfContents = this.getMetaItem( 'mwTOC' );
|
||||||
tableOfContentsSelectedItem = this.tableOfContents.getField().getSelectedItem();
|
newTableOfContentsData = this.tableOfContents.getField().getSelectedItem();
|
||||||
tableOfContentsValue = tableOfContentsSelectedItem && tableOfContentsSelectedItem.getData();
|
|
||||||
|
|
||||||
// Redirect items
|
// Redirect items
|
||||||
currentRedirectTargetItem = this.getMetaItem( 'mwRedirect' );
|
currentRedirectTargetItem = this.getMetaItem( 'mwRedirect' );
|
||||||
|
@ -319,19 +317,18 @@ ve.ui.MWSettingsPage.prototype.teardown = function ( data ) {
|
||||||
|
|
||||||
// Alter the TOC option flag iff it's been touched & is actually different
|
// Alter the TOC option flag iff it's been touched & is actually different
|
||||||
if ( this.tableOfContentsTouched ) {
|
if ( this.tableOfContentsTouched ) {
|
||||||
if ( tableOfContentsValue === 'default' ) {
|
if ( newTableOfContentsData.data === 'default' ) {
|
||||||
if ( tableOfContentsMetaItem ) {
|
if ( currentTableOfContents ) {
|
||||||
tableOfContentsMetaItem.remove();
|
currentTableOfContents.remove();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ( !tableOfContentsMetaItem ) {
|
newTableOfContentsItem = { type: 'mwTOC', attributes: { property: newTableOfContentsData.data } };
|
||||||
this.metaList.insertMeta( { type: tableOfContentsValue } );
|
|
||||||
} else if ( tableOfContentsMetaItem.getType() !== tableOfContentsValue ) {
|
if ( !currentTableOfContents ) {
|
||||||
tableOfContentsMetaItem.replaceWith(
|
this.metaList.insertMeta( newTableOfContentsItem );
|
||||||
ve.extendObject( true, {},
|
} else if ( currentTableOfContents.getAttribute( 'property' ) !== newTableOfContentsData.data ) {
|
||||||
tableOfContentsMetaItem.getElement(),
|
currentTableOfContents.replaceWith(
|
||||||
{ type: tableOfContentsValue }
|
ve.extendObject( true, {}, currentTableOfContents.getElement(), newTableOfContentsItem )
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue