Update acl javascript
authorMichael M Slusarz <slusarz@curecanti.org>
Mon, 9 Feb 2009 21:44:17 +0000 (14:44 -0700)
committerMichael M Slusarz <slusarz@curecanti.org>
Mon, 9 Feb 2009 21:44:17 +0000 (14:44 -0700)
imp/acl.php
imp/js/acl.js
imp/js/src/acl.js
imp/templates/acl/acl.html

index c71854d..f063498 100644 (file)
@@ -137,7 +137,7 @@ $t->setOption('gettext', true);
 $t->set('aclurl', Horde::applicationUrl('acl.php'));
 $t->set('forminput', Util::formInput());
 $t->set('aclnavcell', Util::bufferOutput(array('Prefs_UI', 'generateNavigationCell'), 'acl'));
-$t->set('changefolder', Horde::link('#', _("Change Folder"), 'smallheader', '', 'ACLFolderChange(true); return false;'));
+$t->set('changefolder', Horde::link('#', _("Change Folder"), 'smallheader', '', '', '', '', array('id' => 'changefolder')));
 $t->set('sharedimg', Horde::img('shared.png', _("Change Folder")));
 $t->set('options', IMP::flistSelect(array('selected' => $folder)));
 $t->set('current', sprintf(_("Current access to %s"), IMP::displayFolder($folder)));
index 67c44bf..af0f1a7 100644 (file)
@@ -1 +1 @@
-var acl_loading;function ACLFolderChange(a){if($F("aclfolder")){if(acl_loading==null||a!=null){acl_loading=true;$("acl").disable();$("folders").submit()}}};
\ No newline at end of file
+var ImpAcl={acl_loading:false,folderChange:function(b,a){if($F("aclfolder")){if(!this.acl_loading||a!=null){this.acl_loading=true;$("acl").disable();$("folders").submit();b.stop()}}},changeHandler:function(a){switch(a.element().readAttribute("id")){case"aclfolder":this.folderChange(a);break}},clickHandler:function(a){switch(a.element().readAttribute("id")){case"changefolder":case"resetbut":this.folderChange(a,true);break}}};document.observe("change",ImpAcl.changeHandler.bindAsEventListener(ImpAcl));document.observe("click",ImpAcl.clickHandler.bindAsEventListener(ImpAcl));
\ No newline at end of file
index e33bc20..62bcfd1 100644 (file)
@@ -1,19 +1,46 @@
 /**
- * Provides the javascript for the acl.php script
+ * Provides the javascript for the acl.php script (standard view).
  *
  * See the enclosed file COPYING for license information (GPL). If you
  * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
  */
 
-var acl_loading;
+var ImpAcl = {
 
-function ACLFolderChange(clear)
-{
-    if ($F('aclfolder')) {
-        if (acl_loading == null || clear != null) {
-            acl_loading = true;
-            $('acl').disable();
-            $('folders').submit();
+    acl_loading: false,
+
+    folderChange: function(e, clear)
+    {
+        if ($F('aclfolder')) {
+            if (!this.acl_loading || clear != null) {
+                this.acl_loading = true;
+                $('acl').disable();
+                $('folders').submit();
+                e.stop();
+            }
+        }
+    },
+
+    changeHandler: function(e)
+    {
+        switch (e.element().readAttribute('id')) {
+        case 'aclfolder':
+            this.folderChange(e);
+            break;
+        }
+    },
+
+    clickHandler: function(e)
+    {
+        switch (e.element().readAttribute('id')) {
+        case 'changefolder':
+        case 'resetbut':
+            this.folderChange(e, true);
+            break;
         }
     }
-}
+
+};
+
+document.observe('change', ImpAcl.changeHandler.bindAsEventListener(ImpAcl));
+document.observe('click', ImpAcl.clickHandler.bindAsEventListener(ImpAcl));
index 79580aa..fcbae33 100644 (file)
@@ -11,7 +11,7 @@
  <ul>
   <li>
    <label for="aclfolder" class="hidden"><gettext>Change Folder</gettext></label>
-   <tag:changefolder /><tag:sharedimg /></a> <select id="aclfolder" name="folder" onchange="ACLFolderChange()"><tag:options /></select>
+   <tag:changefolder /><tag:sharedimg /></a> <select id="aclfolder" name="folder"><tag:options /></select>
   </li>
  </ul>
  <span class="smallheader"><tag:current /></span>
@@ -77,7 +77,7 @@
 <tr>
  <td colspan = "<tag:maxrule />" class="header" valign="middle">
   <input type="button" class="button" id="fbutton" name="fbutton" onclick="$('acl').submit(); $('acl').disable();" value="<gettext>Save</gettext>" />
-  <input type="button" class="button" id="resetbut" name="resetbut" onclick="ACLFolderChange(true); return false;" value="<gettext>Reset</gettext>" />
+  <input type="button" class="button" id="resetbut" name="resetbut" value="<gettext>Reset</gettext>" />
   <input type="button" class="button" id="back" name="back" onclick="$('acl').disable(); document.location.href='<tag:prefsurl />'" value="<gettext>Return to Options</gettext>" />
  </td>
  <td class="header">&nbsp;</td>