Compare commits
7 Commits
ed2c9abba5
...
bb43544c59
Author | SHA1 | Date |
---|---|---|
FabioL | bb43544c59 | |
FabioL | 5140dc5b78 | |
Pek5892 | 909d535b5f | |
FabioL | 2179e9f30f | |
FabioL | 697685e268 | |
Pek5892 | 90d9a80f4f | |
Pek5892 | 123582b730 |
|
@ -30,6 +30,10 @@
|
|||
url('../fonts/sourcesanspro-regular-webfont.svg') format('svg');
|
||||
}
|
||||
|
||||
.preloader{
|
||||
background-color: #f4f6f9de !important;
|
||||
}
|
||||
|
||||
html {
|
||||
font-size: 13px;
|
||||
height: 100%;
|
||||
|
@ -1002,6 +1006,10 @@ table.dataTable {
|
|||
color: dodgerblue;
|
||||
}
|
||||
|
||||
.tooltipster-box ul{
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
/*
|
||||
* Colore testo btn-box-tool
|
||||
*/
|
||||
|
@ -1531,6 +1539,16 @@ kbd{
|
|||
padding: 20px;
|
||||
}
|
||||
|
||||
.sidebar .nav-treeview .nav-link {
|
||||
margin-left: 10px;
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
.sidebar .nav-treeview .nav-treeview .nav-link {
|
||||
margin-left: 20px;
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
.navbar-left {
|
||||
display: inline-block;
|
||||
|
|
|
@ -16,6 +16,11 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Aggiunta dell'ingranaggio all'unload della pagina
|
||||
$(window).on("beforeunload", function () {
|
||||
$("#main_loading").css('height', '100vh').find('img').show().removeClass('animation__shake').addClass('animation__shake');
|
||||
});
|
||||
|
||||
// Fix multi-modal
|
||||
$(document).on('hidden.bs.modal', '.modal', function () {
|
||||
$(this).remove();
|
||||
|
|
|
@ -644,7 +644,7 @@ if (!empty($messages['error'])) {
|
|||
foreach ($messages['error'] as $value) {
|
||||
echo '
|
||||
<div class="alert alert-danger push">
|
||||
<h4><i class="icon fa fa fa-ban"></i> ' . tr('Errore') . '</h4>
|
||||
<h4><i class="fa fa fa-ban"></i> ' . tr('Errore') . '</h4>
|
||||
' . $value . '
|
||||
</div>';
|
||||
}
|
||||
|
@ -655,7 +655,7 @@ if (!empty($messages['warning'])) {
|
|||
foreach ($messages['warning'] as $value) {
|
||||
echo '
|
||||
<div class="alert alert-warning push">
|
||||
<h4><i class="icon fa fa-warning"></i> ' . tr('Attenzione') . '</h4>
|
||||
<h4><i class="fa fa-warning"></i> ' . tr('Attenzione') . '</h4>
|
||||
' . $value . '
|
||||
</div>';
|
||||
}
|
||||
|
|
35
index.php
35
index.php
|
@ -158,29 +158,34 @@ if (!empty(flash()->getMessage('error'))) {
|
|||
echo '
|
||||
<form action="?op=login" method="post" autocomplete="off">
|
||||
<div class="login-box">
|
||||
<div class="login-logo">
|
||||
<img src="'.App::getPaths()['img'].'/logo_completo.png" alt="'.tr('OpenSTAManager, il software gestionale open source per assistenza tecnica e fatturazione elettronica').'" style="max-width: 100%; max-height: 100%;">
|
||||
</div>
|
||||
<div class="card card-outline card-orange">
|
||||
<div class="card-header text-center">
|
||||
<img src="'.App::getPaths()['img'].'/logo_completo.png" alt="'.tr('OpenSTAManager, il software gestionale open source per assistenza tecnica e fatturazione elettronica').'" class="img-fluid">
|
||||
</div>
|
||||
|
||||
<div class="login-box-body">
|
||||
<p class="login-box-msg">'.tr('Accedi con le tue credenziali').'</p>
|
||||
<div class="form-group has-feedback">
|
||||
<input type="text" name="username" autocomplete="username" class="form-control" placeholder="'.tr('Nome utente').'"';
|
||||
<div class="card-body">
|
||||
<p class="login-box-msg">'.tr('Accedi con le tue credenziali').'</p>
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" name="username" autocomplete="username" class="form-control" placeholder="'.tr('Nome utente').'"';
|
||||
if (isset($username)) {
|
||||
echo ' value="'.$username.'"';
|
||||
}
|
||||
|
||||
echo ' required>
|
||||
<span class="form-control-feedback"><i class="fa fa-user"></i> </span>
|
||||
</div>
|
||||
<div class="input-group-append">
|
||||
<div class="input-group-text">
|
||||
<i class="fa fa-user"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group has-feedback">
|
||||
{[ "type": "password", "name": "password", "autocomplete": "current-password", "placeholder": "'.tr('Password').'" ]}
|
||||
</div>
|
||||
<div class="input-group mb-3">
|
||||
{[ "type": "password", "name": "password", "autocomplete": "current-password", "placeholder": "'.tr('Password').'" ]}
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-danger btn-block btn-flat">'.tr('Accedi').'</button>
|
||||
<br>
|
||||
<p><a href="'.base_path().'/reset.php">'.tr('Password dimenticata?').'</a></p>';
|
||||
<button type="submit" class="btn btn-danger btn-block btn-flat">'.tr('Accedi').'</button>
|
||||
<br>
|
||||
<p><a href="'.base_path().'/reset.php">'.tr('Password dimenticata?').'</a></p>';
|
||||
if ($microsoft) {
|
||||
echo '
|
||||
<div class="social-auth-links text-center">
|
||||
|
|
|
@ -30,7 +30,7 @@ switch ($name) {
|
|||
['idanagrafica', '<>', $id_record],
|
||||
])->count() == 0;
|
||||
|
||||
$message = $disponibile ? '<i class="icon fa fa-check text-green"></i> '.tr('Il codice anagrafica è disponibile.') : '<i class="icon fa fa-warning text-yellow"></i> '.tr("Il codice anagrafica è già utilizzato in un'altra anagrafica.");
|
||||
$message = $disponibile ? '<i class="fa fa-check text-green"></i> '.tr('Il codice anagrafica è disponibile.') : '<i class="fa fa-warning text-yellow"></i> '.tr("Il codice anagrafica è già utilizzato in un'altra anagrafica.");
|
||||
|
||||
$response = [
|
||||
'result' => $disponibile,
|
||||
|
@ -46,7 +46,7 @@ switch ($name) {
|
|||
['idanagrafica', '<>', $id_record],
|
||||
])->count() == 0;
|
||||
|
||||
$message = $disponibile ? '<i class="icon fa fa-check text-green"></i> '.tr('Questo codice fiscale non è ancora stato utilizzato.') : '<i class="icon fa fa-warning text-yellow"></i> '.tr("Il codice fiscale è già utilizzato in un'altra anagrafica.");
|
||||
$message = $disponibile ? '<i class="fa fa-check text-green"></i> '.tr('Questo codice fiscale non è ancora stato utilizzato.') : '<i class="fa fa-warning text-yellow"></i> '.tr("Il codice fiscale è già utilizzato in un'altra anagrafica.");
|
||||
|
||||
// Validazione del Codice Fiscale
|
||||
// Se anagrafica non ancora definita OPPURE Se il codice fiscale è diverso dalla partita iva ma solo per anagrafiche Private e Aziende.
|
||||
|
@ -54,7 +54,7 @@ switch ($name) {
|
|||
$check = Validate::isValidTaxCode($value);
|
||||
if (empty($check)) {
|
||||
$disponibile = false;
|
||||
$message .= '<br><i class="icon fa fa-warning text-yellow"></i> '.tr('Il codice fiscale _COD_ non possiede un formato valido.', [
|
||||
$message .= '<br><i class="fa fa-warning text-yellow"></i> '.tr('Il codice fiscale _COD_ non possiede un formato valido.', [
|
||||
'_COD_' => $value,
|
||||
]);
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ switch ($name) {
|
|||
}
|
||||
}
|
||||
|
||||
$message = $valido ? '<i class="icon fa fa-check text-green"></i> '.tr('Il codice intermediario è valido.') : '<i class="icon fa fa-warning text-yellow"></i> '.tr('Il codice intermediario non sembra essere valido. Lunghezza attesa _LENGTH_ caratteri.', ['_LENGTH_' => $length]);
|
||||
$message = $valido ? '<i class="fa fa-check text-green"></i> '.tr('Il codice intermediario è valido.') : '<i class="fa fa-warning text-yellow"></i> '.tr('Il codice intermediario non sembra essere valido. Lunghezza attesa _LENGTH_ caratteri.', ['_LENGTH_' => $length]);
|
||||
|
||||
$response = [
|
||||
'result' => $valido,
|
||||
|
@ -122,7 +122,7 @@ switch ($name) {
|
|||
['idanagrafica', '<>', $id_record],
|
||||
])->count() == 0;
|
||||
|
||||
$message = $disponibile ? '<i class="icon fa fa-check text-green"></i> '.tr('Questa partita iva non è ancora stata utilizzata') : '<i class="icon fa fa-warning text-yellow"></i> '.tr("La partita iva è già utilizzata in un'altra anagrafica");
|
||||
$message = $disponibile ? '<i class="fa fa-check text-green"></i> '.tr('Questa partita iva non è ancora stata utilizzata') : '<i class="fa fa-warning text-yellow"></i> '.tr("La partita iva è già utilizzata in un'altra anagrafica");
|
||||
|
||||
$partita_iva = !empty($anagrafica) && is_numeric($value) ? $anagrafica->nazione->iso2.$value : $value;
|
||||
|
||||
|
@ -146,7 +146,7 @@ switch ($name) {
|
|||
|
||||
$message .= '. ';
|
||||
if (!empty($errors)) {
|
||||
$message .= '<br><i class="icon fa fa-times text-red"></i> '.tr('_NUM_ errori', ['_NUM_' => count($errors)]).':<ul>';
|
||||
$message .= '<br><i class="fa fa-times text-red"></i> '.tr('_NUM_ errori', ['_NUM_' => count($errors)]).':<ul>';
|
||||
foreach ($errors as $error) {
|
||||
$message .= '<li>'.$error.'</li>';
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ switch ($name) {
|
|||
])->count() == 0;
|
||||
$result = $disponibile;
|
||||
|
||||
$message = $disponibile ? '<i class="icon fa fa-check text-green"></i> '.tr('Questa email non è ancora stata utilizzata') : '<i class="icon fa fa-warning text-yellow"></i> '.tr("L'email è già utilizzata in un'altra anagrafica");
|
||||
$message = $disponibile ? '<i class="fa fa-check text-green"></i> '.tr('Questa email non è ancora stata utilizzata') : '<i class="fa fa-warning text-yellow"></i> '.tr("L'email è già utilizzata in un'altra anagrafica");
|
||||
|
||||
$errors = [];
|
||||
$check = Validate::isValidEmail($value);
|
||||
|
@ -188,7 +188,7 @@ switch ($name) {
|
|||
|
||||
$message .= '. ';
|
||||
if (!empty($errors)) {
|
||||
$message .= '<br><i class="icon fa fa-times text-red"></i> '.tr('_NUM_ errori', ['_NUM_' => count($errors)]).':<ul>';
|
||||
$message .= '<br><i class="fa fa-times text-red"></i> '.tr('_NUM_ errori', ['_NUM_' => count($errors)]).':<ul>';
|
||||
foreach ($errors as $error) {
|
||||
$message .= '<li>'.$error.'</li>';
|
||||
}
|
||||
|
|
|
@ -109,7 +109,7 @@ foreach ($stati_intervento as $stato) {
|
|||
<li>
|
||||
<input type="checkbox" id="stato_'.$stato['id'].'" class="dashboard_stato" value="'.$stato['id'].'" '.$attr.'>
|
||||
<label for="stato_'.$stato['id'].'">
|
||||
'.$stato['descrizione']. ' <span class="icon pull-right" style="background-color:'.$stato['colore'].';"></span>
|
||||
'.$stato['descrizione']. ' <span class="pull-right" style="background-color:'.$stato['colore'].';"></span>
|
||||
</label>
|
||||
</li>';
|
||||
}
|
||||
|
@ -182,7 +182,7 @@ foreach ($tecnici_disponibili as $tecnico) {
|
|||
<li>
|
||||
<input type="checkbox" id="tecnico_'.$tecnico['id'].'" class="dashboard_tecnico" value="'.$tecnico['id'].'" '.$attr.'>
|
||||
<label for="tecnico_'.$tecnico['id'].'">
|
||||
'.$tecnico['ragione_sociale']. ' <span class="icon pull-right" style="background-color:'.$tecnico['colore'].';"></span>
|
||||
'.$tecnico['ragione_sociale']. ' <span class="pull-right" style="background-color:'.$tecnico['colore'].';"></span>
|
||||
</label>
|
||||
</li>';
|
||||
}
|
||||
|
|
|
@ -114,7 +114,7 @@ if ($module->getTranslation('title') == 'Fatture di vendita' && $services_enable
|
|||
if (sizeof($documenti_invio) > 0) {
|
||||
echo '
|
||||
<div class="alert push alert-warning">
|
||||
<h4><i class="icon fa fa-clock-o"></i>'.tr('Attenzione').'</h4>'.tr('Le seguenti fatture sono in attesa di essere inviate').':<ul>';
|
||||
<h4><i class="fa fa-clock-o"></i>'.tr('Attenzione').'</h4>'.tr('Le seguenti fatture sono in attesa di essere inviate').':<ul>';
|
||||
foreach ($documenti_invio as $documento) {
|
||||
echo '
|
||||
<li><b>'.$documento.'</b></li>';
|
||||
|
|
|
@ -33,38 +33,40 @@ echo '
|
|||
$start = $_SESSION['period_start'];
|
||||
$end = $_SESSION['period_end'];
|
||||
|
||||
echo '
|
||||
<div class="card card-warning">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Periodi temporali').'</h4>
|
||||
<div class="card-tools">
|
||||
<button class="btn btn-warning btn-sm" onclick="add_calendar()">
|
||||
<i class="fa fa-plus"></i> '.tr('Aggiungi periodo').'
|
||||
</button>
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body" id="calendars">
|
||||
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Fatturato
|
||||
echo '
|
||||
<div class="card card-success">
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Vendite e acquisti').'</h4>
|
||||
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<canvas class="card-body" id="fatturato" height="500"></canvas>
|
||||
<div class="card-body">
|
||||
<div class="card card-warning collapsed-card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Periodi temporali').'</h4>
|
||||
<div class="card-tools">
|
||||
<button class="btn btn-warning btn-sm" onclick="add_calendar()">
|
||||
<i class="fa fa-plus"></i> '.tr('Aggiungi periodo').'
|
||||
</button>
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-plus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body" id="calendars">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<canvas id="fatturato" height="50"></canvas>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Script per il grafico del fatturato
|
||||
echo '
|
||||
<script>
|
||||
|
@ -219,7 +221,7 @@ $totale = $dbo->fetchArray('SELECT
|
|||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card card-warning">
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('I 20 clienti TOP per il periodo').': '.Translator::dateToLocale($start).' - '.Translator::dateToLocale($end).'</h4>
|
||||
|
||||
|
@ -306,7 +308,7 @@ $totale = $dbo->fetchArray('SELECT
|
|||
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
<div class="card card-danger">
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('I 20 articoli più venduti per il periodo').': '.Translator::dateToLocale($start).' - '.Translator::dateToLocale($end).'</h4>
|
||||
|
||||
|
@ -388,20 +390,23 @@ foreach ($tipi as $tipo) {
|
|||
}
|
||||
|
||||
echo '
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Numero interventi per tipologia').'</h4>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Numero interventi per tipologia').'</h4>
|
||||
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<canvas id="interventi_n_tipologia"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<canvas id="interventi_n_tipologia" height="100"></canvas>
|
||||
</div>
|
||||
</div>';
|
||||
</div>';
|
||||
|
||||
// Script for the chart displaying the number of interventions by type
|
||||
echo '
|
||||
|
@ -445,19 +450,22 @@ foreach ($tipi as $tipo) {
|
|||
}
|
||||
|
||||
echo '
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Ore interventi per tipologia').'</h4>
|
||||
<div class="col-md-6">
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Ore interventi per tipologia').'</h4>
|
||||
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<canvas id="interventi_ore_tipologia"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<canvas id="interventi_ore_tipologia" height="100"></canvas>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Script per il grafico delle ore interventi per tipologia
|
||||
|
@ -528,30 +536,33 @@ foreach ($tecnici as $tecnico) {
|
|||
}
|
||||
|
||||
echo '
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Ore di lavoro per tecnico').'</h4>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Ore di lavoro per tecnico').'</h4>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3 float-right">';
|
||||
<div class="row">
|
||||
<div class="col-md-3 float-right">';
|
||||
if ($_SESSION['superselect']['idtipiintervento']) {
|
||||
echo '
|
||||
{["type": "select", "multiple": "1", "label": "'.tr('Tipi attività').'", "name": "idtipiintervento[]", "ajax-source": "tipiintervento", "value": "'.implode(',', (array) json_decode($_SESSION['superselect']['idtipiintervento'])).'", "placeholder": "Tutti" ]}';
|
||||
{["type": "select", "multiple": "1", "label": "'.tr('Tipi attività').'", "name": "idtipiintervento[]", "ajax-source": "tipiintervento", "value": "'.implode(',', (array) json_decode($_SESSION['superselect']['idtipiintervento'])).'", "placeholder": "Tutti" ]}';
|
||||
}
|
||||
echo '
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<canvas id="sessioni"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<canvas id="sessioni" height="100"></canvas>
|
||||
</div>
|
||||
</div>';
|
||||
</div>';
|
||||
|
||||
// Script per il grafico ore interventi per tecnico
|
||||
echo '
|
||||
|
@ -703,19 +714,23 @@ $dataset .= '{
|
|||
]
|
||||
},';
|
||||
echo '
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Nuove anagrafiche').'</h4>
|
||||
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
<div class="col-md-6">
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">'.tr('Nuove anagrafiche').'</h4>
|
||||
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<canvas id="n_anagrafiche"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<canvas id="n_anagrafiche" height="100"></canvas>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Script per il grafico dei nuovi clienti per mese
|
||||
|
|
|
@ -44,8 +44,8 @@ class LineChart extends Stat {
|
|||
labels.push(date.format("MMMM YYYY"));
|
||||
});
|
||||
|
||||
while (chart.data.badges.length < data.results.length) {
|
||||
chart.data.badges.push("");
|
||||
while (chart.data.labels.length < data.results.length) {
|
||||
chart.data.labels.push("");
|
||||
}
|
||||
|
||||
chart.data.datasets.push({
|
||||
|
@ -100,11 +100,11 @@ class LineChart extends Stat {
|
|||
color = color.substr(0, 7);
|
||||
|
||||
chart.data.datasets.splice(dataset_index, 1);
|
||||
chart.data.badges.splice(dataset_index, 1);
|
||||
chart.data.labels.splice(dataset_index, 1);
|
||||
}
|
||||
|
||||
while (chart.data.badges.length > max_length) {
|
||||
chart.data.badges.pop("");
|
||||
while (chart.data.labels.length > max_length) {
|
||||
chart.data.labels.pop("");
|
||||
}
|
||||
|
||||
chart.update();
|
||||
|
|
|
@ -73,7 +73,7 @@ switch ($name) {
|
|||
])->count() == 0;
|
||||
$result = $disponibile;
|
||||
|
||||
$message = $disponibile ? '<i class="icon fa fa-check text-green"></i> '.tr('Questa email non è ancora stata utilizzata') : '<i class="icon fa fa-warning text-yellow"></i> '.tr("L'email è già utilizzata in un'altra anagrafica");
|
||||
$message = $disponibile ? '<i class="fa fa-check text-green"></i> '.tr('Questa email non è ancora stata utilizzata') : '<i class="fa fa-warning text-yellow"></i> '.tr("L'email è già utilizzata in un'altra anagrafica");
|
||||
|
||||
$errors = [];
|
||||
$check = Validate::isValidEmail($value);
|
||||
|
@ -92,7 +92,7 @@ switch ($name) {
|
|||
|
||||
$message .= '. ';
|
||||
if (!empty($errors)) {
|
||||
$message .= '<br><i class="icon fa fa-times text-red"></i> '.tr('_NUM_ errori', ['_NUM_' => count($errors)]).':<ul>';
|
||||
$message .= '<br><i class="fa fa-times text-red"></i> '.tr('_NUM_ errori', ['_NUM_' => count($errors)]).':<ul>';
|
||||
foreach ($errors as $error) {
|
||||
$message .= '<li>'.$error.'</li>';
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ if (!empty($fatture_generate_errore->count())) {
|
|||
echo '
|
||||
<div class="alert alert-warning push alert-dismissible" role="alert">
|
||||
<button class="close" type="button" data-dismiss="alert" aria-hidden="true"><span aria-hidden="true">×</span><span class="sr-only">'.tr('Chiudi').'</span></button>
|
||||
<h4><i class="icon fa fa-warning"></i>'.tr('Attenzione').'</h4>'.(($fatture_generate_errore->count() > 1) ? tr('Le seguenti fatture hanno ricevuto uno scarto o presentano errori in fase di trasmissione') : tr('La seguente fattura ha ricevuto uno scarto o presenta errori in fase di trasmissione')).':
|
||||
<h4><i class="fa fa-warning"></i>'.tr('Attenzione').'</h4>'.(($fatture_generate_errore->count() > 1) ? tr('Le seguenti fatture hanno ricevuto uno scarto o presentano errori in fase di trasmissione') : tr('La seguente fattura ha ricevuto uno scarto o presenta errori in fase di trasmissione')).':
|
||||
<ul>';
|
||||
|
||||
foreach ($fatture_generate_errore as $fattura_generata) {
|
||||
|
@ -91,7 +91,7 @@ $fatture_generate = Fattura::vendita()
|
|||
if (!empty($fatture_generate->count())) {
|
||||
echo '
|
||||
<div class="alert alert-info push info-dismissible" role="alert"><button class="close" type="button" data-dismiss="alert" aria-hidden="true"><span aria-hidden="true">×</span><span class="sr-only">'.tr('Chiudi').'</span></button>
|
||||
<h4><i class="icon fa fa-info"></i>'.tr('Informazione').'</h4> '.(($fatture_generate->count() > 1) ? tr('Le seguenti fatture sono in attesa di una ricevuta da più di 7 giorni') : tr('La seguente fattura è in attesa di una ricevuta da più di 7 giorni')).':
|
||||
<h4><i class="fa fa-info"></i>'.tr('Informazione').'</h4> '.(($fatture_generate->count() > 1) ? tr('Le seguenti fatture sono in attesa di una ricevuta da più di 7 giorni') : tr('La seguente fattura è in attesa di una ricevuta da più di 7 giorni')).':
|
||||
<ul>';
|
||||
|
||||
foreach ($fatture_generate as $fattura_generata) {
|
||||
|
|
|
@ -101,6 +101,7 @@ class DefaultHandler implements HandlerInterface
|
|||
*/
|
||||
protected function password(&$values, &$extras)
|
||||
{
|
||||
|
||||
$result = '
|
||||
<script>
|
||||
const characters ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!$£%-()*[]";
|
||||
|
@ -197,6 +198,10 @@ class DefaultHandler implements HandlerInterface
|
|||
}
|
||||
|
||||
// Delega al metodo "text", per la generazione del codice HTML
|
||||
$values['icon-after'] = '
|
||||
<div class="input-group-text">
|
||||
<span class="fa fa-eye-slash clickable" id="'.$values['id'].'_toggle" onclick="togglePassword_'.$values['id'].'();"></span>
|
||||
</div>';
|
||||
$result .= $this->text($values, $extras);
|
||||
|
||||
return $result;
|
||||
|
|
|
@ -39,8 +39,10 @@ class HTMLWrapper implements WrapperInterface
|
|||
$values['icon-before'] = isset($values['icon-before']) ? $this->parser($values, $extras, $values['icon-before']) : null;
|
||||
$values['icon-after'] = isset($values['icon-after']) ? $this->parser($values, $extras, $values['icon-after']) : null;
|
||||
|
||||
$result .= '
|
||||
<div class="form-group '.$extra_class.'">';
|
||||
if (!empty($extra_class)) {
|
||||
$result .= '
|
||||
<div class="'.$extra_class.'">';
|
||||
}
|
||||
|
||||
// Generazione dell'etichetta
|
||||
if (!empty($values['label'])) {
|
||||
|
@ -71,14 +73,14 @@ class HTMLWrapper implements WrapperInterface
|
|||
if (!empty($values['icon-before']) || !empty($values['icon-after']) || !empty($values['validation'])) {
|
||||
if (!empty($values['icon-after'])) {
|
||||
$result .= '
|
||||
<span class="input-group-addon after'.(!empty($values['icon-custom']) ? ' '.$values['icon-custom'] : '').'">'.$values['icon-after'].'</span>';
|
||||
<span class="input-group-append after'.(!empty($values['icon-custom']) ? ' '.$values['icon-custom'] : '').'">'.$values['icon-after'].'</span>';
|
||||
}
|
||||
|
||||
if (!empty($values['validation'])) {
|
||||
$result .= '
|
||||
<span class="input-group-addon after" id="'.$pseudo_id.'_validation">
|
||||
<div class="input-group-append after" id="'.$pseudo_id.'_validation">
|
||||
<span class="tip" title="'.tr('Validazione').'"><i class="fa fa-question-circle "></i></span>
|
||||
</span>';
|
||||
</div>';
|
||||
}
|
||||
|
||||
$result .= '
|
||||
|
@ -102,8 +104,11 @@ class HTMLWrapper implements WrapperInterface
|
|||
$result .= '
|
||||
<div id="'.$values['id'].$rand.'-errors"></div>';
|
||||
|
||||
$result .= '
|
||||
if ($values['type'] == 'checkbox') {
|
||||
$result .= '
|
||||
</div>';
|
||||
}
|
||||
|
||||
if (!empty($values['label'])) {
|
||||
unset($values['label']);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue