Skip to content

Commit 96f7f55

Browse files
committed
send and accept invitation
1 parent f537b72 commit 96f7f55

24 files changed

+3100
-0
lines changed

public/globals.js

+7
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,13 @@ window.pkp = {
350350
'submission.upload.percentComplete': 'Uploading {$percent}% complete',
351351
'submissions.incomplete': 'Incomplete',
352352
'validator.required': 'This field is required.',
353+
'invitation.notification.title': 'Invitation sent',
354+
'invitation.wizard.success': "{$email} has been invited to a new role in OJS. You can be updated about the user's decision on the User & Role page, your OJS notification and/or your email",
355+
'user.email': 'Email',
356+
'user.username': 'Username',
357+
'user.orcid': 'ORCID iD',
358+
'invitation.notification.closeBtn':'View all users',
359+
'user.password': 'Password',
353360
},
354361

355362
tinyMCE: {

src/components/Container/PageOJS.vue

+4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
<script>
22
import Page from '@/components/Container/Page.vue';
33
import SubmissionsPage from '@/pages/submissions/SubmissionsPage.vue';
4+
import UserInvitationPage from '@/pages/userInvitation/UserInvitationPage.vue';
5+
import AcceptInvitationPage from '@/pages/acceptInvitation/AcceptInvitationPage.vue';
46
57
export default {
68
components: {
79
SubmissionsPage,
10+
UserInvitationPage,
11+
AcceptInvitationPage,
812
},
913
extends: Page,
1014
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<template>
2+
<field-text v-bind="store.emailField" @change="store.emailChange" />
3+
<br />
4+
<field-text v-bind="store.usernameField" @change="store.usernameChange" />
5+
<br />
6+
<field-text v-bind="store.passwordField" @change="store.passwordChange" />
7+
</template>
8+
9+
<script setup>
10+
import {defineProps} from 'vue';
11+
import FieldText from '@/components/Form/fields/FieldText.vue';
12+
import {useAcceptInvitationPageStore} from './AcceptInvitationPageStore';
13+
14+
defineProps({
15+
section: {
16+
type: Object,
17+
default() {
18+
return null;
19+
},
20+
},
21+
});
22+
23+
const store = useAcceptInvitationPageStore();
24+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<template>
2+
<pkp-form
3+
v-if="section.type === 'form'"
4+
v-bind="section.form"
5+
ref="autosaveForms"
6+
class="userInvitation__stepForm"
7+
@set="store.updateAutosaveForm"
8+
></pkp-form>
9+
</template>
10+
11+
<script setup>
12+
import {defineProps} from 'vue';
13+
import PkpForm from '@/components/Form/Form.vue';
14+
import {useAcceptInvitationPageStore} from './AcceptInvitationPageStore';
15+
16+
defineProps({
17+
section: {type: Object, required: true},
18+
});
19+
const store = useAcceptInvitationPageStore();
20+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<template>
2+
<h1 ref="wrapper" class="app__pageHeading">
3+
{{ pageTitle }}
4+
</h1>
5+
<p>
6+
{{ pageTitleDescription }}
7+
</p>
8+
</template>
9+
10+
<script setup>
11+
import {defineProps} from 'vue';
12+
13+
defineProps({
14+
pageTitle: {type: String, required: true},
15+
pageTitleDescription: {type: String, required: true},
16+
});
17+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import {Primary, Controls, Stories, Meta, ArgTypes} from '@storybook/blocks';
2+
3+
import * as AcceptInvitationPage from './AcceptInvitationPage.stories.js';
4+
5+
<Meta of={AcceptInvitationPage} />
6+
7+
# User Invitation page
8+
9+
<ArgTypes />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import AcceptInvitationPage from './AcceptInvitationPage.vue';
2+
import {http, HttpResponse} from 'msw';
3+
import PageInitConfigMock from './mocks/pageInitConfig';
4+
5+
export default {
6+
title: 'Pages/AcceptInvitation',
7+
component: AcceptInvitationPage,
8+
};
9+
10+
export const Init = {
11+
render: (args) => ({
12+
components: {AcceptInvitationPage},
13+
setup() {
14+
return {args};
15+
},
16+
template: '<AcceptInvitationPage v-bind="args" />',
17+
}),
18+
parameters: {
19+
msw: {
20+
handlers: [
21+
http.post('https://mock/index.php/publicknowledge/api/v1/users', () => {
22+
return HttpResponse.json('accept invitation successfully');
23+
}),
24+
],
25+
},
26+
},
27+
args: PageInitConfigMock,
28+
};

0 commit comments

Comments
 (0)