diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.property.js')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.property.js | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.property.js b/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.property.js new file mode 100644 index 00000000..7aa67387 --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.property.js @@ -0,0 +1,117 @@ +/** + * SMW Property DataItem JavaScript representation + * + * @see SMW\DITime + * + * @since 1.9 + * + * @file + * @ingroup SMW + * + * @licence GNU GPL v2 or later + * @author mwjames + */ +( function( $, mw, smw ) { + 'use strict'; + + var html = mw.html; + + /** + * Inheritance class + * + * @type Object + */ + smw.dataItem = smw.dataItem || {}; + + /** + * Property constructor + * + * @since 1.9 + * + * @param {string} + * + * @return {this} + */ + var property = function ( property ) { + this.property = property !== '' && property !== undefined ? property : null; + return this; + }; + + /** + * Constructor + * + * @var Object + */ + smw.dataItem.property = function( property ) { + if ( $.type( property ) === 'string' ) { + this.constructor( property ); + } else { + throw new Error( 'smw.dataItem.property: invoked property must be a string but is of type ' + $.type( property ) ); + } + }; + + /* Public methods */ + + smw.dataItem.property.prototype = { + + constructor: property, + namespace: 102, // SMW_NS_PROPERTY needs a better way to fill this value + + /** + * Returns type + * + * @see SMW\DIProperty::getDIType() + * + * @since 1.9 + * + * @return {string} + */ + getDIType: function() { + return '_IDONTKNOW'; // what is the type here + }, + + /** + * Returns a label + * + * @see SMW\DIProperty::getLabel() + * + * @since 1.9 + * + * @return {string} + */ + getLabel: function() { + return this.property; + }, + + /** + * Returns wikiPage representation + * + * @see SMW\DIProperty::getDiWikiPage() + * + * @since 1.9 + * + * @return {smw.dataItem.wikiPage} + */ + getDiWikiPage: function() { + return null; //new smw.dataItem.wikiPage( this.property ); + }, + + /** + * Returns html representation + * + * @since 1.9 + * + * @param {boolean} + * @return {string} + */ + getHtml: function( linker ) { + if( linker ){ + return html.element( 'a', { href: mw.util.wikiGetlink( 'Property:' + this.property ) }, this.property ); + } + return this.property; + } + }; + + // Alias + +} )( jQuery, mediaWiki, semanticMediaWiki );
\ No newline at end of file |