initIds('additionalDiskSection'); $this->initFields(); $this->loadAdditionalDisks(); } public function initFields() { //size $field = new Text('additionalDiskSize'); $field->addValidator(new DiskSizeValidator('disk',false)); $field->replaceClasses(['lu-col-md-6']); $this->addField($field); //bus if($this->configuration()->isQemu()){ $field = new Select('additionalDiskBus'); $options=[]; foreach( $this->configuration()->getAdditionalDiskType() as $entery){ $options[$entery] = sl("lang")->abtr($entery); } $field->setAvailableValues($options); $field->replaceClasses(['lu-col-md-6']); $this->addField($field); } //format if($this->configuration()->isQemu()){ $field = new Select('additionalDiskFormat'); $options=[]; foreach( $this->configuration()->getAdditionalDiskFormat() as $entery){ $options[$entery] = sl("lang")->abtr($entery); } $field->setAvailableValues($options); $field->replaceClasses(['lu-col-md-6']); $this->addField($field); } if($this->configuration()->isLxc()){ //mp $field = new Text('additionalDiskMp'); $field->setPlaceholder("/some/path"); $field->replaceClasses(['lu-col-md-6']); $this->addField($field); } //backup if ($this->configuration()->isPermissionMountPointBackup()) { $field = new Select('additionalDiskBackup'); $field->setAvailableValues([ 'on' => 'Enable', 'off'=>'Disable', ]); $field->replaceClasses(['lu-col-md-6']); $this->addField($field); } } protected function loadAdditionalDisks(){ $vm = \ModulesGarden\ProxmoxAddon\Core\Helper\sl('Vm')->getVm(); $this->customTplVars['additionalDisks']=[]; foreach ($vm->getHardDiskRepostiory()->fetch() as $disk){ if($disk->isMaster()){ continue; } $this->customTplVars['additionalDisks'][]= [ 'id' => $disk->getId() , 'size' => (int) $disk->getGb(), 'backup'=> $disk->isBackup() ? "on" : "off", 'mp' => $disk instanceof MountPoint ? $disk->getMp() : null ]; } } }