diff --git a/app.coffee b/app.coffee deleted file mode 100644 index d1b9bc4..0000000 --- a/app.coffee +++ /dev/null @@ -1,168 +0,0 @@ - -DBTYPE = 'SQLite' # OR "MySQL" -express = require('express') -path = require('path') -fs = require('fs') -# favicon = require('serve-favicon') -logger = require('morgan') -methodOverride = require('method-override') -bodyParser = require('body-parser') -errorHandler = require('errorhandler') -coffeescript = require('coffee-script/register') - -app = express() - - -# /** -# * Configuration -# */ -if DBTYPE == "MySQL" - mysql = require('mysql'); - db_config = - host: 'localhost', - user: 'website', - password: 'henrypump' - handleDisconnect = () -> - console.log "Handling db disconnect gracefully" - app.locals.connection = mysql.createConnection db_config - app.locals.connection.connect (err) -> - if err - console.log 'error when connecting to db:', err - setTimeout handleDisconnect, 2000 - app.locals.connection.on 'error', (err) -> - console.log 'db error', err - if err.code == 'PROTOCOL_CONNECTION_LOST' - handleDisconnect() - else - throw err - handleDisconnect() - json = require './routes/json.js' - -if DBTYPE == "SQLite" - json = require('./routes/json_sqlite.coffee'); - -app.set 'port', process.env.PORT || 3000 -app.set 'views', path.join __dirname, 'views' -app.engine '.html', require('ejs').renderFile -app.set 'view engine', 'html' -#app.use(favicon(__dirname + '/public/img/favicon.ico')); -app.use logger 'dev' -app.use methodOverride() -app.use bodyParser.json() -app.use bodyParser.urlencoded - extended: true - -app.use express.static path.join __dirname, 'public' -app.use '/bower_components', express.static __dirname + '/bower_components' -app.use '/node_modules', express.static __dirname + '/node_modules' - -# /** -# * Routes -# */ - -angular = (req, res) -> - res.render 'angularIndex' - undefined - -app.get '/json/all/:date', json.allCards -app.get '/json/page/:date/:page/:numPerPage', json.filePage -app.get '/json/count/:date', json.countDateFiles -app.get '/json/latestCard/:num', json.latestCardData -app.get '/json/latestCard', json.latestCardData -app.get '/json/latest/:num', json.cardLatestX -app.get '/json/latest', json.cardLatestX -app.get '/json/all', json.allDates -app.get '/json/between/:start/:end', json.findBetweenDateTime -app.get '/json/byID/:date/:card_id', json.getCardByCardID -app.get '/json/card/:id', json.singleCard -app.get '/csv/:id', json.cardCSV -app.get '/json/status/:startDTime/:endDTime', json.statusBetween -app.get '/json/status/:startDTime/', json.statusBetween -app.get '/json/status', json.status -app.get '/json/setup', json.getSetup -app.get '/json/totals', json.getCurrentTotals - - -# // -- Gauge-Off Data -- // -app.get '/json/history/all', json.historyAll -app.get '/json/history', json.historyLatest - -# // -- Well Test Data -- // -app.get '/json/well_test/all', json.wellTestAll -app.get '/json/well_test', json.wellTestLatest - -# // -- Event List -- // -app.get '/json/event_list/all', json.eventListAll -app.get '/json/event_list/:numEvents', json.eventList -app.get '/json/event_list', json.eventList - -# // -- Well Configuration Backups -- // -app.get '/json/backups/:file', json.parseWellBackup -app.get '/json/backups', json.getWellBackups - -# // -- Tag Data -- // -app.get '/json/tags/get/status', json.statusTagData -app.get '/json/tags/get/:tagName', json.getTagValue -app.get '/json/tags/set/:tagName/:value/:mode', json.setTagValue -app.get '/json/tags/set/:tagName/:value', json.setTagValue - -# // -- Firmware Updating -- // -# app.get('/json/maint/updateFiles/:force', json.updateFiles); -# app.get('/json/maint/updateFiles', json.updateFiles); - -# // -- Fluid Shots -- // -app.get '/json/fluid_shot/get/deleted', json.getDeletedFluidShots -app.get '/json/fluid_shot/get', json.getFluidShots -app.post '/json/fluid_shot/post', json.postFluidShot -app.post '/json/fluid_shot/delete', json.deleteFluidShot -app.post '/json/fluid_shot/undelete', json.undeleteFluidShot -app.post '/json/fluid_shot/update', json.updateFluidShot - -# //-- Well Tests -- // -app.get '/json/well_test/get/deleted', json.getDeletedWellTests -app.get '/json/well_test/get', json.getWellTests -app.post '/json/well_test/post', json.postWellTest -app.post '/json/well_test/delete', json.deleteWellTest -app.post '/json/well_test/undelete', json.undeleteWellTest -app.post '/json/well_test/update', json.updateWellTest - -# // -- Notes -- // -app.get '/json/notes/get/types', json.getNoteTypes -app.get '/json/notes/get/deleted', json.getDeletedNotes -app.get '/json/notes/get', json.getNotes -app.post '/json/notes/post', json.postNote -app.post '/json/notes/delete', json.deleteNote -app.post '/json/notes/undelete', json.undeleteNote -app.post '/json/notes/update', json.updateNote - -# // -- Python Scripts -- // -app.get '/json/pythonStatus', json.checkPythonScripts -app.get '/json/pythonRestart', json.restartPythonScripts - -# //-- Tag Values -- // -app.get '/json/tagvalues', json.getTagValues -app.get '/json/tagvalues/:unixTS', json.getValuesClosestTo - -app.get '/json/:folder/:file', json.singleCardOldway -app.get '/json/:folder/:file/taper', json.taper -app.post '/json/cards', json.multipleCards -app.post '/setup', json.updateSetup - - - -app.get '*', angular - -# /** -# * Start Server -# */ - -connectionsArray = [] - -s_port = 3000 - -server = app.listen s_port, () -> - host = server.address().address - port = server.address().port - - console.log 'POConsole listening at http://%s:%s', host, port - console.log "Database Type is %s", DBTYPE diff --git a/flask/app/__init__.py b/app/__init__.py similarity index 99% rename from flask/app/__init__.py rename to app/__init__.py index 589f65c..65c41d3 100644 --- a/flask/app/__init__.py +++ b/app/__init__.py @@ -6,7 +6,7 @@ from flask_sqlalchemy import SQLAlchemy from werkzeug.utils import secure_filename from sqlalchemy import and_ from sqlalchemy.sql import func -import mysql.connector +# import mysql.connector from datetime import datetime UPLOAD_FOLDER = '/root/tag-server/flask/app/docs' diff --git a/flask/app/datalogger/__init__.py b/app/datalogger/__init__.py similarity index 100% rename from flask/app/datalogger/__init__.py rename to app/datalogger/__init__.py diff --git a/flask/app/datalogger/datalogger.py b/app/datalogger/datalogger.py similarity index 100% rename from flask/app/datalogger/datalogger.py rename to app/datalogger/datalogger.py diff --git a/flask/app/datalogger/models.py b/app/datalogger/models.py similarity index 100% rename from flask/app/datalogger/models.py rename to app/datalogger/models.py diff --git a/flask/app/hplumberjack.crt b/app/hplumberjack.crt similarity index 100% rename from flask/app/hplumberjack.crt rename to app/hplumberjack.crt diff --git a/flask/app/hplumberjack.key b/app/hplumberjack.key similarity index 100% rename from flask/app/hplumberjack.key rename to app/hplumberjack.key diff --git a/flask/app/static/css/LineChart.min.css b/app/static/css/LineChart.min.css similarity index 100% rename from flask/app/static/css/LineChart.min.css rename to app/static/css/LineChart.min.css diff --git a/flask/app/static/css/bootstrap-theme.min.css b/app/static/css/bootstrap-theme.min.css similarity index 100% rename from flask/app/static/css/bootstrap-theme.min.css rename to app/static/css/bootstrap-theme.min.css diff --git a/flask/app/static/css/bootstrap.min.css b/app/static/css/bootstrap.min.css similarity index 100% rename from flask/app/static/css/bootstrap.min.css rename to app/static/css/bootstrap.min.css diff --git a/flask/app/static/css/font-awesome.min.css b/app/static/css/font-awesome.min.css similarity index 100% rename from flask/app/static/css/font-awesome.min.css rename to app/static/css/font-awesome.min.css diff --git a/flask/app/static/css/ng-quick-date-default-theme.css b/app/static/css/ng-quick-date-default-theme.css similarity index 100% rename from flask/app/static/css/ng-quick-date-default-theme.css rename to app/static/css/ng-quick-date-default-theme.css diff --git a/flask/app/static/css/ng-quick-date.css b/app/static/css/ng-quick-date.css similarity index 100% rename from flask/app/static/css/ng-quick-date.css rename to app/static/css/ng-quick-date.css diff --git a/flask/app/static/css/style.css b/app/static/css/style.css similarity index 100% rename from flask/app/static/css/style.css rename to app/static/css/style.css diff --git a/flask/app/static/fonts/FontAwesome.otf b/app/static/fonts/FontAwesome.otf similarity index 100% rename from flask/app/static/fonts/FontAwesome.otf rename to app/static/fonts/FontAwesome.otf diff --git a/flask/app/static/fonts/fontawesome-webfont.eot b/app/static/fonts/fontawesome-webfont.eot similarity index 100% rename from flask/app/static/fonts/fontawesome-webfont.eot rename to app/static/fonts/fontawesome-webfont.eot diff --git a/flask/app/static/fonts/fontawesome-webfont.svg b/app/static/fonts/fontawesome-webfont.svg similarity index 100% rename from flask/app/static/fonts/fontawesome-webfont.svg rename to app/static/fonts/fontawesome-webfont.svg diff --git a/flask/app/static/fonts/fontawesome-webfont.ttf b/app/static/fonts/fontawesome-webfont.ttf similarity index 100% rename from flask/app/static/fonts/fontawesome-webfont.ttf rename to app/static/fonts/fontawesome-webfont.ttf diff --git a/flask/app/static/fonts/fontawesome-webfont.woff b/app/static/fonts/fontawesome-webfont.woff similarity index 100% rename from flask/app/static/fonts/fontawesome-webfont.woff rename to app/static/fonts/fontawesome-webfont.woff diff --git a/flask/app/static/fonts/fontawesome-webfont.woff2 b/app/static/fonts/fontawesome-webfont.woff2 similarity index 100% rename from flask/app/static/fonts/fontawesome-webfont.woff2 rename to app/static/fonts/fontawesome-webfont.woff2 diff --git a/flask/app/static/images/.gitkeep b/app/static/images/.gitkeep similarity index 100% rename from flask/app/static/images/.gitkeep rename to app/static/images/.gitkeep diff --git a/flask/app/static/images/icons/_blank.png b/app/static/images/icons/_blank.png similarity index 100% rename from flask/app/static/images/icons/_blank.png rename to app/static/images/icons/_blank.png diff --git a/flask/app/static/images/icons/_page.png b/app/static/images/icons/_page.png similarity index 100% rename from flask/app/static/images/icons/_page.png rename to app/static/images/icons/_page.png diff --git a/flask/app/static/images/icons/doc.png b/app/static/images/icons/doc.png similarity index 100% rename from flask/app/static/images/icons/doc.png rename to app/static/images/icons/doc.png diff --git a/flask/app/static/images/icons/gif.png b/app/static/images/icons/gif.png similarity index 100% rename from flask/app/static/images/icons/gif.png rename to app/static/images/icons/gif.png diff --git a/flask/app/static/images/icons/jpg.png b/app/static/images/icons/jpg.png similarity index 100% rename from flask/app/static/images/icons/jpg.png rename to app/static/images/icons/jpg.png diff --git a/flask/app/static/images/icons/pdf.png b/app/static/images/icons/pdf.png similarity index 100% rename from flask/app/static/images/icons/pdf.png rename to app/static/images/icons/pdf.png diff --git a/flask/app/static/images/icons/png.png b/app/static/images/icons/png.png similarity index 100% rename from flask/app/static/images/icons/png.png rename to app/static/images/icons/png.png diff --git a/flask/app/static/images/icons/txt.png b/app/static/images/icons/txt.png similarity index 100% rename from flask/app/static/images/icons/txt.png rename to app/static/images/icons/txt.png diff --git a/flask/app/static/images/icons/xls.png b/app/static/images/icons/xls.png similarity index 100% rename from flask/app/static/images/icons/xls.png rename to app/static/images/icons/xls.png diff --git a/flask/app/static/images/icons/xlsx.png b/app/static/images/icons/xlsx.png similarity index 100% rename from flask/app/static/images/icons/xlsx.png rename to app/static/images/icons/xlsx.png diff --git a/flask/app/static/images/icons/zip.png b/app/static/images/icons/zip.png similarity index 100% rename from flask/app/static/images/icons/zip.png rename to app/static/images/icons/zip.png diff --git a/flask/app/static/images/loading.gif b/app/static/images/loading.gif similarity index 100% rename from flask/app/static/images/loading.gif rename to app/static/images/loading.gif diff --git a/flask/app/static/images/logo.png b/app/static/images/logo.png similarity index 100% rename from flask/app/static/images/logo.png rename to app/static/images/logo.png diff --git a/flask/app/static/index.html b/app/static/index.html similarity index 100% rename from flask/app/static/index.html rename to app/static/index.html diff --git a/flask/app/static/js/cards.controller.js b/app/static/js/cards.controller.js similarity index 100% rename from flask/app/static/js/cards.controller.js rename to app/static/js/cards.controller.js diff --git a/flask/app/static/js/cards.factory.js b/app/static/js/cards.factory.js similarity index 100% rename from flask/app/static/js/cards.factory.js rename to app/static/js/cards.factory.js diff --git a/flask/app/static/js/config.controller.js b/app/static/js/config.controller.js similarity index 100% rename from flask/app/static/js/config.controller.js rename to app/static/js/config.controller.js diff --git a/flask/app/static/js/config.factory.js b/app/static/js/config.factory.js similarity index 100% rename from flask/app/static/js/config.factory.js rename to app/static/js/config.factory.js diff --git a/flask/app/static/js/dashboard.controller.js b/app/static/js/dashboard.controller.js similarity index 100% rename from flask/app/static/js/dashboard.controller.js rename to app/static/js/dashboard.controller.js diff --git a/flask/app/static/js/dateConversion.factory.js b/app/static/js/dateConversion.factory.js similarity index 100% rename from flask/app/static/js/dateConversion.factory.js rename to app/static/js/dateConversion.factory.js diff --git a/flask/app/static/js/devices.factory.js b/app/static/js/devices.factory.js similarity index 100% rename from flask/app/static/js/devices.factory.js rename to app/static/js/devices.factory.js diff --git a/flask/app/static/js/docs.controller.js b/app/static/js/docs.controller.js similarity index 100% rename from flask/app/static/js/docs.controller.js rename to app/static/js/docs.controller.js diff --git a/flask/app/static/js/docs.factory.js b/app/static/js/docs.factory.js similarity index 100% rename from flask/app/static/js/docs.factory.js rename to app/static/js/docs.factory.js diff --git a/flask/app/static/js/events.controller.js b/app/static/js/events.controller.js similarity index 100% rename from flask/app/static/js/events.controller.js rename to app/static/js/events.controller.js diff --git a/flask/app/static/js/gaugeoff.controller.js b/app/static/js/gaugeoff.controller.js similarity index 91% rename from flask/app/static/js/gaugeoff.controller.js rename to app/static/js/gaugeoff.controller.js index 4f1016b..f06150d 100644 --- a/flask/app/static/js/gaugeoff.controller.js +++ b/app/static/js/gaugeoff.controller.js @@ -3,7 +3,7 @@ poconsole.controller('gaugeOffCtrl',function($scope, Page, $q, $http) { Page.setPage('gaugeoff'); var getGaugeOffData = function(page_number){ var deferred = $q.defer(); - $http.get('/api/gauge_off_vals?q={"order_by":[{"field":"created_on","direction":"desc"}]}&page='+ page_number).success(function(data) { + $http.get('/api/gauge_off?q={"order_by":[{"field":"created_on","direction":"desc"}]}&page='+ page_number).success(function(data) { deferred.resolve(data); }); return deferred.promise; diff --git a/flask/app/static/js/lib/LineChart.min.js b/app/static/js/lib/LineChart.min.js similarity index 100% rename from flask/app/static/js/lib/LineChart.min.js rename to app/static/js/lib/LineChart.min.js diff --git a/flask/app/static/js/lib/angular-route.min.js b/app/static/js/lib/angular-route.min.js similarity index 100% rename from flask/app/static/js/lib/angular-route.min.js rename to app/static/js/lib/angular-route.min.js diff --git a/flask/app/static/js/lib/angular-route.min.js.map b/app/static/js/lib/angular-route.min.js.map similarity index 100% rename from flask/app/static/js/lib/angular-route.min.js.map rename to app/static/js/lib/angular-route.min.js.map diff --git a/flask/app/static/js/lib/angular.min.js b/app/static/js/lib/angular.min.js similarity index 100% rename from flask/app/static/js/lib/angular.min.js rename to app/static/js/lib/angular.min.js diff --git a/flask/app/static/js/lib/angular.min.js.map b/app/static/js/lib/angular.min.js.map similarity index 100% rename from flask/app/static/js/lib/angular.min.js.map rename to app/static/js/lib/angular.min.js.map diff --git a/flask/app/static/js/lib/bootstrap.min.js b/app/static/js/lib/bootstrap.min.js similarity index 100% rename from flask/app/static/js/lib/bootstrap.min.js rename to app/static/js/lib/bootstrap.min.js diff --git a/flask/app/static/js/lib/d3.min.js b/app/static/js/lib/d3.min.js similarity index 100% rename from flask/app/static/js/lib/d3.min.js rename to app/static/js/lib/d3.min.js diff --git a/flask/app/static/js/lib/jquery-2.2.4.min.js b/app/static/js/lib/jquery-2.2.4.min.js similarity index 100% rename from flask/app/static/js/lib/jquery-2.2.4.min.js rename to app/static/js/lib/jquery-2.2.4.min.js diff --git a/flask/app/static/js/lib/justgage.js b/app/static/js/lib/justgage.js similarity index 100% rename from flask/app/static/js/lib/justgage.js rename to app/static/js/lib/justgage.js diff --git a/flask/app/static/js/lib/ng-justgage.js b/app/static/js/lib/ng-justgage.js similarity index 100% rename from flask/app/static/js/lib/ng-justgage.js rename to app/static/js/lib/ng-justgage.js diff --git a/flask/app/static/js/lib/ng-quick-date.min.js b/app/static/js/lib/ng-quick-date.min.js similarity index 100% rename from flask/app/static/js/lib/ng-quick-date.min.js rename to app/static/js/lib/ng-quick-date.min.js diff --git a/flask/app/static/js/lib/raphael-min.js b/app/static/js/lib/raphael-min.js similarity index 100% rename from flask/app/static/js/lib/raphael-min.js rename to app/static/js/lib/raphael-min.js diff --git a/flask/app/static/js/lib/sugar.min.js b/app/static/js/lib/sugar.min.js similarity index 100% rename from flask/app/static/js/lib/sugar.min.js rename to app/static/js/lib/sugar.min.js diff --git a/flask/app/static/js/main.controller.js b/app/static/js/main.controller.js similarity index 100% rename from flask/app/static/js/main.controller.js rename to app/static/js/main.controller.js diff --git a/flask/app/static/js/notes.controller.js b/app/static/js/notes.controller.js similarity index 100% rename from flask/app/static/js/notes.controller.js rename to app/static/js/notes.controller.js diff --git a/flask/app/static/js/notes.factory.js b/app/static/js/notes.factory.js similarity index 100% rename from flask/app/static/js/notes.factory.js rename to app/static/js/notes.factory.js diff --git a/flask/app/static/js/page.factory.js b/app/static/js/page.factory.js similarity index 100% rename from flask/app/static/js/page.factory.js rename to app/static/js/page.factory.js diff --git a/flask/app/static/js/router.js b/app/static/js/router.js similarity index 100% rename from flask/app/static/js/router.js rename to app/static/js/router.js diff --git a/flask/app/static/js/tagVals.controller.js b/app/static/js/tagVals.controller.js similarity index 100% rename from flask/app/static/js/tagVals.controller.js rename to app/static/js/tagVals.controller.js diff --git a/flask/app/static/js/tags.controller.js b/app/static/js/tags.controller.js similarity index 100% rename from flask/app/static/js/tags.controller.js rename to app/static/js/tags.controller.js diff --git a/flask/app/static/js/tags.factory.js b/app/static/js/tags.factory.js similarity index 100% rename from flask/app/static/js/tags.factory.js rename to app/static/js/tags.factory.js diff --git a/flask/app/static/js/welltest.controller.js b/app/static/js/welltest.controller.js similarity index 100% rename from flask/app/static/js/welltest.controller.js rename to app/static/js/welltest.controller.js diff --git a/flask/app/static/js/welltest.factory.js b/app/static/js/welltest.factory.js similarity index 84% rename from flask/app/static/js/welltest.factory.js rename to app/static/js/welltest.factory.js index 3d7cbf8..06a06d5 100644 --- a/flask/app/static/js/welltest.factory.js +++ b/app/static/js/welltest.factory.js @@ -1,7 +1,7 @@ poconsole.factory('WellTest',function($q, $http, $log){ var getWellTestPage = function(page_number) { var deferred = $q.defer(); - $http.get('/api/well_test_vals?q={"order_by":[{"field":"created_on","direction":"desc"}]}&page=' + page_number).success(function(data) { + $http.get('/api/well_tests?q={"order_by":[{"field":"created_on","direction":"desc"}]}&page=' + page_number).success(function(data) { deferred.resolve(data); }); return deferred.promise; @@ -9,7 +9,7 @@ poconsole.factory('WellTest',function($q, $http, $log){ var getWellTest = function(id){ var deferred = $q.defer(); - $http.get('/api/well_test_vals/' + id).success(function(data) { + $http.get('/api/well_tests/' + id).success(function(data) { deferred.resolve(data); }); return deferred.promise; @@ -29,7 +29,7 @@ poconsole.factory('WellTest',function($q, $http, $log){ 'spc_gravity_h2o': t.spc_gravity_h2o, 'created_on': t.created_on }; - $http.post('/api/well_test_vals', well_test).success(function(data){ + $http.post('/api/well_tests', well_test).success(function(data){ deferred.resolve(data); }); return deferred.promise; @@ -49,7 +49,7 @@ poconsole.factory('WellTest',function($q, $http, $log){ 'spc_gravity_h2o': t.spc_gravity_h2o, 'created_on': t.created_on }; - $http.put('/api/well_test_vals/'+ t._id, data=well_test).success(function(data){ + $http.put('/api/well_tests/'+ t._id, data=well_test).success(function(data){ deferred.resolve(data); }); return deferred.promise; @@ -57,7 +57,7 @@ poconsole.factory('WellTest',function($q, $http, $log){ var deleteWellTest = function(id){ var deferred = $q.defer(); - var url = '/api/well_test_vals/' + id; + var url = '/api/well_tests/' + id; $http.delete(url).success(function(data) { deferred.resolve({ data: data diff --git a/flask/app/static/templates/card.html b/app/static/templates/card.html similarity index 100% rename from flask/app/static/templates/card.html rename to app/static/templates/card.html diff --git a/flask/app/static/templates/cardlist.html b/app/static/templates/cardlist.html similarity index 100% rename from flask/app/static/templates/cardlist.html rename to app/static/templates/cardlist.html diff --git a/flask/app/static/templates/config.html b/app/static/templates/config.html similarity index 100% rename from flask/app/static/templates/config.html rename to app/static/templates/config.html diff --git a/flask/app/static/templates/dashboard.html b/app/static/templates/dashboard.html similarity index 100% rename from flask/app/static/templates/dashboard.html rename to app/static/templates/dashboard.html diff --git a/flask/app/static/templates/docs.html b/app/static/templates/docs.html similarity index 100% rename from flask/app/static/templates/docs.html rename to app/static/templates/docs.html diff --git a/flask/app/static/templates/events.html b/app/static/templates/events.html similarity index 100% rename from flask/app/static/templates/events.html rename to app/static/templates/events.html diff --git a/flask/app/static/templates/gaugeOff.html b/app/static/templates/gaugeOff.html similarity index 100% rename from flask/app/static/templates/gaugeOff.html rename to app/static/templates/gaugeOff.html diff --git a/flask/app/static/templates/notes.html b/app/static/templates/notes.html similarity index 100% rename from flask/app/static/templates/notes.html rename to app/static/templates/notes.html diff --git a/flask/app/static/templates/tagVals.html b/app/static/templates/tagVals.html similarity index 100% rename from flask/app/static/templates/tagVals.html rename to app/static/templates/tagVals.html diff --git a/flask/app/static/templates/tags.html b/app/static/templates/tags.html similarity index 100% rename from flask/app/static/templates/tags.html rename to app/static/templates/tags.html diff --git a/flask/app/static/templates/welltest.html b/app/static/templates/welltest.html similarity index 100% rename from flask/app/static/templates/welltest.html rename to app/static/templates/welltest.html diff --git a/bower.json b/bower.json deleted file mode 100644 index c7c7499..0000000 --- a/bower.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "POConsole", - "description": "Interface to Henry Pump POC", - "main": "app.coffee", - "authors": [ - "Patrick McDonagh" - ], - "license": "Henry Pump", - "keywords": [ - "poconsole" - ], - "moduleType": [ - "node" - ], - "homepage": "www.henry-pump.com", - "private": true, - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ], - "dependencies": { - "angular-justgage": "~1.0.1", - "jquery": "^2.2.2", - "angular": "^1.5.2", - "bootstrap": "~3.3.6", - "angular-route": "^1.5.2", - "font-awesome": "~4.5.0", - "ngQuickDate": "^1.3.4", - "angular-animate-css": "ng-animate-css#^0.0.4", - "angular-bootstrap": "^1.2.5", - "angular-google-chart": "angular-google-charts#^0.0.11" - }, - "resolutions": { - "angular": "^1.5.2" - } -} diff --git a/events.py b/events.py deleted file mode 100644 index d7d0e85..0000000 --- a/events.py +++ /dev/null @@ -1,152 +0,0 @@ -seedData = [ -{ -'name':'Flow Line Pressure', -'event_class': 1, -'tag': 'Safety_Flow_Line_Pressure', -'deviceID': 1 -}, -{ -'name':'Load HiHi', -'event_class': 1, -'tag': 'Safety_Load_HiHi', -'deviceID': 1 -}, -{ -'name':'Load Lo', -'event_class': 1, -'tag': 'Safety_Load_Lo', -'deviceID': 1 -}, -{ -'name':'Tubing Pressure', -'event_class': 1, -'tag': 'Safety_Tubing_Pressure', -'deviceID': 1 -}, -{ -'name':'Load Hi', -'event_class': 1, -'tag': 'Safety_Load_Hi', -'deviceID': 1 -}, -{ -'name':'Casing Pressure', -'event_class': 1, -'tag': 'Safety_Casing_Pressure', -'deviceID': 1 -}, -{ -'name':'Fluid Load', -'event_class': 1, -'tag': 'Safety_Fluid_Load', -'deviceID': 1 -}, -{ -'name':'Flowmeter', -'event_class': 1, -'tag': 'Safety_Flowmeter', -'deviceID': 1 -}, -{ -'name':'Speed', -'event_class': 1, -'tag': 'Safety_Speed', -'deviceID': 1 -}, -{ -'name':'Load LoLo', -'event_class': 1, -'tag': 'Safety_Load_LoLo', -'deviceID': 1 -}, -{ -'name':'Inclinometer', -'event_class': 1, -'tag': 'Safety_Inclinometer', -'deviceID': 1 -}, -{ -'name': 'Unit Jogged', -'event_class': 2, -'tag': 'Pump.Jog', -'event_condition': 'Unit Jog', -'deviceID': 1 -}, -{ -'name': 'Restart (Auto Mode)', -'event_class': 2, -'tag': 'Pump.Auto_Restart', -'event_condition': 'Unit Start', -'deviceID': 1 -}, -{ -'name': 'Pump Off (POC Mode)', -'event_class': 2, -'tag': 'Pump.POC_Stop', -'event_condition': 'Unit Stop', -'deviceID': 1 -}, -{ -'name': 'Restart (Timer Mode)', -'event_class': 2, -'tag': 'Pump.Timed_Restart', -'event_condition': 'Unit Start', -'deviceID': 1 -}, -{ -'name': 'Restart (POC Mode)', -'event_class': 2, -'tag': 'Pump.POC_Restart', -'event_condition': 'Unit Start', -'deviceID': 1 -}, -{ -'name': 'Pump Off (Auto Mode)', -'event_class': 2, -'tag': 'Pump.Auto_Stop', -'event_condition': 'Unit Stop', -'deviceID': 1 -}, -{ -'name': 'Peak Energy Restart', -'event_class': 2, -'tag': 'PeakEnergy.Restart', -'event_condition': 'Unit Start', -'deviceID': 1 -}, -{ -'name': 'Peak Energy Stop', -'event_class': 2, -'tag': 'PeakEnergy.Stop', -'event_condition': 'Unit Stop', -'deviceID': 1 -}, -{ -'name': 'User Initiated Start', -'event_class': 2, -'tag': 'Pump.Start', -'event_condition': 'Unit Start', -'deviceID': 1 -}, -{ -'name': 'User Initiated Stop', -'event_class': 2, -'tag': 'Pump.Stop', -'event_condition': 'Unit Stop', -'deviceID': 1 -}, -{ -'name': 'Pump Off (Timer Mode)', -'event_class': 2, -'tag': 'Pump.Timed_Stop', -'event_condition': 'Unit Stop', -'deviceID': 1 -} -] - -for x in range(0, len(seedData)): - if seedData[x]['event_class'] == 2: - print("ev{} = EventConfig(name='{}', event_class_id={}, tag='{}', condition='{}', device_id=1)".format(x, seedData[x]['name'], seedData[x]['event_class'], seedData[x]['tag'], seedData[x]['event_condition'])) - else: - print("ev{} = EventConfig(name='{}', event_class_id={}, tag='{}', device_id=1)".format(x, seedData[x]['name'], seedData[x]['event_class'], seedData[x]['tag'])) - print("db.session.add(ev{})".format(x)) diff --git a/flask/database.db b/flask/database.db deleted file mode 100644 index cdd3973..0000000 Binary files a/flask/database.db and /dev/null differ diff --git a/package.json b/package.json deleted file mode 100644 index fbcd2bd..0000000 --- a/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "POConsole", - "version": "1.0.0", - "description": "Interface to Henry Pump POC", - "main": "app.js", - "dependencies": { - "body-parser": "*", - "chokidar": "*", - "ejs": "*", - "errorhandler": "*", - "express": "*", - "method-override": "*", - "morgan": "*", - "mysql": "*", - "serve-favicon": "*", - "ya-csv": "*", - "is-running":"*", - "async":"*", - "ps-node":"*", - "sqlite3": "*", - "coffee-script":"*", - "n3-charts":"*", - "d3":"*" - }, - "devDependencies": {}, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "forever-coffee": "forever -c coffee app.coffee" - }, - "author": "Patrick McDonagh", - "license": "ISC" -} diff --git a/public/css/app.css b/public/css/app.css deleted file mode 100644 index c925240..0000000 --- a/public/css/app.css +++ /dev/null @@ -1,30 +0,0 @@ -/* app css stylesheet */ - -.menu { - list-style: none; - border-bottom: 0.1em solid black; - margin-bottom: 2em; - padding: 0 0 0.5em; -} - -.menu:before { - content: "["; -} - -.menu:after { - content: "]"; -} - -.menu > li { - display: inline; -} - -.menu > li:before { - content: "|"; - padding-right: 0.3em; -} - -.menu > li:nth-child(1):before { - content: ""; - padding: 0; -} diff --git a/public/css/font.css b/public/css/font.css deleted file mode 100644 index 14c56b6..0000000 --- a/public/css/font.css +++ /dev/null @@ -1,32 +0,0 @@ -/* Generated by Font Squirrel (http://www.fontsquirrel.com) on November 17, 2014 */ - - - -@font-face { - font-family: 'Source Sans Pro'; - src: url('/fonts/sourcesanspro-regular-webfont.eot'); - src: url('/fonts/sourcesanspro-regular-webfont.eot?#iefix') format('embedded-opentype'), - url('/fonts/sourcesanspro-regular-webfont.woff2') format('woff2'), - url('/fonts/sourcesanspro-regular-webfont.woff') format('woff'), - url('/fonts/sourcesanspro-regular-webfont.ttf') format('truetype'), - url('/fonts/sourcesanspro-regular-webfont.svg#source_sans_proregular') format('svg'); - font-weight: normal; - font-style: normal; - -} - - - - -@font-face { - font-family: 'Source Sans Pro Bold'; - src: url('/fonts/sourcesanspro-bold-webfont.eot'); - src: url('/fonts/sourcesanspro-bold-webfont.eot?#iefix') format('embedded-opentype'), - url('/fonts/sourcesanspro-bold-webfont.woff2') format('woff2'), - url('/fonts/sourcesanspro-bold-webfont.woff') format('woff'), - url('/fonts/sourcesanspro-bold-webfont.ttf') format('truetype'), - url('/fonts/sourcesanspro-bold-webfont.svg#source_sans_probold') format('svg'); - font-weight: normal; - font-style: normal; - -} diff --git a/public/fonts/font.css b/public/fonts/font.css deleted file mode 100644 index c501e8c..0000000 --- a/public/fonts/font.css +++ /dev/null @@ -1,32 +0,0 @@ -/* Generated by Font Squirrel (http://www.fontsquirrel.com) on November 17, 2014 */ - - - -@font-face { - font-family: 'source_sans_proregular'; - src: url('/fonts/sourcesanspro-regular-webfont.eot'); - src: url('/fonts/sourcesanspro-regular-webfont.eot?#iefix') format('embedded-opentype'), - url('/fonts/sourcesanspro-regular-webfont.woff2') format('woff2'), - url('/fonts/sourcesanspro-regular-webfont.woff') format('woff'), - url('/fonts/sourcesanspro-regular-webfont.ttf') format('truetype'), - url('/fonts/sourcesanspro-regular-webfont.svg#source_sans_proregular') format('svg'); - font-weight: normal; - font-style: normal; - -} - - - - -@font-face { - font-family: 'source_sans_probold'; - src: url('/fonts/sourcesanspro-bold-webfont.eot'); - src: url('/fonts/sourcesanspro-bold-webfont.eot?#iefix') format('embedded-opentype'), - url('/fonts/sourcesanspro-bold-webfont.woff2') format('woff2'), - url('/fonts/sourcesanspro-bold-webfont.woff') format('woff'), - url('/fonts/sourcesanspro-bold-webfont.ttf') format('truetype'), - url('/fonts/sourcesanspro-bold-webfont.svg#source_sans_probold') format('svg'); - font-weight: normal; - font-style: normal; - -} diff --git a/public/fonts/glyphicons-halflings-regular.eot b/public/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index 4a4ca86..0000000 Binary files a/public/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/public/fonts/glyphicons-halflings-regular.svg b/public/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index 265491f..0000000 --- a/public/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - diff --git a/public/fonts/glyphicons-halflings-regular.ttf b/public/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 67fa00b..0000000 Binary files a/public/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/public/fonts/glyphicons-halflings-regular.woff b/public/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 8c54182..0000000 Binary files a/public/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/public/fonts/sourcesanspro-bold-webfont.eot b/public/fonts/sourcesanspro-bold-webfont.eot deleted file mode 100644 index 04d417a..0000000 Binary files a/public/fonts/sourcesanspro-bold-webfont.eot and /dev/null differ diff --git a/public/fonts/sourcesanspro-bold-webfont.svg b/public/fonts/sourcesanspro-bold-webfont.svg deleted file mode 100644 index 458dc4e..0000000 --- a/public/fonts/sourcesanspro-bold-webfont.svg +++ /dev/null @@ -1,954 +0,0 @@ - - - diff --git a/public/fonts/sourcesanspro-bold-webfont.ttf b/public/fonts/sourcesanspro-bold-webfont.ttf deleted file mode 100644 index 9908c08..0000000 Binary files a/public/fonts/sourcesanspro-bold-webfont.ttf and /dev/null differ diff --git a/public/fonts/sourcesanspro-bold-webfont.woff b/public/fonts/sourcesanspro-bold-webfont.woff deleted file mode 100644 index 59485a2..0000000 Binary files a/public/fonts/sourcesanspro-bold-webfont.woff and /dev/null differ diff --git a/public/fonts/sourcesanspro-bold-webfont.woff2 b/public/fonts/sourcesanspro-bold-webfont.woff2 deleted file mode 100644 index 5746f8e..0000000 Binary files a/public/fonts/sourcesanspro-bold-webfont.woff2 and /dev/null differ diff --git a/public/fonts/sourcesanspro-regular-webfont.eot b/public/fonts/sourcesanspro-regular-webfont.eot deleted file mode 100644 index 2b03d5b..0000000 Binary files a/public/fonts/sourcesanspro-regular-webfont.eot and /dev/null differ diff --git a/public/fonts/sourcesanspro-regular-webfont.svg b/public/fonts/sourcesanspro-regular-webfont.svg deleted file mode 100644 index a19e13b..0000000 --- a/public/fonts/sourcesanspro-regular-webfont.svg +++ /dev/null @@ -1,977 +0,0 @@ - - - diff --git a/public/fonts/sourcesanspro-regular-webfont.ttf b/public/fonts/sourcesanspro-regular-webfont.ttf deleted file mode 100644 index 911370e..0000000 Binary files a/public/fonts/sourcesanspro-regular-webfont.ttf and /dev/null differ diff --git a/public/fonts/sourcesanspro-regular-webfont.woff b/public/fonts/sourcesanspro-regular-webfont.woff deleted file mode 100644 index 87ad097..0000000 Binary files a/public/fonts/sourcesanspro-regular-webfont.woff and /dev/null differ diff --git a/public/fonts/sourcesanspro-regular-webfont.woff2 b/public/fonts/sourcesanspro-regular-webfont.woff2 deleted file mode 100644 index 66533f0..0000000 Binary files a/public/fonts/sourcesanspro-regular-webfont.woff2 and /dev/null differ diff --git a/public/img/HP_Logo.png b/public/img/HP_Logo.png deleted file mode 100644 index d48a565..0000000 Binary files a/public/img/HP_Logo.png and /dev/null differ diff --git a/public/img/favicon.ico b/public/img/favicon.ico deleted file mode 100644 index 9800544..0000000 Binary files a/public/img/favicon.ico and /dev/null differ diff --git a/public/img/loading.gif b/public/img/loading.gif deleted file mode 100644 index ddb7ff1..0000000 Binary files a/public/img/loading.gif and /dev/null differ diff --git a/public/img/logo.png b/public/img/logo.png deleted file mode 100644 index 62ef745..0000000 Binary files a/public/img/logo.png and /dev/null differ diff --git a/public/img/oem2.bmp b/public/img/oem2.bmp deleted file mode 100644 index 14d7e7f..0000000 Binary files a/public/img/oem2.bmp and /dev/null differ diff --git a/public/js/controllers.js b/public/js/controllers.js deleted file mode 100644 index c45a5ae..0000000 --- a/public/js/controllers.js +++ /dev/null @@ -1,16 +0,0 @@ -var dateConversion = function(raw){ - var converted = raw.slice(4, 6) + '/' + raw.slice(6, 8) + '/' + raw.slice(0, 4); - return { - conv: converted, - unconv: raw - }; -}; - -var pad = function(str, max) { - str = str.toString(); - if (str.length < max) { - return pad('0' + str, max); - } else { - return str; - } -}; diff --git a/public/js/router.js b/public/js/router.js deleted file mode 100644 index 1a2a49c..0000000 --- a/public/js/router.js +++ /dev/null @@ -1,61 +0,0 @@ -var wellSite = angular.module('wellSite', ['ngRoute', 'wellCtrls']); - -wellSite.config([ - '$routeProvider', function($routeProvider) { - $routeProvider.when('/dashboard', { - templateUrl: '/partials/dashboard.html', - controller: 'dashboardCtrl' - }).when('/totals', { - templateUrl: '/partials/totals.html', - controller: 'totalsCtrl' - }).when('/tags', { - templateUrl: '/partials/tags.html', - controller: 'tagCtrl' - }).when('/card/id/:date/:card_id', { - templateUrl: '/partials/cardOverview.html', - controller: 'cardIDCtrl' - }).when('/card/compare', { - templateUrl: '/partials/cardCompare.html', - controller: 'cardCompareCtrl' - }).when('/card/:id/overview', { - templateUrl: '/partials/cardOverview.html', - controller: 'cardDataCtrl' - }).when('/card/:id/data', { - templateUrl: '/partials/cardData.html', - controller: 'cardDataCtrl' - }).when('/card/:id/cards', { - templateUrl: '/partials/cardCards.html', - controller: 'cardDataCtrl' - }).when('/card/:id', { - templateUrl: '/partials/cardOverview.html', - controller: 'cardDataCtrl' - }).when('/files/:date', { - templateUrl: '/partials/fileList.html', - controller: 'fileListPreviousCtrl' - }).when('/files', { - templateUrl: '/partials/fileList.html', - controller: 'fileListTodayCtrl' - }).when('/gaugeOff', { - templateUrl: '/partials/gaugeOff.html', - controller: 'gaugeOffCtrl' - }).when('/wellTest', { - templateUrl: '/partials/wellTest.html', - controller: 'wellTestCtrl' - }).when('/events', { - templateUrl: '/partials/eventList.html', - controller: 'eventsCtrl' - }).when('/setup', { - templateUrl: '/partials/setup.html', - controller: 'setupCtrl' - }).when('/notes', { - templateUrl: '/partials/notes.html', - controller: 'notesCtrl' - }).when('/fluid_shot', { - templateUrl: '/partials/fluid_shot.html', - controller: 'fluidShotCtrl' - }).when('/', { - templateUrl: '/partials/dashboard.html', - controller: 'dashboardCtrl' - }); - } -]); diff --git a/public/partials/cardCards.html b/public/partials/cardCards.html deleted file mode 100644 index 942f0f7..0000000 --- a/public/partials/cardCards.html +++ /dev/null @@ -1,49 +0,0 @@ -

