Converted to using bower for installing components

This commit is contained in:
Patrick McDonagh
2016-01-27 10:01:20 -06:00
parent 3c67f8004e
commit 6b61156b93
7 changed files with 93 additions and 75 deletions

View File

@@ -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

25
www/bower.json Normal file
View File

@@ -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"
}
}

View File

@@ -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();

View File

@@ -1,4 +1,4 @@
var tsCtrlrs = angular.module('tsCtrlrs', []);
var tsCtrlrs = angular.module('tsCtrlrs', ['ngJustGage']);
tsCtrlrs.factory('Page', function($log) {
var title = 'default';

View File

@@ -11,6 +11,9 @@ tagserver.config([
}).when('/tag/:tagID', {
templateUrl: '/partials/tagVals.html',
controller: 'tagValsCtrl'
}).when('/', {
templateUrl: '/partials/dashboard.html',
controller: 'dashboardCtrl'
});
}
]);

View File

@@ -9,14 +9,13 @@
<div ng-if="!error" class="container">
<div class="row">
<div class="col-md=12">
<h1>Current Values</h1>
<ul>
<li ng-repeat="val in vals">{{val.tagName}} @ {{val.dateAdded}} - {{val.val}} {{val.units}}</li>
</ul>
<div ng-repeat="val in vals">
<div class="col-md-4" style="height:200px">
<just-gage id="{{val.tagName}}" min='val.min' max='val.max' value='val.val' options="{label:val.units,title:val.tagName, decimals:2, refreshAnimationType:'bounce', startAnimationType:'bounce'}"></just-gage>
</div>
</div>
</div>
<div class="row">
<pre>{{vals}}</pre>
</div>

View File

@@ -7,18 +7,15 @@
<!-- using online resources for the time being, can convert to local -->
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.1/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.1/angular-route.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script src="/bower_components/jquery/dist/jquery.min.js"></script>
<script src="/bower_components/angular/angular.min.js"></script>
<script src="/bower_components/angular-route/angular-route.min.js"></script>
<link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap-theme.min.css">
<script src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="/bower_components/raphael/raphael-min.js"></script>
<script src="/bower_components/justgage-toorshia/justgage.js"></script>
<script src="/bower_components/angular-justgage/ng-justgage.js"></script>
<!--
<link rel='stylesheet' href='/css/bootstrap.css'>