Class GTMController
Questo controller gestisce l'intero ciclo di vita delle attività operative (Task):
creazione, assegnazione a singoli utenti o interi ruoli, modifica, completamento e cancellazione.
Integra un sistema di assegnazione flessibile basato su GTMMessage che permette di
indirizzare i task in modo polimorfico.
Estende ModuloController (ID Modulo: 5) per la verifica dei permessi.
- Since:
- 1.3.0
- Version:
- 3.2.1
- Author:
- Modulink Team
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AssegnazioneServiceprivate final AssociazioneServiceprivate final CustomUserDetailsServiceprivate final RuoloServiceprivate final TaskService -
Constructor Summary
ConstructorsConstructorDescriptionGTMController(ModuloService moduloService, TaskService taskService, AssegnazioneService assegnazioneService, CustomUserDetailsService customUserDetailsService, RuoloService ruoloService, AssociazioneService associazioneService) Costruttore per l'iniezione delle dipendenze. -
Method Summary
Modifier and TypeMethodDescriptioncreateNewTask(Principal principal, org.springframework.ui.Model model, @Valid GTMForm form, org.springframework.validation.BindingResult bindingResult) Crea un nuovo Task.voiddisinstallaModulo(AziendaEntity azienda) Disinstalla il modulo GTM rimuovendo tutti i task associati all'azienda.editTask(Principal principal, org.springframework.ui.Model model, @Valid GTMEditForm form, org.springframework.validation.BindingResult bindingResult) Modifica i dettagli di un Task esistente.Visualizza la dashboard di gestione Task.API per recuperare la lista di possibili assegnatari (Utenti e Ruoli).removeTask(Principal principal, org.springframework.ui.Model model, int idTask) Cancella un Task esistente.setAsCompletato(Principal principal, org.springframework.ui.Model model, int idTask) Marca un task come completato.Methods inherited from class ModuloController
getId, isAccessibleModulo, setId
-
Field Details
-
taskService
-
assegnazioneService
-
customUserDetailsService
-
ruoloService
-
associazioneService
-
-
Constructor Details
-
GTMController
public GTMController(ModuloService moduloService, TaskService taskService, AssegnazioneService assegnazioneService, CustomUserDetailsService customUserDetailsService, RuoloService ruoloService, AssociazioneService associazioneService) Costruttore per l'iniezione delle dipendenze.- Parameters:
moduloService- Servizio moduli.taskService- Servizio gestione task.assegnazioneService- Servizio assegnazione task.customUserDetailsService- Servizio utenti.ruoloService- Servizio ruoli.associazioneService- Servizio associazione utente-ruolo.- Since:
- 1.3.0
-
-
Method Details
-
getGTM
@GetMapping({"/dashboard/gtm","/dashboard/gtm/"}) public String getGTM(Principal principal, org.springframework.ui.Model model) Visualizza la dashboard di gestione Task.Recupera e mostra sia i task creati dall'utente corrente (per monitoraggio), sia i task assegnati all'utente (da completare).
- Parameters:
principal- Identità utente.model- Modello UI.- Returns:
- Vista "moduli/gtm/GestioneTask" o redirect.
- Since:
- 1.3.0
-
getUsers
API per recuperare la lista di possibili assegnatari (Utenti e Ruoli).Utilizzato dal frontend per popolare il selettore di assegnazione. Restituisce una lista eterogenea di oggetti
GTMMessagenormalizzati.- Parameters:
principal- Identità utente.- Returns:
- JSON List di GTMMessage o BadRequest.
- Since:
- 1.3.5
-
createNewTask
@PostMapping({"/dashboard/gtm","/dashboard/gtm/"}) public String createNewTask(Principal principal, org.springframework.ui.Model model, @Valid @ModelAttribute("form") @Valid GTMForm form, org.springframework.validation.BindingResult bindingResult) Crea un nuovo Task.Implementa la logica di esplosione delle assegnazioni: se un task è assegnato a un Ruolo, il sistema risolve tutti gli utenti appartenenti a quel ruolo e crea un'assegnazione per ciascuno. Esegue validazioni sulle date (scadenza futura).
- Parameters:
principal- Identità creatore.model- Modello UI.form- DTO dati task.bindingResult- Esito validazione.- Returns:
- Redirect alla dashboard GTM con esito.
- Since:
- 1.3.0
-
removeTask
@PostMapping({"/dashboard/gtm/delete-task","/dashboard/gtm/delete-task/"}) public String removeTask(Principal principal, org.springframework.ui.Model model, @RequestParam int idTask) Cancella un Task esistente.Permesso solo all'utente che ha creato il task (Owner).
- Parameters:
principal- Identità utente.model- Modello UI.idTask- ID del task.- Returns:
- Redirect con esito.
- Since:
- 1.3.0
-
setAsCompletato
@PostMapping({"/dashboard/gtm/set-as-completato","/dashboard/gtm/set-as-completato/"}) public String setAsCompletato(Principal principal, org.springframework.ui.Model model, @RequestParam int idTask) Marca un task come completato.Imposta la data di completamento al momento attuale.
- Parameters:
principal- Identità utente.model- Modello UI.idTask- ID del task.- Returns:
- Redirect con esito.
- Since:
- 1.3.0
-
editTask
@PostMapping({"/dashboard/gtm/edit-task","/dashboard/gtm/edit-task/"}) public String editTask(Principal principal, org.springframework.ui.Model model, @Valid @ModelAttribute("editForm") @Valid GTMEditForm form, org.springframework.validation.BindingResult bindingResult) Modifica i dettagli di un Task esistente.Permette di cambiare titolo, priorità, scadenza, stato di completamento e assegnatari. Aggiorna le relazioni di assegnazione nel database.
- Parameters:
principal- Identità creatore.model- Modello UI.form- DTO modifiche.bindingResult- Esito validazione.- Returns:
- Redirect con esito.
- Since:
- 1.3.0
-
disinstallaModulo
Disinstalla il modulo GTM rimuovendo tutti i task associati all'azienda.- Specified by:
disinstallaModuloin classModuloController- Parameters:
azienda- Azienda target.- Since:
- 1.3.0
-