| Date | -Fillage | -Fluid Level | -Polished Rod HP | -SPM | -Fluid Load | -
|---|---|---|---|---|---|
| {{card.Stroke_Time | date: "medium"}} | -{{card.Fillage_Percent | number:2}} % | -{{card.Fluid_Level | number:2}} ft. | -{{card.Polished_Rod_HP | number:3}} HP | -{{card.SPM | number:3}} SPM | -{{card.Downhole_Fluid_Load | number:1}} lbs. | -

| Measurement | Value |
|---|---|
| Card ID | {{ cardData.Card_ID }} |
| Num Points | {{ cardData.Num_Points }} |
| Fillage Percent | {{ cardData.Fillage_Percent | number:3 }} % |
| Card Type | {{ cardData.Card_Type }} |
| Fluid Gradient | {{ cardData.Fluid_Gradient | number:3 }} lbs/ft |
| Stroke Speed | {{ cardData.SPM | number:3}} lbs/ft |
| dt | {{ cardData.dt | number:3 }} sec |
| Tubing Head Pressure | {{ cardData.Tubing_Head_Pressure | number:3 }} PSI |
| Stuffing Box Friction | {{ cardData.Stuffing_Box_Friction | number:3 }} lbs. |
| Surface Min. Position | {{ cardData.Surface_Min_Position | number:3 }} in. |
| Surface Max. Position | {{ cardData.Surface_Max_Position | number:3 }} in. |
| Surface Stroke Length | {{ cardData.Surface_Stroke_Length | number:3 }} in. |
| Surface Min. Load | {{ cardData.Surface_Min_Load | number:3 }} lbs. |
| Surface Max. Load | {{ cardData.Surface_Max_Load | number:3 }} lbs. |
| Downhole Min. Position | {{ cardData.Downhole_Min_Position | number:3 }} in. |
| Downhole Max Position | {{ cardData.Downhole_Max_Position | number:3 }} in. |
| Downhole Gross Stroke | {{ cardData.Downhole_Gross_Stroke | number:3 }} in. |
| Tubing Movement | {{ cardData.Tubing_Movement | number:3 }} in. |
| Downhole Adjusted Gross Stroke | {{ cardData.Downhole_Adjusted_Gross_Stroke | number:3 }} in. |
| Downhole Net Stroke | {{ cardData.Downhole_Net_Stroke | number:3 }} in. |
| Downhole Min. Load | {{ cardData.Downhole_Min_Load | number:3 }} lbs. |
| Downhole Max. Load | {{ cardData.Downhole_Max_Load | number:3 }} lbs. |
| Downhole Fluid Load | {{ cardData.Downhole_Fluid_Load | number:3 }} lbs. |
| Polished Rod HP | {{ cardData.Polished_Rod_HP | number:3 }} HP |
| Pump HP | {{ cardData.Pump_HP | number:3 }} HP |
| Fluid Level | {{ cardData.Fluid_Level | number:3 }} ft. |


