@@ -41,6 +44,59 @@ echo '
';
+if (\API\Services::isEnabled()) {
+ // Informazioni su Services
+ $servizi = Cache::pool('Informazioni su Services')->content;
+
+ // Elaborazione dei servizi in scadenza
+ $limite_scadenze = (new Carbon())->addDays(60);
+ $servizi_in_scadenza = [];
+ foreach ($servizi as $servizio) {
+ // Gestione per data di scadenza
+ $scadenza = new Carbon($servizio['expiration_at']);
+ if (
+ (isset($servizio['expiration_at']) && $scadenza->lessThan($limite_scadenze))
+ ) {
+ $servizi_in_scadenza[] = $servizio['name'].' ('.$scadenza->diffForHumans().')';
+ } // Gestione per crediti
+ elseif (
+ (isset($servizio['credits']) && $servizio['credits'] < 100)
+ ) {
+ $servizi_in_scadenza[] = $servizio['name'].' ('.$servizio['credits'].' crediti)';
+ }
+ }
+
+ echo '
+
+
+
+
+
+
';
+
+ if (empty($servizi_in_scadenza)) {
+ echo '
+
'.tr('Nessun servizio in scadenza').'
';
+ } else {
+ echo '
+
'.tr('I seguenti servizi sono in scadenza:').'
';
+ foreach ($servizi_in_scadenza as $servizio) {
+ echo '
+ - '.$servizio.'
';
+ }
+ echo '
+
';
+ }
+
+ echo '
+
+
';
+}
+
// Widgets
echo '
diff --git a/modules/stato_servizi/src/ServicesHook.php b/modules/stato_servizi/src/ServicesHook.php
new file mode 100644
index 000000000..0e48988ab
--- /dev/null
+++ b/modules/stato_servizi/src/ServicesHook.php
@@ -0,0 +1,75 @@
+.
+ */
+
+namespace Modules\StatoServizi;
+
+use API\Services;
+use Carbon\Carbon;
+use Hooks\CachedManager;
+
+class ServicesHook extends CachedManager
+{
+ public function getCacheName()
+ {
+ return 'Informazioni su Services';
+ }
+
+ public function cacheData()
+ {
+ $response = Services::request('POST', 'informazioni_servizi');
+ $body = Services::responseBody($response);
+
+ return $body['services'];
+ }
+
+ public function response()
+ {
+ $servizi = $this->getCache()->content;
+
+ // Elaborazione dei servizi in scadenza
+ $limite_scadenze = (new Carbon())->addDays(60);
+ $servizi_in_scadenza = [];
+ foreach ($servizi as $servizio) {
+ // Gestione per data di scadenza
+ $scadenza = new Carbon($servizio['expiration_at']);
+ if (
+ (isset($servizio['expiration_at']) && $scadenza->lessThan($limite_scadenze))
+ ) {
+ $servizi_in_scadenza[] = $servizio['name'].' ('.$scadenza->diffForHumans().')';
+ }
+
+ // Gestione per crediti
+ elseif (
+ (isset($servizio['credits']) && $servizio['credits'] < 100)
+ ) {
+ $servizi_in_scadenza[] = $servizio['name'].' ('.$servizio['credits'].' crediti)';
+ }
+ }
+
+ $message = tr('I seguenti servizi sono in scadenza: _LIST_', [
+ '_LIST_' => implode(', ', $servizi_in_scadenza),
+ ]);
+
+ return [
+ 'icon' => 'fa fa-refresh text-warning',
+ 'message' => $message,
+ 'show' => !empty($servizi_in_scadenza),
+ ];
+ }
+}
diff --git a/modules/stato_servizi/src/SpaceHook.php b/modules/stato_servizi/src/SpaceHook.php
index 0d863054b..ca85d06e9 100644
--- a/modules/stato_servizi/src/SpaceHook.php
+++ b/modules/stato_servizi/src/SpaceHook.php
@@ -22,9 +22,6 @@ namespace Modules\StatoServizi;
use Hooks\CachedManager;
use Util\FileSystem;
-/**
- * Hook dedicato all'individuazione di nuove versioni del gestionale, pubblicate sulla repository ufficiale di GitHub.
- */
class SpaceHook extends CachedManager
{
public function getCacheName()
@@ -46,7 +43,7 @@ class SpaceHook extends CachedManager
$osm_size = $this->getCache()->content;
$soft_quota = setting('Soft quota'); // Impostazione in MB
- $space_limit = ($soft_quota / 100) * 95; // 95% dello spazion indicato
+ $space_limit = ($soft_quota / 100) * 95; // 95% dello spazio indicato
$space_limit = $space_limit * 1024 ^ 2; // Trasformazione in B
$message = tr('Attenzione: occupati _TOT_ dei _QUOTA_ previsti', [
diff --git a/update/2_4_20.sql b/update/2_4_20.sql
index 41d2b3fa2..ef1fa09ea 100644
--- a/update/2_4_20.sql
+++ b/update/2_4_20.sql
@@ -51,9 +51,14 @@ ALTER TABLE `zz_widgets` CHANGE `text` `text` TEXT NULL;
-- Impostazione soft quota
-INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Soft quota', '', 'integer', '0', 'Generali', NULL, 'Soft quota in MB');
+INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Soft quota', '', 'integer', '0', 'Generali', NULL, 'Soft quota in MB');
-- Relativo hook per il calcolo dello spazio utilizzato
INSERT INTO `zz_hooks` (`id`, `name`, `class`, `enabled`, `id_module`, `processing_at`, `processing_token`) VALUES (NULL, 'Spazio', 'Modules\\StatoServizi\\SpaceHook', '1', (SELECT `id` FROM `zz_modules` WHERE `name`='Stato dei servizi'), NULL, NULL);
-INSERT INTO `zz_cache` (`id`, `name`, `content`, `valid_time`, `expire_at`) VALUES (NULL, 'Spazio utilizzato', '', '15 minute', NOW());
\ No newline at end of file
+INSERT INTO `zz_cache` (`id`, `name`, `content`, `valid_time`, `expire_at`) VALUES (NULL, 'Spazio utilizzato', '', '15 minute', NOW());
+
+-- Introduzione hook per informazioni su Services
+INSERT INTO `zz_hooks` (`id`, `name`, `class`, `enabled`, `id_module`, `processing_at`, `processing_token`) VALUES (NULL, 'Informazioni su Services', 'Modules\\StatoServizi\\ServicesHook', '1', (SELECT `id` FROM `zz_modules` WHERE `name`='Stato dei servizi'), NULL, NULL);
+
+INSERT INTO `zz_cache` (`id`, `name`, `content`, `valid_time`, `expire_at`) VALUES (NULL, 'Informazioni su Services', '', '7 days', NOW());