Aleksander Machniak
2013-10-04 c02a904140feeaf757cd307645ad914a233b1039
plugins/managesieve/managesieve.js
@@ -231,27 +231,34 @@
    // 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);
        $('td', row).text(o.name);
      if (o.disabled)
        row.addClass('disabled');
      else
@@ -266,7 +273,7 @@
      var list = this.filters_list,
        row = $('<tr><td class="name"></td></tr>');
      $('td', row).html(o.name);
      $('td', row).text(o.name);
      row.attr('id', 'rcmrow'+o.id);
      if (o.disabled)
        row.addClass('disabled');
@@ -290,7 +297,7 @@
        tr = document.createElement('TR');
        td = document.createElement('TD');
        td.innerHTML = el.name;
        $(td).text(el.name);
        td.className = 'name';
        tr.id = 'rcmrow' + el.id;
        if (el['class'])
@@ -339,7 +346,7 @@
        list = this.filtersets_list,
        row = $('<tr class="disabled"><td class="name"></td></tr>');
      $('td', row).html(o.name);
      $('td', row).text(o.name);
      row.attr('id', 'rcmrow'+id);
      this.env.filtersets[id] = o.name;
@@ -373,7 +380,7 @@
    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;
  }
};
@@ -635,10 +642,12 @@
    enabled = {},
    elems = {
      mailbox: document.getElementById('action_mailbox' + id),
      target: document.getElementById('action_target' + id),
      target: document.getElementById('redirect_target' + id),
      target_area: document.getElementById('action_target_area' + id),
      flags: document.getElementById('action_flags' + id),
      vacation: document.getElementById('action_vacation' + id)
      vacation: document.getElementById('action_vacation' + id),
      set: document.getElementById('action_set' + id),
      notify: document.getElementById('action_notify' + id)
    };
  if (obj.value == 'fileinto' || obj.value == 'fileinto_copy') {
@@ -655,6 +664,12 @@
  }
  else if (obj.value == 'vacation') {
    enabled.vacation = 1;
  }
  else if (obj.value == 'set') {
    enabled.set = 1;
  }
  else if (obj.value == 'notify') {
    enabled.notify = 1;
  }
  for (var x in elems) {
@@ -674,7 +689,8 @@
        function(e) {
          var offset = $(this).offset(),
            left = offset.left,
            top = offset.top - 12;
            top = offset.top - 12,
            minwidth = $(this).width();
          if (framed) {
            offset = $((rcmail.env.task == 'mail'  ? '#sievefilterform > iframe' : '#filter-box'), parent.document).offset();
@@ -685,7 +701,7 @@
          tip.html(e.data.str)
          top -= tip.height();
          tip.css({left: left, top: top}).show();
          tip.css({left: left, top: top, minWidth: (minwidth-2) + 'px'}).show();
        })
      .bind('mouseleave', function(e) { tip.hide(); });
  }
@@ -738,7 +754,7 @@
    // 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 = {};