X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=js%2Facl.js;h=1ed354bbfaa75e0d4cb08e4c5ff18e3a0dbaf449;hb=da4b08fc4a3e98451d4265ace66a409e39a06402;hp=3c96d134694146068d800641406238ed2dc5141f;hpb=92007a1438b8be0bef2c6d72c1e2cc288e7b23ff;p=friendica.git diff --git a/js/acl.js b/js/acl.js index 3c96d13469..1ed354bbfa 100644 --- a/js/acl.js +++ b/js/acl.js @@ -1,12 +1,12 @@ function ACL(backend_url, preset, automention, is_mobile){ - + this.url = backend_url; this.automention = automention; this.is_mobile = is_mobile; - - + + this.kp_timer = null; - + if (preset==undefined) preset = []; this.allow_cid = (preset[0] || []); this.allow_gid = (preset[1] || []); @@ -19,74 +19,83 @@ function ACL(backend_url, preset, automention, is_mobile){ } else { this.nw = 4; } - - + + this.list_content = $("#acl-list-content"); this.item_tpl = unescape($(".acl-list-item[rel=acl-template]").html()); this.showall = $("#acl-showall"); if (preset.length==0) this.showall.addClass("selected"); - + /*events*/ this.showall.click(this.on_showall.bind(this)); $(document).on("click", ".acl-button-show", this.on_button_show.bind(this)); $(document).on("click", ".acl-button-hide", this.on_button_hide.bind(this)); $("#acl-search").keypress(this.on_search.bind(this)); $("#acl-wrapper").parents("form").submit(this.on_submit.bind(this)); - + /* add/remove mentions */ this.element = $("#profile-jot-text"); this.htmlelm = this.element.get()[0]; - + /* startup! */ this.get(0,100); } ACL.prototype.remove_mention = function(id) { - if (!this.automention) return; + if (!this.automention) { + return; + } var nick = this.data[id].nick; - var searchText = "@"+nick+"+"+id+" "; - if (tinyMCE.activeEditor===null) { - start = this.element.val().indexOf(searchText); - if ( start<0) return; - end = start+searchText.length; - this.element.setSelection(start,end).replaceSelectedText('').collapseSelection(false); + var addr = this.data[id].addr; + + if (addr != "") { + var searchText = "@" + addr + " "; } else { - start = tinyMCE.activeEditor.getContent({format : 'raw'}).search( searchText ); - if ( start<0 ) return; - txt = tinyMCE.activeEditor.getContent(); - newtxt = txt.replace(searchText, ''); - tinyMCE.activeEditor.setContent(newtxt); + var searchText = "@" + nick + "+" + id + " "; + } + + var start = this.element.val().indexOf(searchText); + if (start < 0) { + return; } + var end = start + searchText.length; + this.element.setSelection(start, end).replaceSelectedText('').collapseSelection(false); } ACL.prototype.add_mention = function(id) { - if (!this.automention) return; + if (!this.automention) { + return; + } var nick = this.data[id].nick; - var searchText = "@"+nick+"+"+id+" "; - if (tinyMCE.activeEditor===null) { - if ( this.element.val().indexOf( searchText) >= 0 ) return; - this.element.val( searchText + this.element.val() ); + var addr = this.data[id].addr; + + if (addr != "") { + var searchText = "@" + addr + " "; } else { - if ( tinyMCE.activeEditor.getContent({format : 'raw'}).search(searchText) >= 0 ) return; - tinyMCE.activeEditor.dom.add(tinyMCE.activeEditor.getBody(), 'dummy', {}, searchText); + var searchText = "@" + nick + "+" + id + " "; } + + if (this.element.val().indexOf( searchText) >= 0 ) { + return; + } + this.element.val(searchText + this.element.val()).trigger('change'); } ACL.prototype.on_submit = function(){ - aclfileds = $("#acl-fields").html(""); + var aclfields = $("#acl-fields").html(""); $(this.allow_gid).each(function(i,v){ - aclfileds.append(""); + aclfields.append(""); }); $(this.allow_cid).each(function(i,v){ - aclfileds.append(""); + aclfields.append(""); }); $(this.deny_gid).each(function(i,v){ - aclfileds.append(""); + aclfields.append(""); }); $(this.deny_cid).each(function(i,v){ - aclfileds.append(""); - }); + aclfields.append(""); + }); } ACL.prototype.search = function(){ @@ -103,19 +112,19 @@ ACL.prototype.on_search = function(event){ ACL.prototype.on_showall = function(event){ event.preventDefault() event.stopPropagation(); - + if (this.showall.hasClass("selected")){ return false; } this.showall.addClass("selected"); - + this.allow_cid = []; this.allow_gid = []; this.deny_cid = []; this.deny_gid = []; - + this.update_view(); - + return false; } @@ -123,7 +132,7 @@ ACL.prototype.on_button_show = function(event){ event.preventDefault() event.stopImmediatePropagation() event.stopPropagation(); - + this.set_allow($(event.target).parent().attr('id')); return false; @@ -141,7 +150,7 @@ ACL.prototype.on_button_hide = function(event){ ACL.prototype.set_allow = function(itemid){ type = itemid[0]; id = parseInt(itemid.substr(1)); - + switch(type){ case "g": if (this.allow_gid.indexOf(id)<0){ @@ -159,7 +168,7 @@ ACL.prototype.set_allow = function(itemid){ this.allow_cid.remove(id); if (this.data[id].forum=="1") this.remove_mention(id); } - if (this.deny_cid.indexOf(id)>=0) this.deny_cid.remove(id); + if (this.deny_cid.indexOf(id)>=0) this.deny_cid.remove(id); break; } this.update_view(); @@ -168,7 +177,7 @@ ACL.prototype.set_allow = function(itemid){ ACL.prototype.set_deny = function(itemid){ type = itemid[0]; id = parseInt(itemid.substr(1)); - + switch(type){ case "g": if (this.deny_gid.indexOf(id)<0){ @@ -202,31 +211,31 @@ ACL.prototype.update_view = function(){ /* jot acl */ $('#jot-perms-icon').removeClass('lock').addClass('unlock'); $('#jot-public').show(); - $('.profile-jot-net input').attr('disabled', false); + $('.profile-jot-net input').attr('disabled', false); if(typeof editor != 'undefined' && editor != false) { $('#profile-jot-desc').html(ispublic); } - + } else { this.showall.removeClass("selected"); /* jot acl */ $('#jot-perms-icon').removeClass('unlock').addClass('lock'); $('#jot-public').hide(); - $('.profile-jot-net input').attr('disabled', 'disabled'); + $('.profile-jot-net input').attr('disabled', 'disabled'); $('#profile-jot-desc').html(' '); } $("#acl-list-content .acl-list-item").each(function(){ $(this).removeClass("groupshow grouphide"); }); - + $("#acl-list-content .acl-list-item").each(function(index, element){ itemid = $(element).attr('id'); type = itemid[0]; id = parseInt(itemid.substr(1)); - + btshow = $(element).children(".acl-button-show").removeClass("selected"); - bthide = $(element).children(".acl-button-hide").removeClass("selected"); - + bthide = $(element).children(".acl-button-hide").removeClass("selected"); + switch(type){ case "g": var uclass = ""; @@ -240,7 +249,7 @@ ACL.prototype.update_view = function(){ bthide.addClass("selected"); uclass="grouphide"; } - + $(this.group_uids[id]).each(function(i,v) { if(uclass == "grouphide") $("#c"+v).removeClass("groupshow"); @@ -253,7 +262,7 @@ ACL.prototype.update_view = function(){ $("#c"+v).addClass(uclass); } }); - + break; case "c": if (this.allow_cid.indexOf(id)>=0){ @@ -263,11 +272,11 @@ ACL.prototype.update_view = function(){ if (this.deny_cid.indexOf(id)>=0){ btshow.removeClass("selected"); bthide.addClass("selected"); - } + } } - + }.bind(this)); - + } @@ -277,7 +286,7 @@ ACL.prototype.get = function(start,count, search){ count:count, search:search, } - + $.ajax({ type:'POST', url: this.url, @@ -291,11 +300,16 @@ ACL.prototype.populate = function(data){ var height = Math.ceil(data.tot / this.nw) * 42; this.list_content.height(height); this.data = {}; - $(data.items).each(function(index, item){ - html = "
"+this.item_tpl+"
"; - html = html.format(item.photo, item.name, item.type, item.id, (item.forum=='1'?'forum':''), item.network, item.link); - if (item.uids!=undefined) this.group_uids[item.id] = item.uids; - + $(data.items).each(function(index, item) { + if (item.separator != undefined) { + html = "
"; + } else { + html = "
"+this.item_tpl+"
"; + html = html.format(item.photo, item.name, item.type, item.id, (item.forum=='1'?'forum':''), item.network, item.link); + if (item.uids != undefined) { + this.group_uids[item.id] = item.uids; + } + } this.list_content.append(html); this.data[item.id] = item; }.bind(this)); @@ -303,7 +317,7 @@ ACL.prototype.populate = function(data){ // Add src attribute for images with a data-src attribute $(el).attr('src', $(el).data("src")); }); - + this.update_view(); }