mirror of
https://github.com/YunoHost/yunohost-admin.git
synced 2024-09-03 20:06:15 +02:00
dc84ce7224
* [fix] Split confirm_update sentence for better translations. * [fix] Split confirm_service_action sentence for better translations. * [fix] Split confirm_firewall sentence for better translations. * [fix] Split confirm_upnp_action sentence for better translations. * [enh] English wording ('all' instead of 'every').
106 lines
No EOL
3.8 KiB
JavaScript
106 lines
No EOL
3.8 KiB
JavaScript
(function() {
|
|
// Get application context
|
|
var app = Sammy.apps['#main'];
|
|
var store = app.store;
|
|
|
|
/**
|
|
* Services
|
|
*
|
|
*/
|
|
|
|
// All services status
|
|
app.get('#/services', function (c) {
|
|
c.api('/services', function(data) { // ?
|
|
data2 = { 'services': [] };
|
|
$.each(data, function(k, v) {
|
|
v.name = k;
|
|
// Handlebars want booleans
|
|
v.is_loaded = (v.loaded=='enabled') ? true : false;
|
|
v.is_running = (v.status=='running') ? true : false;
|
|
// Translate status and loaded state
|
|
v.status = y18n.t(v.status);
|
|
v.loaded = y18n.t(v.loaded);
|
|
data2.services.push(v);
|
|
});
|
|
c.view('service/service_list', data2);
|
|
});
|
|
});
|
|
|
|
// Status & actions for a service
|
|
app.get('#/services/:service', function (c) {
|
|
c.api('/services/'+ c.params['service'], function(data) { // ?
|
|
data2 = { 'service': data };
|
|
data2.service.name = c.params['service'];
|
|
// Handlebars want booleans
|
|
data2.service.is_loaded = (data.loaded=='enabled') ? true : false;
|
|
data2.service.is_running = (data.status=='running') ? true : false;
|
|
// Translate status and loaded state
|
|
data2.service.status = y18n.t(data.status);
|
|
data2.service.loaded = y18n.t(data.loaded);
|
|
store.clear('slide');
|
|
c.view('service/service_info', data2);
|
|
}, 'GET');
|
|
});
|
|
|
|
// Service log
|
|
app.get('#/services/:service/log', function (c) {
|
|
params = { 'number': 50 };
|
|
c.api('/services/'+ c.params['service'] +'/log', function(data) { // ?
|
|
data2 = { 'logs': [], 'name': c.params['service'] };
|
|
$.each(data, function(k, v) {
|
|
data2.logs.push({filename: k, filecontent: v.join('\n')});
|
|
});
|
|
|
|
c.view('service/service_log', data2);
|
|
}, 'GET', params);
|
|
});
|
|
|
|
// Enable/Disable & Start/Stop service
|
|
app.get('#/services/:service/:action', function (c) {
|
|
c.confirm(
|
|
"Service",
|
|
// confirm_service_start, confirm_service_stop, confirm_service_enable and confirm_service_disable
|
|
y18n.t('confirm_service_' + c.params['action'].toLowerCase(), [c.params['service']]),
|
|
function(){
|
|
var method = null, endurl = c.params['service'];
|
|
|
|
switch (c.params['action']) {
|
|
case 'start':
|
|
method = 'PUT';
|
|
break;
|
|
case 'stop':
|
|
method = 'DELETE';
|
|
break;
|
|
case 'enable':
|
|
method = 'PUT';
|
|
endurl += '/enable';
|
|
break;
|
|
case 'disable':
|
|
method = 'DELETE';
|
|
endurl += '/enable';
|
|
break;
|
|
default:
|
|
c.flash('fail', y18n.t('unknown_action', [c.params['action']]));
|
|
store.clear('slide');
|
|
c.redirect('#/services/'+ c.params['service']);
|
|
}
|
|
|
|
if (method && endurl) {
|
|
c.api('/services/'+ endurl, function(data) {
|
|
store.clear('slide');
|
|
c.redirect('#/services/'+ c.params['service']);
|
|
}, method);
|
|
}
|
|
else {
|
|
store.clear('slide');
|
|
c.redirect('#/services/'+ c.params['service']);
|
|
}
|
|
},
|
|
function(){
|
|
store.clear('slide');
|
|
c.redirect('#/services/'+ c.params['service']);
|
|
}
|
|
);
|
|
});
|
|
|
|
})(); |