]> git.mxchange.org Git - friendica.git/blobdiff - js/main.js
Merge pull request #109 from beardy-unixer/6ae5962b009cfd88925eae721e24bf895e8b78d5
[friendica.git] / js / main.js
old mode 100644 (file)
new mode 100755 (executable)
index 7993306..c20455a
       document.getElementById(theID).style.display = "none" 
   }
 
-       
        var src = null;
        var prev = null;
        var livetime = null;
        var msie = false;
        var stopped = false;
+       var totStopped = false;
        var timer = null;
        var pr = 0;
        var liking = 0;
@@ -42,7 +42,7 @@
                        if (e.hasClass("ttbottom")) pos="bottom";
                        if (e.hasClass("ttleft")) pos="left";
                        if (e.hasClass("ttright")) pos="right";
-                       e.tipTip({defaultPosition: pos});
+                       e.tipTip({defaultPosition: pos, edgeOffset: 8});
                });
                
                
                        return false;
                });
                
+               // fancyboxes
+               $("a.popupbox").fancybox({
+                       'transitionIn' : 'elastic',
+                       'transitionOut' : 'elastic'
+               });
                
 
                /* notifications template */
                var notifications_tpl= unescape($("#nav-notifications-template[rel=template]").html());
+               var notifications_all = unescape($('<div>').append( $("#nav-notifications-see-all").clone() ).html()); //outerHtml hack
+               var notifications_mark = unescape($('<div>').append( $("#nav-notifications-mark-all").clone() ).html()); //outerHtml hack
                var notifications_empty = unescape($("#nav-notifications-menu").html());
                
                /* nav update event  */
                        if(home == 0) { home = '';  $('#home-update').removeClass('show') } else { $('#home-update').addClass('show') }
                        $('#home-update').html(home);
 
+
+                       var intro = $(data).find('intro').text();
+                       if(intro == 0) { intro = '';  $('#intro-update').removeClass('show') } else { $('#intro-update').addClass('show') }
+                       $('#intro-update').html(intro);
+
+                       var mail = $(data).find('mail').text();
+                       if(mail == 0) { mail = '';  $('#mail-update').removeClass('show') } else { $('#mail-update').addClass('show') }
+                       $('#mail-update').html(mail);
+
                        var eNotif = $(data).find('notif')
                        notif = eNotif.attr('count');
-                       if (notif>0){
+                       if (notif>=0){
                                $("#nav-notifications-linkmenu").addClass("on");
                                nnm = $("#nav-notifications-menu");
                                
-                               //nnm.html("");
-                               nnm.html("<li><a href='/notifications/network'>Show All Notifications</a></li>");
+                               nnm.html(notifications_all + notifications_mark);
                                
                                //nnm.attr('popup','true');
                                eNotif.children("note").each(function(){
                                        e = $(this);
                                        text = e.text().format("<span class='contactname'>"+e.attr('name')+"</span>");
-                                       html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'));
+                                       html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'), e.attr('seen'));
                                        nnm.append(html);
                                });
                                
                        } else {
-                               $("#nav-notifications-linkmenu").removeClass("on");
-                               $("#nav-notifications-menu").html(notifications_empty);
+                               //                              $("#nav-notifications-linkmenu").removeClass("on");
+                               //              $("#nav-notifications-menu").html(notifications_empty);
                        }
                        if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') }
                        $('#notify-update').html(notif);
                        });
                        eSysmsg.children("info").each(function(){
                                text = $(this).text();
-                               $.jGrowl(text, { sticky: false, theme: 'info' });
+                               $.jGrowl(text, { sticky: false, theme: 'info', life: 10000 });
                        });
                        
                });
                
                NavUpdate(); 
                // Allow folks to stop the ajax page updates with the pause/break key
