diff --git a/webapp/assets/_new/icons/svgs/copy.svg b/webapp/assets/_new/icons/svgs/copy.svg
new file mode 100644
index 000000000..1792f2002
--- /dev/null
+++ b/webapp/assets/_new/icons/svgs/copy.svg
@@ -0,0 +1,5 @@
+
+
diff --git a/webapp/components/InviteButton/InviteButton.vue b/webapp/components/InviteButton/InviteButton.vue
index 57c60c8e4..15190d9dc 100644
--- a/webapp/components/InviteButton/InviteButton.vue
+++ b/webapp/components/InviteButton/InviteButton.vue
@@ -1,17 +1,83 @@
-
+
+
diff --git a/webapp/config/index.js b/webapp/config/index.js
index 678239729..651bab568 100644
--- a/webapp/config/index.js
+++ b/webapp/config/index.js
@@ -29,8 +29,8 @@ const sentry = {
const options = {
VERSION: process.env.VERSION || pkg.version,
DESCRIPTION: process.env.DESCRIPTION || pkg.description,
- PUBLIC_REGISTRATION: process.env.PUBLIC_REGISTRATION === 'true',
- INVITE_REGISTRATION: process.env.INVITE_REGISTRATION === 'true',
+ PUBLIC_REGISTRATION: process.env.PUBLIC_REGISTRATION,
+ INVITE_REGISTRATION: process.env.INVITE_REGISTRATION,
// Cookies
COOKIE_EXPIRE_TIME: process.env.COOKIE_EXPIRE_TIME || 730, // Two years by default
COOKIE_HTTPS_ONLY: process.env.COOKIE_HTTPS_ONLY || process.env.NODE_ENV === 'production', // ensure true in production if not set explicitly
diff --git a/webapp/layouts/default.vue b/webapp/layouts/default.vue
index e666d5e44..db84c1feb 100644
--- a/webapp/layouts/default.vue
+++ b/webapp/layouts/default.vue
@@ -40,9 +40,9 @@
@@ -50,10 +50,11 @@
- XXX {{ showInviteButton }}
-
-
-
+
+
+
+
+
@@ -78,106 +79,99 @@
diff --git a/webapp/locales/de.json b/webapp/locales/de.json
index e02e4f6b0..060068af4 100644
--- a/webapp/locales/de.json
+++ b/webapp/locales/de.json
@@ -336,6 +336,12 @@
"change-filter-settings": "Verändere die Filter-Einstellungen, um mehr Ergebnisse zu erhalten.",
"no-results": "Keine Beiträge gefunden."
},
+ "invite-codes": {
+ "copy-code": "Einladungscode in die Zwischenablage kopieren",
+ "copy-success": "Einladungscode erfolgreich in die Zwischenablage kopiert",
+ "not-available": "Du hast keinen Einladungscode zur Verfügung!",
+ "your-code": "Das ist dein Einladungscode:"
+ },
"login": {
"email": "Deine E-Mail",
"failure": "Fehlerhafte E-Mail-Adresse oder Passwort.",
diff --git a/webapp/locales/en.json b/webapp/locales/en.json
index e195f542e..3fbacb70c 100644
--- a/webapp/locales/en.json
+++ b/webapp/locales/en.json
@@ -336,6 +336,12 @@
"change-filter-settings": "Change your filter settings to get more results.",
"no-results": "No contributions found."
},
+ "invite-codes": {
+ "copy-code": "Copy invite code to clipboard",
+ "copy-success": "Invite code copied to clipboard",
+ "not-available": "You have no valid invite code available!",
+ "your-code": "This is your invite code:"
+ },
"login": {
"email": "Your E-mail",
"failure": "Incorrect email address or password.",
diff --git a/webapp/nuxt.config.js b/webapp/nuxt.config.js
index 9f992ee5e..9ca85431d 100644
--- a/webapp/nuxt.config.js
+++ b/webapp/nuxt.config.js
@@ -28,6 +28,8 @@ export default {
env: {
release: CONFIG.VERSION,
+ publicRegistration: String(CONFIG.PUBLIC_REGISTRATION) === 'true',
+ inviteRegistration: String(CONFIG.INVITE_REGISTRATION) === 'true',
// pages which do NOT require a login
publicPages: [
'login',