http://www.mediawiki.org/wiki/Special:Code/MediaWiki/64124

Revision: 64124
Author:   nimishg
Date:     2010-03-24 20:17:23 +0000 (Wed, 24 Mar 2010)

Log Message:
-----------
Fixes empty template param issue

Modified Paths:
--------------
    trunk/extensions/UsabilityInitiative/UsabilityInitiative.hooks.php
    
trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.templateEditor.js
    trunk/extensions/UsabilityInitiative/js/plugins.combined.js
    trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js

Modified: trunk/extensions/UsabilityInitiative/UsabilityInitiative.hooks.php
===================================================================
--- trunk/extensions/UsabilityInitiative/UsabilityInitiative.hooks.php  
2010-03-24 19:59:09 UTC (rev 64123)
+++ trunk/extensions/UsabilityInitiative/UsabilityInitiative.hooks.php  
2010-03-24 20:17:23 UTC (rev 64124)
@@ -78,14 +78,14 @@
                                array( 'src' => 
'js/plugins/jquery.wikiEditor.dialogs.js', 'version' => 22 ),
                                array( 'src' => 
'js/plugins/jquery.wikiEditor.toc.js', 'version' => 98 ),
                                array( 'src' => 
'js/plugins/jquery.wikiEditor.preview.js', 'version' => 11 ),
-                               array( 'src' => 
'js/plugins/jquery.wikiEditor.templateEditor.js', 'version' => 72 ),
+                               array( 'src' => 
'js/plugins/jquery.wikiEditor.templateEditor.js', 'version' => 73 ),
                                array( 'src' => 
'js/plugins/jquery.wikiEditor.publish.js', 'version' => 5 ),
                        ),
                        'combined' => array(
-                               array( 'src' => 'js/plugins.combined.js', 
'version' => 362 ),
+                               array( 'src' => 'js/plugins.combined.js', 
'version' => 363 ),
                        ),
                        'minified' => array(
-                               array( 'src' => 'js/plugins.combined.min.js', 
'version' => 362 ),
+                               array( 'src' => 'js/plugins.combined.min.js', 
'version' => 363 ),
                        ),
                ),
        );

Modified: 
trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.templateEditor.js
===================================================================
--- 
trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.templateEditor.js
 2010-03-24 19:59:09 UTC (rev 64123)
+++ 
trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.templateEditor.js
 2010-03-24 20:17:23 UTC (rev 64124)
