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\Snapshot\Forms; use MGProvision\Proxmox\v2\models\Kvm; use ModulesGarden\ProxmoxAddon\App\Services\ApiService; use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService; use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Snapshot\Providers\SnapshotProvider; use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Validators\SnapshotValidator; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Helpers\AlertTypesConstants; 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\Switcher; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Text; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Forms\Fields\Textarea; class CreateForm extends BaseForm implements ClientArea { use ApiService; use ProductService; public function initContent() { $this->initIds('createSnapshotForm'); $this->setFormType('create'); $this->setProvider(new SnapshotProvider()); $this->setInternalAlertMessage('confirmCreate'); $this->setInternalAlertMessageType(AlertTypesConstants::INFO); $this->initFields(); $this->loadDataToForm(); } public function getAllowedActions() { return ['create']; } private function initFields() { $vm = \ModulesGarden\ProxmoxAddon\Core\Helper\sl('Vm')->getVm(); //name $field = new Text('name'); $field->notEmpty(); $field->addValidator(new SnapshotValidator(true)); $this->addField($field); if ($vm instanceof Kvm) { //vmstate $field = new Switcher("vmstate"); $this->addField($field); } //description $field = new Textarea("description"); $this->addField($field); } }