Version information and extended header for admin panel.

This commit is contained in:
baldo 2016-06-26 20:21:45 +02:00
parent db01edcb71
commit 124f330895
7 changed files with 88 additions and 5 deletions

View file

@ -74,6 +74,7 @@
<script src="js/validation/constraints.js"></script>
<script src="js/views/version.js"></script>
<script src="js/views/mailActionButton.js"></script>
<script src="js/views/taskActionButton.js"></script>

View file

@ -38,6 +38,23 @@ angular.module('ffffngAdmin').config(function(NgAdminConfigurationProvider, Rest
var admin = nga.application('Knotenverwaltung - Admin-Panel');
admin
.header(
'<div class="navbar-header">' +
'<a class="navbar-brand" href="#" ng-click="appController.displayHome()">' +
'Knotenverwaltung - Admin-Panel <small style="font-size: 0.7em;">(<fa-version></fa-version>)</small>' +
'</a>' +
'</div>' +
'<p class="navbar-text navbar-right">' +
'<a href="https://github.com/freifunkhamburg/ffffng" target="_blank">' +
'<i class="fa fa-github" aria-hidden="true"></i> Source Code' +
'</a>' +
'</p>' +
'<p class="navbar-text navbar-right">' +
'<a href="/" target="_blank">' +
'<i class="fa fa-external-link" aria-hidden="true"></i> Frontend' +
'</a>' +
'</p>'
)
.baseApiUrl('/internal/api/')
.debug(true);

22
admin/js/views/version.js Normal file
View file

@ -0,0 +1,22 @@
'use strict';
angular.module('ffffngAdmin')
.directive('faVersion', function ($http, $state, notification) {
var link = function (scope) {
scope.version = '?';
$http.get('/internal/api/version')
.then(function (result) { scope.version = result.data.version; })
.catch(function (e) {
notification.log('Error: ' + e.data, { addnCls: 'humane-flatty-error' });
console.error(e);
});
};
return {
'link': link,
'restrict': 'E',
'scope': {},
'template': '{{version}}'
};
});

View file

@ -5,7 +5,8 @@ var commandLineUsage = require('command-line-usage');
var commandLineDefs = [
{ name: 'help', alias: 'h', type: Boolean, description: 'Show this help' },
{ name: 'config', alias: 'c', type: String, description: 'Location of config.json' }
{ name: 'config', alias: 'c', type: String, description: 'Location of config.json' },
{ name: 'version', alias: 'v', type: Boolean, description: 'Show ffffng version' }
];
var commandLineOptions;
@ -17,18 +18,38 @@ try {
process.exit(1);
}
if (commandLineOptions.help || !commandLineOptions.config) {
var fs = require('graceful-fs');
var packageJsonFile = __dirname + '/../package.json';
var version = 'unknown';
if (fs.existsSync(packageJsonFile)) {
version = JSON.parse(fs.readFileSync(packageJsonFile, 'utf8')).version;
}
function usage() {
console.log(commandLineUsage([
{
header: 'ffffng - Freifunk node management form',
header: 'ffffng - ' + version + ' - Freifunk node management form',
optionList: commandLineDefs
}
]));
}
if (commandLineOptions.help) {
usage();
process.exit(0);
}
if (commandLineOptions.version) {
console.log('ffffng - ' + version);
process.exit(0);
}
if (!commandLineOptions.config) {
usage();
process.exit(1);
}
var fs = require('graceful-fs');
var deepExtend = require('deep-extend');
var defaultConfig = {
@ -108,3 +129,4 @@ var config = deepExtend({}, defaultConfig, configJSON);
module.exports = config;
angular.module('ffffng').constant('config', config);
angular.module('ffffng').constant('version', version);

View file

@ -28,6 +28,7 @@ require('./utils/resources');
require('./utils/strings');
require('./utils/urlBuilder');
require('./resources/versionResource');
require('./resources/frontendResource');
require('./resources/taskResource');
require('./resources/mailResource');

View file

@ -0,0 +1,17 @@
'use strict';
angular.module('ffffng').factory('VersionResource', function (
version,
Resources
) {
return {
get: function (req, res) {
return Resources.success(
res,
{
version: version
}
);
}
};
});

View file

@ -2,6 +2,7 @@
angular.module('ffffng').factory('Router', function (
app,
VersionResource,
FrontendResource,
NodeResource,
MonitoringResource,
@ -20,6 +21,8 @@ angular.module('ffffng').factory('Router', function (
app.put('/api/monitoring/confirm/:token', MonitoringResource.confirm);
app.put('/api/monitoring/disable/:token', MonitoringResource.disable);
app.get('/internal/api/version', VersionResource.get);
app.get('/internal/api/tasks', TaskResource.getAll);
app.put('/internal/api/tasks/run/:id', TaskResource.run);
app.put('/internal/api/tasks/enable/:id', TaskResource.enable);