soselo/views/instance.php

92 lines
2.3 KiB
PHP

<div class="hmax">
<div id="tabs"></div>
<div id="tabs-item">
<a href="javascript:{action}">
<div class="tab-content">
<span>{title}</span>
</div>
</a>
</div>
<div id="content">
<div id="container"></div>
</div>
</div>
<script>
function title__instance() {}
function load__instance(args) {
const hargs = parse_hash_arguments(args[1]);
const _error400 = function(msg) {
msg = msg || 'Parameters are not correct';
console.log('TODO: handle error correctly');
};
const _paint = function() {
const menu = [
{
title: 'Filter users',
action: 'alert(&quot;hello&quot;)',
},
{
title: 'Filter posts',
action: 'alert(&quot;hello&quot;)',
},
{
title: 'New accounts',
action: 'alert(&quot;hello&quot;)',
},
];
E.template('tabs', function(TPL) {
var html = '';
for (var i = 0; i < menu.length; i++) {
var tpl = TPL;
tpl = tpl.replaceAll('{title}', menu[i]['title']);
tpl = tpl.replaceAll('{action}', menu[i]['action']);
html += tpl;
}
return html;
});
};
const _main = function() {
if (hargs['software'] === undefined ||
!window.vars['instance_config']['supported_ap_software']
.includes(hargs['software']))
return _error400();
if (hargs['instance'] === undefined)
return _error400();
var found = false;
for (var i = 0; i < window.vars['instance_config']['hosts'][hargs['software']].length; i++)
{
const item = window.vars['instance_config']['hosts'][hargs['software']][i];
if (item['instance'] === hargs['instance']) {
window.vars['current_instance'] = item;
found = true;
break;
}
}
if (!found)
return _error400();
apcontrol_title(`Instance (${hargs['instance']})`);
const config = parse_ini_config(window.vars['current_instance']['config']);
const musthave = window.consts['instance_config'][hargs['software']]['musthave'];
for (var i = 0; i < musthave.length; i++) {
if (config[musthave[i]] === undefined) {
window.location.hash = window.location.hash.replace('#instance/','#instance_config/');
return false;
}
}
return _paint();
};
if (window.vars['instance_config'] === undefined) {
http.get('api/v1/config/get',{},function(data) {
window.vars['instance_config'] = JSON.parse(data);
_main();
});
} else { _main() }
}
</script>