Added clock stuff

This commit is contained in:
Dobie Wollert
2014-09-14 06:43:04 -04:00
parent ca587764cd
commit b949f6ff90
12 changed files with 384 additions and 4 deletions

42
app/controllers/clock.js Normal file
View File

@ -0,0 +1,42 @@
var mongoose = require('mongoose'),
Clock = mongoose.model('Clock');
module.exports = function(piler) {
return {
index: function(req, res, next) {
host = String(req.headers['x-forwarded-host']);
host = host.split(':')[0];
if (host != 'clock.atlb.co') {
return next();
}
if (!req.user) {
req.session.redirectUrl = req.url
}
var path = req.path.slice(1);
res.render('clock.jade', {
css: piler.css.renderTags()
});
},
post: function(req, res) {
var clock = new Clock({
tech: req.user,
action: req.body.action,
lat: req.body.lat,
long: req.body.long,
dt: new Date()
});
clock.save(function(err, result) {
if (err) {
return res.json(500, err);
} else {
res.json(result);
}
});
}
}
}

View File

@ -1,7 +1,8 @@
var mongoose = require('mongoose'),
async = require('async'),
User = mongoose.model('User');
User = mongoose.model('User'),
Clock = mongoose.model('Clock');
var log = require('log4node');
@ -163,6 +164,24 @@ module.exports = function(config, directory) {
return res.json(user);
});
});
},
clocks: function(req, res) {
var id = req.param('user_id');
var criteria = {
tech: id
};
var query = Clock.find(criteria)
.sort('-dt')
.exec(function(err, results) {
if (err) {
res.json(500, err);
} else {
res.json(results);
}
});
}
};
};

14
app/model/clock.js Normal file
View File

@ -0,0 +1,14 @@
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var clockSchema = new Schema({
_id: String,
tech: { type: ObjectId, ref: 'User' },
dt: Date,
action: String,
lat: Number,
long: Number
}, { versionKey: false })
var Clock = module.exports = mongoose.model('Clock', clockSchema);

40
app/views/clock.jade Normal file
View File

@ -0,0 +1,40 @@
doctype 5
html(lang="en", ng-app="clock", ng-controller="clock.PageCtrl")
head
title Atlantic Biomedical
!{css}
link(rel='stylesheet', href='/css/clock.css')
meta(name='viewport', content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0')
body
script(type='text/javascript', src='//ajax.googleapis.com/ajax/libs/angularjs/1.1.4/angular.js')
script(type='text/javascript', src='//ajax.googleapis.com/ajax/libs/angularjs/1.1.4/angular-resource.js')
script(type='text/javascript', src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js')
script(type='text/javascript', src='/clock/app.js')
error-panel
.navbar
.navbar-inner
a.brand(href='/', target='_self') Atlantic Biomedical
progress-panel
.container-fluid
h1 Time Clock
div.loading(ng-show='working')
i.loader
br
| Detecting your location
div(ng-hide='working')
div.error(ng-show='error')
{{ error }}
div.success(ng-show='success')
{{ success }}
div(ng-hide='error || success')
.control-group
button.btn.btn-primary(ng-click='clockIn()') Clock In
button.btn.btn-primary(ng-click='clockOut()') Clock Out
div.mapOuter
gmap.mapInner(size='600x600', markers='markers', sensor='false', zoom='14')