diff --git a/assets/src/js/base/custom.js b/assets/src/js/base/custom.js index b1d4af3c7..f50e29026 100644 --- a/assets/src/js/base/custom.js +++ b/assets/src/js/base/custom.js @@ -40,7 +40,7 @@ $(document).ready(function () { "newestOnTop": false, "progressBar": true, "positionClass": "toast-top-right", - "preventDuplicates": true, + //"preventDuplicates": true, "onclick": null, "showDuration": "300", "hideDuration": "1000", diff --git a/modules/impostazioni/actions.php b/modules/impostazioni/actions.php index 09198b68d..27d484dc7 100755 --- a/modules/impostazioni/actions.php +++ b/modules/impostazioni/actions.php @@ -17,9 +17,49 @@ * along with this program. If not, see . */ +use Models\Setting; + include_once __DIR__.'/../../core.php'; switch (filter('op')) { + case 'salva': + $id = filter('id'); + $valore = filter('valore'); + + $impostazione = Setting::find($id); + if (!$impostazione->editable) { + echo json_encode([ + 'result' => true, + ]); + + return; + } + + $result = Settings::setValue($impostazione->id, $valore); + echo json_encode([ + 'result' => $result, + ]); + + if ($result) { + flash()->info('Impostazione modificata con successo!'); + } else { + flash()->error('Errore durante il salvataggio!'); + } + + break; + + case 'ricerca': + $search = filter('search'); + $sezioni = Setting::select('sezione') + ->where('sezione', 'like', '%'.$search.'%') + ->orWhere('nome', 'like', '%'.$search.'%') + ->groupBy(['sezione']) + ->get()->pluck('sezione'); + + echo json_encode($sezioni); + + break; + case 'update': $is_all_valid = true; diff --git a/modules/impostazioni/edit.php b/modules/impostazioni/edit.php index e1ddc3808..fb5034f05 100755 --- a/modules/impostazioni/edit.php +++ b/modules/impostazioni/edit.php @@ -17,36 +17,132 @@ * along with this program. If not, see . */ +use Models\Setting; + include_once __DIR__.'/../../core.php'; +$gruppi = Setting::selectRaw('sezione AS nome, COUNT(id) AS numero') + ->groupBy(['sezione']) + ->orderBy('sezione') + ->get(); + echo ' -
- - +
+
+
+ +
+ +
+
+
- -
-
-

'.tr('Impostazioni _SEZIONE_', [ - '_SEZIONE_' => $record['sezione'], - ]).'

-
+
+ +
+
-
'; +

'; -foreach ($records as $record) { +foreach ($gruppi as $key => $gruppo) { echo ' -
- '.Settings::input($record['id']).' -
'; + +
+
+
'.tr('Impostazioni _SEZIONE_', [ + '_SEZIONE_' => $gruppo['nome'], + ]).'
+
+
'.$gruppo['numero'].'
+
+
+ +
+
'; } echo ' -

-
- -
-
-
+'; diff --git a/modules/impostazioni/init.php b/modules/impostazioni/init.php index ae6c8e6a6..705e57273 100755 --- a/modules/impostazioni/init.php +++ b/modules/impostazioni/init.php @@ -18,7 +18,3 @@ */ include_once __DIR__.'/../../core.php'; - -if (isset($id_record)) { - $records = $dbo->fetchArray('SELECT * FROM `zz_settings` WHERE `sezione` = (SELECT sezione FROM `zz_settings` WHERE `id` = '.prepare($id_record).') ORDER BY `order`'); -} diff --git a/modules/impostazioni/sezione.php b/modules/impostazioni/sezione.php new file mode 100644 index 000000000..5cd268875 --- /dev/null +++ b/modules/impostazioni/sezione.php @@ -0,0 +1,39 @@ +. + */ + +use Models\Setting; + +include_once __DIR__.'/../../core.php'; + +$sezione = filter('sezione'); +$impostazioni = Setting::where('sezione', $sezione) + ->get(); + +foreach ($impostazioni as $impostazione) { + echo ' +
+ '.Settings::input($impostazione['id']).' +
+ + '; +} diff --git a/src/Settings.php b/src/Settings.php index bd135a65a..f00b8a473 100755 --- a/src/Settings.php +++ b/src/Settings.php @@ -142,7 +142,7 @@ class Settings return true; } - return false; + return false; } /** diff --git a/update/2_4_18.sql b/update/2_4_18.sql index c777f8745..03f7ed750 100644 --- a/update/2_4_18.sql +++ b/update/2_4_18.sql @@ -317,3 +317,6 @@ INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione` UPDATE `dt_ddt` SET `idcausalet` = (SELECT `id` FROM `dt_causalet` WHERE `predefined` = 1 LIMIT 1) WHERE EXISTS(SELECT `id` FROM `dt_causalet` WHERE `predefined` = 1) AND (idcausalet = 0 OR idcausalet IS NULL); UPDATE `dt_ddt` SET `idcausalet` = (SELECT `id` FROM `dt_causalet` WHERE `descrizione` = 'Vendita' LIMIT 1) WHERE EXISTS(SELECT `id` FROM `dt_causalet` WHERE `descrizione` = 'Vendita') AND (idcausalet = 0 OR idcausalet IS NULL); UPDATE `dt_ddt` SET `idcausalet` = (SELECT `id` FROM `dt_causalet`) WHERE EXISTS(SELECT `id` FROM `dt_causalet`) AND (idcausalet = 0 OR idcausalet IS NULL); + +-- Aggiornamento del modulo Impostazioni +UPDATE `zz_modules` SET `options` = 'custom' WHERE `name` = 'Impostazioni';