| Date | -Device Name | -Type | -Condition | -Value | -Tag | -Stroke Number | - -
|---|---|---|---|---|---|---|
| {{ event.datetime | date:'medium'}} | -{{ event.device_name }} | -{{ event.type }} | -{{ event.cond }} | -{{ event.value }} | -{{ event.tag }} | -{{ event.stroke_number }} | -
Page: {{currentPage}} / {{numPages}}
-
- | - | Date | - -Type | -- |
|---|---|---|---|
| - | {{file.Stroke_Time | date: "medium"}} | - -{{file.Card_Type}} | -Download CSV | -
| DateTime | -Pump Intake Pressure | -Fluid Gradient | -Friction | -Taken By | -- | - |
|---|---|---|---|---|---|---|
| {{shot.shot_datetime | date:"medium"}} | -{{shot.pump_intake_pressure}} | -{{shot.fluid_gradient}} | -{{shot.friction}} | -{{shot.taken_by}} | -- | - |
| DateTime | -Pump Intake Pressure | -Fluid Gradient | -Friction | -Taken By | -- |
|---|---|---|---|---|---|
| {{shot.shot_datetime | date:"medium"}} | -{{shot.pump_intake_pressure}} | -{{shot.fluid_gradient}} | -{{shot.friction}} | -{{shot.taken_by}} | -- |
| Date | -% Run | -- | kWh | -- | kWh Regen | -- | Cost to Operate | -- | Lifting Cost | -- | Peak Load | -- | Min. Load | -- | Average SPM | -- | Calc. Production | -- | Proj. Production | -- | Polished Rod HP | -- | Fluid Level | -- | Pump Intake Pressure | -- | Inflow Rate | -- |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ entry.gauge_date | date}} | -{{ entry.percent_run}} % | -{{ entry.delta.percent_run}} % | -{{ entry.kWh }} kWh | -{{ entry.delta.kWh }} % | -{{ entry.kWh_regen }} kWh | -{{ entry.delta.kWh_regen }} % | -${{ entry.electricity_cost }} | -{{ entry.delta.electricity_cost }} % | -${{ entry.lifting_cost }} | -{{ entry.delta.lifting_cost }} % | -{{ entry.peak_load }} lbs | -{{ entry.delta.peak_load }} % | -{{ entry.min_load }} lbs | -{{ entry.delta.min_load }} % | -{{ entry.average_SPM }} SPM | -{{ entry.delta.average_SPM }} % | -{{ entry.production_calculated }} BBL | -{{ entry.delta.production_calculated }} % | -{{ entry.full_card_production }}BBL | -{{ entry.delta.full_card_production }} % | -{{ entry.polished_rod_HP }} HP | -{{ entry.delta.polished_rod_HP }} % | -{{ entry.fluid_above_pump }} ft. | -{{ entry.delta.fluid_above_pump }} % | -{{ entry.pump_intake_pressure }} PSI | -{{ entry.delta.pump_intake_pressure }} % | -{{ entry.inflow_rate }} BBL/hr | -{{ entry.delta.inflow_rate }} % | -
| DateTime | -Stroke | -Type | -Author | -Note | -- | - |
|---|---|---|---|---|---|---|
| {{note.date_time | date:"medium"}} | -{{note.stroke}} | -{{note.ntype}} | -{{note.author}} | -{{note.note}} | -- | - |
| DateTime | -Stroke | -Type | -Author | -Note | -- |
|---|---|---|---|---|---|
| {{note.date_time | date:"medium"}} | -{{note.stroke}} | -{{note.ntype}} | -{{note.author}} | -{{note.note}} | -- |
{{tagValue}}
- 

