public function __construct($name = null) { parent::__construct($name); $year = $name . '[year]'; $month = $name . '[month]'; $day = $name . '[day]'; $year = Select::create($year, null, true); $month = Select::create($month, null, true); $day = Select::create($day, null, true); $yearOptions = []; for ($i = date('Y') - 100; $i < date('Y'); $i++) { $yearOptions[$i] = $i; } $monthOptions = [1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April', 5 => 'May', 6 => 'June', 7 => 'July', 8 => 'August', 9 => 'September', 10 => 'October', 11 => 'November', 12 => 'December']; $dayOptions = []; for ($i = 1; $i <= 31; $i++) { $dayOptions[$i] = $i; } $year->setOptions($yearOptions); $month->setOptions($monthOptions); $day->setOptions($dayOptions); $this->addField($year); $this->addField($month); $this->addField($day); }
public function testElements() { $e = new Form\Element\Button(); $this->assertTrue($e->validate()); $this->assertTrue(strpos($e->render(), 'button') !== false); $e = new Form\Element\Checkbox(); $e->setCheckedValue('ten'); $this->assertTrue($e->getCheckedValue() == 'ten'); $this->assertTrue(strpos($e->render(), 'checkbox') !== false); $this->assertTrue(strpos($e->render(), 'checked') === false); $e->setValue(true); $this->assertTrue(strpos($e->render(), 'checked') !== false); $e->setValue('ten'); $this->assertTrue(strpos($e->render(), 'checked') !== false); $e->setValue('fail'); $this->assertTrue(strpos($e->render(), 'checked') === false); $e = new Form\Element\CheckboxGroup(); $this->assertTrue(strpos($e->render(), 'group') !== false); $e = new Form\ControlGroup(); $this->assertTrue(strpos($e->render(), 'group') !== false); $e = new Form\Element\Email(); $this->assertTrue(strpos($e->render(), 'email') !== false); $e = new Form\Element\Select(); $e->setOptions(array('key' => 'Val')); $html = $e->render(); $this->assertTrue(strpos($html, 'select') !== false); $this->assertTrue(strpos($html, 'option') !== false); $this->assertTrue(strpos($html, 'key') !== false); $this->assertTrue(strpos($html, 'Val') !== false); $e = new Form\Element\Submit(); $this->assertTrue($e->validate()); $this->assertTrue(strpos($e->render(), 'submit') !== false); $e = new Form\Element\Text(); $e->setValue('test'); $this->assertTrue(strpos($e->render(), 'test') !== false); $e = new Form\Element\TextArea(); $e->setRows(10); $this->assertTrue(strpos($e->render(), '10') !== false); $e = new Form\Element\Url(); $this->assertTrue(strpos($e->render(), 'url') !== false); }
/** * Create add / edit project form. */ protected function projectForm($values, $type = 'add') { $form = new Form(); $form->setMethod('POST'); $form->setAction(PHPCI_URL . 'project/' . $type); $form->addField(new Form\Element\Csrf('csrf')); $form->addField(new Form\Element\Hidden('pubkey')); $options = array('choose' => Lang::get('select_repository_type'), 'github' => Lang::get('github'), 'bitbucket' => Lang::get('bitbucket'), 'gitlab' => Lang::get('gitlab'), 'remote' => Lang::get('remote'), 'local' => Lang::get('local'), 'hg' => Lang::get('hg'), 'svn' => Lang::get('svn')); $field = Form\Element\Select::create('type', Lang::get('where_hosted'), true); $field->setPattern('^(github|bitbucket|gitlab|remote|local|hg|svn)'); $field->setOptions($options); $field->setClass('form-control')->setContainerClass('form-group'); $form->addField($field); $container = new Form\ControlGroup('github-container'); $container->setClass('github-container'); $field = Form\Element\Select::create('github', Lang::get('choose_github'), false); $field->setClass('form-control')->setContainerClass('form-group'); $container->addField($field); $form->addField($container); $field = Form\Element\Text::create('reference', Lang::get('repo_name'), true); $field->setValidator($this->getReferenceValidator($values)); $field->setClass('form-control')->setContainerClass('form-group'); $form->addField($field); $field = Form\Element\Text::create('title', Lang::get('project_title'), true); $field->setClass('form-control')->setContainerClass('form-group'); $form->addField($field); $field = Form\Element\TextArea::create('key', Lang::get('project_private_key'), false); $field->setClass('form-control')->setContainerClass('form-group'); $field->setRows(6); $form->addField($field); $field = Form\Element\TextArea::create('build_config', Lang::get('build_config'), false); $field->setClass('form-control')->setContainerClass('form-group'); $field->setRows(6); $form->addField($field); $field = Form\Element\Text::create('branch', Lang::get('default_branch'), true); $field->setClass('form-control')->setContainerClass('form-group')->setValue('master'); $form->addField($field); $field = Form\Element\Select::create('group_id', 'Project Group', true); $field->setClass('form-control')->setContainerClass('form-group')->setValue(1); $groups = array(); $groupStore = b8\Store\Factory::getStore('ProjectGroup'); $groupList = $groupStore->getWhere(array(), 100, 0, array(), array('title' => 'ASC')); foreach ($groupList['items'] as $group) { $groups[$group->getId()] = $group->getTitle(); } $field->setOptions($groups); $form->addField($field); $field = Form\Element\Checkbox::create('allow_public_status', Lang::get('allow_public_status'), false); $field->setContainerClass('form-group'); $field->setCheckedValue(1); $field->setValue(0); $form->addField($field); $field = Form\Element\Checkbox::create('archived', Lang::get('archived'), false); $field->setContainerClass('form-group'); $field->setCheckedValue(1); $field->setValue(0); $form->addField($field); $field = new Form\Element\Submit(); $field->setValue(Lang::get('save_project')); $field->setContainerClass('form-group'); $field->setClass('btn-success'); $form->addField($field); $form->setValues($values); return $form; }
protected function userForm($values, $type = 'add') { $form = new FormElement(); $form->setMethod('POST'); if ($type == 'add') { $form->setAction($this->config->get('site.full_admin_url') . '/user/add'); } else { $form->setAction($this->config->get('site.full_admin_url') . '/user/edit/' . $values['id']); } $form->setClass('smart-form'); $fieldset = new Form\FieldSet('fieldset'); $form->addField($fieldset); if (isset($values['id'])) { $field = new Form\Element\Hidden('id'); $field->setRequired(true); $field->setValue($values['id']); $fieldset->addField($field); } $field = new Form\Element\Text('name'); $field->setRequired(true); $field->setLabel('Name'); $fieldset->addField($field); $field = new Form\Element\Email('email'); $field->setRequired(true); $field->setLabel('Email Address'); $fieldset->addField($field); $field = new Form\Element\Password('password'); if ($type == 'add') { $field->setRequired(true); } else { $field->setRequired(false); } $field->setLabel('Password' . ($type == 'edit' ? ' (leave blank to keep current password)' : '')); $fieldset->addField($field); if ($this->currentUser->getIsAdmin()) { $field = new Form\Element\Select('is_admin'); $field->setRequired(false); $field->setLabel('Administrator'); $field->setOptions([0 => 'No', 1 => 'Yes']); $fieldset->addField($field); } $data = [&$form, &$values]; Event::trigger('userForm', $data); list($form, $values) = $data; $fieldset = new Form\FieldSet('fieldset3'); $form->addField($fieldset); $field = new Form\Element\Submit(); $field->setValue('Save User'); $field->setClass('btn-success'); $fieldset->addField($field); $form->setValues($values); return $form; }
public function __construct($name = null) { parent::__construct($name); $this->setPattern('(male|female|other)'); $this->setOptions(['male' => 'Male', 'female' => 'Female', 'other' => 'Other']); }
public function __construct($name = null) { parent::__construct($name); $this->setOptions($this->countries); $this->setValue('GB'); }
/** * Get the Basic settings form. * @param array $values * @return Form */ protected function getBasicForm($values = array()) { $form = new Form(); $form->setMethod('POST'); $form->setAction(PHPCI_URL . 'settings/basic'); $field = new Form\Element\Select('language'); $field->setRequired(true); $field->setLabel(Lang::get('language')); $field->setClass('form-control'); $field->setContainerClass('form-group'); $field->setOptions(Lang::getLanguageOptions()); $field->setValue(Lang::getLanguage()); $form->addField($field); $field = new Form\Element\Submit(); $field->setValue(Lang::get('save')); $field->setClass('btn btn-success pull-right'); $form->addField($field); $form->setValues($values); return $form; }
/** * Allows the user to edit their profile. * @return string */ public function profile() { $user = $_SESSION['phpci_user']; if ($this->request->getMethod() == 'POST') { $name = $this->getParam('name', null); $email = $this->getParam('email', null); $password = $this->getParam('password', null); $currentLang = Lang::getLanguage(); $chosenLang = $this->getParam('language', $currentLang); if ($chosenLang !== $currentLang) { setcookie('phpcilang', $chosenLang, time() + 10 * 365 * 24 * 60 * 60, '/'); Lang::setLanguage($chosenLang); } $_SESSION['phpci_user'] = $this->userService->updateUser($user, $name, $email, $password); $user = $_SESSION['phpci_user']; $this->view->updated = 1; } $this->layout->title = $user->getName(); $this->layout->subtitle = Lang::get('edit_profile'); $values = $user->getDataArray(); if (array_key_exists('phpcilang', $_COOKIE)) { $values['language'] = $_COOKIE['phpcilang']; } $form = new Form(); $form->setAction(PHPCI_URL . 'user/profile'); $form->setMethod('POST'); $name = new Form\Element\Text('name'); $name->setClass('form-control'); $name->setContainerClass('form-group'); $name->setLabel(Lang::get('name')); $name->setRequired(true); $form->addField($name); $email = new Form\Element\Email('email'); $email->setClass('form-control'); $email->setContainerClass('form-group'); $email->setLabel(Lang::get('email_address')); $email->setRequired(true); $form->addField($email); $password = new Form\Element\Password('password'); $password->setClass('form-control'); $password->setContainerClass('form-group'); $password->setLabel(Lang::get('password_change')); $password->setRequired(false); $form->addField($password); $lang = new Form\Element\Select('language'); $lang->setClass('form-control'); $lang->setContainerClass('form-group'); $lang->setLabel(Lang::get('language')); $lang->setRequired(true); $lang->setOptions(Lang::getLanguageOptions()); $form->addField($lang); $submit = new Form\Element\Submit(); $submit->setClass('btn btn-success'); $submit->setValue(Lang::get('save')); $form->addField($submit); $form->setValues($values); $this->view->form = $form; return $this->view->render(); }
/** * @param View $view */ protected function onPreRender(View &$view) { parent::onPreRender($view); }
/** * Create add / edit project form. */ protected function projectForm($values, $type = 'add') { $form = new Form(); $form->setMethod('POST'); $form->setAction(PHPCI_URL . 'project/' . $type); $form->addField(new Form\Element\Csrf('csrf')); $form->addField(new Form\Element\Hidden('pubkey')); $options = array('choose' => 'Select repository type...', 'github' => 'Github', 'bitbucket' => 'Bitbucket', 'gitlab' => 'Gitlab', 'remote' => 'Remote URL', 'local' => 'Local Path', 'hg' => 'Mercurial'); $field = Form\Element\Select::create('type', 'Where is your project hosted?', true); $field->setPattern('^(github|bitbucket|gitlab|remote|local|hg)'); $field->setOptions($options); $field->setClass('form-control')->setContainerClass('form-group'); $form->addField($field); $container = new Form\ControlGroup('github-container'); $container->setClass('github-container'); $field = Form\Element\Select::create('github', 'Choose a Github repository:', false); $field->setClass('form-control')->setContainerClass('form-group'); $container->addField($field); $form->addField($container); $field = Form\Element\Text::create('reference', 'Repository Name / URL (Remote) or Path (Local)', true); $field->setValidator($this->getReferenceValidator($values)); $field->setClass('form-control')->setContainerClass('form-group'); $form->addField($field); $field = Form\Element\Text::create('title', 'Project Title', true); $field->setClass('form-control')->setContainerClass('form-group'); $form->addField($field); $title = 'Private key to use to access repository (leave blank for local and/or anonymous remotes)'; $field = Form\Element\TextArea::create('key', $title, false); $field->setClass('form-control')->setContainerClass('form-group'); $field->setRows(6); $form->addField($field); $label = 'PHPCI build config for this project (if you cannot add a phpci.yml file in the project repository)'; $field = Form\Element\TextArea::create('build_config', $label, false); $field->setClass('form-control')->setContainerClass('form-group'); $field->setRows(6); $form->addField($field); $field = Form\Element\Text::create('branch', 'Default branch name', true); $field->setValidator($this->getReferenceValidator($values)); $field->setClass('form-control')->setContainerClass('form-group')->setValue('master'); $form->addField($field); $label = 'Enable public status page and image for this project?'; $field = Form\Element\Checkbox::create('allow_public_status', $label, false); $field->setContainerClass('form-group'); $field->setCheckedValue(1); $field->setValue(1); $form->addField($field); $field = new Form\Element\Submit(); $field->setValue('Save Project'); $field->setContainerClass('form-group'); $field->setClass('btn-success'); $form->addField($field); $form->setValues($values); return $form; }
public function __construct($name = null) { parent::__construct($name); $this->setPattern('(mr|mrs|miss|ms|dr|prof)'); $this->setOptions(['mr' => 'Mr', 'mrs' => 'Mrs', 'miss' => 'Miss', 'ms' => 'Ms', 'dr' => 'Doctor', 'prof' => 'Professor']); }