]> git.mxchange.org Git - friendica.git/blobdiff - view/js/main.js
Merge pull request #13794 from annando/simplified-group-display
[friendica.git] / view / js / main.js
index 1e051de8357660040b6ebee597bdcb0c78369ac7..0da6c1df1065dc29ce71010bdc082cc552a94148 100644 (file)
@@ -166,7 +166,7 @@ $(function() {
 
        /* event from comment textarea button popups */
        /* insert returned bbcode at cursor position or replace selected text */
-       $("body").on("fbrowser.image.comment", function(e, filename, bbcode, id) {
+       $('body').on('fbrowser.photo.comment', function(e, filename, bbcode, id) {
                $.colorbox.close();
                var textarea = document.getElementById("comment-edit-text-" +id);
                var start = textarea.selectionStart;
@@ -239,7 +239,6 @@ $(function() {
        });
 
        /* 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());
@@ -290,18 +289,18 @@ $(function() {
 
                $('#mail-update-li').html(mail);
 
-               $(".sidebar-group-li .notify").removeClass("show");
-               $(data.groups).each(function(key, group) {
-                       var gid = group.id;
-                       var gcount = group.count;
-                       $(".group-"+gid+" .notify").addClass("show").text(gcount);
+               $(".sidebar-circle-li .notify").removeClass("show");
+               $(data.circles).each(function(key, circle) {
+                       var gid = circle.id;
+                       var gcount = circle.count;
+                       $(".circle-"+gid+" .notify").addClass("show").text(gcount);
                });
 
-               $(".forum-widget-entry .notify").removeClass("show");
-               $(data.forums).each(function(key, forum) {
-                       var fid = forum.id;
-                       var fcount = forum.count;
-                       $(".forum-"+fid+" .notify").addClass("show").text(fcount);
+               $(".group-widget-entry .notify").removeClass("show");
+               $(data.groups).each(function(key, group) {
+                       var fid = group.id;
+                       var fcount = group.count;
+                       $(".group-"+fid+" .notify").addClass("show").text(fcount);
                });
 
                if (data.notifications.length == 0) {
@@ -315,34 +314,20 @@ $(function() {
                        var notification_id = 0;
 
                        // Insert notifs into the notifications-menu
-                       $(data.notifications).each(function(key, notification) {
-                               var text = notification.message.format('<span class="contactname">' + notification.name + '</span>');
-                               var contact = ('<a href="' + notification.url + '"><span class="contactname">' + notification.name + '</span></a>');
-                               var seenclass = (notification.seen == 1) ? "notification-seen" : "notification-unseen";
-                               var html = notifications_tpl.format(
-                                       notification.href,                     // {0}  // link to the source
-                                       notification.photo,                    // {1}  // photo of the contact
-                                       text,                           // {2}  // preformatted text (autor + text)
-                                       notification.date,                     // {3}  // date of notification (time ago)
-                                       seenclass,                      // {4}  // visited status of the notification
-                                       new Date(notification.timestamp*1000), // {5}  // date of notification
-                                       notification.url,                      // {6}  // profile url of the contact
-                                       notification.message.format(contact),  // {7}  // preformatted html (text including author profile url)
-                                       ''                              // {8}  // Deprecated
-                               );
-                               nnm.append(html);
+                       $(data.notifications).each(function(key, navNotif) {
+                               nnm.append(navNotif.html);
                        });
 
                        // Desktop Notifications
-                       $(data.notifications.reverse()).each(function(key, e) {
-                               notification_id = parseInt(e.timestamp);
-                               if (notification_lastitem !== null && notification_id > notification_lastitem && Number(e.seen) === 0) {
+                       $(data.notifications.reverse()).each(function(key, navNotif) {
+                               notification_id = parseInt(navNotif.timestamp);
+                               if (notification_lastitem !== null && notification_id > notification_lastitem && Number(navNotif.seen) === 0) {
                                        if (getNotificationPermission() === "granted") {
                                                var notification = new Notification(document.title, {
-                                                                                 body: decodeHtml(e.message.replace('&rarr; ', '').format(e.name)),
-                                                                                 icon: e.photo,
-                                                                               });
-                                               notification['url'] = e.href;
+                                                       body: decodeHtml(navNotif.plaintext),
+                                                       icon: navNotif.contact.photo,
+                                               });
+                                               notification['url'] = navNotif.href;
                                                notification.addEventListener("click", function(ev) {
                                                        window.location = ev.target.url;
                                                });
@@ -393,16 +378,10 @@ $(function() {
 
        // Allow folks to stop the ajax page updates with the pause/break key
        $(document).keydown(function(event) {
-               if (event.keyCode == '8') {
-                       var target = event.target || event.srcElement;
-                       if (!/input|textarea/i.test(target.nodeName)) {
-                               return false;
-                       }
-               }
-
-               if (event.keyCode == '19' || (event.ctrlKey && event.which == '32')) {
+               // Pause/Break or Ctrl + Space
+               if (event.which === 19 || (!event.shiftKey && !event.altKey && event.ctrlKey && event.which === 32)) {
                        event.preventDefault();
-                       if (stopped == false) {
+                       if (stopped === false) {
                                stopped = true;
                                if (event.ctrlKey) {
                                        totStopped = true;
@@ -514,14 +493,14 @@ function insertBBCodeInTextarea(BBCode, textarea) {
 
 function NavUpdate() {
        if (!stopped) {
-               var pingCmd = 'ping?format=json' + ((localUser != 0) ? '&uid=' + localUser : '');
+               var pingCmd = 'ping';
                $.get(pingCmd, function(data) {
                        if (data.result) {
                                // send nav-update event
                                $('nav').trigger('nav-update', data.result);
 
                                // start live update
-                               ['network', 'profile', 'community', 'notes', 'display', 'contact'].forEach(function (src) {
+                               ['network', 'profile', 'channel', 'community', 'notes', 'display', 'contact'].forEach(function (src) {
                                        if ($('#live-' + src).length) {
                                                liveUpdate(src);
                                        }
@@ -623,6 +602,26 @@ function liveUpdate(src) {
                update_url += '&max_id=' + getUrlParameter('max_id');
        }
 
+       match = $("span.received").first();
+       if (match.length > 0) {
+               update_url += '&first_received=' + match[0].innerHTML;
+       }
+
+       match = $("span.created").first();
+       if (match.length > 0) {
+               update_url += '&first_created=' + match[0].innerHTML;
+       }
+
+       match = $("span.commented").first();
+       if (match.length > 0) {
+               update_url += '&first_commented=' + match[0].innerHTML;
+       }
+
+       match = $("span.uriid").first();
+       if (match.length > 0) {
+               update_url += '&first_uriid=' + match[0].innerHTML;
+       }
+
        $.get(update_url, function(data) {
                in_progress = false;
                update_item = 0;
@@ -642,6 +641,11 @@ function liveUpdate(src) {
        });
 }
 
+function updateItem(itemNo) {
+       force_update = true;
+       update_item = itemNo;   
+}
+
 function imgbright(node) {
        $(node).removeClass("drophide").addClass("drop");
 }
@@ -675,28 +679,35 @@ function doActivityItem(ident, verb, un) {
        update_item = ident.toString();
 }
 
-function dosubthread(ident) {
+function doFollowThread(ident) {
        unpause();
        $('#like-rotator-' + ident.toString()).show();
-       $.get('subthread/' + ident.toString(), NavUpdate);
+       $.post('item/' + ident.toString() + '/follow', NavUpdate);
        liking = 1;
+       force_update = true;
+       update_item = ident.toString();
 }
 
-function dostar(ident) {
+function doStar(ident) {
        ident = ident.toString();
        $('#like-rotator-' + ident).show();
-       $.get('starred/' + ident, function(data) {
-               if (data.match(/1/)) {
-                       $('#starred-' + ident).addClass('starred');
-                       $('#starred-' + ident).removeClass('unstarred');
+       $.post('item/' + ident + '/star')
+       .then(function(data) {
+               if (data.state === 1) {
+                       $('#starred-' + ident)
+                               .addClass('starred')
+                               .removeClass('unstarred');
                        $('#star-' + ident).addClass('hidden');
                        $('#unstar-' + ident).removeClass('hidden');
                } else {
-                       $('#starred-' + ident).addClass('unstarred');
-                       $('#starred-' + ident).removeClass('starred');
+                       $('#starred-' + ident)
+                               .addClass('unstarred')
+                               .removeClass('starred');
                        $('#star-' + ident).removeClass('hidden');
                        $('#unstar-' + ident).addClass('hidden');
                }
+       })
+       .always(function () {
                $('#like-rotator-' + ident).hide();
        });
 }
@@ -725,11 +736,11 @@ function doPin(ident) {
        });
 }
 
-function doignore(ident) {
+function doIgnoreThread(ident) {
        ident = ident.toString();
        $('#like-rotator-' + ident).show();
-       $.get('item/ignore/' + ident, function(data) {
-               if (data === 1) {
+       $.post('item/' + ident + '/ignore', function(data) {
+               if (data.state === 1) {
                        $('#ignored-' + ident)
                                .addClass('ignored')
                                .removeClass('unignored');
@@ -954,21 +965,21 @@ function bin2hex(s) {
        return a.join('');
 }
 
-function groupChangeMember(gid, cid, sec_token) {
+function circleChangeMember(gid, cid, sec_token) {
        $('body .fakelink').css('cursor', 'wait');
-       $.get('group/' + gid + '/' + cid + "?t=" + sec_token, function(data) {
-                       $('#group-update-wrapper').html(data);
+       $.get('circle/' + gid + '/' + cid + "?t=" + sec_token, function(data) {
+                       $('#circle-update-wrapper').html(data);
                        $('body .fakelink').css('cursor', 'auto');
        });
 }
 
-function contactgroupChangeMember(checkbox, gid, cid) {
+function contactCircleChangeMember(checkbox, gid, cid) {
        let url;
        // checkbox.checked is the checkbox state after the click
        if (checkbox.checked) {
-               url = 'group/' + gid + '/add/' + cid;
+               url = 'circle/' + gid + '/add/' + cid;
        } else {
-               url = 'group/' + gid + '/remove/' + cid;
+               url = 'circle/' + gid + '/remove/' + cid;
        }
        $('body').css('cursor', 'wait');
        $.post(url)
@@ -1077,7 +1088,7 @@ var Dialog = {
         * to the event handler
         */
        doImageBrowser : function (name, id) {
-               var url = Dialog._get_url("image",name,id);
+               var url = Dialog._get_url('photo', name, id);
                return Dialog.show(url);
        },
 
@@ -1094,7 +1105,7 @@ var Dialog = {
         * to the event handler
         */
        doFileBrowser : function (name, id) {
-               var url = Dialog._get_url("file",name,id);
+               var url = Dialog._get_url('attachment', name, id);
                return Dialog.show(url);
        },
 
@@ -1103,7 +1114,7 @@ var Dialog = {
                if (id !== undefined) {
                        hash = hash + "-" + id;
                }
-               return baseurl + "/fbrowser/"+type+"/?mode=minimal#"+hash;
+               return 'media/' + type + '/browser?mode=minimal#' + hash;
        },
 
        _get_size: function() {