| Date | -Duration | -Volume Oil | -Volume Water | -Volume Gas | -k-Factor | -Proj. Vol. Oil | -Proj. Vol. Water | -API Grav. Oil | -Specific Grav. Water | - -
|---|---|---|---|---|---|---|---|---|---|
| {{ test.test_date | date }} | -{{ test.test_hours }} Hours | -{{ test.test_volume_oil }} BBL | -{{ test.test_volume_water }} BBL | -{{ test.test_volume_gas }} mmcf | -{{ test.k_factor }} | -{{ test.projected_volume_oil }} BBL | -{{ test.projected_volume_water }} BBL | -{{ test.api_gravity_oil }} | -{{ test.sg_water }} | -
| DateTime | -Pump Intake Pressure | -Fluid Gradient | -Friction | -Taken By | -- | - |
|---|---|---|---|---|---|---|
| {{shot.shot_datetime | date:"medium"}} | -{{shot.pump_intake_pressure}} | -{{shot.fluid_gradient}} | -{{shot.friction}} | -{{shot.taken_by}} | -- | - |
| DateTime | -Pump Intake Pressure | -Fluid Gradient | -Friction | -Taken By | -- |
|---|---|---|---|---|---|
| {{shot.shot_datetime | date:"medium"}} | -{{shot.pump_intake_pressure}} | -{{shot.fluid_gradient}} | -{{shot.friction}} | -{{shot.taken_by}} | -- |
=i.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],a=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(oa.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return a[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},oa.set=function(n){var t=new m;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(m,{has:h,add:function(n){return this._[s(n+="")]=!0,n},remove:g,values:p,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t))}}),oa.behavior={},oa.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},oa.event=null,oa.requote=function(n){return n.replace(wa,"\\$&")};var wa=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,Sa={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},ka=function(n,t){return t.querySelector(n)},Na=function(n,t){return t.querySelectorAll(n)},Ea=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ea=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(ka=function(n,t){return Sizzle(n,t)[0]||null},Na=Sizzle,Ea=Sizzle.matchesSelector),oa.selection=function(){return oa.select(sa.documentElement)};var Aa=oa.selection.prototype=[];Aa.select=function(n){var t,e,r,u,i=[];n=A(n);for(var a=-1,o=this.length;++a =0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||pl,r=dl.get(r)||y,br(r(e.apply(null,la.call(arguments,1))))},oa.interpolateHcl=Rr,oa.interpolateHsl=Dr,oa.interpolateLab=Pr,oa.interpolateRound=Ur,oa.transform=function(n){var t=sa.createElementNS(oa.ns.prefix.svg,"g");return(oa.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:ml)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ml={a:1,b:0,c:0,d:1,e:0,f:0};oa.interpolateTransform=$r,oa.layout={},oa.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++et;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;u>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",f)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(i=[],"function"==typeof h)for(t=0;c>t;++t)i[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)i[t]=h;if(a=[],"function"==typeof g)for(t=0;c>t;++t)a[t]=+g.call(this,x[t],t);else for(t=0;c>t;++t)a[t]=g;if(o=[],"function"==typeof p)for(t=0;u>t;++t)o[t]=+p.call(this,M[t],t);else for(t=0;u>t;++t)o[t]=p;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=oa.behavior.drag().origin(y).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",nu)),arguments.length?void this.on("mouseover.force",tu).on("mouseout.force",eu).call(r):r},oa.rebind(l,c,"on")};var yl=20,Ml=1,xl=1/0;oa.layout.hierarchy=function(){function n(u){var i,a=[u],o=[];for(u.depth=0;null!=(i=a.pop());)if(o.push(i),(c=e.call(n,i,i.depth))&&(l=c.length)){for(var l,c,s;--l>=0;)a.push(s=c[l]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=c}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return au(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),o}var t=cu,e=ou,r=lu;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(iu(t,function(n){n.children&&(n.value=0)}),au(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},oa.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(a=i.length)){var a,o,l,c=-1;for(r=t.value?r/t.value:0;++cf?-1:1),p=oa.sum(c),v=p?(f-l*g)/p:0,d=oa.range(l),m=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(a[n],a[t])}),d.forEach(function(n){m[n]={data:a[n],value:o=c[n],startAngle:s,endAngle:s+=o*v+g,padAngle:h}}),m}var t=Number,e=bl,r=0,u=Fa,i=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n.padAngle=function(t){return arguments.length?(i=t,n):i},n};var bl={};oa.layout.stack=function(){function n(o,l){if(!(h=o.length))return o;var c=o.map(function(e,r){return t.call(n,e,r)}),s=c.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),a.call(n,t,e)]})}),f=e.call(n,s,l);c=oa.permute(c,f),s=oa.permute(s,f);var h,g,p,v,d=r.call(n,s,l),m=c[0].length;for(p=0;m>p;++p)for(u.call(n,c[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,c[g][p],v+=s[g-1][p][1],s[g][p][1]);return o}var t=y,e=pu,r=vu,u=gu,i=fu,a=hu;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||pu,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vu,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(a=t,n):a},n.out=function(t){return arguments.length?(u=t,n):u},n};var _l=oa.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(du),i=n.map(mu),a=oa.range(r).sort(function(n,t){return u[n]-u[t]}),o=0,l=0,c=[],s=[];for(t=0;r>t;++t)e=a[t],l>o?(o+=i[e],c.push(e)):(l+=i[e],s.push(e));return s.reverse().concat(c)},reverse:function(n){return oa.range(n.length).reverse()},"default":pu}),wl=oa.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,a=[],o=0,l=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>o&&(o=r),a.push(r)}for(e=0;i>e;++e)l[e]=(o-a[e])/2;return l},wiggle:function(n){var t,e,r,u,i,a,o,l,c,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=l=c=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,o=f[e][0]-f[e-1][0];s>t;++t){for(r=0,a=(n[t][e][1]-n[t][e-1][1])/(2*o);t>r;++r)a+=(n[r][e][1]-n[r][e-1][1])/o;i+=a*n[t][e][1]}g[e]=l-=u?i/u*o:0,c>l&&(c=l)}for(e=0;h>e;++e)g[e]-=c;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,a=1/u,o=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=a}for(e=0;i>e;++e)o[e]=0;return o},zero:vu});oa.layout.histogram=function(){function n(n,i){for(var a,o,l=[],c=n.map(e,this),s=r.call(this,c,i),f=u.call(this,s,c,i),i=-1,h=c.length,g=f.length-1,p=t?1:1/h;++i