summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.uri.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.uri.js')
-rw-r--r--www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.uri.js106
1 files changed, 106 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.uri.js b/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.uri.js
new file mode 100644
index 00000000..c6448902
--- /dev/null
+++ b/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.uri.js
@@ -0,0 +1,106 @@
+/**
+ * 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 ); \ No newline at end of file