Skip to content

Commit 76debe8

Browse files
committed
feat: miglioramento selezione dei permessi su modulo token otp
1 parent 32762a4 commit 76debe8

1 file changed

Lines changed: 78 additions & 39 deletions

File tree

modules/otp_tokens/edit.php

Lines changed: 78 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -116,33 +116,34 @@
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

Comments
 (0)