Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
176 righe
7.5 KiB
176 righe
7.5 KiB
<? |
|
$configPath = substr(__DIR__,0,strpos(__DIR__,"public_html/"))."config.php"; |
|
include_once($configPath); |
|
if (isset($_SESSION["utente"]) && $_SESSION["utente"]->permission($radice)) { |
|
|
|
include_once($root."/backend/layout/top.php"); |
|
|
|
$moduli = []; |
|
$types = filesManager::availableTypes(); |
|
$moduli_disponibili = array_values(array_unique(array_column($types, "modulo"))); |
|
$moduli_utente = $_SESSION["utente"]->moduliDisponibili(); |
|
foreach ($moduli_utente as $gruppo => $gruppo_moduli) { |
|
foreach ($gruppo_moduli as $modulo => $configurazione) { |
|
if(in_array($modulo, $moduli_disponibili)) { |
|
$moduli[$modulo] = $configurazione["titolo"]; |
|
} |
|
} |
|
} |
|
|
|
$sql = "{$sql} AND (codice_ente IS NULL OR codice_ente = :codice_ente) "; |
|
|
|
$sql = "SELECT * FROM b_categorie_documentali WHERE soft_delete = :soft_delete AND (codice_ente IS NULL OR codice_ente = :codice_ente) AND codice NOT IN (SELECT codice_categoria FROM b_categorie_documentali_escluse WHERE codice_ente = :codice_ente)"; |
|
$bind = [":soft_delete" => 'N', ":codice_ente" => $_SESSION["ente"]->codice]; |
|
$classificazione = $pdo->go($sql, $bind); |
|
|
|
$token = generateStrongPassword($length = 20, $add_dashes = true, $available_sets = 'lud'); |
|
|
|
?> |
|
<div class="container-fluid pt-5 pb-3"> |
|
<div class="row"> |
|
<div class="col-12"> |
|
<h2> |
|
<?= Modulo::header($radice) ?> |
|
</h2> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="row"> |
|
<div class="col-12"> |
|
<div class="card"> |
|
<div class="card-header"> |
|
<form onsubmit="table.ajax.reload(null, false);return;"> |
|
<div class="row"> |
|
<div class="col-12 form-group"> |
|
<label for="titolo"><i class="far fa-file-alt mr-2"></i>Titolo del documento:</label> |
|
<input type="text" class="form-control shadow-none" name="titolo" id="titolo" title="Ricerca per titolo"> |
|
</div> |
|
</div> |
|
<div class="row"> |
|
<div class="col-3 form-group"> |
|
<label for="modulo"><i class="fas fa-suitcase mr-2"></i>Modulo riferimento:</label> |
|
<select class="form-control shadow-none" name="modulo" id="modulo" rel="N;1;0;A" title="<?= __("modulo") ?>" onchange="table.ajax.reload(null, false);"> |
|
<option value=""><?= __("Tutti i moduli") ?></option> |
|
<? foreach($moduli as $id => $modulo) : ?> |
|
<option value="<?= $id ?>"><?= $modulo ?></option> |
|
<? endforeach; ?> |
|
</select> |
|
</div> |
|
<? if($classificazione->rowCount() > 0) : ?> |
|
<div class="form-group col-3"> |
|
<label for="classificazione"><i class="fas fa-clipboard-list mr-2"></i>Classificazione:</label> |
|
<select class="form-control custom-select" name="classificazione" id="classificazione" onchange="table.ajax.reload(null, false);"> |
|
<option value="">Tutte</option> |
|
<? while($elemento = $classificazione->fetch(PDO::FETCH_ASSOC)) : ?> |
|
<option value="<?= $elemento["codice"] ?>"><?= $elemento["titolo"] ?></option> |
|
<? endwhile ?> |
|
</select> |
|
</div> |
|
<? endif ?> |
|
<div class="form-group col-3"> |
|
<label for="data_inizio"><i class="fas fa-calendar mr-2"></i>Data inizio:</label> |
|
<input class="form-control datepick text-center" type="text" name="data_inizio" id="data_inizio" title="Data di inizio"> |
|
</div> |
|
<div class="form-group col-3"> |
|
<label for="data_fine"><i class="fas fa-calendar mr-2"></i>Data fine:</label> |
|
<input class="form-control datepick text-center" type="text" name="data_fine" id="data_fine" title="Data di fine"> |
|
</div> |
|
</div> |
|
<div class="row"> |
|
<div class="col-12"> |
|
<button type="submit" class="btn-block btn btn-warning shadow-none"><i class="fas fa-filter mr-2"></i>Applica i filtri</button> |
|
</div> |
|
</div> |
|
</form> |
|
</div> |
|
<div class="card-footer border-bottom"> |
|
<div class="row"> |
|
<div class="col-12"> |
|
<button type="button" class="btn-block btn btn-primary shadow-none" onclick="massiveDownload()"><i class="fas fa-download mr-2"></i>Scarica tutti i documenti trovati</button> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="card-body table-responsive"> |
|
<style type="text/css"> |
|
.fit-width { |
|
width: 1%; |
|
white-space: nowrap; |
|
} |
|
</style> |
|
<table id="tab-data" class="table table-striped w-100"> |
|
<thead> |
|
<tr> |
|
<th>#</th> |
|
<th>Modulo</th> |
|
<th>Classificazione</th> |
|
<th>Titolo</th> |
|
<th></th> |
|
</tr> |
|
</thead> |
|
</table> |
|
<script type="text/javascript"> |
|
var massiveDownload = function () { |
|
Swal({ |
|
title: js_dict["sei-sicuro"], |
|
text: "L'operazione richiesta potrebbe richiedere un tempo considerevole per essere completata. Desideri procedere comunque?", |
|
type: "warning", |
|
showCancelButton: true, |
|
confirmButtonColor: 'var(--success)', |
|
cancelButtonColor: 'var(--danger)', |
|
confirmButtonText: js_dict.conferma, |
|
cancelButtonText: js_dict.annulla, |
|
closeOnConfirm: true |
|
}).then((result) => { |
|
if (result.value) { |
|
window.open('massive.php?token=<?= $token ?>', '_blank'); |
|
} |
|
}); |
|
}; |
|
|
|
var table = $("#tab-data").DataTable({ |
|
"processing": true, |
|
"serverSide": true, |
|
"language": { |
|
"url": "/dictionary/datatables/<?= $_SESSION["language"] ?>.lang", |
|
}, |
|
"pageLength": 50, |
|
"ajax": { |
|
"url": "table.php", |
|
"method": "POST", |
|
"data": function (d) { |
|
d.titolo = $('#titolo').val(); |
|
d.modulo = $('#modulo').val(); |
|
d.classificazione = $('#classificazione').val(); |
|
d.data_inizio = $('#data_inizio').val(); |
|
d.data_fine = $('#data_fine').val(); |
|
d.token = '<?= $token ?>'; |
|
} |
|
}, |
|
"searching": false, |
|
"order": [ |
|
[0, 'asc'] |
|
], |
|
"columns": [ |
|
{ "orderable": true, "class": 'fit-width align-middle' }, |
|
{ "orderable": true, "class": 'fit-width align-middle' }, |
|
{ "orderable": false, "class": 'fit-width align-middle' }, |
|
{ "orderable": true, "class": 'align-middle' }, |
|
{ "orderable": false, "class": 'fit-width align-middle' } |
|
] |
|
}); |
|
</script> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<? |
|
|
|
include_once($root."/backend/layout/bottom.php"); |
|
|
|
} else { |
|
|
|
echo '<meta http-equiv="refresh" content="0;URL=/impostazioni">'; |
|
die(); |
|
|
|
} |
|
?>
|
|
|