| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- /* * ********************************************************************
- * ProxmoxVPS Product developed. (27.03.19)
- * *
- *
- * CREATED BY MODULESGARDEN -> http://modulesgarden.com
- * CONTACT -> contact@modulesgarden.com
- *
- *
- * This software is furnished under a license and may be used and copied
- * only in accordance with the terms of such license and with the
- * inclusion of the above copyright notice. This software or any other
- * copies thereof may not be provided or otherwise made available to any
- * other person. No title to and ownership of the software is hereby
- * transferred.
- *
- *
- * ******************************************************************** */
- namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Firewall\Forms;
- use ModulesGarden\ProxmoxAddon\App\Services\ApiService;
- use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\BaseForm;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Hidden;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Select;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Switcher;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Text;
- use function ModulesGarden\Servers\ProxmoxCloudVps\Core\Helper\sl;
- class GroupForm extends BaseForm implements ClientArea
- {
- use ApiService;
- use ProductService;
- protected function initFields()
- {
- $vm = \ModulesGarden\ProxmoxAddon\Core\Helper\sl('Vm')->getVm();
- //enable
- $field = new Switcher('enable');
- $this->addField($field);
- //pos
- if ($this->getFormType() == "update")
- {
- $this->addField(new Hidden("pos"));
- }
- //action
- $field = new Select('action');
- $options = [];
- foreach ($this->api()->get("/cluster/firewall/groups", []) as $response)
- {
- $options[$response['group']] = sl("lang")->tr($response['group']);
- }
- $field->setAvailableValues($options);
- $this->addField($field);
- //iface
- $field = new Select('iface');
- $ifaces = [];
- /**
- * @deprecated
- $interfaces = $this->configuration()->getFirewallInterfaces();
- if (in_array("venet", $interfaces))
- {
- $ifaces["venet"] = sl('lang')->tr("venet");
- }
- if (in_array("eth", $interfaces))
- {
- }
- */
- foreach ($vm->getNetworkDevices() as $nd)
- {
- $ifaces[$nd->getId()] = $nd->getId();
- }
- $field->setAvailableValues($ifaces);
- $this->addField($field);
- //comment
- $field = new Text('comment');
- $this->addField($field);
- //type
- $this->addField((new Hidden("type"))->setDefaultValue('group'));
- }
- }
|