fix error
This commit is contained in:
@@ -152,8 +152,7 @@
|
||||
</tr>
|
||||
<tr id="membro-edit-{{ $membro->id }}" style="display:none;">
|
||||
<td colspan="6">
|
||||
<form action="/gruppi/{{ $gruppo->id }}/membri/{{ $membro->id }}" method="POST" class="mb-0">
|
||||
@csrf @method('PUT')
|
||||
<div class="mb-0">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<input type="text" class="form-control form-control-sm" value="{{ $membro->cognome }} {{ $membro->nome }}" disabled>
|
||||
@@ -162,7 +161,7 @@
|
||||
<input type="text" class="form-control form-control-sm" value="{{ $membro->codice_id }}" disabled>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<select name="ruolo_ids[]" class="form-control form-control-sm" multiple size="3">
|
||||
<select id="edit-membro-ruoli-{{ $membro->id }}" class="form-control form-control-sm" multiple size="3">
|
||||
@foreach(\App\Models\Ruolo::attive() as $ruolo)
|
||||
@php $selected = in_array($ruolo->id, $membro->getRuoloIdsForGruppo($gruppo->id)) @endphp
|
||||
<option value="{{ $ruolo->id }}" {{ $selected ? 'selected' : '' }}>{{ $ruolo->nome }}</option>
|
||||
@@ -170,14 +169,14 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<input type="date" name="data_adesione" class="form-control form-control-sm" value="{{ $membro->pivot->data_adesione }}">
|
||||
<input type="date" id="edit-membro-data-{{ $membro->id }}" class="form-control form-control-sm" value="{{ $membro->pivot->data_adesione }}">
|
||||
</div>
|
||||
<div class="col-md-1">
|
||||
<button type="submit" class="btn btn-xs btn-success"><i class="fas fa-check"></i></button>
|
||||
<button type="button" class="btn btn-xs btn-success" onclick="submitEditMembro({{ $membro->id }})"><i class="fas fa-check"></i></button>
|
||||
<button type="button" class="btn btn-xs btn-secondary" onclick="cancelEditMembro({{ $membro->id }})"><i class="fas fa-times"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@@ -201,17 +200,13 @@
|
||||
</div>
|
||||
<div class="card-body p-0">
|
||||
<div id="documento-add-form" style="display:none;" class="p-3 bg-light border-bottom">
|
||||
<form action="/documenti" method="POST" enctype="multipart/form-data" class="mb-0">
|
||||
@csrf
|
||||
<input type="hidden" name="visibilita" value="gruppo">
|
||||
<input type="hidden" name="visibilita_target_id" value="{{ $gruppo->id }}">
|
||||
<input type="hidden" name="visibilita_target_type" value="App\Models\Gruppo">
|
||||
<div class="mb-0">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<input type="text" name="nome_file" class="form-control form-control-sm" placeholder="Nome documento" required>
|
||||
<input type="text" id="doc-nome-file" class="form-control form-control-sm" placeholder="Nome documento">
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<select name="tipologia" class="form-control form-control-sm" required>
|
||||
<select id="doc-tipologia" class="form-control form-control-sm">
|
||||
<option value="">Tipologia...</option>
|
||||
<option value="documento">Documento</option>
|
||||
<option value="statuto">Statuto</option>
|
||||
@@ -221,14 +216,14 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<input type="file" name="file" class="form-control form-control-sm" required>
|
||||
<input type="file" id="doc-file" class="form-control form-control-sm">
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<button type="submit" class="btn btn-xs btn-success"><i class="fas fa-upload mr-1"></i>Carica</button>
|
||||
<button type="button" class="btn btn-xs btn-success" onclick="submitUploadDocumentoGruppo()"><i class="fas fa-upload mr-1"></i>Carica</button>
|
||||
<button type="button" class="btn btn-xs btn-secondary" onclick="hideDocumentoForm()"><i class="fas fa-times"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($gruppo->documenti && $gruppo->documenti->count() > 0)
|
||||
@@ -258,12 +253,9 @@
|
||||
<i class="fas fa-eye"></i>
|
||||
</button>
|
||||
@endif
|
||||
<form action="/documenti/{{ $documento->id }}" method="POST" class="d-inline">
|
||||
@csrf @method('DELETE')
|
||||
<button type="submit" class="btn btn-xs btn-danger" onclick="return confirm('Eliminare questo documento?')" title="Elimina">
|
||||
<i class="fas fa-trash"></i>
|
||||
</button>
|
||||
</form>
|
||||
<button type="button" class="btn btn-xs btn-danger" onclick="deleteDocumentoFromEdit({{ $documento->id }})" title="Elimina">
|
||||
<i class="fas fa-trash"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@@ -473,5 +465,83 @@ function previewDocumento(id, mimeType) {
|
||||
document.getElementById('previewDownloadBtn').href = '/documenti/' + id + '/download';
|
||||
$('#previewModal').modal('show');
|
||||
}
|
||||
|
||||
function submitEditMembro(membroId) {
|
||||
var ruoloSelect = document.getElementById('edit-membro-ruoli-' + membroId);
|
||||
var dataInput = document.getElementById('edit-membro-data-' + membroId);
|
||||
var formData = new URLSearchParams();
|
||||
|
||||
var selectedRuoli = Array.from(ruoloSelect.selectedOptions).map(opt => opt.value).filter(v => v);
|
||||
selectedRuoli.forEach(function(ruoloId) {
|
||||
formData.append('ruolo_ids[]', ruoloId);
|
||||
});
|
||||
formData.append('data_adesione', dataInput ? dataInput.value : '');
|
||||
|
||||
fetch('/gruppi/{{ $gruppo->id }}/membri/' + membroId, {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': '{{ csrf_token() }}',
|
||||
'Accept': 'application/json',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: formData.toString()
|
||||
})
|
||||
.then(response => {
|
||||
if (!response.ok) return response.text().then(text => { throw new Error(text); });
|
||||
return response.json();
|
||||
})
|
||||
.then(data => {
|
||||
if (data.success) window.location.reload();
|
||||
else alert(data.error || 'Errore');
|
||||
})
|
||||
.catch(error => alert('Errore: ' + error.message));
|
||||
}
|
||||
|
||||
function submitUploadDocumentoGruppo() {
|
||||
var nomeFile = document.getElementById('doc-nome-file');
|
||||
var tipologia = document.getElementById('doc-tipologia');
|
||||
var fileInput = document.getElementById('doc-file');
|
||||
|
||||
if (!nomeFile.value || !tipologia.value || !fileInput.files[0]) {
|
||||
alert('Compila tutti i campi');
|
||||
return;
|
||||
}
|
||||
|
||||
var formData = new FormData();
|
||||
formData.append('_token', '{{ csrf_token() }}');
|
||||
formData.append('visibilita', 'gruppo');
|
||||
formData.append('visibilita_target_id', '{{ $gruppo->id }}');
|
||||
formData.append('visibilita_target_type', 'App\\Models\\Gruppo');
|
||||
formData.append('nome_file', nomeFile.value);
|
||||
formData.append('tipologia', tipologia.value);
|
||||
formData.append('file', fileInput.files[0]);
|
||||
|
||||
document.getElementById('documento-add-form').querySelector('.btn-success').disabled = true;
|
||||
|
||||
fetch('/documenti', {
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
headers: { 'Accept': 'application/json' }
|
||||
})
|
||||
.then(function() { window.location.reload(); })
|
||||
.catch(function() { window.location.reload(); });
|
||||
}
|
||||
|
||||
function deleteDocumentoFromEdit(documentoId) {
|
||||
if (!confirm('Eliminare questo documento?')) return;
|
||||
|
||||
var formData = new FormData();
|
||||
formData.append('_token', '{{ csrf_token() }}');
|
||||
formData.append('_method', 'DELETE');
|
||||
formData.append('_redirect', '{{ url()->current() }}');
|
||||
|
||||
fetch('/documenti/' + documentoId, {
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
headers: { 'Accept': 'application/json' }
|
||||
})
|
||||
.then(function() { window.location.reload(); })
|
||||
.catch(function() { window.location.reload(); });
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user