]> git.mxchange.org Git - friendica.git/blobdiff - js/acl.js
Bugfix: Warning because of undefined constant
[friendica.git] / js / acl.js
index f258a29c736e49a32ebddb3a2289c4464397de53..487ffafc770032578f1437bd84db44e9b39c77c8 100644 (file)
--- a/js/acl.js
+++ b/js/acl.js
@@ -1,7 +1,8 @@
-function ACL(backend_url, preset){
+function ACL(backend_url, preset, automention){
        that = this;
        
        that.url = backend_url;
+       that.automention = automention;
        
        that.kp_timer = null;
        
@@ -21,8 +22,8 @@ function ACL(backend_url, preset){
        
        /*events*/
        that.showall.click(that.on_showall);
-       $(".acl-button-show").live('click', that.on_button_show);
-       $(".acl-button-hide").live('click', that.on_button_hide);
+       $(document).on("click", ".acl-button-show", that.on_button_show);
+       $(document).on("click", ".acl-button-hide", that.on_button_hide);
        $("#acl-search").keypress(that.on_search);
        $("#acl-wrapper").parents("form").submit(that.on_submit);
        
@@ -34,11 +35,12 @@ 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) {
+       if (!that.automention) return;
+       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 +53,16 @@ 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) {
+       if (!that.automention) return;
+       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(), 'dummy', {}, searchText);
        }
 }
 
@@ -151,10 +155,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 +180,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 +192,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');