From cca939527d780d2a5c1c152043c789d11d290ad5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Tue, 11 Sep 2012 17:12:01 +0200 Subject: [PATCH] =?utf8?q?HTML=20Men=C3=BC=20merkt=20sich=20jetzt=20=C3=BC?= =?utf8?q?ber=20cookie=20den=20letzten=20Zustand?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- SL/Form.pm | 2 +- js/jquery.cookie.js | 71 +++++++++++++++++++++++++++++++ templates/webpages/menu/menu.html | 2 +- 3 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 js/jquery.cookie.js diff --git a/SL/Form.pm b/SL/Form.pm index 12a38c819..521d899bd 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -509,7 +509,7 @@ sub header { push @header, "" if $self->{landscape}; push @header, "" if -f $self->{favicon}; push @header, map { qq|| } - qw(jquery common jscalendar/calendar jscalendar/lang/calendar-de jscalendar/calendar-setup part_selection jquery-ui jqModal switchmenuframe); + qw(jquery common jscalendar/calendar jscalendar/lang/calendar-de jscalendar/calendar-setup part_selection jquery-ui jquery.cookie jqModal switchmenuframe); push @header, $self->{javascript} if $self->{javascript}; push @header, map { qq|| } qw(main menu tabcontent list_accounts jquery.autocomplete jquery.multiselect2side frame_header/header ui-lightness/jquery-ui-1.8.12.custom); diff --git a/js/jquery.cookie.js b/js/jquery.cookie.js new file mode 100644 index 000000000..7bc97448f --- /dev/null +++ b/js/jquery.cookie.js @@ -0,0 +1,71 @@ +/*jshint eqnull:true */ +/*! +* jQuery Cookie Plugin v1.2 +* 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 ($, document, undefined) { + +var pluses = /\+/g; + +function raw(s) { + return s; +} + +function decoded(s) { + return decodeURIComponent(s.replace(pluses, ' ')); +} + +var config = $.cookie = function (key, value, options) { + // write + if (value !== undefined) { + options = $.extend({}, config.defaults, options); + + if (value === null) { + options.expires = -1; + } + + if (typeof options.expires === 'number') { + var days = options.expires, t = options.expires = new Date(); + t.setDate(t.getDate() + days); + } + + value = config.json ? JSON.stringify(value) : String(value); + + return (document.cookie = [ + encodeURIComponent(key), '=', config.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('')); + } + + // read + var decode = config.raw ? raw : decoded; + var cookies = document.cookie.split('; '); + for (var i = 0, parts; (parts = cookies[i] && cookies[i].split('=')); i++) { + if (decode(parts.shift()) === key) { + var cookie = decode(parts.join('=')); + return config.json ? JSON.parse(cookie) : cookie; + } + } + + return null; +}; + +config.defaults = {}; + +$.removeCookie = function (key, options) { + if ($.cookie(key) !== null) { + $.cookie(key, null, options); + return true; + } + return false; +}; + +})(jQuery, document); diff --git a/templates/webpages/menu/menu.html b/templates/webpages/menu/menu.html index e5bbbee43..4019bdd2b 100644 --- a/templates/webpages/menu/menu.html +++ b/templates/webpages/menu/menu.html @@ -1,3 +1,3 @@ [%- USE JSON %]
- + -- 2.20.1