Forms.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Traits;
  3. use \ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\FormInterface;
  4. /**
  5. * Forms Elements related functions
  6. * In order to handle Multiple forms inside of modal
  7. *
  8. * @author Sławomir Miśkowicz <slawomir@modulesgarden.com>
  9. */
  10. trait Forms
  11. {
  12. /**
  13. * Forms List
  14. * @var Array
  15. */
  16. protected $forms = [];
  17. /**
  18. * Adds Form object to forms list
  19. * @return $this
  20. */
  21. public function addForm(FormInterface $form)
  22. {
  23. $form->setMainContainer($this->mainContainer);
  24. $this->forms[$form->getId()] = $form;
  25. if ($form instanceof \ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\AjaxElementInterface)
  26. {
  27. $this->mainContainer->addAjaxElement($form);
  28. }
  29. return $this;
  30. }
  31. /**
  32. * Returns Form object by form id
  33. * @return Form object
  34. */
  35. public function getForm($formId)
  36. {
  37. return $this->forms[$formId];
  38. }
  39. /**
  40. * Returns Form objects array
  41. * @return array
  42. */
  43. public function getForms()
  44. {
  45. return $this->forms;
  46. }
  47. }