tablesort-rails 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 63f187641aad246421124c3c4a4074affd0d3e1a
4
+ data.tar.gz: 27fd7bceff25c682416662d7900289b2350d6c5b
5
+ SHA512:
6
+ metadata.gz: ca66d6f9ba948d9ce9fa485c8d1c4dcc55cdcee18488811e0845c143d381c14ff228384d47aeba6f0577471eeefcde33ffa5b3e69bcba8c5816fd9846d4637e8
7
+ data.tar.gz: 469d78038425f4770bce8fc3aa5d38e8f79755631d5566a7cf1b92f182780b1ea689b7d625e818297a8d49455aa7f809296ae446d8a2a30fc37517fcf24a4cd0
@@ -0,0 +1,15 @@
1
+ /*!
2
+ * tablesort v5.0.2 (2017-11-12)
3
+ * http://tristen.ca/tablesort/demo/
4
+ * Copyright (c) 2017 ; Licensed MIT
5
+ */
6
+ // date
7
+ !function(){var a=function(a){return a=a.replace(/\-/g,"/"),a=a.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3"),new Date(a).getTime()||-1};Tablesort.extend("date",function(b){return(b.search(/(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\.?\,?\s*/i)!==-1||b.search(/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/)!==-1||b.search(/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/i)!==-1)&&!isNaN(a(b))},function(b,c){return b=b.toLowerCase(),c=c.toLowerCase(),a(c)-a(b)})}();
8
+ // dotsep
9
+ Tablesort.extend("dotsep",function(a){return/^(\d+\.)+\d+$/.test(a)},function(a,b){a=a.split("."),b=b.split(".");for(var c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(a[e],10),d=parseInt(b[e],10),c!==d){if(c>d)return-1;if(c<d)return 1}return 0});
10
+ // filesize
11
+ !function(){var a=function(a,b){return a=parseFloat(a),b=parseFloat(b),a=isNaN(a)?0:a,b=isNaN(b)?0:b,a-b},b=function(a){return a.replace(/[^\-?0-9.]/g,"")},c=function(a){a=a.toLowerCase();var b="i"===a[1]?1024:1e3;switch(a[0]){case"k":return Math.pow(b,2);case"m":return Math.pow(b,3);case"g":return Math.pow(b,4);case"t":return Math.pow(b,5);case"p":return Math.pow(b,6);case"e":return Math.pow(b,7);case"z":return Math.pow(b,8);case"y":return Math.pow(b,9);default:return b}},d=function(a){var d=a.match(/^(\d+(\.\d+)?) ?((K|M|G|T|P|E|Z|Y|B$)i?B?)$/i),e=parseFloat(b(d[1])),f=d[3];return e*c(f)};Tablesort.extend("filesize",function(a){return/^\d+(\.\d+)? ?(K|M|G|T|P|E|Z|Y|B$)i?B?$/i.test(a)},function(b,c){return b=d(b),c=d(c),a(c,b)})}();
12
+ // monthname
13
+ !function(){Tablesort.extend("monthname",function(a){return a.search(/(January|February|March|April|May|June|July|August|September|October|November|December)/i)!==-1},function(a,b){var c=["January","February","March","April","May","June","July","August","September","October","November","December"];return c.indexOf(b)-c.indexOf(a)})}();
14
+ // number
15
+ !function(){var a=function(a){return a.replace(/[^\-?0-9.]/g,"")},b=function(a,b){return a=parseFloat(a),b=parseFloat(b),a=isNaN(a)?0:a,b=isNaN(b)?0:b,a-b};Tablesort.extend("number",function(a){return a.match(/^[-+]?[£\x24Û¢´€]?\d+\s*([,\.]\d{0,2})/)||a.match(/^[-+]?\d+\s*([,\.]\d{0,2})?[£\x24Û¢´€]/)||a.match(/^[-+]?(\d)*-?([,\.]){0,1}-?(\d)+([E,e][\-+][\d]+)?%?$/)},function(c,d){return c=a(c),d=a(d),b(d,c)})}();
@@ -0,0 +1,16 @@
1
+ /*!
2
+ * tablesort v5.0.2 (2017-11-12)
3
+ * http://tristen.ca/tablesort/demo/
4
+ * Copyright (c) 2017 ; Licensed MIT
5
+ */!function(){function a(b,c){if(!(this instanceof a))return new a(b,c);if(!b||"TABLE"!==b.tagName)throw new Error("Element must be a table");this.init(b,c||{})}var b=[],c=function(a){var b;return window.CustomEvent&&"function"==typeof window.CustomEvent?b=new CustomEvent(a):(b=document.createEvent("CustomEvent"),b.initCustomEvent(a,!1,!1,void 0)),b},d=function(a){return a.getAttribute("data-sort")||a.textContent||a.innerText||""},e=function(a,b){return a=a.trim().toLowerCase(),b=b.trim().toLowerCase(),a===b?0:a<b?1:-1},f=function(a,b){return function(c,d){var e=a(c.td,d.td);return 0===e?b?d.index-c.index:c.index-d.index:e}};a.extend=function(a,c,d){if("function"!=typeof c||"function"!=typeof d)throw new Error("Pattern and sort must be a function");b.push({name:a,pattern:c,sort:d})},a.prototype={init:function(a,b){var c,d,e,f,g=this;if(g.table=a,g.thead=!1,g.options=b,a.rows&&a.rows.length>0)if(a.tHead&&a.tHead.rows.length>0){for(e=0;e<a.tHead.rows.length;e++)if("thead"===a.tHead.rows[e].getAttribute("data-sort-method")){c=a.tHead.rows[e];break}c||(c=a.tHead.rows[a.tHead.rows.length-1]),g.thead=!0}else c=a.rows[0];if(c){var h=function(){g.current&&g.current!==this&&g.current.removeAttribute("aria-sort"),g.current=this,g.sortTable(this)};for(e=0;e<c.cells.length;e++)f=c.cells[e],f.setAttribute("role","columnheader"),"none"!==f.getAttribute("data-sort-method")&&(f.tabindex=0,f.addEventListener("click",h,!1),null!==f.getAttribute("data-sort-default")&&(d=f));d&&(g.current=d,g.sortTable(d))}},sortTable:function(a,g){var h=this,i=a.cellIndex,j=e,k="",l=[],m=h.thead?0:1,n=a.getAttribute("data-sort-method"),o=a.getAttribute("aria-sort");if(h.table.dispatchEvent(c("beforeSort")),g||(o="ascending"===o?"descending":"descending"===o?"ascending":h.options.descending?"descending":"ascending",a.setAttribute("aria-sort",o)),!(h.table.rows.length<2)){if(!n){for(;l.length<3&&m<h.table.tBodies[0].rows.length;)k=d(h.table.tBodies[0].rows[m].cells[i]),k=k.trim(),k.length>0&&l.push(k),m++;if(!l)return}for(m=0;m<b.length;m++)if(k=b[m],n){if(k.name===n){j=k.sort;break}}else if(l.every(k.pattern)){j=k.sort;break}for(h.col=i,m=0;m<h.table.tBodies.length;m++){var p,q=[],r={},s=0,t=0;if(!(h.table.tBodies[m].rows.length<2)){for(p=0;p<h.table.tBodies[m].rows.length;p++)k=h.table.tBodies[m].rows[p],"none"===k.getAttribute("data-sort-method")?r[s]=k:q.push({tr:k,td:d(k.cells[h.col]),index:s}),s++;for("descending"===o?q.sort(f(j,!0)):(q.sort(f(j,!1)),q.reverse()),p=0;p<s;p++)r[p]?(k=r[p],t++):k=q[p-t].tr,h.table.tBodies[m].appendChild(k)}}h.table.dispatchEvent(c("afterSort"))}},refresh:function(){void 0!==this.current&&this.sortTable(this.current,!0)}},"undefined"!=typeof module&&module.exports?module.exports=a:window.Tablesort=a}();
6
+
7
+ function activateTablesort() {
8
+ var tables = document.getElementsByClassName('tablesort');
9
+ for (var i = 0; i < tables.length; i++) {
10
+ new Tablesort(tables[i]);
11
+ }
12
+ }
13
+
14
+ document.addEventListener("DOMContentLoaded", function(event) {
15
+ activateTablesort();
16
+ });
@@ -0,0 +1,33 @@
1
+ th[role=columnheader]:not(.no-sort) {
2
+ cursor: pointer;
3
+ }
4
+
5
+ th[role=columnheader]:not(.no-sort):after {
6
+ content: '';
7
+ float: right;
8
+ margin-top: 7px;
9
+ border-width: 0 4px 4px;
10
+ border-style: solid;
11
+ border-color: #404040 transparent;
12
+ visibility: hidden;
13
+ opacity: 0;
14
+ -ms-user-select: none;
15
+ -webkit-user-select: none;
16
+ -moz-user-select: none;
17
+ user-select: none;
18
+ }
19
+
20
+ th[aria-sort=ascending]:not(.no-sort):after {
21
+ border-bottom: none;
22
+ border-width: 4px 4px 0;
23
+ }
24
+
25
+ th[aria-sort]:not(.no-sort):after {
26
+ visibility: visible;
27
+ opacity: 0.4;
28
+ }
29
+
30
+ th[role=columnheader]:not(.no-sort):hover:after {
31
+ visibility: visible;
32
+ opacity: 1;
33
+ }
@@ -0,0 +1 @@
1
+ require 'tablesort/engine'
@@ -0,0 +1,7 @@
1
+ module TablesortRails
2
+ class Engine < Rails::Engine
3
+ initializer :append_dependent_assets_path, group: :all do |app|
4
+ app.config.assets.precompile += ['*.js', '*.css']
5
+ end
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tablesort-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Mike Hall
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-03-02 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A lightweight library for sorting table rows by clicking on a header
14
+ column
15
+ email: mhall25@wisc.edu
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - app/assets/javascripts/tablesort-extra.js
21
+ - app/assets/javascripts/tablesort.js
22
+ - app/assets/stylesheets/tablesort.css
23
+ - lib/tablesort.rb
24
+ - lib/tablesort/engine.rb
25
+ homepage: https://github.com/mhall25/tablesort-rails
26
+ licenses:
27
+ - MIT
28
+ metadata: {}
29
+ post_install_message:
30
+ rdoc_options: []
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubyforge_project:
45
+ rubygems_version: 2.6.11
46
+ signing_key:
47
+ specification_version: 4
48
+ summary: Javascript table sorting for rails
49
+ test_files: []