From fb2b66e2dd67ceefc94d8e64eedd9300f64d695f Mon Sep 17 00:00:00 2001 From: sinuca <55vitaminado@gmail.com> Date: Mon, 17 Mar 2014 19:11:16 -0300 Subject: Recent posts functionality Conflicts: inc/config.php inc/mod/pages.php mod.php --- js/recent-posts.js | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 js/recent-posts.js (limited to 'js/recent-posts.js') diff --git a/js/recent-posts.js b/js/recent-posts.js new file mode 100644 index 00000000..c65f6991 --- /dev/null +++ b/js/recent-posts.js @@ -0,0 +1,73 @@ +/* + * recent-posts.js + * + * Recent posts controlling script + * + * Released under the WTFPL license + * Copyright (c) 2014 sinuca <#55ch@rizon.net> + * + * Requires jquery + * incomplete + * + */ + +$(document).ready(function(){ + + if (!localStorage.hiddenrecentposts) + localStorage.hiddenrecentposts = '{}'; + + if (!localStorage.recentpostscount) + localStorage.recentpostscount = 25; + + // Load data from HTML5 localStorage + var hidden_data = JSON.parse(localStorage.hiddenrecentposts); + + var store_data_posts = function() { + localStorage.hiddenrecentposts = JSON.stringify(hidden_data); + } + + // Delete old hidden posts (7+ days old) + for (var key in hidden_data) { + for (var id in hidden_data[key]) { + if (hidden_data[key][id] < Math.round(Date.now() / 1000) - 60 * 60 * 24 * 7) { + delete hidden_data[key][id]; + store_data_posts(); + } + } + } + + var do_hide_posts = function() { + var data = $(this).attr('id'); + var splitted = data.split('-'); + var id = splitted[2]; + var post_container = $(this).parent(); + + var board = post_container.data("board"); + + if (!hidden_data[board]) { + hidden_data[board] = {}; + } + + $(' Dismiss ') + .insertBefore(post_container.find('a.eita-link:first')) + .click(function(){ + hidden_data[board][id] = Math.round(Date.now() / 1000); + store_data_posts(); + + post_container.closest('hr').hide(); + post_container.children().hide(); + }); + if(hidden_data[board][id]) + post_container.find('a.hide-post-link').click(); + } + + $('a.eita-link').each(do_hide_posts); + + $('#erase-local-data').click(function(){ + hidden_data = {}; + store_data_posts(); + $(this).html('Loading...'); + location.reload(); + }); + +}); \ No newline at end of file -- cgit v1.3