diff --git a/admin/src/components/Fedaration/FederationVisualizeItem.vue b/admin/src/components/Fedaration/FederationVisualizeItem.vue
index faace7da1..a947387f4 100644
--- a/admin/src/components/Fedaration/FederationVisualizeItem.vue
+++ b/admin/src/components/Fedaration/FederationVisualizeItem.vue
@@ -13,7 +13,7 @@
diff --git a/frontend/src/components/TransactionRows/DurationRow.vue b/frontend/src/components/TransactionRows/DurationRow.vue
index 6f62d9dc5..f9b7873d6 100644
--- a/frontend/src/components/TransactionRows/DurationRow.vue
+++ b/frontend/src/components/TransactionRows/DurationRow.vue
@@ -12,7 +12,7 @@
+
diff --git a/frontend/src/graphql/mutations.js b/frontend/src/graphql/mutations.js
index 802ea1818..8a281aad9 100644
--- a/frontend/src/graphql/mutations.js
+++ b/frontend/src/graphql/mutations.js
@@ -26,6 +26,7 @@ export const forgotPassword = gql`
export const updateUserInfos = gql`
mutation(
+ $alias: String
$firstName: String
$lastName: String
$password: String
@@ -35,6 +36,7 @@ export const updateUserInfos = gql`
$hideAmountGDT: Boolean
) {
updateUserInfos(
+ alias: $alias
firstName: $firstName
lastName: $lastName
password: $password
@@ -145,6 +147,7 @@ export const login = gql`
mutation($email: String!, $password: String!, $publisherId: Int) {
login(email: $email, password: $password, publisherId: $publisherId) {
gradidoID
+ alias
firstName
lastName
language
diff --git a/frontend/src/graphql/queries.js b/frontend/src/graphql/queries.js
index a21117ac2..f254b93cc 100644
--- a/frontend/src/graphql/queries.js
+++ b/frontend/src/graphql/queries.js
@@ -89,6 +89,12 @@ export const queryOptIn = gql`
}
`
+export const checkUsername = gql`
+ query($username: String!) {
+ checkUsername(username: $username)
+ }
+`
+
export const queryTransactionLink = gql`
query($code: String!) {
queryTransactionLink(code: $code) {
diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json
index a5357e6d9..a29069104 100644
--- a/frontend/src/locales/de.json
+++ b/frontend/src/locales/de.json
@@ -153,6 +153,7 @@
"password_new_repeat": "Neues Passwort wiederholen",
"password_old": "Altes Passwort",
"recipient": "Empfänger",
+ "recipientCommunity": "Gemeinschaft des Empfängers",
"reply": "Antworten",
"reset": "Zurücksetzen",
"save": "Speichern",
@@ -166,12 +167,15 @@
"thx": "Danke",
"to": "bis",
"to1": "an",
+ "username": "Nutzername",
+ "username-placeholder": "Gebe einen eindeutigen Nutzernamen ein",
"validation": {
"gddCreationTime": "Das Feld {_field_} muss eine Zahl zwischen {min} und {max} mit höchstens einer Nachkommastelle sein",
"gddSendAmount": "Das Feld {_field_} muss eine Zahl zwischen {min} und {max} mit höchstens zwei Nachkommastellen sein",
"is-not": "Du kannst dir selbst keine Gradidos überweisen",
- "usernmae-regex": "Der Username muss mit einem Buchstaben beginnen, auf den mindestens zwei alpha-numerische Zeichen folgen müssen.",
- "usernmae-unique": "Der Username ist bereits vergeben."
+ "username-allowed-chars": "Der Nutzername darf nur aus Buchstaben (ohne Umlaute), Zahlen, Binde- oder Unterstrichen bestehen.",
+ "username-hyphens": "Binde- oder Unterstriche müssen zwischen Buchstaben oder Zahlen stehen.",
+ "username-unique": "Der Nutzername ist bereits vergeben."
},
"your_amount": "Dein Betrag"
},
@@ -319,7 +323,12 @@
"subtitle": "Wenn du dein Passwort vergessen hast, kannst du es hier zurücksetzen."
},
"showAmountGDD": "Dein GDD Betrag ist sichtbar.",
- "showAmountGDT": "Dein GDT Betrag ist sichtbar."
+ "showAmountGDT": "Dein GDT Betrag ist sichtbar.",
+ "username": {
+ "change-success": "Dein Nutzername wurde erfolgreich geändert.",
+ "change-username": "Nutzername ändern",
+ "no-username": "Bitte gebe einen Nutzernamen ein. Damit hilfst du anderen Benutzern dich zu finden, ohne deine Email preisgeben zu müssen."
+ }
},
"signin": "Anmelden",
"signup": "Registrieren",
diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json
index 42f22f709..ad7077e69 100644
--- a/frontend/src/locales/en.json
+++ b/frontend/src/locales/en.json
@@ -153,6 +153,7 @@
"password_new_repeat": "Repeat new password",
"password_old": "Old password",
"recipient": "Recipient",
+ "recipientCommunity": "Community of the recipient",
"reply": "Reply",
"reset": "Reset",
"save": "Save",
@@ -166,12 +167,15 @@
"thx": "Thank you",
"to": "to",
"to1": "to",
+ "username": "Username",
+ "username-placeholder": "Enter a unique username",
"validation": {
"gddCreationTime": "The field {_field_} must be a number between {min} and {max} with at most one decimal place.",
"gddSendAmount": "The {_field_} field must be a number between {min} and {max} with at most two digits after the decimal point",
"is-not": "You cannot send Gradidos to yourself",
- "usernmae-regex": "The username must start with a letter, followed by at least two alphanumeric characters.",
- "usernmae-unique": "This username is already taken."
+ "username-allowed-chars": "The username may only contain letters, numbers, hyphens or underscores.",
+ "username-hyphens": "Hyphens or underscores must be in between letters or numbers.",
+ "username-unique": "This username is already taken."
},
"your_amount": "Your amount"
},
@@ -319,7 +323,12 @@
"subtitle": "If you have forgotten your password, you can reset it here."
},
"showAmountGDD": "Your GDD amount is visible.",
- "showAmountGDT": "Your GDT amount is visible."
+ "showAmountGDT": "Your GDT amount is visible.",
+ "username": {
+ "change-success": "Your username has been changed successfully.",
+ "change-username": "Change username",
+ "no-username": "Please enter a username. This helps other users to find you without exposing your email."
+ }
},
"signin": "Sign in",
"signup": "Sign up",
diff --git a/frontend/src/main.js b/frontend/src/main.js
index 4809e490c..f31311ab2 100755
--- a/frontend/src/main.js
+++ b/frontend/src/main.js
@@ -27,7 +27,7 @@ const filters = loadFilters(i18n)
Vue.filter('amount', filters.amount)
Vue.filter('GDD', filters.GDD)
-loadAllRules(i18n)
+loadAllRules(i18n, apolloProvider.defaultClient)
addNavigationGuards(router, store, apolloProvider.defaultClient)
diff --git a/frontend/src/pages/Settings.vue b/frontend/src/pages/Settings.vue
index 530484d9a..c5ca00f08 100644
--- a/frontend/src/pages/Settings.vue
+++ b/frontend/src/pages/Settings.vue
@@ -3,6 +3,8 @@