61 lines
2.0 KiB
PHP
61 lines
2.0 KiB
PHP
<?php
|
|
if (!empty($updateAvailables)) {
|
|
$alertHtml = sprintf(
|
|
'<h5 class="alert-heading">%s</h5>%s<div>%s</div>',
|
|
__n('A new update is available!', 'New updates are available!', count($updateAvailables)),
|
|
__('Updating to the latest version is highly recommanded.'),
|
|
$this->Bootstrap->button([
|
|
'variant' => 'success',
|
|
'icon' => 'arrow-alt-circle-up',
|
|
'class' => 'mt-1',
|
|
'text' => __n('Run update', 'Run all updates', count($updateAvailables)),
|
|
'params' => [
|
|
'onclick' => 'runAllUpdate()'
|
|
]
|
|
])
|
|
);
|
|
echo $this->Bootstrap->alert([
|
|
'variant' => 'warning',
|
|
'html' => $alertHtml,
|
|
'dismissible' => false,
|
|
]);
|
|
}
|
|
|
|
foreach ($status as $i => &$update) {
|
|
if ($update['status'] == 'up') {
|
|
$update['_rowVariant'] = 'success';
|
|
} else if ($update['status'] == 'down') {
|
|
$update['_rowVariant'] = 'danger';
|
|
}
|
|
}
|
|
|
|
echo $this->Bootstrap->table([], [
|
|
'fields' => [
|
|
['key' => 'id', 'label' => __('ID')],
|
|
['key' => 'name', 'label' => __('Name')],
|
|
['key' => 'end_time', 'label' => __('End Time')],
|
|
['key' => 'time_taken_formated', 'label' => __('Time Taken')],
|
|
['key' => 'status', 'label' => __('Status')]
|
|
],
|
|
'items' => $status,
|
|
]);
|
|
?>
|
|
|
|
<script>
|
|
function runAllUpdate() {
|
|
const url = '/instance/migrate'
|
|
const reloadUrl = '/instance/migrate-index'
|
|
const modalOptions = {
|
|
title: '<?= __n('Run database update?', 'Run all database updates?', count($updateAvailables)) ?>',
|
|
body: '<?= __('The process might take some time.') ?>',
|
|
type: 'confirm-success',
|
|
confirmText: '<?= __n('Run update', 'Run all updates', count($updateAvailables)) ?>',
|
|
APIConfirm: (tmpApi) => {
|
|
tmpApi.fetchAndPostForm(url, {}).then(() => {
|
|
location.reload()
|
|
})
|
|
},
|
|
}
|
|
UI.modal(modalOptions)
|
|
}
|
|
</script>
|