Introduzione SpaceHook per notifica spazio utilizzato in relazione ad un eventuale SoftQuota
This commit is contained in:
parent
9bd8dc8647
commit
8dfee3d952
|
@ -574,10 +574,11 @@ if (!Auth::check() && (!empty($messages['info']) || !empty($messages['warning'])
|
||||||
}
|
}
|
||||||
|
|
||||||
//Se la mia installazione supera una data dimensione visualizzo un messaggio
|
//Se la mia installazione supera una data dimensione visualizzo un messaggio
|
||||||
if (!empty(setting('Soft quota'))){
|
$osm_size = $dbo->fetchOne('SELECT content FROM zz_cache WHERE name = "Spazio utilizzato"')['content'];
|
||||||
|
if (!empty(setting('Soft quota')) && !empty($osm_size)){
|
||||||
|
|
||||||
// Controllo sullo spazio disponibile
|
// Controllo sullo spazio disponibile
|
||||||
$osm_size = disk_free_space('.');
|
//$osm_size = disk_free_space('.');
|
||||||
//$osm_size = FileSystem::folderSize(base_dir(), ['htaccess']);
|
//$osm_size = FileSystem::folderSize(base_dir(), ['htaccess']);
|
||||||
|
|
||||||
$soft_quota = setting('Soft quota'); //MB
|
$soft_quota = setting('Soft quota'); //MB
|
||||||
|
|
|
@ -0,0 +1,89 @@
|
||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
|
||||||
|
* Copyright (C) DevCode s.n.c.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Modules\StatoServizi;
|
||||||
|
|
||||||
|
use Util\FileSystem;
|
||||||
|
use Hooks\CachedManager;
|
||||||
|
use Modules;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hook dedicato all'individuazione di nuove versioni del gestionale, pubblicate sulla repository ufficiale di GitHub.
|
||||||
|
*/
|
||||||
|
class SpaceHook extends CachedManager
|
||||||
|
{
|
||||||
|
|
||||||
|
public function getCacheName()
|
||||||
|
{
|
||||||
|
return 'Spazio utilizzato';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function cacheData()
|
||||||
|
{
|
||||||
|
return self::isAvailable();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function response()
|
||||||
|
{
|
||||||
|
$osm_size = $this->getCache()->content;
|
||||||
|
|
||||||
|
$osm_size = FileSystem::folderSize(base_dir(), ['htaccess']);
|
||||||
|
$soft_quota = setting('Soft quota'); //MB
|
||||||
|
$space_limit = ($soft_quota / 100)*95; //MB
|
||||||
|
|
||||||
|
$message = tr("Attenzione: occupati _TOT_ dei _SOFTQUOTA_ previsti", [
|
||||||
|
'_TOT_' => FileSystem::formatBytes($osm_size),
|
||||||
|
'_SOFTQUOTA_' => FileSystem::formatBytes($soft_quota * 1048576),
|
||||||
|
|
||||||
|
]);
|
||||||
|
|
||||||
|
return [
|
||||||
|
'icon' => 'fa fa-database text-warning',
|
||||||
|
'message' => $message,
|
||||||
|
'show' => ($osm_size > $space_limit),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Controlla se è disponibile un aggiornamento nella repository GitHub.
|
||||||
|
*
|
||||||
|
* @return string|bool
|
||||||
|
*/
|
||||||
|
public static function isAvailable()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!empty(setting('Soft quota'))){
|
||||||
|
|
||||||
|
$osm_size = FileSystem::folderSize(base_dir(), ['htaccess']);
|
||||||
|
|
||||||
|
$soft_quota = setting('Soft quota'); //MB
|
||||||
|
$space_limit = ($soft_quota / 100)*95; //MB
|
||||||
|
|
||||||
|
if ($osm_size > ($space_limit * 1048576)) {
|
||||||
|
return $osm_size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -50,5 +50,10 @@ ALTER TABLE `zz_widgets` CHANGE `query` `query` TEXT NULL;
|
||||||
ALTER TABLE `zz_widgets` CHANGE `text` `text` TEXT NULL;
|
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());
|
Loading…
Reference in New Issue