6 changed files with 108 additions and 0 deletions
@ -0,0 +1,50 @@ |
|||
// admin/service-node.js
|
|||
// Copyright (C) 2022 DTP Technologies, LLC
|
|||
// License: Apache-2.0
|
|||
|
|||
'use strict'; |
|||
|
|||
const express = require('express'); |
|||
|
|||
const { SiteController } = require('../../../lib/site-lib'); |
|||
|
|||
class ServiceNodeController extends SiteController { |
|||
|
|||
constructor (dtp) { |
|||
super(dtp, module.exports); |
|||
} |
|||
|
|||
async start ( ) { |
|||
const router = express.Router(); |
|||
router.use(async (req, res, next) => { |
|||
res.locals.currentView = 'admin'; |
|||
res.locals.adminView = 'service-node'; |
|||
return next(); |
|||
}); |
|||
|
|||
router.get('/', this.getIndex.bind(this)); |
|||
|
|||
return router; |
|||
} |
|||
|
|||
async getIndex (req, res, next) { |
|||
const { oauth2: oauth2Service } = this.dtp.services; |
|||
try { |
|||
res.locals.pagination = this.getPaginationParameters(req, 20); |
|||
res.locals.serviceNodes = await oauth2Service.getClients({ }, res.locals.pagination); |
|||
res.render('admin/service-node/index'); |
|||
} catch (error) { |
|||
this.log.error('failed to render Service Node home', { error }); |
|||
return next(error); |
|||
} |
|||
} |
|||
} |
|||
|
|||
module.exports = { |
|||
name: 'Admin: Service Node', |
|||
slug: 'admin:service-node', |
|||
create: async (dtp) => { |
|||
let controller = new ServiceNodeController(dtp); |
|||
return controller; |
|||
}, |
|||
}; |
@ -0,0 +1,30 @@ |
|||
extends ../layouts/main |
|||
block content |
|||
|
|||
h1 Service Nodes |
|||
|
|||
if Array.isArray(serviceNodes) && (serviceNodes.length > 0) |
|||
ul.uk-list |
|||
each node in serviceNodes |
|||
.uk-tile.uk-tile-default.uk-tile-small |
|||
.uk-margin |
|||
div(uk-grid) |
|||
.uk-width-auto |
|||
+renderCell('Name', node.site.name) |
|||
.uk-width-auto |
|||
+renderCell('Company', node.meta.company) |
|||
.uk-width-auto |
|||
+renderCell('Domain', node.site.domain) |
|||
.uk-width-auto |
|||
+renderCell('Domain Key', node.site.domainKey) |
|||
.uk-width-auto |
|||
+renderCell('Connected', moment(node.created).format('MMM DD, YYYY')) |
|||
.uk-width-auto |
|||
+renderCell('Updated', moment(node.updated).format('MMM DD, YYYY')) |
|||
|
|||
.uk-margin |
|||
div(uk-grid) |
|||
.uk-width-auto |
|||
+renderCell('Connected', node.flags.isConnected) |
|||
else |
|||
p There are no registered service nodes. |
Loading…
Reference in new issue