<?php

/* * ********************************************************************
 * Wordpress_Manager Product developed. (Dec 11, 2017)
 * *
 *
 *  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\ProxmoxAddon\App\UI\ServerGroup\Forms;

use MGProvision\Proxmox\v2\ProxmoxApiException;
use ModulesGarden\ProxmoxAddon\App\UI\ServerGroup\Providers\ServerGroupProvider;
use ModulesGarden\ProxmoxAddon\Core\UI\Helpers\AlertTypesConstants;
use ModulesGarden\ProxmoxAddon\Core\UI\Interfaces\AdminArea;
use ModulesGarden\ProxmoxAddon\Core\UI\Widget\Forms\BaseForm;
use ModulesGarden\ProxmoxAddon\Core\UI\Widget\Forms\Fields;

/**
 * Description of CreateForm
 *
 * @author Pawel Kopec <pawelk@modulesgarden.com>
 */
class CreateForm extends BaseForm implements AdminArea
{

    public function initContent()
    {
        $this->initIds('createForm');
        $this->setFormType('create');
        $this->setProvider(new ServerGroupProvider);
        $this->initFields();
    }

    protected function initFields()
    {
        try{
            //Server Id
            $this->addField(new Fields\Hidden('server_id'));
            //id
            $this->addField(new Fields\Hidden('id'));
            //name
            $field = new Fields\Text('name');
            $field->notEmpty();
            $this->addField($field);
            //node
            $field = new Fields\Select('node');
            $field->enableMultiple()
                ->notEmpty();
            $this->addField($field);
            $this->loadDataToForm();
        }catch (ProxmoxApiException $ex){
            $this->setInternalAlertMessage($ex->getMessage())->setInternalAlertMessageType(AlertTypesConstants::DANGER);
        }
    }

    protected function getDefaultActions()
    {
        return ['create'];
    }
}
