From f5f1956e8b855ab5aeab531fc44a1a773427bf64 Mon Sep 17 00:00:00 2001 From: tommy tomson Date: Fri, 20 Apr 2012 01:44:20 +0200 Subject: diabook-themes: theme-settings: add "colour scheme"-option, add diabook-pink and some bug/css-fixes --- view/theme/diabook/diabook-blue/js/README | 22 +++++++ .../diabook-blue/js/jquery.ae.image.resize.js | 69 ++++++++++++++++++++++ .../diabook-blue/js/jquery.ae.image.resize.min.js | 1 + .../diabook-blue/js/jquery.autogrow.textarea.js | 46 +++++++++++++++ .../theme/diabook/diabook-blue/js/jquery.cookie.js | 47 +++++++++++++++ 5 files changed, 185 insertions(+) create mode 100644 view/theme/diabook/diabook-blue/js/README create mode 100644 view/theme/diabook/diabook-blue/js/jquery.ae.image.resize.js create mode 100644 view/theme/diabook/diabook-blue/js/jquery.ae.image.resize.min.js create mode 100644 view/theme/diabook/diabook-blue/js/jquery.autogrow.textarea.js create mode 100644 view/theme/diabook/diabook-blue/js/jquery.cookie.js (limited to 'view/theme/diabook/diabook-blue/js') diff --git a/view/theme/diabook/diabook-blue/js/README b/view/theme/diabook/diabook-blue/js/README new file mode 100644 index 000000000..c93b2118e --- /dev/null +++ b/view/theme/diabook/diabook-blue/js/README @@ -0,0 +1,22 @@ +jQuery Resize Plugin Demo + +Version: v2.1.1 +Author: Adeel Ejaz (http://adeelejaz.com/) +License: Dual licensed under MIT and GPL licenses. + +Introduction +aeImageResize is a jQuery plugin to dynamically resize the images without distorting the proportions. + +Usage: +.aeImageResize( height, width ) + +height +An integer representing the maximum height for the image. + +width +An integer representing the maximum width for the image. + +Example +$(function() { + $( ".resizeme" ).aeImageResize({ height: 250, width: 250 }); +}); \ No newline at end of file diff --git a/view/theme/diabook/diabook-blue/js/jquery.ae.image.resize.js b/view/theme/diabook/diabook-blue/js/jquery.ae.image.resize.js new file mode 100644 index 000000000..bac09cd45 --- /dev/null +++ b/view/theme/diabook/diabook-blue/js/jquery.ae.image.resize.js @@ -0,0 +1,69 @@ +(function( $ ) { + + $.fn.aeImageResize = function( params ) { + + var aspectRatio = 0 + // Nasty I know but it's done only once, so not too bad I guess + // Alternate suggestions welcome :) + , isIE6 = $.browser.msie && (6 == ~~ $.browser.version) + ; + + // We cannot do much unless we have one of these + if ( !params.height && !params.width ) { + return this; + } + + // Calculate aspect ratio now, if possible + if ( params.height && params.width ) { + aspectRatio = params.width / params.height; + } + + // Attach handler to load + // Handler is executed just once per element + // Load event required for Webkit browsers + return this.one( "load", function() { + + // Remove all attributes and CSS rules + this.removeAttribute( "height" ); + this.removeAttribute( "width" ); + this.style.height = this.style.width = ""; + + var imgHeight = this.height + , imgWidth = this.width + , imgAspectRatio = imgWidth / imgHeight + , bxHeight = params.height + , bxWidth = params.width + , bxAspectRatio = aspectRatio; + + // Work the magic! + // If one parameter is missing, we just force calculate it + if ( !bxAspectRatio ) { + if ( bxHeight ) { + bxAspectRatio = imgAspectRatio + 1; + } else { + bxAspectRatio = imgAspectRatio - 1; + } + } + + // Only resize the images that need resizing + if ( (bxHeight && imgHeight > bxHeight) || (bxWidth && imgWidth > bxWidth) ) { + + if ( imgAspectRatio > bxAspectRatio ) { + bxHeight = ~~ ( imgHeight / imgWidth * bxWidth ); + } else { + bxWidth = ~~ ( imgWidth / imgHeight * bxHeight ); + } + + this.height = bxHeight; + this.width = bxWidth; + } + }) + .each(function() { + + // Trigger load event (for Gecko and MSIE) + if ( this.complete || isIE6 ) { + $( this ).trigger( "load" ); + } + }); + }; +})( jQuery ); \ No newline at end of file diff --git a/view/theme/diabook/diabook-blue/js/jquery.ae.image.resize.min.js b/view/theme/diabook/diabook-blue/js/jquery.ae.image.resize.min.js new file mode 100644 index 000000000..16c30b123 --- /dev/null +++ b/view/theme/diabook/diabook-blue/js/jquery.ae.image.resize.min.js @@ -0,0 +1 @@ +(function(d){d.fn.aeImageResize=function(a){var i=0,j=d.browser.msie&&6==~~d.browser.version;if(!a.height&&!a.width)return this;if(a.height&&a.width)i=a.width/a.height;return this.one("load",function(){this.removeAttribute("height");this.removeAttribute("width");this.style.height=this.style.width="";var e=this.height,f=this.width,g=f/e,b=a.height,c=a.width,h=i;h||(h=b?g+1:g-1);if(b&&e>b||c&&f>c){if(g>h)b=~~(e/f*c);else c=~~(f/e*b);this.height=b;this.width=c}}).each(function(){if(this.complete||j)d(this).trigger("load")})}})(jQuery); \ No newline at end of file diff --git a/view/theme/diabook/diabook-blue/js/jquery.autogrow.textarea.js b/view/theme/diabook/diabook-blue/js/jquery.autogrow.textarea.js new file mode 100644 index 000000000..806e34f51 --- /dev/null +++ b/view/theme/diabook/diabook-blue/js/jquery.autogrow.textarea.js @@ -0,0 +1,46 @@ +(function($) { + + /* + * Auto-growing textareas; technique ripped from Facebook + */ + $.fn.autogrow = function(options) { + + this.filter('textarea').each(function() { + + var $this = $(this), + minHeight = $this.height(), + lineHeight = $this.css('lineHeight'); + + var shadow = $('
').css({ + position: 'absolute', + top: -10000, + left: -10000, + width: $(this).width(), + fontSize: $this.css('fontSize'), + fontFamily: $this.css('fontFamily'), + lineHeight: $this.css('lineHeight'), + resize: 'none' + }).appendTo(document.body); + + var update = function() { + + var val = this.value.replace(//g, '>') + .replace(/&/g, '&') + .replace(/\n/g, '
'); + + shadow.html(val); + $(this).css('height', Math.max(shadow.height() + 20, minHeight)); + } + + $(this).change(update).keyup(update).keydown(update); + + update.apply(this); + + }); + + return this; + + } + +})(jQuery); \ No newline at end of file diff --git a/view/theme/diabook/diabook-blue/js/jquery.cookie.js b/view/theme/diabook/diabook-blue/js/jquery.cookie.js new file mode 100644 index 000000000..6d5974a2c --- /dev/null +++ b/view/theme/diabook/diabook-blue/js/jquery.cookie.js @@ -0,0 +1,47 @@ +/*! + * jQuery Cookie Plugin + * https://github.com/carhartl/jquery-cookie + * + * Copyright 2011, Klaus Hartl + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://www.opensource.org/licenses/mit-license.php + * http://www.opensource.org/licenses/GPL-2.0 + */ +(function($) { + $.cookie = function(key, value, options) { + + // key and at least value given, set cookie... + if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) { + options = $.extend({}, options); + + if (value === null || value === undefined) { + options.expires = -1; + } + + if (typeof options.expires === 'number') { + var days = options.expires, t = options.expires = new Date(); + t.setDate(t.getDate() + days); + } + + value = String(value); + + return (document.cookie = [ + encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value), + options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE + options.path ? '; path=' + options.path : '', + options.domain ? '; domain=' + options.domain : '', + options.secure ? '; secure' : '' + ].join('')); + } + + // key and possibly options given, get cookie... + options = value || {}; + var decode = options.raw ? function(s) { return s; } : decodeURIComponent; + + var pairs = document.cookie.split('; '); + for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) { + if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined + } + return null; + }; +})(jQuery); -- cgit v1.2.3