106 lines
1.6 KiB
JavaScript
106 lines
1.6 KiB
JavaScript
/**
|
|
* SMW Uri DataItem JavaScript representation
|
|
*
|
|
* @see SMW\DIUri
|
|
*
|
|
* @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 || {};
|
|
|
|
/**
|
|
* Uri constructor
|
|
*
|
|
* @since 1.9
|
|
*
|
|
* @param {string}
|
|
*
|
|
* @return {this}
|
|
*/
|
|
var uri = function ( fullurl ) {
|
|
this.fullurl = fullurl !== '' && fullurl !== undefined ? fullurl : null;
|
|
|
|
// Get mw.Uri inheritance
|
|
if ( this.fullurl !== null ) {
|
|
this.uri = new mw.Uri( this.fullurl );
|
|
}
|
|
|
|
return this;
|
|
};
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @var object
|
|
*/
|
|
smw.dataItem.uri = function( fullurl ) {
|
|
if ( $.type( fullurl ) === 'string' ) {
|
|
this.constructor( fullurl );
|
|
} else {
|
|
throw new Error( 'smw.dataItem.uri: invoked fullurl must be a string but is of type ' + $.type( fullurl ) );
|
|
}
|
|
};
|
|
|
|
/* Public methods */
|
|
|
|
smw.dataItem.uri.prototype = {
|
|
|
|
constructor: uri,
|
|
|
|
/**
|
|
* Returns type
|
|
*
|
|
* @since 1.9
|
|
*
|
|
* @return {string}
|
|
*/
|
|
getDIType: function() {
|
|
return '_uri';
|
|
},
|
|
|
|
/**
|
|
* Returns uri
|
|
*
|
|
* @since 1.9
|
|
*
|
|
* @return {string}
|
|
*/
|
|
getUri: function() {
|
|
return this.fullurl;
|
|
},
|
|
|
|
/**
|
|
* Returns html representation
|
|
*
|
|
* @since 1.9
|
|
*
|
|
* @param {boolean}
|
|
*
|
|
* @return {string}
|
|
*/
|
|
getHtml: function( linker ) {
|
|
if ( linker && this.fullurl !== null ){
|
|
return html.element( 'a', { 'href': this.fullurl }, this.fullurl );
|
|
}
|
|
return this.fullurl;
|
|
}
|
|
};
|
|
|
|
// Alias
|
|
|
|
} )( jQuery, mediaWiki, semanticMediaWiki ); |