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