mirror of
https://github.com/silverstripe/silverstripe-userforms.git
synced 2024-09-28 04:16:26 +02:00
ENHANCEMENT: Add autocomplete to EditableTextField
* Fixes #526 (autocomplete attributes) adds ability for text fields to store additional html5 autocomplete attributes, attributes are per text field and populated from a dropdown list from the html5 specification. (Credit card and password autocomplete values omitted as should user defined forms be used to collect this information?) * Options moved to config moved array of auto complete values out to config option as recommended * Clarify function updated name, and added description to make more obvious what function is for normal users * added translation for field names along with some localisation for DE/EN/ES/FR/IT/PL/RU languages * formatting changes and argument removal formatted array as chopped list, and remove argument that wasn’t required. * ADHD kicking in consistency changes.
This commit is contained in:
parent
8dc89fd2f9
commit
d0bf02d25f
@ -14,11 +14,42 @@ class EditableTextField extends EditableFormField
|
|||||||
|
|
||||||
private static $plural_name = 'Text Fields';
|
private static $plural_name = 'Text Fields';
|
||||||
|
|
||||||
|
private static $autocomplete_options = array(
|
||||||
|
'off' => 'Off',
|
||||||
|
'on' => 'On',
|
||||||
|
'name' => 'Full name',
|
||||||
|
'honorific-prefix' => 'Prefix or title',
|
||||||
|
'given-name' => 'First name',
|
||||||
|
'additional-name' => 'Additional name',
|
||||||
|
'family-name' => 'Family name',
|
||||||
|
'honorific-suffix' => 'Suffix (e.g Jr.)',
|
||||||
|
'nickname' => 'Nickname',
|
||||||
|
'email' => 'Email',
|
||||||
|
'organization-title' => 'Job title',
|
||||||
|
'organization' => 'Organization',
|
||||||
|
'street-address' => 'Street address',
|
||||||
|
'address-line1' => 'Address line 1',
|
||||||
|
'address-line2' => 'Address line 2',
|
||||||
|
'address-line3' => 'Address line 3',
|
||||||
|
'address-level1' => 'Address level 1',
|
||||||
|
'address-level2' => 'Address level 2',
|
||||||
|
'address-level3' => 'Address level 3',
|
||||||
|
'address-level4' => 'Address level 4',
|
||||||
|
'country' => 'Country',
|
||||||
|
'country-name' => 'Country name',
|
||||||
|
'postal-code' => 'Postal code',
|
||||||
|
'bday' => 'Birthday',
|
||||||
|
'sex' => 'Gender identity',
|
||||||
|
'tel' => 'Telephone number',
|
||||||
|
'url' => 'Home page'
|
||||||
|
);
|
||||||
|
|
||||||
private static $db = array(
|
private static $db = array(
|
||||||
'MinLength' => 'Int',
|
'MinLength' => 'Int',
|
||||||
'MaxLength' => 'Int',
|
'MaxLength' => 'Int',
|
||||||
'Rows' => 'Int(1)',
|
'Rows' => 'Int(1)',
|
||||||
'Placeholder' => 'Varchar(255)'
|
'Placeholder' => 'Varchar(255)',
|
||||||
|
'Autocomplete' => 'Varchar(255)'
|
||||||
);
|
);
|
||||||
|
|
||||||
private static $defaults = array(
|
private static $defaults = array(
|
||||||
@ -46,6 +77,19 @@ class EditableTextField extends EditableFormField
|
|||||||
_t('EditableTextField.PLACEHOLDER', 'Placeholder')
|
_t('EditableTextField.PLACEHOLDER', 'Placeholder')
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$fields->addFieldToTab(
|
||||||
|
'Root.Main',
|
||||||
|
DropdownField::create(
|
||||||
|
'Autocomplete',
|
||||||
|
_t('EditableTextField.AUTOCOMPLETE', 'Autocomplete'),
|
||||||
|
$this->config()->get('autocomplete_options')
|
||||||
|
)->setDescription(_t(
|
||||||
|
'EditableTextField.AUTOCOMPLETE_DESCRIPTION',
|
||||||
|
'Supported browsers will attempt to populate this field automatically with the users information, use to set the value populated'
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return parent::getCMSFields();
|
return parent::getCMSFields();
|
||||||
@ -116,5 +160,10 @@ class EditableTextField extends EditableFormField
|
|||||||
if ($this->Placeholder) {
|
if ($this->Placeholder) {
|
||||||
$field->setAttribute('placeholder', $this->Placeholder);
|
$field->setAttribute('placeholder', $this->Placeholder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->Autocomplete) {
|
||||||
|
$field->setAttribute('autocomplete', $this->Autocomplete);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,6 +108,8 @@ de_DE:
|
|||||||
PLURALNAME: 'Radio-Buttons'
|
PLURALNAME: 'Radio-Buttons'
|
||||||
SINGULARNAME: 'Radio-Button'
|
SINGULARNAME: 'Radio-Button'
|
||||||
EditableTextField:
|
EditableTextField:
|
||||||
|
AUTOCOMPLETE: 'Automatisch vervollständigen'
|
||||||
|
AUTOCOMPLETE_DESCRIPTION: 'Unterstützte Browser versuchen, dieses Feld automatisch mit den Benutzerinformationen zu füllen, verwenden, um den gefüllten Wert festzulegen'
|
||||||
NUMBERROWS: 'Anzahl der Zeilen'
|
NUMBERROWS: 'Anzahl der Zeilen'
|
||||||
PLACEHOLDER: Platzhalter
|
PLACEHOLDER: Platzhalter
|
||||||
PLURALNAME: 'Textfelder'
|
PLURALNAME: 'Textfelder'
|
||||||
|
@ -140,6 +140,8 @@ en:
|
|||||||
PLURALNAME: 'Radio Groups'
|
PLURALNAME: 'Radio Groups'
|
||||||
SINGULARNAME: 'Radio Group'
|
SINGULARNAME: 'Radio Group'
|
||||||
EditableTextField:
|
EditableTextField:
|
||||||
|
AUTOCOMPLETE: 'Autocomplete'
|
||||||
|
AUTOCOMPLETE_DESCRIPTION: 'Supported browsers will attempt to populate this field automatically with the users information, use to set the value populated'
|
||||||
NUMBERROWS: 'Number of rows'
|
NUMBERROWS: 'Number of rows'
|
||||||
NUMBERROWS_DESCRIPTION: 'Fields with more than one row will be generated as a textarea'
|
NUMBERROWS_DESCRIPTION: 'Fields with more than one row will be generated as a textarea'
|
||||||
PLACEHOLDER: Placeholder
|
PLACEHOLDER: Placeholder
|
||||||
|
@ -106,6 +106,8 @@ es_ES:
|
|||||||
PLURALNAME: 'Opciones editables'
|
PLURALNAME: 'Opciones editables'
|
||||||
SINGULARNAME: 'Opciones editables'
|
SINGULARNAME: 'Opciones editables'
|
||||||
EditableTextField:
|
EditableTextField:
|
||||||
|
AUTOCOMPLETE: 'Autocompletar'
|
||||||
|
AUTOCOMPLETE_DESCRIPTION: 'Los navegadores compatibles intentarán rellenar este campo automáticamente con la información de los usuarios, usarla para establecer el valor poblado'
|
||||||
NUMBERROWS: 'Cantidad de filas'
|
NUMBERROWS: 'Cantidad de filas'
|
||||||
PLURALNAME: 'Campos de texto'
|
PLURALNAME: 'Campos de texto'
|
||||||
SINGULARNAME: 'Campo de texto'
|
SINGULARNAME: 'Campo de texto'
|
||||||
|
@ -60,6 +60,9 @@ fr_FR:
|
|||||||
DELETE: 'Remove this option'
|
DELETE: 'Remove this option'
|
||||||
DRAG: 'Drag to rearrange order of options'
|
DRAG: 'Drag to rearrange order of options'
|
||||||
LOCKED: 'These fields cannot be modified'
|
LOCKED: 'These fields cannot be modified'
|
||||||
|
EditableTextField:
|
||||||
|
AUTOCOMPLETE: 'Autocomplétion'
|
||||||
|
AUTOCOMPLETE_DESCRIPTION: 'Les navigateurs pris en charge essaieront de remplir automatiquement ce champ avec les informations des utilisateurs, utilisez pour définir la valeur remplie'
|
||||||
Form:
|
Form:
|
||||||
FIELDISREQUIRED: '%s is required'
|
FIELDISREQUIRED: '%s is required'
|
||||||
SubmittedFileField:
|
SubmittedFileField:
|
||||||
|
@ -140,6 +140,8 @@ it:
|
|||||||
PLURALNAME: 'Gruppi di pulsanti a scelta singola'
|
PLURALNAME: 'Gruppi di pulsanti a scelta singola'
|
||||||
SINGULARNAME: 'Gruppo di pulsanti a scelta singola'
|
SINGULARNAME: 'Gruppo di pulsanti a scelta singola'
|
||||||
EditableTextField:
|
EditableTextField:
|
||||||
|
AUTOCOMPLETE: 'completamento automatico'
|
||||||
|
AUTOCOMPLETE_DESCRIPTION: 'I browser supportati cercheranno di popolare automaticamente questo campo con l'informazione agli utenti, usare per impostare il valore popolata'
|
||||||
NUMBERROWS: 'Numero di righe'
|
NUMBERROWS: 'Numero di righe'
|
||||||
NUMBERROWS_DESCRIPTION: 'Campi con più di una riga verranno generati come area testo'
|
NUMBERROWS_DESCRIPTION: 'Campi con più di una riga verranno generati come area testo'
|
||||||
PLACEHOLDER: Segnaposto
|
PLACEHOLDER: Segnaposto
|
||||||
|
@ -103,6 +103,8 @@ pl_PL:
|
|||||||
PLURALNAME: 'Pola wyboru'
|
PLURALNAME: 'Pola wyboru'
|
||||||
SINGULARNAME: 'Pole wyboru'
|
SINGULARNAME: 'Pole wyboru'
|
||||||
EditableTextField:
|
EditableTextField:
|
||||||
|
AUTOCOMPLETE: 'autouzupełnienie'
|
||||||
|
AUTOCOMPLETE_DESCRIPTION: 'Obsługiwane przeglądarki podejmie próbę wypełnienia tego pola automatycznie z informacji użytkowników, należy ustawić wartość zaludnionych'
|
||||||
NUMBERROWS: 'Liczba wierszy'
|
NUMBERROWS: 'Liczba wierszy'
|
||||||
PLURALNAME: 'Pola tekstowe'
|
PLURALNAME: 'Pola tekstowe'
|
||||||
SINGULARNAME: 'Pole tekstowe'
|
SINGULARNAME: 'Pole tekstowe'
|
||||||
|
@ -60,6 +60,9 @@ ru_RU:
|
|||||||
DELETE: 'Remove this option'
|
DELETE: 'Remove this option'
|
||||||
DRAG: 'Drag to rearrange order of options'
|
DRAG: 'Drag to rearrange order of options'
|
||||||
LOCKED: 'These fields cannot be modified'
|
LOCKED: 'These fields cannot be modified'
|
||||||
|
EditableTextField:
|
||||||
|
AUTOCOMPLETE: 'автозаполнения'
|
||||||
|
AUTOCOMPLETE_DESCRIPTION: 'Поддерживаемые браузеры будут пытаться автоматически заполнять это поле с информацией пользователей, используйте для установки значения населенную'
|
||||||
Form:
|
Form:
|
||||||
FIELDISREQUIRED: '%s is required'
|
FIELDISREQUIRED: '%s is required'
|
||||||
SubmittedFileField:
|
SubmittedFileField:
|
||||||
|
Loading…
Reference in New Issue
Block a user