From e306bf4c9eb10ea7ce2c53dced2ab7645320d004 Mon Sep 17 00:00:00 2001 From: Giam Teck Choon Date: Sat, 23 Nov 2019 20:14:32 +0800 Subject: [PATCH 1/2] Add IsSpam and NotSpam support Signed-off-by: Giam Teck Choon --- plugins/markasjunk/markasjunk.js | 9 ++++++--- plugins/markasjunk/markasjunk.php | 6 ++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/plugins/markasjunk/markasjunk.js b/plugins/markasjunk/markasjunk.js index 4f1143e..7d9777a 100644 --- a/plugins/markasjunk/markasjunk.js +++ b/plugins/markasjunk/markasjunk.js @@ -49,8 +49,8 @@ rcube_webmail.prototype.markasjunk_toggle_button = function() { if (this.env.markasjunk_spam_only) { disp.ham = false; } - else if (!this.is_multifolder_listing() && this.env.markasjunk_spam_mailbox) { - if (this.env.mailbox != this.env.markasjunk_spam_mailbox) + else if (!this.is_multifolder_listing() && (this.env.markasjunk_spam_mailbox || this.env.markasjunk_isspam_mailbox)) { + if (this.env.mailbox != this.env.markasjunk_spam_mailbox && this.env.mailbox != this.env.markasjunk_isspam_mailbox) disp.ham = false; else disp.spam = false; @@ -89,7 +89,7 @@ rcube_webmail.prototype.markasjunk_toggle_button = function() { } rcube_webmail.prototype.markasjunk_is_spam_mbox = function() { - return !this.is_multifolder_listing() && this.env.mailbox == this.env.markasjunk_spam_mailbox; + return !this.is_multifolder_listing() && (this.env.mailbox == this.env.markasjunk_spam_mailbox || this.env.mailbox == this.env.markasjunk_isspam_mailbox); } if (window.rcmail) { @@ -120,6 +120,9 @@ if (window.rcmail) { // check if destination mbox equals junk box (and we're not already in the junk box) if (rcmail.env.markasjunk_move_spam && mbox && mbox == rcmail.env.markasjunk_spam_mailbox && mbox != rcmail.env.mailbox) is_spam = true; + // check if destination mbox equals junk box (and we're not already in the isjunk box) + else if (rcmail.env.markasjunk_move_spam && mbox && mbox == rcmail.env.markasjunk_isspam_mailbox && mbox != rcmail.env.mailbox) + is_spam = true; // or if destination mbox equals ham box and we are in the junk box else if (rcmail.env.markasjunk_move_ham && mbox && mbox == rcmail.env.markasjunk_ham_mailbox && rcmail.env.mailbox == rcmail.env.markasjunk_spam_mailbox) is_spam = false; diff --git a/plugins/markasjunk/markasjunk.php b/plugins/markasjunk/markasjunk.php index 67ae84c..5dfac25 100644 --- a/plugins/markasjunk/markasjunk.php +++ b/plugins/markasjunk/markasjunk.php @@ -59,8 +59,9 @@ class markasjunk extends rcube_plugin return; } - $this->ham_mbox = $this->rcube->config->get('markasjunk_ham_mbox', 'INBOX'); + $this->ham_mbox = $this->rcube->config->get('markasjunk_ham_mbox', $this->rcube->config->get('isham_mbox') ? $this->rcube->config->get('isham_mbox') : 'INBOX'); $this->spam_mbox = $this->rcube->config->get('markasjunk_spam_mbox', $this->rcube->config->get('junk_mbox')); + $this->isspam_mbox = $this->rcube->config->get('markasjunk_isspam_mbox', $this->rcube->config->get('isjunk_mbox') ? $this->rcube->config->get('isjunk_mbox') : $this->rcube->config->get('junk_mbox')); $toolbar = $this->rcube->config->get('markasjunk_toolbar', true); $this->_init_flags(); @@ -119,6 +120,7 @@ class markasjunk extends rcube_plugin // add markasjunk folder settings to the env for JS $this->rcube->output->set_env('markasjunk_ham_mailbox', $this->ham_mbox); $this->rcube->output->set_env('markasjunk_spam_mailbox', $this->spam_mbox); + $this->rcube->output->set_env('markasjunk_isspam_mailbox', $this->isspam_mbox); $this->rcube->output->set_env('markasjunk_move_spam', $this->rcube->config->get('markasjunk_move_spam', false)); $this->rcube->output->set_env('markasjunk_move_ham', $this->rcube->config->get('markasjunk_move_ham', false)); $this->rcube->output->set_env('markasjunk_permanently_remove', $this->rcube->config->get('markasjunk_permanently_remove', false)); @@ -136,7 +138,7 @@ class markasjunk extends rcube_plugin $is_spam = $this->rcube->action == 'plugin.markasjunk.junk' ? true : false; $messageset = rcmail::get_uids(null, null, $multifolder, rcube_utils::INPUT_POST); $mbox_name = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST); - $dest_mbox = $is_spam ? $this->spam_mbox : $this->ham_mbox; + $dest_mbox = $is_spam ? ($this->isspam_mbox ? $this->isspam_mbox : $this->spam_mbox) : $this->ham_mbox; $result = $is_spam ? $this->_spam($messageset, $dest_mbox) : $this->_ham($messageset, $dest_mbox); if ($result) { -- 1.8.3.1 From b2b339be7a62dd75d59505e105011f373c29a306 Mon Sep 17 00:00:00 2001 From: Giam Teck Choon Date: Sat, 23 Nov 2019 20:17:12 +0800 Subject: [PATCH 2/2] uglifyjs plugins/markasjunk/markasjunk.min.js Signed-off-by: Giam Teck Choon --- plugins/markasjunk/markasjunk.min.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 plugins/markasjunk/markasjunk.min.js diff --git a/plugins/markasjunk/markasjunk.min.js b/plugins/markasjunk/markasjunk.min.js new file mode 100644 index 0000000..457bfb2 --- /dev/null +++ b/plugins/markasjunk/markasjunk.min.js @@ -0,0 +1 @@ +rcube_webmail.prototype.markasjunk_mark=function(a){var e=this.env.uid?[this.env.uid]:this.message_list.get_selection();if(!e)return;var i=this.set_busy(true,"loading");this.http_post("plugin.markasjunk."+(a?"junk":"not_junk"),this.selection_post_data({_uid:e}),i)};rcube_webmail.prototype.markasjunk_move=function(a,e){var i=this.env.uid;if(this.message_list&&e.length==1&&!this.message_list.in_selection(e[0]))this.env.uid=e[0];if(a)this.move_messages(a);else if(this.env.markasjunk_permanently_remove==true)this.permanently_remove_messages();else this.delete_messages();this.env.uid=i};rcube_webmail.prototype.markasjunk_toggle_button=function(){var a=$("a.junk"),e=$("a.notjunk"),i={spam:true,ham:true};if(this.env.markasjunk_spam_only){i.ham=false}else if(!this.is_multifolder_listing()&&(this.env.markasjunk_spam_mailbox||this.env.markasjunk_isspam_mailbox)){if(this.env.mailbox!=this.env.markasjunk_spam_mailbox&&this.env.mailbox!=this.env.markasjunk_isspam_mailbox)i.ham=false;else i.spam=false}$.each(a,function(s){var n=a.eq(s),m=e.eq(s),t=a.eq(s).index();if(n.parent("li").length>0){n=n.parent();m=m.parent()}var r=rcmail.triggerEvent("markasjunk-update",{objs:{spamobj:n,hamobj:m},disp:i});if(r&&r.abort)return;i=r?r.disp:i;i.spam?n.show():n.hide();i.ham?m.show():m.hide();if(i.spam&&!i.ham){if(tm.index()){m.insertAfter(n)}})};rcube_webmail.prototype.markasjunk_is_spam_mbox=function(){return!this.is_multifolder_listing()&&(this.env.mailbox==this.env.markasjunk_spam_mailbox||this.env.mailbox==this.env.markasjunk_isspam_mailbox)};if(window.rcmail){rcmail.addEventListener("init",function(){rcmail.register_command("plugin.markasjunk.junk",function(){rcmail.markasjunk_mark(true)},!rcmail.markasjunk_is_spam_mbox()&&rcmail.env.uid);rcmail.register_command("plugin.markasjunk.not_junk",function(){rcmail.markasjunk_mark(false)},rcmail.env.uid);if(rcmail.message_list){rcmail.message_list.addEventListener("select",function(a){rcmail.enable_command("plugin.markasjunk.junk",!rcmail.markasjunk_is_spam_mbox()&&a.get_selection(false).length>0);rcmail.enable_command("plugin.markasjunk.not_junk",a.get_selection(false).length>0)})}rcmail.markasjunk_toggle_button()});rcmail.addEventListener("listupdate",function(){rcmail.markasjunk_toggle_button()});rcmail.addEventListener("beforemoveto",function(a){if(a&&typeof a==="object")a=a.id;var e=null;if(rcmail.env.markasjunk_move_spam&&a&&a==rcmail.env.markasjunk_spam_mailbox&&a!=rcmail.env.mailbox)e=true;else if(rcmail.env.markasjunk_move_spam&&a&&a==rcmail.env.markasjunk_isspam_mailbox&&a!=rcmail.env.mailbox)e=true;else if(rcmail.env.markasjunk_move_ham&&a&&a==rcmail.env.markasjunk_ham_mailbox&&rcmail.env.mailbox==rcmail.env.markasjunk_spam_mailbox)e=false;if(e!==null){rcmail.markasjunk_mark(e);return false}})} \ No newline at end of file -- 1.8.3.1