Migliorato Pulsante Precedente e Successivo all'interno della scheda attività

This commit is contained in:
Luca 2024-03-02 17:16:51 +01:00
parent 6406135540
commit 20a4c9dc2e
4 changed files with 39 additions and 19 deletions

View File

@ -412,8 +412,8 @@ if (Auth::check()) {
<li class="nav-button" > <li class="nav-button" >
<p style="padding:10px 15px;">&nbsp;</p> <p style="padding:10px 15px;">&nbsp;</p>
</li>'; </li>';
//Visualizzo gli hooks solo agli amministratori e solo se non sono stati disabilitati.
if ($user->gruppo == 'Amministratori') { if ($user->gruppo == 'Amministratori' && !$config['disable_hooks']) {
echo ' echo '
<li class="dropdown notifications-menu nav-button"> <li class="dropdown notifications-menu nav-button">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">

View File

@ -43,9 +43,12 @@ if (isset($id_record)) {
WHERE WHERE
`in_interventi`.`id`='.prepare($id_record)); `in_interventi`.`id`='.prepare($id_record));
//Pulsante Precedente e Successivo all'interno della scheda attività //Pulsante Precedente e Successivo all'interno della scheda attività
//Ricavo la query del modulo
$module_query = Util\Query::getQuery(Models\Module::getCurrent()); $module_query = Util\Query::getQuery(Models\Module::getCurrent());
//Aggiunto eventuali filtri applicati alla vista
if (!empty(getSearchValues($id_module))) { if (!empty(getSearchValues($id_module))) {
$having = []; $having = [];
$search_values = getSearchValues($id_module); $search_values = getSearchValues($id_module);
@ -55,13 +58,29 @@ if (isset($id_record)) {
foreach($having as $condition) { foreach($having as $condition) {
$module_query = str_replace('2=2', '2=2 AND '.$condition, $module_query); $module_query = str_replace('2=2', '2=2 AND '.$condition, $module_query);
} }
//Controllo se questo id_record è presente all'interno dei risultati, altrimenti non considero i filtri applicati alla vista
/*$query_test = str_replace('1=1', '1=1 AND `in_interventi`.`id` ='.prepare($id_record), $module_query);
if (count($database->FetchArray($query_test))>0)
$module_query = $module_query;
else
$module_query = Util\Query::getQuery(Models\Module::getCurrent());*/
} }
//Mi ricavo la posizione di questo id_record
$database->FetchArray('SET @posizione = 0;');
$posizioni = $database->FetchArray($module_query);
foreach($posizioni as $posizione) {
if ($posizione['id'] == $id_record)
$posizione_attuale = $posizione['posizione'];
}
$prev_query = str_replace('1=1', '1=1 AND `in_interventi`.`codice` = '.($record['codice']-1), $module_query); $prev_query = str_replace('2=2', '2=2 AND `posizione` ='.$posizione_attuale-1, $module_query);
$database->FetchArray('SET @posizione = 0;');
$prev = $database->FetchOne($prev_query)['id']; $prev = $database->FetchOne($prev_query)['id'];
$next_query = str_replace('1=1', '1=1 AND `in_interventi`.`codice` = '.($record['codice']+1), $module_query); $next_query = str_replace('2=2', '2=2 AND `posizione` ='.$posizione_attuale+1, $module_query);
$database->FetchArray('SET @posizione = 0;');
$next = $database->FetchOne($next_query)['id']; $next = $database->FetchOne($next_query)['id'];

View File

@ -26,13 +26,20 @@ echo '
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "date", "label": "'.tr('Data inizio').'", "name": "data_inizio", "value": "-now-", "required":1 ]} {[ "type": "date", "label": "'.tr('Data inizio periodo duplicazione').'", "name": "data_inizio", "value": "-now-", "required":1 ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "date", "label": "'.tr('Data fine').'", "name": "data_fine", "value": "-now-", "required":1 ]} {[ "type": "date", "label": "'.tr('Data fine periodo duplicazione').'", "name": "data_fine", "value": "-now-", "required":1 ]}
</div> </div>
<div class="col-md-6">
{[ "type": "select", "multiple":"1", "label": "'.tr('Giorni da considerare per la duplicazione').'", "name": "giorni[]", "required": 0, "value": "'.strtolower(setting('Giorni lavorativi')).'", "values": "list=\"lunedì\":\"'.tr('Lunedì').'\", \"martedì\":\"'.tr('Martedì').'\", \"mercoledì\":\"'.tr('Mercoledì').'\", \"giovedì\":\"'.tr('Giovedì').'\", \"venerdì\":\"'.tr('Venerdì').'\", \"sabato\":\"'.tr('Sabato').'\", \"domenica\":\"'.tr('Domenica').'\"", "required":1 ]}
</div>
</div>
<div class="row">
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "time", "label": "'.tr('Ora richiesta').'", "name": "ora_richiesta", "value": "-now-", "required":1 ]} {[ "type": "time", "label": "'.tr('Ora richiesta').'", "name": "ora_richiesta", "value": "-now-", "required":1 ]}
</div> </div>
@ -40,12 +47,6 @@ echo '
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "time", "label": "'.tr('Ora scadenza').'", "name": "ora_scadenza" ]} {[ "type": "time", "label": "'.tr('Ora scadenza').'", "name": "ora_scadenza" ]}
</div> </div>
</div>
<div class="row">
<div class="col-md-6">
{[ "type": "select", "multiple":"1", "label": "'.tr('Giorni da considerare per la duplicazione').'", "name": "giorni[]", "required": 0, "value": "'.strtolower(setting('Giorni lavorativi')).'", "values": "list=\"lunedì\":\"'.tr('Lunedì').'\", \"martedì\":\"'.tr('Martedì').'\", \"mercoledì\":\"'.tr('Mercoledì').'\", \"giovedì\":\"'.tr('Giovedì').'\", \"venerdì\":\"'.tr('Venerdì').'\", \"sabato\":\"'.tr('Sabato').'\", \"domenica\":\"'.tr('Domenica').'\"", "required":1 ]}
</div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `name` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `deleted_at` IS NULL ORDER BY `name`", "value": "" ]} {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `name` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `deleted_at` IS NULL ORDER BY `name`", "value": "" ]}

View File

@ -428,7 +428,7 @@ class Query
$select = empty($select) ? '*' : implode(', ', $select); $select = empty($select) ? '*' : implode(', ', $select);
$query = str_replace('|select|', $select, $query); $query = str_replace('|select|', $select.', @posizione := @posizione + 1 AS `posizione`', $query);
return [ return [
'query' => self::replacePlaceholder($query), 'query' => self::replacePlaceholder($query),