you have received a new chat message from chatSender. +
Show Chat +See you soon on ocelot.social!
+– The ocelot.social Team
PS: If you don't want to receive e-mails anymore, change your notification settings!
+du hast eine neue Chat-Nachricht von chatSender erhalten. +
Chat anzeigen +Bis bald bei ocelot.social!
+– Dein ocelot.social Team
PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine Benachrichtigungseinstellungen!
+So, you want to change your e-mail? No problem! Just click the button below to verify your new address:
Verify e-mail address +If you don't want to change your e-mail address feel free to ignore this message.
+If the above button doesn't work, you can also copy the following code into your browser window: 123456
+See you soon on ocelot.social!
+– The ocelot.social Team
+Du möchtest also deine E-Mail ändern? Kein Problem! Mit Klick auf diesen Button kannst Du Deine neue E-Mail Adresse bestätigen:
E-Mail Adresse bestätigen +Falls Du deine E-Mail Adresse doch nicht ändern möchtest, kannst du diese Nachricht einfach ignorieren.
+Sollte der Button für Dich nicht funktionieren, kannst Du auch folgenden Code in Dein Browserfenster kopieren: 123456
+Bis bald bei ocelot.social!
+– Dein ocelot.social Team
+your role in the group “The Group” has been changed. Click on the button to view this group:
View group +See you soon on ocelot.social!
+– The ocelot.social Team
PS: If you don't want to receive e-mails anymore, change your notification settings!
+Peter Lustig commented on a post that you are observing with the title “New Post”. Click on the button to view this comment: +
View comment +See you soon on ocelot.social!
+– The ocelot.social Team
PS: If you don't want to receive e-mails anymore, change your notification settings!
+Peter Lustig, a user you are following, wrote a new post with the title “New Post”. Click on the button to view this post: +
View post +See you soon on ocelot.social!
+– The ocelot.social Team
PS: If you don't want to receive e-mails anymore, change your notification settings!
+Peter Lustig mentioned you in a comment to the post with the title “New Post”. Click on the button to view this comment: +
View comment +See you soon on ocelot.social!
+– The ocelot.social Team
PS: If you don't want to receive e-mails anymore, change your notification settings!
+Peter Lustig mentioned you in a post with the title “New Post”. Click on the button to view this post: +
View post +See you soon on ocelot.social!
+– The ocelot.social Team
PS: If you don't want to receive e-mails anymore, change your notification settings!
+someone wrote a new post with the title “New Post” in one of your groups. Click on the button to view this post:
View post +See you soon on ocelot.social!
+– The ocelot.social Team
PS: If you don't want to receive e-mails anymore, change your notification settings!
+you have been removed from the group “The Group”.
+See you soon on ocelot.social!
+– The ocelot.social Team
PS: If you don't want to receive e-mails anymore, change your notification settings!
+Peter Lustig joined the group “The Group”. Click on the button to view this group: +
View group +See you soon on ocelot.social!
+– The ocelot.social Team
PS: If you don't want to receive e-mails anymore, change your notification settings!
+Peter Lustig left the group “The Group”. Click on the button to view this group: +
View group +See you soon on ocelot.social!
+– The ocelot.social Team
PS: If you don't want to receive e-mails anymore, change your notification settings!
+deine Rolle in der Gruppe „The Group“ wurde geändert. Klicke auf den Knopf, um diese Gruppe zu sehen:
Gruppe ansehen +Bis bald bei ocelot.social!
+– Dein ocelot.social Team
PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine Benachrichtigungseinstellungen!
+Peter Lustig hat einen Beitrag den du beobachtest mit dem Titel „New Post“ kommentiert. Klicke auf den Knopf, um diesen Kommentar zu sehen: +
Kommentar ansehen +Bis bald bei ocelot.social!
+– Dein ocelot.social Team
PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine Benachrichtigungseinstellungen!
+Peter Lustig, ein Nutzer dem du folgst, hat einen neuen Beitrag mit dem Titel „New Post“ geschrieben. Klicke auf den Knopf, um diesen Beitrag zu sehen: +
Beitrag ansehen +Bis bald bei ocelot.social!
+– Dein ocelot.social Team
PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine Benachrichtigungseinstellungen!
+Peter Lustig hat dich in einem Kommentar zu dem Beitrag mit dem Titel „New Post“ erwähnt. Klicke auf den Knopf, um den Kommentar zu sehen: +
Kommentar ansehen +Bis bald bei ocelot.social!
+– Dein ocelot.social Team
PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine Benachrichtigungseinstellungen!
+Peter Lustig hat Dich in einem Beitrag mit dem Titel „New Post“ erwähnt. Klicke auf den Knopf, um den Beitrag zu sehen: +
Beitrag ansehen +Bis bald bei ocelot.social!
+– Dein ocelot.social Team
PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine Benachrichtigungseinstellungen!
+jemand hat einen neuen Beitrag mit dem Titel „New Post“ in einer deiner Gruppen geschrieben. Klicke auf den Knopf, um diesen Beitrag zu sehen:
Beitrag ansehen +Bis bald bei ocelot.social!
+– Dein ocelot.social Team
PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine Benachrichtigungseinstellungen!
+du wurdest aus der Gruppe „The Group“ entfernt.
+Bis bald bei ocelot.social!
+– Dein ocelot.social Team
PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine Benachrichtigungseinstellungen!
+Peter Lustig ist der Gruppe „The Group“ beigetreten. Klicke auf den Knopf, um diese Gruppe zu sehen: +
Gruppe ansehen +Bis bald bei ocelot.social!
+– Dein ocelot.social Team
PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine Benachrichtigungseinstellungen!
+Peter Lustig hat die Gruppe „The Group“ verlassen. Klicke auf den Knopf, um diese Gruppe zu sehen: +
Gruppe ansehen +Bis bald bei ocelot.social!
+– Dein ocelot.social Team
PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine Benachrichtigungseinstellungen!
+Thank you for joining our cause – it's awesome to have you on board. There's just one tiny step missing before we can start shaping the world together … Please confirm your e-mail address by clicking the button below:
Confirm your e-mail address +If the above button doesn't work, you can also copy the following code into your browser window: 123456
+However, this only works if you have registered through our website.
+If you didn't sign up for ocelot.social we recommend you to check it out! It's a social network from people for people who want to connect and change the world together. +
+PS: If you ignore this e-mail we will not create an account for you. ;)
+See you soon on ocelot.social!
+– The ocelot.social Team
+Danke, dass du dich angemeldet hast – wir freuen uns, dich dabei zu haben. Jetzt fehlt nur noch eine Kleinigkeit, bevor wir gemeinsam die Welt verbessern können … Bitte bestätige Deine E-Mail Adresse:
Bestätige Deine E-Mail Adresse +Sollte der Button für Dich nicht funktionieren, kannst Du auch folgenden Code in Dein Browserfenster kopieren: 123456
+Das funktioniert allerdings nur, wenn du Dich über unsere Website registriert hast.
+Falls Du Dich nicht selbst bei ocelot.social angemeldet hast, schau doch mal vorbei! Wir sind ein gemeinnütziges Aktionsnetzwerk – von Menschen für Menschen. +
+PS: Wenn Du keinen Account bei uns möchtest, kannst Du diese E-Mail einfach ignorieren. ;)
+Bis bald bei ocelot.social!
+– Dein ocelot.social Team
+Thank you for joining our cause – it's awesome to have you on board. There's just one tiny step missing before we can start shaping the world together … Please confirm your e-mail address by clicking the button below:
Confirm your e-mail address +If the above button doesn't work, you can also copy the following code into your browser window: 123456
+However, this only works if you have registered through our website.
+If you didn't sign up for ocelot.social we recommend you to check it out! It's a social network from people for people who want to connect and change the world together. +
+PS: If you ignore this e-mail we will not create an account for you. ;)
+See you soon on ocelot.social!
+– The ocelot.social Team
+Danke, dass du dich angemeldet hast – wir freuen uns, dich dabei zu haben. Jetzt fehlt nur noch eine Kleinigkeit, bevor wir gemeinsam die Welt verbessern können … Bitte bestätige Deine E-Mail Adresse:
Bestätige Deine E-Mail Adresse +Sollte der Button für Dich nicht funktionieren, kannst Du auch folgenden Code in Dein Browserfenster kopieren: 123456
+Das funktioniert allerdings nur, wenn du Dich über unsere Website registriert hast.
+Falls Du Dich nicht selbst bei ocelot.social angemeldet hast, schau doch mal vorbei! Wir sind ein gemeinnütziges Aktionsnetzwerk – von Menschen für Menschen. +
+PS: Wenn Du keinen Account bei uns möchtest, kannst Du diese E-Mail einfach ignorieren. ;)
+Bis bald bei ocelot.social!
+– Dein ocelot.social Team
+So, you forgot your password? No problem! Just click the button below to reset it within the next 24 hours:
Confirm your e-mail address +If you didn't request a new password feel free to ignore this e-mail.
+If the above button doesn't work you can also copy the following code into your browser window: 123456
+See you soon on ocelot.social!
+– The ocelot.social Team
+Du hast also dein Passwort vergessen? Kein Problem! Mit Klick auf diesen Button kannst du innerhalb der nächsten 24 Stunden dein Passwort zurücksetzen:
Bestätige Deine E-Mail Adresse +Falls du kein neues Passwort angefordert hast, kannst du diese E-Mail einfach ignorieren.
+Sollte der Button für dich nicht funktionieren, kannst du auch folgenden Code in Dein Browserfenster kopieren: 123456
+Bis bald bei ocelot.social!
+– Dein ocelot.social Team
+You requested a password reset but unfortunately we couldn't find an account associated with your e-mail address. Did you maybe use another one when you signed up?
Try a different e-mail +If you don't have an account at ocelot.social yet or if you didn't want to reset your password, please ignore this e-mail. +
+See you soon on ocelot.social!
+– The ocelot.social Team
+Du hast bei uns ein neues Passwort angefordert – leider haben wir aber keinen Account mit deiner E-Mailadresse gefunden. Kann es sein, dass du mit einer anderen Adresse bei uns angemeldet bist?
Versuch' es mit einer anderen E-Mail +Wenn du noch keinen Account bei ocelot.social hast oder dein Password gar nicht ändern willst, kannst du diese E-Mail einfach ignorieren! +
+Bis bald bei ocelot.social!
+– Dein ocelot.social Team
+|
- |
- |||
-
|
-
| - | -|||
|
- |
- |||
-
|
-
|
- |
- |||
-
|
- |||
-
|
- |||
-
|
-
|
- |
- |||
-
|
- |||
-
|
- |||
-
|
-
| - | -|||
|
- |
- |||
-
|
- |||
-
|
- |||
-
|
-
|
- |
- |||
-
|
- |||
-
|
- |||
-
|
-
{{englishHint}}
- - {{> content}} - - -|
- - {{ORGANIZATION_NAME}} - - - - |
-
|
- |
- |||
-
|
- |||
-
|
- |||
-
|
-
| - | -|||
|
- |
- |||
-
|
- |||
-
|
- |||
-
|
-
|
- |
- ||||
-
|
- ||||
-
|
- ||||
-
|
-
| - | -||||
|
- |
- ||||
-
|
- ||||
-
|
- ||||
-
|
-
|
- |
- |||
-
|
- |||
-
|
- |||
-
|
-
| - | -|||
|
- |
- |||
-
|
- |||
-
|
- |||
-
|
-
{{ $t(`notifications.reason.${notification.reason}`) }}
diff --git a/webapp/components/NotificationMenu/NotificationMenu.vue b/webapp/components/NotificationMenu/NotificationMenu.vue index 276da8490..576abb213 100644 --- a/webapp/components/NotificationMenu/NotificationMenu.vue +++ b/webapp/components/NotificationMenu/NotificationMenu.vue @@ -127,7 +127,7 @@ export default { apollo: { notifications: { query() { - return notificationQuery(this.$i18n) + return notificationQuery() }, variables() { return { diff --git a/webapp/components/NotificationsTable/NotificationsTable.spec.js b/webapp/components/NotificationsTable/NotificationsTable.spec.js index 0d3560787..5fbfc338a 100644 --- a/webapp/components/NotificationsTable/NotificationsTable.spec.js +++ b/webapp/components/NotificationsTable/NotificationsTable.spec.js @@ -88,7 +88,7 @@ describe('NotificationsTable.vue', () => { }) it('renders the author', () => { - const userinfo = firstRowNotification.find('.user-teaser > .info') + const userinfo = firstRowNotification.find('.user-teaser .info') expect(userinfo.text()).toContain(postNotification.from.author.name) }) @@ -121,7 +121,7 @@ describe('NotificationsTable.vue', () => { }) it('renders the author', () => { - const userinfo = secondRowNotification.find('.user-teaser > .info') + const userinfo = secondRowNotification.find('.user-teaser .info') expect(userinfo.text()).toContain(commentNotification.from.author.name) }) diff --git a/webapp/components/PasswordReset/Request.spec.js b/webapp/components/PasswordReset/Request.spec.js index 50d6495bd..e2f082242 100644 --- a/webapp/components/PasswordReset/Request.spec.js +++ b/webapp/components/PasswordReset/Request.spec.js @@ -59,7 +59,12 @@ describe('Request', () => { }) it('delivers email to backend', () => { - const expected = expect.objectContaining({ variables: { email: 'mail@example.org' } }) + const expected = expect.objectContaining({ + variables: { + email: 'mail@example.org', + locale: 'en', + }, + }) expect(mocks.$apollo.mutate).toHaveBeenCalledWith(expected) }) @@ -92,7 +97,12 @@ describe('Request', () => { }) it('normalizes email to lower case letters', () => { - const expected = expect.objectContaining({ variables: { email: 'mail@gmail.com' } }) + const expected = expect.objectContaining({ + variables: { + email: 'mail@gmail.com', + locale: 'en', + }, + }) expect(mocks.$apollo.mutate).toHaveBeenCalledWith(expected) }) }) diff --git a/webapp/components/PasswordReset/Request.vue b/webapp/components/PasswordReset/Request.vue index 5398c13ed..3eebeba65 100644 --- a/webapp/components/PasswordReset/Request.vue +++ b/webapp/components/PasswordReset/Request.vue @@ -85,13 +85,13 @@ export default { }, async handleSubmit() { const mutation = gql` - mutation ($email: String!) { - requestPasswordReset(email: $email) + mutation ($email: String!, $locale: String!) { + requestPasswordReset(email: $email, locale: $locale) } ` try { const { email } = this - await this.$apollo.mutate({ mutation, variables: { email } }) + await this.$apollo.mutate({ mutation, variables: { email, locale: this.$i18n.locale() } }) this.submitted = true setTimeout(() => { diff --git a/webapp/components/Registration/RegistrationSlideEmail.vue b/webapp/components/Registration/RegistrationSlideEmail.vue index 6d6454ac9..96441dee8 100644 --- a/webapp/components/Registration/RegistrationSlideEmail.vue +++ b/webapp/components/Registration/RegistrationSlideEmail.vue @@ -36,8 +36,8 @@ import normalizeEmail from '~/components/utils/NormalizeEmail' import translateErrorMessage from '~/components/utils/TranslateErrorMessage' export const SignupMutation = gql` - mutation ($email: String!, $inviteCode: String) { - Signup(email: $email, inviteCode: $inviteCode) { + mutation ($email: String!, $locale: String!, $inviteCode: String) { + Signup(email: $email, locale: $locale, inviteCode: $inviteCode) { email } } @@ -140,7 +140,7 @@ export default { async onNextClick() { const { email } = this.formData const { inviteCode = null } = this.sliderData.collectedInputData - const variables = { email, inviteCode } + const variables = { email, inviteCode, locale: this.$i18n.locale() } if (this.sliderData.collectedInputData.emailSend && !this.sendEmailAgain) { return true diff --git a/webapp/components/Registration/Signup.spec.js b/webapp/components/Registration/Signup.spec.js index 7ef2dc994..2ee413b8b 100644 --- a/webapp/components/Registration/Signup.spec.js +++ b/webapp/components/Registration/Signup.spec.js @@ -25,6 +25,9 @@ describe('Signup', () => { loading: false, mutate: jest.fn().mockResolvedValue({ data: { Signup: { email: 'mail@example.org' } } }), }, + $i18n: { + locale: () => 'de', + }, } propsData = {} }) @@ -64,7 +67,7 @@ describe('Signup', () => { it('delivers email to backend', () => { const expected = expect.objectContaining({ mutation: SignupMutation, - variables: { email: 'mAIL@exAMPLE.org', inviteCode: null }, + variables: { email: 'mAIL@exAMPLE.org', locale: 'de', inviteCode: null }, }) expect(mocks.$apollo.mutate).toHaveBeenCalledWith(expected) }) diff --git a/webapp/components/Registration/Signup.vue b/webapp/components/Registration/Signup.vue index 91b9ecd61..156c43d4e 100644 --- a/webapp/components/Registration/Signup.vue +++ b/webapp/components/Registration/Signup.vue @@ -70,8 +70,8 @@ import { SweetalertIcon } from 'vue-sweetalert-icons' import translateErrorMessage from '~/components/utils/TranslateErrorMessage' export const SignupMutation = gql` - mutation ($email: String!, $inviteCode: String) { - Signup(email: $email, inviteCode: $inviteCode) { + mutation ($email: String!, $locale: String!, $inviteCode: String) { + Signup(email: $email, locale: $locale, inviteCode: $inviteCode) { email } } @@ -121,7 +121,7 @@ export default { try { const response = await this.$apollo.mutate({ mutation: SignupMutation, - variables: { email, inviteCode: null }, + variables: { email, locale: this.$i18n.locale(), inviteCode: null }, }) this.data = response.data setTimeout(() => { diff --git a/webapp/components/UserTeaser/LocationInfo.spec.js b/webapp/components/UserTeaser/LocationInfo.spec.js new file mode 100644 index 000000000..2b100e66d --- /dev/null +++ b/webapp/components/UserTeaser/LocationInfo.spec.js @@ -0,0 +1,31 @@ +import { render } from '@testing-library/vue' +import LocationInfo from './LocationInfo.vue' + +const localVue = global.localVue + +describe('LocationInfo', () => { + const Wrapper = ({ withDistance }) => { + return render(LocationInfo, { + localVue, + propsData: { + locationData: { + name: 'Paris', + distanceToMe: withDistance ? 100 : null, + }, + }, + mocks: { + $t: jest.fn((t) => t), + }, + }) + } + + it('renders with distance', () => { + const wrapper = Wrapper({ withDistance: true }) + expect(wrapper.container).toMatchSnapshot() + }) + + it('renders without distance', () => { + const wrapper = Wrapper({ withDistance: false }) + expect(wrapper.container).toMatchSnapshot() + }) +}) diff --git a/webapp/components/UserTeaser/LocationInfo.vue b/webapp/components/UserTeaser/LocationInfo.vue new file mode 100644 index 000000000..67dc46c27 --- /dev/null +++ b/webapp/components/UserTeaser/LocationInfo.vue @@ -0,0 +1,44 @@ + +