Move folder switch code to static JS file
authorMichael M Slusarz <slusarz@curecanti.org>
Mon, 9 Feb 2009 23:58:00 +0000 (16:58 -0700)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 10 Feb 2009 02:07:31 +0000 (19:07 -0700)
imp/js/imp.js [new file with mode: 0644]
imp/js/src/imp.js [new file with mode: 0644]
imp/lib/IMP.php
imp/templates/menu.html

diff --git a/imp/js/imp.js b/imp/js/imp.js
new file mode 100644 (file)
index 0000000..2568d7f
--- /dev/null
@@ -0,0 +1 @@
+if(!IMP){var IMP={}}IMP.menuFolderSubmit=function(a){var b=$("menuform");if((!this.menufolder_load||a)&&$F(b.down('SELECT[name="mailbox"]'))){this.menufolder_load=true;b.submit()}};document.observe("dom:loaded",function(){$("menuform").observe("change",IMP.menuFolderSubmit.bind(IMP));$("openfoldericon").down().observe("click",IMP.menuFolderSubmit.bind(IMP,true))});
\ No newline at end of file
diff --git a/imp/js/src/imp.js b/imp/js/src/imp.js
new file mode 100644 (file)
index 0000000..7f2b6d3
--- /dev/null
@@ -0,0 +1,26 @@
+/**
+ * Provides basic IMP javascript.
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+if (!IMP) {
+    var IMP = {};
+}
+
+IMP.menuFolderSubmit = function(clear)
+{
+    var mf = $('menuform');
+
+    if ((!this.menufolder_load || clear) &&
+        $F(mf.down('SELECT[name="mailbox"]'))) {
+        this.menufolder_load = true;
+        mf.submit();
+    }
+};
+
+document.observe('dom:loaded', function() {
+    $('menuform').observe('change', IMP.menuFolderSubmit.bind(IMP));
+    $('openfoldericon').down().observe('click', IMP.menuFolderSubmit.bind(IMP, true));
+});
index fe3dc97..4f4fc10 100644 (file)
@@ -694,9 +694,10 @@ class IMP
             $t->set('accesskey', $GLOBALS['prefs']->getValue('widget_accesskey') ? Horde::getAccessKey(_("Open Fo_lder")) : '', true);
             $t->set('flist', self::flistSelect(array('selected' => $GLOBALS['imp_mbox']['mailbox'], 'inc_vfolder' => true)));
 
+            Horde::addScriptFile('imp.js', 'imp', true);
+
             $menu_view = $GLOBALS['prefs']->getValue('menu_view');
-            $link = Horde::link('#', '', '', '', 'folderSubmit(true); return false;');
-            $t->set('flink', sprintf('<ul><li class="rightFloat">%s%s<br />%s</a></li></ul>', $link, ($menu_view != 'text') ? Horde::img('folders/folder_open.png', _("Open Folder"), ($menu_view == 'icon') ? array('title' => _("Open Folder")) : array()) : '', ($menu_view != 'icon') ? Horde::highlightAccessKey(_("Open Fo_lder"), $t->get('accesskey')) : ''));
+            $t->set('flink', sprintf('<ul><li class="rightFloat" id="openfoldericon">%s%s<br />%s</a></li></ul>', Horde::link('#'), ($menu_view != 'text') ? Horde::img('folders/folder_open.png', _("Open Folder"), ($menu_view == 'icon') ? array('title' => _("Open Folder")) : array()) : '', ($menu_view != 'icon') ? Horde::highlightAccessKey(_("Open Fo_lder"), $t->get('accesskey')) : ''));
         }
         $t->set('menu_string', self::getMenu('string'));
 
index 998c89b..62aa20c 100644 (file)
@@ -1,11 +1,11 @@
-<form action="mailbox.php" method="get" name="menuform">
+<form action="mailbox.php" method="get" name="menuform" id="menuform">
 <tag:forminput />
 <div id="menu">
 <if:use_folders>
  <div class="rightFloat">
   <input type="hidden" name="no_newmail_popup" value="1" />
   <label for="mailbox"<if:accesskey> accesskey="<tag:accesskey />"</if:accesskey>>
-  <select id="mailbox" name="mailbox" onchange="folderSubmit()"><tag:flist /></select>
+  <select name="mailbox"><tag:flist /></select>
   </label>
  </div>
  <div class="rightFloat">
 </div>
 <if:webkit><div class="clear"></div></if:webkit>
 </form>
-
-<if:use_folders>
-<script type="text/javascript">
-var loading;
-function folderSubmit(clear)
-{
-    if (document.menuform.mailbox[document.menuform.mailbox.selectedIndex].value != '') {
-        if ((loading == null) || (clear != null)) {
-            loading = true;
-            document.menuform.submit();
-        }
-    }
-}
-</script>
-</if:use_folders>