116116 <div class="row">
117117 <div class="col-md-12">
118118 <div class="alert alert-info">
119- <i class="fa fa-info-circle"></i> <?php echo tr ('Se si seleziona l \' utente i permessi verranno ereditati da quell \' utente, in altrenativa è possibile indicare l \' accesso ad un modulo e un record con dei permessi specifici. ' ); ?>
119+ <i class="fa fa-info-circle"></i> <?php echo tr ('Seleziona prima il tipo di gestione permessi. "Accesso utente" per ereditare i permessi da un utente esistente, oppure "Personalizzato" per specificare modulo, record e permessi specifici. ' ); ?>
120120 </div>
121121 </div>
122122 </div>
123123
124124 <div class="row">
125- <div class="col-md-6">
126- <div class="row">
127- <div class="col-md-12">
128- {[ "type": "select", "label": "<?php echo tr ('Utente ' ); ?> ", "name": "id_utente", "ajax-source": "utenti", "value": "$id_utente$" ]}
129- </div>
130- </div>
125+ <div class="col-md-12">
126+ {[ "type": "select", "label": "<?php echo tr ('Tipo di gestione permessi ' ); ?> ", "name": "tipo_gestione_permessi", "required": 1, "values": "list=\"\":\"<?php echo tr ('Seleziona tipo di gestione ' ); ?> \",\"utente\":\"<?php echo tr ('Accesso utente ' ); ?> \",\"personalizzato\":\"<?php echo tr ('Personalizzato ' ); ?> \"", "value": "<?php echo !empty ($ record ['id_utente ' ]) ? 'utente ' : (!empty ($ record ['id_module_target ' ]) ? 'personalizzato ' : '' ); ?> ", "extra": "onchange=\"togglePermissionFields()\"" ]}
131127 </div>
132- <div class="col-md-6">
133- <div class="row">
134- <div class="col-md-12">
135- {[ "type": "select", "label": "<?php echo tr ('Modulo ' ); ?> ", "name": "id_module_target", "ajax-source": "moduli_token", "value": "$id_module_target$" ]}
136- </div>
137-
138- <div class="col-md-12">
139- {[ "type": "select", "label": "<?php echo tr ('ID record ' ); ?> ", "name": "id_record_target", "ajax-source": "record_token", "select-options": <?php echo json_encode (['id_module_target ' => $ record ['id_module_target ' ]]); ?> , "value": "$id_record_target$"]}
140- </div>
141-
142- <div class="col-md-12">
143- {[ "type": "select", "label": "<?php echo tr ('Permessi ' ); ?> ", "name": "permessi", "values": "list=\"r\":\"<?php echo tr ('Lettura ' ); ?> \",\"rw\":\"<?php echo tr ('Lettura e scrittura ' ); ?> \",\"ra\":\"<?php echo tr ('Caricamento allegati ' ); ?> \",\"rwa\":\"<?php echo tr ('Caricamento e modifica allegati ' ); ?> \"", "value": "$permessi$" ]}
144- </div>
145- </div>
128+ </div>
129+
130+ <div class="row" id="utente-fields" style="display: <?php echo !empty ($ record ['id_utente ' ]) ? 'block ' : 'none ' ; ?> ;">
131+ <div class="col-md-12">
132+ {[ "type": "select", "label": "<?php echo tr ('Utente ' ); ?> ", "name": "id_utente", "ajax-source": "utenti", "value": "$id_utente$" ]}
133+ </div>
134+ </div>
135+
136+ <div class="row" id="personalizzato-fields" style="display: <?php echo !empty ($ record ['id_module_target ' ]) ? 'block ' : 'none ' ; ?> ;">
137+ <div class="col-md-12">
138+ {[ "type": "select", "label": "<?php echo tr ('Modulo ' ); ?> ", "name": "id_module_target", "ajax-source": "moduli_token", "value": "$id_module_target$" ]}
139+ </div>
140+
141+ <div class="col-md-12">
142+ {[ "type": "select", "label": "<?php echo tr ('ID record ' ); ?> ", "name": "id_record_target", "ajax-source": "record_token", "select-options": <?php echo json_encode (['id_module_target ' => $ record ['id_module_target ' ]]); ?> , "value": "$id_record_target$"]}
143+ </div>
144+
145+ <div class="col-md-12">
146+ {[ "type": "select", "label": "<?php echo tr ('Permessi ' ); ?> ", "name": "permessi", "values": "list=\"r\":\"<?php echo tr ('Lettura ' ); ?> \",\"rw\":\"<?php echo tr ('Lettura e scrittura ' ); ?> \",\"ra\":\"<?php echo tr ('Caricamento allegati ' ); ?> \",\"rwa\":\"<?php echo tr ('Caricamento e modifica allegati ' ); ?> \"", "value": "$permessi$" ]}
146147 </div>
147148 </div>
148149
@@ -173,20 +174,61 @@ function toggleEmailField() {
173174 }
174175}
175176
176- function togglePermissionField() {
177- var idutente = $('select[name="id_utente"]').val();
178- var idmodule = $('#id_module_target');
179- var idrecord = $('#id_record_target');
180- var permessi = $('#permessi');
177+ function togglePermissionFields() {
178+ var tipoGestione = $('select[name="tipo_gestione_permessi"]').val();
179+ var utenteFields = $('#utente-fields');
180+ var personalizzatoFields = $('#personalizzato-fields');
181+
182+ if (tipoGestione === 'utente') {
183+ // Mostra campi utente, nascondi campi personalizzati
184+ utenteFields.show();
185+ personalizzatoFields.hide();
186+
187+ // Imposta required per utente
188+ $('select[name="id_utente"]').prop('required', true);
189+
190+ // Rimuovi required dai campi personalizzati
191+ $('select[name="id_module_target"]').prop('required', false);
192+ $('select[name="id_record_target"]').prop('required', false);
193+ $('select[name="permessi"]').prop('required', false);
194+
195+ // Pulisci i valori dei campi personalizzati
196+ $('select[name="id_module_target"]').val('').trigger('change');
197+ $('select[name="id_record_target"]').val('').trigger('change');
198+ $('select[name="permessi"]').val('').trigger('change');
199+
200+ } else if (tipoGestione === 'personalizzato') {
201+ // Mostra campi personalizzati, nascondi campi utente
202+ utenteFields.hide();
203+ personalizzatoFields.show();
204+
205+ // Rimuovi required dall'utente
206+ $('select[name="id_utente"]').prop('required', false);
207+
208+ // Imposta required per campi personalizzati
209+ $('select[name="id_module_target"]').prop('required', true);
210+ $('select[name="id_record_target"]').prop('required', true);
211+ $('select[name="permessi"]').prop('required', true);
212+
213+ // Pulisci il valore dell'utente
214+ $('select[name="id_utente"]').val('').trigger('change');
181215
182- if (idutente) {
183- idmodule.prop('required', false);
184- idrecord.prop('required', false);
185- permessi.prop('required', false);
186216 } else {
187- idmodule.prop('required', true);
188- idrecord.prop('required', true);
189- permessi.prop('required', true);
217+ // Nessuna selezione - nascondi tutti i campi
218+ utenteFields.hide();
219+ personalizzatoFields.hide();
220+
221+ // Rimuovi required da tutti i campi
222+ $('select[name="id_utente"]').prop('required', false);
223+ $('select[name="id_module_target"]').prop('required', false);
224+ $('select[name="id_record_target"]').prop('required', false);
225+ $('select[name="permessi"]').prop('required', false);
226+
227+ // Pulisci tutti i valori
228+ $('select[name="id_utente"]').val('').trigger('change');
229+ $('select[name="id_module_target"]').val('').trigger('change');
230+ $('select[name="id_record_target"]').val('').trigger('change');
231+ $('select[name="permessi"]').val('').trigger('change');
190232 }
191233}
192234
@@ -201,14 +243,11 @@ function copyToClipboard(elementId) {
201243
202244$(document).ready(function() {
203245 toggleEmailField();
204- togglePermissionField ();
246+ togglePermissionFields ();
205247});
206248
207- $('#id_utente').change(function() {
208- $('#id_module_target').val('').trigger('change');
209- $('#id_record_target').val('');
210- $('#permessi').val('').trigger('change');
211- togglePermissionField();
249+ $('select[name="tipo_gestione_permessi"]').change(function() {
250+ togglePermissionFields();
212251});
213252
214253$('#id_module_target').change(function() {
0 commit comments