X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=js%2Fmain.js;h=5df33ed590c8f0000286cf86144c3c10697b89a7;hb=887e309e8568b4ffa27f5fc6abf1ea67d1fbf5bb;hp=f6e1cc11507286be8b0efb7334a0584eece83b1a;hpb=1a05efb026308611033d23d43032adaa70d62ebd;p=friendica.git diff --git a/js/main.js b/js/main.js index f6e1cc1150..5df33ed590 100644 --- a/js/main.js +++ b/js/main.js @@ -101,6 +101,7 @@ var start = textarea.selectionStart; var end = textarea.selectionEnd; textarea.value = textarea.value.substring(0, start) + bbcode + textarea.value.substring(end, textarea.value.length); + $(textarea).trigger('change'); }); @@ -249,7 +250,7 @@ // Desktop Notifications $(data.notifications.reverse()).each(function(key, e){ notification_id = parseInt(e.timestamp); - if (notification_lastitem !== null && notification_id > notification_lastitem && !e.seen) { + if (notification_lastitem !== null && notification_id > notification_lastitem && Number(e.seen) === 0) { if (getNotificationPermission() === "granted") { var notification = new Notification(document.title, { body: decodeHtml(e.message.replace('→ ', '').format(e.name)), @@ -322,6 +323,30 @@ } }); + // Scroll to the next/previous thread when pressing J and K + $(document).keydown(function (event) { + var threads = $('.thread_level_1'); + if ((event.keyCode === 74 || event.keyCode === 75) && !$(event.target).is('textarea, input')) { + var scrollTop = $(window).scrollTop(); + if (event.keyCode === 75) { + threads = $(threads.get().reverse()); + } + threads.each(function(key, item) { + var comparison; + var top = $(item).offset().top - 100; + if (event.keyCode === 74) { + comparison = top > scrollTop + 1; + } else if (event.keyCode === 75) { + comparison = top < scrollTop - 1; + } + if (comparison) { + $('html, body').animate({ scrollTop: top }, 200); + return false; + } + }); + } + }); + // Set an event listener for infinite scroll if(typeof infinite_scroll !== 'undefined') { $(window).scroll(function(e){