diff --git a/ding_toggle_format.module b/ding_toggle_format.module
index 9755d1b..3ac7338 100644
--- a/ding_toggle_format.module
+++ b/ding_toggle_format.module
@@ -69,3 +69,30 @@ function ding_toggle_format_render_link() {
return $format_link;
}
+
+/**
+ * Implements hook_preprocess().
+ */
+function ding_toggle_format_preprocess(&$variables, $hook) {
+ $search_result = arg(0) == 'search' && arg(1) == 'ting';
+ $user_page = arg(0) == 'user' && arg(2) == 'status';
+
+ // Force toggle format being inserted to search result and
+ // user pages.
+ if (!$search_result && !$user_page) {
+ return;
+ }
+
+ if ($hook == '25_50_25') {
+ $block = module_invoke('ding_toggle_format', 'block_view', '');
+ $toggle_format_markup =
+ '
';
+
+ $existing_content = $variables['content']['main_content'];
+ $variables['content']['main_content'] = $toggle_format_markup . $existing_content;
+ }
+}
diff --git a/js/ding_toggle_format.js b/js/ding_toggle_format.js
index 1bf1c3d..1a91ee5 100644
--- a/js/ding_toggle_format.js
+++ b/js/ding_toggle_format.js
@@ -3,7 +3,7 @@
Drupal.behaviors.toggleFormat = {
attach: function(context, settings) {
$('#ding-toggle-format', context).click(function() {
- var toFormat = ($.cookie("ding_toggle_format") == 'short') ? 'long': 'short';
+ var toFormat = (Cookies.get('ding_toggle_format') == 'short') ? 'long': 'short';
Drupal.setFormat(toFormat);
return false;
});
@@ -13,23 +13,22 @@
Drupal.behaviors.readyFormat = {
attach: function(context, settings) {
$('#ding-toggle-format', context).ready(function() {
- var format = ($.cookie("ding_toggle_format")) ? $.cookie("ding_toggle_format") : 'long';
+ var format = (Cookies.get('ding_toggle_format')) ? Cookies.get('ding_toggle_format') : 'long';
Drupal.setFormat(format);
});
}
};
Drupal.setFormat = function(format) {
- $("#ding-toggle-format").removeClass('ding-toggle-format-long');
- $("#ding-toggle-format").removeClass('ding-toggle-format-short');
- $("#ding-toggle-format").addClass('ding-toggle-format-' + format);
- $("li.search-result").removeClass('ding-format-long');
- $("li.search-result").removeClass('ding-format-short');
- $("li.search-result").addClass('ding-format-' + format);
- $.cookie("ding_toggle_format", format, {
+ $('#ding-toggle-format').removeClass('ding-toggle-format-long');
+ $('#ding-toggle-format').removeClass('ding-toggle-format-short');
+ $('#ding-toggle-format').addClass('ding-toggle-format-' + format);
+ $('li.search-result, div.material-item').removeClass('ding-format-long');
+ $('li.search-result, div.material-item').removeClass('ding-format-short');
+ $('li.search-result, div.material-item').addClass('ding-format-' + format);
+ Cookies('ding_toggle_format', format, {
expires: 30
});
};
} (jQuery));
-
diff --git a/js/jquery.cookie.min.js b/js/jquery.cookie.min.js
index 514f045..51b6785 100644
--- a/js/jquery.cookie.min.js
+++ b/js/jquery.cookie.min.js
@@ -1,10 +1,137 @@
/*!
- * jQuery Cookie Plugin v1.3
- * https://github.com/carhartl/jquery-cookie
+ * JavaScript Cookie v2.0.0-pre
+ * https://github.com/js-cookie/js-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
+ * Copyright 2006, 2015 Klaus Hartl
+ * Released under the MIT license
*/
-(function(a,b,c){function e(a){return a}function f(a){return decodeURIComponent(a.replace(d," "))}var d=/\+/g,g=a.cookie=function(d,h,i){if(h!==c){if(i=a.extend({},g.defaults,i),null===h&&(i.expires=-1),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setDate(k.getDate()+j)}return h=g.json?JSON.stringify(h):h+"",b.cookie=[encodeURIComponent(d),"=",g.raw?h:encodeURIComponent(h),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=g.raw?e:f,m=b.cookie.split("; "),n=0,o=m.length;o>n;n++){var p=m[n].split("=");if(l(p.shift())===d){var q=l(p.join("="));return g.json?JSON.parse(q):q}}return null};g.defaults={},a.removeCookie=function(b,c){return null!==a.cookie(b)?(a.cookie(b,null,c),!0):!1}})(jQuery,document);
\ No newline at end of file
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(factory);
+ } else if (typeof exports === 'object') {
+ module.exports = factory();
+ } else {
+ var _OldCookies = window.Cookies;
+ var api = window.Cookies = factory(window.jQuery);
+ api.noConflict = function () {
+ window.Cookies = _OldCookies;
+ return api;
+ };
+ }
+}(function () {
+ function extend () {
+ var i = 0;
+ var result = {};
+ for (; i < arguments.length; i++) {
+ var attributes = arguments[ i ];
+ for (var key in attributes) {
+ result[key] = attributes[key];
+ }
+ }
+ return result;
+ }
+
+ function init (converter) {
+ function api (key, value, attributes) {
+ var result;
+
+ // Write
+
+ if (arguments.length > 1) {
+ attributes = extend({
+ path: '/'
+ }, api.defaults, attributes);
+
+ if (typeof attributes.expires === 'number') {
+ var expires = new Date();
+ expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
+ attributes.expires = expires;
+ }
+
+ try {
+ result = JSON.stringify(value);
+ if (/^[\{\[]/.test(result)) {
+ value = result;
+ }
+ } catch (e) {}
+
+ value = encodeURIComponent(String(value));
+ value = value.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
+
+ key = encodeURIComponent(String(key));
+ key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
+ key = key.replace(/[\(\)]/g, escape);
+
+ return (document.cookie = [
+ key, '=', value,
+ attributes.expires && '; expires=' + attributes.expires.toUTCString(), // use expires attribute, max-age is not supported by IE
+ attributes.path && '; path=' + attributes.path,
+ attributes.domain && '; domain=' + attributes.domain,
+ attributes.secure && '; secure'
+ ].join(''));
+ }
+
+ // Read
+
+ if (!key) {
+ result = {};
+ }
+
+ // To prevent the for loop in the first place assign an empty array
+ // in case there are no cookies at all. Also prevents odd result when
+ // calling "get()"
+ var cookies = document.cookie ? document.cookie.split('; ') : [];
+ var rdecode = /(%[0-9A-Z]{2})+/g;
+ var i = 0;
+
+ for (; i < cookies.length; i++) {
+ var parts = cookies[i].split('=');
+ var name = parts[0].replace(rdecode, decodeURIComponent);
+ var cookie = parts.slice(1).join('=');
+
+ if (cookie.charAt(0) === '"') {
+ cookie = cookie.slice(1, -1);
+ }
+
+ cookie = converter && converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent);
+
+ if (this.json) {
+ try {
+ cookie = JSON.parse(cookie);
+ } catch (e) {}
+ }
+
+ if (key === name) {
+ result = cookie;
+ break;
+ }
+
+ if (!key) {
+ result[name] = cookie;
+ }
+ }
+
+ return result;
+ }
+
+ api.get = api.set = api;
+ api.getJSON = function () {
+ return api.apply({
+ json: true
+ }, [].slice.call(arguments));
+ };
+ api.defaults = {};
+
+ api.remove = function (key, attributes) {
+ api(key, '', extend(attributes, {
+ expires: -1
+ }));
+ };
+
+ api.withConverter = init;
+
+ return api;
+ }
+
+ return init();
+}));