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