Commit 049f21252ac23feb3853cb0d5d92d6527000337f

Authored by Adhidarma Hadiwinoto
1 parent 716a880bb4
Exists in master

dashboard-stocks

Showing 3 changed files with 51 additions and 0 deletions Inline Diff

lib/modem-dashboard/index.js
1 "use strict"; 1 "use strict";
2 2
3 const express = require('express'); 3 const express = require('express');
4 const nunjucks = require('nunjucks'); 4 const nunjucks = require('nunjucks');
5 5
6 const config = require('komodo-sdk/config'); 6 const config = require('komodo-sdk/config');
7 const logger = require('komodo-sdk/logger'); 7 const logger = require('komodo-sdk/logger');
8 const matrix = require('komodo-sdk/matrix'); 8 const matrix = require('komodo-sdk/matrix');
9 9
10 10
11 const routerSms = require('./router-sms'); 11 const routerSms = require('./router-sms');
12 const routerUssd = require('./router-ussd'); 12 const routerUssd = require('./router-ussd');
13 const routerStocks = require('./router-stocks');
13 14
14 const app = express(); 15 const app = express();
15 16
16 app.use(express.static(__dirname + '/public', {maxAge: 24 * 3600 * 1000})); 17 app.use(express.static(__dirname + '/public', {maxAge: 24 * 3600 * 1000}));
17 18
18 nunjucks.configure(__dirname + '/views', { 19 nunjucks.configure(__dirname + '/views', {
19 autoescape: true, 20 autoescape: true,
20 noCache: true, 21 noCache: true,
21 express: app 22 express: app
22 }); 23 });
23 24
24 function modemSignal(req, res, next) { 25 function modemSignal(req, res, next) {
25 const signal_strength = matrix && matrix.modem && matrix.modem.signal_strength ? matrix.modem.signal_strength : 0; 26 const signal_strength = matrix && matrix.modem && matrix.modem.signal_strength ? matrix.modem.signal_strength : 0;
26 res.locals.signal_strength = signal_strength; 27 res.locals.signal_strength = signal_strength;
27 28
28 if (signal_strength < 2 || !signal_strength) { 29 if (signal_strength < 2 || !signal_strength) {
29 res.locals.signal_strength_image = 'signal-0.png'; 30 res.locals.signal_strength_image = 'signal-0.png';
30 res.locals.signal_strength_title = 'No signal'; 31 res.locals.signal_strength_title = 'No signal';
31 } 32 }
32 else if (signal_strength < 10) { 33 else if (signal_strength < 10) {
33 res.locals.signal_strength_image = 'signal-1.png'; 34 res.locals.signal_strength_image = 'signal-1.png';
34 res.locals.signal_strength_title = 'Marginal'; 35 res.locals.signal_strength_title = 'Marginal';
35 } 36 }
36 else if (signal_strength < 15) { 37 else if (signal_strength < 15) {
37 res.locals.signal_strength_image = 'signal-2.png'; 38 res.locals.signal_strength_image = 'signal-2.png';
38 res.locals.signal_strength_title = 'OK'; 39 res.locals.signal_strength_title = 'OK';
39 } 40 }
40 else if (signal_strength < 20) { 41 else if (signal_strength < 20) {
41 res.locals.signal_strength_image = 'signal-3.png'; 42 res.locals.signal_strength_image = 'signal-3.png';
42 res.locals.signal_strength_title = 'Good'; 43 res.locals.signal_strength_title = 'Good';
43 } 44 }
44 else { 45 else {
45 res.locals.signal_strength_image = 'signal-4.png'; 46 res.locals.signal_strength_image = 'signal-4.png';
46 res.locals.signal_strength_title = 'Excelent'; 47 res.locals.signal_strength_title = 'Excelent';
47 } 48 }
48 49
49 next(); 50 next();
50 } 51 }
51 52
52 app.use(modemSignal); 53 app.use(modemSignal);
53 54
54 app.get('/', function(req, res, next) { 55 app.get('/', function(req, res, next) {
55 res.redirect('/sms'); 56 res.redirect('/sms');
56 }) 57 })
57 58
58 app.use('/sms', routerSms); 59 app.use('/sms', routerSms);
59 app.use('/ussd', routerUssd); 60 app.use('/ussd', routerUssd);
61 app.use('/stocks', routerStocks);
60 62
61 const modem_dashboard_port = (config && config.modem_dashboard && config.modem_dashboard.port) ? config.modem_dashboard.port : 22765; 63 const modem_dashboard_port = (config && config.modem_dashboard && config.modem_dashboard.port) ? config.modem_dashboard.port : 22765;
62 app.listen(modem_dashboard_port, function () { 64 app.listen(modem_dashboard_port, function () {
63 logger.info('Modem dashboard started', {listen_port: modem_dashboard_port}); 65 logger.info('Modem dashboard started', {listen_port: modem_dashboard_port});
64 }); 66 });
65 67
lib/modem-dashboard/router-stocks.js
File was created 1 "use strict";
2
3 const express = require('express');
4 const router = express.Router();
5 module.exports = router;
6
7 const matrix = require('komodo-sdk/matrix');
8
9 function pageIndex(req, res, next) {
10 let stocks_array;
11
12 if (!matrix || !matrix.stock || (typeof matrix.stock !== 'object')) {
13 stocks_array = null;
14 }
15
16 for (let key in matrix.stock) {
17 if (matrix.stock.hasOwnProperty(key)) {
18 stocks_array.push({
19 name: key,
20 balance: matrix.stock[key];
21 });
22 }
23 }
24
25 res.render(
26 'stocks.html',
27 {
28 page_title: 'Stock'
29 stocks_array: stocks_array
30 }
31 );
32
33 }
34
35 router.get('/', pageIndex);
36
lib/modem-dashboard/views/stocks.html
File was created 1 {% extends "template.html" %}
2
3 {% block content %}
4
5 <table id="stocks" class="table table-hover table-striped">
6 {% for stock in stocks_array %}
7 <tr>
8 <td>{{ stock.name }}</td>
9 <td>{{ stock.balance }}</td>
10 </tr>
11 {% endfor %}
12 </table>
13
14 {% endblock %}
15