diff --git a/www/app.js b/www/app.js index e6ffaec..e77d842 100644 --- a/www/app.js +++ b/www/app.js @@ -54,7 +54,8 @@ app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: true})); //app.use(express["static"](path.join(__dirname, 'public'))); -app.use(express.static(path.join(__dirname, 'public'))); +app.use(express.static(__dirname + '/public')); +app.use('/bower_components', express.static(__dirname + '/bower_components')); /** * Routes @@ -63,11 +64,11 @@ var angular = function(req, res) { res.render('angularIndex'); }; -app.get('/json/get/id/:tagName', fns.getTagID); // Gets the id for a tag name -app.get('/json/tag/add/:tagName/:units', fns.createTag); // Adds a tag to the scan list -app.get('/json/tag/update/:id/:tagName/:units', fns.updateTag); // Updates tag data -app.get('/json/tag/delete/:tag', fns.deleteTag); // Removes a tag from the scan list -app.get('/json/tag/:id', fns.getTag); // Lists all tags in the scan list +app.get('/json/get/id/:tagName', fns.getTagID); // Gets the id for a tag name +app.get('/json/tag/add/:tagName/:units/:min/:max', fns.createTag); // Adds a tag to the scan list +app.get('/json/tag/update/:id/:tagName/:units/:min/:max', fns.updateTag); // Updates tag data +app.get('/json/tag/delete/:tag', fns.deleteTag); // Removes a tag from the scan list +app.get('/json/tag/:id', fns.getTag); // Lists all tags in the scan list app.get('/json/tag', fns.getAllTags); // Lists all tags in the scan list app.get('/json/val/:tag', fns.latestTagValue); // Gets the latest value of a single tag app.get('/json/series/:tag/:hours', fns.seriesTagValues); // Gets all the values of a tag for the last X hours diff --git a/www/bower.json b/www/bower.json new file mode 100644 index 0000000..776d80e --- /dev/null +++ b/www/bower.json @@ -0,0 +1,25 @@ +{ + "name": "TagServer", + "description": "Tag Datalogger for Rockwell PLC & MySQL/SQLite DB", + "main": "app.js", + "authors": [ + "Patrick McDonagh" + ], + "license": "ISC", + "moduleType": [], + "homepage": "", + "private": true, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "dependencies": { + "angular-justgage": "~1.0.1", + "angular": "angularjs#~1.4.9", + "bootstrap": "~3.3.6", + "angular-route": "~1.4.9" + } +} diff --git a/www/functions_SQLite.js b/www/functions_SQLite.js index 3512d06..94e67c2 100644 --- a/www/functions_SQLite.js +++ b/www/functions_SQLite.js @@ -39,25 +39,54 @@ exports.getTagID = function(req, res){ }) }; -exports.getTagName = function(req, res){ - getTagName(req.params.tagID, function(err, tagName){ - if (err){ - console.log(err); - res.json({status:"error", message:err}); - } else { - res.json({status: "OK", tagID: req.params.tagID, tagName: tagName}); - } - }) -}; - exports.createTag = function(req, res){ var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(dbFile); db.serialize(function(){ - var query = "INSERT INTO tags (tagName, units) VALUES (?, ?)"; + var query = "INSERT INTO tags (tagName, units, minExpected, maxExpected) VALUES (?, ?, ?, ?)"; var prepQuery = db.prepare(query); - prepQuery.run(req.params.tagName, req.params.units, function(err){ + prepQuery.run(req.params.tagName, req.params.units, req.params.min, req.params.max, function(err){ + prepQuery.finalize(); + db.close(); + if (err) { + res.json({status:"error", message:err}); + console.log(err); + } else { + res.json({status:"OK"}); + } + }); + }); +}; + +exports.getTag = function(req, res){ + var sqlite3 = require('sqlite3').verbose(); + var db = new sqlite3.Database(dbFile); + + db.serialize(function(){ + var query = "SELECT * FROM tags WHERE id = ?"; + var prepQuery = db.prepare(query); + prepQuery.all(req.params.id, function(err, rows) { + prepQuery.finalize(); + db.close(); + if (err) { + res.json({status:"error", message:err}); + console.log(err); + } else { + res.json({status:"OK", tags:rows}); + } + }); + }); +}; + +exports.updateTag = function(req, res){ + var sqlite3 = require('sqlite3').verbose(); + var db = new sqlite3.Database(dbFile); + + db.serialize(function(){ + var query = "UPDATE tags set tagName = ?, units = ?, minExpected = ?, maxExpected = ? WHERE id = ?"; + var prepQuery = db.prepare(query); + prepQuery.run(req.params.tagName, req.params.units, req.params.min, req.params.max, req.params.id, function(err) { prepQuery.finalize(); db.close(); if (err) { @@ -90,25 +119,7 @@ exports.deleteTag = function(req, res){ }); }; -exports.updateTag = function(req, res){ - var sqlite3 = require('sqlite3').verbose(); - var db = new sqlite3.Database(dbFile); - db.serialize(function(){ - var query = "UPDATE tags set tagName = ?, units = ? WHERE id = ?"; - var prepQuery = db.prepare(query); - prepQuery.run(req.params.tagName, req.params.units, req.params.id, function(err) { - prepQuery.finalize(); - db.close(); - if (err) { - res.json({status:"error", message:err}); - console.log(err); - } else { - res.json({status:"OK"}); - } - }); - }); -}; exports.latestTagValue = function(req, res){ var sqlite3 = require('sqlite3').verbose(); @@ -170,32 +181,14 @@ exports.getAllTags = function(req, res){ }); }; -exports.getTag = function(req, res){ - var sqlite3 = require('sqlite3').verbose(); - var db = new sqlite3.Database(dbFile); - db.serialize(function(){ - var query = "SELECT * FROM tags WHERE id = ?"; - var prepQuery = db.prepare(query); - prepQuery.all(req.params.id, function(err, rows) { - prepQuery.finalize(); - db.close(); - if (err) { - res.json({status:"error", message:err}); - console.log(err); - } else { - res.json({status:"OK", tags:rows}); - } - }); - }); -}; exports.allValues = function(req, res){ var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(dbFile); db.serialize(function(){ - var query = "SELECT t.tagName as tagName, t.units as units, t.id as t_id, MAX(v.id) as v_id, v.val as val, v.dateAdded as dtime FROM vals v JOIN tags t ON v.tagID = t.id WHERE t.deleted = 0 GROUP BY v.tagID"; + var query = "SELECT t.tagName as tagName, t.units as units, t.id as t_id, t.minExpected as min, t.maxExpected as max, MAX(v.id) as v_id, v.val as val, v.dateAdded as dtime FROM vals v JOIN tags t ON v.tagID = t.id WHERE t.deleted = 0 GROUP BY v.tagID"; var prepQuery = db.prepare(query); prepQuery.all(req.params.id, function(err, rows) { prepQuery.finalize(); diff --git a/www/public/js/controller.js b/www/public/js/controller.js index 9b3ac09..e46bc73 100644 --- a/www/public/js/controller.js +++ b/www/public/js/controller.js @@ -1,4 +1,4 @@ -var tsCtrlrs = angular.module('tsCtrlrs', []); +var tsCtrlrs = angular.module('tsCtrlrs', ['ngJustGage']); tsCtrlrs.factory('Page', function($log) { var title = 'default'; diff --git a/www/public/js/router.js b/www/public/js/router.js index df0dd88..cbb258a 100644 --- a/www/public/js/router.js +++ b/www/public/js/router.js @@ -11,6 +11,9 @@ tagserver.config([ }).when('/tag/:tagID', { templateUrl: '/partials/tagVals.html', controller: 'tagValsCtrl' + }).when('/', { + templateUrl: '/partials/dashboard.html', + controller: 'dashboardCtrl' }); } ]); diff --git a/www/public/partials/dashboard.html b/www/public/partials/dashboard.html index aac28bf..23b4773 100644 --- a/www/public/partials/dashboard.html +++ b/www/public/partials/dashboard.html @@ -9,14 +9,13 @@
-
-

Current Values

-
    -
  • {{val.tagName}} @ {{val.dateAdded}} - {{val.val}} {{val.units}}
  • -
- +
+
+ +
+
{{vals}}
diff --git a/www/views/angularIndex.html b/www/views/angularIndex.html index e5aafc7..e6a1d66 100644 --- a/www/views/angularIndex.html +++ b/www/views/angularIndex.html @@ -7,18 +7,15 @@ - - - - - - - - - - - - + + + + + + + + +