You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

acl.min.js 6.3KB

123456789101112131415
  1. window.rcmail&&rcmail.addEventListener("init",function(){if(rcmail.gui_objects.acltable&&(rcmail.acl_list_init(),rcmail.env.acl_users_source)){var a=rcmail.is_framed()?parent.rcmail:rcmail;a.init_address_input_events($("#acluser"),{action:"settings/plugin.acl-autocomplete"});a.set_env({autocomplete_max:rcmail.env.autocomplete_max,autocomplete_min_length:rcmail.env.autocomplete_min_length});a.add_label("autocompletechars",rcmail.labels.autocompletechars);a.add_label("autocompletemore",rcmail.labels.autocompletemore);
  2. a.addEventListener("autocomplete_insert",function(a){"acluser"==a.field.id&&(a.field.value=a.insert.replace(/[ ,;]+$/,""))})}rcmail.enable_command("acl-create","acl-save","acl-cancel","acl-mode-switch",!0);rcmail.enable_command("acl-delete","acl-edit",!1);rcmail.env.acl_advanced&&$("#acl-switch").addClass("selected")});rcube_webmail.prototype.acl_create=function(){this.acl_init_form()};rcube_webmail.prototype.acl_edit=function(){var a=this.acl_list.get_single_selection();a&&this.acl_init_form(a)};
  3. rcube_webmail.prototype.acl_delete=function(){var a=this.acl_get_usernames();a&&a.length&&confirm(this.get_label("acl.deleteconfirm"))&&this.http_post("settings/plugin.acl",{_act:"delete",_user:a.join(","),_mbox:this.env.mailbox},this.set_busy(!0,"acl.deleting"))};
  4. rcube_webmail.prototype.acl_save=function(){var a,c="",b=$("#acluser",this.acl_form).val();$(this.env.acl_advanced?"#advancedrights :checkbox":"#simplerights :checkbox",this.acl_form).map(function(){this.checked&&(c+=this.value)});(a=$("input:checked[name=usertype]",this.acl_form).val())&&"user"!=a&&(b=a);b?c?(a={_act:"save",_user:b,_acl:c,_mbox:this.env.mailbox},this.acl_id&&(a._old=this.acl_id),this.http_post("settings/plugin.acl",a,this.set_busy(!0,"acl.saving"))):alert(this.get_label("acl.norights")):
  5. alert(this.get_label("acl.nouser"))};rcube_webmail.prototype.acl_cancel=function(){this.ksearch_blur();this.acl_popup.dialog("close")};rcube_webmail.prototype.acl_update=function(a){a.old?this.acl_remove_row(a.old):this.env.acl[a.id]&&this.acl_remove_row(a.id);this.acl_add_row(a,!0);this.ksearch_blur();this.acl_popup.dialog("close")};
  6. rcube_webmail.prototype.acl_mode_switch=function(a){this.env.acl_advanced=!this.env.acl_advanced;this.enable_command("acl-delete","acl-edit",!1);this.http_request("settings/plugin.acl","_act=list&_mode="+(this.env.acl_advanced?"advanced":"simple")+"&_mbox="+urlencode(this.env.mailbox),this.set_busy(!0,"loading"))};
  7. rcube_webmail.prototype.acl_list_init=function(){var a=this.env.acl_advanced?"addClass":"removeClass";$("#acl-switch")[a]("selected");$(this.gui_objects.acltable)[a]("advanced");this.acl_list=new rcube_list_widget(this.gui_objects.acltable,{multiselect:!0,draggable:!1,keyboard:!0});this.acl_list.addEventListener("select",function(a){rcmail.acl_list_select(a)}).addEventListener("dblclick",function(a){rcmail.acl_list_dblclick(a)}).addEventListener("keypress",function(a){rcmail.acl_list_keypress(a)}).init()};
  8. rcube_webmail.prototype.acl_list_select=function(a){rcmail.enable_command("acl-delete",0<a.selection.length);rcmail.enable_command("acl-edit",1==a.selection.length);a.focus()};rcube_webmail.prototype.acl_list_dblclick=function(a){this.acl_edit()};rcube_webmail.prototype.acl_list_keypress=function(a){if(a.key_pressed==a.ENTER_KEY)this.command("acl-edit");else if(a.key_pressed==a.DELETE_KEY||a.key_pressed==a.BACKSPACE_KEY)this.acl_form&&this.acl_form.is(":visible")||this.command("acl-delete")};
  9. rcube_webmail.prototype.acl_list_update=function(a){$(this.gui_objects.acltable).html(a);this.acl_list_init()};rcube_webmail.prototype.acl_get_usernames=function(){var a=[],c,b,d=this.acl_list,e=d.get_selection();var g=0;for(c=e.length;g<c;g++)if(this.env.acl_specials.length&&0<=$.inArray(e[g],this.env.acl_specials))a.push(e[g]);else if(b=d.rows[e[g]])b=$("td.user",b.obj),1==b.length&&a.push(b.text());return a};
  10. rcube_webmail.prototype.acl_remove_row=function(a){var c=this.acl_list;c.remove_row(a);c.clear_selection();$("#rcmrow"+a).remove();this.env.acl[a]=null;this.enable_command("acl-delete",0<c.selection.length);this.enable_command("acl-edit",1==c.selection.length)};
  11. rcube_webmail.prototype.acl_add_row=function(a,c){var b=[];var d=[];var e=a.id,g=this.acl_list,h=this.env.acl_advanced?[]:this.env.acl_items,k=$("thead > tr",this.gui_objects.acltable).clone();$("th",k).map(function(){var b=$("<td>"),c=$(this).attr("title"),d=this.className.replace(/^acl/,"");c&&b.attr("title",c);h&&h[d]&&(d=h[d]);"user"==d?b.addClass(d).append($("<a>").text(a.username)):b.addClass(this.className+" "+rcmail.acl_class(a.acl,d)).text("");$(this).replaceWith(b)});k.attr("id","rcmrow"+
  12. e);k=k.get(0);this.env.acl[e]=a.acl;for(f in this.env.acl)this.env.acl[f]&&(this.env.acl_specials.length&&0<=$.inArray(f,this.env.acl_specials)?d.push(f):b.push(f));b.sort();b=d.concat(b);var f=0;for(d=b.length;f<d&&b[f]!=e;f++);f&&f<d?($("#rcmrow"+b[f-1]).after(k),g.init_row(k),g.rowcount++):g.insert_row(k);c&&g.select_row(a.id)};
  13. rcube_webmail.prototype.acl_init_form=function(a){var c,b,d="",e="user",g=$("body");var h=$("#advancedrights");var k=$("#simplerights"),f=$("#acluser"),n=$("#usertype");if(!this.acl_form){var m=function(){$('input[value="user"]').prop("checked",!0)};f.click(m).keypress(m)}this.acl_form=$("#aclform");this.env.acl_advanced?(h.show(),k.hide()):(k.show(),h.hide(),h=k);h=$(":checkbox",h);h.attr("checked",!1);a&&(c=this.acl_list.rows[a])?(c=c.obj,h.map(function(){b=$("td."+this.id,c);b.length&&b.hasClass("enabled")&&
  14. (this.checked=!0)}),!this.env.acl_specials.length||0>$.inArray(a,this.env.acl_specials)?d=$("td.user",c).text():e=a):h.filter(function(){return this.id.match(/^acl([lrs]|read)$/)}).prop("checked",!0);f.val(d);$("input[value="+e+"]").prop("checked",!0);this.acl_id=a;d={};var l=this;g=document.body;d[this.get_label("save")]=function(a){l.command("acl-save")};d[this.get_label("cancel")]=function(a){l.command("acl-cancel")};this.acl_popup=this.show_popup_dialog(this.acl_form.show(),a?this.get_label("acl.editperms"):
  15. this.get_label("acl.newuser"),d,{button_classes:["mainaction"],modal:!0,closeOnEscape:!0,close:function(a,b){(l.is_framed()?parent.rcmail:l).ksearch_hide();l.acl_form.appendTo(g).hide();$(this).remove();window.focus()}});"user"==e?f.focus():$("input:checked",n).focus()};rcube_webmail.prototype.acl_class=function(a,c){var b,d=0;a=String(a);c=String(c);var e=0;for(b=c.length;e<b;e++)-1<a.indexOf(c[e])&&d++;return d==b?"enabled":d?"partial":"disabled"};