Skip to content

Commit f573576

Browse files
committed
fix: gestione avviso file json mancanti per card impostazioni e widgets personalizzati in Aggiornamenti
1 parent 545d3bb commit f573576

1 file changed

Lines changed: 72 additions & 27 deletions

File tree

modules/aggiornamenti/edit.php

Lines changed: 72 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -232,9 +232,10 @@ function highlightDifferences($current, $expected)
232232
$custom_views_not_standard = function_exists('customViewsNotStandard') ? customViewsNotStandard() : [];
233233
$custom_modules_not_standard = function_exists('customModulesNotStandard') ? customModulesNotStandard() : [];
234234

235-
// Verifica se mancano i file di riferimento per viste e moduli
235+
// Verifica se mancano i file di riferimento per viste, moduli, impostazioni e widgets
236236
$views_file_missing = !file_exists(base_dir().'/views.json');
237237
$modules_file_missing = !file_exists(base_dir().'/modules.json');
238+
$settings_file_missing = !file_exists(base_dir().'/settings.json');
238239
$widgets_file_missing = !file_exists(base_dir().'/widgets.json');
239240

240241
// Verifica se manca il file di riferimento per il database
@@ -998,25 +999,33 @@ function getModuleNameFromReference($reference_file, $folder_name, $modules_json
998999
</div>';
9991000

10001001
// Card Impostazioni personalizzate
1002+
$has_settings_data_issues = !empty($results_settings) || !empty($results_settings_added);
1003+
1004+
// Conta gli avvisi per tipo
10011005
$settings_danger_count = 0;
10021006
$settings_warning_count = 0;
10031007
$settings_info_count = 0;
10041008

1005-
foreach ($results_settings as $key => $setting) {
1006-
if (!$setting['current']) {
1007-
++$settings_danger_count;
1008-
} else {
1009-
++$settings_warning_count;
1009+
if ($has_settings_data_issues) {
1010+
foreach ($results_settings as $key => $setting) {
1011+
if (!$setting['current']) {
1012+
++$settings_danger_count;
1013+
} else {
1014+
++$settings_warning_count;
1015+
}
10101016
}
1011-
}
10121017

1013-
foreach ($results_settings_added as $key => $setting) {
1014-
if ($setting['current'] == null) {
1015-
++$settings_info_count;
1018+
foreach ($results_settings_added as $key => $setting) {
1019+
if ($setting['current'] == null) {
1020+
++$settings_info_count;
1021+
}
10161022
}
10171023
}
10181024

1019-
$settings_colors = Utils::determineCardColor($settings_danger_count, $settings_warning_count, $settings_info_count > 0 ? 1 : 0);
1025+
// Determina il colore della card in base all'avviso più grave
1026+
$settings_danger = ($settings_file_missing && $settings_warning_count > 0) ? 1 : 0;
1027+
$settings_warning = ($settings_warning_count > 0 || $settings_file_missing) ? 1 : 0;
1028+
$settings_colors = Utils::determineCardColor($settings_danger, $settings_warning, $settings_info_count > 0 ? 1 : 0);
10201029
$settings_card_color = $settings_colors['color'];
10211030
$settings_icon = $settings_colors['icon'];
10221031

@@ -1038,40 +1047,62 @@ function getModuleNameFromReference($reference_file, $folder_name, $modules_json
10381047
</div>
10391048
<div class="card-body">';
10401049

1041-
include __DIR__.'/settings.php';
1050+
if ($has_settings_data_issues) {
1051+
include __DIR__.'/settings.php';
1052+
} elseif ($settings_file_missing) {
1053+
echo '
1054+
<div class="alert alert-warning alert-database">
1055+
<i class="fa fa-exclamation-triangle"></i> '.tr('Impossibile effettuare il controllo delle impostazioni in assenza del file _FILE_', [
1056+
'_FILE_' => '<b>settings.json</b>',
1057+
]).'.
1058+
</div>';
1059+
} else {
1060+
echo '
1061+
<p class="text-success mb-0">
1062+
<i class="fa fa-check-circle"></i> '.tr('Nessuna impostazione personalizzata rilevata').'
1063+
</p>';
1064+
}
10421065

10431066
echo '
10441067
</div>
10451068
</div>';
10461069

10471070
// Card Widgets personalizzati
1071+
$has_widgets_data_issues = !empty($results_widgets) || !empty($results_widgets_added);
1072+
1073+
// Conta gli avvisi per tipo
10481074
$widgets_danger_count = 0;
10491075
$widgets_warning_count = 0;
10501076
$widgets_info_count = 0;
10511077

1052-
foreach ($results_widgets as $module_key => $module_widgets) {
1053-
if (is_array($module_widgets)) {
1054-
foreach ($module_widgets as $widget_name => $widget) {
1055-
if (!$widget['current']) {
1056-
++$widgets_danger_count;
1057-
} else {
1058-
++$widgets_warning_count;
1078+
if ($has_widgets_data_issues) {
1079+
foreach ($results_widgets as $module_key => $module_widgets) {
1080+
if (is_array($module_widgets)) {
1081+
foreach ($module_widgets as $widget_name => $widget) {
1082+
if (!$widget['current']) {
1083+
++$widgets_danger_count;
1084+
} else {
1085+
++$widgets_warning_count;
1086+
}
10591087
}
10601088
}
10611089
}
1062-
}
10631090

1064-
foreach ($results_widgets_added as $module_key => $module_widgets) {
1065-
if (is_array($module_widgets)) {
1066-
foreach ($module_widgets as $widget_name => $widget) {
1067-
if ($widget['current'] == null) {
1068-
++$widgets_info_count;
1091+
foreach ($results_widgets_added as $module_key => $module_widgets) {
1092+
if (is_array($module_widgets)) {
1093+
foreach ($module_widgets as $widget_name => $widget) {
1094+
if ($widget['current'] == null) {
1095+
++$widgets_info_count;
1096+
}
10691097
}
10701098
}
10711099
}
10721100
}
10731101

1074-
$widgets_colors = Utils::determineCardColor($widgets_danger_count, $widgets_warning_count, $widgets_info_count > 0 ? 1 : 0);
1102+
// Determina il colore della card in base all'avviso più grave
1103+
$widgets_danger = ($widgets_file_missing && $widgets_warning_count > 0) ? 1 : 0;
1104+
$widgets_warning = ($widgets_warning_count > 0 || $widgets_file_missing) ? 1 : 0;
1105+
$widgets_colors = Utils::determineCardColor($widgets_danger, $widgets_warning, $widgets_info_count > 0 ? 1 : 0);
10751106
$widgets_card_color = $widgets_colors['color'];
10761107
$widgets_icon = $widgets_colors['icon'];
10771108

@@ -1093,7 +1124,21 @@ function getModuleNameFromReference($reference_file, $folder_name, $modules_json
10931124
</div>
10941125
<div class="card-body">';
10951126

1096-
include __DIR__.'/widgets.php';
1127+
if ($has_widgets_data_issues) {
1128+
include __DIR__.'/widgets.php';
1129+
} elseif ($widgets_file_missing) {
1130+
echo '
1131+
<div class="alert alert-warning alert-database">
1132+
<i class="fa fa-exclamation-triangle"></i> '.tr('Impossibile effettuare il controllo dei widgets in assenza del file _FILE_', [
1133+
'_FILE_' => '<b>widgets.json</b>',
1134+
]).'.
1135+
</div>';
1136+
} else {
1137+
echo '
1138+
<p class="text-success mb-0">
1139+
<i class="fa fa-check-circle"></i> '.tr('Nessun widget personalizzato rilevato').'
1140+
</p>';
1141+
}
10971142

10981143
echo '
10991144
</div>

0 commit comments

Comments
 (0)