From 4611633231167fe2f7ef7b2e157a288ce4ec986c Mon Sep 17 00:00:00 2001 From: Zankaria Date: Thu, 5 Sep 2024 15:14:11 +0200 Subject: [PATCH] inline-expanding.js: format --- js/inline-expanding.js | 119 ++++++++++++++++++++++------------------- 1 file changed, 64 insertions(+), 55 deletions(-) diff --git a/js/inline-expanding.js b/js/inline-expanding.js index 8a6c6a1b..41625d2d 100644 --- a/js/inline-expanding.js +++ b/js/inline-expanding.js @@ -9,31 +9,31 @@ * Usage: * $config['additional_javascript'][] = 'js/jquery.min.js'; * $config['additional_javascript'][] = 'js/inline-expanding.js'; - * */ -$(document).ready(function(){ +$(document).ready(function() { 'use strict'; - var DEFAULT_MAX = 5; // default maximum image loads - var inline_expand_post = function() { - var link = this.getElementsByTagName('a'); + // Default maximum image loads. + const DEFAULT_MAX = 5; - var loadingQueue = (function () { - var MAX_IMAGES = localStorage.inline_expand_max || DEFAULT_MAX; // maximum number of images to load concurrently, 0 to disable - var loading = 0; // number of images that is currently loading - var waiting = []; // waiting queue + let inline_expand_post = function() { + let link = this.getElementsByTagName('a'); - var enqueue = function (ele) { + let loadingQueue = (function() { + let MAX_IMAGES = localStorage.inline_expand_max || DEFAULT_MAX; // Maximum number of images to load concurrently, 0 to disable. + let loading = 0; // Number of images that is currently loading. + let waiting = []; // Waiting queue. + + let enqueue = function(ele) { waiting.push(ele); }; - var dequeue = function () { + let dequeue = function() { return waiting.shift(); }; - var update = function() { - var ele; + let update = function() { while (loading < MAX_IMAGES || MAX_IMAGES === 0) { - ele = dequeue(); + let ele = dequeue(); if (ele) { ++loading; ele.deferred.resolve(); @@ -43,8 +43,8 @@ $(document).ready(function(){ } }; return { - remove: function (ele) { - var i = waiting.indexOf(ele); + remove: function(ele) { + let i = waiting.indexOf(ele); if (i > -1) { waiting.splice(i, 1); } @@ -54,14 +54,14 @@ $(document).ready(function(){ --loading; } }, - add: function (ele) { + add: function(ele) { ele.deferred = $.Deferred(); ele.deferred.done(function () { - var $loadstart = $.Deferred(); - var thumb = ele.childNodes[0]; - var img = ele.childNodes[1]; + let $loadstart = $.Deferred(); + let thumb = ele.childNodes[0]; + let img = ele.childNodes[1]; - var onLoadStart = function (img) { + let onLoadStart = function (img) { if (img.naturalWidth) { $loadstart.resolve(img, thumb); } else { @@ -71,7 +71,7 @@ $(document).ready(function(){ $(img).one('load', function () { $.when($loadstart).done(function () { - // once fully loaded, update the waiting queue + // Once fully loaded, update the waiting queue. --loading; $(ele).data('imageLoading', 'false'); update(); @@ -93,36 +93,37 @@ $(document).ready(function(){ } else { enqueue(ele); } - } }; })(); - for (var i = 0; i < link.length; i++) { + for (let i = 0; i < link.length; i++) { if (typeof link[i] == "object" && link[i].childNodes && typeof link[i].childNodes[0] !== 'undefined' && link[i].childNodes[0].src && link[i].childNodes[0].className.match(/post-image/) && !link[i].className.match(/file/) && - !link[i].href.match("\\.(pdf|djvu|djv)$") ) { + !link[i].href.match("\\.(pdf|djvu|djv)$")) { link[i].onclick = function(e) { - var img, post_body, still_open, canvas, scroll; - var thumb = this.childNodes[0]; - var padding = 5; - var boardlist = $('.boardlist')[0]; - + let thumb = this.childNodes[0]; + let padding = 5; + let boardlist = $('.boardlist')[0]; - if (thumb.className == 'hidden') + + if (thumb.className == 'hidden') { return false; - if (e.which == 2 || e.ctrlKey) // open in new tab + } + if (e.which == 2 || e.ctrlKey) { + // Open in new tab. return true; + } if (!$(this).data('expanded')) { - - if (~this.parentNode.className.indexOf('multifile')) + if (~this.parentNode.className.indexOf('multifile')) { $(this).data('width', this.parentNode.style.width); + } this.parentNode.removeAttribute('style'); $(this).data('expanded', 'true'); if (thumb.tagName === 'CANVAS') { - canvas = thumb; + let canvas = thumb; thumb = thumb.nextSibling; this.removeChild(canvas); canvas.style.display = 'block'; @@ -131,7 +132,7 @@ $(document).ready(function(){ thumb.style.opacity = '0.4'; thumb.style.filter = 'alpha(opacity=40)'; - img = document.createElement('img'); + let img = document.createElement('img'); img.className = 'full-image'; img.style.display = 'none'; img.setAttribute('alt', 'Fullsized image'); @@ -141,41 +142,48 @@ $(document).ready(function(){ } else { loadingQueue.remove(this); - scroll = false; + let scroll = false; - // scroll to thumb if not triggered by 'shrink all image' + // Scroll to thumb if not triggered by 'shrink all image'. if (e.target.className == 'full-image') { scroll = true; } - if (~this.parentNode.className.indexOf('multifile')) + if (~this.parentNode.className.indexOf('multifile')) { this.parentNode.style.width = $(this).data('width'); + } thumb.style.opacity = ''; thumb.style.display = ''; - if (thumb.nextSibling) this.removeChild(thumb.nextSibling); //full image loaded or loading + if (thumb.nextSibling) { + // Full image loaded or loading. + this.removeChild(thumb.nextSibling); + } $(this).removeData('expanded'); delete thumb.style.filter; - // do the scrolling after page reflow + // Do the scrolling after page reflow. if (scroll) { - post_body = $(thumb).parentsUntil('form > div').last(); + let post_body = $(thumb).parentsUntil('form > div').last(); - // on multifile posts, determin how many other images are still expanded - still_open = post_body.find('.post-image').filter(function(){ + // On multifile posts, determine how many other images are still expanded. + let still_open = post_body.find('.post-image').filter(function() { return $(this).parent().data('expanded') == 'true'; }).length; - // deal with differnt boards' menu styles - if ($(boardlist).css('position') == 'fixed') + // Deal with different boards menu styles. + if ($(boardlist).css('position') == 'fixed') { padding += boardlist.getBoundingClientRect().height; + } if (still_open > 0) { - if (thumb.getBoundingClientRect().top - padding < 0) + if (thumb.getBoundingClientRect().top - padding < 0) { $(document).scrollTop($(thumb).parent().parent().offset().top - padding); + } } else { - if (post_body[0].getBoundingClientRect().top - padding < 0) + if (post_body[0].getBoundingClientRect().top - padding < 0) { $(document).scrollTop(post_body.offset().top - padding); + } } } @@ -189,17 +197,18 @@ $(document).ready(function(){ } }; - // setting up user option + // Setting up user option. if (window.Options && Options.get_tab('general')) { - Options.extend_tab('general', ''+ _('Number of simultaneous image downloads (0 to disable): ') + - ''); + Options.extend_tab('general', '' + + _('Number of simultaneous image downloads (0 to disable): ') + + ''); $('#inline-expand-max input') .css('width', '50px') .val(localStorage.inline_expand_max || DEFAULT_MAX) .on('change', function (e) { - // validation in case some fucktard tries to enter a negative floating point number - var n = parseInt(e.target.value); - var val = (n<0) ? 0 : n; + // Validation in case some fucktard tries to enter a negative floating point number. + let n = parseInt(e.target.value); + let val = (n < 0) ? 0 : n; localStorage.inline_expand_max = val; }); @@ -208,7 +217,7 @@ $(document).ready(function(){ if (window.jQuery) { $('div[id^="thread_"]').each(inline_expand_post); - // allow to work with auto-reload.js, etc. + // Allow to work with auto-reload.js, etc. $(document).on('new_post', function(e, post) { inline_expand_post.call(post); });