Add user reservation form feature

- Created new user-friendly reservation form component (prenotazione-form-user)
- Added getCurrentUser() method to UtenteAppService
- Added route /prenotazione/nuova for user reservation form
- Added Italian translations for new UI elements
- Form includes booking details and auto-populated user data
- Radio button toggle for private/company data display
- Form validation with required facility selection
- Created comprehensive documentation in frontend-changes.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-11 19:23:01 +01:00
parent 9ad99bd05f
commit e0816bab45
50 changed files with 992 additions and 104 deletions

View File

@@ -37,11 +37,11 @@
"pagination": "pagination",
"relationships": [
{
"otherEntityField": "username",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"otherEntityName": "utenteApp",
"relationshipName": "utente",
"relationshipSide": "left",
"relationshipType": "many-to-one"
"otherEntityField": "username"
}
],
"searchEngine": "no",

View File

@@ -20,18 +20,18 @@
"pagination": "pagination",
"relationships": [
{
"otherEntityField": "username",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"otherEntityName": "utenteApp",
"relationshipName": "confermataDa",
"relationshipSide": "left",
"relationshipType": "many-to-one"
"otherEntityField": "username"
},
{
"relationshipSide": "right",
"relationshipType": "one-to-one",
"otherEntityName": "prenotazione",
"otherEntityRelationshipName": "conferma",
"relationshipName": "prenotazione",
"relationshipSide": "right",
"relationshipType": "one-to-one"
"relationshipName": "prenotazione"
}
],
"searchEngine": "no",

View File

@@ -44,12 +44,12 @@
"pagination": "infinite-scroll",
"relationships": [
{
"otherEntityField": "nome",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"otherEntityName": "struttura",
"otherEntityRelationshipName": "disponibilita",
"relationshipName": "struttura",
"relationshipSide": "left",
"relationshipType": "many-to-one"
"otherEntityField": "nome"
}
],
"searchEngine": "no",

View File

@@ -13,18 +13,18 @@
"name": "Liberatoria",
"relationships": [
{
"otherEntityField": "username",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"otherEntityName": "utenteApp",
"otherEntityRelationshipName": "liberatorie",
"relationshipName": "utente",
"relationshipSide": "left",
"relationshipType": "many-to-one"
"otherEntityField": "username"
},
{
"otherEntityName": "modelloLiberatoria",
"relationshipName": "modelloLiberatoria",
"relationshipSide": "left",
"relationshipType": "many-to-one"
"relationshipType": "many-to-one",
"otherEntityName": "modelloLiberatoria",
"relationshipName": "modelloLiberatoria"
}
],
"searchEngine": "no",

View File

@@ -21,11 +21,11 @@
"name": "Messaggio",
"relationships": [
{
"otherEntityField": "username",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"otherEntityName": "utenteApp",
"relationshipName": "utente",
"relationshipSide": "left",
"relationshipType": "many-to-one"
"otherEntityField": "username"
}
],
"searchEngine": "no",

View File

@@ -29,11 +29,11 @@
"name": "ModelloLiberatoria",
"relationships": [
{
"relationshipSide": "left",
"relationshipType": "many-to-one",
"otherEntityName": "struttura",
"otherEntityRelationshipName": "moduliLiberatorie",
"relationshipName": "struttura",
"relationshipSide": "left",
"relationshipType": "many-to-one"
"relationshipName": "struttura"
}
],
"searchEngine": "no",

View File

@@ -41,10 +41,10 @@
"pagination": "pagination",
"relationships": [
{
"otherEntityName": "conferma",
"relationshipName": "conferma",
"relationshipSide": "left",
"relationshipType": "many-to-one"
"relationshipType": "many-to-one",
"otherEntityName": "conferma",
"relationshipName": "conferma"
}
],
"searchEngine": "no",

View File

@@ -36,25 +36,25 @@
"pagination": "pagination",
"relationships": [
{
"relationshipSide": "left",
"relationshipType": "one-to-one",
"otherEntityName": "conferma",
"otherEntityRelationshipName": "prenotazione",
"relationshipName": "conferma",
"relationshipSide": "left",
"relationshipType": "one-to-one"
"relationshipName": "conferma"
},
{
"otherEntityField": "username",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"otherEntityName": "utenteApp",
"relationshipName": "utente",
"relationshipSide": "left",
"relationshipType": "many-to-one"
"otherEntityField": "username"
},
{
"otherEntityField": "nome",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"otherEntityName": "struttura",
"relationshipName": "struttura",
"relationshipSide": "left",
"relationshipType": "many-to-one"
"otherEntityField": "nome"
}
],
"searchEngine": "no",

View File

@@ -43,18 +43,18 @@
"pagination": "pagination",
"relationships": [
{
"relationshipSide": "right",
"relationshipType": "one-to-many",
"otherEntityName": "disponibilita",
"otherEntityRelationshipName": "struttura",
"relationshipName": "disponibilita",
"relationshipSide": "right",
"relationshipType": "one-to-many"
"relationshipName": "disponibilita"
},
{
"relationshipSide": "right",
"relationshipType": "one-to-many",
"otherEntityName": "modelloLiberatoria",
"otherEntityRelationshipName": "struttura",
"relationshipName": "moduliLiberatorie",
"relationshipSide": "right",
"relationshipType": "one-to-many"
"relationshipName": "moduliLiberatorie"
}
],
"searchEngine": "no",

View File

@@ -22,8 +22,8 @@
{
"fieldName": "ruolo",
"fieldType": "Ruolo",
"fieldValidateRules": ["required"],
"fieldValues": "USER,INCARICATO,ADMIN"
"fieldValues": "USER,INCARICATO,ADMIN",
"fieldValidateRules": ["required"]
},
{
"fieldName": "attivo",
@@ -74,11 +74,19 @@
"name": "UtenteApp",
"relationships": [
{
"relationshipSide": "left",
"relationshipType": "one-to-one",
"otherEntityName": "user",
"relationshipName": "internalUser",
"otherEntityField": "login",
"relationshipWithBuiltInEntity": true
},
{
"relationshipSide": "right",
"relationshipType": "one-to-many",
"otherEntityName": "liberatoria",
"otherEntityRelationshipName": "utente",
"relationshipName": "liberatorie",
"relationshipSide": "right",
"relationshipType": "one-to-many"
"relationshipName": "liberatorie"
}
],
"searchEngine": "no",