public function testNumberTypeOnInputHtml() { $field = new NumericField('Number'); $html = $field->Field(); $this->assertContains('type="number"', $html, 'number type set'); $this->assertContains('step="any"', $html, 'step value set to any'); }
public function Field() { $valArr = $this->value ? explode('-', $this->value) : null; // fields $first = new NumericField($this->name . '[first]', false, $valArr ? array_shift($valArr) : null); $first->setMaxLength(3); $first->addExtraClass('ird-numeric'); $second = new NumericField($this->name . '[second]', false, $valArr ? array_shift($valArr) : null); $second->setMaxLength(3); $second->addExtraClass('ird-numeric'); $third = new NumericField($this->name . '[third]', false, $valArr ? array_shift($valArr) : null); $third->setMaxLength(3); $third->addExtraClass('ird-numeric'); $fields = array($first->Field(), $second->Field(), $third->Field()); $html = implode('<span style="padding: 0 8px">-</span>', $fields); return $html; }
function Field() { // Three separate fields for day, month and year if ($this->getConfig('dmyfields')) { // values $valArr = $this->valueObj ? $this->valueObj->toArray() : null; // fields $fieldDay = new NumericField($this->name . '[day]', false, $valArr ? $valArr['day'] : null); $fieldDay->addExtraClass('day'); $fieldDay->setMaxLength(2); $fieldMonth = new NumericField($this->name . '[month]', false, $valArr ? $valArr['month'] : null); $fieldMonth->addExtraClass('month'); $fieldMonth->setMaxLength(2); $fieldYear = new NumericField($this->name . '[year]', false, $valArr ? $valArr['year'] : null); $fieldYear->addExtraClass('year'); $fieldYear->setMaxLength(4); // order fields depending on format $sep = $this->getConfig('dmyseparator'); $format = $this->getConfig('dateformat'); $fields = array(); $fields[stripos($format, 'd')] = $fieldDay->Field(); $fields[stripos($format, 'm')] = $fieldMonth->Field(); $fields[stripos($format, 'y')] = $fieldYear->Field(); ksort($fields); $html = implode($sep, $fields); } else { $html = parent::Field(); } return $html; }
public function Field($properties = array()) { Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js'); Requirements::javascript(THIRDPARTY_DIR . '/jquery-ui/jquery-ui.js'); Requirements::javascript(THIRDPARTY_DIR . '/jquery-entwine/dist/jquery.entwine-dist.js'); Requirements::javascript(basename(dirname(dirname(__FILE__))) . '/javascript/SliderField.js'); Requirements::css(basename(dirname(dirname(__FILE__))) . '/css/SliderField.css'); return parent::Field($properties); }
public function testNumberTypeOnInputHtml() { $field = new NumericField('Number'); $html = $field->Field(); // @todo - Revert to number one day when html5 number supports proper localisation // See https://github.com/silverstripe/silverstripe-framework/pull/4565 $this->assertContains('type="text"', $html, 'number type not set'); }
function Field($properties = array()) { $config = array('showcalendar' => $this->getConfig('showcalendar'), 'isoDateformat' => $this->getConfig('dateformat'), 'jqueryDateformat' => DateField_View_JQuery::convert_iso_to_jquery_format($this->getConfig('dateformat')), 'min' => $this->getConfig('min'), 'max' => $this->getConfig('max')); // Add other jQuery UI specific, namespaced options (only serializable, no callbacks etc.) // TODO Move to DateField_View_jQuery once we have a properly extensible HTML5 attribute system for FormField foreach ($this->getConfig() as $k => $v) { if (preg_match('/^jQueryUI\\.(.*)/', $k, $matches)) { $config[$matches[1]] = $v; } } $config = array_filter($config); foreach ($config as $k => $v) { $this->setAttribute('data-' . $k, $v); } // Three separate fields for day, month and year if ($this->getConfig('dmyfields')) { // values $valArr = $this->valueObj ? $this->valueObj->toArray() : null; // fields $fieldDay = new NumericField($this->name . '[day]', false, $valArr ? $valArr['day'] : null); $fieldDay->addExtraClass('day'); $fieldDay->setMaxLength(2); $fieldMonth = new NumericField($this->name . '[month]', false, $valArr ? $valArr['month'] : null); $fieldMonth->addExtraClass('month'); $fieldMonth->setMaxLength(2); $fieldYear = new NumericField($this->name . '[year]', false, $valArr ? $valArr['year'] : null); $fieldYear->addExtraClass('year'); $fieldYear->setMaxLength(4); // order fields depending on format $sep = $this->getConfig('dmyseparator'); $format = $this->getConfig('dateformat'); $fields = array(); $fields[stripos($format, 'd')] = $fieldDay->Field(); $fields[stripos($format, 'm')] = $fieldMonth->Field(); $fields[stripos($format, 'y')] = $fieldYear->Field(); ksort($fields); $html = implode($sep, $fields); // dmyfields doesn't work with showcalendar $this->setConfig('showcalendar', false); } else { $html = parent::Field(); } return $html; }