From 4e040e304f330c454a062a6cc30e0852daf381aa Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sat, 04 Jan 2014 05:18:52 -0500
Subject: [PATCH] Add Filters tab using plugin API hook

---
 plugins/managesieve/Changelog       |    1 +
 plugins/managesieve/managesieve.js  |   10 ----------
 plugins/managesieve/managesieve.php |   11 +++++++++++
 3 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/plugins/managesieve/Changelog b/plugins/managesieve/Changelog
index a5a231b..825bef6 100644
--- a/plugins/managesieve/Changelog
+++ b/plugins/managesieve/Changelog
@@ -1,4 +1,5 @@
 - Nicely handle server-side modification of script names (#1489412)
+- Add Filters tab/section using plugin API hook
 
 * version 7.1 [2013-11-22]
 -----------------------------------------------------------
diff --git a/plugins/managesieve/managesieve.js b/plugins/managesieve/managesieve.js
index 4e810b1..1563702 100644
--- a/plugins/managesieve/managesieve.js
+++ b/plugins/managesieve/managesieve.js
@@ -10,16 +10,6 @@
       else
         rcmail.enable_command('managesieve-create', true);
     }
-    else {
-      var tab = $('<span>').attr('id', 'settingstabpluginmanagesieve').addClass('tablink filter'),
-        button = $('<a>').attr('href', rcmail.env.comm_path+'&_action=plugin.managesieve')
-          .attr('title', rcmail.gettext('managesieve.managefilters'))
-          .html(rcmail.gettext('managesieve.filters'))
-          .appendTo(tab);
-
-      // add tab
-      rcmail.add_element(tab, 'tabs');
-    }
 
     if (rcmail.env.task == 'mail' || rcmail.env.action.startsWith('plugin.managesieve')) {
       // Create layer for form tips
diff --git a/plugins/managesieve/managesieve.php b/plugins/managesieve/managesieve.php
index 46c4e2e..7a7faee 100644
--- a/plugins/managesieve/managesieve.php
+++ b/plugins/managesieve/managesieve.php
@@ -45,6 +45,7 @@
         $this->register_action('plugin.managesieve-save', array($this, 'managesieve_save'));
 
         if ($this->rc->task == 'settings') {
+            $this->add_hook('settings_actions', array($this, 'settings_actions'));
             $this->init_ui();
         }
         else if ($this->rc->task == 'mail') {
@@ -75,6 +76,16 @@
     }
 
     /**
+     * Adds Filters section in Settings
+     */
+    function settings_actions($args)
+    {
+        // register as settings action
+        $args['actions'][] = array('action' => 'plugin.managesieve', 'class' => 'filter', 'label' => 'filters', 'domain' => 'managesieve');
+        return $args;
+    }
+
+    /**
      * Add UI elements to the 'mailbox view' and 'show message' UI.
      */
     function mail_task_handler()

--
Gitblit v1.9.1