@@ -750,16 +750,20 @@
                        currentField = sanatizedStr.substring( oldDivider+1, 
divider );
                        if ( currentField.indexOf( '=' ) == -1 ) {
                                // anonymous field, gets a number
+                               
+                               //default values, since we'll allow empty values
+                               valueBeginIndex = oldDivider + 1;
+                               valueEndIndex = oldDivider + 1;
+                               
                                valueBegin = currentField.match( /\S+/ ); 
//first nonwhitespace character
-                               if( valueBegin == null ){ //ie
-                                       continue;
+                               if( valueBegin != null ){
+                                       valueBeginIndex = valueBegin.index + 
oldDivider+1;
+                                       valueEnd = currentField.match( 
/[^\s]\s*$/ ); //last nonwhitespace character
+                                       if( valueEnd == null ){ //ie
+                                               continue;
+                                       }
+                                       valueEndIndex = valueEnd.index + 
oldDivider + 2;
                                }
-                               valueBeginIndex = valueBegin.index + 
oldDivider+1;
-                               valueEnd = currentField.match( /[^\s]\s*$/ ); 
//last nonwhitespace character
-                               if( valueEnd == null ){ //ie
-                                       continue;
-                               }
-                               valueEndIndex = valueEnd.index + oldDivider + 2;
                                ranges.push( new Range( 
ranges[ranges.length-1].end,
                                        valueBeginIndex ) ); //all the chars 
upto now
                                nameIndex = ranges.push( new Range( 
valueBeginIndex, valueBeginIndex ) ) - 1;

Modified: trunk/extensions/UsabilityInitiative/js/plugins.combined.js
===================================================================
--- trunk/extensions/UsabilityInitiative/js/plugins.combined.js 2010-03-24 
19:59:09 UTC (rev 64123)
+++ trunk/extensions/UsabilityInitiative/js/plugins.combined.js 2010-03-24 
20:17:23 UTC (rev 64124)
@@ -10059,16 +10059,20 @@
                        currentField = sanatizedStr.substring( oldDivider+1, 
divider );
                        if ( currentField.indexOf( '=' ) == -1 ) {
                                // anonymous field, gets a number
+                               
+                               //default values, since we'll allow empty values
+                               valueBeginIndex = oldDivider + 1;
+                               valueEndIndex = oldDivider + 1;
+                               
                                valueBegin = currentField.match( /\S+/ ); 
//first nonwhitespace character
-                               if( valueBegin == null ){ //ie
-                                       continue;
+                               if( valueBegin != null ){
+                                       valueBeginIndex = valueBegin.index + 
oldDivider+1;
+                                       valueEnd = currentField.match( 
/[^\s]\s*$/ ); //last nonwhitespace character
+                                       if( valueEnd == null ){ //ie
+                                               continue;
+                                       }
+                                       valueEndIndex = valueEnd.index + 
oldDivider + 2;
                                }
-                               valueBeginIndex = valueBegin.index + 
oldDivider+1;
-                               valueEnd = currentField.match( /[^\s]\s*$/ ); 
//last nonwhitespace character
-                               if( valueEnd == null ){ //ie
-                                       continue;
-                               }
-                               valueEndIndex = valueEnd.index + oldDivider + 2;
                                ranges.push( new Range( 
ranges[ranges.length-1].end,
                                        valueBeginIndex ) ); //all the chars 
upto now
                                nameIndex = ranges.push( new Range( 
valueBeginIndex, valueBeginIndex ) ) - 1;

Modified: trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js
===================================================================
--- trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js     
2010-03-24 19:59:09 UTC (rev 64123)
+++ trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js     
2010-03-24 20:17:23 UTC (rev 64124)
@@ -691,9 +691,9 @@
 var ranges=[];var params=[];var templateNameIndex=0;var 
doneParsing=false;oldDivider=0;divider=sanatizedStr.indexOf('|',oldDivider);if(divider==-1){divider=sanatizedStr.length;doneParsing=true;collapsible=false;}
 
nameMatch=sanatizedStr.substring(0,divider).match(/[^\s]/);if(nameMatch!=null){ranges.push(new
 
Range(0,nameMatch.index));nameEndMatch=sanatizedStr.substring(0,divider).match(/[^\s]\s*$/);templateNameIndex=ranges.push(new
 
Range(nameMatch.index,nameEndMatch.index+1));templateNameIndex--;ranges[templateNameIndex].old=wikitext.substring(ranges[templateNameIndex].begin,ranges[templateNameIndex].end);}else{ranges.push(new
 Range(0,0));ranges[templateNameIndex].old="";}
 params.push(ranges[templateNameIndex].old);var currentParamNumber=0;var 
valueEndIndex=ranges[templateNameIndex].end;var 
paramsByName=[];while(!doneParsing){currentParamNumber++;oldDivider=divider;divider=sanatizedStr.indexOf('|',oldDivider+1);if(divider==-1){divider=sanatizedStr.length;doneParsing=true;}
-currentField=sanatizedStr.substring(oldDivider+1,divider);if(currentField.indexOf('=')==-1){valueBegin=currentField.match(/\S+/);if(valueBegin==null){continue;}
-valueBeginIndex=valueBegin.index+oldDivider+1;valueEnd=currentField.match(/[^\s]\s*$/);if(valueEnd==null){continue;}
-valueEndIndex=valueEnd.index+oldDivider+2;ranges.push(new 
Range(ranges[ranges.length-1].end,valueBeginIndex));nameIndex=ranges.push(new 
Range(valueBeginIndex,valueBeginIndex))-1;equalsIndex=ranges.push(new 
Range(valueBeginIndex,valueBeginIndex))-1;valueIndex=ranges.push(new 
Range(valueBeginIndex,valueEndIndex))-1;params.push(new 
Param(currentParamNumber,wikitext.substring(ranges[valueIndex].begin,ranges[valueIndex].end),currentParamNumber,nameIndex,equalsIndex,valueIndex));paramsByName[currentParamNumber]=currentParamNumber;}else{currentName=currentField.substring(0,currentField.indexOf('='));nameBegin=currentName.match(/\S+/);if(nameBegin==null){currentParamNumber--;continue;}
+currentField=sanatizedStr.substring(oldDivider+1,divider);if(currentField.indexOf('=')==-1){valueBeginIndex=oldDivider+1;valueEndIndex=oldDivider+1;valueBegin=currentField.match(/\S+/);if(valueBegin!=null){valueBeginIndex=valueBegin.index+oldDivider+1;valueEnd=currentField.match(/[^\s]\s*$/);if(valueEnd==null){continue;}
+valueEndIndex=valueEnd.index+oldDivider+2;}
+ranges.push(new 
Range(ranges[ranges.length-1].end,valueBeginIndex));nameIndex=ranges.push(new 
Range(valueBeginIndex,valueBeginIndex))-1;equalsIndex=ranges.push(new 
Range(valueBeginIndex,valueBeginIndex))-1;valueIndex=ranges.push(new 
Range(valueBeginIndex,valueEndIndex))-1;params.push(new 
Param(currentParamNumber,wikitext.substring(ranges[valueIndex].begin,ranges[valueIndex].end),currentParamNumber,nameIndex,equalsIndex,valueIndex));paramsByName[currentParamNumber]=currentParamNumber;}else{currentName=currentField.substring(0,currentField.indexOf('='));nameBegin=currentName.match(/\S+/);if(nameBegin==null){currentParamNumber--;continue;}
 
nameBeginIndex=nameBegin.index+oldDivider+1;nameEnd=currentName.match(/[^\s]\s*$/);if(nameEnd==null){continue;}
 nameEndIndex=nameEnd.index+oldDivider+2;ranges.push(new 
Range(ranges[ranges.length-1].end,nameBeginIndex));nameIndex=ranges.push(new 
Range(nameBeginIndex,nameEndIndex))-1;currentValue=currentField.substring(currentField.indexOf('=')+1);oldDivider+=currentField.indexOf('=')+1;valueBeginIndex=oldDivider+1;valueEndIndex=oldDivider+1;valueBegin=currentValue.match(/\S+/);if(valueBegin!=null){valueBeginIndex=valueBegin.index+oldDivider+1;valueEnd=currentValue.match(/[^\s]\s*$/);if(valueEnd==null){continue;}
 valueEndIndex=valueEnd.index+oldDivider+2;}



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to