summaryrefslogtreecommitdiff
path: root/plugins/managesieve/managesieve.js
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/managesieve/managesieve.js')
-rw-r--r--plugins/managesieve/managesieve.js25
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 = {};