Use AJAX for generation status
This commit is contained in:
parent
2f4feb3082
commit
7031ebc907
7 changed files with 76 additions and 47 deletions
|
|
@ -83,25 +83,15 @@ if ($n && $p[0] == SALT_ADMIN)
|
||||||
case "generation":
|
case "generation":
|
||||||
case "generation/":
|
case "generation/":
|
||||||
case "generation/clear":
|
case "generation/clear":
|
||||||
case "generation/clear/":
|
|
||||||
case "generation/custom":
|
case "generation/custom":
|
||||||
case "generation/custom/":
|
|
||||||
case "generation/errors":
|
case "generation/errors":
|
||||||
case "generation/errors/":
|
|
||||||
case "generation/full":
|
case "generation/full":
|
||||||
case "generation/full/":
|
|
||||||
case "generation/freeze":
|
case "generation/freeze":
|
||||||
case "generation/freeze/":
|
|
||||||
case "generation/unfreeze":
|
case "generation/unfreeze":
|
||||||
case "generation/unfreeze/":
|
|
||||||
case "generation/home":
|
case "generation/home":
|
||||||
case "generation/home/":
|
|
||||||
case "generation/nginx":
|
case "generation/nginx":
|
||||||
case "generation/nginx/":
|
|
||||||
case "generation/team":
|
case "generation/team":
|
||||||
case "generation/team/":
|
|
||||||
case "generation/sync":
|
case "generation/sync":
|
||||||
case "generation/sync/":
|
|
||||||
$page = require("admin/generation.php");
|
$page = require("admin/generation.php");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,12 +48,17 @@ if (count($p) > 2)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
elseif (count($p) > 1) {
|
||||||
|
header("Content-type: application/xml");
|
||||||
|
|
||||||
if (!empty($ret))
|
$queue = explode("\n", pipe_backend_scheduler("show"));
|
||||||
{
|
unset($queue[0], $queue[1]);
|
||||||
$template->assign("return", $ret);
|
$template->assign("queue", array_filter($queue, function($var){ return !empty($var); }));
|
||||||
return "admin/generation";
|
|
||||||
|
return "admin/generation_status";
|
||||||
}
|
}
|
||||||
|
|
||||||
header("Location: /".SALT_ADMIN."/");
|
header("Content-type: application/xml");
|
||||||
exit();
|
|
||||||
|
$template->assign("return", $ret);
|
||||||
|
return "admin/generation";
|
||||||
|
|
|
||||||
|
|
@ -36,10 +36,4 @@ if (file_exists($srv_file))
|
||||||
openssl_x509_parse(file_get_contents($srv_file)));
|
openssl_x509_parse(file_get_contents($srv_file)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GENERATION */
|
|
||||||
|
|
||||||
$queue = explode("\n", pipe_backend_scheduler("show"));
|
|
||||||
unset($queue[0], $queue[1]);
|
|
||||||
$template->assign("queue", array_filter($queue, function($var){ return !empty($var); }));
|
|
||||||
|
|
||||||
return "admin/home";
|
return "admin/home";
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,4 @@
|
||||||
{extends file="admin/layout.tpl"}
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
{block name=content}
|
<gen>
|
||||||
<h1>
|
<logs>{$return|escape}</logs>
|
||||||
Génération
|
</gen>
|
||||||
</h1>
|
|
||||||
{if isset($return)}
|
|
||||||
<h2>Sortie</h2>
|
|
||||||
<pre>{$return|escape}</pre>
|
|
||||||
{/if}
|
|
||||||
{/block}
|
|
||||||
|
|
|
||||||
6
onyx/tpl/bootstrap/admin/generation_status.tpl
Normal file
6
onyx/tpl/bootstrap/admin/generation_status.tpl
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<queue>
|
||||||
|
{foreach from=$queue item=itm}
|
||||||
|
<item>{$itm}</item>
|
||||||
|
{/foreach}
|
||||||
|
</queue>
|
||||||
|
|
@ -86,32 +86,29 @@
|
||||||
<th>File d'attente</th>
|
<th>File d'attente</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody id="genst">
|
||||||
{foreach from=$queue item=itm key=k}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td{if $k == 2} class="{if $itm == "empty!"}warning{else}success{/if}"{/if}>
|
<td>Pending...</td>
|
||||||
{$itm}
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
{/foreach}
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<pre class="col-xs-4" id="logs"></pre>
|
||||||
<div class="col-xs-4">
|
<div class="col-xs-4">
|
||||||
<a href="/{$SALT_ADMIN}/generation/full" class="btn btn-default">Complet</a>
|
<a href="/{$SALT_ADMIN}/generation/full" onclick="call_gen('full'); return false" class="btn btn-default">Complet</a>
|
||||||
<a href="/{$SALT_ADMIN}/generation/home" class="btn btn-default">Accueil</a>
|
<a href="/{$SALT_ADMIN}/generation/home" onclick="call_gen('home'); return false" class="btn btn-default">Accueil</a>
|
||||||
<a href="/{$SALT_ADMIN}/generation/errors" class="btn btn-danger">Pages d'erreurs</a><br>
|
<a href="/{$SALT_ADMIN}/generation/errors" onclick="call_gen('errors'); return false" class="btn btn-danger">Pages d'erreurs</a><br>
|
||||||
<a href="/{$SALT_ADMIN}/generation/sync" class="btn btn-info">Synchro légère</a>
|
<a href="/{$SALT_ADMIN}/generation/sync" onclick="call_gen('sync'); return false" class="btn btn-info">Synchro légère</a>
|
||||||
<a href="/{$SALT_ADMIN}/generation/clear" class="btn btn-warning">Vider la file d'attente</a><br>
|
<a href="/{$SALT_ADMIN}/generation/clear" onclick="call_gen('clear'); return false" class="btn btn-warning">Vider la file d'attente</a><br>
|
||||||
<a href="/{$SALT_ADMIN}/generation/freeze" class="btn btn-danger">Freeze</a>
|
<a href="/{$SALT_ADMIN}/generation/freeze" onclick="call_gen('freeze'); return false" class="btn btn-danger">Freeze</a>
|
||||||
<a href="/{$SALT_ADMIN}/generation/unfreeze" class="btn btn-success">Unfreeze</a>
|
<a href="/{$SALT_ADMIN}/generation/unfreeze" onclick="call_gen('unfreeze'); return false" class="btn btn-success">Unfreeze</a>
|
||||||
<form method="post" action="/{$SALT_ADMIN}/generation/team" role="form" class="form-inline">
|
<form method="post" action="/{$SALT_ADMIN}/generation/team" onsubmit="call_gen('team'); return false" role="form" class="form-inline">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="input" class="form-control" id="regenteam" name="team" placeholder="Team to regen">
|
<input type="input" class="form-control" id="regenteam" name="team" placeholder="Team to regen">
|
||||||
<button type="submit" class="btn btn-primary">Regénérer</button>
|
<button type="submit" class="btn btn-primary">Regénérer</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<form method="post" action="/{$SALT_ADMIN}/generation/custom" role="form" class="form-inline">
|
<form method="post" action="/{$SALT_ADMIN}/generation/custom" onsubmit="call_gen('custom'); return false" role="form" class="form-inline">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="input" class="form-control" id="cmds" name="cmds" placeholder="Custom commands, : separated">
|
<input type="input" class="form-control" id="cmds" name="cmds" placeholder="Custom commands, : separated">
|
||||||
<button type="submit" class="btn btn-warning">Envoyer</button>
|
<button type="submit" class="btn btn-warning">Envoyer</button>
|
||||||
|
|
@ -121,3 +118,45 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
|
{block name=end2}
|
||||||
|
<script type="text/javascript">
|
||||||
|
function call_gen(which) {
|
||||||
|
if (which == "team") datas = { 'team': $('#regenteam').val() }
|
||||||
|
else if (which == "custom") datas = { 'cmds': $('#cmds').val() }
|
||||||
|
else datas = { }
|
||||||
|
$.ajax({
|
||||||
|
type: 'POST',
|
||||||
|
data: datas,
|
||||||
|
url: './generation/' + which,
|
||||||
|
success: function(data){
|
||||||
|
$('#logs').html($(data).find('logs').text());
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
$('#logs').html('Oops! an error occurs during command execution');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function refresh_state() {
|
||||||
|
$.ajax({
|
||||||
|
type: 'GET',
|
||||||
|
url: './generation',
|
||||||
|
success: function(data){
|
||||||
|
$('#genst').empty();
|
||||||
|
$(data).find('item').each(function(i){
|
||||||
|
if (i == 0 && $(this).text() == "empty!")
|
||||||
|
color = "warning";
|
||||||
|
else if (i == 0)
|
||||||
|
color = "success";
|
||||||
|
else
|
||||||
|
color = "";
|
||||||
|
$('#genst').append('<tr><td class="' + color + '">' + $(this).text() + '</td></tr>') })
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
$('#genst').html('<tr><td class="danger">Oops! an error occurs during status refresh</td></tr>');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
setInterval(refresh_state, 1000);
|
||||||
|
</script>
|
||||||
|
{/block}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
update_end();
|
update_end();
|
||||||
</script>
|
</script>
|
||||||
|
{block name=end2}{/block}
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
{block name=body}
|
{block name=body}
|
||||||
|
|
|
||||||
Reference in a new issue