summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-08-17 19:17:23 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-08-17 19:17:23 +0900
commit2c8f962889f9231238dbdaa5990f00646e8060f3 (patch)
tree73e2fb3d84cbd0e372c950b9e6482deeafa26ec2 /src/client
parentMerge pull request #2270 from syuilo/l10n_master (diff)
downloadsharkey-2c8f962889f9231238dbdaa5990f00646e8060f3.tar.gz
sharkey-2c8f962889f9231238dbdaa5990f00646e8060f3.tar.bz2
sharkey-2c8f962889f9231238dbdaa5990f00646e8060f3.zip
#2214 #2155
Diffstat (limited to 'src/client')
-rw-r--r--src/client/app/common/views/components/signup.vue15
-rw-r--r--src/client/app/desktop/views/pages/admin/admin.dashboard.vue14
2 files changed, 27 insertions, 2 deletions
diff --git a/src/client/app/common/views/components/signup.vue b/src/client/app/common/views/components/signup.vue
index 45a183e144..1d33702159 100644
--- a/src/client/app/common/views/components/signup.vue
+++ b/src/client/app/common/views/components/signup.vue
@@ -1,5 +1,10 @@
<template>
<form class="mk-signup" @submit.prevent="onSubmit" :autocomplete="Math.random()">
+ <ui-input v-if="meta.disableRegistration" v-model="invitationCode" type="text" :autocomplete="Math.random()" spellcheck="false" required>
+ <span>%i18n:@invitation-code%</span>
+ <span slot="prefix">%fa:id-card-alt%</span>
+ <p slot="text" v-html="'%i18n:@invitation-info%'.replace('{}', meta.maintainer.url)"></p>
+ </ui-input>
<ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]{1,20}$" :autocomplete="Math.random()" spellcheck="false" required @input="onChangeUsername">
<span>%i18n:@username%</span>
<span slot="prefix">@</span>
@@ -46,11 +51,13 @@ export default Vue.extend({
username: '',
password: '',
retypedPassword: '',
+ invitationCode: '',
url,
recaptchaSitekey,
usernameState: null,
passwordStrength: '',
- passwordRetypeState: null
+ passwordRetypeState: null,
+ meta: null
}
},
computed: {
@@ -61,6 +68,11 @@ export default Vue.extend({
this.usernameState != 'max-range');
}
},
+ created() {
+ (this as any).os.getMeta().then(meta => {
+ this.meta = meta;
+ });
+ },
methods: {
onChangeUsername() {
if (this.username == '') {
@@ -110,6 +122,7 @@ export default Vue.extend({
(this as any).api('signup', {
username: this.username,
password: this.password,
+ invitationCode: this.invitationCode,
'g-recaptcha-response': recaptchaSitekey != null ? (window as any).grecaptcha.getResponse() : null
}).then(() => {
(this as any).api('signin', {
diff --git a/src/client/app/desktop/views/pages/admin/admin.dashboard.vue b/src/client/app/desktop/views/pages/admin/admin.dashboard.vue
index b10e829965..d0f11e73b6 100644
--- a/src/client/app/desktop/views/pages/admin/admin.dashboard.vue
+++ b/src/client/app/desktop/views/pages/admin/admin.dashboard.vue
@@ -7,6 +7,10 @@
<p><b>%i18n:@all-notes%</b>: <span>{{ stats.notesCount | number }}</span></p>
<p><b>%i18n:@original-notes%</b>: <span>{{ stats.originalNotesCount | number }}</span></p>
</div>
+ <div>
+ <button class="ui" @click="invite">%i18n:@invite%</button>
+ <p v-if="inviteCode">Code: <code>{{ inviteCode }}</code></p>
+ </div>
</div>
</template>
@@ -16,13 +20,21 @@ import Vue from "vue";
export default Vue.extend({
data() {
return {
- stats: null
+ stats: null,
+ inviteCode: null
};
},
created() {
(this as any).api('stats').then(stats => {
this.stats = stats;
});
+ },
+ methods: {
+ invite() {
+ (this as any).api('admin/invite').then(x => {
+ this.inviteCode = x.code;
+ });
+ }
}
});
</script>