CloudInitScriptProvider.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace ModulesGarden\ProxmoxAddon\App\UI\CloudInitScriptCreate\Providers;
  3. use ModulesGarden\ProxmoxAddon\App\Models\CloudInitScript;
  4. use ModulesGarden\ProxmoxAddon\Core\UI\ResponseTemplates\HtmlDataJsonResponse;
  5. use ModulesGarden\ProxmoxAddon\Core\UI\Widget\Forms\DataProviders\BaseModelDataProvider;
  6. use function ModulesGarden\ProxmoxAddon\Core\Helper\sl;
  7. class CloudInitScriptProvider extends BaseModelDataProvider
  8. {
  9. /**
  10. * CloudInitScriptProvider constructor.
  11. * @param string $model
  12. */
  13. public function __construct()
  14. {
  15. parent::__construct(CloudInitScript::class);
  16. }
  17. public function read()
  18. {
  19. $this->actionElementId = $this->getRequestValue('id');
  20. return parent::read(); // TODO: Change the autogenerated stub
  21. }
  22. public function create()
  23. {
  24. parent::create();
  25. sl('lang')->addReplacementConstant('name', $this->formData['name']);
  26. return (new HtmlDataJsonResponse(['id' => $this->model->id]))
  27. ->setMessageAndTranslate('Cloud-Init Script :name: has been added successfully')
  28. ->setCallBackFunction('pkOnCloudInitScriptCreatedAjaxDone');
  29. }
  30. public function update()
  31. {
  32. $enable = $this->formData['enable'] == 'on' ? '1' : '0';
  33. $this->formData['enable'] = $enable;
  34. if (!$this->formData['id'])
  35. {
  36. return $this->create();
  37. }
  38. parent::update();
  39. sl('lang')->addReplacementConstant('name', $this->formData['name']);
  40. return (new HtmlDataJsonResponse(['id' => $this->model->id]))->setMessageAndTranslate('Cloud-Init Script :name: has been updated successfully');
  41. }
  42. }