aboutsummaryrefslogtreecommitdiff
path: root/js/tablesorte.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/tablesorte.js')
-rw-r--r--js/tablesorte.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/js/tablesorte.js b/js/tablesorte.js
new file mode 100644
index 0000000..1d062ae
--- /dev/null
+++ b/js/tablesorte.js
@@ -0,0 +1,40 @@
+// Tablesorter comes from own file now.
+
+var yourls_defaultsort = 2; // default column to sort on (overwrite this inline in page)
+var yourls_defaultorder = 1; // default order ('asc':0, 'desc':1) to sort on (overwrite this inline in page)
+
+// Initialise the table to sort
+$(document).ready(function(){
+ if ($("#main_table").tablesorter && $("#main_table tr#nourl_found").css('display') == 'none') {
+ var order = {'keyword':0, 'url':1, 'timestamp':2, 'ip':3, 'clicks':4};
+ var order_by = {'asc':0, 'desc':1};
+ var sort_by = order[query_string('sort_by')];
+ var sort_order = order_by[query_string('sort_order')];
+ if( sort_by == undefined ) {
+ sort_by = yourls_defaultsort;
+ sort_order = yourls_defaultorder;
+ }
+
+ $("#main_table").tablesorter({
+ textExtraction: {
+ 1: function(node, table, cellIndex){return $(node).find("small a").text();} // Sort column "URL" by URL, not by whole cell content
+ },
+ sortList:[[ sort_by, sort_order ]],
+ headers: { 5: {sorter: false} }, // no sorter on column "Actions"
+ widgets: ['zebra'], // prettify, see tr.normal-row and tr.alt-row in tablesorter.css
+ widgetOptions : { zebra : [ "normal-row", "alt-row" ] }
+ });
+ }
+});
+
+// Get query string
+function query_string( key ) {
+ default_="";
+ key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
+ var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
+ var qs = regex.exec(window.location.href);
+ if(qs == null)
+ return yourls_defaultsort;
+ else
+ return qs[1];
+} \ No newline at end of file