DNRoot::getDataTransferForm PHP Method

getDataTransferForm() public method

public getDataTransferForm ( SS_HTTPRequest $request = null ) : Form
$request SS_HTTPRequest
return Form
    public function getDataTransferForm(\SS_HTTPRequest $request = null)
    {
        // Performs canView permission check by limiting visible projects
        $envs = $this->getCurrentProject()->DNEnvironmentList()->filterByCallback(function ($item) {
            return $item->canBackup();
        });
        if (!$envs) {
            return $this->environment404Response();
        }
        $items = [];
        $disabledEnvironments = [];
        foreach ($envs as $env) {
            $items[$env->ID] = $env->Title;
            if ($env->CurrentBuild() === false) {
                $items[$env->ID] = sprintf("%s - requires initial deployment", $env->Title);
                $disabledEnvironments[] = $env->ID;
            }
        }
        $envsField = DropdownField::create('EnvironmentID', 'Environment', $items)->setEmptyString('Select an environment');
        $envsField->setDisabledItems($disabledEnvironments);
        $formAction = FormAction::create('doDataTransfer', 'Create')->addExtraClass('btn');
        if (count($disabledEnvironments) === $envs->count()) {
            $formAction->setDisabled(true);
        }
        $form = Form::create($this, 'DataTransferForm', FieldList::create(HiddenField::create('Direction', null, 'get'), $envsField, DropdownField::create('Mode', 'Transfer', DNDataArchive::get_mode_map())), FieldList::create($formAction));
        $form->setFormAction($this->getRequest()->getURL() . '/DataTransferForm');
        return $form;
    }