master
commit
70364074f1
@ -0,0 +1,29 @@
|
||||
mixin renderCoreNodeListItem (coreNode)
|
||||
.uk-tile.uk-tile-default.uk-tile-small.uk-padding-small.dtp-border.uk-border-rounded
|
||||
.uk-margin
|
||||
div(uk-grid).uk-flex-between
|
||||
.uk-width-auto
|
||||
+renderCell('Name', coreNode.meta.name)
|
||||
.uk-width-auto
|
||||
+renderCell('Admin', coreNode.meta.admin)
|
||||
.uk-width-auto
|
||||
+renderCell('Domain', coreNode.meta.domain)
|
||||
.uk-width-auto
|
||||
+renderCell('Domain Key', coreNode.meta.domainKey)
|
||||
|
||||
.uk-margin
|
||||
div(uk-grid).uk-flex-between
|
||||
.uk-width-auto
|
||||
+renderCell('Connected', moment(coreNode.created).format('MMM DD, YYYY'))
|
||||
.uk-width-auto
|
||||
+renderCell('Updated', moment(coreNode.updated).format('MMM DD, YYYY'))
|
||||
.uk-width-auto
|
||||
+renderCell('Version', coreNode.meta.version)
|
||||
.uk-width-auto
|
||||
+renderCell('Host', coreNode.address.host)
|
||||
.uk-width-auto
|
||||
+renderCell('Port', coreNode.address.port)
|
||||
.uk-width-auto
|
||||
+renderCell('Connected', coreNode.flags.isConnected)
|
||||
.uk-width-auto
|
||||
+renderCell('Blocked', coreNode.flags.isBlocked)
|
@ -1,43 +1,21 @@
|
||||
extends ../layouts/main
|
||||
block content
|
||||
|
||||
h1 Core Nodes
|
||||
a(href="/admin/core-node/connect").uk-button.uk-button-primary Connect Core
|
||||
include components/list-item
|
||||
|
||||
.uk-margin
|
||||
div(uk-grid)
|
||||
.uk-width-expand
|
||||
h1(style="line-height: 1em;").uk-margin-remove.uk-text-truncate Core Nodes
|
||||
.uk-width-auto
|
||||
a(href="/admin/core-node/connect").uk-button.uk-button-primary.uk-border-rounded Connect Core
|
||||
|
||||
p You can register with one or more Core nodes to exchange information with those nodes.
|
||||
|
||||
if Array.isArray(coreNodes) && (coreNodes.length > 0)
|
||||
ul.uk-list
|
||||
each node in coreNodes
|
||||
.uk-tile.uk-tile-default.uk-tile-small
|
||||
.uk-margin
|
||||
div(uk-grid)
|
||||
.uk-width-auto
|
||||
+renderCell('Name', node.meta.name)
|
||||
.uk-width-auto
|
||||
+renderCell('Domain', node.meta.domain)
|
||||
.uk-width-auto
|
||||
+renderCell('Domain Key', node.meta.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-width-auto
|
||||
+renderCell('Version', node.meta.version)
|
||||
|
||||
.uk-margin
|
||||
div(uk-grid)
|
||||
.uk-width-auto
|
||||
+renderCell('Host', node.address.host)
|
||||
.uk-width-auto
|
||||
+renderCell('Port', node.address.port)
|
||||
.uk-width-auto
|
||||
+renderCell('Connected', node.flags.isConnected)
|
||||
.uk-width-auto
|
||||
+renderCell('Blocked', node.flags.isBlocked)
|
||||
.uk-width-auto
|
||||
+renderCell('Admin', node.meta.admin)
|
||||
.uk-width-auto
|
||||
+renderCell('Support', node.meta.supportEmail)
|
||||
a(href=`/admin/core-node/${node._id}`).uk-display-block.uk-link-reset
|
||||
+renderCoreNodeListItem(node)
|
||||
else
|
||||
p There are no registered core nodes.
|
@ -0,0 +1,46 @@
|
||||
extends ../layouts/main
|
||||
block content
|
||||
|
||||
include ../../components/pagination-bar
|
||||
include components/list-item
|
||||
|
||||
.uk-margin
|
||||
div(uk-grid).uk-grid-small.uk-flex-middle
|
||||
div(class="uk-width-1-1 uk-width-expand@m")
|
||||
h1(style="line-height: 1em;") Core Node
|
||||
div(class="uk-width-1-1 uk-width-auto@m")
|
||||
a(href=`mailto:${coreNode.meta.supportEmail}?subject=${encodeURIComponent(`Support request from ${site.name}`)}`)
|
||||
span
|
||||
i.fas.fa-envelope
|
||||
span.uk-margin-small-left Email Support
|
||||
div(class="uk-width-1-1 uk-width-auto@m")
|
||||
span.uk-label(style="line-height: 1.75em;", class={
|
||||
'uk-label-success': coreNode.flags.isConnected,
|
||||
'uk-label-warning': !coreNode.flags.isConnected && !coreNode.flags.isBlocked,
|
||||
'uk-label-danger': coreNode.flags.isBlocked,
|
||||
}).no-select= coreNode.flags.isConnected ? 'Connected' : 'Pending'
|
||||
|
||||
+renderCoreNodeListItem(coreNode)
|
||||
|
||||
.uk-margin
|
||||
table.uk-table.uk-table-small
|
||||
thead
|
||||
tr
|
||||
th Timestamp
|
||||
th Method
|
||||
th URL
|
||||
th Status
|
||||
th Result
|
||||
th Perf
|
||||
tbody
|
||||
each request in requestHistory.requests
|
||||
tr
|
||||
td= moment(request.created).format('YYYY-MM-DD HH:mm:ss.SSS')
|
||||
td= request.method
|
||||
td= request.url
|
||||
td= (request.response && request.response.statusCode) ? request.response.statusCode : '- - -'
|
||||
td= (request.response) ? ((request.response.success) ? 'success' : 'fail') : '- - -'
|
||||
td= request.response ? `${numeral(request.response.elapsed).format('0,0')}ms` : '- - -'
|
||||
|
||||
.uk-margin
|
||||
+renderPaginationBar(`/admin/core-node/${coreNode._id}`, requestHistory.totalRequestCount)
|
@ -0,0 +1,18 @@
|
||||
mixin renderJobQueueJobList (jobQueue, jobList)
|
||||
if !Array.isArray(jobList) || (jobList.length === 0)
|
||||
div No jobs
|
||||
else
|
||||
table.uk-table.uk-table-small
|
||||
thead
|
||||
th ID
|
||||
th Name
|
||||
th Attempts
|
||||
th Progress
|
||||
tbody
|
||||
each job in jobList
|
||||
tr
|
||||
td= job.id
|
||||
td
|
||||
a(href=`/admin/job-queue/${jobQueue.name}/${job.id}`)= job.name
|
||||
td= job.attemptsMade
|
||||
td #{job.progress()}%
|
@ -0,0 +1,45 @@
|
||||
extends ../layouts/main
|
||||
block content
|
||||
|
||||
include ../job-queue/components/job-list
|
||||
|
||||
.uk-margin
|
||||
h1 Job Queue: #{queueName}
|
||||
div(uk-grid).uk-flex-between
|
||||
- var pendingJobCount = jobCounts.waiting + jobCounts.delayed + jobCounts.paused + jobCounts.active
|
||||
.uk-width-auto Total#[br]#{numeral(pendingJobCount).format('0,0')}
|
||||
.uk-width-auto Waiting#[br]#{numeral(jobCounts.waiting).format('0,0')}
|
||||
.uk-width-auto Delayed#[br]#{numeral(jobCounts.delayed).format('0,0')}
|
||||
.uk-width-auto Paused#[br]#{numeral(jobCounts.paused).format('0,0')}
|
||||
.uk-width-auto Active#[br]#{numeral(jobCounts.active).format('0,0')}
|
||||
.uk-width-auto Completed#[br]#{numeral(jobCounts.completed).format('0,0')}
|
||||
.uk-width-auto Failed#[br]#{numeral(jobCounts.failed).format('0,0')}
|
||||
|
||||
div(uk-grid)
|
||||
div(class="uk-width-1-1 uk-width-1-2@l")
|
||||
.uk-card.uk-card-default.uk-card-small
|
||||
.uk-card-header
|
||||
h3.uk-card-title Active
|
||||
.uk-card-body
|
||||
+renderJobQueueJobList(newsletterQueue, jobs.active)
|
||||
|
||||
div(class="uk-width-1-1 uk-width-1-2@l")
|
||||
.uk-card.uk-card-default.uk-card-small
|
||||
.uk-card-header
|
||||
h3.uk-card-title Waiting
|
||||
.uk-card-body
|
||||
+renderJobQueueJobList(newsletterQueue, jobs.waiting)
|
||||
|
||||
div(class="uk-width-1-1 uk-width-1-2@l")
|
||||
.uk-card.uk-card-default.uk-card-small
|
||||
.uk-card-header
|
||||
h3.uk-card-title Delayed
|
||||
.uk-card-body
|
||||
+renderJobQueueJobList(newsletterQueue, jobs.delayed)
|
||||
|
||||
div(class="uk-width-1-1 uk-width-1-2@l")
|
||||
.uk-card.uk-card-default.uk-card-small
|
||||
.uk-card-header
|
||||
h3.uk-card-title Failed
|
||||
.uk-card-body
|
||||
+renderJobQueueJobList(newsletterQueue, jobs.failed)
|
Loading…
Reference in new issue