diff options
Diffstat (limited to 'plugins/quickrules')
23 files changed, 544 insertions, 0 deletions
diff --git a/plugins/quickrules/localization/cs_CZ.inc b/plugins/quickrules/localization/cs_CZ.inc new file mode 100644 index 000000000..d2fa4f533 --- /dev/null +++ b/plugins/quickrules/localization/cs_CZ.inc @@ -0,0 +1,9 @@ +<?php +/* Author: Libor Klepac */ + +$labels = array(); +$labels['createfilter'] = 'Vytvořit filtr...'; + +$messages = array(); + +?>
\ No newline at end of file diff --git a/plugins/quickrules/localization/de_CH.inc b/plugins/quickrules/localization/de_CH.inc new file mode 100644 index 000000000..f1fe8e579 --- /dev/null +++ b/plugins/quickrules/localization/de_CH.inc @@ -0,0 +1,10 @@ +<?php +/* Author: Mike Constabel */ + +$labels = array(); +$labels['createfilter'] = 'Erstelle Filter...'; +$labels['createfilterbased'] = 'Erstelle einen auf dieser Nachricht basierenden Filter'; + +$messages = array(); + +?>
\ No newline at end of file diff --git a/plugins/quickrules/localization/de_DE.inc b/plugins/quickrules/localization/de_DE.inc new file mode 100644 index 000000000..f1fe8e579 --- /dev/null +++ b/plugins/quickrules/localization/de_DE.inc @@ -0,0 +1,10 @@ +<?php +/* Author: Mike Constabel */ + +$labels = array(); +$labels['createfilter'] = 'Erstelle Filter...'; +$labels['createfilterbased'] = 'Erstelle einen auf dieser Nachricht basierenden Filter'; + +$messages = array(); + +?>
\ No newline at end of file diff --git a/plugins/quickrules/localization/en_GB.inc b/plugins/quickrules/localization/en_GB.inc new file mode 100644 index 000000000..74b4dcdc5 --- /dev/null +++ b/plugins/quickrules/localization/en_GB.inc @@ -0,0 +1,10 @@ +<?php +/* Author: Philip Weir */ + +$labels = array(); +$labels['createfilter'] = 'Create filter'; +$labels['createfilterbased'] = 'Create a filter based on this message'; + +$messages = array(); + +?>
\ No newline at end of file diff --git a/plugins/quickrules/localization/en_US.inc b/plugins/quickrules/localization/en_US.inc new file mode 100644 index 000000000..74b4dcdc5 --- /dev/null +++ b/plugins/quickrules/localization/en_US.inc @@ -0,0 +1,10 @@ +<?php +/* Author: Philip Weir */ + +$labels = array(); +$labels['createfilter'] = 'Create filter'; +$labels['createfilterbased'] = 'Create a filter based on this message'; + +$messages = array(); + +?>
\ No newline at end of file diff --git a/plugins/quickrules/localization/hu_HU.inc b/plugins/quickrules/localization/hu_HU.inc new file mode 100644 index 000000000..8d3eeefb8 --- /dev/null +++ b/plugins/quickrules/localization/hu_HU.inc @@ -0,0 +1,9 @@ +<?php +/* Author: Norbert Wellinger */ + +$labels = array(); +$labels['createfilter'] = 'Szűrő létrehozása..'; + +$messages = array(); + +?>
\ No newline at end of file diff --git a/plugins/quickrules/localization/it_IT.inc b/plugins/quickrules/localization/it_IT.inc new file mode 100644 index 000000000..5201faedc --- /dev/null +++ b/plugins/quickrules/localization/it_IT.inc @@ -0,0 +1,10 @@ +<?php +/* Author: Alessio Cecchi */ + +$labels = array(); +$labels['createfilter'] = 'Crea filtro...'; +$labels['createfilterbased'] = 'Crea un filtro basato su questo messaggio'; + +$messages = array(); + +?>
\ No newline at end of file diff --git a/plugins/quickrules/localization/pl_PL.inc b/plugins/quickrules/localization/pl_PL.inc new file mode 100644 index 000000000..5d14121b2 --- /dev/null +++ b/plugins/quickrules/localization/pl_PL.inc @@ -0,0 +1,9 @@ +<?php +/* Author: DZIOBAK */ + +$labels = array(); +$labels['createfilter'] = 'Utwórz filtr...'; + +$messages = array(); + +?>
\ No newline at end of file diff --git a/plugins/quickrules/localization/pt_BR.inc b/plugins/quickrules/localization/pt_BR.inc new file mode 100644 index 000000000..d0b4aa838 --- /dev/null +++ b/plugins/quickrules/localization/pt_BR.inc @@ -0,0 +1,9 @@ +<?php +/* Author: Pedro Padron */ + +$labels = array(); +$labels['createfilter'] = 'Criar filtro...'; + +$messages = array(); + +?>
\ No newline at end of file diff --git a/plugins/quickrules/localization/pt_PT.inc b/plugins/quickrules/localization/pt_PT.inc new file mode 100644 index 000000000..d0b4aa838 --- /dev/null +++ b/plugins/quickrules/localization/pt_PT.inc @@ -0,0 +1,9 @@ +<?php +/* Author: Pedro Padron */ + +$labels = array(); +$labels['createfilter'] = 'Criar filtro...'; + +$messages = array(); + +?>
\ No newline at end of file diff --git a/plugins/quickrules/package.xml b/plugins/quickrules/package.xml new file mode 100644 index 000000000..3fa80454a --- /dev/null +++ b/plugins/quickrules/package.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 + http://pear.php.net/dtd/tasks-1.0.xsd + http://pear.php.net/dtd/package-2.0 + http://pear.php.net/dtd/package-2.0.xsd"> + <name>quickrules</name> + <uri>http://github.com/JohnDoh/Roundcube-Plugin-QuickRules/</uri> + <summary>Adds a button to the message list to allow the quick creation of rules in the SieveRules plugin</summary> + <description>Adds a button to the message list to allow the quick creation of rules in the SieveRules plugin. Infomration from selected emails is used to prefile the new rule form.</description> + <lead> + <name>Philip Weir</name> + <user>JohnDoh</user> + <email>roundcube@tehinterweb.co.uk</email> + <active>yes</active> + </lead> + <date>2013-02-24</date> + <time>10:16:53</time> + <version> + <release>1.4</release> + <api>1.4</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license> + <notes>-</notes> + <contents> + <dir baseinstalldir="/" name="/"> + <file name="quickrules.php" role="php"> + <tasks:replace from="@name@" to="name" type="package-info"/> + <tasks:replace from="@package_version@" to="version" type="package-info"/> + </file> + <file name="quickrules.js" role="data"> + <tasks:replace from="@name@" to="name" type="package-info"/> + <tasks:replace from="@package_version@" to="version" type="package-info"/> + </file> + <file name="CHANGELOG" role="data"/> + <file name="README.md" role="data"/> + <file name="localization/cs_CZ.inc" role="data"/> + <file name="localization/de_CH.inc" role="data"/> + <file name="localization/de_DE.inc" role="data"/> + <file name="localization/en_GB.inc" role="data"/> + <file name="localization/en_US.inc" role="data"/> + <file name="localization/hu_HU.inc" role="data"/> + <file name="localization/it_IT.inc" role="data"/> + <file name="localization/pl_PL.inc" role="data"/> + <file name="localization/pt_BR.inc" role="data"/> + <file name="localization/pt_PT.inc" role="data"/> + <file name="skins/classic/ie6hacks.css" role="data"/> + <file name="skins/classic/mail_toolbar.gif" role="data"/> + <file name="skins/classic/mail_toolbar.png" role="data"/> + <file name="skins/classic/messageactions.gif" role="data"/> + <file name="skins/classic/messageactions.png" role="data"/> + <file name="skins/classic/quickrules.css" role="data"/> + <file name="skins/larry/ie6hacks.css" role="data"/> + <file name="skins/larry/mail_toolbar.png" role="data"/> + <file name="skins/larry/messageactions.png" role="data"/> + <file name="skins/larry/quickrules.css" role="data"/> + </dir> + <!-- / --> + </contents> + <dependencies> + <required> + <php> + <min>5.2.1</min> + </php> + <pearinstaller> + <min>1.7.0</min> + </pearinstaller> + <package> + <name>sieverules</name> + <uri>http://github.com/JohnDoh/Roundcube-Plugin-SieveRules-Managesieve/</uri> + <min>1.15</min> + </package> + </required> + </dependencies> + <phprelease/> +</package> diff --git a/plugins/quickrules/quickrules.js b/plugins/quickrules/quickrules.js new file mode 100644 index 000000000..7b8702330 --- /dev/null +++ b/plugins/quickrules/quickrules.js @@ -0,0 +1,169 @@ +/** + * QuickRules plugin script + */ + +function rcmail_quickrules() { + if (!rcmail.env.uid && (!rcmail.message_list || !rcmail.message_list.get_selection().length)) + return; + + var uids = rcmail.env.uid ? rcmail.env.uid : rcmail.message_list.get_selection().join(','); + + var lock = rcmail.set_busy(true, 'loading'); + rcmail.http_post('plugin.quickrules.add', '_uid='+uids+'&_mbox='+urlencode(rcmail.env.mailbox), lock); +} + +function quickrules_add_filter() { + rcmail.command('plugin.sieverules.add'); +} + +function quickrules_setup_rules() { + var rulesTable = rcube_find_object('rules-table'); + var actsTable = rcube_find_object('actions-table'); + + if (rcmail_quickrules_rules.length < 1) + return; + + for (i = 1; i < rcmail_quickrules_rules.length; i++) + rcmail.command('plugin.sieverules.add_rule','', rulesTable.tBodies[0].rows[0]); + + var headers = document.getElementsByName('_selheader[]'); + var ops = document.getElementsByName('_operator[]'); + var targets = document.getElementsByName('_target[]'); + var otherHeaders = document.getElementsByName('_header[]'); + var headerParts = ""; + + for (var i = 1; i < headers.length; i++) { + $(headers[i]).val(rcmail_quickrules_rules[i-1].header); + $(ops[i]).val(rcmail_quickrules_rules[i-1].op); + headerParts = ""; + + // other headers + if (rcmail_quickrules_rules[i-1].header.indexOf('other') == 0) { + headerParts = rcmail_quickrules_rules[i-1].header.split('::'); + rcmail_quickrules_rules[i-1].header = 'header::other' + $(headers[i]).val(rcmail_quickrules_rules[i-1].header); + } + + // check values set ok before adding rule + if ($(headers[i]).val() == rcmail_quickrules_rules[i-1].header && $(ops[i]).val() == rcmail_quickrules_rules[i-1].op) { + rcmail.sieverules_header_select(headers[i]); + + if (headerParts) + $(otherHeaders[i]).val(headerParts[1]); + + // set the op again (header onchange resets it) + $(ops[i]).val(rcmail_quickrules_rules[i-1].op); + rcmail.sieverules_rule_op_select(ops[i]); + + targets[i].value = rcmail_quickrules_rules[i-1].target; + } + else { + headers[i].selectedIndex = 0; + ops[i].selectedIndex = 0; + } + } + + if (rcmail_quickrules_actions.length < 1) + return; + + for (i = 1; i < rcmail_quickrules_actions.length; i++) + rcmail.command('plugin.sieverules.add_action','', actsTable.tBodies[0].rows[0]); + + var acts = document.getElementsByName('_act[]'); + var folders = document.getElementsByName('_folder[]'); + var flags = document.getElementsByName('_imapflags[]'); + + for (var i = 1; i < acts.length; i++) { + $(acts[i]).val(rcmail_quickrules_actions[i-1].act); + + // check for imap4flags + if (rcmail_quickrules_actions[i-1].act == 'imapflags') { + if ($(acts[i]).val() != rcmail_quickrules_actions[i-1].act) + $(acts[i]).val('imap4flags'); + + // check values set ok before adding action + if ($(acts[i]).val() == rcmail_quickrules_actions[i-1].act) { + rcmail.sieverules_action_select(acts[i]); + $(flags[i]).val(rcmail_quickrules_actions[i-1].props); + } + else { + acts[i].selectedIndex = 0; + } + } + else { + // check values set ok before adding action + if ($(acts[i]).val() == rcmail_quickrules_actions[i-1].act) { + rcmail.sieverules_action_select(acts[i]); + $(folders[i]).val(rcmail_quickrules_actions[i-1].props); + } + else { + acts[i].selectedIndex = 0; + } + } + } +} + +function rcmail_quickrules_status(command) { + switch (command) { + case 'beforedelete': + if (!rcmail.env.flag_for_deletion && rcmail.env.trash_mailbox && + rcmail.env.mailbox != rcmail.env.trash_mailbox && + (rcmail.message_list && !rcmail.message_list.shiftkey)) + rcmail.enable_command('plugin.quickrules.create', false); + + break; + case 'beforemove': + case 'beforemoveto': + rcmail.enable_command('plugin.quickrules.create', false); + break; + case 'aftermove': + case 'aftermoveto': + if (rcmail.env.action == 'show') + rcmail.enable_command('plugin.quickrules.create', true); + + break; + case 'afterpurge': + case 'afterexpunge': + if (!rcmail.env.messagecount && rcmail.task == 'mail') + rcmail.enable_command('plugin.quickrules.create', false); + + break; + } +} + +function rcmail_quickrules_init() { + if (rcmail.env.action == 'plugin.sieverules') + quickrules_add_filter(); + + if (rcmail.env.action == 'plugin.sieverules.add') + quickrules_setup_rules(); + + if (window.rcm_contextmenu_register_command) + rcm_contextmenu_register_command('quickrules', 'rcmail_quickrules', rcmail.gettext('quickrules.createfilter'), 'moveto', 'after', false); +} + +$(document).ready(function() { + if (window.rcmail) { + rcmail.addEventListener('init', function(evt) { + // register command (directly enable in message view mode) + rcmail.register_command('plugin.quickrules.create', rcmail_quickrules, rcmail.env.uid); + + if (rcmail.message_list && rcmail.env.junk_mailbox) { + rcmail.message_list.addEventListener('select', function(list) { + rcmail.enable_command('plugin.quickrules.create', list.get_single_selection() != null); + }); + } + }); + + rcmail.add_onload('rcmail_quickrules_init()'); + + // update button activation after external events + rcmail.addEventListener('beforedelete', function(props) { rcmail_quickrules_status('beforedelete'); } ); + rcmail.addEventListener('beforemove', function(props) { rcmail_quickrules_status('beforemove'); } ); + rcmail.addEventListener('beforemoveto', function(props) { rcmail_quickrules_status('beforemoveto'); } ); + rcmail.addEventListener('aftermove', function(props) { rcmail_quickrules_status('aftermove'); } ); + rcmail.addEventListener('aftermoveto', function(props) { rcmail_quickrules_status('aftermoveto'); } ); + rcmail.addEventListener('afterpurge', function(props) { rcmail_quickrules_status('afterpurge'); } ); + rcmail.addEventListener('afterexpunge', function(props) { rcmail_quickrules_status('afterexpunge'); } ); + } +});
\ No newline at end of file diff --git a/plugins/quickrules/quickrules.php b/plugins/quickrules/quickrules.php new file mode 100644 index 000000000..575dd5724 --- /dev/null +++ b/plugins/quickrules/quickrules.php @@ -0,0 +1,137 @@ +<?php + +/** + * QuickRules + * + * Plugin to allow the user to quickly create filters from the message list + * + * @version @package_version@ + * @requires SieveRules plugin + * @author Philip Weir + */ +class quickrules extends rcube_plugin +{ + public $task = 'mail|settings'; + + // default values: label => value + private $headers = array('subject' => 'header::Subject', + 'from' => 'address::From', + 'to' => 'address::To', + 'cc' => 'address::Cc', + 'bcc' => 'address::Bcc', + 'envelopeto' => 'envelope::To', + 'envelopefrom' => 'envelope::From' + ); + + private $operators = array('filtercontains' => 'contains', + 'filternotcontains' => 'notcontains', + 'filteris' => 'is', + 'filterisnot' => 'notis', + 'filterexists' => 'exists', + 'filternotexists' => 'notexists' + ); + + private $flags = array('flagread' => '\\Seen', + 'flagdeleted' => '\\Deleted', + 'flaganswered' => '\\Answered', + 'flagdraft' => '\\Draft', + 'flagflagged' => '\\\\Flagged' + ); + + private $additional_headers = array('List-Id'); + + function init() + { + // load required plugin + $this->require_plugin('sieverules'); + + $rcmail = rcube::get_instance(); + $this->register_action('plugin.quickrules.add', array($this, 'init_rule')); + + if ($rcmail->task == 'mail' && ($rcmail->action == '' || $rcmail->action == 'show')) { + $this->add_texts('localization', true); + $this->include_script('quickrules.js'); + $this->include_stylesheet($this->local_skin_path() .'/quickrules.css'); + if ($rcmail->output->browser->ie && $rcmail->output->browser->ver == 6) + $this->include_stylesheet($this->local_skin_path() . '/ie6hacks.css'); + + $this->add_button(array('command' => 'plugin.quickrules.create', 'type' => 'link', 'class' => 'button buttonPas quickrules disabled', 'classact' => 'button quickrules', 'classsel' => 'button quickrulesSel', 'title' => 'quickrules.createfilterbased', 'label' => 'quickrules.createfilter'), 'toolbar'); + } + + if ($_SESSION['plugin.quickrules']) { + $this->add_hook('storage_init', array($this, 'fetch_headers')); + $this->_create_rule(); + } + } + + function init_rule() + { + $_SESSION['plugin.quickrules'] = true; + $_SESSION['plugin.quickrules.uids'] = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST); + $_SESSION['plugin.quickrules.mbox'] = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST); + + rcube::get_instance()->output->redirect(array('task' => 'settings', 'action' => 'plugin.sieverules')); + } + + function fetch_headers($attr) + { + $attr['fetch_headers'] .= trim($attr['fetch_headers'] . join(' ', $this->additional_headers)); + return($attr); + } + + private function _create_rule() + { + $rcmail = rcube::get_instance(); + if ($rcmail->action == 'plugin.sieverules' || $rcmail->action == 'plugin.sieverules.add') { + $this->include_script('quickrules.js'); + + if ($rcmail->action == 'plugin.sieverules.add') { + $uids = $_SESSION['plugin.quickrules.uids']; + $mbox = $_SESSION['plugin.quickrules.mbox']; + $rcmail->storage_init(); + + $rules = array(); + $actions = array(); + foreach (explode(",", $uids) as $uid) { + $message = new rcube_message($uid); + $rules[] = rcube_output::json_serialize(array('header' => $this->headers['from'], 'op' => $this->operators['filteris'], 'target' => $message->sender['mailto'])); + + $recipients = array(); + $recipients_array = rcube_mime::decode_address_list($message->headers->to); + foreach ($recipients_array as $recipient) + $recipients[] = $recipient['mailto']; + + $identity = $rcmail->user->get_identity(); + $recipient_str = join(', ', $recipients); + if ($recipient_str != $identity['email']) + $rules[] = rcube_output::json_serialize(array('header' => $this->headers['to'], 'op' => $this->operators['filteris'], 'target' => $recipient_str)); + + if (strlen($message->subject) > 0) + $rules[] = rcube_output::json_serialize(array('header' => $this->headers['subject'], 'op' => $this->operators['filtercontains'], 'target' => $message->subject)); + + foreach ($this->additional_headers as $header) { + if (strlen($message->headers->others[strtolower($header)]) > 0) + $rules[] = rcube_output::json_serialize(array('header' => 'other::' . $header, 'op' => $this->operators['filteris'], 'target' => $message->headers->others[strtolower($header)])); + } + + if ($mbox != 'INBOX') + $actions[] = rcube_output::json_serialize(array('act' => 'fileinto', 'props' => $mbox)); + + foreach ($message->headers->flags as $flag) { + if ($flag == 'Flagged') + $actions[] = rcube_output::json_serialize(array('act' => 'imapflags', 'props' => $this->flags['flagflagged'])); + } + } + + $this->api->output->add_script(rcmail_output::JS_OBJECT_NAME . "_quickrules_rules = [" . implode(',', $rules) . "];"); + $this->api->output->add_script(rcmail_output::JS_OBJECT_NAME . "_quickrules_actions = [" . implode(',', $actions) . "];"); + + $_SESSION['plugin.quickrules'] = false; + $_SESSION['plugin.quickrules.uids'] = ''; + $_SESSION['plugin.quickrules.mbox'] = ''; + } + } + } +} + +?>
\ No newline at end of file diff --git a/plugins/quickrules/skins/classic/ie6hacks.css b/plugins/quickrules/skins/classic/ie6hacks.css new file mode 100644 index 000000000..2a3b57506 --- /dev/null +++ b/plugins/quickrules/skins/classic/ie6hacks.css @@ -0,0 +1,14 @@ +/** + * QuickRules plugin styles (IE6 hacks) + */ + +#messagetoolbar a.quickrules, +#messagetoolbar a.quickrulesSel +{ + background-image: url(mail_toolbar.gif); +} + +#rcmContextMenu .quickrules a +{ + background-image: url(messageactions.gif); +}
\ No newline at end of file diff --git a/plugins/quickrules/skins/classic/mail_toolbar.gif b/plugins/quickrules/skins/classic/mail_toolbar.gif Binary files differnew file mode 100644 index 000000000..96945bee8 --- /dev/null +++ b/plugins/quickrules/skins/classic/mail_toolbar.gif diff --git a/plugins/quickrules/skins/classic/mail_toolbar.png b/plugins/quickrules/skins/classic/mail_toolbar.png Binary files differnew file mode 100644 index 000000000..9a6397482 --- /dev/null +++ b/plugins/quickrules/skins/classic/mail_toolbar.png diff --git a/plugins/quickrules/skins/classic/messageactions.gif b/plugins/quickrules/skins/classic/messageactions.gif Binary files differnew file mode 100644 index 000000000..bdfa8e142 --- /dev/null +++ b/plugins/quickrules/skins/classic/messageactions.gif diff --git a/plugins/quickrules/skins/classic/messageactions.png b/plugins/quickrules/skins/classic/messageactions.png Binary files differnew file mode 100644 index 000000000..492565fda --- /dev/null +++ b/plugins/quickrules/skins/classic/messageactions.png diff --git a/plugins/quickrules/skins/classic/quickrules.css b/plugins/quickrules/skins/classic/quickrules.css new file mode 100644 index 000000000..1ff5a33b2 --- /dev/null +++ b/plugins/quickrules/skins/classic/quickrules.css @@ -0,0 +1,26 @@ +/** + * QuickRules plugin styles + */ + +#messagetoolbar a.quickrules, +#messagetoolbar a.quickrulesSel +{ + text-indent: -5000px; + background-image: url(mail_toolbar.png); +} + +#messagetoolbar a.quickrules +{ + background-position: 0 0; +} + +#messagetoolbar a.quickrulesSel +{ + background-position: 0 -32px; +} + +#rcmContextMenu .quickrules a +{ + background-image: url(messageactions.png); + background-position: 7px 0px; +}
\ No newline at end of file diff --git a/plugins/quickrules/skins/larry/ie6hacks.css b/plugins/quickrules/skins/larry/ie6hacks.css new file mode 100644 index 000000000..f5e8ac794 --- /dev/null +++ b/plugins/quickrules/skins/larry/ie6hacks.css @@ -0,0 +1,3 @@ +/** + * QuickRules plugin styles (IE6 hacks) + */ diff --git a/plugins/quickrules/skins/larry/mail_toolbar.png b/plugins/quickrules/skins/larry/mail_toolbar.png Binary files differnew file mode 100644 index 000000000..f5738f0f5 --- /dev/null +++ b/plugins/quickrules/skins/larry/mail_toolbar.png diff --git a/plugins/quickrules/skins/larry/messageactions.png b/plugins/quickrules/skins/larry/messageactions.png Binary files differnew file mode 100644 index 000000000..f7a431d10 --- /dev/null +++ b/plugins/quickrules/skins/larry/messageactions.png diff --git a/plugins/quickrules/skins/larry/quickrules.css b/plugins/quickrules/skins/larry/quickrules.css new file mode 100644 index 000000000..64f146b0c --- /dev/null +++ b/plugins/quickrules/skins/larry/quickrules.css @@ -0,0 +1,21 @@ +/** + * QuickRules plugin styles + */ + +#messagetoolbar a.quickrules, +#messagetoolbar a.quickrulesSel +{ + background-image: url(mail_toolbar.png); +} + +#messagetoolbar a.quickrules, +#messagetoolbar a.quickrulesSel +{ + background-position: center -16px; +} + +#rcmContextMenu .quickrules a span +{ + background-image: url(messageactions.png); + background-position: 5px 6px; +}
\ No newline at end of file |