diff --git a/core.php b/core.php index 181d75819..c51dee577 100755 --- a/core.php +++ b/core.php @@ -221,6 +221,12 @@ if (!API\Response::isAPIRequest()) { // Impostazione del tema grafico di default $theme = !empty($config['theme']) ? $config['theme'] : 'default'; + + //Set the group theme + $user = auth()->getUser(); + if ($user->getThemeAttribute()){ + $theme = $user->getThemeAttribute(); + } if ($continue) { // Periodo di visualizzazione dei record diff --git a/modules/utenti/actions.php b/modules/utenti/actions.php index c8516e39e..8ec681ef4 100755 --- a/modules/utenti/actions.php +++ b/modules/utenti/actions.php @@ -26,13 +26,31 @@ $id_utente = filter('id_utente'); switch (filter('op')) { // Aggiunta nuovo gruppo case 'add': - $nome = filter('nome'); + $nome = filter('nome'); + $id_module_start = filter('id_module_start') ?: null; + $theme = filter('theme') ?: null; + // Verifico che questo nome gruppo non sia già stato usato if ($dbo->fetchNum('SELECT nome FROM zz_groups WHERE nome='.prepare($nome)) == 0) { - $dbo->query('INSERT INTO zz_groups(nome, editable) VALUES('.prepare($nome).', 1)'); + + $dbo->insert('zz_groups', [ + 'nome' => $nome, + 'id_module_start' => $id_module_start, + 'theme' => $theme, + 'editable' => 1, + ]); + $id_record = $dbo->lastInsertedID(); + if ($id_module_start){ + $dbo->insert('zz_permissions', [ + 'idgruppo' => $id_record, + 'idmodule' => $id_module_start, + 'permessi' => 'r', + ]); + } + flash()->info(tr('Gruppo aggiunto!')); } else { flash()->error(tr('Gruppo già esistente!')); @@ -255,7 +273,7 @@ switch (filter('op')) { break; - case 'update': + case 'update_id_module_start': $dbo->update('zz_groups', [ 'id_module_start' => filter('id_module_start'), ], ['id' => $id_record]); @@ -263,5 +281,15 @@ switch (filter('op')) { ob_end_clean(); echo 'ok'; + break; + + case 'update_theme': + $dbo->update('zz_groups', [ + 'theme' => filter('theme'), + ], ['id' => $id_record]); + + ob_end_clean(); + echo 'ok'; + break; } diff --git a/modules/utenti/add.php b/modules/utenti/add.php index ad9fc2b6e..5e161160f 100755 --- a/modules/utenti/add.php +++ b/modules/utenti/add.php @@ -24,9 +24,15 @@ include_once __DIR__.'/../../core.php';
-
+
{[ "type": "text", "label": "", "name": "nome", "required": 1, "validation": "gruppo", "help": "" ]}
+
+ {[ "type": "select", "label": "", "name": "theme", "values": "list=\"\": \"\",\"black\": \"\",\"red\": \"\",\"blue\": \"\",\"green\": \"\",\"yellow\": \"\",\"purple\": \"\"", "value": "$theme$" ]} +
+
+ {["type":"select", "label":"", "name":"id_module_start", "ajax-source":"moduli_gruppo", "placeholder":"" ]} +
@@ -47,7 +53,7 @@ function submitCheck() { $("#add-form").submit(); }else{ $("input[name=nome]").focus(); - swal("", "", "error"); + swal("", ".", "error"); } } diff --git a/modules/utenti/edit.php b/modules/utenti/edit.php index 28e453528..8a35356f7 100755 --- a/modules/utenti/edit.php +++ b/modules/utenti/edit.php @@ -34,6 +34,9 @@ echo '
{["type":"select", "label":"'.tr('Modulo iniziale').'", "name":"id_module_start", "ajax-source":"moduli_gruppo", "select-options": '.json_encode(['idgruppo' => $record['id']]).', "placeholder":"'.tr('Modulo iniziale').'", "value":"'.$record['id_module_start'].'" ]}
+
+ {["type":"select", "label":"'.tr('Tema').'", "name":"theme", "values":"list=\"\": \"'.tr('Predefinito').'\",\"black\": \"'.tr('Nero').'\",\"red\": \"'.tr('Rosso').'\",\"blue\": \"'.tr('Blu').'\",\"green\": \"'.tr('Verde').'\",\"yellow\": \"'.tr('Giallo').'\",\"purple\": \"'.tr('Viola').'\" ", "value":"'.$record['theme'].'" ]} +