-               $(document).keypress(function(event) {
-                       if(event.keyCode == '19') {
+               $(document).keydown(function(event) {
+                       if(event.keyCode == '19' || (event.ctrlKey && event.which == '32')) {
                                event.preventDefault();
                                if(stopped == false) {
                                        stopped = true;
+                                       if (event.ctrlKey) {
+                                               totStopped = true;
+                                       }
                                        $('#pause').html('<img src="images/pause.gif" alt="pause" style="border: 1px solid black;" />');
+                               } else {
+                                       unpause();
                                }
-                               else {
-                                       stopped = false;
-                                       $('#pause').html('');
-                               }
-                       }
-                       else {
-                               // any key to resume
-                               if(stopped == true) {
-                                       stopped = false;
-                                       $('#pause').html('');
+                       } else {
+                               if (!totStopped) {
+                                       unpause();
                                }
                        }
-
-               });                                     
+               });
+               
+               
        });
 
        function NavUpdate() {
 
-               if($('#live-network').length)   { src = 'network'; liveUpdate(); }
-               if($('#live-profile').length)   { src = 'profile'; liveUpdate(); }
-               if($('#live-community').length) { src = 'community'; liveUpdate(); }
-               if($('#live-notes').length)     { src = 'notes'; liveUpdate(); }
-               if($('#live-display').length) { 
-                       if(liking) {
-                               liking = 0;
-                               window.location.href=window.location.href 
-                       }
-               }
-               if($('#live-photos').length)  { 
-                       if(liking) {
-                               liking = 0;
-                               window.location.href=window.location.href 
-                       }
-               }
-
                if(! stopped) {
                        $.get("ping",function(data) {
                                $(data).find('result').each(function() {
                                        // send nav-update event
                                        $('nav').trigger('nav-update', this);
+                                       
+                                       
+                                       // start live update
+
+                                       if($('#live-network').length)   { src = 'network'; liveUpdate(); }
+                                       if($('#live-profile').length)   { src = 'profile'; liveUpdate(); }
+                                       if($('#live-community').length) { src = 'community'; liveUpdate(); }
+                                       if($('#live-notes').length)     { src = 'notes'; liveUpdate(); }
+                                       if($('#live-display').length) {
+                                               if(liking) {
+                                                       liking = 0;
+                                                       window.location.href=window.location.href 
+                                               }
+                                       }
+                                       if($('#live-photos').length) { 
+                                               if(liking) {
+                                                       liking = 0;
+                                                       window.location.href=window.location.href 
+                                               }
+                                       }
+
+                                       
+                                       
+                                       
                                });
                        }) ;
                }
-               timer = setTimeout(NavUpdate,30000);
+               timer = setTimeout(NavUpdate,updateInterval);
        }
 
        function liveUpdate() {
                if((src == null) || (stopped) || (! profile_uid)) { $('.like-rotator').hide(); return; }
                if(($('.comment-edit-text-full').length) || (in_progress)) {
+                       if(livetime) {
+                               clearTimeout(livetime);
+                       }
                        livetime = setTimeout(liveUpdate, 10000);
                        return;
                }
+               if(livetime != null)
+                       livetime = null;
+
                prev = 'live-' + src;
 
                in_progress = true;
 
                $.get(update_url,function(data) {
                        in_progress = false;
-                       $('.ccollapse-wrapper',data).each(function() {
+                       //                      $('.collapsed-comments',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();
+                       //      }
+                       //});
+
+                       // add a new thread
+
+                       $('.tread-wrapper',data).each(function() {
                                var ident = $(this).attr('id');
-                               var is_hidden = $('#' + ident).is(':hidden');
-                               if($('#' + ident).length) {
+
+                               if($('#' + ident).length == 0 && profile_page == 1) {
+                                       $('img',this).each(function() {
+                                               $(this).attr('src',$(this).attr('dst'));
+                                       });
+                                       $('#' + prev).after($(this));
+                               }
+                               else {
+                                       $('img',this).each(function() {
+                                               $(this).attr('src',$(this).attr('dst'));
+                                       });
                                        $('#' + ident).replaceWith($(this));
-                                       if(is_hidden)
-                                               $('#' + ident).hide();
                                }
+                               prev = ident;
                        });
+
+                       // reset vars for inserting individual items
+
+                       /*                      prev = 'live-' + src;
+
                        $('.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'));
-                                       });
-                                       $('#' + prev).after($(this));
+
+                               if($('#' + ident).length == 0 && prev != 'live-' + src) {
+                                               $('img',this).each(function() {
+                                                       $(this).attr('src',$(this).attr('dst'));
+                                               });
+                                               $('#' + prev).after($(this));
                                }
                                else { 
-
                                        $('#' + ident + ' ' + '.wall-item-ago').replaceWith($(this).find('.wall-item-ago')); 
                                        if($('#' + ident + ' ' + '.comment-edit-text-empty').length)
                                                $('#' + ident + ' ' + '.wall-item-comment-wrapper').replaceWith($(this).find('.wall-item-comment-wrapper'));
+                                       $('#' + ident + ' ' + '.hide-comments-total').replaceWith($(this).find('.hide-comments-total'));
                                        $('#' + 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() {
                                }
                                prev = ident; 
                        });
+                       */
                        $('.like-rotator').hide();
                        if(commentBusy) {
                                commentBusy = false;
                                $('body').css('cursor', 'auto');
                        }
+                       /* autocomplete @nicknames */
+                       $(".comment-edit-form  textarea").contact_autocomplete(baseurl+"/acl");
                });
        }
 
        // is delayed and NavUpdate runs before it completes.
 
        function dolike(ident,verb) {
+               unpause();
                $('#like-rotator-' + ident.toString()).show();
                $.get('like/' + ident.toString() + '?verb=' + verb );
                if(timer) clearTimeout(timer);
        }
 
        function post_comment(id) {
+               unpause();
                commentBusy = true;
                $('body').css('cursor', 'wait');
+               $("#comment-preview-inp-" + id).val("0");
                $.post(  
              "item",  
              $("#comment-edit-form-" + id).serialize(),
        }
 
 
+       function preview_comment(id) {
+               $("#comment-preview-inp-" + id).val("1");
+               $("#comment-edit-preview-" + id).show();
+               $.post(  
+             "item",  
+             $("#comment-edit-form-" + id).serialize(),
+                       function(data) {
+                               if(data.preview) {
+                                               
+                                       $("#comment-edit-preview-" + id).html(data.preview);
+                                       $("#comment-edit-preview-" + id + " a").click(function() { return false; });
+                               }
+                       },
+                       "json"  
+         );  
+         return true;  
+       }
+
+
+
+       function preview_post() {
+               $("#jot-preview").val("1");
+               $("#jot-preview-content").show();
+               tinyMCE.triggerSave();
+               $.post(  
+                       "item",  
+                       $("#profile-jot-form").serialize(),
+                       function(data) {
+                               if(data.preview) {                      
+                                       $("#jot-preview-content").html(data.preview);
+                                       $("#jot-preview-content" + " a").click(function() { return false; });
+                               }
+                       },
+                       "json"  
+               );  
+               $("#jot-preview").val("0");
+               return true;  
+       }
+
+
+       function unpause() {
+               // unpause auto reloads if they are currently stopped
+               totStopped = false;
+               stopped = false;
+           $('#pause').html('');
+       }
+               
+
     function bin2hex(s){  
         // Converts the binary representation of data to hex    
         //   
@@ -411,6 +519,14 @@ function checkboxhighlight(box) {
   }
 }
 
+function notifyMarkAll() {
+       $.get('notify/mark/all', function(data) {
+               if(timer) clearTimeout(timer);
+               timer = setTimeout(NavUpdate,1000);
+       });
+}
+
+
 function setupFieldRichtext(){
        tinyMCE.init({
                theme : "advanced",
@@ -436,6 +552,7 @@ function setupFieldRichtext(){
        });
 }
 
+
 /** 
  * sprintf in javascript 
  *     "{0} and {1}".format('zero','uno');