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');
});
// 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)),
}
});
+ // 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){