diff options
Diffstat (limited to 'plugins/managesieve/managesieve.js')
-rw-r--r-- | plugins/managesieve/managesieve.js | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/plugins/managesieve/managesieve.js b/plugins/managesieve/managesieve.js index bbc10793c..04b9a76af 100644 --- a/plugins/managesieve/managesieve.js +++ b/plugins/managesieve/managesieve.js @@ -231,24 +231,31 @@ rcube_webmail.prototype.managesieve_updatelist = function(action, o) // Delete filter row case 'del': - var i, list = this.filters_list, rows = list.rows; + var i = 0, list = this.filters_list; list.remove_row(this.managesieve_rowid(o.id)); list.clear_selection(); this.show_contentframe(false); this.enable_command('plugin.managesieve-del', 'plugin.managesieve-act', false); - // re-numbering filters - for (i=0; i<rows.length; i++) { - if (rows[i] != null && rows[i].uid > o.id) - rows[i].uid = rows[i].uid-1; - } + // filter identifiers changed, fix the list + $('tr', this.filters_list.list).each(function() { + // remove hidden (deleted) rows + if (this.style.display == 'none') { + $(this).detach(); + return; + } + + // modify ID and remove all attached events + $(this).attr('id', 'rcmrow'+(i++)).unbind(); + }); + list.init(); break; // Update filter row case 'update': - var i, row = $('#rcmrow'+o.id); + var i, row = $('#rcmrow'+this.managesieve_rowid(o.id)); if (o.name) $('td', row).html(o.name); @@ -373,7 +380,7 @@ rcube_webmail.prototype.load_managesieveframe = function(id) target = window.frames[this.env.contentframe]; var msgid = this.set_busy(true, 'loading'); target.location.href = this.env.comm_path+'&_action=plugin.managesieve&_framed=1' - +(id ? '&_fid='+id : '')+'&_unlock='+msgid; + +(has_id ? '&_fid='+id : '')+'&_unlock='+msgid; } }; @@ -747,7 +754,7 @@ rcube_webmail.prototype.managesieve_create = function() // load form in the iframe var frame = $('<iframe>').attr({src: url, frameborder: 0}) - dialog.empty().append(frame).dialog('dialog').resize(); + dialog.empty().append(frame).dialog('widget').resize(); // Change [Next Step] button with [Save] button buttons = {}; |