Further i18nified Autocomplete

This commit is contained in:
Philipp Czora
2018-11-22 10:55:21 +01:00
parent c23e0f4610
commit 69910ab2c6
6 changed files with 37 additions and 6 deletions

View File

@@ -39,7 +39,13 @@
"label": "Add member", "label": "Add member",
"error": "Invalid member name" "error": "Invalid member name"
}, },
"group-form": { "add-member-autocomplete": {
"placeholder": "Enter member",
"loading": "Loading...",
"no-options": "No suggestion available"
},
"group-form": {
"submit": "Submit", "submit": "Submit",
"name-error": "Group name is invalid", "name-error": "Group name is invalid",
"description-error": "Description is invalid", "description-error": "Description is invalid",

View File

@@ -77,6 +77,8 @@
"label": "Branches" "label": "Branches"
}, },
"permission": { "permission": {
"user": "User",
"group": "Group",
"error-title": "Error", "error-title": "Error",
"error-subtitle": "Unknown permissions error", "error-subtitle": "Unknown permissions error",
"name": "User or Group", "name": "User or Group",
@@ -105,6 +107,13 @@
"groupPermissionHelpText": "States if a permission is a group permission.", "groupPermissionHelpText": "States if a permission is a group permission.",
"nameHelpText": "Manage permissions for a specific user or group", "nameHelpText": "Manage permissions for a specific user or group",
"typeHelpText": "READ = read; WRITE = read and write; OWNER = read, write and also the ability to manage the properties and permissions" "typeHelpText": "READ = read; WRITE = read and write; OWNER = read, write and also the ability to manage the properties and permissions"
},
"autocomplete": {
"no-group-options": "No group suggestion available",
"group-placeholder": "Enter group",
"no-user-options": "No user suggestion available",
"user-placeholder": "Enter user",
"loading": "Loading..."
} }
}, },
"help": { "help": {

View File

@@ -34,7 +34,7 @@ class Autocomplete extends React.Component<Props, State> {
placeholder: "Type here", placeholder: "Type here",
loadingMessage: "Loading...", loadingMessage: "Loading...",
noOptionsMessage: "No suggestion available" noOptionsMessage: "No suggestion available"
} };
handleInputChange = (newValue: SelectValue) => { handleInputChange = (newValue: SelectValue) => {
this.props.valueSelected(newValue); this.props.valueSelected(newValue);

View File

@@ -14,7 +14,10 @@ type Props = {
buttonLabel: string, buttonLabel: string,
fieldLabel: string, fieldLabel: string,
helpText?: string, helpText?: string,
loadSuggestions: string => Promise<AutocompleteObject> loadSuggestions: string => Promise<AutocompleteObject>,
placeholder?: string,
loadingMessage?: string,
noOptionsMessage?: string
}; };
type State = { type State = {
@@ -27,7 +30,7 @@ class AutocompleteAddEntryToTableField extends React.Component<Props, State> {
this.state = { selectedValue: undefined }; this.state = { selectedValue: undefined };
} }
render() { render() {
const { disabled, buttonLabel, fieldLabel, helpText, loadSuggestions } = this.props; const { disabled, buttonLabel, fieldLabel, helpText, loadSuggestions, placeholder, loadingMessage, noOptionsMessage } = this.props;
const { selectedValue } = this.state; const { selectedValue } = this.state;
return ( return (
@@ -38,6 +41,9 @@ class AutocompleteAddEntryToTableField extends React.Component<Props, State> {
valueSelected={this.handleAddEntryChange} valueSelected={this.handleAddEntryChange}
helpText={helpText} helpText={helpText}
value={selectedValue} value={selectedValue}
placeholder={placeholder}
loadingMessage={loadingMessage}
noOptionsMessage={noOptionsMessage}
/> />
<AddButton <AddButton

View File

@@ -106,6 +106,9 @@ class GroupForm extends React.Component<Props, State> {
fieldLabel={t("add-member-textfield.label")} fieldLabel={t("add-member-textfield.label")}
errorMessage={t("add-member-textfield.error")} errorMessage={t("add-member-textfield.error")}
loadSuggestions={this.props.loadUserSuggestions} loadSuggestions={this.props.loadUserSuggestions}
placeholder={t("add-member-autocomplete.placeholder")}
loadingMessage={t("add-member-autocomplete.loading")}
noOptionsMessage={t("add-member-autocomplete.no-options")}
/> />
<SubmitButton <SubmitButton
disabled={!this.isValid()} disabled={!this.isValid()}

View File

@@ -82,13 +82,17 @@ class CreatePermissionForm extends React.Component<Props, State> {
}); });
}; };
renderAutocompletionField = () => { renderAutocompletionField = () => {
const { t } = this.props;
if (this.state.groupPermission) { if (this.state.groupPermission) {
return ( return (
<Autocomplete <Autocomplete
loadSuggestions={this.loadGroupAutocompletion} loadSuggestions={this.loadGroupAutocompletion}
valueSelected={this.groupOrUserSelected} valueSelected={this.groupOrUserSelected}
value={this.state.value} value={this.state.value}
label={"Group"} label={t("permission.group")}
noOptionsMessage={t("permission.autocomplete.no-group-options")}
loadingMessage={t("permission.autocomplete.loading")}
placeholder={t("permission.autocomplete.group-placeholder")}
/> />
); );
} }
@@ -97,7 +101,10 @@ class CreatePermissionForm extends React.Component<Props, State> {
loadSuggestions={this.loadUserAutocompletion} loadSuggestions={this.loadUserAutocompletion}
valueSelected={this.groupOrUserSelected} valueSelected={this.groupOrUserSelected}
value={this.state.value} value={this.state.value}
label={"User"} label={t("permission.user")}
noOptionsMessage={t("permission.autocomplete.no-user-options")}
loadingMessage={t("permission.autocomplete.loading")}
placeholder={t("permission.autocomplete.user-placeholder")}
/> />
); );
}; };