diff --git a/app/controllers/clients.js b/app/controllers/clients.js index 4b47d64..c41e8a1 100644 --- a/app/controllers/clients.js +++ b/app/controllers/clients.js @@ -6,7 +6,7 @@ var mongoose = require('mongoose'), var log = require('log4node'); -var frequencies = ["Medical Device","Sterilizer - TT","Vaporizer","Ice Maker","Anesthesia","Waste Management System","Imaging","Medical Gas Systems","RAE","ERT","N2O Trace Gas","Sterilizer - F","Quarterly","Semi","Annual","legacy","DLLR", "Isolation Panel", "Battery Backup"]; +var frequencies = ["Medical Device","Sterilizer - TT","Vaporizer","Ice Maker","Anesthesia","Waste Management System","Imaging","Medical Gas Systems","RAE","ERT","N2O Trace Gas","Sterilizer - F","Quarterly","Semi","Annual","legacy","DLLR", "Isolation Panel", "Battery Backup", "Sterilizer - Cleaning"]; exports.index = function(req, res) { log.info("clients.index"); diff --git a/app/controllers/messages.js b/app/controllers/messages.js index bbe14dc..0569cc8 100644 --- a/app/controllers/messages.js +++ b/app/controllers/messages.js @@ -14,13 +14,11 @@ module.exports = function(config) { return { send: function(req, res) { - console.log(req); var userId = req.body.user; if (!userId) { return res.json(404, null); } - console.log("Sending message"); User.findById(userId, function(err, user) { if (err) return res.json(500, err); diff --git a/app/controllers/posts.js b/app/controllers/posts.js index 479b970..7452397 100644 --- a/app/controllers/posts.js +++ b/app/controllers/posts.js @@ -43,7 +43,6 @@ function renderHtml(input) { try { return markdown.toHTML(input); } catch (err) { - console.log('Failed to render html', err); return input; } } else { @@ -108,8 +107,6 @@ exports.create = function(req, res, next) { exports.update = function(req, res, next) { var id = req.param('post_id'); - console.log('updating post'); - return Post.findById(id, function(err, post) { post.title = req.body.title; post.preview = req.body.preview; diff --git a/app/controllers/workorders.js b/app/controllers/workorders.js index c3e3231..66c627b 100644 --- a/app/controllers/workorders.js +++ b/app/controllers/workorders.js @@ -139,9 +139,6 @@ module.exports = function(config, calendar) { var subject = 'Workorder created: ' + workorder.biomedId; - console.log('-------------------------'); - console.log(to); - async.waterfall([ function(cb) { if (to && to.length > 0) { @@ -151,7 +148,6 @@ module.exports = function(config, calendar) { to: to, subject: subject }; - console.log(msg); server.send(msg, function(err, message) { cb(err); }); } else { cb(); @@ -165,7 +161,6 @@ module.exports = function(config, calendar) { to: techTo, subject: subject }; - console.log(msg); server.send(msg, function(err, message) { cb(err); }); } else { cb(); @@ -318,7 +313,6 @@ module.exports = function(config, calendar) { to: to, subject: subject }; - console.log(msg); server.send(msg, function(err, message) { cb(err); }); } else { cb(); @@ -332,7 +326,6 @@ module.exports = function(config, calendar) { to: techTo, subject: subject }; - console.log(msg); server.send(msg, function(err, message) { cb(err); }); } else { cb(); diff --git a/public/js/app.js b/public/js/app.js index 3cabfa2..1f358cc 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -44,6 +44,10 @@ angular.module('biomed', ['biomed.filters', 'biomed.services', 'biomed.directive templateUrl: '/partials/schedule/pms.html', controller: "SchedulePmsCtrl" }) + .when('/schedule/pms/report', { + templateUrl: '/partials/schedule/report.html', + controller: "FrequencyReportCtrl" + }) .when('/clients', { templateUrl: '/partials/clients/index.html', controller: "ClientIndexCtrl", diff --git a/public/js/controllers.js b/public/js/controllers.js index 4572b34..20ef6bd 100644 --- a/public/js/controllers.js +++ b/public/js/controllers.js @@ -118,6 +118,59 @@ angular.module('biomed') $scope.$watch('frequency', update); }) +.controller("FrequencyReportCtrl", function($scope, $q, $filter, Clients, Workorders, Pms) { + $scope.loading = true; + + // Setup initial state + $scope.month = moment().month(); + $scope.year = 2015; + $scope.frequency = "Anesthesia"; + + $scope.sort = { + column: 'client.name', + descending: false + }; + + function update() { + $scope.loading = true; + + if ($scope.month == "" && $scope.frequency == "") { + $scope.frequency = "Anesthesia"; + } + + var query = { + year: $scope.year, + month: $scope.month, + frequency: $scope.frequency, + type: 'all' + }; + + $scope.pms = Pms.index(query, function() { + $scope.loading = false; + }); + } + + $scope.selectedCls = function(column) { + return column == $scope.sort.column && 'sort-' + $scope.sort.descending; + } + + $scope.changeSorting = function(column) { + console.log(column); + var sort = $scope.sort; + if (sort.column == column) { + sort.descending = !sort.descending; + } else { + sort.column = column; + sort.descending = false; + } + }; + + $scope.$watch('month', update); + $scope.$watch('year', update); + $scope.$watch('frequency', update); +}) + + .controller("UsersIndexCtrl", function($scope, $filter, $routeParams, $location, Users, LocationBinder) { $scope.loading = true; @@ -814,7 +867,7 @@ angular.module('biomed') } }) -.controller("WorkorderAddCtrl", function($scope, $location, Workorders, Schedule, Clients, Users) { +.controller("WorkorderAddCtrl", function($scope, $location, $filter, Workorders, Schedule, Clients, Users) { $scope.emailsOptions = { 'multiple': true, @@ -864,19 +917,46 @@ angular.module('biomed') } } + if ($scope.model.client) { + Clients.get({ id: $scope.model.client }, function(item) { + $scope.clientPicker = {id: item._id, text: item.name + " (" + item.identifier + ")", data: item}; + }); + } + updateAllUsers(); updateUsers(); $scope.$watch('group', updateUsers); - $scope.$watch('model.client', function() { - $scope.currentClient = Clients.get({ id: $scope.model.client }); + $scope.$watch('clientPicker', function() { + if ($scope.clientPicker) { + var client = $scope.clientPicker.data; + $scope.model.client = client._id; + $scope.currentClient = client; + } else { + $scope.model.client = null; + $scope.currentClient = null; + } }); Clients.index(function(result) { $scope.clients = result; }); + $scope.clientOpts = { + containerCssClass: 'input-xxlarge', + placeholder: 'Choose a Client', + minimumInputLength: 2, + query: function(query) { + var data = $filter('filter')($scope.clients, query.term); + var results = []; + data.forEach(function(item) { + results.push({id: item._id, text: item.name + " (" + item.identifier + ")", data: item}); + }); + query.callback({ results: results }); + } + }; + function convertToDate(date, time) { return moment(moment(date).format('YYYY-MM-DD') + 'T' + time).toDate(); } diff --git a/public/partials/schedule/index.html b/public/partials/schedule/index.html index c108aaf..58b589c 100644 --- a/public/partials/schedule/index.html +++ b/public/partials/schedule/index.html @@ -1,5 +1,5 @@

Schedule

diff --git a/public/partials/schedule/pms.html b/public/partials/schedule/pms.html index d6caa3a..5f44d6d 100644 --- a/public/partials/schedule/pms.html +++ b/public/partials/schedule/pms.html @@ -1,5 +1,6 @@

Preventive Maintenance

@@ -32,6 +33,7 @@ + diff --git a/public/partials/schedule/report.html b/public/partials/schedule/report.html new file mode 100644 index 0000000..bd6efe1 --- /dev/null +++ b/public/partials/schedule/report.html @@ -0,0 +1,73 @@ + +
+

Frequency Report

+
+ +
+
+
+ Frequency: + +
+ Month: +
+ + +
+
+
+ + + + + + + + + + + + + + + + + +
Client NameContactPhone
There is no information to display.
{{pm.name}} ({{pm.identifier | uppercase}}){{pm.contacts[0].name}}{{pm.contacts[0].phone}}
+
+
diff --git a/public/partials/workorders/add.html b/public/partials/workorders/add.html index 1abb8b7..9107beb 100644 --- a/public/partials/workorders/add.html +++ b/public/partials/workorders/add.html @@ -16,9 +16,7 @@
- +
@@ -301,8 +299,8 @@
- - + +
diff --git a/server.js b/server.js index b2f6448..f9dfbe8 100644 --- a/server.js +++ b/server.js @@ -72,6 +72,6 @@ require('./config/routes')(app, auth, piler, calendar, directory, config); GLOBAL.health = 'OK' -var port = process.env.PORT || 8000 +var port = process.env.PORT || 9000 server.listen(port) console.log('Express app started on port ' + port) diff --git a/test.js b/test.js index e373dde..275d567 100644 --- a/test.js +++ b/test.js @@ -1,10 +1,77 @@ -var env = process.env.NODE_ENV || 'development', - config = require('./config/config')[env]; +var pushover = require('pushover-notifications'); -config.auth.accessToken = "ya29.1.AADtN_Xjt0PK6YVs8q5csiQFXQg2ZDtrVhsH6P4a5zm0mHqhGx0Nnjx4Jk68Gw"; -config.auth.refreshToken = "1/_5SkDLYmsi4XNaQyAzld-W5-GEqEqt5byH6VkI-j5QI"; +var express = require('express') + fs = require('fs'), + passport = require('passport'); + +var env = 'prod', + config = require('./config/config')[env], + mongoose = require('mongoose'), + Promise = require('bluebird'); + +var log = require('log4node'); + +Promise.promisifyAll(mongoose); + + process.on('uncaughtException', function(err) { + console.log('Uncaught Exception:', err); + console.log(err.stack); + + var p = new pushover({ + user: 'aJmPD4KigO0vLwim76n3WqWKwbKA3k', + token: 'YxspDLz3WinbPmwBThuZXCME9QmkDb' + }); + + var message = { + title: 'Unhandled error in portal', + message: 'Process was reset on ' + new Date(), + sound: 'falling' + }; + p.send(message, function(err, result) { + if (err) { + log.emergency('Error while sending pushover notification'); + log.emergency(err); + } + process.exit(1); + }); + }); + +log.info("----- Server Started -----"); + +// bootstrap db connection +mongoose.set('debug', config.debug); +mongoose.connect(config.database); + +// bootstrap model +var modelPath = __dirname + '/app/model' +fs.readdirSync(modelPath).forEach(function (file) { + require(modelPath + '/' + file) +}) + +require('./config/passport')(passport, config); + +var app = express(), + http = require('http'), + server = http.createServer(app), + io = require('socket.io').listen(server); + +// Configure piler +var piler = require('./config/piler')(app, server, io, config); + +// Express settings +require('./config/express')(app, config, passport, piler); + +var auth = require('./config/auth')(app, passport); + +var calendar = require('./config/calendar')(config); var directory = require('./config/directory')(config); +// Bootstrap routes +require('./config/routes')(app, auth, piler, calendar, directory, config); -directory.listUsers(function(err, result) { console.log(result); console.log(err); console.log('Done.'); }); +GLOBAL.health = 'OK' + +var port = process.env.PORT || 6500 +server.listen(port) +console.log('Express app started on port ' + port)