From baa6793516242890222d3b4c94cac3f31649bd3b Mon Sep 17 00:00:00 2001 From: Michael Foster Date: Fri, 26 Jul 2013 19:39:11 -0400 Subject: toggle-images.js (this was written last year, but I never pushed it to git) --- js/toggle-images.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 js/toggle-images.js (limited to 'js/toggle-images.js') diff --git a/js/toggle-images.js b/js/toggle-images.js new file mode 100644 index 00000000..006b3622 --- /dev/null +++ b/js/toggle-images.js @@ -0,0 +1,50 @@ +/* + * toggle-images.js + * + * Released under the MIT license + * Copyright (c) 2012 Michael Save + * + * Usage: + * $config['additional_javascript'][] = 'js/jquery.min.js'; + * $config['additional_javascript'][] = 'js/toggle-images.js'; + * + */ + +$(document).ready(function(){ + var hide_images = localStorage['hideimages'] ? true : false; + + $('').appendTo($('head')); + + var hideImage = function() { + $(this) + .attr('data-orig', this.src) + .attr('src', 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==') + .addClass('hidden'); + }; + + var restoreImage = function() { + $(this) + .attr('src', $(this).attr('data-orig')) + .removeClass('hidden'); + }; + + $('hr:first').before(''); + $('div#toggle-images a') + .text((hide_images ? 'Show' : 'Hide') + ' images') + .click(function() { + hide_images = !hide_images; + if (hide_images) { + $('div > a > img').each(hideImage); + localStorage.hideimages = true; + } else { + $('div > a > img').each(restoreImage); + delete localStorage.hideimages; + } + + $(this).text((hide_images ? 'Show' : 'Hide') + ' images') + }); + + if (hide_images) { + $('div > a > img').each(hideImage); + } +}); -- cgit v1.3 From c0a45ba1237fd54c0d5050d3a70abdea022ff6c3 Mon Sep 17 00:00:00 2001 From: Michael Foster Date: Sat, 27 Jul 2013 00:14:43 -0400 Subject: Allow hide-images.js, toggle-images.js and inline-expanding.js to work together --- js/hide-images.js | 5 ++++- js/inline-expanding.js | 33 ++++++++++++++++++++------------- js/toggle-images.js | 29 ++++++++++++++++++++++++++++- 3 files changed, 52 insertions(+), 15 deletions(-) (limited to 'js/toggle-images.js') diff --git a/js/hide-images.js b/js/hide-images.js index 75dc07c2..7344cd8f 100644 --- a/js/hide-images.js +++ b/js/hide-images.js @@ -53,7 +53,7 @@ $(document).ready(function(){ hidden_data[board][id] = Math.round(Date.now() / 1000); store_data(); - var show_link = $('show').click(function() { + var show_link = $('show').click(function() { delete hidden_data[board][id]; store_data(); @@ -66,6 +66,9 @@ $(document).ready(function(){ $(this).hide().after(show_link); + if ($(img).parent()[0].dataset.expanded == 'true') { + $(img).parent().click(); + } $(img) .data('orig', img.src) .attr('src', 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==') diff --git a/js/inline-expanding.js b/js/inline-expanding.js index f6714d7f..2e924f05 100644 --- a/js/inline-expanding.js +++ b/js/inline-expanding.js @@ -3,7 +3,7 @@ * https://github.com/savetheinternet/Tinyboard/blob/master/js/inline-expanding.js * * Released under the MIT license - * Copyright (c) 2012 Michael Save + * Copyright (c) 2012-2013 Michael Save * * Usage: * $config['additional_javascript'][] = 'js/inline-expanding.js'; @@ -13,30 +13,37 @@ onready(function(){ var link = document.getElementsByTagName('a'); - for(var i = 0; i < link.length; i++) { - if(typeof link[i] == "object" && link[i].childNodes[0].src && link[i].className != 'file') { + for (var i = 0; i < link.length; i++) { + if (typeof link[i] == "object" && link[i].childNodes && link[i].childNodes[0].src && link[i].className != 'file') { link[i].childNodes[0].style.maxWidth = '95%'; link[i].childNodes[0].style.maxHeight = '95%'; link[i].onclick = function(e) { - if(e.which == 2) { + if (this.childNodes[0].className == 'hidden') + return false; + if (e.which == 2) return true; - } - if(!this.tag) { - this.tag = this.childNodes[0].src; + if (!this.dataset.src) { + this.dataset.expanded = 'true'; + this.dataset.src= this.childNodes[0].src; + this.dataset.width = this.childNodes[0].style.width; + this.dataset.height = this.childNodes[0].style.height; this.childNodes[0].src = this.href; this.childNodes[0].style.width = 'auto'; this.childNodes[0].style.height = 'auto'; this.childNodes[0].style.opacity = '0.4'; this.childNodes[0].style.filter = 'alpha(opacity=40)'; this.childNodes[0].onload = function() { - this.style.opacity = '1'; - this.style.filter = ''; + this.style.opacity = ''; + delete this.style.filter; } } else { - this.childNodes[0].src = this.tag; - this.childNodes[0].style.width = 'auto'; - this.childNodes[0].style.height = 'auto'; - this.tag = ''; + this.childNodes[0].src = this.dataset.src; + this.childNodes[0].style.width = this.dataset.width; + this.childNodes[0].style.height = this.dataset.height; + delete this.dataset.expanded; + delete this.dataset.src; + delete this.childNodes[0].style.opacity; + delete this.childNodes[0].style.filter; } return false; } diff --git a/js/toggle-images.js b/js/toggle-images.js index 006b3622..74f2fab4 100644 --- a/js/toggle-images.js +++ b/js/toggle-images.js @@ -16,6 +16,9 @@ $(document).ready(function(){ $('').appendTo($('head')); var hideImage = function() { + if ($(this).parent()[0].dataset.expanded == 'true') { + $(this).parent().click(); + } $(this) .attr('data-orig', this.src) .attr('src', 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==') @@ -28,6 +31,27 @@ $(document).ready(function(){ .removeClass('hidden'); }; + // Fix for hide-images.js + var show_hide_hide_images_buttons = function() { + if (hide_images) { + $('a.hide-image-link').each(function() { + if ($(this).next().hasClass('show-image-link')) { + $(this).next().hide(); + } + $(this).hide().after('hidden'); + }); + } else { + $('span.toggle-images-placeholder').remove(); + $('a.hide-image-link').each(function() { + if ($(this).next().hasClass('show-image-link')) { + $(this).next().show(); + } else { + $(this).show(); + } + }); + } + }; + $('hr:first').before(''); $('div#toggle-images a') .text((hide_images ? 'Show' : 'Hide') + ' images') @@ -40,11 +64,14 @@ $(document).ready(function(){ $('div > a > img').each(restoreImage); delete localStorage.hideimages; } - + + show_hide_hide_images_buttons(); + $(this).text((hide_images ? 'Show' : 'Hide') + ' images') }); if (hide_images) { $('div > a > img').each(hideImage); + show_hide_hide_images_buttons(); } }); -- cgit v1.3 From 3e5234e54e3052cbdc6e17691182766e17824fe7 Mon Sep 17 00:00:00 2001 From: czaks Date: Sat, 27 Jul 2013 01:16:12 -0400 Subject: toggle-images.js: javascript i18n --- js/toggle-images.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'js/toggle-images.js') diff --git a/js/toggle-images.js b/js/toggle-images.js index 74f2fab4..de1d47b3 100644 --- a/js/toggle-images.js +++ b/js/toggle-images.js @@ -38,7 +38,7 @@ $(document).ready(function(){ if ($(this).next().hasClass('show-image-link')) { $(this).next().hide(); } - $(this).hide().after('hidden'); + $(this).hide().after(''+_('hidden')+''); }); } else { $('span.toggle-images-placeholder').remove(); @@ -54,7 +54,7 @@ $(document).ready(function(){ $('hr:first').before(''); $('div#toggle-images a') - .text((hide_images ? 'Show' : 'Hide') + ' images') + .text(hide_images ? _('Show images') : _('Hide images')) .click(function() { hide_images = !hide_images; if (hide_images) { @@ -67,7 +67,7 @@ $(document).ready(function(){ show_hide_hide_images_buttons(); - $(this).text((hide_images ? 'Show' : 'Hide') + ' images') + $(this).text(hide_images ? _('Show images') : _('Hide images')) }); if (hide_images) { -- cgit v1.3