├── public ├── vendor │ ├── .gitignore │ ├── img │ │ ├── .gitignore │ │ └── jsoneditor-icons.svg │ ├── tablesort.css │ ├── tablesort.min.js │ └── jsoneditor.min.css ├── favicon.ico ├── highlight.default.min.css ├── dashboard.css ├── dashboard.js ├── bootstrap.min.js └── highlight.min.js ├── .dockerignore ├── .gitignore ├── screenshots ├── screen1.png ├── screen2.png ├── screen3.png ├── screen1_sm.png ├── screen2_sm.png └── screen3_sm.png ├── src └── server │ ├── views │ ├── api │ │ ├── bulkJobsRetry.js │ │ ├── bulkJobsRemove.js │ │ ├── jobAdd.js │ │ ├── index.js │ │ ├── jobRemove.js │ │ ├── jobRetry.js │ │ └── bulkAction.js │ ├── routes.js │ ├── dashboard │ │ ├── queueList.js │ │ ├── templates │ │ │ ├── queueNotFound.hbs │ │ │ ├── jobNotFound.hbs │ │ │ ├── jobStateNotFound.hbs │ │ │ ├── jobDetails.hbs │ │ │ ├── queueList.hbs │ │ │ ├── queueDetails.hbs │ │ │ └── queueJobsByState.hbs │ │ ├── index.js │ │ ├── queueDetails.js │ │ ├── jobDetails.js │ │ └── queueJobsByState.js │ ├── helpers │ │ ├── handlebars.js │ │ └── queueHelpers.js │ ├── partials │ │ └── dashboard │ │ │ └── jobDetails.hbs │ └── layout.hbs │ ├── config │ └── index.json │ ├── app.js │ └── queue │ └── index.js ├── Dockerfile ├── package.json ├── index.js ├── LICENSE ├── CHANGELOG.md └── README.md /public/vendor/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/vendor/img/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | .gitignore 3 | README.md 4 | screenshots 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package-lock.json 3 | *.DS_Store 4 | .vscode 5 | *.tern-port 6 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Phonbopit/arena/master/public/favicon.ico -------------------------------------------------------------------------------- /screenshots/screen1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Phonbopit/arena/master/screenshots/screen1.png -------------------------------------------------------------------------------- /screenshots/screen2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Phonbopit/arena/master/screenshots/screen2.png -------------------------------------------------------------------------------- /screenshots/screen3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Phonbopit/arena/master/screenshots/screen3.png -------------------------------------------------------------------------------- /screenshots/screen1_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Phonbopit/arena/master/screenshots/screen1_sm.png -------------------------------------------------------------------------------- /screenshots/screen2_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Phonbopit/arena/master/screenshots/screen2_sm.png -------------------------------------------------------------------------------- /screenshots/screen3_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Phonbopit/arena/master/screenshots/screen3_sm.png -------------------------------------------------------------------------------- /src/server/views/api/bulkJobsRetry.js: -------------------------------------------------------------------------------- 1 | const bulkAction = require('./bulkAction'); 2 | 3 | module.exports = bulkAction('retry'); 4 | -------------------------------------------------------------------------------- /src/server/views/api/bulkJobsRemove.js: -------------------------------------------------------------------------------- 1 | const bulkAction = require('./bulkAction'); 2 | 3 | module.exports = bulkAction('remove'); 4 | -------------------------------------------------------------------------------- /src/server/config/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "__example_queues": [ 3 | { 4 | "name": "my_queue", 5 | "port": 6381, 6 | "host": "127.0.0.1", 7 | "hostId": "AWS Server 2" 8 | } 9 | ], 10 | "queues": [] 11 | } 12 | -------------------------------------------------------------------------------- /src/server/views/routes.js: -------------------------------------------------------------------------------- 1 | const router = require('express').Router(); 2 | 3 | const dashboardRoutes = require('./dashboard'); 4 | const apiRoutes = require('./api'); 5 | 6 | router.use('/api', apiRoutes); 7 | router.use('/', dashboardRoutes); 8 | 9 | module.exports = router; 10 | -------------------------------------------------------------------------------- /src/server/views/dashboard/queueList.js: -------------------------------------------------------------------------------- 1 | function handler(req, res) { 2 | const {Queues} = req.app.locals; 3 | const queues = Queues.list(); 4 | const basePath = req.baseUrl; 5 | 6 | return res.render('dashboard/templates/queueList', { basePath, queues }); 7 | } 8 | 9 | module.exports = handler; 10 | -------------------------------------------------------------------------------- /src/server/views/dashboard/templates/queueNotFound.hbs: -------------------------------------------------------------------------------- 1 |
{{ queueHost }}/{{ queueName }}Queue {{ queueHost }}/{{ queueName }} not found
6 | Go back to Overview 7 |
8 | 9 | {{#contentFor 'sidebar'}} 10 |{{ queueHost }}/{{ queueName }}Job {{ id }} not found
6 | Go back to {{ queueHost }}/{{ queueName }} 7 |
8 | 9 | {{#contentFor 'sidebar'}} 10 |{{ queueHost }}/{{ queueName }}{{ queueHost }}/{{ queueName }}Job state {{ state }} does not exist
6 | Go back to {{ queueHost }}/{{ queueName }} 7 |
8 | 9 | {{#contentFor 'sidebar'}} 10 |{{ queueHost }}/{{ queueName }}{{ queueHost }}/{{ queueName }}{{ queueHost }}/{{ queueName }}| Host | 8 |Name | 9 | 10 | 11 | {{#each queues}} 12 |
|---|---|
| {{ this.hostId }} | 14 |{{ this.name }} | 15 |
{{ queueHost }}/{{ queueName }}| {{ @key }} | 39 |{{ this }} | 40 |
|---|
{{ queueHost }}/{{ queueName }}{{json this.returnvalue true}}
70 | {{/if}}
71 |
72 | {{#if this.failedReason}}
73 | {{this.failedReason}}
75 | {{/if}}
76 |
77 | {{#eq jobState 'failed'}}
78 | {{ this }}
82 | {{/each}}
83 | {{/if}}
84 |
85 | {{#if this.stacktrace}}
86 | {{#each this.stacktrace}}
87 | {{ this }}
88 | {{/each}}
89 | {{/if}}
90 | {{/eq}}
91 |
92 | {{json this.data true}}
94 |
95 | {{json this.logs true}}
97 |
--------------------------------------------------------------------------------
/src/server/views/layout.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | {{ queueHost }}/{{ queueName }}117 | Hint: ⇧ + Click to select a range of jobs. 118 |
119 | 120 | {{#contentFor 'sidebar'}} 121 |{{ queueHost }}/{{ queueName }}