Skip to content

Commit 17f4efd

Browse files
committed
feat: aggiunta generazione automatica query dinamica liste per tipologia
1 parent 0f3fd5f commit 17f4efd

1 file changed

Lines changed: 58 additions & 18 deletions

File tree

modules/liste_newsletter/edit.php

Lines changed: 58 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,46 @@
4848
</div>
4949
</div>
5050
51-
<div class="row">
52-
<div class="col-md-12">
53-
'.input([
54-
'type' => 'textarea',
55-
'label' => tr('Query dinamica'),
56-
'name' => 'query',
57-
'required' => 0,
58-
'value' => $lista->query,
59-
'help' => tr("La query SQL deve restituire gli identificativi delle anagrafiche da inserire nella lista, sotto un campo di nome ''id''").'. <br>'.tr('Per esempio: _SQL_', [
60-
'_SQL_' => 'SELECT idanagrafica AS id, \'Modules\\\\Anagrafiche\\\\Anagrafica\' AS tipo FROM an_anagrafiche',
61-
]).'. <br>'.tr('Sono supportati i seguenti oggetti: _LIST_', [
62-
'_LIST_' => implode(', ', [
63-
slashes(Modules\Anagrafiche\Anagrafica::class),
64-
slashes(Modules\Anagrafiche\Sede::class),
65-
slashes(Modules\Anagrafiche\Referente::class),
66-
]),
67-
]).'.',
68-
]).'
51+
<div class="card card-info">
52+
<div class="card-header">
53+
<h3 class="card-title">'.tr('Generazione query dinamica').'</h3>
54+
</div>
55+
56+
<div class="card-body">
57+
58+
<div class="row">
59+
<div class="col-md-2">
60+
{[ "type": "select", "label": "'.tr('Tipologia').'", "name": "tipologia", "required": 0, "values": "query=SELECT `an_tipianagrafiche`.`id`, `title` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') ORDER BY `title`", "help": "Seleziona una tipologia per generare la query dinamica che estrae tutte le anagrafiche di quella tipologia" ]}
61+
</div>
62+
63+
<div class="col-md-2">
64+
<buttton type="button" class="btn btn-primary" style="margin-top: 25px" onclick="generaQuery()">
65+
<i class="fa fa-magic"></i> '.tr('Genera').'
66+
</button>
67+
</div>
68+
69+
</div>
70+
71+
<div class="row">
72+
<div class="col-md-12">
73+
'.input([
74+
'type' => 'textarea',
75+
'label' => tr('Query dinamica'),
76+
'name' => 'query',
77+
'required' => 0,
78+
'value' => $lista->query,
79+
'help' => tr("La query SQL deve restituire gli identificativi delle anagrafiche da inserire nella lista, sotto un campo di nome ''id''").'. <br>'.tr('Per esempio: _SQL_', [
80+
'_SQL_' => 'SELECT idanagrafica AS id, \'Modules\\\\Anagrafiche\\\\Anagrafica\' AS tipo FROM an_anagrafiche',
81+
]).'. <br>'.tr('Sono supportati i seguenti oggetti: _LIST_', [
82+
'_LIST_' => implode(', ', [
83+
slashes(Modules\Anagrafiche\Anagrafica::class),
84+
slashes(Modules\Anagrafiche\Sede::class),
85+
slashes(Modules\Anagrafiche\Referente::class),
86+
]),
87+
]).'.',
88+
]).'
89+
</div>
90+
</div>
6991
</div>
7092
</div>
7193
</div>
@@ -183,3 +205,21 @@
183205
});
184206
</script>';
185207
}
208+
209+
?>
210+
211+
<script>
212+
213+
function generaQuery() {
214+
var tipologia = $("#tipologia").val();
215+
216+
217+
var query = "SELECT an_anagrafiche.idanagrafica AS id, 'Modules\\\\Anagrafiche\\\\Anagrafica' AS tipo FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.id WHERE deleted_at IS NULL AND email!=''";
218+
219+
if(tipologia) {
220+
query += " AND an_tipianagrafiche.id="+tipologia;
221+
}
222+
223+
$('#query').val(query);
224+
}
225+
</script>';

0 commit comments

Comments
 (0)