12 public function run(): string
14 dbx()->get_include_obj(
'dbxUpdateService',
'dbxAdmin');
17 $form =
dbx()->get_system_obj(
'dbxForm');
18 $form->init(
'admin-system-update',
'admin-update');
19 $form->_fd =
'dbxAdmin|admin-update';
20 $form->load_fd_messages();
21 $form->set_form_help_enabled(
false);
22 $form->_action =
'?dbx_modul=dbxAdmin&dbx_run1=update';
23 $form->_msg_info =
'';
24 $form->_msg_success =
'';
25 $form->_msg_error =
'';
26 $form->_msg_warning =
'';
27 $form->_data[
'update_request'] = 1;
28 $form->_data[
'update_operation'] =
'';
42 if (
$form->submit()) {
43 $operation = (string)
$form->get_fld_value(
52 if (!empty($prepared[
'staged'])) {
55 array(
'version' => $prepared[
'manifest'][
'version'])
60 array(
'version' => $prepared[
'manifest'][
'version'])
77 array(
'version' => $staged[
'manifest'][
'version'])
93 array(
'version' =>
$stopped[
'version'])
101 array(
'version' => $rollback[
'from_version'])
106 $form->set_error(
$form->get_fd_message(
'operation_invalid'));
108 }
catch (\Throwable $exception) {
109 $message = (int)$exception->getCode() === 404
110 ?
$form->get_fd_message(
'manifest_unavailable')
111 : $exception->getMessage();
112 $form->set_error($message);
117 $available = $status[
'available_version'] !==
''
118 ? (string)$status[
'available_version']
119 :
$form->get_fd_message(
'not_checked');
120 $staged = $status[
'staged_version'] !==
''
121 ? (string)$status[
'staged_version']
122 :
$form->get_fd_message(
'not_staged');
123 $checked = $status[
'checked_at'] !==
''
124 ? (string)$status[
'checked_at']
125 :
$form->get_fd_message(
'never');
127 if ($status[
'release_url'] !==
'') {
128 $releaseLink =
'<a class="btn btn-outline-secondary btn-sm"'
129 .
' href="' .
dbx()->esc((
string)$status[
'release_url']) .
'"'
130 .
' target="_blank" rel="noopener noreferrer">'
131 .
'<i class="bi bi-box-arrow-up-right"></i> '
132 .
dbx()->esc(
$form->get_fd_message(
'release_notes'))
136 $hasStagedUpdate = $status[
'staged_version'] !==
'';
137 $canInstall = $hasStagedUpdate && !empty($status[
'update_available']);
139 $statusClass =
'is-ready';
140 $statusText =
$form->format_fd_message(
142 array(
'version' => $status[
'staged_version'])
144 } elseif (!empty($status[
'update_available'])) {
145 $statusClass =
'is-update';
146 $statusText =
$form->get_fd_message(
'update_available');
148 $statusClass =
'is-current';
149 $statusText =
$form->get_fd_message(
'up_to_date');
152 $replacements = array(
153 'bar_title' =>
$form->get_fd_message(
'bar_title'),
154 'bar_subtitle' =>
$form->get_fd_message(
'bar_subtitle'),
155 'bar_icon' =>
'bi-arrow-repeat',
156 'bar_actions' => $releaseLink,
157 'bar_class' =>
'dbx-module-bar',
158 'bar_title_class' =>
'dbx-module-bar-titleblock',
159 'bar_title_pre' =>
'',
160 'bar_title_heading_attrs' =>
'',
163 'bar_actions_class' =>
'dbx-module-bar-actions',
164 'intro' =>
$form->get_fd_message(
'intro'),
165 'current_label' =>
$form->get_fd_message(
'current_label'),
166 'available_label' =>
$form->get_fd_message(
'available_label'),
167 'staged_label' =>
$form->get_fd_message(
'staged_label'),
168 'checked_label' =>
$form->get_fd_message(
'checked_label'),
169 'current_version' =>
dbx()->
esc((
string)$status[
'current_version']),
170 'available_version' =>
dbx()->
esc($available),
171 'staged_version' =>
dbx()->
esc($staged),
173 'status_class' => $statusClass,
174 'status_text' => $statusText,
175 'start_label' =>
$form->get_fd_message(
'start_label'),
176 'check_label' =>
$form->get_fd_message(
'check_label'),
177 'stage_label' =>
$form->get_fd_message(
'stage_label'),
178 'install_label' =>
$form->get_fd_message(
'install_label'),
179 'stop_label' =>
$form->get_fd_message(
'stop_label'),
180 'rollback_label' =>
$form->get_fd_message(
'rollback_label'),
181 'start_class' => $hasStagedUpdate ?
'd-none' :
'',
182 'decision_class' => $hasStagedUpdate ?
'' :
'd-none',
183 'stage_disabled' => !empty($status[
'update_available']) ?
'' :
'disabled',
184 'install_disabled' => $canInstall ?
'' :
'disabled',
185 'stop_disabled' => !empty($status[
'stop_available']) ?
'' :
'disabled',
186 'rollback_disabled' => !empty($status[
'rollback_available']) ?
'' :
'disabled',
187 'install_confirm_title' =>
$form->get_fd_message(
'install_confirm_title'),
188 'install_confirm' =>
$form->get_fd_message(
'install_confirm'),
189 'install_confirm_hint' =>
$form->get_fd_message(
'install_confirm_hint'),
190 'rollback_confirm_title' =>
$form->get_fd_message(
'rollback_confirm_title'),
191 'rollback_confirm' =>
$form->get_fd_message(
'rollback_confirm'),
192 'rollback_confirm_hint' =>
$form->get_fd_message(
'rollback_confirm_hint'),
193 'security_title' =>
$form->get_fd_message(
'security_title'),
194 'security_text' =>
$form->get_fd_message(
'security_text'),
195 'database_title' =>
$form->get_fd_message(
'database_title'),
196 'database_text' =>
$form->get_fd_message(
'database_text'),
199 foreach ($replacements as $key =>
$value) {