--- 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