From 7f3e90555aaa23cb780743b101c0d3ce7f16e263 Mon Sep 17 00:00:00 2001 From: mespeche Date: Mon, 2 Sep 2013 12:38:52 +0200 Subject: [PATCH] Working Implementation of metadata for the exclusion of certain columns --- templates/admin/default/assets/css/admin.less | 5 +- templates/admin/default/assets/js/main.js | 2 +- .../assets/js/tablesorter/jquery.metadata.js | 116 ++++++++++++++++++ templates/admin/default/coupon/edit.html | 4 +- templates/admin/default/coupon/list.html | 8 +- 5 files changed, 128 insertions(+), 7 deletions(-) create mode 100644 templates/admin/default/assets/js/tablesorter/jquery.metadata.js diff --git a/templates/admin/default/assets/css/admin.less b/templates/admin/default/assets/css/admin.less index 03104b881..688dd282e 100755 --- a/templates/admin/default/assets/css/admin.less +++ b/templates/admin/default/assets/css/admin.less @@ -965,13 +965,14 @@ th.header { font-weight: bold; padding-left: 20px; border-right: 1px solid #dad9c7; + border-left: 1px solid #dad9c7; margin-left: -1px; } th.headerSortUp { - background: #3399FF url("data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7") no-repeat center right; + background: #F9F9F9 url("data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7") no-repeat center right; } th.headerSortDown { - background: #3399FF url("data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7") no-repeat center right; + background: #F9F9F9 url("data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7") no-repeat center right; } \ No newline at end of file diff --git a/templates/admin/default/assets/js/main.js b/templates/admin/default/assets/js/main.js index 6b8a4501f..04f155535 100644 --- a/templates/admin/default/assets/js/main.js +++ b/templates/admin/default/assets/js/main.js @@ -41,7 +41,7 @@ } }); - } + } // -- Mini browser -- miniBrowser = function (root, url){ diff --git a/templates/admin/default/assets/js/tablesorter/jquery.metadata.js b/templates/admin/default/assets/js/tablesorter/jquery.metadata.js new file mode 100644 index 000000000..07b10bae8 --- /dev/null +++ b/templates/admin/default/assets/js/tablesorter/jquery.metadata.js @@ -0,0 +1,116 @@ +/* + * Metadata - jQuery plugin for parsing metadata from elements + * + * Copyright (c) 2006 John Resig, Yehuda Katz, Jörn Zaefferer, Paul McLanahan + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + */ + +/** + * Sets the type of metadata to use. Metadata is encoded in JSON, and each property + * in the JSON will become a property of the element itself. + * + * There are three supported types of metadata storage: + * + * attr: Inside an attribute. The name parameter indicates *which* attribute. + * + * class: Inside the class attribute, wrapped in curly braces: { } + * + * elem: Inside a child element (e.g. a script tag). The + * name parameter indicates *which* element. + * + * The metadata for an element is loaded the first time the element is accessed via jQuery. + * + * As a result, you can define the metadata type, use $(expr) to load the metadata into the elements + * matched by expr, then redefine the metadata type and run another $(expr) for other elements. + * + * @name $.metadata.setType + * + * @example

This is a p

+ * @before $.metadata.setType("class") + * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" + * @desc Reads metadata from the class attribute + * + * @example

This is a p

+ * @before $.metadata.setType("attr", "data") + * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" + * @desc Reads metadata from a "data" attribute + * + * @example

This is a p

+ * @before $.metadata.setType("elem", "script") + * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" + * @desc Reads metadata from a nested script element + * + * @param String type The encoding type + * @param String name The name of the attribute to be used to get metadata (optional) + * @cat Plugins/Metadata + * @descr Sets the type of encoding to be used when loading metadata for the first time + * @type undefined + * @see metadata() + */ + +(function($) { + +$.extend({ + metadata : { + defaults : { + type: 'class', + name: 'metadata', + cre: /(\{.*\})/, + single: 'metadata' + }, + setType: function( type, name ){ + this.defaults.type = type; + this.defaults.name = name; + }, + get: function( elem, opts ){ + var data, m, e, attr, + settings = $.extend({},this.defaults,opts); + // check for empty string in single property + if ( !settings.single.length ) { settings.single = 'metadata'; } + + data = $.data(elem, settings.single); + // returned cached data if it already exists + if ( data ) { return data; } + + data = "{}"; + + if ( settings.type === "class" ) { + m = settings.cre.exec( elem.className ); + if ( m ) { data = m[1]; } + } else if ( settings.type === "elem" ) { + if( !elem.getElementsByTagName ) { return undefined; } + e = elem.getElementsByTagName(settings.name); + if ( e.length ) { data = $.trim(e[0].innerHTML); } + } else if ( elem.getAttribute !== undefined ) { + attr = elem.getAttribute( settings.name ); + if ( attr ) { data = attr; } + } + + if ( data.indexOf( '{' ) <0 ) { data = "{" + data + "}"; } + + data = eval("(" + data + ")"); + + $.data( elem, settings.single, data ); + return data; + } + } +}); + +/** + * Returns the metadata object for the first member of the jQuery object. + * + * @name metadata + * @descr Returns element's metadata object + * @param Object opts An object contianing settings to override the defaults + * @type jQuery + * @cat Plugins/Metadata + */ +$.fn.metadata = function( opts ){ + return $.metadata.get( this[0], opts ); +}; + +})(jQuery); \ No newline at end of file diff --git a/templates/admin/default/coupon/edit.html b/templates/admin/default/coupon/edit.html index 6e2692480..1a0b5557c 100755 --- a/templates/admin/default/coupon/edit.html +++ b/templates/admin/default/coupon/edit.html @@ -118,9 +118,9 @@
- diff --git a/templates/admin/default/coupon/list.html b/templates/admin/default/coupon/list.html index 882b27005..4d42c91b2 100755 --- a/templates/admin/default/coupon/list.html +++ b/templates/admin/default/coupon/list.html @@ -31,7 +31,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -180,6 +180,10 @@ {/javascripts} +{javascripts file='../assets/js/tablesorter/jquery.metadata.js'} + +{/javascripts} + {javascripts file='../assets/js/main.js'} {/javascripts}
+ Rules - +
Title Expiration date Usage leftActionsActions
Title Expiration date Usage leftActionsActions