mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiEditor
synced 2024-12-25 06:13:41 +00:00
918aa229b5
Bug: T307415 Change-Id: I6a13002daa97dd7a7f19edcbb73105da08423223
57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
/**
|
|
* A custom TitleOptionWidget that knows about external links.
|
|
*
|
|
* @class
|
|
* @extends mw.widgets.TitleOptionWidget
|
|
*
|
|
* @constructor
|
|
* @param {Object} config Configuration options.
|
|
* @param {boolean} [config.external=false] Page title is an external link.
|
|
* @param {boolean} [config.disambiguation=false]
|
|
* @param {boolean} [config.missing=false]
|
|
*/
|
|
function InsertLinkTitleOptionWidget( config ) {
|
|
this.external = config.external || false;
|
|
if ( this.external ) {
|
|
config.icon = 'linkExternal';
|
|
config.description = mw.msg( 'wikieditor-toolbar-tool-link-int-target-status-external' );
|
|
// Lowercase the first character; it was uppercased by the API.
|
|
config.url = config.data.slice( 0, 1 ).toLowerCase() + config.data.slice( 1 );
|
|
config.data = config.url;
|
|
// Prepend http:// if there is no protocol (i.e. if it starts with "www.").
|
|
// @TODO This is repeated when the link is inserted (in jquery.wikiEditor.dialogs.config.js).
|
|
if ( !/^[a-z]+:\/\/./.test( config.url ) ) {
|
|
config.url = 'http://' + config.url;
|
|
}
|
|
config.missing = false;
|
|
}
|
|
this.disambiguation = config.disambiguation || false;
|
|
this.missing = config.missing || false;
|
|
InsertLinkTitleOptionWidget.super.call( this, config );
|
|
}
|
|
|
|
OO.inheritClass( InsertLinkTitleOptionWidget, mw.widgets.TitleOptionWidget );
|
|
|
|
/**
|
|
* @return {boolean}
|
|
*/
|
|
InsertLinkTitleOptionWidget.prototype.isExternal = function () {
|
|
return this.external;
|
|
};
|
|
|
|
/**
|
|
* @return {boolean}
|
|
*/
|
|
InsertLinkTitleOptionWidget.prototype.isMissing = function () {
|
|
return this.missing;
|
|
};
|
|
|
|
/**
|
|
* @return {boolean}
|
|
*/
|
|
InsertLinkTitleOptionWidget.prototype.isDisambiguation = function () {
|
|
return this.disambiguation;
|
|
};
|
|
|
|
module.exports = InsertLinkTitleOptionWidget;
|