BackupSwitchButton.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /* * ********************************************************************
  3. * ProxmoxVPS Product developed. (27.03.19)
  4. * *
  5. *
  6. * CREATED BY MODULESGARDEN -> http://modulesgarden.com
  7. * CONTACT -> contact@modulesgarden.com
  8. *
  9. *
  10. * This software is furnished under a license and may be used and copied
  11. * only in accordance with the terms of such license and with the
  12. * inclusion of the above copyright notice. This software or any other
  13. * copies thereof may not be provided or otherwise made available to any
  14. * other person. No title to and ownership of the software is hereby
  15. * transferred.
  16. *
  17. *
  18. * ******************************************************************** */
  19. namespace ModulesGarden\Servers\ProxmoxVps\App\UI\Disk\Buttons;
  20. use ModulesGarden\ProxmoxAddon\App\Services\ApiService;
  21. use ModulesGarden\ProxmoxAddon\App\Services\Vps\ProductService;
  22. use ModulesGarden\Servers\ProxmoxVps\Core\UI\Interfaces\ClientArea;
  23. use ModulesGarden\Servers\ProxmoxVps\Core\UI\ResponseTemplates\DataJsonResponse;
  24. use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Buttons\ButtonSwitchAjax;
  25. class BackupSwitchButton extends ButtonSwitchAjax implements ClientArea
  26. {
  27. use ProductService;
  28. use ApiService;
  29. protected $switchColumn = 'backup';
  30. protected $refreshActionIds = 'diskDataTable';
  31. public function initContent()
  32. {
  33. parent::initContent();
  34. $this->addHtmlAttribute(':disabled', 'dataRow.master == true');
  35. if (!$this->configuration()->isPermissionAdditionalDiskBackup())
  36. {
  37. $this->htmlAttributes["disabled"] = "";
  38. }
  39. }
  40. public function returnAjaxData()
  41. {
  42. try
  43. {
  44. $this->acl()->additionalDiskBackup();
  45. $hdd = $this->vm()->findHardDiskById($this->getRequestValue('actionElementId'));
  46. $hdd->setBackup($this->getRequestValue("value") == "on" ? null : 0);
  47. $hdd->update();
  48. }
  49. catch (\Exception $exc)
  50. {
  51. return (new DataJsonResponse())->setStatusError()->setMessage($exc->getMessage())->setCallBackFunction($this->callBackFunction)->addRefreshTargetId($this->refreshActionIds);
  52. }
  53. return (new DataJsonResponse())->setMessageAndTranslate('changesSaved')->setCallBackFunction($this->callBackFunction)->addRefreshTargetId($this->refreshActionIds);
  54. }
  55. }