Skip to content

Commit 0f269de

Browse files
committed
refactor: ottimizzazione codice Aggiornamenti
1 parent 1482bac commit 0f269de

7 files changed

Lines changed: 543 additions & 284 deletions

File tree

assets/src/css/style.css

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3630,12 +3630,13 @@ section.content, .main-footer {
36303630
/* Requirements cards styling */
36313631
.requirements-card {
36323632
border-radius: 6px !important;
3633-
margin-bottom: 15px !important;
3633+
margin-bottom: 8px !important;
36343634
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05) !important;
36353635
}
36363636

36373637
.requirements-card-header {
3638-
padding: 12px 15px !important;
3638+
padding: 10px 12px !important;
3639+
min-height: 50px !important;
36393640
}
36403641

36413642
.requirements-card-header-success {

modules/aggiornamenti/controlli.php

Lines changed: 32 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
</button>
3434
</div>
3535
36+
<script src="'.base_path().'/modules/aggiornamenti/src/utils.js"></script>
37+
3638
<div id="progress" style="display:none;">
3739
<div class="progress" data-percentage="0%">
3840
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0%">
@@ -246,24 +248,17 @@ function avviaControllo(controllo) {
246248
avviaBtn.hide();
247249
248250
// Aggiorna il colore della card header in base ai risultati
249-
// Rimuovi le classi precedenti
250-
headerElement.removeClass("requirements-card-header-success requirements-card-header-info requirements-card-header-warning requirements-card-header-danger");
251-
titleElement.removeClass("requirements-card-title-success requirements-card-title-info requirements-card-title-warning requirements-card-title-danger");
252-
cardElement.removeClass("card-success card-info card-warning card-danger");
251+
removeColorClasses(headerElement);
252+
removeTitleColorClasses(titleElement);
253+
removeCardColorClasses(cardElement);
253254
254255
if (success) {
255256
// Se il test è positivo (nessun avviso), colore success
256-
headerElement.addClass("requirements-card-header-success");
257-
titleElement.addClass("requirements-card-title-success");
258-
cardElement.addClass("card-success");
259-
260-
// Aggiorna icona a check-circle
261-
let iconElement = titleElement.find(".requirements-icon");
262-
iconElement.removeClass("fa-info-circle fa-exclamation-circle fa-times-circle");
263-
iconElement.addClass("fa-check-circle");
257+
let colorClasses = determineCardClasses(0, 0, 0);
258+
applyCardColorClasses(headerElement, titleElement, cardElement, colorClasses);
264259
265260
// Pulisci il body e mostra il messaggio di successo
266-
bodyElement.html(`<p class="text-muted">'.tr('Nessun problema rilevato').'</p>`);
261+
bodyElement.css(\'padding\', \'10px 12px\').html(`<p class="text-muted">'.tr('Nessun problema rilevato').'</p>`);
267262
268263
// Rimuovi la badge se presente
269264
titleElement.find(".badge").remove();
@@ -276,29 +271,8 @@ function avviaControllo(controllo) {
276271
let orphanFiles = records.filter(r => r.tipo === "file_orfano");
277272
let orphanRecords = records.filter(r => r.tipo === "file_mancante");
278273
279-
let headerColorCls = "requirements-card-header-info";
280-
let titleColorCls = "requirements-card-title-info";
281-
let cardColorCls = "card-info";
282-
283-
if (orphanRecords.length > 0) {
284-
headerColorCls = "requirements-card-header-warning";
285-
titleColorCls = "requirements-card-title-warning";
286-
cardColorCls = "card-warning";
287-
}
288-
289-
// Aggiungi le nuove classi in base al tipo di badge
290-
headerElement.addClass(headerColorCls);
291-
titleElement.addClass(titleColorCls);
292-
cardElement.addClass(cardColorCls);
293-
294-
// Aggiorna icona in base al colore
295-
let iconElement = titleElement.find(".requirements-icon");
296-
iconElement.removeClass("fa-info-circle fa-exclamation-circle fa-warning fa-times-circle");
297-
if (orphanRecords.length > 0) {
298-
iconElement.addClass("fa-exclamation-circle");
299-
} else {
300-
iconElement.addClass("fa-info-circle");
301-
}
274+
let colorClasses = determineCardClasses(0, orphanRecords.length > 0 ? 1 : 0, orphanFiles.length > 0 ? 1 : 0);
275+
applyCardColorClasses(headerElement, titleElement, cardElement, colorClasses);
302276
303277
// Ordina per gravita: warning prima di info
304278
if (orphanRecords.length > 0) {
@@ -342,22 +316,8 @@ function avviaControllo(controllo) {
342316
});
343317
344318
// Aggiungi le nuove classi in base al tipo di badge piu grave
345-
let iconElement = titleElement.find(".requirements-icon");
346-
iconElement.removeClass("fa-info-circle fa-exclamation-circle fa-warning fa-times-circle");
347-
348-
if (hasDanger) {
349-
headerElement.addClass("requirements-card-header-danger");
350-
titleElement.addClass("requirements-card-title-danger");
351-
cardElement.addClass("card-danger");
352-
iconElement.addClass("fa-times-circle");
353-
} else if (hasWarning) {
354-
headerElement.addClass("requirements-card-header-warning");
355-
titleElement.addClass("requirements-card-title-warning");
356-
cardElement.addClass("card-warning");
357-
iconElement.addClass("fa-exclamation-circle");
358-
} else {
359-
iconElement.addClass("fa-info-circle");
360-
}
319+
let colorClasses = determineCardClasses(hasDanger ? 1 : 0, hasWarning ? 1 : 0, 0);
320+
applyCardColorClasses(headerElement, titleElement, cardElement, colorClasses);
361321
362322
// Mostra le badge per tipo di avviso
363323
if (dangerCount > 0) {
@@ -369,34 +329,26 @@ function avviaControllo(controllo) {
369329
if (infoCount > 0) {
370330
titleElement.append(` <span class="badge badge-info ml-2">${infoCount}</span>`);
371331
}
372-
373-
// Aggiungi le date di filtro in testo grigio
374-
if (controllo["period_start"] && controllo["period_end"]) {
375-
let dataInizio = new Date(controllo["period_start"]);
376-
let dataFine = new Date(controllo["period_end"]);
377-
let dataInizioFormattata = dataInizio.toLocaleDateString("it-IT");
378-
let dataFineFormattata = dataFine.toLocaleDateString("it-IT");
379-
titleElement.append(` <span style="color: #999; font-size: 0.9rem; margin-left: 10px;">${dataInizioFormattata} - ${dataFineFormattata}</span>`);
380-
}
381332
} else {
382333
// Se ci sono avvisi, determina il tipo di badge piu grave
383334
let hasDanger = records.some(r => r.type === "danger");
384335
let hasWarning = records.some(r => r.type === "warning");
385336
386337
// Aggiungi le nuove classi in base al tipo di badge
387338
let iconElement = titleElement.find(".requirements-icon");
388-
iconElement.removeClass("fa-info-circle fa-exclamation-circle fa-warning fa-times-circle");
339+
iconElement.removeClass("fa-info-circle fa-exclamation-circle fa-warning fa-times-circle fa-exclamation-triangle");
389340
390341
if (hasDanger) {
391342
headerElement.addClass("requirements-card-header-danger");
392343
titleElement.addClass("requirements-card-title-danger");
393344
cardElement.addClass("card-danger");
394-
iconElement.addClass("fa-times-circle");
345+
iconElement.addClass("fa-exclamation-triangle");
346+
iconElement.css("color", "#dc3545");
395347
} else if (hasWarning) {
396348
headerElement.addClass("requirements-card-header-warning");
397349
titleElement.addClass("requirements-card-title-warning");
398350
cardElement.addClass("card-warning");
399-
iconElement.addClass("fa-exclamation-circle");
351+
iconElement.addClass("fa-exclamation-triangle");
400352
} else {
401353
iconElement.addClass("fa-info-circle");
402354
}
@@ -425,7 +377,7 @@ function avviaControllo(controllo) {
425377
</table>
426378
</div>`;
427379
428-
bodyElement.html(bodyHTML);
380+
bodyElement.css(\'padding\', \'10px 12px\').html(bodyHTML);
429381
430382
// Pulisci la tabella e aggiungi i nuovi record
431383
let tbody = bodyElement.find("tbody");
@@ -674,7 +626,7 @@ function avviaControlloSingolo(id) {
674626
</table>
675627
</div>`;
676628
677-
bodyElement.html(bodyHTML);
629+
bodyElement.css(\'padding\', \'10px 12px\').html(bodyHTML);
678630
679631
// Pulisci la tabella e aggiungi i nuovi record
680632
let tbody = bodyElement.find("tbody");
@@ -867,7 +819,7 @@ function initcard(controllo, success, records) {
867819
// Usa i colori determinati sopra
868820
let finalHeaderClass = headerClass;
869821
let finalTitleClass = titleClass;
870-
let finalCssClass = cssClass + " requirements-card mb-3 collapsable collapsed-card";
822+
let finalCssClass = cssClass + " requirements-card mb-2 collapsable collapsed-card";
871823
872824
// Determina il colore della card in base al tipo di controllo
873825
let cardColorClass = "card-info";
@@ -917,7 +869,7 @@ function initcard(controllo, success, records) {
917869
if (records.length > 0) {
918870
finalHeaderClass = "requirements-card-header " + headerColorClass;
919871
finalTitleClass = "requirements-card-title " + titleColorClass;
920-
finalCssClass = cardColorClass + " requirements-card mb-3 collapsable collapsed-card";
872+
finalCssClass = cardColorClass + " requirements-card mb-2 collapsable collapsed-card";
921873
}
922874
923875
let card = `<div class="card ` + finalCssClass + `" id="controllo-` + controllo["id"] + `" data-controllo-name="` + controllo["name"] + `" data-controllo-class="` + controllo["class"] + `">
@@ -952,7 +904,14 @@ function initcard(controllo, success, records) {
952904
card += ` <span class="badge badge-danger ml-2">${records.length}</span>`;
953905
}
954906
955-
// Le date di filtro per il controllo DatiFattureElettroniche verranno aggiunte dopo esecuzione
907+
// Aggiungi le date di filtro per il controllo DatiFattureElettroniche
908+
if (controllo["period_start"] && controllo["period_end"]) {
909+
let dataInizio = new Date(controllo["period_start"]);
910+
let dataFine = new Date(controllo["period_end"]);
911+
let dataInizioFormattata = dataInizio.toLocaleDateString("it-IT");
912+
let dataFineFormattata = dataFine.toLocaleDateString("it-IT");
913+
card += ` <span style="color: #999; font-size: 0.9rem; margin-left: 10px;">${dataInizioFormattata} - ${dataFineFormattata}</span>`;
914+
}
956915
957916
card += `</h3>
958917
<div class="card-tools pull-right" style="display: flex; align-items: center; gap: 10px;">`;
@@ -1000,7 +959,7 @@ function initcard(controllo, success, records) {
1000959
let hasRowOptions = records.length > 0 && records[0].options && records[0].options.length > 0;
1001960
1002961
card += `
1003-
<div class="card-body">
962+
<div class="card-body" style="padding: 10px 12px;">
1004963
<div class="table-responsive">
1005964
<table class="table table-sm">
1006965
<thead>
@@ -1022,7 +981,7 @@ function initcard(controllo, success, records) {
1022981
} else {
1023982
// Aggiungi un body vuoto per le card di tipo info (collassate)
1024983
card += `
1025-
<div class="card-body">
984+
<div class="card-body" style="padding: 10px 12px;">
1026985
<p class="text-muted">'.tr('Nessun problema rilevato').'</p>
1027986
</div>`
1028987
}
@@ -1297,7 +1256,7 @@ function eseguiAzioneGlobale(buttonElement) {
12971256
12981257
let isInfo = controlliInfo.includes(controlloClass);
12991258
let alertClass = isInfo ? "alert-info" : "alert-warning";
1300-
let iconClass = isInfo ? "fa-info-circle text-info" : "fa-exclamation-circle text-warning";
1259+
let iconClass = isInfo ? "fa-info-circle text-info" : "fa-exclamation-triangle text-warning";
13011260
13021261
// Genera la lista delle operazioni
13031262
let operazioniHtml = "";
@@ -1440,7 +1399,7 @@ function eseguiRisoluzioneGlobale(button, controlloId, controlloClass, successCa
14401399
14411400
let errorHtml = `
14421401
<div class="alert alert-danger">
1443-
<h4><i class="fa fa-times-circle"></i> '.tr('Errore durante la risoluzione').'</h4>
1402+
<h4><i class="fa fa-exclamation-triangle" style="color: #dc3545;"></i> '.tr('Errore durante la risoluzione').'</h4>
14441403
<p>'.tr('Si è verificato un errore').': ${errorMessage}</p>
14451404
</div>
14461405
`;

modules/aggiornamenti/database.php

Lines changed: 9 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
include_once __DIR__.'/../../core.php';
2222

2323
use Models\OperationLog;
24+
use Modules\Aggiornamenti\IntegrityChecker;
25+
use Modules\Aggiornamenti\Utils;
2426

2527
// Aggiunta della classe per il modulo
2628
echo '<div class="module-aggiornamenti">';
@@ -32,59 +34,18 @@ function saveQueriesToSession($queries)
3234
$_SESSION['query_conflitti'] = $queries;
3335
}
3436

35-
// Funzioni per il controllo database (dichiarate solo se non già presenti)
37+
// Funzioni per il controllo database (wrapper per compatibilità)
3638
if (!function_exists('integrity_diff')) {
3739
function integrity_diff($expected, $current)
3840
{
39-
foreach ($expected as $key => $value) {
40-
if (array_key_exists($key, $current) && is_array($value)) {
41-
if (!is_array($current[$key])) {
42-
$difference[$key] = $value;
43-
} else {
44-
$new_diff = integrity_diff($value, $current[$key]);
45-
if (!empty($new_diff)) {
46-
$difference[$key] = $new_diff;
47-
}
48-
}
49-
} elseif (!array_key_exists($key, $current) || $current[$key] != $value && !empty($value)) {
50-
$difference[$key] = [
51-
'current' => $current[$key],
52-
'expected' => $value,
53-
];
54-
}
55-
}
56-
57-
return !isset($difference) ? [] : $difference;
41+
return IntegrityChecker::diff($expected, $current);
5842
}
5943
}
6044

6145
if (!function_exists('settings_diff')) {
6246
function settings_diff($expected, $current)
6347
{
64-
foreach ($expected as $key => $value) {
65-
if (array_key_exists($key, $current)) {
66-
if (!is_array($current[$key])) {
67-
if ($current[$key] !== $value) {
68-
$difference[$key] = [
69-
'current' => $current[$key],
70-
'expected' => $value,
71-
];
72-
}
73-
} else {
74-
$new_diff = integrity_diff($value, $current[$key]);
75-
if (!empty($new_diff)) {
76-
$difference[$key] = $new_diff;
77-
}
78-
}
79-
} else {
80-
$difference[$key] = [
81-
'current' => null,
82-
'expected' => $value,
83-
];
84-
}
85-
}
86-
87-
return $difference;
48+
return IntegrityChecker::settingsDiff($expected, $current);
8849
}
8950
}
9051

@@ -216,25 +177,8 @@ function settings_diff($expected, $current)
216177
$error_count = $danger_count + $warning_count + $info_count;
217178
}
218179

219-
$badge_html = '';
220-
$border_color = '#17a2b8'; // default info
221-
222-
if ($danger_count > 0) {
223-
$badge_html .= '<span class="badge badge-danger ml-2">'.$danger_count.'</span>';
224-
$border_color = '#dc3545'; // danger
225-
}
226-
if ($warning_count > 0) {
227-
$badge_html .= '<span class="badge badge-warning ml-2">'.$warning_count.'</span>';
228-
if ($border_color === '#17a2b8') {
229-
$border_color = '#ffc107'; // warning
230-
}
231-
}
232-
if ($info_count > 0) {
233-
$badge_html .= '<span class="badge badge-info ml-2">'.$info_count.'</span>';
234-
if ($border_color === '#17a2b8') {
235-
$border_color = '#17a2b8'; // info
236-
}
237-
}
180+
$badge_html = Utils::generateBadgeHtml($danger_count, $warning_count, $info_count);
181+
$border_color = Utils::determineBorderColor($danger_count, $warning_count);
238182

239183
echo '
240184
<div class="mb-3">
@@ -584,25 +528,8 @@ function settings_diff($expected, $current)
584528
}
585529
}
586530

587-
$settings_border_color = '#17a2b8'; // default info
588-
$settings_badge_html = '';
589-
590-
if ($settings_danger_count > 0) {
591-
$settings_badge_html .= '<span class="badge badge-danger ml-2">'.$settings_danger_count.'</span>';
592-
$settings_border_color = '#dc3545'; // danger
593-
}
594-
if ($settings_warning_count > 0) {
595-
$settings_badge_html .= '<span class="badge badge-warning ml-2">'.$settings_warning_count.'</span>';
596-
if ($settings_border_color === '#17a2b8') {
597-
$settings_border_color = '#ffc107'; // warning
598-
}
599-
}
600-
if ($settings_info_count > 0) {
601-
$settings_badge_html .= '<span class="badge badge-info ml-2">'.$settings_info_count.'</span>';
602-
if ($settings_border_color === '#17a2b8') {
603-
$settings_border_color = '#17a2b8'; // info
604-
}
605-
}
531+
$settings_badge_html = Utils::generateBadgeHtml($settings_danger_count, $settings_warning_count, $settings_info_count);
532+
$settings_border_color = Utils::determineBorderColor($settings_danger_count, $settings_warning_count);
606533

607534
echo '
608535
<div class="mb-3">

0 commit comments

Comments
 (0)