diff --git a/CHANGELOG.md b/CHANGELOG.md
index 281426ee8..44a76158b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -30,12 +30,14 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
- Aggiunto export massivo XML fatture
- Aggiunte le impostazioni "Riferimento dei documenti nelle stampe" e "Riferimento dei documenti in Fattura Elettronica" per permettere l'inclusione o meno delle relative diciture in stampe e Fattura Elettronica
- Aggiunto supporto all'importazione delle Fatture Elettroniche Semplificate
+ - Aggiunto modulo **Stato dei servizi** per la gestione di widget e moduli, e la visualizzazione dello spazione occupato
### Modificato (Changed)
- Corretto calcolo marca da bollo contemplando solo le righe con esenzione iva da natura N1 a N4
- Aggiornati stylesheet per le notifiche fattura elettronica
- Possibilità di ricercare per valori maggiori/uguali o minori/uguali sui campi delle tabelle (importi)
+ - Spostamento della gestione di widget e moduli da **Aggiornamenti** al modulo **Stato dei servizi**
### Fixed
diff --git a/include/top.php b/include/top.php
index fb40abeef..bd5a1f2a4 100644
--- a/include/top.php
+++ b/include/top.php
@@ -100,7 +100,7 @@ if (Auth::check()) {
id_module: \''.$id_module.'\',
id_record: \''.$id_record.'\',
- aggiornamenti_id: \''.($dbo->isInstalled() ? Modules::get('Aggiornamenti')['id'] : '').'\',
+ order_manager_id: \''.($dbo->isInstalled() ? Modules::get('Stato dei serivizi')['id'] : '').'\',
cifre_decimali: '.setting('Cifre decimali per importi').',
diff --git a/lib/functions.js b/lib/functions.js
index 4d1e369ed..8c910c44e 100644
--- a/lib/functions.js
+++ b/lib/functions.js
@@ -210,7 +210,7 @@ $(document).ready(function () {
stop: function (event, ui) {
var order = $(this).sortable('toArray').toString();
- $.post(globals.rootdir + "/actions.php?id_module=" + globals.aggiornamenti_id, {
+ $.post(globals.rootdir + "/actions.php?id_module=" + globals.order_manager_id, {
op: 'sortmodules',
ids: order
});
@@ -419,7 +419,7 @@ function start_widgets($widgets) {
var new_class = "";
var order = $(this).sortable('toArray').toString();
- $.post(globals.rootdir + "/actions.php?id_module=" + globals.aggiornamenti_id, {
+ $.post(globals.rootdir + "/actions.php?id_module=" + globals.order_manager_id, {
op: 'updatewidget',
location: dst_list,
id_module: globals.id_module,
@@ -428,7 +428,7 @@ function start_widgets($widgets) {
id: ui.item.attr('id')
});
- $.post(globals.rootdir + "/actions.php?id_module=" + globals.aggiornamenti_id, {
+ $.post(globals.rootdir + "/actions.php?id_module=" + globals.order_manager_id, {
op: 'sortwidget',
location: dst_list,
ids: order,
diff --git a/modules/aggiornamenti/actions.php b/modules/aggiornamenti/actions.php
index 14d9500ba..46f11f0a5 100644
--- a/modules/aggiornamenti/actions.php
+++ b/modules/aggiornamenti/actions.php
@@ -20,167 +20,7 @@ switch (filter('op')) {
break;
case 'upload':
- include $docroot.'/modules/aggiornamenti/upload_modules.php';
-
- break;
-
- case 'uninstall':
- if (!empty($id)) {
- // Leggo l'id del modulo
- $rs = $dbo->fetchArray('SELECT id, name, directory FROM zz_modules WHERE id='.prepare($id).' AND `default`=0');
- $modulo = $rs[0]['title'];
- $module_dir = $rs[0]['directory'];
-
- if (count($rs) == 1) {
- // Elimino il modulo dal menu
- $dbo->query('DELETE FROM zz_modules WHERE id='.prepare($id).' OR parent='.prepare($id));
-
- $uninstall_script = $docroot.'/modules/'.$module_dir.'/update/uninstall.php';
-
- if (file_exists($uninstall_script)) {
- include_once $uninstall_script;
- }
-
- delete($docroot.'/modules/'.$module_dir.'/');
-
- flash()->info(tr('Modulo _MODULE_ disinstallato!', [
- '_MODULE_' => '"'.$modulo.'"',
- ]));
- }
- }
-
- break;
-
- case 'disable':
- $dbo->query('UPDATE `zz_modules` SET `enabled` = 0 WHERE (`id` = '.prepare($id).' OR `parent` = '.prepare($id).') AND `id` != '.prepare(Modules::get('Aggiornamenti')['id']));
-
- flash()->info(tr('Modulo _MODULE_ disabilitato!', [
- '_MODULE_' => '"'.Modules::get($id)['title'].'"',
- ]));
-
- break;
-
- case 'enable':
- $dbo->query('UPDATE `zz_modules` SET `enabled` = 1 WHERE `id` = '.prepare($id).' OR `parent` = '.prepare($id));
-
- flash()->info(tr('Modulo _MODULE_ abilitato!', [
- '_MODULE_' => '"'.Modules::get($id)['title'].'"',
- ]));
-
- break;
-
- case 'disable_widget':
- $dbo->query('UPDATE zz_widgets SET enabled = 0 WHERE id = '.prepare($id));
-
- $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
- $widget = $rs[0]['name'];
-
- flash()->info(tr('Widget _WIDGET_ disabilitato!', [
- '_WIDGET_' => '"'.$widget.'"',
- ]));
-
- break;
-
- case 'enable_widget':
- $dbo->query('UPDATE zz_widgets SET enabled=1 WHERE id='.prepare($id));
-
- $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
- $widget = $rs[0]['name'];
-
- flash()->info(tr('Widget _WIDGET_ abilitato!', [
- '_WIDGET_' => '"'.$widget.'"',
- ]));
-
- break;
-
- case 'change_position_widget_top':
- $dbo->query("UPDATE zz_widgets SET location='controller_top' WHERE id=".prepare($id));
-
- $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
- $widget = $rs[0]['name'];
-
- flash()->info(tr('Posizione del widget _WIDGET_ aggiornata!', [
- '_WIDGET_' => '"'.$widget.'"',
- ]));
-
- break;
-
- case 'change_position_widget_right':
- $dbo->query("UPDATE zz_widgets SET location='controller_right' WHERE id=".prepare($id));
-
- $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
- $widget = $rs[0]['name'];
-
- flash()->info(tr('Posizione del widget _WIDGET_ aggiornata!', [
- '_WIDGET_' => '"'.$widget.'"',
- ]));
-
- break;
-
- // Ordinamento moduli di primo livello
- case 'sortmodules':
- $rs = $dbo->fetchArray('SELECT id FROM zz_modules WHERE enabled = 1 AND parent IS NULL ORDER BY `order` ASC');
-
- if ($_POST['ids'] != implode(',', array_column($rs, 'id'))) {
- $ids = explode(',', $_POST['ids']);
-
- for ($i = 0; $i < count($ids); ++$i) {
- $dbo->query('UPDATE zz_modules SET `order`='.prepare($i).' WHERE id='.prepare($ids[$i]));
- }
-
- flash()->info(tr('Posizione voci di menù aggiornate!'));
- }
-
- break;
-
- case 'sortwidget':
- $location = post('location');
-
- $location = empty($id_record) ? 'controller_'.$location : 'editor_'.$location;
-
- $rs = $dbo->fetchArray("SELECT CONCAT('widget_', id) AS id FROM zz_widgets WHERE enabled = 1 AND location = ".prepare($location).' AND id_module = '.prepare($id_module).' ORDER BY `order` ASC');
-
- if ($_POST['ids'] != implode(',', array_column($rs, 'id'))) {
- $ids = explode(',', $_POST['ids']);
-
- for ($i = 0; $i < count($ids); ++$i) {
- $id = explode('_', $ids[$i]);
- $dbo->query('UPDATE zz_widgets SET `order`='.prepare($i).' WHERE id='.prepare($id[1]));
- }
-
- flash()->info(tr('Posizioni widgets aggiornate!'));
- }
- break;
-
- case 'updatewidget':
- $location = post('location');
- $class = post('class');
- $id = explode('_', post('id'));
-
- $location = empty($id_record) ? 'controller_'.$location : 'editor_'.$location;
-
- if (!empty($class)) {
- $dbo->query('UPDATE zz_widgets SET class='.prepare($class).' WHERE id='.prepare($id[1]));
- }
-
- break;
-
- case 'size':
-
- $folder = filter('folder');
-
- if (!empty($folder)){
- if ($folder=='backup')
- $folder = App::getConfig()['backup_dir'];
- else if ($folder=='files')
- $folder = DOCROOT.'/files/';
- else if ($folder=='logs')
- $folder = DOCROOT.'/logs/';
- }else{
- $folder = DOCROOT.'/';
- }
-
- echo Util\FileSystem::size($folder);
+ include DOCROOT.'/modules/aggiornamenti/upload_modules.php';
break;
}
diff --git a/modules/aggiornamenti/edit.php b/modules/aggiornamenti/edit.php
index 0376057d2..62d4191d5 100644
--- a/modules/aggiornamenti/edit.php
+++ b/modules/aggiornamenti/edit.php
@@ -186,102 +186,6 @@ function search(button) {
';
}
-// Elenco moduli installati
-echo '
-
-
-
'.tr('Moduli installati').'
-
-
- '.tr('Nome').'
- '.tr('Versione').'
- '.tr('Stato').'
- '.tr('Compatibilità').'
- '.tr('Opzioni').'
- ';
-
-$modules = Modules::getHierarchy();
-
-$osm_version = Update::getVersion();
-
-echo submodules($modules);
-
-echo '
-
-
';
-
-// Widgets
-echo '
-
-
'.tr('Widgets').'
-
-
- '.tr('Nome').'
- '.tr('Posizione').'
- '.tr('Stato').'
- '.tr('Posizione').'
- ';
-
-$widgets = $dbo->fetchArray('SELECT zz_widgets.id, zz_widgets.name AS widget_name, zz_modules.name AS module_name, zz_widgets.enabled AS enabled, location FROM zz_widgets INNER JOIN zz_modules ON zz_widgets.id_module=zz_modules.id ORDER BY `id_module` ASC, `zz_widgets`.`order` ASC');
-
-$previous = '';
-
-foreach ($widgets as $widget) {
- // Nome modulo come titolo sezione
- if ($widget['module_name'] != $previous) {
- echo '
-
- '.$widget['module_name'].'
- ';
- }
-
- // STATO
- if ($widget['enabled']) {
- $stato = ' ';
- $class = 'success';
- } else {
- $stato = ' ';
- $class = 'warning';
- }
-
- // Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
- if ($widget['enabled']) {
- $stato = "".$stato." \n";
- } else {
- $stato = "".$stato." \n";
- }
-
- // POSIZIONE
- if ($widget['location'] == 'controller_top') {
- $location = tr('Schermata modulo in alto');
- } elseif ($widget['location'] == 'controller_right') {
- $location = tr('Schermata modulo a destra');
- }
-
- if ($widget['location'] == 'controller_right') {
- $posizione = " ";
- $posizione = "".$posizione." \n";
- } elseif ($widget['location'] == 'controller_top') {
- $posizione = " ';
- $posizione = "".$posizione." \n";
- }
-
- echo '
-
- '.$widget['widget_name'].'
- '.$location.'
- '.$stato.'
- '.$posizione.'
- ';
-
- $previous = $widget['module_name'];
-}
-
-echo '
-
-
-
';
-
// Requisiti
echo '
diff --git a/modules/aggiornamenti/modutil.php b/modules/aggiornamenti/modutil.php
index 52543e23a..be79cbfca 100644
--- a/modules/aggiornamenti/modutil.php
+++ b/modules/aggiornamenti/modutil.php
@@ -1,83 +1,5 @@
';
- } else {
- $stato = ' ';
- $class = 'warning';
- }
-
- // Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
- if ($sub['id'] != $id_module) {
- if ($sub['enabled']) {
- $stato = "".$stato." \n";
- } else {
- $stato = "".$stato." \n";
- }
- }
-
- // COMPATIBILITA'
- // Controllo per ogni versione se la regexp combacia per dire che è compatibile o meno
- $compatibilities = explode(',', $sub['compatibility']);
-
- $comp = false;
- foreach ($compatibilities as $compatibility) {
- $comp = (preg_match('/'.$compatibility.'/', $osm_version)) ? true : $comp;
- }
-
- if ($comp) {
- $compatible = ' ';
- ($sub['enabled']) ? $class = 'success' : $class = 'warning';
- } else {
- $compatible = ' ';
- $class = 'danger';
- }
-
- $result .= '
-
- '.str_repeat(' ', $depth * 4).'- '.$sub['title'].'
- '.$sub['version'].'
- '.$stato.'
- '.$compatible.' ';
-
- $result .= '
- ';
-
- // Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti
- if (empty($sub['default'])) {
- $result .= "
-
-
- ";
- } else {
- $result .= "
-
-
- ";
- }
-
- $result .= '
-
- ';
-
- $result .= submodules($sub['all_children'], $depth + 1);
- }
-
- return $result;
-}
-
/**
* Controlla se il database presenta alcune sezioni personalizzate.
*
diff --git a/modules/aggiornamenti/widgets/spazio_utilizzato.php b/modules/aggiornamenti/widgets/spazio_utilizzato.php
deleted file mode 100644
index 21ef47277..000000000
--- a/modules/aggiornamenti/widgets/spazio_utilizzato.php
+++ /dev/null
@@ -1,119 +0,0 @@
-';
-
-// Operazioni JavaScript
-echo '
-';
-
-
-echo '
-
-
- '.tr('SPAZIO UTILIZZATO: _SPAZIO_', [
- '_SPAZIO_' => ' ',
- ]).'
- '.tr('BACKUP: _SPAZIO_BACKUP_', [
- '_SPAZIO_BACKUP_' => ' ',
- ]).'
- '.tr('ALLEGATI: _SPAZIO_FILES_', [
- '_SPAZIO_FILES_' => ' ',
- ]).'
- '.tr('LOGS: _SPAZIO_LOGS_', [
- '_SPAZIO_LOGS_' => ' ',
- ]).'
-
-
-
-
-
-
-
-';
-
-?>
-
diff --git a/modules/stato_servizi/actions.php b/modules/stato_servizi/actions.php
new file mode 100644
index 000000000..47963ff3c
--- /dev/null
+++ b/modules/stato_servizi/actions.php
@@ -0,0 +1,174 @@
+fetchArray('SELECT id, name, directory FROM zz_modules WHERE id='.prepare($id).' AND `default`=0');
+ $modulo = $rs[0]['title'];
+ $module_dir = $rs[0]['directory'];
+
+ if (count($rs) == 1) {
+ // Elimino il modulo dal menu
+ $dbo->query('DELETE FROM zz_modules WHERE id='.prepare($id).' OR parent='.prepare($id));
+
+ $uninstall_script = DOCROOT.'/modules/'.$module_dir.'/update/uninstall.php';
+
+ if (file_exists($uninstall_script)) {
+ include_once $uninstall_script;
+ }
+
+ delete(DOCROOT.'/modules/'.$module_dir.'/');
+
+ flash()->info(tr('Modulo "_MODULE_" disinstallato!', [
+ '_MODULE_' => $modulo,
+ ]));
+ }
+ }
+
+ break;
+
+ case 'disable':
+ $dbo->query('UPDATE `zz_modules` SET `enabled` = 0 WHERE (`id` = '.prepare($id).' OR `parent` = '.prepare($id).') AND `id` != '.prepare(Modules::get('Stato dei servizi')['id']));
+
+ flash()->info(tr('Modulo "_MODULE_" disabilitato!', [
+ '_MODULE_' => Modules::get($id)['title'],
+ ]));
+
+ break;
+
+ case 'enable':
+ $dbo->query('UPDATE `zz_modules` SET `enabled` = 1 WHERE `id` = '.prepare($id).' OR `parent` = '.prepare($id));
+
+ flash()->info(tr('Modulo "_MODULE_" abilitato!', [
+ '_MODULE_' => Modules::get($id)['title'],
+ ]));
+
+ break;
+
+ case 'disable_widget':
+ $dbo->query('UPDATE zz_widgets SET enabled = 0 WHERE id = '.prepare($id));
+
+ $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
+ $widget = $rs[0]['name'];
+
+ flash()->info(tr('Widget "_WIDGET_" disabilitato!', [
+ '_WIDGET_' => $widget,
+ ]));
+
+ break;
+
+ case 'enable_widget':
+ $dbo->query('UPDATE zz_widgets SET enabled=1 WHERE id='.prepare($id));
+
+ $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
+ $widget = $rs[0]['name'];
+
+ flash()->info(tr('Widget "_WIDGET_" abilitato!', [
+ '_WIDGET_' => $widget,
+ ]));
+
+ break;
+
+ case 'change_position_widget_top':
+ $dbo->query("UPDATE zz_widgets SET location='controller_top' WHERE id=".prepare($id));
+
+ $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
+ $widget = $rs[0]['name'];
+
+ flash()->info(tr('Posizione del widget "_WIDGET_" aggiornata!', [
+ '_WIDGET_' => $widget,
+ ]));
+
+ break;
+
+ case 'change_position_widget_right':
+ $dbo->query("UPDATE zz_widgets SET location='controller_right' WHERE id=".prepare($id));
+
+ $rs = $dbo->fetchArray('SELECT id, name FROM zz_widgets WHERE id='.prepare($id));
+ $widget = $rs[0]['name'];
+
+ flash()->info(tr('Posizione del widget "_WIDGET_" aggiornata!', [
+ '_WIDGET_' => $widget,
+ ]));
+
+ break;
+
+ // Ordinamento moduli di primo livello
+ case 'sortmodules':
+ $rs = $dbo->fetchArray('SELECT id FROM zz_modules WHERE enabled = 1 AND parent IS NULL ORDER BY `order` ASC');
+
+ if ($_POST['ids'] != implode(',', array_column($rs, 'id'))) {
+ $ids = explode(',', $_POST['ids']);
+
+ for ($i = 0; $i < count($ids); ++$i) {
+ $dbo->query('UPDATE zz_modules SET `order`='.prepare($i).' WHERE id='.prepare($ids[$i]));
+ }
+
+ flash()->info(tr('Posizione delle voci di menù aggiornata!'));
+ }
+
+ break;
+
+ case 'sortwidget':
+ $location = post('location');
+
+ $location = empty($id_record) ? 'controller_'.$location : 'editor_'.$location;
+
+ $rs = $dbo->fetchArray("SELECT CONCAT('widget_', id) AS id FROM zz_widgets WHERE enabled = 1 AND location = ".prepare($location).' AND id_module = '.prepare($id_module).' ORDER BY `order` ASC');
+
+ if ($_POST['ids'] != implode(',', array_column($rs, 'id'))) {
+ $ids = explode(',', $_POST['ids']);
+
+ for ($i = 0; $i < count($ids); ++$i) {
+ $id = explode('_', $ids[$i]);
+ $dbo->query('UPDATE zz_widgets SET `order`='.prepare($i).' WHERE id='.prepare($id[1]));
+ }
+
+ flash()->info(tr('Posizioni widgets aggiornate!'));
+ }
+ break;
+
+ case 'updatewidget':
+ $location = post('location');
+ $class = post('class');
+ $id = explode('_', post('id'));
+
+ $location = empty($id_record) ? 'controller_'.$location : 'editor_'.$location;
+
+ if (!empty($class)) {
+ $dbo->query('UPDATE zz_widgets SET class='.prepare($class).' WHERE id='.prepare($id[1]));
+ }
+
+ break;
+
+ case 'sizes':
+ $results = [];
+
+ $backup_dir = App::getConfig()['backup_dir'];
+
+ $dirs = [
+ $backup_dir => tr('Backup'),
+ 'files' => tr('Allegati'),
+ 'logs' => tr('Logs'),
+ ];
+
+ foreach ($dirs as $dir => $description) {
+ $size = FileSystem::folderSize($dir);
+ $results[] = [
+ 'description' => $description,
+ 'size' => $size,
+ 'formattedSize' => FileSystem::formatBytes($size),
+ ];
+ }
+
+ echo json_encode($results);
+
+ break;
+}
diff --git a/modules/stato_servizi/edit.php b/modules/stato_servizi/edit.php
new file mode 100644
index 000000000..03eddffba
--- /dev/null
+++ b/modules/stato_servizi/edit.php
@@ -0,0 +1,97 @@
+
+
+
'.tr('Moduli installati').'
+
+
+ '.tr('Nome').'
+ '.tr('Versione').'
+ '.tr('Stato').'
+ '.tr('Compatibilità').'
+ '.tr('Opzioni').'
+ ';
+
+$modules = Modules::getHierarchy();
+
+$osm_version = Update::getVersion();
+
+echo submodules($modules);
+
+echo '
+
+
';
+
+// Widgets
+echo '
+
+
'.tr('Widgets').'
+
+
+ '.tr('Nome').'
+ '.tr('Posizione').'
+ '.tr('Stato').'
+ '.tr('Posizione').'
+ ';
+
+$widgets = $dbo->fetchArray('SELECT zz_widgets.id, zz_widgets.name AS widget_name, zz_modules.name AS module_name, zz_widgets.enabled AS enabled, location FROM zz_widgets INNER JOIN zz_modules ON zz_widgets.id_module=zz_modules.id ORDER BY `id_module` ASC, `zz_widgets`.`order` ASC');
+
+$previous = '';
+
+foreach ($widgets as $widget) {
+ // Nome modulo come titolo sezione
+ if ($widget['module_name'] != $previous) {
+ echo '
+
+ '.$widget['module_name'].'
+ ';
+ }
+
+ // STATO
+ if ($widget['enabled']) {
+ $stato = ' ';
+ $class = 'success';
+ } else {
+ $stato = ' ';
+ $class = 'warning';
+ }
+
+ // Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
+ if ($widget['enabled']) {
+ $stato = "".$stato." \n";
+ } else {
+ $stato = "".$stato." \n";
+ }
+
+ // POSIZIONE
+ if ($widget['location'] == 'controller_top') {
+ $location = tr('Schermata modulo in alto');
+ } elseif ($widget['location'] == 'controller_right') {
+ $location = tr('Schermata modulo a destra');
+ }
+
+ if ($widget['location'] == 'controller_right') {
+ $posizione = " ";
+ $posizione = "".$posizione." \n";
+ } elseif ($widget['location'] == 'controller_top') {
+ $posizione = " ';
+ $posizione = "".$posizione." \n";
+ }
+
+ echo '
+
+ '.$widget['widget_name'].'
+ '.$location.'
+ '.$stato.'
+ '.$posizione.'
+ ';
+
+ $previous = $widget['module_name'];
+}
+
+echo '
+
+
+';
diff --git a/modules/stato_servizi/modutil.php b/modules/stato_servizi/modutil.php
new file mode 100644
index 000000000..4422cfd86
--- /dev/null
+++ b/modules/stato_servizi/modutil.php
@@ -0,0 +1,79 @@
+';
+ } else {
+ $stato = ' ';
+ $class = 'warning';
+ }
+
+ // Possibilità di disabilitare o abilitare i moduli tranne quello degli aggiornamenti
+ if ($sub['id'] != $id_module) {
+ if ($sub['enabled']) {
+ $stato = "".$stato." \n";
+ } else {
+ $stato = "".$stato." \n";
+ }
+ }
+
+ // COMPATIBILITA'
+ // Controllo per ogni versione se la regexp combacia per dire che è compatibile o meno
+ $compatibilities = explode(',', $sub['compatibility']);
+
+ $comp = false;
+ foreach ($compatibilities as $compatibility) {
+ $comp = (preg_match('/'.$compatibility.'/', $osm_version)) ? true : $comp;
+ }
+
+ if ($comp) {
+ $compatible = ' ';
+ ($sub['enabled']) ? $class = 'success' : $class = 'warning';
+ } else {
+ $compatible = ' ';
+ $class = 'danger';
+ }
+
+ $result .= '
+
+ '.str_repeat(' ', $depth * 4).'- '.$sub['title'].'
+ '.$sub['version'].'
+ '.$stato.'
+ '.$compatible.' ';
+
+ $result .= '
+ ';
+
+ // Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti
+ if (empty($sub['default'])) {
+ $result .= "
+
+
+ ";
+ } else {
+ $result .= "
+
+
+ ";
+ }
+
+ $result .= '
+
+ ';
+
+ $result .= submodules($sub['all_children'], $depth + 1);
+ }
+
+ return $result;
+}
diff --git a/modules/stato_servizi/widgets/spazio_utilizzato.php b/modules/stato_servizi/widgets/spazio_utilizzato.php
new file mode 100644
index 000000000..7aa41f11d
--- /dev/null
+++ b/modules/stato_servizi/widgets/spazio_utilizzato.php
@@ -0,0 +1,86 @@
+';
+
+// Operazioni JavaScript
+echo '
+
+
+
+
+
';
diff --git a/src/HTMLBuilder/Manager/WidgetManager.php b/src/HTMLBuilder/Manager/WidgetManager.php
index 97fe31e27..3fe44d655 100644
--- a/src/HTMLBuilder/Manager/WidgetManager.php
+++ b/src/HTMLBuilder/Manager/WidgetManager.php
@@ -59,6 +59,11 @@ class WidgetManager implements ManagerInterface
return $result;
}
+ protected static function getModule()
+ {
+ return \Modules::get('Stato dei servizi');
+ }
+
protected function prints($widget)
{
return $this->stats($widget);
@@ -88,7 +93,7 @@ class WidgetManager implements ManagerInterface
// Generazione del codice HTML
$result = '
-
+
× '.tr('Chiudi').'
';
@@ -153,7 +158,7 @@ class WidgetManager implements ManagerInterface
protected function custom($widget)
{
$result = '
-
+
× '.tr('Chiudi').'
';
diff --git a/update/2_4_9.sql b/update/2_4_9.sql
index 5657d92c8..f6c4f1457 100644
--- a/update/2_4_9.sql
+++ b/update/2_4_9.sql
@@ -295,6 +295,9 @@ INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`
-- Aggiunta ore rimanenti nel contratto per preavviso rinnovo
ALTER TABLE `co_contratti` ADD `ore_preavviso_rinnovo` INT(11) NULL AFTER `giorni_preavviso_rinnovo`;
+-- Moduli Stato dei servizi
+INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Stato dei servizi', 'Stato dei servizi', 'stato_servizi', 'custom', '', 'fa fa-clock-o', '2.4.9', '2.4.9', '1', NULL, '1', '1');
+UPDATE `zz_modules` `t1` INNER JOIN `zz_modules` `t2` ON (`t1`.`name` = 'Stato dei servizi' AND `t2`.`name` = 'Strumenti') SET `t1`.`parent` = `t2`.`id`;
-- Widget spazio utilizzato
-INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`, `help`) VALUES (NULL, 'Spazio utilizzato', 'chart', (SELECT id FROM zz_modules WHERE name = 'Aggiornamenti'), 'controller_right', 'col-md-12', NULL, '#4ccc4c', 'fa fa-hdd-o', '', '', NULL, './modules/aggiornamenti/widgets/spazio_utilizzato.php', 'Spazio utilizzato', '1', '1', NULL);
+INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`, `help`) VALUES (NULL, 'Spazio utilizzato', 'chart', (SELECT id FROM zz_modules WHERE name = 'Stato dei servizi'), 'controller_right', 'col-md-12', NULL, '#4ccc4c', 'fa fa-hdd-o', '', '', NULL, './modules/stato_servizi/widgets/spazio_utilizzato.php', 'Spazio utilizzato', '1', '1', NULL);