CloudInitScriptProvider.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. $this->formData['meta'] = trim($this->formData['meta']);
  25. $this->formData['script'] = trim($this->formData['script']);
  26. $this->formData['network'] = trim($this->formData['network']);
  27. parent::create();
  28. sl('lang')->addReplacementConstant('name', $this->formData['name']);
  29. return (new HtmlDataJsonResponse(['id' => $this->model->id]))
  30. ->setMessageAndTranslate('Cloud-Init Script :name: has been added successfully')
  31. ->setCallBackFunction('pkOnCloudInitScriptCreatedAjaxDone');
  32. }
  33. public function update()
  34. {
  35. $this->formData['meta'] = trim($this->formData['meta']);
  36. $this->formData['script'] = trim($this->formData['script']);
  37. $this->formData['network'] = trim($this->formData['network']);
  38. if (!$this->formData['id'])
  39. {
  40. return $this->create();
  41. }
  42. parent::update();
  43. sl('lang')->addReplacementConstant('name', $this->formData['name']);
  44. return (new HtmlDataJsonResponse(['id' => $this->model->id]))->setMessageAndTranslate('Cloud-Init Script :name: has been updated successfully');
  45. }
  46. }