summaryrefslogtreecommitdiffstats
path: root/htdocs/static/js/navigation.js
diff options
context:
space:
mode:
Diffstat (limited to 'htdocs/static/js/navigation.js')
-rw-r--r--htdocs/static/js/navigation.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/htdocs/static/js/navigation.js b/htdocs/static/js/navigation.js
new file mode 100644
index 0000000..cb56db5
--- /dev/null
+++ b/htdocs/static/js/navigation.js
@@ -0,0 +1,44 @@
+var liSelected;
+$(window).keydown(function(e) {
+ var li = $('#hostlist .list .thumbnail');
+ if (e.which === 40) {
+ if (liSelected) {
+ liSelected.removeClass('selected');
+ next = liSelected.next();
+ if (next.length > 0) {
+ liSelected = next.addClass('selected');
+ } else {
+ liSelected = li.eq(0).addClass('selected');
+ }
+ } else {
+ liSelected = li.eq(0).addClass('selected');
+ }
+
+ $('body').scrollTo(liSelected, {offset: -20});
+ return false;
+ }
+
+ if (e.which === 38) {
+ if (liSelected) {
+ liSelected.removeClass('selected');
+ next = liSelected.prev();
+ if (next.length > 0) {
+ liSelected = next.addClass('selected');
+ } else {
+ liSelected = li.last().addClass('selected');
+ }
+ } else {
+ liSelected = li.last().addClass('selected');
+ }
+
+ $('body').scrollTo(liSelected, {offset: -20});
+ return false;
+ }
+
+ if (e.which === 13) {
+ if (liSelected) {
+ window.location = liSelected.find('a').attr('href');
+ return false;
+ }
+ }
+});