fixed module menu toggling
authorIngo Renner <ingo.renner@typo3.org>
Thu, 24 Jan 2008 16:21:26 +0000 (16:21 +0000)
committerIngo Renner <ingo.renner@typo3.org>
Thu, 24 Jan 2008 16:21:26 +0000 (16:21 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@2958 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/backend.php
typo3/js/backend.js
typo3/js/modulemenu.js [new file with mode: 0644]

index 8743f50..54a5cff 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 2008-01-24  Ingo Renner  <ingo@typo3.org>
 
        * added missing description to module menu, credits Steffen Kamper
+       * fixed module menu toggling
 
 2008-01-24  Stanislas Rolland  <stanislas.rolland@fructifor.ca>
 
index 05bb51c..8b63ea1 100644 (file)
@@ -110,6 +110,7 @@ class TYPO3backend {
                        'js/common.js',
                        'js/sizemanager.js',
                        'js/toolbarmanager.js',
+                       'js/modulemenu.js',
                        '../t3lib/jsfunc.evalfield.js'
                );
 
index e0e0dda..d649a67 100644 (file)
@@ -1,7 +1,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 2007 Ingo Renner <ingo@typo3.org>
+*  (c) 2007 - 2008 Ingo Renner <ingo@typo3.org>
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
@@ -68,31 +68,3 @@ var ShortcutManager = {
 
 
 
-/**
- * observes clicks on menuHeader and toggles child ul
- */
-var ModuleMenuToggle = {
-
-       toggleMenu: function() {
-               $$('#typo3-menu li.menuSection div').each(function(element) {
-                       element.observe('click', function(){
-                               var li    = element.up();
-                               var ul    = li.down(2);
-                               var state = ul.visible();
-
-                                       // save state
-                               new Ajax.Request('ajax.php', {
-                                       method: 'post',
-                                       parameters: 'ajaxID=ModuleMenu::saveMenuState&menuid=' + li.id + '&state=' + state,
-                               });
-
-                               ul.toggle();
-                       });
-               });
-       }
-}
-
-Event.observe(document, 'dom:loaded', ModuleMenuToggle.toggleMenu.bindAsEventListener(ModuleMenuToggle), true);
-
-
-
diff --git a/typo3/js/modulemenu.js b/typo3/js/modulemenu.js
new file mode 100644 (file)
index 0000000..8de99d8
--- /dev/null
@@ -0,0 +1,60 @@
+/***************************************************************
+*  Copyright notice
+*
+*  (c) 2007 - 2008 Ingo Renner <ingo@typo3.org>
+*  All rights reserved
+*
+*  This script is part of the TYPO3 project. The TYPO3 project is
+*  free software; you can redistribute it and/or modify
+*  it under the terms of the GNU General Public License as published by
+*  the Free Software Foundation; either version 2 of the License, or
+*  (at your option) any later version.
+*
+*  The GNU General Public License can be found at
+*  http://www.gnu.org/copyleft/gpl.html.
+*  A copy is found in the textfile GPL.txt and important notices to the license
+*  from the author is found in LICENSE.txt distributed with these scripts.
+*
+*
+*  This script is distributed in the hope that it will be useful,
+*  but WITHOUT ANY WARRANTY; without even the implied warranty of
+*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+*  GNU General Public License for more details.
+*
+*  This copyright notice MUST APPEAR in all copies of the script!
+***************************************************************/
+
+
+/**
+ * observes clicks on menuHeader and toggles child ul
+ *
+ * @author     Steffen Kamper
+ * @author     Ingo Renner
+ */
+var ModuleMenu = {
+
+       toggleMenu: function(event) {
+               var mainModuleHeader = Event.element(event);
+
+               var mainMenuId       = mainModuleHeader.up().identify();
+               var subModulesMenu   = mainModuleHeader.next('ul');
+               var state            = subModulesMenu.visible();
+
+                       // save state
+               new Ajax.Request('ajax.php', {
+                       parameters : 'ajaxID=ModuleMenu::saveMenuState&menuid=' + mainMenuId + '&state=' + state,
+               });
+
+               subModulesMenu.toggle();
+       }
+}
+
+       // initialize event listening
+Event.observe(document, 'dom:loaded', function() {
+       $$('#typo3-menu li.menuSection div').each(function(mainModuleHeader) {
+               mainModuleHeader.observe('click', ModuleMenu.toggleMenu)
+       });
+});
+
+
+