Skip to content

Commit e19390a

Browse files
committed
Merge pull request #85 from nus-mtp/admin-improvements
Admin - Small Improvements
2 parents ba3f453 + 160fd3d commit e19390a

File tree

7 files changed

+25
-32
lines changed

7 files changed

+25
-32
lines changed

app_server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
},
99
"scripts": {
1010
"start": "node ./app/Router.js",
11-
"test": "grunt test && ./node_modules/lab/bin/lab -c -r console -o stdout -r html -o report/coverage.html -r lcov -o report/coverage.info",
11+
"test": "./node_modules/lab/bin/lab -c -r console -o stdout -r html -o report/coverage.html -r lcov -o report/coverage.info",
1212
"linter": "./node_modules/.bin/eslint app/ test/ public/",
1313
"doc": "jsdoc -r -c config/jsdoc_conf.json -R README.md -d doc"
1414
},

app_server/public/src/css/partials/_nav.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ $nav-secondary-bg-color: color("teal", "lighten-4");
1515
max-height: 4.5rem - 0.5rem;
1616
margin: (0.5rem / 2) auto;
1717
filter: hue-rotate(-188deg) saturate(82%) brightness(122%);
18+
cursor: pointer;
1819
}
1920

2021
> ul {

app_server/public/src/js/modules/app.js

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const wrapView = function (wrapper, vElement) {
1414
};
1515
const navPage = function (page) {
1616
let wrappedNav = wrapView((e) => m('div#nav', [
17-
m('img', {src: '/admin/img/logo.png'}),
17+
m('img', {src: '/admin/img/logo.png', onclick: App.goToHome}),
1818
e
1919
]), Nav);
2020
let wrappedPage = wrapView((e) => m('div#content.row', e), page);
@@ -34,21 +34,14 @@ App.routes = {
3434
'/login': wrapView(templatePage, require('./pages/login'))
3535
},
3636
app: {
37-
'/metrics': {controller: () => m.route('/metrics/overview')},
38-
'/metrics/overview': blank,
39-
'/metrics/realtime': blank,
40-
'/metrics/demographics': blank,
41-
4237
'/streams': {controller: () => m.route('/streams/live')},
4338
'/streams/live': navPage(require('./pages/streams')),
4439
'/streams/all': navPage(require('./pages/streams')),
45-
'/streams/search': blank,
4640
'/streams/view/:id': navPage(require('./pages/stream')),
47-
'/streams/stop/:id': blank,
41+
'/streams/stop/:id': require('./pages/streamstop'),
4842

4943
'/users': {controller: () => m.route('/users/all')},
5044
'/users/all': navPage(require('./pages/users')),
51-
'/users/search': blank,
5245
'/users/view/:id': navPage(require('./pages/user')),
5346

5447
'/admins': {controller: () => m.route('/admins/all')},
@@ -57,7 +50,7 @@ App.routes = {
5750
'/admins/view/:username': navPage(require('./pages/admin')),
5851
'/admins/delete/:username': navPage(require('./pages/admin')),
5952

60-
'/settings': blank,
53+
'/settings': {controller: () => m.route('/settings/logs')},
6154
'/settings/logs': navPage(require('./pages/logs')),
6255
'/settings/responses': navPage(require('./pages/logs')),
6356

app_server/public/src/js/modules/components/nav.js

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,20 @@ Nav.updateVisibleItems = function () {
1212

1313
let contains = (str, sub) => str.indexOf(sub) > -1;
1414

15-
if (contains(scopes, 'metrics')) {
16-
nav.push({
17-
name: 'Metrics', href: '/metrics', icon: 'dashboard',
18-
sub: [
19-
{name: 'Overview', href: '/metrics/overview'},
20-
{name: 'Real-Time', href: '/metrics/realtime'},
21-
{name: 'Demographics', href: '/metrics/demographics'}
22-
]
23-
});
24-
}
2515
if (contains(scopes, 'streams')) {
2616
nav.push({
2717
name: 'Streams', href: '/streams', icon: 'videocam',
2818
sub: [
2919
{name: 'Live Streams', href: '/streams/live'},
30-
{name: 'All Streams', href: '/streams/all'},
31-
{name: 'Search', href: '/streams/search'}
20+
{name: 'All Streams', href: '/streams/all'}
3221
]
3322
});
3423
}
3524
if (contains(scopes, 'users')) {
3625
nav.push({
3726
name: 'Users', href: '/users', icon: 'people',
3827
sub: [
39-
{name: 'All Users', href: '/users/all'},
40-
{name: 'Search', href: '/users/search'}
28+
{name: 'All Users', href: '/users/all'}
4129
]
4230
});
4331
}
@@ -52,9 +40,9 @@ Nav.updateVisibleItems = function () {
5240
}
5341
if (contains(scopes, 'settings')) {
5442
nav.push({
55-
name: 'Settings', href: '/settings', icon: 'settings',
43+
name: 'Logs', href: '/settings', icon: 'settings',
5644
sub: [
57-
{name: 'Logs', href: '/settings/logs'},
45+
{name: 'General Logs', href: '/settings/logs'},
5846
{name: 'Response Logs', href: '/settings/responses'}
5947
]
6048
});

app_server/public/src/js/modules/pages/stream.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,7 @@ Stream.view = function () {
110110
m('div.col s6', 'Stickers: ' + stream.stickers())
111111
]),
112112
m('div.row', [
113-
m('div.col s3', 'user-image-here'),
114-
m('div.row col s9', [
113+
m('div.row col s12', [
115114
m('div.col s12', stream.user().alias()),
116115
m('div.col s12', 'Start: ' + datetime.toShortDateTime(stream.startDateTime())),
117116
stream.endDateTime() ?

app_server/public/src/js/modules/pages/streams.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Streams.init = function () {
2323
const names = {
2424
title: 'Title',
2525
desc: 'Description',
26+
live: 'Live',
2627
stats: 'Statistics',
2728
date: 'Start Date',
2829
user: 'User',
@@ -35,22 +36,23 @@ const formatStats = (viewers, stickers) => [
3536
m('span', stickers + 'S')
3637
];
3738

38-
const getActions = (id) =>
39+
const getActions = (id, live) =>
3940
m('select', {onchange: m.withAttr('value', m.route)}, [
4041
m('option', {disabled: true, selected: true}, 'Choose...'),
4142
m('option', {value: '/streams/view/' + id}, 'View / Edit'),
42-
m('option', {value: '/streams/stop/' + id}, 'Stop')
43+
live ? m('option', {value: '/streams/stop/' + id}, 'Stop') : null
4344
]);
4445

4546
const parse = (streams) => streams.map(
4647
function (stream) {
4748
return {
4849
title: stream.title(),
4950
desc: stream.description(),
51+
live: stream.live() ? 'Yes' : 'No',
5052
stats: formatStats(stream.viewers(), stream.stickers()),
5153
date: datetime.toShortDateTime(stream.startDateTime()),
5254
user: stream.user().alias(),
53-
actions: getActions(stream.id())
55+
actions: getActions(stream.id(), stream.live())
5456
};
5557
}
5658
);
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const m = require('mithril');
2+
const StreamModel = require('../models/stream');
3+
4+
const Stream = module.exports = {};
5+
6+
Stream.controller = function () {
7+
let id = m.route.param('id') || -1;
8+
StreamModel.get(id).then(StreamModel.stop);
9+
m.route('/streams');
10+
};

0 commit comments

Comments
 (0)