# HG changeset patch # User Charlie Root # Date 1520960509 14400 # Node ID f8b3ac77e9512b590131a6c13a312b3908b8490d # Parent b2d0a978147290277732808db970c876ac085c3c improved label deletion handling diff -r b2d0a9781472 -r f8b3ac77e951 plugins/thunderbird_labels/tb_label.js --- a/plugins/thunderbird_labels/tb_label.js Tue Mar 13 13:01:26 2018 -0400 +++ b/plugins/thunderbird_labels/tb_label.js Tue Mar 13 13:01:49 2018 -0400 @@ -128,8 +128,9 @@ } var pos = jQuery.inArray(toggle_label_no, tb_labels_for_message); - if (pos > -1) { + while (pos > -1) { tb_labels_for_message.splice(pos, 1); + pos = jQuery.inArray(toggle_label_no, tb_labels_for_message); } } // exit function when in detail mode. when preview is active keep going @@ -241,9 +242,11 @@ if (rcmail.env.messages) { var first_message = rcmail.env.messages[selection[0]]; - if (first_message.flags - && jQuery.inArray(toggle_label_no, - first_message.flags.tb_labels) >= 0 + if ((first_message.flags + && jQuery.inArray(toggle_label_no, + first_message.flags.tb_labels) >= 0) || + (hasParm && jQuery.grep(first_message.flags.tb_lparms, + function(p) {return p['number'] == toggle_label_no;}).length) ) first_toggle_mode = 'off'; else @@ -252,6 +255,7 @@ else // single message display { // flag already set? + // Not sure this works if this flag has a parm if (jQuery.inArray(toggle_label_no, tb_labels_for_message) >= 0) first_toggle_mode = 'off'; @@ -281,9 +285,11 @@ return; } var message = rcmail.env.messages[uid]; - if (message.flags - && jQuery.inArray(toggle_label_no, - message.flags.tb_labels) >= 0 + if ((message.flags + && jQuery.inArray(toggle_label_no, + message.flags.tb_labels) >= 0) || + (hasParm && jQuery.grep(message.flags.tb_lparms, + function(p) {return p['number'] == toggle_label_no;}).length) ) { if (first_toggle_mode == 'off')