Bootstrap->alert([ 'variant' => 'success', 'text' => __('This meta-template is already up-to-date!'), 'dismissible' => false, ]); $modalType = 'ok-only'; } else if (empty($updateStatus['templateOnDisk'])) { $diskTemplateError = $templateStatus['error'] ?? __('Unknown'); $bodyHtml .= $this->Bootstrap->alert([ 'variant' => 'danger', 'html' => sprintf('%s %s

%s

', __('Could not get template on disk.'), __('Reason:'), h($diskTemplateError)), '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('%s', h($templateOnDisk['version'])), h($metaTemplate->version)), 'dismissible' => false, ]); $bodyHtml .= $this->Bootstrap->alert([ 'variant' => 'success', 'text' => __('All meta-fields will be migrated to the newest 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' => MetaTemplatesTable::UPDATE_STRATEGY_UPDATE_EXISTING, 'checked' => true, ], ], 'submit' => [ 'action' => $this->request->getParam('action') ], ] ]); $bodyHtml .= sprintf('
%s
', $form); } else { $modalSize = 'xl'; $bodyHtml .= $this->Bootstrap->alert([ 'variant' => 'warning', 'html' => __('Updating to version {0} cannot be done automatically as it introduces some conflicts.', sprintf('%s', h($templateOnDisk['version']))), 'dismissible' => false, ]); $conflictTable = $this->element('MetaTemplates/conflictTable', [ 'templateStatus' => $templateStatus, 'metaTemplate' => $metaTemplate, 'templateOnDisk' => $templateOnDisk, ]); $conflictCount = array_reduce($templateStatus['conflicts'], function ($carry, $conflict) { return $carry + count($conflict['conflictingEntities']); }, 0); $bodyHtml .= $this->Bootstrap->collapse([ 'text' => __('View conflicts ({0})', $conflictCount), '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'), ]); ?>