https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113254

Revision: 113254
Author:   netbrain
Date:     2012-03-07 17:31:49 +0000 (Wed, 07 Mar 2012)
Log Message:
-----------
added i18n
removed unused functions and tests
fixed failing tests
minor change to javascript
minor change to css

Modified Paths:
--------------
    trunk/extensions/SideBarMenu/SideBarMenu.hooks.php
    trunk/extensions/SideBarMenu/SideBarMenu.i18n.php
    trunk/extensions/SideBarMenu/SideBarMenu.php
    trunk/extensions/SideBarMenu/css/ext.sidebarmenu.css
    trunk/extensions/SideBarMenu/includes/MenuParser.php
    trunk/extensions/SideBarMenu/js/ext.sidebarmenu.js
    trunk/extensions/SideBarMenu/test/MenuItemTest.php
    trunk/extensions/SideBarMenu/test/MenuParserTest.php

Removed Paths:
-------------
    trunk/extensions/SideBarMenu/SideBarMenu.body.php

Deleted: trunk/extensions/SideBarMenu/SideBarMenu.body.php
===================================================================
Modified: trunk/extensions/SideBarMenu/SideBarMenu.hooks.php
===================================================================
--- trunk/extensions/SideBarMenu/SideBarMenu.hooks.php  2012-03-07 17:31:39 UTC 
(rev 113253)
+++ trunk/extensions/SideBarMenu/SideBarMenu.hooks.php  2012-03-07 17:31:49 UTC 
(rev 113254)
@@ -17,7 +17,7 @@
             return $parser->recursiveTagParse($menuHTML,$frame);
         }catch(Exception $x){
             wfDebug("An error occured during parsing of: '$input' caught 
exception: $x");
-            return "FATAL ERROR: Could not parse the following 
input:</br><pre>$input</pre>";
+            return wfMsg('parser.input-error',$x->getMessage());
         }
     }
 
@@ -40,8 +40,8 @@
 
     public static function javascriptConfigVars(&$vars){
         global $wgSideBarMenuConfigShowHTML,$wgSideBarMenuConfigHideHTML;
-        $vars['wgSideBarMenuConfigShowHTML'] = $wgSideBarMenuConfigShowHTML;
-        $vars['wgSideBarMenuConfigHideHTML'] = $wgSideBarMenuConfigHideHTML;
+        $vars['wgSideBarMenuConfigShowHTML'] = 
isset($wgSideBarMenuConfigShowHTML) ? $wgSideBarMenuConfigShowHTML : 
wfMsg('controls.show');
+        $vars['wgSideBarMenuConfigHideHTML'] = 
isset($wgSideBarMenuConfigHideHTML) ? $wgSideBarMenuConfigHideHTML : 
wfMsg('controls.hide');
         return true;
     }
 

Modified: trunk/extensions/SideBarMenu/SideBarMenu.i18n.php
===================================================================
--- trunk/extensions/SideBarMenu/SideBarMenu.i18n.php   2012-03-07 17:31:39 UTC 
(rev 113253)
+++ trunk/extensions/SideBarMenu/SideBarMenu.i18n.php   2012-03-07 17:31:49 UTC 
(rev 113254)
@@ -0,0 +1,8 @@
+<?php
+$messages = array();
+$messages['en'] = array(
+    'controls.show'         => '[show]',
+    'controls.hide'         => '[hide]',
+    'parser.input-error'    => 'FATAL ERROR: parser returned with error: $1',
+    'parser.syntax-error'   => 'Could not parse "$1", make sure the syntax is 
correct.'
+);
\ No newline at end of file

Modified: trunk/extensions/SideBarMenu/SideBarMenu.php
===================================================================
--- trunk/extensions/SideBarMenu/SideBarMenu.php        2012-03-07 17:31:39 UTC 
(rev 113253)
+++ trunk/extensions/SideBarMenu/SideBarMenu.php        2012-03-07 17:31:49 UTC 
(rev 113254)
@@ -35,6 +35,9 @@
 $wgAutoloadClasses['MenuParser'] = $wgMyExtensionIncludes . '/MenuParser.php';
 $wgAutoloadClasses['MenuItem'] = $wgMyExtensionIncludes . '/MenuItem.php';
 
+//i18n
+$wgExtensionMessagesFiles['SideBarMenu'] = dirname( __FILE__ ) . 
'/SideBarMenu.i18n.php';
+
 //Resources
 $wgResourceModules['ext.sidebarmenu.core'] = array(
     'scripts' => array(
@@ -44,7 +47,9 @@
         'css/ext.sidebarmenu.css'
     ),
     'dependencies' => array (
-        'jquery.ui.core'
+        'jquery.ui.core',
+        'jquery.effects.core',
+
     ),
     'group' => 'ext.sidebarmenu',
     'localBasePath' => dirname( __FILE__ ),
@@ -52,5 +57,5 @@
 );
 
 //default settings
