From 53dc1ce31fd5cf19211b000f4eccfc73d7ba4a42 Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Wed, 18 Dec 2013 10:48:09 -0500 Subject: [PATCH] fix textarea/tinymce, add contact id to mention --- js/acl.js | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/js/acl.js b/js/acl.js index f258a29c73..76c2f4c195 100644 --- a/js/acl.js +++ b/js/acl.js @@ -34,11 +34,11 @@ function ACL(backend_url, preset){ that.get(0,100); } -ACL.prototype.remove_mention = function(nick) { - searchText = '@'+nick+ " "; - // 'editor' is defined in jot-header.tpl : false=plaintext, true:tinyMCE - if (editor==false) { - start = that.element.val().search(searchText); +ACL.prototype.remove_mention = function(id) { + var nick = that.data[id].nick; + var searchText = "@"+nick+"+"+id+" "; + if (tinyMCE.activeEditor===null) { + start = that.element.val().indexOf(searchText); if ( start<0) return; end = start+searchText.length; that.element.setSelection(start,end).replaceSelectedText('').collapseSelection(false); @@ -51,14 +51,15 @@ ACL.prototype.remove_mention = function(nick) { } } -ACL.prototype.add_mention = function(nick) { - // 'editor' is defined in jot-header.tpl : false=plaintext, true:tinyMCE - if (editor==false) { - if ( that.element.val().search( '@'+nick) >= 0 ) return; - that.element.val( "@"+nick+" " + that.element.val() ); +ACL.prototype.add_mention = function(id) { + var nick = that.data[id].nick; + var searchText = "@"+nick+"+"+id+" "; + if (tinyMCE.activeEditor===null) { + if ( that.element.val().indexOf( searchText) >= 0 ) return; + that.element.val( searchText + that.element.val() ); } else { - if ( tinyMCE.activeEditor.getContent({format : 'raw'}).search( '@'+nick) >= 0 ) return; - tinyMCE.activeEditor.dom.add(tinyMCE.activeEditor.getBody(), 'span', {}, '@'+nick+" "); + if ( tinyMCE.activeEditor.getContent({format : 'raw'}).search(searchText) >= 0 ) return; + tinyMCE.activeEditor.dom.add(tinyMCE.activeEditor.getBody(), 'span', {}, searchText); } } @@ -151,10 +152,10 @@ ACL.prototype.set_allow = function(itemid){ case "c": if (that.allow_cid.indexOf(id)<0){ that.allow_cid.push(id) - if (that.data[id].forum=="1") that.add_mention(that.data[id].nick); + if (that.data[id].forum=="1") that.add_mention(id); } else { that.allow_cid.remove(id); - if (that.data[id].forum=="1") that.remove_mention(that.data[id].nick); + if (that.data[id].forum=="1") that.remove_mention(id); } if (that.deny_cid.indexOf(id)>=0) that.deny_cid.remove(id); break; @@ -176,7 +177,7 @@ ACL.prototype.set_deny = function(itemid){ if (that.allow_gid.indexOf(id)>=0) that.allow_gid.remove(id); break; case "c": - if (that.data[id].forum=="1") that.remove_mention(that.data[id].nick); + if (that.data[id].forum=="1") that.remove_mention(id); if (that.deny_cid.indexOf(id)<0){ that.deny_cid.push(id) } else { @@ -188,9 +189,13 @@ ACL.prototype.set_deny = function(itemid){ that.update_view(); } +ACL.prototype.is_show_all = function() { + return (that.allow_gid.length==0 && that.allow_cid.length==0 && + that.deny_gid.length==0 && that.deny_cid.length==0); +} + ACL.prototype.update_view = function(){ - if (that.allow_gid.length==0 && that.allow_cid.length==0 && - that.deny_gid.length==0 && that.deny_cid.length==0){ + if (this.is_show_all()){ that.showall.addClass("selected"); /* jot acl */ $('#jot-perms-icon').removeClass('lock').addClass('unlock'); -- 2.39.5