http://modulesgarden.com * CONTACT -> contact@modulesgarden.com * * * This software is furnished under a license and may be used and copied * only in accordance with the terms of such license and with the * inclusion of the above copyright notice. This software or any other * copies thereof may not be provided or otherwise made available to any * other person. No title to and ownership of the software is hereby * transferred. * * * ******************************************************************** */ namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\MountPoint\Buttons; use ModulesGarden\ProxmoxAddon\App\Services\ApiService; use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\ResponseTemplates\DataJsonResponse; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Buttons\ButtonSwitchAjax; class BackupSwitchButton extends ButtonSwitchAjax implements ClientArea { use ApiService; use ProductService; protected $switchColumn = 'backup'; protected $id = 'backupSwitchButton'; protected $name = 'backupSwitchButton'; protected $refreshActionIds = 'mountPointDataTable'; public function initContent() { parent::initContent(); $this->addHtmlAttribute(':disabled', 'dataRow.master == true'); if (!$this->configuration()->isPermissionMountPointBackup()) { $this->addHtmlAttribute('disabled', ''); } } public function returnAjaxData() { try { $this->acl()->backup(); $vm = \ModulesGarden\ProxmoxAddon\Core\Helper\sl('Vm')->getVm(); $hdd = $vm->getMounPoints()->findMountPointById($this->getRequestValue('actionElementId')); $hdd->setBackup($this->getRequestValue("value") == "on" ? 1 : null); $hdd->update(); } catch (\Exception $exc) { return (new DataJsonResponse())->setStatusError()->setMessage($exc->getMessage())->setCallBackFunction($this->callBackFunction)->addRefreshTargetId($this->refreshActionIds); } return (new DataJsonResponse())->setMessageAndTranslate('changesSaved')->setCallBackFunction($this->callBackFunction)->addRefreshTargetId($this->refreshActionIds); } }