diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php index bbbfa9d..c4f326f 100644 --- a/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php +++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php @@ -1618,6 +1618,23 @@ class rcube_sieve_engine . (in_array_nocase($flag, $flags_target) ? 'checked="checked"' : '') . ' />' . rcube::Q($this->plugin->gettext('flag'.$fidx)) .'
'; } + + // collecting labels from message_label plugin. Note: I am using my own version of message_label plugin that stores the flags in clear text + // see https://github.com/tpokorra/message_label/tree/message_label_tbits + $flag_message_label = ""; + foreach ($flags_target as $flag) { + if (in_array_nocase($flag, array_values($flags)) === false) { + $flag_message_label = $flag; + } + } + $prefs = $this->rc->config->get('message_label', array()); + $out .= ''; + $out .= ''; // set variable diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php index 371b45d..8ef494f 100644 --- a/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php +++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php @@ -379,6 +379,12 @@ class rcube_sieve_script case 'setflag': case 'removeflag': array_push($exts, $imapflags); + + if (array_search("no_message_label", $action['target']) !== false) { + // if the user does not want to store the message label anymore + unset($action['target'][array_search("no_message_label", $action['target'])]); + } + $action_script .= $action['type'].' ' . self::escape_string($action['target']); break;