Converted to using bower for installing components
This commit is contained in:
13
www/app.js
13
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
|
||||
|
||||
25
www/bower.json
Normal file
25
www/bower.json
Normal 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"
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var tsCtrlrs = angular.module('tsCtrlrs', []);
|
||||
var tsCtrlrs = angular.module('tsCtrlrs', ['ngJustGage']);
|
||||
|
||||
tsCtrlrs.factory('Page', function($log) {
|
||||
var title = 'default';
|
||||
|
||||
@@ -11,6 +11,9 @@ tagserver.config([
|
||||
}).when('/tag/:tagID', {
|
||||
templateUrl: '/partials/tagVals.html',
|
||||
controller: 'tagValsCtrl'
|
||||
}).when('/', {
|
||||
templateUrl: '/partials/dashboard.html',
|
||||
controller: 'dashboardCtrl'
|
||||
});
|
||||
}
|
||||
]);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'>
|
||||
|
||||
Reference in New Issue
Block a user