HTMLForm: Avoid usage of non-standard 'flags' parameter of String#replace
authorBrad Jorsch <bjorsch@wikimedia.org>
Wed, 16 Jul 2014 21:04:20 +0000 (17:04 -0400)
committerOri.livneh <ori@wikimedia.org>
Mon, 4 Aug 2014 15:12:45 +0000 (15:12 +0000)
Chrome (and most other browser) don't support the non-standard 'flags'
argument to String#replace (implemented by Mozilla Firefox). Instead pass
a RegExp object with those flags.

Bug: 68050
Change-Id: Ia463002e708975eed1a5c3657f2e1a4d6b4e74de

resources/Resources.php
resources/src/mediawiki/mediawiki.htmlform.js

index d3f8f7d..a66faa6 100644 (file)
@@ -862,6 +862,9 @@ return array(
        ),
        'mediawiki.htmlform' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.js',
+               'dependencies' => array(
+                       'jquery.mwExtension',
+               ),
                'messages' => array( 'htmlform-chosen-placeholder' ),
        ),
        'mediawiki.icon' => array(
index 9eea492..5027f7a 100644 (file)
                        $ul = $( this ).prev( 'ul.mw-htmlform-cloner-ul' );
 
                        html = $ul.data( 'template' ).replace(
-                               $ul.data( 'uniqueId' ), 'clone' + ( ++cloneCounter ), 'g'
+                               new RegExp( $.escapeRE( $ul.data( 'uniqueId' ) ), 'g' ),
+                               'clone' + ( ++cloneCounter )
                        );
 
                        $li = $( '<li>' )