gestione gare pubbliche
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

<?
$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();
}
?>