X-Git-Url: https://git.cyclocoop.org/%28%28?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.special%2Fmediawiki.special.apisandbox.js;h=5c3715db02112883c65d67da366bb98d4e2d3945;hb=5ce43a98613303fac6bad6e6c7663c478f726cd2;hp=3cfc52c51b240bcb4fb290387c53174f7c3e6363;hpb=cd69b253b13c66eb5f61c27200f22ee7eac4cde0;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/src/mediawiki.special/mediawiki.special.apisandbox.js b/resources/src/mediawiki.special/mediawiki.special.apisandbox.js index 3cfc52c51b..5c3715db02 100644 --- a/resources/src/mediawiki.special/mediawiki.special.apisandbox.js +++ b/resources/src/mediawiki.special/mediawiki.special.apisandbox.js @@ -116,10 +116,24 @@ capsuleWidget: { getApiValue: function () { - return this.getItemsData().join( '|' ); + var items = this.getItemsData(); + if ( items.join( '' ).indexOf( '|' ) === -1 ) { + return items.join( '|' ); + } else { + return '\x1f' + items.join( '\x1f' ); + } }, setApiValue: function ( v ) { - this.setItemsFromData( v === undefined || v === '' ? [] : String( v ).split( '|' ) ); + if ( v === undefined || v === '' || v === '\x1f' ) { + this.setItemsFromData( [] ); + } else { + v = String( v ); + if ( v.indexOf( '\x1f' ) !== 0 ) { + this.setItemsFromData( v.split( '|' ) ); + } else { + this.setItemsFromData( v.substr( 1 ).split( '\x1f' ) ); + } + } }, apiCheckValid: function () { var ok = this.getApiValue() !== undefined || suppressErrors; @@ -304,7 +318,7 @@ } } ); } else if ( Util.apiBool( pi.multi ) ) { - widget = new OO.ui.CapsuleMultiSelectWidget( { + widget = new OO.ui.CapsuleMultiselectWidget( { allowArbitrary: true } ); widget.paramInfo = pi; @@ -413,7 +427,7 @@ return a.data - b.data; } ); if ( Util.apiBool( pi.multi ) ) { - widget = new OO.ui.CapsuleMultiSelectWidget( { + widget = new OO.ui.CapsuleMultiselectWidget( { menu: { items: items } } ); widget.paramInfo = pi; @@ -436,7 +450,7 @@ return new OO.ui.MenuOptionWidget( { data: String( v ), label: String( v ) } ); } ); if ( Util.apiBool( pi.multi ) ) { - widget = new OO.ui.CapsuleMultiSelectWidget( { + widget = new OO.ui.CapsuleMultiselectWidget( { menu: { items: items } } ); widget.paramInfo = pi; @@ -480,7 +494,7 @@ throw new Error( 'Unknown multiMode "' + multiMode + '"' ); } - widget = new OO.ui.CapsuleMultiSelectWidget( { + widget = new OO.ui.CapsuleMultiselectWidget( { allowArbitrary: true, popup: { classes: [ 'mw-apisandbox-popup' ], @@ -557,7 +571,7 @@ * * @class mw.special.ApiSandbox */ - mw.special.ApiSandbox = ApiSandbox = { + ApiSandbox = { /** * Initialize the UI * @@ -1314,10 +1328,10 @@ } if ( Util.apiBool( pi.parameters[ i ].multi ) ) { tmp = []; - if ( flag && !( widget instanceof OO.ui.CapsuleMultiSelectWidget ) && + if ( flag && !( widget instanceof OO.ui.CapsuleMultiselectWidget ) && !( widget instanceof OptionalWidget && - widget.widget instanceof OO.ui.CapsuleMultiSelectWidget + widget.widget instanceof OO.ui.CapsuleMultiselectWidget ) ) { tmp.push( mw.message( 'api-help-param-multi-separate' ).parse() ); @@ -1674,4 +1688,6 @@ $( ApiSandbox.init ); + module.exports = ApiSandbox; + }( jQuery, mediaWiki, OO ) );