[enh] Switch to modal confirmation for user, domain and app section.

This commit is contained in:
opi 2014-11-17 14:51:21 +01:00
parent d1433ab4b6
commit 7f42fc03e9

140
js/app.js
View file

@ -769,14 +769,19 @@ app = Sammy('#main', function (sam) {
// Remove existing user // Remove existing user
sam.get('#/users/:user/delete', function (c) { sam.get('#/users/:user/delete', function (c) {
if (confirm(y18n.t('confirm_delete', [c.params['user']]))) { c.confirm(
y18n.t('users'),
y18n.t('confirm_delete', [c.params['user']]),
function(){
c.api('/users/'+ c.params['user'], function(data) { // http://api.yunohost.org/#!/user/user_delete_delete_4 c.api('/users/'+ c.params['user'], function(data) { // http://api.yunohost.org/#!/user/user_delete_delete_4
c.redirect('#/users'); c.redirect('#/users');
}, 'DELETE'); }, 'DELETE');
} else { },
function(){
store.clear('slide'); store.clear('slide');
c.redirect('#/users/'+ c.params['user']); c.redirect('#/users/'+ c.params['user']);
} }
);
}); });
@ -841,15 +846,20 @@ app = Sammy('#main', function (sam) {
// Remove existing domain // Remove existing domain
sam.get('#/domains/:domain/delete', function (c) { sam.get('#/domains/:domain/delete', function (c) {
if (confirm(y18n.t('confirm_delete', [c.params['domain']]))) { c.confirm(
y18n.t('domains'),
y18n.t('confirm_delete', [c.params['domain']]),
function(){
c.api('/domains/'+ c.params['domain'], function(data) { // http://api.yunohost.org/#!/domain/domain_remove_delete_3 c.api('/domains/'+ c.params['domain'], function(data) { // http://api.yunohost.org/#!/domain/domain_remove_delete_3
store.clear('slide'); store.clear('slide');
c.redirect('#/domains'); c.redirect('#/domains');
}, 'DELETE'); }, 'DELETE');
} else { },
function(){
store.clear('slide'); store.clear('slide');
c.redirect('#/domains'); c.redirect('#/domains');
} }
);
}); });
// Set default domain // Set default domain
@ -858,8 +868,11 @@ app = Sammy('#main', function (sam) {
c.flash('fail', y18n.t('error_select_domain')); c.flash('fail', y18n.t('error_select_domain'));
store.clear('slide'); store.clear('slide');
c.redirect('#/domains'); c.redirect('#/domains');
} else if (confirm(y18n.t('confirm_change_maindomain'))) { } else {
c.confirm(
y18n.t('domains'),
y18n.t('confirm_change_maindomain'),
function(){
params = {'new_domain': c.params['domain']} params = {'new_domain': c.params['domain']}
c.api('/domains/main', function(data) { // http://api.yunohost.org/#!/tools/tools_maindomain_put_1 c.api('/domains/main', function(data) { // http://api.yunohost.org/#!/tools/tools_maindomain_put_1
store.clear('slide'); store.clear('slide');
@ -871,11 +884,13 @@ app = Sammy('#main', function (sam) {
store.clear('slide'); store.clear('slide');
c.redirect('#/domains') c.redirect('#/domains')
}, 15000); }, 15000);
},
} else { function(){
store.clear('slide'); store.clear('slide');
c.redirect('#/domains'); c.redirect('#/domains');
} }
);
}
}); });
@ -1089,7 +1104,10 @@ app = Sammy('#main', function (sam) {
// Install custom app from github // Install custom app from github
sam.post('#/apps/install/custom', function(c) { sam.post('#/apps/install/custom', function(c) {
if (confirm(y18n.t('confirm_install_custom_app'))) { c.confirm(
y18n.t('applications'),
y18n.t('confirm_install_custom_app'),
function(){
params = { 'label': c.params['label'], 'app': c.params['url'] } params = { 'label': c.params['label'], 'app': c.params['url'] }
delete c.params['label']; delete c.params['label'];
delete c.params['url']; delete c.params['url'];
@ -1119,24 +1137,30 @@ app = Sammy('#main', function (sam) {
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/install'); c.redirect('#/apps/install');
}); });
} },
else { function(){
c.flash('warning', y18n.t('app_install_cancel')); c.flash('warning', y18n.t('app_install_cancel'));
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/install'); c.redirect('#/apps/install');
} }
);
}); });
// Remove installed app // Remove installed app
sam.get('#/apps/:app/uninstall', function (c) { sam.get('#/apps/:app/uninstall', function (c) {
if (confirm(y18n.t('confirm_uninstall', [c.params['app']]))) { c.confirm(
y18n.t('applications'),
y18n.t('confirm_uninstall', [c.params['app']]),
function() {
c.api('/apps/'+ c.params['app'], function() { // http://api.yunohost.org/#!/app/app_remove_delete_4 c.api('/apps/'+ c.params['app'], function() { // http://api.yunohost.org/#!/app/app_remove_delete_4
c.redirect('#/apps'); c.redirect('#/apps');
}, 'DELETE'); }, 'DELETE');
} else { },
function() {
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app']); c.redirect('#/apps/'+ c.params['app']);
} }
);
}); });
// Manage app access // Manage app access
@ -1186,44 +1210,59 @@ app = Sammy('#main', function (sam) {
// Remove all access // Remove all access
sam.get('#/apps/:app/access/remove', function (c) { sam.get('#/apps/:app/access/remove', function (c) {
if (confirm(y18n.t('confirm_access_remove_all', [c.params['app']]))) { c.confirm(
y18n.t('applications'),
y18n.t('confirm_access_remove_all', [c.params['app']]),
function() {
params = {'apps': c.params['app'], 'users':[]} params = {'apps': c.params['app'], 'users':[]}
c.api('/access?'+c.serialize(params), function(data) { // http://api.yunohost.org/#!/app/app_removeaccess_delete_12 c.api('/access?'+c.serialize(params), function(data) { // http://api.yunohost.org/#!/app/app_removeaccess_delete_12
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app']+ '/access'); c.redirect('#/apps/'+ c.params['app']+ '/access');
}, 'DELETE', params); }, 'DELETE', params);
} else { },
function() {
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app']+ '/access'); c.redirect('#/apps/'+ c.params['app']+ '/access');
} }
);
}); });
// Remove access to a specific user // Remove access to a specific user
sam.get('#/apps/:app/access/remove/:user', function (c) { sam.get('#/apps/:app/access/remove/:user', function (c) {
if (confirm(y18n.t('confirm_access_remove_user', [c.params['app'], c.params['user']]))) { c.confirm(
y18n.t('applications'),
y18n.t('confirm_access_remove_user', [c.params['app'], c.params['user']]),
function() {
params = {'apps': c.params['app'], 'users': c.params['user']} params = {'apps': c.params['app'], 'users': c.params['user']}
c.api('/access?'+c.serialize(params), function(data) { // http://api.yunohost.org/#!/app/app_removeaccess_delete_12 c.api('/access?'+c.serialize(params), function(data) { // http://api.yunohost.org/#!/app/app_removeaccess_delete_12
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app']+ '/access'); c.redirect('#/apps/'+ c.params['app']+ '/access');
}, 'DELETE', params); // passing 'params' here is useless because jQuery doesn't handle ajax datas for DELETE requests. Passing parameters through uri. }, 'DELETE', params); // passing 'params' here is useless because jQuery doesn't handle ajax datas for DELETE requests. Passing parameters through uri.
} else { },
function() {
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app']+ '/access'); c.redirect('#/apps/'+ c.params['app']+ '/access');
} }
);
}); });
// Grant all access // Grant all access
sam.get('#/apps/:app/access/add', function (c) { sam.get('#/apps/:app/access/add', function (c) {
if (confirm(y18n.t('confirm_access_add', [c.params['app']]))) { c.confirm(
y18n.t('applications'),
y18n.t('confirm_access_add', [c.params['app']]),
function() {
params = {'apps': c.params['app'], 'users': null} params = {'apps': c.params['app'], 'users': null}
c.api('/access', function() { // http://api.yunohost.org/#!/app/app_addaccess_put_13 c.api('/access', function() { // http://api.yunohost.org/#!/app/app_addaccess_put_13
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app'] +'/access'); c.redirect('#/apps/'+ c.params['app'] +'/access');
}, 'PUT', params); }, 'PUT', params);
} else { },
function() {
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app']+ '/access'); c.redirect('#/apps/'+ c.params['app']+ '/access');
} }
);
}); });
// Grant access for a specific user // Grant access for a specific user
@ -1237,29 +1276,39 @@ app = Sammy('#main', function (sam) {
// Clear access (reset) // Clear access (reset)
sam.get('#/apps/:app/access/clear', function (c) { sam.get('#/apps/:app/access/clear', function (c) {
if (confirm(y18n.t('confirm_access_clear', [c.params['app']]))) { c.confirm(
y18n.t('applications'),
y18n.t('confirm_access_clear', [c.params['app']]),
function() {
params = {'apps': c.params['app']} params = {'apps': c.params['app']}
c.api('/access', function() { // c.api('/access', function() { //
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app'] +'/access'); c.redirect('#/apps/'+ c.params['app'] +'/access');
}, 'POST', params); }, 'POST', params);
} else { },
function() {
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app']+ '/access'); c.redirect('#/apps/'+ c.params['app']+ '/access');
} }
);
}); });
// Make app default // Make app default
sam.get('#/apps/:app/default', function (c) { sam.get('#/apps/:app/default', function (c) {
if (confirm(y18n.t('confirm_app_default'))) { c.confirm(
y18n.t('applications'),
y18n.t('confirm_app_default'),
function() {
c.api('/apps/'+ c.params['app'] +'/default', function() { // c.api('/apps/'+ c.params['app'] +'/default', function() { //
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app']); c.redirect('#/apps/'+ c.params['app']);
}, 'PUT'); }, 'PUT');
} else { },
function() {
store.clear('slide'); store.clear('slide');
c.redirect('#/apps/'+ c.params['app']); c.redirect('#/apps/'+ c.params['app']);
} }
);
}); });
@ -1310,6 +1359,50 @@ app = Sammy('#main', function (sam) {
// Enable/Disable & Start/Stop service // Enable/Disable & Start/Stop service
sam.get('#/services/:service/:action', function (c) { sam.get('#/services/:service/:action', function (c) {
c.confirm(
"Service",
y18n.t('confirm_service_action', [y18n.t(c.params['action']), 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']);
}
);
/*
if (confirm(y18n.t('confirm_service_action', [y18n.t(c.params['action']), c.params['service']]))) { if (confirm(y18n.t('confirm_service_action', [y18n.t(c.params['action']), c.params['service']]))) {
var method = null, endurl = c.params['service']; var method = null, endurl = c.params['service'];
@ -1344,6 +1437,7 @@ app = Sammy('#main', function (sam) {
store.clear('slide'); store.clear('slide');
c.redirect('#/services/'+ c.params['service']); c.redirect('#/services/'+ c.params['service']);
} }
*/
}); });