Create meta item for defaultsort

Bug: 46465
Change-Id: I604a79c25e5b0315f7e6437da657977b0efa77db
This commit is contained in:
Ed Sanders 2013-04-29 15:33:37 +01:00
parent 50e86936be
commit b85c7f0628
5 changed files with 71 additions and 0 deletions

View file

@ -290,6 +290,7 @@ $wgResourceModules += array(
've/dm/metaitems/ve.dm.AlienMetaItem.js',
've/dm/metaitems/ve.dm.MWAlienMetaItem.js',
've/dm/metaitems/ve.dm.MWCategoryMetaItem.js',
've/dm/metaitems/ve.dm.MWDefaultSortMetaItem.js',
've/dm/metaitems/ve.dm.MWLanguageMetaItem.js',
// ce

View file

@ -178,6 +178,7 @@ $html = file_get_contents( $page );
<script src="../../modules/ve/dm/metaitems/ve.dm.AlienMetaItem.js"></script>
<script src="../../modules/ve/dm/metaitems/ve.dm.MWAlienMetaItem.js"></script>
<script src="../../modules/ve/dm/metaitems/ve.dm.MWCategoryMetaItem.js"></script>
<script src="../../modules/ve/dm/metaitems/ve.dm.MWDefaultSortMetaItem.js"></script>
<script src="../../modules/ve/dm/metaitems/ve.dm.MWLanguageMetaItem.js"></script>
<script src="../../modules/ve/ce/ve.ce.js"></script>
<script src="../../modules/ve/ce/ve.ce.DomRange.js"></script>

View file

@ -0,0 +1,54 @@
/*!
* VisualEditor DataModel MWDefaultSortMetaItem class.
*
* @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
/**
* DataModel category default sort meta item.
*
* @class
* @extends ve.dm.MetaItem
* @constructor
* @param {Object} element Reference to element in meta-linmod
*/
ve.dm.MWDefaultSortMetaItem = function VeDmMWDefaultSortMetaItem( element ) {
// Parent constructor
ve.dm.MetaItem.call( this, element );
};
/* Inheritance */
ve.inheritClass( ve.dm.MWDefaultSortMetaItem, ve.dm.MetaItem );
/* Static Properties */
ve.dm.MWDefaultSortMetaItem.static.name = 'MWdefaultSort';
ve.dm.MWDefaultSortMetaItem.static.group = 'MWdefaultSort';
ve.dm.MWDefaultSortMetaItem.static.matchTagNames = [ 'meta' ];
ve.dm.MWDefaultSortMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/categorydefaultsort' ];
ve.dm.MWDefaultSortMetaItem.static.toDataElement = function ( domElements ) {
var content = domElements[0].getAttribute( 'content' );
return {
'type': this.name,
'attributes': {
'content': content
}
};
};
ve.dm.MWDefaultSortMetaItem.static.toDomElements = function ( dataElement, doc ) {
var meta = doc.createElement( 'meta' );
meta.setAttribute( 'property', 'mw:PageProp/categorydefaultsort' );
meta.setAttribute( 'content', dataElement.attributes.content );
return [ meta ];
};
/* Registration */
ve.dm.modelRegistry.register( ve.dm.MWDefaultSortMetaItem );

View file

@ -2487,6 +2487,20 @@ ve.dm.example.domToDataCases = {
'table with caption, head, foot and body': {
'html': ve.dm.example.complexTableHtml,
'data': ve.dm.example.complexTable
},
'category default sort key': {
'html': '<body><meta property="mw:PageProp/categorydefaultsort" content="foo"></body>',
'data': [
{
'type': 'MWdefaultSort',
'attributes': {
'content': 'foo',
'html/0/content': 'foo',
'html/0/property': 'mw:PageProp/categorydefaultsort'
}
},
{ 'type': '/MWdefaultSort' }
]
}
};

View file

@ -121,6 +121,7 @@
<script src="../../ve/dm/metaitems/ve.dm.AlienMetaItem.js"></script>
<script src="../../ve/dm/metaitems/ve.dm.MWAlienMetaItem.js"></script>
<script src="../../ve/dm/metaitems/ve.dm.MWCategoryMetaItem.js"></script>
<script src="../../ve/dm/metaitems/ve.dm.MWDefaultSortMetaItem.js"></script>
<script src="../../ve/dm/metaitems/ve.dm.MWLanguageMetaItem.js"></script>
<script src="../../ve/ce/ve.ce.js"></script>
<script src="../../ve/ce/ve.ce.DomRange.js"></script>