From b419c85f8c9c79e6bb0425db93967b36240ebbed Mon Sep 17 00:00:00 2001 From: anonfagola Date: Sat, 27 Sep 2014 11:55:39 -0700 Subject: Forgot .js extension --- js/id_highlighter.js | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 js/id_highlighter.js (limited to 'js/id_highlighter.js') diff --git a/js/id_highlighter.js b/js/id_highlighter.js new file mode 100644 index 00000000..60052031 --- /dev/null +++ b/js/id_highlighter.js @@ -0,0 +1,40 @@ +Array.prototype.remove = function(v) { this.splice(this.indexOf(v) == -1 ? this.length : this.indexOf(v), 1); } + +var idshighlighted = []; + +function getPostsById(id){ + return $(".poster_id").filter(function(i){ + return $(this).text() == id; + }); +} + +function getMasterPosts(parents){ + if(!parents.hasClass("post")) return; + + var toRet = []; + + $(parents).each(function(){ + if($(this).hasClass("post")) + toRet.push($(this)); + }); + + return toRet; +} + +$(".poster_id").click(function(){ + var id = $(this).text(); + + if($.inArray(id, idshighlighted) !== -1){ + idshighlighted.remove(id); + + $(getMasterPosts(getPostsById(id).parents())).each(function(i){ + $(this).removeClass("highlighted"); + }); + }else{ + idshighlighted.push(id); + + $(getMasterPosts(getPostsById(id).parents())).each(function(i){ + $(this).addClass("highlighted"); + }); + } +}); -- cgit v1.3 From c3ba4cc7efc3ec345634fa1a8f409008e2c535e8 Mon Sep 17 00:00:00 2001 From: 8chan Date: Sat, 27 Sep 2014 20:04:27 +0000 Subject: Remove prototype pollution, call on ready --- js/id_highlighter.js | 74 +++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 35 deletions(-) (limited to 'js/id_highlighter.js') diff --git a/js/id_highlighter.js b/js/id_highlighter.js index 60052031..82e2c79d 100644 --- a/js/id_highlighter.js +++ b/js/id_highlighter.js @@ -1,40 +1,44 @@ -Array.prototype.remove = function(v) { this.splice(this.indexOf(v) == -1 ? this.length : this.indexOf(v), 1); } +if (active_page == 'thread' || active_page == 'index') { + $(document).ready(function(){ + function arrayRemove(a, v) { a.splice(a.indexOf(v) == -1 ? a.length : a.indexOf(v), 1); } -var idshighlighted = []; + var idshighlighted = []; -function getPostsById(id){ - return $(".poster_id").filter(function(i){ - return $(this).text() == id; - }); -} + function getPostsById(id){ + return $(".poster_id").filter(function(i){ + return $(this).text() == id; + }); + } -function getMasterPosts(parents){ - if(!parents.hasClass("post")) return; - - var toRet = []; - - $(parents).each(function(){ - if($(this).hasClass("post")) - toRet.push($(this)); - }); - - return toRet; -} + function getMasterPosts(parents){ + if(!parents.hasClass("post")) return; + + var toRet = []; + + $(parents).each(function(){ + if($(this).hasClass("post")) + toRet.push($(this)); + }); + + return toRet; + } -$(".poster_id").click(function(){ - var id = $(this).text(); - - if($.inArray(id, idshighlighted) !== -1){ - idshighlighted.remove(id); - - $(getMasterPosts(getPostsById(id).parents())).each(function(i){ - $(this).removeClass("highlighted"); + $(".poster_id").click(function(){ + var id = $(this).text(); + + if($.inArray(id, idshighlighted) !== -1){ + arrayRemove(idshighlighted, id); + + $(getMasterPosts(getPostsById(id).parents())).each(function(i){ + $(this).removeClass("highlighted"); + }); + }else{ + idshighlighted.push(id); + + $(getMasterPosts(getPostsById(id).parents())).each(function(i){ + $(this).addClass("highlighted"); + }); + } }); - }else{ - idshighlighted.push(id); - - $(getMasterPosts(getPostsById(id).parents())).each(function(i){ - $(this).addClass("highlighted"); - }); - } -}); + }); +} -- cgit v1.3 From 606b39450d29194fd7241898cfd4d1b9746a3c8b Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 5 Oct 2014 18:30:47 +0200 Subject: better synchronize the javascripts with 8chan --- js/auto-reload.js | 24 ++++++++++++++++++++++++ js/id_colors.js | 52 +++++++++++++++++++++++++++++++++------------------- js/id_highlighter.js | 8 +++++++- 3 files changed, 64 insertions(+), 20 deletions(-) (limited to 'js/id_highlighter.js') diff --git a/js/auto-reload.js b/js/auto-reload.js index 8a35335e..081314d8 100644 --- a/js/auto-reload.js +++ b/js/auto-reload.js @@ -17,6 +17,7 @@ * */ + auto_reload_enabled = true; // for watch.js to interop $(document).ready(function(){ @@ -35,6 +36,7 @@ $(document).ready(function(){ var settings = new script_settings('auto-reload'); var poll_interval_mindelay = settings.get('min_delay_bottom', 5000); var poll_interval_maxdelay = settings.get('max_delay', 600000); + var poll_interval_errordelay = settings.get('error_delay', 30000); // number of ms to wait before reloading var poll_interval_delay = poll_interval_mindelay; @@ -182,6 +184,28 @@ $(document).ready(function(){ else $('#update_secs').text("No new posts found"); } + }, + error: function(xhr, status_text, error_text) { + if (status_text == "error") { + if (error_text == "Not Found") { + $('#update_secs').text("Thread deleted or pruned"); + $('#auto_update_status').prop('checked', false); + $('#auto_update_status').prop('disabled', true); // disable updates if thread is deleted + return; + } else { + $('#update_secs').text("Error: "+error_text); + } + } else if (status_text) { + $('#update_secs').text("Error: "+status_text); + } else { + $('#update_secs').text("Unknown error"); + } + + // Keep trying to update + if ($('#auto_update_status').is(':checked')) { + poll_interval_delay = poll_interval_errordelay; + auto_update(poll_interval_delay); + } } }); diff --git a/js/id_colors.js b/js/id_colors.js index f92113d8..17f8b4d9 100644 --- a/js/id_colors.js +++ b/js/id_colors.js @@ -1,25 +1,39 @@ if (active_page == 'thread' || active_page == 'index') { $(document).ready(function(){ - $.hash = function(str) { - var i, j, msg = 0; - - for (i = 0, j = str.length; i < j; ++i) { - msg = ((msg << 5) - msg) + str.charCodeAt(i); + if (window.Options && Options.get_tab('general')) { + selector = '#color-ids>input'; + event = 'change'; + Options.extend_tab("general", ""); + } + + else { + selector = '#color-ids'; + event = 'click'; + $('hr:first').before('') + } + + $(selector).on(event, function() { + if (localStorage.color_ids === 'true') { + localStorage.color_ids = 'false'; + } else { + localStorage.color_ids = 'true'; } - - return msg; - }; - - function stringToRGB(str){ - var rgb, hash; - - rgb = []; - hash = $.hash(str); - - rgb[0] = (hash >> 24) & 0xFF; - rgb[1] = (hash >> 16) & 0xFF; - rgb[2] = (hash >> 8) & 0xFF; - + }); + + if (!localStorage.color_ids || localStorage.color_ids === 'false') { + return; + } else { + $('#color-ids>input').attr('checked','checked'); + } + + function IDToRGB(id_str){ + var id = id_str.match(/.{1,2}/g); + var rgb = new Array(); + + for (i = 0; i < id.length; i++) { + rgb[i] = parseInt(id[i], 16); + } + return rgb; } diff --git a/js/id_highlighter.js b/js/id_highlighter.js index 82e2c79d..d0a5fabf 100644 --- a/js/id_highlighter.js +++ b/js/id_highlighter.js @@ -23,7 +23,7 @@ if (active_page == 'thread' || active_page == 'index') { return toRet; } - $(".poster_id").click(function(){ + var id_highlighter = function(){ var id = $(this).text(); if($.inArray(id, idshighlighted) !== -1){ @@ -39,6 +39,12 @@ if (active_page == 'thread' || active_page == 'index') { $(this).addClass("highlighted"); }); } + } + + $(".poster_id").on('click', id_highlighter); + + $(document).on('new_post', function(e, post) { + $(post).find('.poster_id').on('click', id_highlighter); }); }); } -- cgit v1.3