diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php index 2102a662e..c241599d7 100644 --- a/airtime_mvc/application/controllers/LibraryController.php +++ b/airtime_mvc/application/controllers/LibraryController.php @@ -356,6 +356,7 @@ class LibraryController extends Zend_Controller_Action if (isset($file)) { try { + Application_Model_Preference::updateDiskUsage(-1 * abs(filesize($file->getFilePath()))); $res = $file->delete(); } catch (FileNoPermissionException $e) { $message = $noPermissionMsg; diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index 0bc4fc7ac..749aa8e06 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -1415,4 +1415,24 @@ class Application_Model_Preference public static function GetHistoryFileTemplate() { return self::getValue("history_file_template"); } + + public static function getDiskUsage() + { + return self::getValue("disk_usage"); + } + + public static function setDiskUsage($value) + { + self::setValue("disk_usage", $value); + } + + public static function updateDiskUsage($filesize) + { + $currentDiskUsage = self::getDiskUsage(); + if (empty($currentDiskUsage)) { + $currentDiskUsage = 0; + } + + self::setDiskUsage($currentDiskUsage + $filesize); + } } diff --git a/airtime_mvc/application/modules/rest/controllers/MediaController.php b/airtime_mvc/application/modules/rest/controllers/MediaController.php index 7cd269c28..041178736 100644 --- a/airtime_mvc/application/modules/rest/controllers/MediaController.php +++ b/airtime_mvc/application/modules/rest/controllers/MediaController.php @@ -156,7 +156,8 @@ class Rest_MediaController extends Zend_Rest_Controller //our internal schema. Internally, file path is stored relative to a directory, with the directory //as a foreign key to cc_music_dirs. if ($requestData["full_path"]) { - + Application_Model_Preference::updateDiskUsage(filesize($requestData["full_path"])); + $fullPath = $requestData["full_path"]; $storDir = Application_Model_MusicDir::getStorDir()->getDirectory(); $pos = strpos($fullPath, $storDir); @@ -196,6 +197,7 @@ class Rest_MediaController extends Zend_Rest_Controller $file = CcFilesQuery::create()->findPk($id); if ($file) { $storedFile = Application_Model_StoredFile($file); + Application_Model_Preference::updateDiskUsage(-1 * abs(filesize($storedFile->getFilePath()))); $storedFile->delete(); //TODO: This checks your session permissions... Make it work without a session? $file->delete(); $this->getResponse() @@ -373,5 +375,6 @@ class Rest_MediaController extends Zend_Rest_Controller return $response; } + }