summaryrefslogtreecommitdiff
path: root/public/assets/js/nav.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js/nav.js')
-rw-r--r--public/assets/js/nav.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/public/assets/js/nav.js b/public/assets/js/nav.js
new file mode 100644
index 0000000..401c6ff
--- /dev/null
+++ b/public/assets/js/nav.js
@@ -0,0 +1,65 @@
+var NavView = View.extend({
+
+ el: "body",
+ events: {
+ "click #prev": "prev",
+ "click #next": "next",
+ "click #refresh": "refresh",
+ "click #random": "random",
+ },
+
+ initialize: function(){
+ this.id = -1
+ this.$pip = this.$("#pip img")
+ this.$image = this.$("#luckyimage")
+
+ $(window).on("keydown", app.keydown)
+ this.latest()
+ },
+
+ keydown: function(e){
+ switch (e.keyCode) {
+ case 37: // left
+ this.prev()
+ break
+ case 39: // right
+ this.next()
+ break
+ case 38: // up
+ this.latest()
+ break
+ case 40: // down
+ this.random()
+ break
+ }
+ },
+
+ latest: function(){
+ this.onLatest = true
+ $.get("/get/latest", this.display.bind(this))
+ },
+
+ prev: function(){
+ if (this.id - 1 < 1) { return }
+ this.onLatest = false
+ $.get("/get/" + (this.id-1), this.display.bind(this))
+ },
+
+ next: function(){
+ if (this.onLatest || this.id < 1) { return }
+ this.onLatest = false
+ $.get("/get/" + (this.id+1), this.display.bind(this))
+ },
+
+ random: function(){
+ this.onLatest = false
+ $.get("/get/random", this.display.bind(this))
+ },
+
+ display: function(data){
+ this.id = data.id
+ this.$pip.attr("src", data.url)
+ this.$image.css("background-image", "url(" + data.url + ")")
+ },
+
+})