130 lines
5.3 KiB
PHP
130 lines
5.3 KiB
PHP
<?php
|
|
|
|
$bodyHtml = '';
|
|
$modalType = 'confirm';
|
|
$modalSize = 'lg';
|
|
if ($updateStatus['up-to-date']) {
|
|
$bodyHtml .= $this->Bootstrap->alert([
|
|
'variant' => 'success',
|
|
'text' => __('This meta-template is already up-to-date!'),
|
|
'dismissible' => false,
|
|
]);
|
|
$modalType = 'ok-only';
|
|
} else {
|
|
if ($updateStatus['automatically-updateable']) {
|
|
$bodyHtml .= $this->Bootstrap->alert([
|
|
'variant' => 'success',
|
|
'html' => __('This meta-template can be updated to version {0} (current: {1}).', sprintf('<strong>%s</strong>', h($templateOnDisk['version'])), h($metaTemplate->version)),
|
|
'dismissible' => false,
|
|
]);
|
|
$form = $this->element('genericElements/Form/genericForm', [
|
|
'entity' => null,
|
|
'ajax' => false,
|
|
'raw' => true,
|
|
'data' => [
|
|
'model' => 'MetaTemplate',
|
|
'fields' => [
|
|
[
|
|
'field' => 'update_strategy',
|
|
'type' => 'checkbox',
|
|
'value' => 'update',
|
|
'checked' => true,
|
|
]
|
|
],
|
|
'submit' => [
|
|
'action' => $this->request->getParam('action')
|
|
],
|
|
]
|
|
]);
|
|
$bodyHtml .= sprintf('<div class="d-none">%s</div>', $form);
|
|
} else {
|
|
$modalSize = 'xl';
|
|
$bodyHtml .= $this->Bootstrap->alert([
|
|
'variant' => 'warning',
|
|
'text' => __('Updating to version {0} cannot be done automatically as it introduces some conflicts.', h($templateOnDisk['version'])),
|
|
'dismissible' => false,
|
|
]);
|
|
$conflictTable = $this->element('MetaTemplates/conflictTable', [
|
|
'templateStatus' => $templateStatus,
|
|
'metaTemplate' => $metaTemplate,
|
|
'templateOnDisk' => $templateOnDisk,
|
|
]);
|
|
$bodyHtml .= $this->Bootstrap->collapse([
|
|
'title' => __('View conflicts'),
|
|
'open' => false
|
|
], $conflictTable);
|
|
$bodyHtml .= $this->element('MetaTemplates/conflictResolution', [
|
|
'templateStatus' => $templateStatus,
|
|
'metaTemplate' => $metaTemplate,
|
|
'templateOnDisk' => $templateOnDisk,
|
|
]);
|
|
}
|
|
}
|
|
|
|
echo $this->Bootstrap->modal([
|
|
'title' => __('Update Meta Templates #{0} ?', h($metaTemplate->id)),
|
|
'bodyHtml' => $bodyHtml,
|
|
'size' => $modalSize,
|
|
'type' => $modalType,
|
|
'confirmText' => __('Update meta-templates'),
|
|
// 'confirmFunction' => 'updateMetaTemplate',
|
|
]);
|
|
?>
|
|
|
|
<script>
|
|
// function updateMetaTemplate(idList, selectedData, $table) {
|
|
// const successCallback = function([data, modalObject]) {
|
|
// location.reload()
|
|
// }
|
|
// const failCallback = ([data, modalObject]) => {
|
|
// const tableData = selectedData.map(row => {
|
|
// entryInError = data.filter(error => error.data.id == row.id)[0]
|
|
// $faIcon = $('<i class="fa"></i>').addClass(entryInError.success ? 'fa-check text-success' : 'fa-times text-danger')
|
|
// return [row.id, row.first_name, row.last_name, row.email, entryInError.message, JSON.stringify(entryInError.errors), $faIcon]
|
|
// });
|
|
// handleMessageTable(
|
|
// modalObject.$modal,
|
|
// ['<?= __('ID') ?>', '<?= __('First name') ?>', '<?= __('Last name') ?>', '<?= __('email') ?>', '<?= __('Message') ?>', '<?= __('Error') ?>', '<?= __('State') ?>'],
|
|
// tableData
|
|
// )
|
|
// const $footer = $(modalObject.ajaxApi.statusNode).parent()
|
|
// modalObject.ajaxApi.statusNode.remove()
|
|
// const $cancelButton = $footer.find('button[data-bs-dismiss="modal"]')
|
|
// $cancelButton.text('<?= __('OK') ?>').removeClass('btn-secondary').addClass('btn-primary')
|
|
// }
|
|
// UI.submissionModal('[URL_HERE]', successCallback, failCallback).then(([modalObject, ajaxApi]) => {
|
|
// const $idsInput = modalObject.$modal.find('form').find('input#ids-field')
|
|
// $idsInput.val(JSON.stringify(idList))
|
|
// const tableData = selectedData.map(row => {
|
|
// return [row.id, row.first_name, row.last_name, row.email]
|
|
// });
|
|
// handleMessageTable(
|
|
// modalObject.$modal,
|
|
// ['<?= __('ID') ?>', '<?= __('First name') ?>', '<?= __('Last name') ?>', '<?= __('email') ?>'],
|
|
// tableData
|
|
// )
|
|
// })
|
|
|
|
// function constructMessageTable(header, data) {
|
|
// return HtmlHelper.table(
|
|
// header,
|
|
// data, {
|
|
// small: true,
|
|
// borderless: true,
|
|
// tableClass: ['message-table', 'mt-4 mb-0'],
|
|
// }
|
|
// )
|
|
// }
|
|
|
|
// function handleMessageTable($modal, header, data) {
|
|
// const $modalBody = $modal.find('.modal-body')
|
|
// const $messageTable = $modalBody.find('table.message-table')
|
|
// const messageTableHTML = constructMessageTable(header, data)[0].outerHTML
|
|
// if ($messageTable.length) {
|
|
// $messageTable.html(messageTableHTML)
|
|
// } else {
|
|
// $modalBody.append(messageTableHTML)
|
|
// }
|
|
// }
|
|
// }
|
|
</script>
|