'; @@ -255,6 +258,7 @@ function update_permissions(id, value, color){ globals.rootdir + "/actions.php?id_module='.$id_module.'&id_record='.$id_record.'&op=update_permission&idmodulo=" + id + "&permesso=" + value, function(data){ if(data == "ok") { + toastr["success"]("'.tr('Permessi aggiornati!').'"); content_was_modified = false; @@ -265,8 +269,9 @@ function update_permissions(id, value, color){ if( id==$("#id_module_start").val() && value=="-" ){ $("#id_module_start").selectReset(); - update_user($("#id_module_start").val()); + update_id_module_start($("#id_module_start").val()); } + } else { swal("'.tr('Errore').'", "'.tr("Errore durante l'aggiornamento dei permessi!").'", "error"); } @@ -275,18 +280,36 @@ function update_permissions(id, value, color){ } $("#id_module_start").change(function(){ - update_user($(this).val()); + update_id_module_start($(this).val()); }); -function update_user(value){ +$("#theme").change(function(){ + update_theme($(this).val()); +}); + +function update_id_module_start(value){ $.get( - globals.rootdir + "/actions.php?id_module='.$id_module.'&id_record='.$id_record.'&op=update&id_module_start=" + value, + globals.rootdir + "/actions.php?id_module='.$id_module.'&id_record='.$id_record.'&op=update_id_module_start&id_module_start=" + value, function(data){ if(data == "ok") { - toastr["success"]("'.tr('Informazioni aggiornate!').'"); + toastr["success"]("'.tr('Modulo iniziale aggiornato!').'"); content_was_modified = false; } else { - swal("'.tr('Errore').'", "'.tr("Errore durante l'aggiornamento delle informazioni!").'", "error"); + swal("'.tr('Errore').'", "'.tr("Errore durante l'aggiornamento delle impostazioni!").'", "error"); + } + } + ); +} + +function update_theme(value){ + $.get( + globals.rootdir + "/actions.php?id_module='.$id_module.'&id_record='.$id_record.'&op=update_theme&theme=" + value, + function(data){ + if(data == "ok") { + toastr["success"]("'.tr('Tema aggiornato!').'"); + content_was_modified = false; + } else { + swal("'.tr('Errore').'", "'.tr("Errore durante l'aggiornamento delle impostazioni!").'", "error"); } } ); diff --git a/src/Models/User.php b/src/Models/User.php index edf1a388a..f404ba464 100755 --- a/src/Models/User.php +++ b/src/Models/User.php @@ -33,6 +33,7 @@ class User extends Model protected $appends = [ 'is_admin', 'gruppo', + 'theme', 'id_anagrafica', ]; @@ -47,6 +48,7 @@ class User extends Model protected $is_admin; protected $gruppo; + protected $theme; /** * The attributes that should be hidden for arrays. @@ -111,6 +113,15 @@ class User extends Model return $this->gruppo; } + public function getThemeAttribute() + { + if (!isset($this->theme)) { + $this->theme = $this->group->theme; + } + + return $this->theme; + } + public function getSediAttribute() { $database = database(); diff --git a/update/2_4_54.sql b/update/2_4_54.sql new file mode 100644 index 000000000..ba9af0c31 --- /dev/null +++ b/update/2_4_54.sql @@ -0,0 +1,7 @@ +-- Aggiunto colore in per gruppi utenti +ALTER TABLE `zz_groups` ADD `theme` VARCHAR(25) NULL AFTER `id_module_start`; + +UPDATE `zz_groups` SET `theme` = 'black' WHERE `zz_groups`.`nome` = 'Amministratori'; +UPDATE `zz_groups` SET `theme` = 'red' WHERE `zz_groups`.`nome` = 'Tecnici'; +UPDATE `zz_groups` SET `theme` = 'blue' WHERE `zz_groups`.`nome` = 'Agenti'; +UPDATE `zz_groups` SET `theme` = 'green' WHERE `zz_groups`.`nome` = 'Clienti'; \ No newline at end of file