Clean up PasswordField

This commit is contained in:
Christopher Pitt 2015-04-27 14:10:42 +12:00
parent 72ee96cd65
commit fe08447fc0

View File

@ -1,11 +1,12 @@
<?php <?php
/** /**
* Password input field. * Password input field.
*
* @package forms * @package forms
* @subpackage fields-formattedinput * @subpackage fields-formattedinput
*/ */
class PasswordField extends TextField { class PasswordField extends TextField {
/** /**
* Controls the autocomplete attribute on the field. * Controls the autocomplete attribute on the field.
* *
@ -15,45 +16,62 @@ class PasswordField extends TextField {
private static $autocomplete; private static $autocomplete;
/** /**
* Returns an input field, class="text" and type="text" with an optional * Returns an input field.
* maxlength *
* @param string $name
* @param null|string $title
* @param string $value
*/ */
public function __construct($name, $title = null, $value = "") { public function __construct($name, $title = null, $value = '') {
if(count(func_get_args()) > 3) { if(count(func_get_args()) > 3) {
Deprecation::notice('3.0', 'Use setMaxLength() instead of constructor arguments', Deprecation::notice(
Deprecation::SCOPE_GLOBAL); '3.0', 'Use setMaxLength() instead of constructor arguments',
Deprecation::SCOPE_GLOBAL
);
} }
parent::__construct($name, $title, $value); parent::__construct($name, $title, $value);
} }
/**
* {@inheritdoc}
*/
public function getAttributes() { public function getAttributes() {
$attributes = array_merge( $attributes = array(
parent::getAttributes(), 'type' => 'password',
array('type' => 'password')
); );
$autocomplete = Config::inst()->get('PasswordField', 'autocomplete'); $autocomplete = Config::inst()->get('PasswordField', 'autocomplete');
if (isset($autocomplete)) {
$attributes['autocomplete'] = $autocomplete ? 'on' : 'off'; if($autocomplete) {
$attributes['autocomplete'] = 'on';
} else {
$attributes['autocomplete'] = 'off';
} }
return $attributes; return array_merge(
parent::getAttributes(),
$attributes
);
} }
/** /**
* Makes a pretty readonly field with some stars in it * Creates a read-only version of the field.
*
* @return FormField
*/ */
public function performReadonlyTransformation() { public function performReadonlyTransformation() {
$field = $this->castedCopy('ReadonlyField'); $field = $this->castedCopy('ReadonlyField');
$field->setValue('*****'); $field->setValue('*****');
return $field; return $field;
} }
/**
* {@inheritdoc}
*/
public function Type() { public function Type() {
return 'text password'; return 'text password';
} }
} }