mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
Added clock stuff
This commit is contained in:
42
app/controllers/clock.js
Normal file
42
app/controllers/clock.js
Normal 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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -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
14
app/model/clock.js
Normal 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
40
app/views/clock.jade
Normal 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')
|
Reference in New Issue
Block a user