]> git.mxchange.org Git - friendica.git/blobdiff - include/main.js
Merge pull request #116 from fabrixxm/admin
[friendica.git] / include / main.js
index 0fe20955d3bd19e5d1277d3a4dfff3c63631a33b..3cc6079778812cc69564a6dc9f9e29b00390ebfe 100644 (file)
        var pr = 0;
        var liking = 0;
        var in_progress = false;
+       var langSelect = false;
+       var commentBusy = false;
 
-       $(document).ready(function() {
+       $(function() {
                $.ajaxSetup({cache: false});
+
                msie = $.browser.msie ;
+               
+               
+               /* nav update event  */
+               $('nav').bind('nav-update', function(e,data){;
+                       var net = $(data).find('net').text();
+                       if(net == 0) { net = ''; $('#net-update').hide() } else { $('#net-update').show() }
+                       $('#net-update').html(net);
+                       var home = $(data).find('home').text();
+                       if(home == 0) { home = '';  $('#home-update').hide() } else { $('#home-update').show() }
+                       $('#home-update').html(home);
+                       var mail = $(data).find('mail').text();
+                       if(mail == 0) { mail = '';  $('#mail-update').hide() } else { $('#mail-update').show() }
+                       $('#mail-update').html(mail);
+                       var intro = $(data).find('intro').text();
+                       var register = $(data).find('register').text();
+                       if(intro == 0) { intro = ''; }
+                       if(register != 0 && intro != '') { intro = intro+'/'+register; }
+                       if(register != 0 && intro == '') { intro = '0/'+register; }
+                       if (intro == '') { $('#notify-update').hide() } else { $('#notify-update').show() }
+                       $('#notify-update').html(intro);
+               });
+               
+               
                NavUpdate(); 
                // Allow folks to stop the ajax page updates with the pause/break key
                $(document).keypress(function(event) {
                if(! stopped) {
                        $.get("ping",function(data) {
                                $(data).find('result').each(function() {
-                                       var net = $(this).find('net').text();
-                                       if(net == 0) { net = ''; }
-                                       $('#net-update').html(net);
-                                       var home = $(this).find('home').text();
-                                       if(home == 0) { home = ''; }
-                                       $('#home-update').html(home);
-                                       var mail = $(this).find('mail').text();
-                                       if(mail == 0) { mail = ''; }
-                                       $('#mail-update').html(mail);
-                                       var intro = $(this).find('intro').text();
-                                       var register = $(this).find('register').text();
-                                       if(intro == 0) { intro = ''; }
-                                       if(register != 0 && intro != '') { intro = intro+'/'+register; }
-                                       if(register != 0 && intro == '') { intro = '0/'+register; }
-                                       $('#notify-update').html(intro);
-
+                                       // send nav-update event
+                                       $('nav').trigger('nav-update', this);
                                });
                        }) ;
                }
                timer = setTimeout(NavUpdate,30000);
-
        }
 
        function liveUpdate() {
                prev = 'live-' + src;
 
                in_progress = true;
-               $.get('update_' + src + '?p=' + profile_uid + '&msie=' + ((msie) ? 1 : 0),function(data) {
+               var udargs = ((netargs.length) ? '/' + netargs : '');
+               var update_url = 'update_' + src + udargs + '?p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0);
+
+               $.get(update_url,function(data) {
                        in_progress = false;
+                       $('.ccollapse-wrapper',data).each(function() {
+                               var ident = $(this).attr('id');
+                               var is_hidden = $('#' + ident).is(':hidden');
+                               if($('#' + ident).length) {
+                                       $('#' + ident).replaceWith($(this));
+                                       if(is_hidden)
+                                               $('#' + ident).hide();
+                               }
+                       });
                        $('.wall-item-outside-wrapper',data).each(function() {
                                var ident = $(this).attr('id');
-                               if($('#' + ident).length == 0) { 
-                                        $('img',this).each(function() {
-                                                $(this).attr('src',$(this).attr('dst'));
-                                        });
+                               if($('#' + ident).length == 0) {
+                                       $('img',this).each(function() {
+                                               $(this).attr('src',$(this).attr('dst'));
+                                       });
                                        $('#' + prev).after($(this));
                                }
                                else { 
                                        $('#' + ident + ' ' + '.wall-item-comment-wrapper').replaceWith($(this).find('.wall-item-comment-wrapper'));
                                        $('#' + ident + ' ' + '.wall-item-like').replaceWith($(this).find('.wall-item-like'));
                                        $('#' + ident + ' ' + '.wall-item-dislike').replaceWith($(this).find('.wall-item-dislike'));
-                                        $('#' + ident + ' ' + '.my-comment-photo').each(function() {
-                                                $(this).attr('src',$(this).attr('dst'));
-                                        });
-
-
+                                       $('#' + ident + ' ' + '.my-comment-photo').each(function() {
+                                               $(this).attr('src',$(this).attr('dst'));
+                                       });
                                }
                                prev = ident; 
                        });
                        $('.like-rotator').hide();
+                       if(commentBusy) {
+                               commentBusy = false;
+                               $('body').css('cursor', 'auto');
+                       }
                });
-
        }
 
        function imgbright(node) {
-               $(node).attr("src",$(node).attr("src").replace('hide','show'));
-               $(node).css('width',24);
-               $(node).css('height',24);
+               $(node).removeClass("drophide").addClass("drop");
        }
 
        function imgdull(node) {
-               $(node).attr("src",$(node).attr("src").replace('show','hide'));
-               $(node).css('width',16);
-               $(node).css('height',16);
+               $(node).removeClass("drop").addClass("drophide");
        }
 
        // Since our ajax calls are asynchronous, we will give a few 
                $('#panel').hide();
        }
 
+       function post_comment(id) {
+               commentBusy = true;
+               $('body').css('cursor', 'wait');
+               $.post(  
+             "item",  
+             $("#comment-edit-form-" + id).serialize(),
+                       function(data) {
+                               if(data.success) {
+                                       $("#comment-edit-wrapper-" + id).hide();
+                                       $("#comment-edit-text-" + id).val('');
+                               var tarea = document.getElementById("comment-edit-text-" + id);
+                                       if(tarea)
+                                               commentClose(tarea,id);
+                                       if(timer) clearTimeout(timer);
+                                       timer = setTimeout(NavUpdate,10);
+                               }
+                               if(data.reload) {
+                                       window.location.href=data.reload;
+                               }
+                       },
+                       "json"  
+         );  
+         return false;  
+       }
+
+
+    function bin2hex(s){  
+        // Converts the binary representation of data to hex    
+        //   
+        // version: 812.316  
+        // discuss at: http://phpjs.org/functions/bin2hex  
+        // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)  
+        // +   bugfixed by: Onno Marsman  
+        // +   bugfixed by: Linuxworld  
+        // *     example 1: bin2hex('Kev');  
+        // *     returns 1: '4b6576'  
+        // *     example 2: bin2hex(String.fromCharCode(0x00));  
+        // *     returns 2: '00'  
+        var v,i, f = 0, a = [];  
+        s += '';  
+        f = s.length;  
+          
+        for (i = 0; i<f; i++) {  
+            a[i] = s.charCodeAt(i).toString(16).replace(/^([\da-f])$/,"0$1");  
+        }  
+          
+        return a.join('');  
+    }  
+
+       function groupChangeMember(gid,cid) {
+               $('body .fakelink').css('cursor', 'wait');
+               $.get('group/' + gid + '/' + cid, function(data) {
+                               $('#group-update-wrapper').html(data);
+                               $('body .fakelink').css('cursor', 'auto');                              
+               });
+       }
+
+       function profChangeMember(gid,cid) {
+               $('body .fakelink').css('cursor', 'wait');
+               $.get('profperm/' + gid + '/' + cid, function(data) {
+                               $('#prof-update-wrapper').html(data);
+                               $('body .fakelink').css('cursor', 'auto');                              
+               });
+       }
+
+/** 
+ * sprintf in javascript 
+ *     "{0} and {1}".format('zero','uno'); 
+ **/
+String.prototype.format = function() {
+    var formatted = this;
+    for (var i = 0; i < arguments.length; i++) {
+        var regexp = new RegExp('\\{'+i+'\\}', 'gi');
+        formatted = formatted.replace(regexp, arguments[i]);
+    }
+    return formatted;
+};