summaryrefslogtreecommitdiff
path: root/static/js/pages
diff options
context:
space:
mode:
Diffstat (limited to 'static/js/pages')
-rw-r--r--static/js/pages/frontpage_refresh.js11
-rw-r--r--static/js/pages/fullscreen_front_init.js18
-rw-r--r--static/js/pages/fullscreen_front_run.js7
-rw-r--r--static/js/pages/fullscreen_init.js55
-rw-r--r--static/js/pages/log_favs_init.js7
-rw-r--r--static/js/pages/log_init.js58
6 files changed, 156 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_front_run.js b/static/js/pages/fullscreen_front_run.js
new file mode 100644
index 0000000..1116b7a
--- /dev/null
+++ b/static/js/pages/fullscreen_front_run.js
@@ -0,0 +1,7 @@
+// Runs `initFullscreen()` for `template/fullscreen_front.st` without inline JS.
+(function() {
+ if (typeof window.initFullscreen === 'function') {
+ window.initFullscreen();
+ }
+})();
+
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_favs_init.js b/static/js/pages/log_favs_init.js
new file mode 100644
index 0000000..47565a9
--- /dev/null
+++ b/static/js/pages/log_favs_init.js
@@ -0,0 +1,7 @@
+// Log template helper: kick off the permalink fav-list loader (defined in pichat.js).
+(function() {
+ if (typeof window.load_favs === 'function') {
+ window.load_favs();
+ }
+})();
+
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) {}
+ };
+}
+