merge
authorTero Marttila <terom@paivola.fi>
Sat, 01 Dec 2012 23:26:56 +0200
changeset 39 1759ce75dfef
parent 38 959a268de543 (current diff)
parent 37 9039238f8885 (diff)
child 40 bc8ab048b208
merge
--- a/pvl/verkko/hosts.py	Wed Nov 21 22:13:59 2012 +0200
+++ b/pvl/verkko/hosts.py	Sat Dec 01 23:26:56 2012 +0200
@@ -153,9 +153,24 @@
         sort = self.request.args.get('sort')
 
         if sort :
-            order_by = self.HOST_ATTRS[sort]
+            name = sort.lstrip('+-')
+        else :
+            name = None
+
+        if name :
+            order_by = self.HOST_ATTRS[name]
         else :
             order_by = default
+        
+        # prefix
+        if not sort :
+            pass
+        elif sort.startswith('+') :
+            order_by = order_by.asc()
+        elif sort.startswith('-') :
+            order_by = order_by.desc()
+        else :
+            pass
 
         log.debug("sort: %s", order_by)
         
@@ -273,6 +288,18 @@
 
             return self.url(**args)
 
+        def sortlink (attr) :
+            if not self.sorts :
+                sort = attr
+            elif self.sorts.lstrip('+-') != attr :
+                sort = attr
+            elif self.sorts.startswith('-') :
+                sort = "+" + attr
+            else :
+                sort = "-" + attr
+
+            return html.a(href=url(sort=sort))
+
         def paginate (page, count=None) :
             """
                 Render pagination.
@@ -326,7 +353,7 @@
                     html.th('#'),
                     (
                         html.th(
-                            html.a(href=url(sort=sort))(title) if sort else (title)
+                            sortlink(sort)(title) if sort else (title)
                         ) for title, sort, filter, class_ in COLS
                     )
                 ),
@@ -608,6 +635,7 @@
         
         return html.div(id='wrapper')(
             html.input(type='submit', id='refresh', value="Refresh"),
+            html.input(type='reset', id='pause', value="Pause"),
             html.table(id='hosts')(
                 html.thead(
                     html.tr(
--- a/static/hosts.js	Wed Nov 21 22:13:59 2012 +0200
+++ b/static/hosts.js	Sat Dec 01 23:26:56 2012 +0200
@@ -15,8 +15,8 @@
   return this;
 };
 
-$.fn.disable = function (disable) {
-    if (disable)
+$.fn.disabled = function (disabled) {
+    if (disabled)
         this.attr('disabled', 'disabled');
     else
         this.removeAttr('disabled');
@@ -74,7 +74,7 @@
     function refresh () {
         console.log("refresh: " + t);
         
-        var refresh = $('#refresh').disable(true);
+        var refresh = $('#refresh').disabled(true);
         var spinner = $('#wrapper').spin();
 
         var url = params.url;
@@ -116,7 +116,7 @@
 
         }).complete(function () {
             spinner.spin(false);
-            refresh.disable(false);
+            refresh.disabled(false);
         });
     }
 
@@ -129,6 +129,13 @@
             // in case diabled on error
             refreshTimer.enable();
             refresh();
+            $("#pause").disabled(false);
+        });
+
+        $("#pause").click(function () {
+            console.log("pause");
+            refreshTimer.disable();
+            $("#pause").disabled(true);
         });
         
         // start auto-refresh