re-check final

This commit is contained in:
2026-06-01 22:55:50 +02:00
parent 7bdbf4e077
commit 04ba48e87b
136 changed files with 1362 additions and 21579 deletions
+90 -32
View File
@@ -500,7 +500,7 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
{{-- MODAL: Nuova Cartella --}}
<div class="modal fade" id="newFolderModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"><i class="fas fa-folder-plus mr-2"></i>Nuova Cartella</h5>
@@ -535,7 +535,7 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
{{-- MODAL: Upload --}}
<div class="modal fade" id="uploadModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"><i class="fas fa-upload mr-2"></i>Carica Documento</h5>
@@ -543,9 +543,9 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
<span>&times;</span>
</button>
</div>
<form action="/documenti" method="POST" enctype="multipart/form-data">
@csrf
<div class="modal-body">
<div class="modal-body">
<form action="/documenti" method="POST" enctype="multipart/form-data" id="uploadForm">
@csrf
<div class="form-group">
<label>Nome *</label>
<input type="text" name="nome_file" class="form-control" placeholder="Nome del documento" required>
@@ -557,11 +557,15 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
<option value="{{ $tip->nome }}">{{ $tip->descrizione ?? ucfirst($tip->nome) }}</option>
@endforeach
</select>
<button type="button" class="btn btn-sm btn-outline-success mt-2" id="massMoveNewFolderBtn">
<i class="fas fa-plus mr-1"></i> Nuova cartella
</button>
</div>
</div>
<div class="form-group">
<label>Visibilità *</label>
<select name="visibilita" id="uploadVisibilita" class="form-control" onchange="loadUploadTargets()">
<option value="pubblico">Pubblico</option>
<option value="individuo">Individuo</option>
<option value="gruppo">Gruppo</option>
</select>
</div>
<div class="form-group" id="uploadTargetGroup" style="display:none;">
<label>Riferimento</label>
<select name="visibilita_target_id" class="form-control" id="uploadTargetId">
@@ -589,29 +593,42 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
<input type="file" name="file" class="form-control" required>
<small class="text-muted">Max 10MB</small>
</div>
@if($currentFolder && !$currentRepo)
<input type="hidden" name="cartella_id" value="{{ $currentFolder->id }}">
<p class="text-muted small mb-0">Il documento sarà inserito in: <strong>{{ $currentFolder->nome }}</strong></p>
@endif
<div class="form-group" id="uploadFolderGroup">
<label>Cartella</label>
<select name="cartella_id" id="uploadCartellaId" class="form-control">
<option value=""> Nessuna cartella </option>
@foreach($cartelle as $cartella)
<option value="{{ $cartella->id }}" {{ $currentFolder && $currentFolder->id === $cartella->id ? 'selected' : '' }}>{{ $cartella->nome }}</option>
@if($cartella->children->count() > 0)
@foreach($cartella->children as $child)
<option value="{{ $child->id }}" {{ $currentFolder && $currentFolder->id === $child->id ? 'selected' : '' }}>&nbsp;&nbsp;&nbsp;{{ $child->nome }}</option>
@endforeach
@endif
@endforeach
</select>
<button type="button" class="btn btn-sm btn-outline-success mt-2" id="uploadNewFolderBtn">
<i class="fas fa-plus mr-1"></i> Nuova cartella
</button>
</div>
@if($currentRepo)
<input type="hidden" name="repository_id" value="{{ $currentRepo->id }}">
<p class="text-muted small mb-0">Caricamento su repository remoto: <strong>{{ $currentRepo->nome }}</strong></p>
@endif
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" onclick="$('#uploadModal').modal('hide')">Annulla</button>
<button type="submit" class="btn btn-primary">
<i class="fas fa-upload mr-1"></i> Carica
</button>
</div>
</form>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" onclick="$('#uploadModal').modal('hide')">Annulla</button>
<button type="submit" class="btn btn-primary" form="uploadForm">
<i class="fas fa-upload mr-1"></i> Carica
</button>
</div>
</div>
</div>
</div>
{{-- MODAL: Associa --}}
<div class="modal fade" id="associateModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"><i class="fas fa-link mr-2"></i>Associa a</h5>
@@ -651,7 +668,7 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
{{-- MODAL: Cambia tipo/contesto --}}
<div class="modal fade" id="updateModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"><i class="fas fa-edit mr-2"></i>Cambia tipo/contesto</h5>
@@ -727,7 +744,7 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
{{-- MODAL: Conferma eliminazione singola --}}
<div class="modal fade" id="deleteConfirmModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header bg-danger text-white">
<h5 class="modal-title"><i class="fas fa-exclamation-triangle mr-2"></i>Conferma Eliminazione</h5>
@@ -751,7 +768,7 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
{{-- MODAL: Conferma eliminazione multipla --}}
<div class="modal fade" id="massDeleteConfirmModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header bg-danger text-white">
<h5 class="modal-title"><i class="fas fa-exclamation-triangle mr-2"></i>Conferma Eliminazione Multipla</h5>
@@ -775,7 +792,7 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
{{-- MODAL: Sposta massivo --}}
<div class="modal fade" id="massMoveModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"><i class="fas fa-folder-open mr-2"></i>Sposta documenti selezionati</h5>
@@ -801,6 +818,9 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
@endif
@endforeach
</select>
<button type="button" class="btn btn-sm btn-outline-success mt-2" id="massMoveNewFolderBtn">
<i class="fas fa-plus mr-1"></i> Nuova cartella
</button>
</div>
</div>
<div class="modal-footer">
@@ -816,7 +836,7 @@ $canDeleteDocumenti = Auth::user()->canDelete('documenti');
{{-- MODAL: Sposta documento --}}
<div class="modal fade" id="moveModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"><i class="fas fa-folder-open mr-2"></i>Sposta documento</h5>
@@ -864,6 +884,21 @@ const eventi = @json($eventi->map(fn($e) => ['id' => $e->id, 'label' => $e->nome
const mailingLists = @json($mailingLists ? $mailingLists->map(fn($m) => ['id' => $m->id, 'label' => $m->nome]) : []);
const cartelle = @json($cartelleMoveOptions);
$('#uploadModal').on('shown.bs.modal', function () {
loadUploadTargets();
toggleUploadRepo();
});
$('#newFolderModal').on('show.bs.modal', function () {
$(this).css('z-index', 1060);
$('.modal-backdrop:last').css('z-index', 1050);
});
$('#newFolderModal').on('hidden.bs.modal', function () {
window._uploadNewFolder = false;
$(this).css('z-index', '');
});
function toggleAll(source) {
document.querySelectorAll('.doc-checkbox').forEach(cb => cb.checked = source.checked);
updateCount();
@@ -1244,6 +1279,13 @@ document.getElementById('massMoveNewFolderBtn')?.addEventListener('click', funct
});
});
document.getElementById('uploadNewFolderBtn')?.addEventListener('click', function(e) {
e.preventDefault();
window._uploadNewFolder = true;
$('#uploadModal').modal('hide');
$('#newFolderModal').modal('show');
});
document.getElementById('massMoveForm')?.addEventListener('submit', function(e) {
e.preventDefault();
const form = this;
@@ -1336,8 +1378,21 @@ document.getElementById('newFolderForm')?.addEventListener('submit', function(e)
.then(response => response.json())
.then(data => {
if (data.success) {
$('#newFolderModal').modal('hide');
window.location.reload();
if (window._uploadNewFolder) {
window._uploadNewFolder = false;
$('#newFolderModal').modal('hide');
$('#uploadModal').modal('show');
const select = document.getElementById('uploadCartellaId');
if (select) {
const opt = document.createElement('option');
opt.value = data.cartella.id;
opt.textContent = data.cartella.nome;
opt.selected = true;
select.appendChild(opt);
}
} else {
window.location.reload();
}
} else {
alert('Errore: ' + (data.message || 'Impossibile creare la cartella'));
}
@@ -1349,11 +1404,14 @@ document.getElementById('newFolderForm')?.addEventListener('submit', function(e)
function toggleUploadRepo() {
const repoSelect = document.getElementById('uploadRepository');
const cartellaInput = document.querySelector('input[name="cartella_id"]');
const folderGroup = document.getElementById('uploadFolderGroup');
const cartellaSelect = document.getElementById('uploadCartellaId');
if (repoSelect && repoSelect.value !== '') {
if (cartellaInput) cartellaInput.disabled = true;
if (folderGroup) folderGroup.style.display = 'none';
if (cartellaSelect) cartellaSelect.disabled = true;
} else {
if (cartellaInput) cartellaInput.disabled = false;
if (folderGroup) folderGroup.style.display = '';
if (cartellaSelect) cartellaSelect.disabled = false;
}
}