diff options
| author | yo momma <shutup@oops.wtf> | 2026-02-03 02:19:19 +0000 |
|---|---|---|
| committer | yo momma <shutup@oops.wtf> | 2026-02-03 02:19:19 +0000 |
| commit | 8004c1fc7957397577f51a409ec2c504c81d7e85 (patch) | |
| tree | 299f62c7512e45d491dc282784031a770f04abad /static | |
| parent | c69b6626358052f175543cad0daa3f4aa54046b8 (diff) | |
Refactor main pages: extract inline JS
Diffstat (limited to 'static')
| -rw-r--r-- | static/js/pages/frontpage_refresh.js | 11 | ||||
| -rw-r--r-- | static/js/pages/fullscreen_front_init.js | 18 | ||||
| -rw-r--r-- | static/js/pages/fullscreen_init.js | 55 | ||||
| -rw-r--r-- | static/js/pages/log_init.js | 58 |
4 files changed, 142 insertions, 0 deletions
diff --git a/static/js/pages/frontpage_refresh.js b/static/js/pages/frontpage_refresh.js new file mode 100644 index 0000000..aa31cc2 --- /dev/null +++ b/static/js/pages/frontpage_refresh.js @@ -0,0 +1,11 @@ +// Frontpage-only helper. +// The legacy frontpage HTML calls `refreshing()` via <body onload="refreshing()">. + +if (typeof window.refreshing !== 'function') { + window.refreshing = function refreshing() { + var el = document.getElementsByName('posts')[0]; + if (el) { el.src = el.src; } + setTimeout(refreshing, 300000); + }; +} + diff --git a/static/js/pages/fullscreen_front_init.js b/static/js/pages/fullscreen_front_init.js new file mode 100644 index 0000000..a1a87a5 --- /dev/null +++ b/static/js/pages/fullscreen_front_init.js @@ -0,0 +1,18 @@ +// Shared initializer for fullscreen feed pages. +// Keeps template inline JS mostly data-only (LoggedIn, Timestamp). + +(function($){ + function defaultPop(url) { + var newwindow = window.open( + url, + 'name', + 'height=50,width=400,left=20,top=20,location=0,status=0,scrollbar=0,resizable=0' + ); + if (window.focus && newwindow) { newwindow.focus(); } + return newwindow; + } + + if (typeof window.pop !== 'function') { window.pop = defaultPop; } + + if (typeof window.startChatUpdater === 'function') { $(window.startChatUpdater); } +})(jQuery); diff --git a/static/js/pages/fullscreen_init.js b/static/js/pages/fullscreen_init.js new file mode 100644 index 0000000..a7f8bb7 --- /dev/null +++ b/static/js/pages/fullscreen_init.js @@ -0,0 +1,55 @@ +// Initializer for `/fullscreen` (login/register overlays + fullscreen feed). +// Goal: reduce template inline JS without changing behavior. + +(function($){ + function choice(a) { return a[Math.floor(Math.random() * a.length)]; } + + function defaultPop(url) { + var newwindow = window.open( + url, + 'name', + 'height=50,width=400,left=20,top=20,location=0,status=0,scrollbar=0,resizable=0' + ); + if (window.focus && newwindow) { newwindow.focus(); } + return newwindow; + } + + if (typeof window.pop !== 'function') { window.pop = defaultPop; } + + var urls = [ + 'https://archive.hump.fm/images/20100601/1275428508049-dumpfm-foot-oie_oie_overlay-1.gif', + 'https://archive.hump.fm/images/20100928/1285728674225-dumpfm-timb-running.unicorn.gif', + 'https://archive.hump.fm/images/20100726/1280119193796-dumpfm-enso-human-condition.gif', + 'https://archive.hump.fm/images/20100521/1274415795577-dumpfm-ucnv-mx.gif', + 'https://archive.hump.fm/images/20100912/1284315873224-dumpfm-Neontoast-1283990707508-dumpfm-crunkus-crabtoon.gif', + 'https://archive.hump.fm/images/20110927/1317105622918-dumpfm-peachfist-test8scam.gif', + 'https://archive.hump.fm/images/20110323/1300915179773-dumpfm-blingscience-fishtank.gif', + 'https://archive.hump.fm/images/20110418/1303108538834-dumpfm-LAVARLAMAR-lettuce_lavarlamar.gif', + 'https://s3.amazonaws.com/i.asdf.us/im/84/gradient_horse_1318306378_1322355741_ryz_1337322355_ryz.gif', + 'https://archive.hump.fm/images/20110724/1311552093462-dumpfm-hologrampa-1291586335941-dumpfm-jeeeelings-cat_face_wink_hologrampa-lettuce.gif', + 'https://s3.amazonaws.com/i.asdf.us/im/be/tt7620731fltt_1315431978.gif' + ]; + + // Legacy behavior: register these on DOM-ready (historically done via `jQuery(initLogin)`). + if (typeof window.initLogin === 'function') { $(window.initLogin); } + if (typeof window.startChatUpdater === 'function') { $(window.startChatUpdater); } + + if (window.location && window.location.href.indexOf('nologin') !== -1) { + $('#loginbox').hide(); + } + + var bigImage = document.getElementById('big-image'); + if (bigImage) { bigImage.innerHTML = "<img src='" + choice(urls) + "'>"; } + + if (typeof window.initFullscreen === 'function') { window.initFullscreen(); } + if (typeof window.initRegister === 'function') { window.initRegister(); } + + $('#reglink').click(function(e){ + e.preventDefault(); + $('#loginbox').hide(); + $('#registerbox').show().addClass('b'); + return false; + }); + + $('#nickInput').focus(); +})(jQuery); diff --git a/static/js/pages/log_init.js b/static/js/pages/log_init.js new file mode 100644 index 0000000..93d27b0 --- /dev/null +++ b/static/js/pages/log_init.js @@ -0,0 +1,58 @@ +// Shared initializer for log-like pages (frontpage/log views) that include pichat.js. +// Keeps templates mostly data-only (Recips, MasonryColumnWidth). + +(function($){ + function initLogIfPresent() { + if (typeof window.Recips === 'undefined') { window.Recips = []; } + if (typeof window.initLog === 'function') { window.initLog(window.Recips); } + } + + function initMasonryIfPresent() { + var $posts = $('#posts'); + if (!$posts.length) { return; } + if (typeof $posts.masonry !== 'function') { return; } + + var colWidth = typeof window.MasonryColumnWidth !== 'undefined' ? window.MasonryColumnWidth : 275; + + $posts.masonry({ columnWidth: colWidth }); + $posts.masonry({ singleMode: true }); + $posts.masonry({ resizeable: true }); + $posts.masonry({ animate: true }); + } + + $(initLogIfPresent); + $(window).load(initMasonryIfPresent); +})(jQuery); + +if (typeof window.images_loading_bar !== 'function') { + window.images_loading_bar = function images_loading_bar() { + try { + var imgs = document.getElementsByTagName('img'); + var total = imgs.length; + + if (!total) { + var lb0 = document.getElementById('LB0'); + if (lb0) { lb0.style.display = 'none'; } + return; + } + + var loaded = 0; + for (var i = 0; i < total; i++) { + loaded += imgs[i].complete ? 1 : 0; + } + + var lb1 = document.getElementById('LB1'); + if (lb1) { lb1.style.width = Math.round((loaded / total) * 100) + 'px'; } + + if (loaded === total) { + setTimeout(function() { + var lb0Done = document.getElementById('LB0'); + if (lb0Done) { lb0Done.style.display = 'none'; } + }, 128); + } else { + setTimeout(images_loading_bar, 64); + } + } catch (e) {} + }; +} + |
