summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-09-24 11:58:36 -0400
committerJules Laplace <jules@okfoc.us>2015-09-24 11:58:36 -0400
commitf2215b36f3e1844ac058e7e7cfef6a53083efef9 (patch)
treec8f8bfdcd7d4002b5dadfe3e28e18664e699a271
parente273c92281e10c81f0605a0bf876d9a14bbe24d1 (diff)
nav view
-rw-r--r--lib/db/bookshelf.js24
-rw-r--r--lib/db/index.js13
-rw-r--r--lib/index.js46
-rw-r--r--public/assets/css/css.css4
-rw-r--r--public/assets/js/index.js25
-rw-r--r--public/assets/js/lib/index.js18
-rw-r--r--public/assets/js/nav.js65
7 files changed, 154 insertions, 41 deletions
diff --git a/lib/db/bookshelf.js b/lib/db/bookshelf.js
new file mode 100644
index 0000000..69157cc
--- /dev/null
+++ b/lib/db/bookshelf.js
@@ -0,0 +1,24 @@
+var knex = require('knex')({
+ client: 'mysql2',
+ connection: {
+ host : process.env.DB_HOST,
+ user : process.env.DB_USER,
+ password : process.env.DB_PASS,
+ database : process.env.DB_NAME,
+ charset : 'utf8',
+ typecast : function (field, next) {
+ console.log(field.type)
+ if (field.type == 'BLOB') {
+ return field.string()
+ }
+ return next()
+ }
+ }
+})
+
+var bookshelf = require('bookshelf')(knex)
+
+module.exports = {
+ bookshelf: bookshelf,
+ knex: knex,
+}
diff --git a/lib/db/index.js b/lib/db/index.js
new file mode 100644
index 0000000..33beae9
--- /dev/null
+++ b/lib/db/index.js
@@ -0,0 +1,13 @@
+var db = module.exports
+
+var connection = require("./bookshelf")
+var bookshelf = connection.bookshelf
+var knex = connection.knex
+
+
+/* MODELS */
+
+var Image = db.Image = bookshelf.Model.extend({
+ tableName: 'images',
+ hasTimestamps: false,
+})
diff --git a/lib/index.js b/lib/index.js
new file mode 100644
index 0000000..0cc00a9
--- /dev/null
+++ b/lib/index.js
@@ -0,0 +1,46 @@
+require('dotenv').load();
+var fs = require('fs')
+var app, express = require('express');
+var http = require('http');
+var https = require('https');
+var bodyParser = require('body-parser')
+var cookieParser = require('cookie-parser')
+var csurf = require('csurf')
+var path = require('path')
+var multiparty = require('multiparty')
+var ejs = require('ejs')
+var passport = require('passport')
+var sessionstore = require('sessionstore')
+var session = require('express-session')
+var multer = require('multer')
+
+var app, server
+
+var db = require("./db")
+
+var site = module.exports = {}
+site.init = function(){
+ app = express()
+ app.set('port', 5000)
+ app.set('view engine', 'ejs')
+ app.set('views', path.join(__dirname, '../views'))
+ app.use(express.static(path.join(__dirname, '../public')))
+ app.use(bodyParser.json())
+ app.use(bodyParser.urlencoded({ extended: false }))
+ app.use( multer({ dest:'./uploads/' }).single("file") )
+
+ app.use(express.query())
+
+ server = http.createServer(app).listen(5000, function () {
+ console.log('Bucky listening at http://5.k:%s', server.address().port)
+ })
+
+ app.get("/p/:id", function(req, res){})
+
+ app.get("/get/random", function(req, res){
+ })
+ app.get("/get/latest", function(req, res){
+ })
+ app.get("/get/:id", function(req, res){
+ })
+} \ No newline at end of file
diff --git a/public/assets/css/css.css b/public/assets/css/css.css
index 06a20e6..50b5023 100644
--- a/public/assets/css/css.css
+++ b/public/assets/css/css.css
@@ -76,7 +76,7 @@ a:visited {
font-style:italic;
text-transform:uppercase;
}
-#windowinwindow {
+#pip {
position:absolute;
z-index:8;
top:80px;
@@ -85,7 +85,7 @@ a:visited {
box-shadow: 5px 5px 4px #888;
border:2px inset black;
}
-#windowinwindow:hover {
+#pip:hover {
border:2px solid blue;
cursor:pointer;
}
diff --git a/public/assets/js/index.js b/public/assets/js/index.js
index 2e5ac92..fefb7fc 100644
--- a/public/assets/js/index.js
+++ b/public/assets/js/index.js
@@ -1,13 +1,13 @@
var app = (function(){
var app = {}
+ var id = -1
+
app.init = function(){
- app.router = new SiteRouter ()
- app.view = null
+ app.view = new NavView ()
$(window).on("focus", app.focus)
$(window).on("blur", app.blur)
- $(window).on("keydown", app.keydown)
}
app.focused = true
@@ -20,24 +20,7 @@ var app = (function(){
app.blur = function(){
app.focused = false
}
-
- app.keydown = function(e){
- switch (e.keyCode) {
- case 37: // left
- // prev
- break
- case 39: // right
- // next
- break
- case 38: // up
- // home
- break
- case 40: // down
- // random
- break
- }
- }
-
+
document.addEventListener('DOMContentLoaded', app.init)
return app
diff --git a/public/assets/js/lib/index.js b/public/assets/js/lib/index.js
deleted file mode 100644
index af381c1..0000000
--- a/public/assets/js/lib/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var SiteRouter = Router.extend({
-
- el: "body",
-
- routes: {
- "/": 'login',
- "/index": 'index',
- },
-
- initialize: function(){
- this.route()
- },
-
- index: function(){
- app.view = new IndexView ()
- },
-
-}) \ No newline at end of file
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 + ")")
+ },
+
+})