-$wgSideBarMenuConfigShowHTML = '[show]';
-$wgSideBarMenuConfigHideHTML = '[hide]';
\ No newline at end of file
+$wgSideBarMenuConfigShowHTML = null;
+$wgSideBarMenuConfigHideHTML = null;
\ No newline at end of file

Modified: trunk/extensions/SideBarMenu/css/ext.sidebarmenu.css
===================================================================
--- trunk/extensions/SideBarMenu/css/ext.sidebarmenu.css        2012-03-07 
17:31:39 UTC (rev 113253)
+++ trunk/extensions/SideBarMenu/css/ext.sidebarmenu.css        2012-03-07 
17:31:49 UTC (rev 113254)
@@ -4,11 +4,15 @@
     padding: 5px;
     float: left;
     clear: left;
+    margin: 5px;
 }
 
 .sidebar-menu-item-collapsed  .sidebar-menu{
     display: none;
 }
+.sidebar-menu-item-expanded {
+    display: block;
+}
 
 .sidebar-menu-0,.sidebar-menu-1{
     margin: 0px !important;
@@ -42,9 +46,13 @@
 
 .sidebar-menu-item-controls{
     float: right;
-    margin-left: 5px;
     color: #0645AD;
     cursor: pointer;
+    min-width: 45px;
+    text-align: right;
+    -moz-user-select: none;
+    -khtml-user-select: none;
+    user-select: none;
 }
 
 .sidebar-menu-item-1{

Modified: trunk/extensions/SideBarMenu/includes/MenuParser.php
===================================================================
--- trunk/extensions/SideBarMenu/includes/MenuParser.php        2012-03-07 
17:31:39 UTC (rev 113253)
+++ trunk/extensions/SideBarMenu/includes/MenuParser.php        2012-03-07 
17:31:49 UTC (rev 113254)
@@ -1,11 +1,6 @@
 <?php
 class MenuParser {
 
-    public static function isRoot($line)
-    {
-        return !self::startsWith($line, '*');
-    }
-
     public static function isValidInput($data)
     {
         return !(is_null($data) || strlen($data) == 0);
@@ -77,7 +72,7 @@
                 $levelArray[$level][] = $line;
             }else{
                 //syntax error
-                throw new InvalidArgumentException();
+                throw new 
InvalidArgumentException(wfMsg('parser.syntax-error',$line));
             }
             $prevLevel = $level;
         }

Modified: trunk/extensions/SideBarMenu/js/ext.sidebarmenu.js
===================================================================
--- trunk/extensions/SideBarMenu/js/ext.sidebarmenu.js  2012-03-07 17:31:39 UTC 
(rev 113253)
+++ trunk/extensions/SideBarMenu/js/ext.sidebarmenu.js  2012-03-07 17:31:49 UTC 
(rev 113254)
@@ -1,6 +1,30 @@
 $(document).ready(function(){
-    
$('.sidebar-menu-item-controls').append(mw.config.get('wgSideBarMenuConfigShowHTML'));
+
+    var showText = mw.config.get('wgSideBarMenuConfigShowHTML');
+    var hideText = mw.config.get('wgSideBarMenuConfigHideHTML');
+
+    function initControls() {
+        
$('.sidebar-menu-item-collapsed').children('.sidebar-menu-item-text-container').children('.sidebar-menu-item-controls').append(showText);
+        
$('.sidebar-menu-item-expanded').children('.sidebar-menu-item-text-container').children('.sidebar-menu-item-controls').append(hideText);
+    }
+
+    initControls();
     $('.sidebar-menu-item-controls').click(function(){
-        
$(this).parents('.sidebar-menu-item:first').toggleClass('sidebar-menu-item-collapsed',1500);
+        var currentText = $(this).text();
+
+        if(currentText == showText){
+            $(this).text(hideText);
+        }else if(currentText == hideText){
+            $(this).text(showText);
+        }
+
+        //A little "ugly" hack to prevent some gui glitches.
+        $(this).parents('.sidebar-menu-item:first').
+            toggleClass('sidebar-menu-item-collapsed 
sidebar-menu-item-expanded',250).children('.sidebar-menu').show(0,function(){
+                var _this = $(this);
+                setTimeout(function(){
+                    _this.css('display','')
+                },250);
+            });
     });
 });
\ No newline at end of file

Modified: trunk/extensions/SideBarMenu/test/MenuItemTest.php
===================================================================
--- trunk/extensions/SideBarMenu/test/MenuItemTest.php  2012-03-07 17:31:39 UTC 
(rev 113253)
+++ trunk/extensions/SideBarMenu/test/MenuItemTest.php  2012-03-07 17:31:49 UTC 
(rev 113254)
@@ -69,7 +69,7 @@
         $menuItemChild->setText("MenuItem1");
         $this->menuItem->addChild($menuItemChild);
         $html = $this->menuItem->toHTML();
-        $this->assertEquals('<ul class="sidebar-menu sidebar-menu-0"><li 
class="sidebar-menu-item sidebar-menu-item-1 sidebar-menu-item-collapsed"><div 
class="sidebar-menu-item-text 
sidebar-menu-item-text-1">MenuItem1</div></li></ul>',$html);
+        $this->assertEquals('<ul class="sidebar-menu sidebar-menu-0"><li 
class="sidebar-menu-item sidebar-menu-item-1"><div 
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text 
sidebar-menu-item-text-1">MenuItem1</span></div></li></ul>',$html);
     }
 
     public function testToHTMLOnSeveralMenuItems(){
@@ -82,7 +82,7 @@
         $this->menuItem->addChild($menuItemChild2);
 
         $html = $this->menuItem->toHTML();
-        $this->assertEquals('<ul class="sidebar-menu sidebar-menu-0"><li 
class="sidebar-menu-item sidebar-menu-item-1 sidebar-menu-item-collapsed"><div 
class="sidebar-menu-item-text sidebar-menu-item-text-1">MenuItem1</div></li><li 
class="sidebar-menu-item sidebar-menu-item-1 sidebar-menu-item-collapsed"><div 
class="sidebar-menu-item-text 
sidebar-menu-item-text-1">MenuItem2</div></li></ul>',$html);
+        $this->assertEquals('<ul class="sidebar-menu sidebar-menu-0"><li 
class="sidebar-menu-item sidebar-menu-item-1"><div 
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text 
sidebar-menu-item-text-1">MenuItem1</span></div></li><li 
class="sidebar-menu-item sidebar-menu-item-1"><div 
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text 
sidebar-menu-item-text-1">MenuItem2</span></div></li></ul>',$html);
     }
 
     public function testToHTMLOnSeveralMenuItemsWithSublevels(){
@@ -99,6 +99,6 @@
         $subLevel1->setParent($menuItemChild2);
 
         $html = $this->menuItem->toHTML();
-        $this->assertEquals('<ul class="sidebar-menu sidebar-menu-0"><li 
class="sidebar-menu-item sidebar-menu-item-1 sidebar-menu-item-collapsed"><div 
class="sidebar-menu-item-text sidebar-menu-item-text-1">MenuItem1</div></li><li 
class="sidebar-menu-item sidebar-menu-item-1 sidebar-menu-item-collapsed"><div 
class="sidebar-menu-item-text sidebar-menu-item-text-1">MenuItem2</div><ul 
class="sidebar-menu sidebar-menu-1"><li class="sidebar-menu-item 
sidebar-menu-item-2 sidebar-menu-item-collapsed"><div 
class="sidebar-menu-item-text 
sidebar-menu-item-text-2">SubMenuItem1</div></li></ul></li></ul>',$html);
+        $this->assertEquals('<ul class="sidebar-menu sidebar-menu-0"><li 
class="sidebar-menu-item sidebar-menu-item-1"><div 
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text 
sidebar-menu-item-text-1">MenuItem1</span></div></li><li 
class="sidebar-menu-item sidebar-menu-item-1 sidebar-menu-item-collapsed"><div 
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text 
sidebar-menu-item-text-1">MenuItem2</span><span 
class="sidebar-menu-item-controls"></span></div><ul class="sidebar-menu 
sidebar-menu-1"><li class="sidebar-menu-item sidebar-menu-item-2"><div 
class="sidebar-menu-item-text-container"><span class="sidebar-menu-item-text 
sidebar-menu-item-text-2">SubMenuItem1</span></div></li></ul></li></ul>',$html);
     }
 }

Modified: trunk/extensions/SideBarMenu/test/MenuParserTest.php
===================================================================
--- trunk/extensions/SideBarMenu/test/MenuParserTest.php        2012-03-07 
17:31:39 UTC (rev 113253)
+++ trunk/extensions/SideBarMenu/test/MenuParserTest.php        2012-03-07 
17:31:49 UTC (rev 113254)
@@ -15,16 +15,6 @@
         $this->assertTrue(MenuParser::isValidInput("+MenuItem"));
     }
 
-    public function testIsRoot(){
-        $isRoot = MenuParser::isRoot("MenuItem");
-        $this->assertTrue($isRoot);
-    }
-
-    public function testIsNotRoot(){
-        $isRoot = MenuParser::isRoot("*MenuItem");
-        $this->assertFalse($isRoot);
-    }
-
     public function testGetLevelWhenNull(){
         $this->assertEquals(0,MenuParser::getLevel(null));
     }


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to