Aleksander Machniak
2012-11-27 da7905f9c6a4038e22486442a81261c98b35cfe8
Fixed filter operations after filter deletion (#1488832)
1 files modified
21 ■■■■■ changed files
plugins/managesieve/managesieve.js 21 ●●●●● patch | view | raw | blame | history
plugins/managesieve/managesieve.js
@@ -231,24 +231,31 @@
    // 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);