From a61f190ca7d0f7cc460fee2fce03565cea11c1db Mon Sep 17 00:00:00 2001 From: Michael Dale Date: Mon, 5 Oct 2009 23:03:20 +0000 Subject: [PATCH] * usability compatibility updates * language Test updates for multiple arguments * make advanced firefogg display to include firefogg-logo --- js2/editPage.js | 13 ++--- .../example_usage/Firefogg_Make_Advanced.html | 6 ++- .../libAddMedia/mvBaseUploadInterface.js | 9 ++-- js2/mwEmbed/libAddMedia/mvFirefogg.js | 7 ++- js2/mwEmbed/mv_embed.js | 51 ++++++++++-------- js2/mwEmbed/skins/ctrlBuilder.js | 3 ++ .../skins/mvpcf/images/firefogg_logo.png | Bin 0 -> 15600 bytes js2/mwEmbed/tests/testLang.html | 44 ++++++++------- 8 files changed, 76 insertions(+), 57 deletions(-) create mode 100644 js2/mwEmbed/skins/mvpcf/images/firefogg_logo.png diff --git a/js2/editPage.js b/js2/editPage.js index b3e3995655..77716df4f3 100644 --- a/js2/editPage.js +++ b/js2/editPage.js @@ -19,17 +19,12 @@ var defaultAddMediaConfig = { // The local wiki API URL: 'local_wiki_api_url': wgServer + wgScriptPath + '/api.php' }; -js2AddOnloadHook( function() { - mwEditPageHelper.init( - $j.extend( true, defaultAddMediaConfig, mwAddMediaConfig ) - ); -}); var mwEditPageHelper = { init: function( amwConf ) { var _this = this; // kind of tricky, it would be nice to use run on ready "loader" call here if( typeof $j.wikiEditor != 'undefined' ) { - setTimeout( function() { + setTimeout( function() { $j( '.wikiEditor-ui [rel=file]' ).unbind().addMediaWiz( amwConf ); @@ -49,3 +44,9 @@ var mwEditPageHelper = { );*/ } } + +js2AddOnloadHook( function() { + mwEditPageHelper.init( + $j.extend( true, defaultAddMediaConfig, mwAddMediaConfig ) + ); +}); diff --git a/js2/mwEmbed/example_usage/Firefogg_Make_Advanced.html b/js2/mwEmbed/example_usage/Firefogg_Make_Advanced.html index d40c9cbc9b..1451fff815 100644 --- a/js2/mwEmbed/example_usage/Firefogg_Make_Advanced.html +++ b/js2/mwEmbed/example_usage/Firefogg_Make_Advanced.html @@ -77,7 +77,11 @@ mwAddOnloadHook(function(){
-

Make Ogg Video

+

+ + Firefogg +
+Make Ogg Video



Loading firefogg...
diff --git a/js2/mwEmbed/libAddMedia/mvBaseUploadInterface.js b/js2/mwEmbed/libAddMedia/mvBaseUploadInterface.js index 1955f0f3f6..fe22e5a69b 100644 --- a/js2/mwEmbed/libAddMedia/mvBaseUploadInterface.js +++ b/js2/mwEmbed/libAddMedia/mvBaseUploadInterface.js @@ -683,7 +683,7 @@ mvBaseUploadInterface.prototype = { if( event.button==0 && _this.action_done === false){ return _this.cancel_action(); }else{ - //click on button (dont do close action); + //click on button (don't do close action); return true; } }, @@ -718,11 +718,10 @@ mvBaseUploadInterface.prototype = { //confirm: if( confirm( gM('mwe-cancel-confim') )){ //@@todo (cancel the encode / upload) - $j(this).empty().dialog('close'); - return false; - }else{ - return true; + $j(this).empty().dialog('close'); } + //dont' follow the link; + return false; } }; diff --git a/js2/mwEmbed/libAddMedia/mvFirefogg.js b/js2/mwEmbed/libAddMedia/mvFirefogg.js index 21421b02f8..db44289235 100644 --- a/js2/mwEmbed/libAddMedia/mvFirefogg.js +++ b/js2/mwEmbed/libAddMedia/mvFirefogg.js @@ -826,12 +826,11 @@ mvFirefogg.prototype = { //extends mvBaseUploadInterface }else{ this.action_done = true; this.fogg.cancel(); - $j(dlElm).empty().dialog('close'); - return false; + $j(dlElm).empty().dialog('close'); } - } else{ - return false; } + //dont' follow the link: + return false; }, /** * procPageResponse should be faded out in favor of the upload api soon.. diff --git a/js2/mwEmbed/mv_embed.js b/js2/mwEmbed/mv_embed.js index 1942b64821..5cf4a4a3c6 100644 --- a/js2/mwEmbed/mv_embed.js +++ b/js2/mwEmbed/mv_embed.js @@ -139,7 +139,7 @@ if( !mv_embed_path ) { * * it take a msg key and array of replacement values of form * $1, $2 and does relevant msgkey transformation returning - * the usser msg. + * the user msg. * * @param string key The msg key as set by loadGm * @param [mixed] args An array of replacement strings @@ -152,7 +152,7 @@ if( !mv_embed_path ) { //swap in the arg values var ms = $.lang.gMsgSwap( key, args); //a quick check to see if we need to send the msg via the 'parser' - //(we can add more detailed check once we suport more wiki syntax) + //(we can add more detailed check once we support more wiki syntax) if(ms.indexOf('{{')==-1) return ms; @@ -174,13 +174,13 @@ if( !mv_embed_path ) { if(! gMsg[ key ]) return '<' + key + '>';// Missing key placeholder //get the messege string: - ms = gMsg[ key ]; + var ms = gMsg[ key ]; //replace values if( typeof args == 'object' || typeof args == 'array' ) { for( var v in args ) { // Message test replace arguments start at 1 instead of zero: - var rep = '\$'+ ( parseInt(v) + 1 ); + var rep = new RegExp('\\$'+ ( parseInt(v) + 1 ), 'g'); ms = ms.replace( rep, args[v] ); } } else if( typeof args =='string' || typeof args =='number' ) { @@ -237,20 +237,23 @@ if( !mv_embed_path ) { /** * Maps a given rule Index to template params: * + * if index is out of range return last param * @param */ - function getTempParamFromRuleInx( ruleInx ){ - //var naturalOrder = ['zero', 'one', 'two', 'few', 'many', 'other']; - //js_log('getTempParamFromRuleInx: ruleInx: ' + ruleInx + ' tempParamLength ' + tObj.param.length ); + function getTempParamFromRuleInx(tObj, ruleInx ){ + //js_log('getTempParamFromRuleInx: ruleInx: ' + ruleInx + ' tempParamLength ' + tObj.param.length ); + if( ruleInx >= tObj.param.length ) + return tObj.param[ tObj.param.length -1 ]; + //else return the requested index: return tObj.param[ ruleInx ]; } var rCount=0 - //run the acutal rule lookup: + //run the actual rule lookup: for(var ruleInx in rs){ cRule = rs[ruleInx]; if( matchRuleTest( cRule, tObj.arg ) ){ js_log("matched rule: " + ruleInx ); - return getTempParamFromRuleInx( rCount ); + return getTempParamFromRuleInx(tObj, rCount ); } rCount ++; } @@ -539,6 +542,10 @@ if( !mv_embed_path ) { var loadGM = $mw.lang.loadGM; var gM = $mw.lang.gM; +//if some no-js2 script defined and loaded gMsg in global space: +if( _global['gMsg'] ){ + loadGM( _global['gMsg'] ); +} // All default messages in [English] should be overwritten by the CMS language message system. $mw.lang.loadGM({ @@ -718,7 +725,7 @@ var mvJsLoader = { // Base lib flags onReadyEvents: new Array(), doneReadyEvents: false, - jQueryCheckFlag: false, + jQuerySetupFlag: false, // To keep consistency across threads ptime: 0, @@ -743,7 +750,7 @@ var mvJsLoader = { } } if( all_libs_loaded ) { - js_log( 'All libraries already loaded, skipping load request' ); + //js_log( 'Libraries ( ' + loadLibs + ') already loaded... skipping load request' ); callback(); return; } @@ -892,6 +899,7 @@ var mvJsLoader = { * checks for jQuery and adds the $j noConflict var */ jQueryCheck: function( callback ) { + //js_log( 'jQueryCheck::' ); // Skip stuff if $j is already loaded: if( _global['$j'] && callback ) callback(); @@ -903,7 +911,9 @@ var mvJsLoader = { //only do the $j setup once: if(!_global['$j']){ _global['$j'] = jQuery.noConflict(); - + } + if( _this.jQuerySetupFlag == false){ + js_log('setup mv_embed jQuery bindings'); //setup our global settings using the (jQuery helper) mwConfig = $j.extend( mwDefaultConfig, mwConfig); @@ -928,6 +938,7 @@ var mvJsLoader = { js_log( 'jQuery loaded into $j' ); // Set up mvEmbed jQuery bindings and config based dependencies mv_jqueryBindings(); + _this.jQuerySetupFlag = true; } // Run the callback if( callback ) { @@ -937,7 +948,7 @@ var mvJsLoader = { }, embedVideoCheck:function( callback ) { var _this = this; - js_log( 'embedVideoCheck:' ); + js_log( 'embedVideoCheck:' ); // Make sure we have jQuery _this.jQueryCheck( function() { //set class videonojs to hidden @@ -976,14 +987,10 @@ var mvJsLoader = { // unless js2AddOnloadHook was used or there is video on the page. runQueuedFunctions: function() { var _this = this; - this.doneReadyEvents = true; - if( this.jQueryCheckFlag ) { - this.jQueryCheck( function() { - _this.runReadyEvents(); - }); - } else { - this.runReadyEvents(); - } + this.doneReadyEvents = true; + this.jQueryCheck( function() { + _this.runReadyEvents(); + }); }, runReadyEvents: function() { js_log( "runReadyEvents" ); @@ -1050,8 +1057,6 @@ function js2AddOnloadHook( func ) { func(); }); } else { - // If we are using js2AddOnloadHook we need to get jQuery into place (if it's not already included) - mvJsLoader.jQueryCheckFlag = true; mvJsLoader.addLoadEvent( func ); } } diff --git a/js2/mwEmbed/skins/ctrlBuilder.js b/js2/mwEmbed/skins/ctrlBuilder.js index f1369829b7..77cd0dac70 100644 --- a/js2/mwEmbed/skins/ctrlBuilder.js +++ b/js2/mwEmbed/skins/ctrlBuilder.js @@ -1,6 +1,9 @@ //set the dismissNativeWarn flag: _global['dismissNativeWarn'] = false; +/** +* Msg text is inhereited from embedVideo (we should move it here (although can't load ctrlBuilder without parent EmbedVideo obj) +/ /** * base ctrlBuilder object diff --git a/js2/mwEmbed/skins/mvpcf/images/firefogg_logo.png b/js2/mwEmbed/skins/mvpcf/images/firefogg_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..de50debc841868eb17a995e9f2b1ac8ef110e883 GIT binary patch literal 15600 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:'+ - 'Msg key'+ - 'Msg text'+ - 'Msg Transform JS'+ - 'Msg Transform Mw'+ + 'Msg key'+ + 'Msg text'+ + 'Msg Transform JS'+ + 'Msg Transform Mw'+ ''; //for each number value - for(var i in testNumberSet){ - var numVal = testNumberSet[i]; + for(var i in mTestSet){ + var numVal = mTestSet[i]; + var numKey = (typeof numVal== 'object')? numVal.join( '_' ) : numVal; o+=''+ '' + numVal + '' + '' + mKey + '' + '' + $mw.lang.gMsgNoTrans( mKey ) + '' + - '' + $mw.lang.gM( mKey, numVal ) + ''; + '' + $mw.lang.gM( mKey, numVal ) + ''; //show mw col: if( mKey.substr(0, 5) == 'test_' ){ o+=' (test msg) '; }else{ - o+='loading...'; + o+='loading...'; //get transform from mw (& compare and highlight) - function doPopWmMsg(mKey, numVal){ + function doPopWmMsg(mKey, numVal, numKey){ testCount++; - $j('#score_card').html('Running Tests 0% done'); + $j('#score_card').html('Running Tests 0% done'); do_api_req({ 'data': { 'action':'parse', 'text': $mw.lang.gMsgSwap( mKey, numVal) }, 'url' : '../../../api.php' - }, function( data ) { - js_log("got data::" + data.parse.text['*']); - var t = '#'+ mKey + '_'+ numVal; + }, function( data ) { + var t = '#'+ mKey + '_'+ numKey; if(data.parse && data.parse.text && data.parse.text['*']){ $j(t).html( data.parse.text['*'] ); //just get the part in the

to compare with js version @@ -78,7 +86,7 @@ js2AddOnloadHook( function(){ }); }; //pop off an anonymous function call: - doPopWmMsg(mKey, numVal); + doPopWmMsg(mKey, numVal, numKey); } o+=''; } -- 2.20.1