diff options
author | till <till@php.net> | 2010-03-20 14:20:01 +0000 |
---|---|---|
committer | till <till@php.net> | 2010-03-20 14:20:01 +0000 |
commit | 63a3dc5fde5a3ceed4f03c19c5015aab19050bee (patch) | |
tree | 50aafccdad5fe36c59f10d194298c35f046afd2f /plugins/managesieve/managesieve.js | |
parent | 0f8ff20ae2e8c949d58b9ca02bda95e388f7d142 (diff) |
moved plugins
Diffstat (limited to 'plugins/managesieve/managesieve.js')
-rw-r--r-- | plugins/managesieve/managesieve.js | 479 |
1 files changed, 0 insertions, 479 deletions
diff --git a/plugins/managesieve/managesieve.js b/plugins/managesieve/managesieve.js deleted file mode 100644 index 08954c1c2..000000000 --- a/plugins/managesieve/managesieve.js +++ /dev/null @@ -1,479 +0,0 @@ -/* Sieve Filters (tab) */ - -if (window.rcmail) { - rcmail.addEventListener('init', function(evt) { - // <span id="settingstabdefault" class="tablink"><roundcube:button command="preferences" type="link" label="preferences" title="editpreferences" /></span> - var tab = $('<span>').attr('id', 'settingstabpluginmanagesieve').addClass('tablink'); - - var button = $('<a>').attr('href', rcmail.env.comm_path+'&_action=plugin.managesieve') - .attr('title', rcmail.gettext('managesieve.managefilters')) - .html(rcmail.gettext('managesieve.filters')) - .bind('click', function(e){ return rcmail.command('plugin.managesieve', this) }) - .appendTo(tab); - - // add button and register commands - rcmail.add_element(tab, 'tabs'); - rcmail.register_command('plugin.managesieve', function() { rcmail.goto_url('plugin.managesieve') }, true); - rcmail.register_command('plugin.managesieve-save', function() { rcmail.managesieve_save() }, true); - rcmail.register_command('plugin.managesieve-add', function() { rcmail.managesieve_add() }, true); - rcmail.register_command('plugin.managesieve-del', function() { rcmail.managesieve_del() }, true); - rcmail.register_command('plugin.managesieve-up', function() { rcmail.managesieve_up() }, true); - rcmail.register_command('plugin.managesieve-down', function() { rcmail.managesieve_down() }, true); - rcmail.register_command('plugin.managesieve-set', function() { rcmail.managesieve_set() }, true); - rcmail.register_command('plugin.managesieve-setadd', function() { rcmail.managesieve_setadd() }, true); - rcmail.register_command('plugin.managesieve-setdel', function() { rcmail.managesieve_setdel() }, true); - rcmail.register_command('plugin.managesieve-setact', function() { rcmail.managesieve_setact() }, true); - - if (rcmail.env.action == 'plugin.managesieve') - { - if (rcmail.gui_objects.sieveform) { - rcmail.enable_command('plugin.managesieve-save', true); - } - else { - rcmail.enable_command('plugin.managesieve-del', 'plugin.managesieve-up', - 'plugin.managesieve-down', false); - rcmail.enable_command('plugin.managesieve-add', 'plugin.managesieve-setadd', !rcmail.env.sieveconnerror); - rcmail.enable_command('plugin.managesieve-set', rcmail.gui_objects.filtersetslist != null); - rcmail.enable_command('plugin.managesieve-setact', - (rcmail.gui_objects.filtersetslist && rcmail.gui_objects.filtersetslist.length > 1 - && rcmail.gui_objects.filtersetslist.value != rcmail.env.active_set)); - rcmail.enable_command('plugin.managesieve-setdel', - (rcmail.gui_objects.filtersetslist && rcmail.gui_objects.filtersetslist.length > 1)); - } - if (rcmail.gui_objects.filterslist) { - var p = rcmail; - rcmail.filters_list = new rcube_list_widget(rcmail.gui_objects.filterslist, {multiselect:false, draggable:false, keyboard:false}); - rcmail.filters_list.addEventListener('select', function(o){ p.managesieve_select(o); }); - rcmail.filters_list.init(); - rcmail.filters_list.focus(); - } - } - if (rcmail.gui_objects.sieveform && rcmail.env.rule_disabled) - $('#disabled').attr('checked', true); - }); - - /*********************************************************/ - /********* Managesieve filters methods *********/ - /*********************************************************/ - - rcube_webmail.prototype.managesieve_add = function() - { - this.load_managesieveframe(); - this.filters_list.clear_selection(); - }; - - rcube_webmail.prototype.managesieve_del = function() - { - var id = this.filters_list.get_single_selection(); - - if (confirm(this.get_label('managesieve.filterdeleteconfirm'))) - this.http_request('plugin.managesieve', - '_act=delete&_fid='+this.filters_list.rows[id].uid, true); - }; - - rcube_webmail.prototype.managesieve_up = function() - { - var id = this.filters_list.get_single_selection(); - this.http_request('plugin.managesieve', - '_act=up&_fid='+this.filters_list.rows[id].uid, true); - }; - - rcube_webmail.prototype.managesieve_down = function() - { - var id = this.filters_list.get_single_selection(); - this.http_request('plugin.managesieve', - '_act=down&_fid='+this.filters_list.rows[id].uid, true); - }; - - rcube_webmail.prototype.managesieve_rowid = function(id) - { - var rows = this.filters_list.rows; - - for (var i=0; i<rows.length; i++) - if (rows[i] != null && rows[i].uid == id) - return i; - } - - rcube_webmail.prototype.managesieve_updatelist = function(action, name, id, disabled) - { - this.set_busy(true); - - switch (action) - { - case 'delete': - this.filters_list.remove_row(this.managesieve_rowid(id)); - this.filters_list.clear_selection(); - this.enable_command('plugin.managesieve-del', 'plugin.managesieve-up', 'plugin.managesieve-down', false); - this.show_contentframe(false); - - // re-numbering filters - var rows = this.filters_list.rows; - for (var i=0; i<rows.length; i++) - { - if (rows[i] != null && rows[i].uid > id) - rows[i].uid = rows[i].uid-1; - } - break; - - case 'down': - var rows = this.filters_list.rows; - var from, fromstatus, status; - - // we need only to replace filter names... - for (var i=0; i<rows.length; i++) - { - if (rows[i]==null) { // removed row - continue; - } else if (rows[i].uid == id) { - from = rows[i].obj; - fromstatus = $(from).hasClass('disabled'); - } else if (rows[i].uid == id+1){ - name = rows[i].obj.cells[0].innerHTML; - status = $(rows[i].obj).hasClass('disabled'); - rows[i].obj.cells[0].innerHTML = from.cells[0].innerHTML; - from.cells[0].innerHTML = name; - $(from)[status?'addClass':'removeClass']('disabled'); - $(rows[i].obj)[fromstatus?'addClass':'removeClass']('disabled'); - this.filters_list.highlight_row(i); - break; - } - } - // ... and disable/enable Down button - this.filters_listbuttons(); - break; - - case 'up': - var rows = this.filters_list.rows; - var from, status, fromstatus; - - // we need only to replace filter names... - for (var i=0; i<rows.length; i++) - { - if (rows[i]==null) { // removed row - continue; - } else if (rows[i].uid == id-1) { - from = rows[i].obj; - fromstatus = $(from).hasClass('disabled'); - this.filters_list.highlight_row(i); - } else if (rows[i].uid == id) { - name = rows[i].obj.cells[0].innerHTML; - status = $(rows[i].obj).hasClass('disabled'); - rows[i].obj.cells[0].innerHTML = from.cells[0].innerHTML; - from.cells[0].innerHTML = name; - $(from)[status?'addClass':'removeClass']('disabled'); - $(rows[i].obj)[fromstatus?'addClass':'removeClass']('disabled'); - break; - } - } - // ... and disable/enable Up button - this.filters_listbuttons(); - break; - - case 'update': - var rows = parent.rcmail.filters_list.rows; - for (var i=0; i<rows.length; i++) - if (rows[i] && rows[i].uid == id) - { - rows[i].obj.cells[0].innerHTML = name; - if (disabled) - $(rows[i].obj).addClass('disabled'); - else - $(rows[i].obj).removeClass('disabled'); - break; - } - break; - - case 'add': - var row, new_row, td; - var list = parent.rcmail.filters_list; - - if (!list) - break; - - for (var i=0; i<list.rows.length; i++) - if (list.rows[i] != null && String(list.rows[i].obj.id).match(/^rcmrow/)) - row = list.rows[i].obj; - - if (row) - { - new_row = parent.document.createElement('tr'); - new_row.id = 'rcmrow'+id; - td = parent.document.createElement('td'); - new_row.appendChild(td); - list.insert_row(new_row, false); - if (disabled) - $(new_row).addClass('disabled'); - - if (row.cells[0].className) - td.className = row.cells[0].className; - - td.innerHTML = name; - list.highlight_row(id); - - parent.rcmail.enable_command('plugin.managesieve-del', 'plugin.managesieve-up', true); - } - else // refresh whole page - parent.rcmail.goto_url('plugin.managesieve'); - break; - } - - this.set_busy(false); - - }; - - rcube_webmail.prototype.managesieve_select = function(list) - { - var id = list.get_single_selection(); - if (id != null) - this.load_managesieveframe(list.rows[id].uid); - }; - - rcube_webmail.prototype.managesieve_save = function() - { - if (parent.rcmail && parent.rcmail.filters_list && this.gui_objects.sieveform.name != 'filtersetform') - { - var id = parent.rcmail.filters_list.get_single_selection(); - if (id != null) - this.gui_objects.sieveform.elements['_fid'].value = parent.rcmail.filters_list.rows[id].uid; - } - this.gui_objects.sieveform.submit(); - }; - - // load filter frame - rcube_webmail.prototype.load_managesieveframe = function(id) - { - if (typeof(id) != 'undefined' && id != null) - { - this.enable_command('plugin.managesieve-del', true); - this.filters_listbuttons(); - } - else - this.enable_command('plugin.managesieve-up', 'plugin.managesieve-down', 'plugin.managesieve-del', false); - - if (this.env.contentframe && window.frames && window.frames[this.env.contentframe]) - { - target = window.frames[this.env.contentframe]; - this.set_busy(true, 'loading'); - target.location.href = this.env.comm_path+'&_action=plugin.managesieve&_framed=1&_fid='+id; - } - }; - - // enable/disable Up/Down buttons - rcube_webmail.prototype.filters_listbuttons = function() - { - var id = this.filters_list.get_single_selection(); - var rows = this.filters_list.rows; - - for (var i=0; i<rows.length; i++) - { - if (rows[i] == null) { // removed row - } else if (i == id) { - this.enable_command('plugin.managesieve-up', false); - break; - } else { - this.enable_command('plugin.managesieve-up', true); - break; - } - } - - for (var i=rows.length-1; i>0; i--) - { - if (rows[i] == null) { // removed row - } else if (i == id) { - this.enable_command('plugin.managesieve-down', false); - break; - } else { - this.enable_command('plugin.managesieve-down', true); - break; - } - } - }; - - // operations on filters form - rcube_webmail.prototype.managesieve_ruleadd = function(id) - { - this.http_post('plugin.managesieve', '_act=ruleadd&_rid='+id); - }; - - rcube_webmail.prototype.managesieve_rulefill = function(content, id, after) - { - if (content != '') - { - // create new element - var div = document.getElementById('rules'); - var row = document.createElement('div'); - - this.managesieve_insertrow(div, row, after); - // fill row after inserting (for IE) - row.setAttribute('id', 'rulerow'+id); - row.className = 'rulerow'; - row.innerHTML = content; - - this.managesieve_formbuttons(div); - } - }; - - rcube_webmail.prototype.managesieve_ruledel = function(id) - { - if (confirm(this.get_label('managesieve.ruledeleteconfirm'))) - { - var row = document.getElementById('rulerow'+id); - row.parentNode.removeChild(row); - this.managesieve_formbuttons(document.getElementById('rules')); - } - }; - - rcube_webmail.prototype.managesieve_actionadd = function(id) - { - this.http_post('plugin.managesieve', '_act=actionadd&_aid='+id); - }; - - rcube_webmail.prototype.managesieve_actionfill = function(content, id, after) - { - if (content != '') - { - var div = document.getElementById('actions'); - var row = document.createElement('div'); - - this.managesieve_insertrow(div, row, after); - // fill row after inserting (for IE) - row.className = 'actionrow'; - row.setAttribute('id', 'actionrow'+id); - row.innerHTML = content; - - this.managesieve_formbuttons(div); - } - }; - - rcube_webmail.prototype.managesieve_actiondel = function(id) - { - if (confirm(this.get_label('managesieve.actiondeleteconfirm'))) - { - var row = document.getElementById('actionrow'+id); - row.parentNode.removeChild(row); - this.managesieve_formbuttons(document.getElementById('actions')); - } - }; - - // insert rule/action row in specified place on the list - rcube_webmail.prototype.managesieve_insertrow = function(div, row, after) - { - for (var i=0; i<div.childNodes.length; i++) - { - if (div.childNodes[i].id == (div.id == 'rules' ? 'rulerow' : 'actionrow') + after) - break; - } - - if (div.childNodes[i+1]) - div.insertBefore(row, div.childNodes[i+1]); - else - div.appendChild(row); - } - - // update Delete buttons status - rcube_webmail.prototype.managesieve_formbuttons = function(div) - { - var buttons = new Array(); - var i, j=0; - // count and get buttons - for (i=0; i<div.childNodes.length; i++) - { - if (div.id == 'rules' && div.childNodes[i].id) - { - if (/rulerow/.test(div.childNodes[i].id)) - buttons.push('ruledel' + div.childNodes[i].id.replace(/rulerow/, '')); - } - else if (div.childNodes[i].id) - { - if (/actionrow/.test(div.childNodes[i].id)) - buttons.push( 'actiondel' + div.childNodes[i].id.replace(/actionrow/, '')); - } - } - - for (i=0; i<buttons.length; i++) - { - var button = document.getElementById(buttons[i]); - if (i>0 || buttons.length>1) - { - $(button).removeClass('disabled'); - button.removeAttribute('disabled'); - } - else - { - $(button).addClass('disabled'); - button.setAttribute('disabled', true); - } - } - } - - // Set change - rcube_webmail.prototype.managesieve_set = function() - { - var script = $(this.gui_objects.filtersetslist).val(); - location.href = this.env.comm_path+'&_action=plugin.managesieve&_sid='+script; - }; - - // Set activate - rcube_webmail.prototype.managesieve_setact = function() - { - if (!this.gui_objects.filtersetslist) - return false; - - var script = this.gui_objects.filtersetslist.value; - this.http_post('plugin.managesieve', '_act=setact&_set='+script); - }; - - // Set activate flag in sets list after set activation - rcube_webmail.prototype.managesieve_reset = function(name) - { - if (!this.gui_objects.filtersetslist || !name) - return false; - - var opts = this.gui_objects.filtersetslist.getElementsByTagName('option'); - var regx = new RegExp(RegExp.escape(' (' + this.get_label('managesieve.active') + ')')); - - for (var x=1; x<opts.length; x++) - if (opts[x].value != name && opts[x].innerHTML.match(regx)) - opts[x].innerHTML = opts[x].innerHTML.replace(regx, ''); - else if (opts[x].value == name) - opts[x].innerHTML = opts[x].innerHTML + ' (' + this.get_label('managesieve.active') + ')'; - }; - - // Set delete - rcube_webmail.prototype.managesieve_setdel = function() - { - if (!this.gui_objects.filtersetslist) - return false; - - if (!confirm(this.get_label('managesieve.setdeleteconfirm'))) - return false; - - var script = this.gui_objects.filtersetslist.value; - this.http_post('plugin.managesieve', '_act=setdel&_set='+script); - }; - - // Set add - rcube_webmail.prototype.managesieve_setadd = function() - { - this.filters_list.clear_selection(); - this.enable_command('plugin.managesieve-up', 'plugin.managesieve-down', 'plugin.managesieve-del', false); - - if (this.env.contentframe && window.frames && window.frames[this.env.contentframe]) - { - target = window.frames[this.env.contentframe]; - this.set_busy(true, 'loading'); - target.location.href = this.env.comm_path+'&_action=plugin.managesieve&_framed=1&_newset=1'; - } - }; - - - rcube_webmail.prototype.managesieve_reload = function(set) - { - this.env.reload_set = set; - window.setTimeout(function() { - location.href = rcmail.env.comm_path + '&_action=plugin.managesieve' - + (rcmail.env.reload_set ? '&_sid=' + rcmail.env.reload_set : '') - }, 500); - }; - -} |