Forms.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxVps\Core\UI\Traits;
  3. use \ModulesGarden\Servers\ProxmoxVps\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. * Forms List
  13. * @var Array
  14. */
  15. protected $forms = [];
  16. /**
  17. * Adds Form object to forms list
  18. * @return $this
  19. */
  20. public function addForm(FormInterface $form) {
  21. $form->setMainContainer($this->mainContainer);
  22. $this->forms[$form->getId()] = $form;
  23. if ($form instanceof \ModulesGarden\Servers\ProxmoxVps\Core\UI\Interfaces\AjaxElementInterface) {
  24. $this->mainContainer->addAjaxElement($form);
  25. }
  26. return $this;
  27. }
  28. /**
  29. * Returns Form object by form id
  30. * @return Form object
  31. */
  32. public function getForm($formId){
  33. return $this->forms[$formId];
  34. }
  35. /**
  36. * Returns Form objects array
  37. * @return array
  38. */
  39. public function getForms() {
  40. return $this->forms;
  41. }
  42. }