mirror of
https://github.com/YunoHost/yunohost-admin.git
synced 2024-09-03 20:06:15 +02:00
Move this groupHook black magic closer to the backup code where it's actually used...
This commit is contained in:
parent
ca6c635885
commit
071b343635
2 changed files with 75 additions and 73 deletions
|
@ -50,7 +50,7 @@
|
||||||
name:y18n.t('local_archives')
|
name:y18n.t('local_archives')
|
||||||
};
|
};
|
||||||
c.api('GET', '/hooks/backup', {}, function(hooks) {
|
c.api('GET', '/hooks/backup', {}, function(hooks) {
|
||||||
data['hooks'] = c.groupHooks(hooks['hooks']);
|
data['hooks'] = groupHooks(hooks['hooks']);
|
||||||
data['apps'] = {};
|
data['apps'] = {};
|
||||||
c.api('GET', '/apps?with_backup', {}, function(apps_list) {
|
c.api('GET', '/apps?with_backup', {}, function(apps_list) {
|
||||||
data['apps'] = apps_list.apps;
|
data['apps'] = apps_list.apps;
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
|
|
||||||
|
|
||||||
app.post('#/backup/:storage', function (c) {
|
app.post('#/backup/:storage', function (c) {
|
||||||
var params = c.ungroupHooks(c.params['system_parts'],c.params['apps']);
|
var params = ungroupHooks(c.params['system_parts'],c.params['apps']);
|
||||||
c.api('POST', '/backup', params, function() {
|
c.api('POST', '/backup', params, function() {
|
||||||
c.redirect_to('#/backup/'+ c.params['storage']);
|
c.redirect_to('#/backup/'+ c.params['storage']);
|
||||||
});
|
});
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
y18n.t('backup'),
|
y18n.t('backup'),
|
||||||
y18n.t('confirm_restore', [c.params['archive']]),
|
y18n.t('confirm_restore', [c.params['archive']]),
|
||||||
$.proxy(function(c){
|
$.proxy(function(c){
|
||||||
var params = c.ungroupHooks(c.params['system_parts'],c.params['apps']);
|
var params = ungroupHooks(c.params['system_parts'],c.params['apps']);
|
||||||
params['force'] = '';
|
params['force'] = '';
|
||||||
c.api('POST', '/backup/restore/'+c.params['archive'], params, function(data) {
|
c.api('POST', '/backup/restore/'+c.params['archive'], params, function(data) {
|
||||||
c.redirect_to('#/backup/'+ c.params['storage']+'/'+c.params['archive']);
|
c.redirect_to('#/backup/'+ c.params['storage']+'/'+c.params['archive']);
|
||||||
|
@ -121,7 +121,7 @@
|
||||||
};
|
};
|
||||||
data.other_storages = [];
|
data.other_storages = [];
|
||||||
data.name = c.params['archive'];
|
data.name = c.params['archive'];
|
||||||
data.system_parts = c.groupHooks(Object.keys(data['system']),data['system']);
|
data.system_parts = groupHooks(Object.keys(data['system']),data['system']);
|
||||||
data.items = (data['system']!={} || data['apps']!=[]);
|
data.items = (data['system']!={} || data['apps']!=[]);
|
||||||
data.locale = y18n.locale
|
data.locale = y18n.locale
|
||||||
c.view('backup/backup_info', data, c.selectAllOrNone);
|
c.view('backup/backup_info', data, c.selectAllOrNone);
|
||||||
|
@ -146,4 +146,75 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function groupHooks(hooks, raw_infos) {
|
||||||
|
var data = {};
|
||||||
|
var rules = [
|
||||||
|
{
|
||||||
|
id:'configuration',
|
||||||
|
isIn:function (hook) {
|
||||||
|
return hook.indexOf('conf_')==0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
$.each(hooks, function(i, hook) {
|
||||||
|
var group_id=hook;
|
||||||
|
var hook_size=(raw_infos && raw_infos[hook] && raw_infos[hook].size)?raw_infos[hook].size:0;
|
||||||
|
$.each(rules, function(i, rule) {
|
||||||
|
if (rule.isIn(hook)) {
|
||||||
|
group_id = 'adminjs_group_'+rule.id;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(group_id in data) {
|
||||||
|
data[group_id] = {
|
||||||
|
name:y18n.t('hook_'+group_id),
|
||||||
|
value:data[group_id].value+','+hook,
|
||||||
|
description:data[group_id].description+', '+y18n.t('hook_'+hook),
|
||||||
|
size:data[group_id].size + hook_size
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data[group_id] = {
|
||||||
|
name:y18n.t('hook_'+group_id),
|
||||||
|
value:hook,
|
||||||
|
description:(group_id==hook)?y18n.t('hook_'+hook+'_desc'):y18n.t('hook_'+hook),
|
||||||
|
size:hook_size
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
function ungroupHooks(system_parts, apps) {
|
||||||
|
|
||||||
|
var data = {};
|
||||||
|
data['apps'] = apps || [];
|
||||||
|
data['system'] = system_parts || [];
|
||||||
|
|
||||||
|
if (data['system'].constructor !== Array) {
|
||||||
|
data['system'] = [data['system']];
|
||||||
|
}
|
||||||
|
if (data['apps'].constructor !== Array) {
|
||||||
|
data['apps'] = [data['apps']];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some hook value contains multiple hooks separated by commas
|
||||||
|
var split_hooks = [];
|
||||||
|
$.each(data['system'], function(i, hook) {
|
||||||
|
split_hooks = split_hooks.concat(hook.split(','));
|
||||||
|
});
|
||||||
|
data['system'] = split_hooks;
|
||||||
|
|
||||||
|
if (data['system'].length == 0) {
|
||||||
|
delete data['system'];
|
||||||
|
}
|
||||||
|
if (data['apps'].length == 0) {
|
||||||
|
delete data['apps'];
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -485,75 +485,6 @@
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
groupHooks: function(hooks, raw_infos){
|
|
||||||
var data = {};
|
|
||||||
var rules = [
|
|
||||||
{
|
|
||||||
id:'configuration',
|
|
||||||
isIn:function (hook) {
|
|
||||||
return hook.indexOf('conf_')==0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
$.each(hooks, function(i, hook) {
|
|
||||||
var group_id=hook;
|
|
||||||
var hook_size=(raw_infos && raw_infos[hook] && raw_infos[hook].size)?raw_infos[hook].size:0;
|
|
||||||
$.each(rules, function(i, rule) {
|
|
||||||
if (rule.isIn(hook)) {
|
|
||||||
group_id = 'adminjs_group_'+rule.id;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if(group_id in data) {
|
|
||||||
data[group_id] = {
|
|
||||||
name:y18n.t('hook_'+group_id),
|
|
||||||
value:data[group_id].value+','+hook,
|
|
||||||
description:data[group_id].description+', '+y18n.t('hook_'+hook),
|
|
||||||
size:data[group_id].size + hook_size
|
|
||||||
};
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
data[group_id] = {
|
|
||||||
name:y18n.t('hook_'+group_id),
|
|
||||||
value:hook,
|
|
||||||
description:(group_id==hook)?y18n.t('hook_'+hook+'_desc'):y18n.t('hook_'+hook),
|
|
||||||
size:hook_size
|
|
||||||
};
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return data;
|
|
||||||
},
|
|
||||||
|
|
||||||
ungroupHooks: function(system_parts,apps) {
|
|
||||||
var data = {};
|
|
||||||
data['apps'] = apps || [];
|
|
||||||
data['system'] = system_parts || [];
|
|
||||||
|
|
||||||
if (data['system'].constructor !== Array) {
|
|
||||||
data['system'] = [data['system']];
|
|
||||||
}
|
|
||||||
if (data['apps'].constructor !== Array) {
|
|
||||||
data['apps'] = [data['apps']];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Some hook value contains multiple hooks separated by commas
|
|
||||||
var split_hooks = [];
|
|
||||||
$.each(data['system'], function(i, hook) {
|
|
||||||
split_hooks = split_hooks.concat(hook.split(','));
|
|
||||||
});
|
|
||||||
data['system'] = split_hooks;
|
|
||||||
|
|
||||||
if (data['system'].length == 0) {
|
|
||||||
delete data['system'];
|
|
||||||
}
|
|
||||||
if (data['apps'].length == 0) {
|
|
||||||
delete data['apps'];
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
},
|
|
||||||
|
|
||||||
// Paste <pre>
|
// Paste <pre>
|
||||||
prePaste: function() {
|
prePaste: function() {
|
||||||
var pasteButtons = $('button[data-paste-content],a[data-paste-content]');
|
var pasteButtons = $('button[data-paste-content],a[data-paste-content]');
|
||||||
|
|
Loading…
Reference in a new issue