]> git.mxchange.org Git - friendica.git/blobdiff - view/js/main.js
Merge pull request #9275 from nupplaphil/task/9235-issue_template
[friendica.git] / view / js / main.js
index 0718ea3ca70370cd585e25a9257dc352a9f3e014..35a0529a0e0e7e118c71befc5a635a6c28349bfc 100644 (file)
@@ -134,6 +134,7 @@ var commentBusy = false;
 var last_popup_menu = null;
 var last_popup_button = null;
 var lockLoadContent = false;
+var originalTitle = document.title;
 
 const urlRegex = /^(?:https?:\/\/|\s)[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})(?:\/+[a-z0-9_.:;-]*)*(?:\?[&%|+a-z0-9_=,.:;-]*)?(?:[&%|+&a-z0-9_=,:;.-]*)(?:[!#\/&%|+a-z0-9_=,:;.-]*)}*$/i;
 
@@ -242,6 +243,13 @@ $(function() {
                        window.location.href=window.location.href
                }
 
+               let tabNotifications = data.mail + data.notification;
+               if (tabNotifications > 0) {
+                       document.title = '(' + tabNotifications + ') ' + originalTitle;
+               } else {
+                       document.title = originalTitle;
+               }
+
                ['net', 'home', 'intro', 'mail', 'events', 'birthdays', 'notification'].forEach(function(type) {
                        var number = data[type];
                        if (number == 0) {
@@ -586,15 +594,17 @@ function liveUpdate(src) {
 
        in_progress = true;
 
-       if ($(document).scrollTop() == 0) {
-               force_update = true;
-       }
+       let force = force_update || $(document).scrollTop() === 0;
 
        var orgHeight = $("section").height();
 
        var udargs = ((netargs.length) ? '/' + netargs : '');
 
-       var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&force=' + ((force_update) ? 1 : 0) + '&item=' + update_item;
+       var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&force=' + (force ? 1 : 0) + '&item=' + update_item;
+
+       if (force_update) {
+               force_update = false;
+       }
 
        if (getUrlParameter('page')) {
                update_url += '&page=' + getUrlParameter('page');
@@ -606,9 +616,8 @@ function liveUpdate(src) {
                update_url += '&max_id=' + getUrlParameter('max_id');
        }
 
-       $.get(update_url,function(data) {
+       $.get(update_url, function(data) {
                in_progress = false;
-               force_update = false;
                update_item = 0;
 
                $('.wall-item-body', data).imagesLoaded(function() {
@@ -640,9 +649,15 @@ function imgdull(node) {
 // trickery. This still could cause confusion if the "like" ajax call
 // is delayed and NavUpdate runs before it completes.
 
-function dolike(ident,verb) {
+/**
+ * @param {int}     ident The id of the relevant item
+ * @param {string}  verb  The verb of the action
+ * @param {boolean} un    Whether to perform an activity removal instead of creation
+ */
+function dolike(ident, verb, un) {
        unpause();
        $('#like-rotator-' + ident.toString()).show();
+       verb = un ? 'un' + verb : verb;
        $.get('like/' + ident.toString() + '?verb=' + verb, NavUpdate);
        liking = 1;
        force_update = true;
@@ -735,26 +750,23 @@ function getPosition(e) {
 
 var lockvisible = false;
 
-function lockview(event,id) {
+function lockview(event, type, id) {
        event = event || window.event;
        cursor = getPosition(event);
        if (lockvisible) {
-               lockviewhide();
+               lockvisible = false;
+               $('#panel').hide();
        } else {
                lockvisible = true;
-               $.get('lockview/' + id, function(data) {
-                       $('#panel').html(data);
-                       $('#panel').css({'left': cursor.x + 5 , 'top': cursor.y + 5});
-                       $('#panel').show();
+               $.get('permission/tooltip/' + type + '/' + id, function(data) {
+                       $('#panel')
+                               .html(data)
+                               .css({'left': cursor.x + 5 , 'top': cursor.y + 5})
+                               .show();
                });
        }
 }
 
-function lockviewhide() {
-       lockvisible = false;
-       $('#panel').hide();
-}
-
 function post_comment(id) {
        unpause();
        commentBusy = true;
@@ -847,10 +859,6 @@ function loadScrollContent() {
 
        $("#scroll-loader").fadeIn('normal');
 
-       // the page number to load is one higher than the actual
-       // page number
-       infinite_scroll.pageno+=1;
-
        match = $("span.received").last();
        if (match.length > 0) {
                received = match[0].innerHTML;
@@ -872,16 +880,16 @@ function loadScrollContent() {
                commented = "0000-00-00 00:00:00";
        }
 
-       match = $("span.id").last();
+       match = $("span.uriid").last();
        if (match.length > 0) {
-               id = match[0].innerHTML;
+               uriid = match[0].innerHTML;
        } else {
-               id = "0";
+               uriid = "0";
        }
 
        // get the raw content from the next page and insert this content
        // right before "#conversation-end"
-       $.get(infinite_scroll.reload_uri + '&mode=raw&last_received=' + received + '&last_commented=' + commented + '&last_created=' + created + '&last_id=' + id + '&page=' + infinite_scroll.pageno, function(data) {
+       $.get(infinite_scroll.reload_uri + '&mode=raw&last_received=' + received + '&last_commented=' + commented + '&last_created=' + created + '&last_uriid=' + uriid, function(data) {
                $("#scroll-loader").hide();
                if ($(data).length > 0) {
                        $(data).insertBefore('#conversation-end');
@@ -925,14 +933,6 @@ function groupChangeMember(gid, cid, sec_token) {
        });
 }
 
-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');
-       });
-}
-
 function contactgroupChangeMember(checkbox, gid, cid) {
        let url;
        // checkbox.checked is the checkbox state after the click