Nuova impostazione "Permetti il ripristino di backup da file esterni"

Migliorie minori
This commit is contained in:
Luca 2020-02-07 18:13:48 +01:00
parent 536e9f5bb4
commit 4345feb0e9
6 changed files with 46 additions and 24 deletions

View File

@ -115,6 +115,8 @@ echo '
$upload_max_filesize = ini_get('upload_max_filesize');
$max_execution_time = ini_get('max_execution_time');
if (setting('Permetti il ripristino di backup da file esterni')) {
echo '
<div class="col-md-4">
<div class="box box-success">
@ -135,7 +137,10 @@ echo '
</form>
</div>
</div>
</div>
</div>';
}
echo '
</div>';
// Lettura file di backup

View File

@ -13,22 +13,26 @@ switch (filter('op')) {
$value = implode(',', $value);
}
$is_valid = Settings::setValue($id, $value);
//Se è un'impostazione editabile
if ($result->editable){
if (!$is_valid) {
// integer
if ($result['tipo'] == 'integer') {
flash()->error(tr('Il valore inserito del parametro _NAME_ deve essere un numero intero!', [
'_NAME_' => '"'.$result['nome'].'"',
]));
}
$is_valid = Settings::setValue($id, $value);
// list
// verifico che il valore scelto sia nella lista enumerata nel db
elseif (preg_match("/list\[(.+?)\]/", $result['tipo'], $m)) {
flash()->error(tr('Il valore inserito del parametro _NAME_ deve essere un compreso tra i valori previsti!', [
'_NAME_' => '"'.$result['nome'].'"',
]));
if (!$is_valid) {
// integer
if ($result['tipo'] == 'integer') {
flash()->error(tr('Il valore inserito del parametro _NAME_ deve essere un numero intero!', [
'_NAME_' => '"'.$result['nome'].'"',
]));
}
// list
// verifico che il valore scelto sia nella lista enumerata nel db
elseif (preg_match("/list\[(.+?)\]/", $result['tipo'], $m)) {
flash()->error(tr('Il valore inserito del parametro _NAME_ deve essere un compreso tra i valori previsti!', [
'_NAME_' => '"'.$result['nome'].'"',
]));
}
}
}

View File

@ -3,5 +3,5 @@
include_once __DIR__.'/../../core.php';
if (isset($id_record)) {
$records = $dbo->fetchArray('SELECT * FROM `zz_settings` WHERE `sezione` = (SELECT sezione FROM `zz_settings` WHERE `id` = '.prepare($id_record).') AND `editable` = 1 ORDER BY `order`');
$records = $dbo->fetchArray('SELECT * FROM `zz_settings` WHERE `sezione` = (SELECT sezione FROM `zz_settings` WHERE `id` = '.prepare($id_record).') ORDER BY `order`');
}

View File

@ -4,8 +4,6 @@ include_once __DIR__.'/../../core.php';
use Models\Module;
$enable_readonly = !setting('Modifica Viste di default');
echo '
<form action="" method="post" role="form">
<input type="hidden" name="backto" value="record-edit">

View File

@ -153,7 +153,7 @@ class Settings
}
$result = '
{[ "type": "select", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "values": '.json_encode($list).', "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
{[ "type": "select", "label": "'.$setting->nome.'", "readonly": "'.!$setting->editable.'", "name": "setting['.$setting->id.']", "values": '.json_encode($list).', "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
}
// Lista multipla
@ -169,25 +169,25 @@ class Settings
}
$result = '
{[ "type": "select", "multiple": 1, "label": "'.$setting->nome.'", "name": "setting['.$setting->id.'][]", "values": '.json_encode($list).', "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
{[ "type": "select", "multiple": 1, "label": "'.$setting->nome.'", "readonly": "'.!$setting->editable.'", "name": "setting['.$setting->id.'][]", "values": '.json_encode($list).', "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
}
// Lista da query
elseif (preg_match('/^query=(.+?)$/', $setting->tipo, $m)) {
$result = '
{[ "type": "select", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "values": "'.str_replace('"', '\"', $setting->tipo).'", "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
{[ "type": "select", "label": "'.$setting->nome.'", "readonly": "'.!$setting->editable.'", "name": "setting['.$setting->id.']", "values": "'.str_replace('"', '\"', $setting->tipo).'", "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
}
// Boolean (checkbox)
elseif ($setting->tipo == 'boolean') {
$result = '
{[ "type": "checkbox", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "placeholder": "'.tr('Attivo').'", "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
{[ "type": "checkbox", "label": "'.$setting->nome.'", "readonly": "'.!$setting->editable.'", "name": "setting['.$setting->id.']", "placeholder": "'.tr('Attivo').'", "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
}
// Campi di default
elseif (in_array($setting->tipo, ['textarea', 'ckeditor', 'timestamp', 'date', 'time'])) {
$result = '
{[ "type": "'.$setting->tipo.'", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "value": '.json_encode($setting->valore).', "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
{[ "type": "'.$setting->tipo.'", "label": "'.$setting->nome.'", "readonly": "'.!$setting->editable.'", "name": "setting['.$setting->id.']", "value": '.json_encode($setting->valore).', "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
}
// Campo di testo
@ -198,7 +198,7 @@ class Settings
$tipo = $numerico ? 'number' : 'text';
$result = '
{[ "type": "'.$tipo.'", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "value": "'.$setting->valore.'"'.($numerico && $setting->tipo == 'integer' ? ', "decimals": 0' : '').', "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
{[ "type": "'.$tipo.'", "label": "'.$setting->nome.'", "readonly": "'.!$setting->editable.'", "name": "setting['.$setting->id.']", "value": "'.$setting->valore.'"'.($numerico && $setting->tipo == 'integer' ? ', "decimals": 0' : '').', "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}';
}
return $result;

15
update/2_4_14.sql Normal file
View File

@ -0,0 +1,15 @@
-- Eliminazione impostazione non utilizzata
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Modifica Viste di default';
UPDATE `zz_settings` SET `sezione` = 'Backup' WHERE `zz_settings`.`nome` = 'Numero di backup da mantenere';
UPDATE `zz_settings` SET `sezione` = 'Backup' WHERE `zz_settings`.`nome` = 'Backup automatico';
UPDATE `zz_settings` SET `sezione` = 'Aggiornamenti' WHERE `zz_settings`.`nome` = 'Attiva aggiornamenti';
UPDATE `zz_settings` SET `sezione` = 'API' WHERE `zz_settings`.`nome` = 'apilayer API key for VAT number';
UPDATE `zz_settings` SET `sezione` = 'API' WHERE `zz_settings`.`nome` = 'Google Maps API key';
-- Abilita la possibilità di ripristinare backup da archivi esterni al gestionale
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `created_at`, `updated_at`, `order`, `help`) VALUES (NULL, 'Permetti il ripristino di backup da file esterni', '1', 'boolean', '0', 'Backup', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, 'Abilita la possibilità di ripristinare backup da archivi esterni al gestionale.');
UPDATE `zz_settings` SET `help` = 'Esegue automaticamente un backup completo del gestionale al primo accesso della giornata.' WHERE `zz_settings`.`nome` = 'Backup automatico';