Browse Source

Update translations

master
Joshua Rubingh 4 months ago
parent
commit
f08c3428e6
  1. 4
      components/contributor/editButton.vue
  2. 25
      components/contributor/list/item.vue
  3. 20
      components/contributors/deleteButton.vue
  4. 12
      components/contributors/inviteButton.vue
  5. 39
      components/contributors/list.vue
  6. 62
      components/navigation/index.vue
  7. 6
      components/researchStudies/createButton.vue
  8. 56
      components/researchStudies/deleteButton.vue
  9. 14
      components/researchStudies/list.vue
  10. 255
      locales/en.js
  11. 258
      locales/nl.js
  12. 26
      pages/profile/edit.vue
  13. 15
      pages/researchStudies/_studyId/apps/windows-vdi/index.vue
  14. 40
      pages/researchStudies/_studyId/contributors/_contributorId/detail.vue
  15. 8
      pages/researchStudies/_studyId/contributors/_contributorId/edit.vue
  16. 2
      pages/researchStudies/_studyId/contributors/index.vue
  17. 16
      pages/researchStudies/_studyId/contributors/invite.vue
  18. 2
      pages/researchStudies/_studyId/contributors/join.vue
  19. 31
      pages/researchStudies/_studyId/index.vue
  20. 30
      pages/researchStudies/create.vue

4
components/contributor/editButton.vue

@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
<template>
<v-btn @click="goToEditContributor">
{{ $t('contributors.editButton.button') }}
{{
$t('page.researchStudies.studyId.contributors.contributorId.edit.title')
}}
</v-btn>
</template>

25
components/contributor/list/item.vue

@ -22,20 +22,37 @@ @@ -22,20 +22,37 @@
}}</v-list-item-subtitle>
<v-list-item-subtitle
>{{ $t('study.faculty') }}:
>{{
$t(
'page.researchStudies.studyId.contributors.index.table.heading.faculty'
)
}}:
<span v-if="contributor.researcher.faculty">
{{ contributor.researcher.faculty.name }}
</span>
<span v-else>
{{ $t('contributors.table.no_faculty') }}
{{
$t(
'page.researchStudies.studyId.contributors.index.table.no_faculty'
)
}}
</span>
</v-list-item-subtitle>
<v-list-item-subtitle>
{{ $t('contributor.role') }}: {{ contributor.role
{{
$t(
'page.researchStudies.studyId.contributors.index.table.heading.role'
)
}}: {{ contributor.role
}}<span v-if="contributor.isOwner"
>, {{ $t('contributor.role.owner') }}</span
>,
{{
$t(
'page.researchStudies.studyId.contributors.index.table.heading.owner'
)
}}</span
>
</v-list-item-subtitle>
</v-list-item-content>

20
components/contributors/deleteButton.vue

@ -9,18 +9,30 @@ @@ -9,18 +9,30 @@
<ui-rug-card-form :form="form">
<v-card-title>{{
$t('contributors.inviteButton.modal.title')
$t(
'page.researchStudies.studyId.contributors.index.delete_modal.title'
)
}}</v-card-title>
<v-card-text>{{
$t('contributors.inviteButton.modal.text')
$t(
'page.researchStudies.studyId.contributors.index.delete_modal.text'
)
}}</v-card-text>
<span slot="actions">
<v-spacer></v-spacer>
<v-btn text @click="dialog = false">
{{ $t('contributors.inviteButton.modal.negative') }}
{{
$t(
'page.researchStudies.studyId.contributors.index.delete_modal.cancel'
)
}}
</v-btn>
<v-btn text type="submit">
{{ $t('contributors.inviteButton.modal.positive') }}
{{
$t(
'page.researchStudies.studyId.contributors.index.delete_modal.ok'
)
}}
</v-btn>
</span>
</ui-rug-card-form>

12
components/contributors/inviteButton.vue

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<template>
<v-btn @click="goToInviteContributor">
{{ $t('contributors.inviteButton.button') }}
{{ $t('page.researchStudies.studyId.contributors.index.invite_button') }}
</v-btn>
</template>
@ -10,12 +10,14 @@ export default { @@ -10,12 +10,14 @@ export default {
studyId: {
type: [Number, String],
default: 0,
}
},
},
methods: {
goToInviteContributor() {
this.$router.push(this.localePath(`/researchStudies/${this.studyId}/contributors/invite`))
}
}
this.$router.push(
this.localePath(`/researchStudies/${this.studyId}/contributors/invite`)
)
},
},
}
</script>

39
components/contributors/list.vue

@ -1,12 +1,12 @@ @@ -1,12 +1,12 @@
<template>
<v-card>
<v-card-title>
{{ $t('contributors.title') }}
{{ $t('page.researchStudies.studyId.contributors.index.title') }}
<v-spacer></v-spacer>
<v-text-field
v-model="search"
append-icon="mdi-magnify"
:label="$t('form.search')"
:label="$t('page.researchStudies.studyId.contributors.index.search')"
single-line
hide-details
></v-text-field>
@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
{{ item.researcher.faculty.name }}
</span>
<span v-else>
{{ $t('contributors.table.no_faculty') }}
{{ $t('page.researchStudies.studyId.contributors.table.no_faculty') }}
</span>
</template>
@ -51,7 +51,9 @@ @@ -51,7 +51,9 @@
{{ item.researcher.faculty.university.name }}
</span>
<span v-else>
{{ $t('contributors.table.no_university') }}
{{
$t('page.researchStudies.studyId.contributors.table.no_university')
}}
</span>
</template>
@ -99,6 +101,7 @@ export default { @@ -99,6 +101,7 @@ export default {
},
},
data() {
const $t = this.$t.bind(this)
return {
search: '',
headers: [
@ -108,31 +111,45 @@ export default { @@ -108,31 +111,45 @@ export default {
value: 'image',
},
{
text: 'Name',
text: $t(
'page.researchStudies.studyId.contributors.index.table.heading.name'
),
value: 'name',
},
{
text: 'Email',
text: $t(
'page.researchStudies.studyId.contributors.index.table.heading.email'
),
value: 'email',
},
{
text: 'Faculty',
text: $t(
'page.researchStudies.studyId.contributors.index.table.heading.faculty'
),
value: 'faculty',
},
{
text: 'University',
text: $t(
'page.researchStudies.studyId.contributors.index.table.heading.university'
),
value: 'university',
},
{
text: 'Role',
text: $t(
'page.researchStudies.studyId.contributors.index.table.heading.role'
),
value: 'role',
},
{
text: 'Owner',
text: $t(
'page.researchStudies.studyId.contributors.index.table.heading.owner'
),
value: 'isOwner',
},
{
text: 'Active',
text: $t(
'page.researchStudies.studyId.contributors.index.table.heading.active'
),
value: 'active',
},
{

62
components/navigation/index.vue

@ -11,68 +11,84 @@ @@ -11,68 +11,84 @@
<v-list-item-icon>
<v-icon>mdi-view-list</v-icon>
</v-list-item-icon>
<v-list-item-title>{{ $t('link.researchStudies') }}</v-list-item-title>
<v-list-item-title>{{
$t('navbar.menu.researchStudies.title')
}}</v-list-item-title>
</v-list-item>
</v-list>
<v-divider v-if="showStudyDetailNavigation"></v-divider>
<v-list-group
v-if="showStudyDetailNavigation"
:value="true"
>
<v-list-group v-if="showStudyDetailNavigation" :value="true">
<template #activator>
<v-list-item-content>
<v-list-item-title>{{ getActiveStudy.name }}</v-list-item-title>
</v-list-item-content>
</template>
<v-list-item link :to="localePath(`/researchStudies/${$route.params.studyId}`)">
<v-list-item
link
:to="localePath(`/researchStudies/${$route.params.studyId}`)"
>
<v-list-item-icon>
<v-icon>mdi-file-document</v-icon>
</v-list-item-icon>
<v-list-item-title>{{ $t('link.researchStudies.study.overview') }}</v-list-item-title>
<v-list-item-title>{{
$t('navbar.menu.researchStudies.study.overview')
}}</v-list-item-title>
</v-list-item>
<v-list-item link :to="localePath(`/researchStudies/${$route.params.studyId}/contributors`)">
<v-list-item
link
:to="
localePath(`/researchStudies/${$route.params.studyId}/contributors`)
"
>
<v-list-item-icon>
<v-icon>mdi-account-group</v-icon>
</v-list-item-icon>
<v-list-item-title>{{ $t('link.researchStudies.study.contributors') }}</v-list-item-title>
<v-list-item-title>{{
$t('navbar.menu.researchStudies.study.contributors')
}}</v-list-item-title>
</v-list-item>
<v-list-item link :to="localePath(`/researchStudies/${$route.params.studyId}/apps`)">
<v-list-item
link
:to="localePath(`/researchStudies/${$route.params.studyId}/apps`)"
>
<v-list-item-icon>
<v-icon>mdi-desktop-mac</v-icon>
</v-list-item-icon>
<v-list-item-title>{{ $t('link.researchStudies.study.apps') }}</v-list-item-title>
<v-list-item-title>{{
$t('navbar.menu.researchStudies.study.apps')
}}</v-list-item-title>
</v-list-item>
<v-list-item link :to="localePath(`/researchStudies/${$route.params.studyId}/settings`)">
<v-list-item
link
:to="localePath(`/researchStudies/${$route.params.studyId}/settings`)"
>
<v-list-item-icon>
<v-icon>mdi-cog</v-icon>
</v-list-item-icon>
<v-list-item-title>{{ $t('link.researchStudies.study.settings') }}</v-list-item-title>
</v-list-item>
<v-list-item-title>{{
$t('navbar.menu.researchStudies.study.settings')
}}</v-list-item-title>
</v-list-item>
</v-list-group>
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import { mapGetters } from 'vuex'
export default {
computed: {
showStudyDetailNavigation() {
return this.$route.params?.studyId;
return this.$route.params?.studyId
},
...mapGetters('studies', [
'getActiveStudy',
]),
...mapGetters('authorisation', [
'getUser'
])
...mapGetters('studies', ['getActiveStudy']),
...mapGetters('authorisation', ['getUser']),
},
}
</script>

6
components/researchStudies/createButton.vue

@ -1,8 +1,6 @@ @@ -1,8 +1,6 @@
<template>
<v-btn
:to="localePath('/researchStudies/create')"
>
<v-btn :to="localePath('/researchStudies/create')">
<v-icon>mdi-plus</v-icon>
{{ $t('researchStudies.createButton.button') }}
{{ $t('page.researchStudies.index.create_button') }}
</v-btn>
</template>

56
components/researchStudies/deleteButton.vue

@ -1,50 +1,38 @@ @@ -1,50 +1,38 @@
<template>
<v-row justify="center">
<v-dialog
v-model="dialog"
persistent
max-width="290"
>
<v-dialog v-model="dialog" persistent max-width="290">
<template #activator="{ on, attrs }">
<v-btn
small
v-bind="attrs"
v-on="on"
>
{{ $t('researchStudies.deleteButton.button') }}
<v-btn small v-bind="attrs" v-on="on">
{{ $t('page.researchStudies.studyId.settings.button') }}
</v-btn>
</template>
<ui-rug-card-form
:form="form"
>
<v-card-title>{{ $t('researchStudies.deleteButton.modal.title') }}</v-card-title>
<v-card-text>{{ $t('researchStudies.deleteButton.modal.text') }}</v-card-text>
<ui-rug-card-form :form="form">
<v-card-title>{{
$t('page.researchStudies.studyId.settings.delete_modal.title')
}}</v-card-title>
<v-card-text>{{
$t('page.researchStudies.studyId.settings.delete_modal.text')
}}</v-card-text>
<span slot="actions">
<v-btn
text
@click="dialog = false"
>
{{ $t('researchStudies.deleteButton.modal.action.negative') }}
<v-btn text @click="dialog = false">
{{
$t('page.researchStudies.studyId.settings.delete_modal.cancel')
}}
</v-btn>
<v-btn
text
type="submit"
>
{{ $t('researchStudies.deleteButton.modal.action.positive') }}
<v-btn text type="submit">
{{ $t('page.researchStudies.studyId.settings.delete_modal.ok') }}
</v-btn>
</span>
</ui-rug-card-form>
</v-dialog>
</v-row>
</template>
<script>
import { mapActions } from 'vuex';
import Form from '@/lib/form';
import { mapActions } from 'vuex'
import Form from '@/lib/form'
export default {
props: {
@ -53,7 +41,7 @@ export default { @@ -53,7 +41,7 @@ export default {
default: 0,
},
},
data () {
data() {
return {
dialog: false,
formData: {
@ -63,14 +51,14 @@ export default { @@ -63,14 +51,14 @@ export default {
vm: this,
action: this['studies/deleteStudy'],
onResponse() {
this.dialog = false;
this.dialog = false
this.$router.push(this.localePath(`/researchStudies/`))
}
},
}),
}
},
methods: {
...mapActions(['studies/deleteStudy']),
}
},
}
</script>

14
components/researchStudies/list.vue

@ -1,12 +1,12 @@ @@ -1,12 +1,12 @@
<template>
<v-card>
<v-card-title>
{{ $t('researchStudies.title') }}
{{ $t('page.researchStudies.index.title') }}
<v-spacer></v-spacer>
<v-text-field
v-model="search"
append-icon="mdi-magnify"
:label="$t('form.search')"
:label="$t('page.researchStudies.index.search')"
single-line
hide-details
></v-text-field>
@ -67,23 +67,23 @@ export default { @@ -67,23 +67,23 @@ export default {
value: 'image',
},
{
text: this.$t('study.name'),
text: this.$t('form.researchStudy.studyName.label'),
value: 'name',
},
{
text: this.$t('study.field'),
text: this.$t('form.researchStudy.studyField.label'),
value: 'field',
},
{
text: this.$t('study.faculty'),
text: this.$t('form.profile.faculty.label'),
value: 'faculty',
},
{
text: this.$t('study.university'),
text: this.$t('form.profile.university.label'),
value: 'university',
},
{
text: this.$t('study.startDate'),
text: this.$t('form.researchStudy.startDate.label'),
value: 'startDate',
},
{

255
locales/en.js

@ -1,75 +1,186 @@ @@ -1,75 +1,186 @@
export default {
'page.landing.title': 'The place to conduct your research',
'page.landing.introduction': 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
'page.landing.startButton': 'Get Started',
'page.studies.create.title': 'Add new study',
'page.studies.create.privacyStatement.title': 'Privacy statement',
'page.studies.create.privacyStatement.text': 'On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammeled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains.',
'page.studies.study.contributors.contributor.invite.title': 'Invite contributor',
'page.studies.study.contributors.contributor.edit.title': 'Edit contributor',
'page.researchStudies.index.title': 'Studies overview',
'page.researchStudies.studyId.index.title': 'Study detail: {study_name}',
'page.researchStudies.studyId.contributors.contributorId.edit.title': 'Edit contributor',
'page.researchStudies.studyId.contributors.index.title': 'Study contributors overview',
'page.researchStudies.studyId.contributors.index.invite': 'Invite a researcher to this study',
'page.researchStudies.studyId.settings.title': 'Study settings',
'page.researchStudies.create.title': 'Create a new study',
'page.researchStudies.studyId.apps.title': 'Apps for study {study_name}',
'page.profile.edit.title': 'Edit me',
'page.profile.edit.header': 'Edit me',
'form.label.firstName': 'First name',
'form.label.lastName': 'Last name',
'form.label.faculty': 'Faculty',
'form.label.mobilePhone': 'Mobile phone',
'form.label.idNumber': 'P Number',
'form.label.profileAvatar': 'Avatar',
'form.label.studyName': 'Study name',
'form.label.studyShortDescription': 'Study short description',
'form.label.projectCode': 'Project code',
'form.label.usesHumanSubjectData': 'Uses human subject data',
'form.label.studyField': 'Study field',
'form.label.studyAvatar': 'Study avatar',
'form.contributorFirstName': 'Contributor first name',
'form.contributorLastName': 'Contributor last name',
'form.contributorEmail': 'Contributor email',
'form.contributorRole': 'Role',
'form.search': 'Search',
'link.home': 'Home page',
'link.researchStudies': 'Research studies',
'link.researchStudies.study.overview': 'Overview',
'link.researchStudies.study.contributors': 'Contributors',
'link.researchStudies.study.apps': 'Apps',
'link.researchStudies.study.settings': 'Settings',
'study.name': 'Name',
'study.access': 'Access',
'study.access.restricted': 'restricted',
'study.access.public': 'public',
'study.field': 'Field',
'study.faculty': 'Faculty',
'study.university': 'University',
'study.createdAt': 'Created at',
'study.updatedAt': 'Updated at',
'study.startDate': 'Start Date',
'contributor.role': 'Role',
'contributor.role.owner': 'OWNER',
page: {
landing: {
title: 'The place to conduct your research',
introduction: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
startButton: 'Get Started',
},
researchStudies: {
index: {
title: 'Research studies',
search: 'Search',
create_button: 'Create',
},
create: {
title: 'Create a new study',
privacyStatement: {
title: 'Privacy statement',
text: 'On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammeled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains.',
}
},
studyId: {
index: {
title: 'Study detail: {study_name}',
access: {
title: 'Study access',
restricted: 'restricted',
public: 'public'
},
},
contributors: {
index: {
title: 'Contributors',
search: 'Search',
invite_button: 'Invite contributor',
delete_modal: {
title: 'Remove contributor',
text: 'Are you sure you want to remove this contributor?',
ok: 'Yes',
cancel: 'No'
},
table: {
heading: {
name: 'Name',
email: 'Email',
faculty: 'Faculty',
university: 'University',
role: 'Role',
owner: 'Owner',
active: 'Active',
},
no_faculty: 'Unknown faculty',
no_university: 'Unknown university',
}
},
invite: {
title: 'Invite a researcher to this study',
},
join: {
title: 'Join this research study',
},
contributorId: {
detail: {
title: 'Contributor detail',
},
edit: {
title: 'Edit contributor',
}
},
},
settings: {
title: 'Study settings',
button: 'Delete study',
delete_modal: {
title: 'Remove study',
text: 'Are you sure you want to remove this study?',
ok: 'Yes',
cancel: 'No'
},
},
apps: {
title: 'Apps for study {study_name}',
}
}
},
profile: {
edit: {
title: 'Edit me',
}
}
},
navbar: {
menu: {
researchStudies: {
title: 'Research studies', // TODO: Can we link to: page.researchStudies.index.title ??
study: {
overview: 'Overview',
contributors: 'Contributors',
apps: 'Apps',
settings: 'Settings',
}
}
}
},
form: {
profile: {
firstName: {
label: 'First name'
},
lastName: {
label: 'Last name'
},
faculty: {
label: 'Faculty'
},
university: {
label: 'University'
},
mobilePhone: {
label: 'Mobile phone'
},
idNumber: {
label: 'P Number'
},
profileImage: {
label: 'Profile image',
new: 'Click to upload',
update: 'Replace',
}
},
researchStudy: {
studyName: {
label: 'Study name'
},
studyShortDescription: {
label: 'Study short description'
},
projectCode: {
label: 'Project code'
},
usesHumanSubjectData: {
label: 'Uses human subject data'
},
studyField: {
label: 'Study field'
},
studyImage: {
label: 'Study image',
new: 'Click to upload',
update: 'Replace',
},
startDate: {
label: 'Start date'
},
created_at: 'Created',
updated_at: 'Updated',
},
contributorInvite: {
first_name: {
label: 'First name'
},
last_name: {
label: 'Last name'
},
email_address: {
label: 'Email address'
},
role: {
label: 'Role'
},
},
apps: {
version: {
label: 'Version'
},
contributor: {
label: 'Contributor'
}
}
},
'ui.rug.form.action.save': 'Save',
'ui.rug.form.action.cancel': 'Cancel',
'researchStudies.title': 'Research Studies',
'researchStudies.deleteButton.button': 'delete study',
'researchStudies.deleteButton.modal.title': 'Remove research study',
'researchStudies.deleteButton.modal.text': 'Are you sure you want to remove this research study?',
'researchStudies.deleteButton.modal.action.negative': 'No',
'researchStudies.deleteButton.modal.action.positive': 'Yes',
'researchStudies.createButton.button': 'Create',
'contributors.title': 'Contributors',
'contributors.inviteButton.button': 'Invite contributor',
'contributors.editFrom.title': 'Edit contributor',
'contributors.editForm.cancel': 'Cancel',
'contributors.editForm.save': 'Save',
'contributors.inviteButton.modal.title': 'Remove contributor',
'contributors.inviteButton.modal.text': 'Are you sure you want to remove this contributor?',
'contributors.inviteButton.modal.negative': 'No',
'contributors.inviteButton.modal.positive': 'Yes',
'contributors.table.no_faculty': 'Unknown faculty',
'contributors.table.no_university': 'Unknown university',
}
}

258
locales/nl.js

@ -1,74 +1,186 @@ @@ -1,74 +1,186 @@
export default {
'page.landing.title': 'The place to conduct your research',
'page.landing.introduction': 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
'page.landing.startButton': 'Get Started',
'page.studies.create.title': 'Add new study',
'page.studies.create.privacyStatement.title': 'Privacy statement',
'page.studies.create.privacyStatement.text': 'On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammeled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains.',
'page.studies.study.contributors.contributor.invite.title': 'Invite contributor',
'page.studies.study.contributors.contributor.edit.title': 'Edit contributor',
'page.researchStudies.index.title': 'Studies overview',
'page.researchStudies.studyId.index.title': 'Study detail: {study_name}',
'page.researchStudies.studyId.contributors.contributorId.edit.title': 'Edit contributor',
'page.researchStudies.studyId.contributors.index.title': 'Study contributors overview',
'page.researchStudies.studyId.contributors.index.invite': 'Invite a researcher to this study',
'page.researchStudies.studyId.settings.title': 'Study settings',
'page.researchStudies.create.title': 'Create a new study',
'page.profile.edit.title': 'Edit me',
'page.profile.edit.header': 'Edit me',
'form.label.firstName': 'First name',
'form.label.lastName': 'Last name',
'form.label.faculty': 'Faculty',
'form.label.mobilePhone': 'Mobile phone',
'form.label.idNumber': 'P Number',
'form.label.profileAvatar': 'Avatar',
'form.label.studyName': 'Study name',
'form.label.studyShortDescription': 'Study short description',
'form.label.projectCode': 'Project code',
'form.label.usesHumanSubjectData': 'Uses human subject data',
'form.label.studyField': 'Study field',
'form.label.studyAvatar': 'Study avatar',
'form.contributorFirstName': 'Contributor first name',
'form.contributorLastName': 'Contributor last name',
'form.contributorEmail': 'Contributor email',
'form.contributorRole': 'Role',
'form.search': 'Search',
'link.home': 'Home page',
'link.researchStudies': 'Research studies',
'link.researchStudies.study.overview': 'Overview',
'link.researchStudies.study.contributors': 'Contributors',
'link.researchStudies.study.apps': 'Apps',
'link.researchStudies.study.settings': 'Settings',
'study.name': 'Name',
'study.access': 'Access',
'study.access.restricted': 'restricted',
'study.access.public': 'public',
'study.field': 'Field',
'study.faculty': 'Faculty',
'study.university': 'University',
'study.createdAt': 'Created at',
'study.updatedAt': 'Updated at',
'study.startDate': 'Start Date',
'contributor.role': 'Role',
'contributor.role.owner': 'OWNER',
'ui.rug.form.action.save': 'Save',
'ui.rug.form.action.cancel': 'Cancel',
'researchStudies.title': 'Research Studies',
'researchStudies.deleteButton.button': 'delete study',
'researchStudies.deleteButton.modal.title': 'Remove research study',
'researchStudies.deleteButton.modal.text': 'Are you sure you want to remove this research study?',
'researchStudies.deleteButton.modal.action.negative': 'No',
'researchStudies.deleteButton.modal.action.positive': 'Yes',
'researchStudies.createButton.button': 'Create',
'contributors.title': 'Contributors',
'contributors.inviteButton.button': 'Invite contributor',
'contributors.editFrom.title': 'Edit contributor',
'contributors.editForm.cancel': 'Cancel',
'contributors.editForm.save': 'Save',
'contributors.inviteButton.modal.title': 'Remove contributor',
'contributors.inviteButton.modal.text': 'Are you sure you want to remove this contributor?',
'contributors.inviteButton.modal.negative': 'No',
'contributors.inviteButton.modal.positive': 'Yes',
'contributors.table.no_faculty': 'Unknown faculty',
'contributors.table.no_university': 'Unknown university',
}
page: {
landing: {
title: 'De plek om je onderzoek uit te voeren',
introduction: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
startButton: 'Begin',
},
researchStudies: {
index: {
title: 'Onderzoek studies',
search: 'Zoeken',
create_button: 'Aanmaken',
},
create: {
title: 'Maak een nieuwe Studie',
privacyStatement: {
title: 'Privacyverklaring',
text: 'On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammeled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains.',
}
},
studyId: {
index: {
title: 'Studie detail: {study_name}',
access: {
title: 'Study toegang',
restricted: 'beperkt',
public: 'publiek'
},
},
contributors: {
index: {
title: 'Bijdragers',
search: 'Zoeken',
invite_button: 'Bijdrager uitnodigen',
delete_modal: {
title: 'Bijdrager verwijderen',
text: 'Weet je zeker dat je deze bijdrager wilt verwijderen?',
ok: 'Ja',
cancel: 'Nee'
},
table: {
heading: {
name: 'Naam',
email: 'Email',
faculty: 'Faculteit',
university: 'Universiteit',
role: 'Rol',
owner: 'Eigenaar',
active: 'Actief',
},
no_faculty: 'Faculteit onbekend',
no_university: 'Universiteit onbekend',
}
},
invite: {
title: 'Een onderzoeker uitnodigen voor dit onderzoek',
},
join: {
title: 'Doe mee aan dit onderzoek',
},
contributorId: {
detail: {
title: 'Onderzoeker detail',
},
edit: {
title: 'Bewerk onderzoeker',
}
},
},
settings: {
title: 'Studie instellingen',
button: 'Studie verwijderen',
delete_modal: {
title: 'Studie verwijderen',
text: 'Weet je zeker dat je deze studie wilt verwijderen?',
ok: 'Ja',
cancel: 'Nee'
},
},
apps: {
title: 'Apps for studie {study_name}',
}
}
},
profile: {
edit: {
title: 'Wijzig mij',
}
}
},
navbar: {
menu: {
researchStudies: {
title: 'Onderzoekstudies', // TODO: Can we link to: page.researchStudies.index.title ??
study: {
overview: 'Overzicht',
contributors: 'Onderzoekers',
apps: 'Apps',
settings: 'Instellingen',
}
}
}
},
form: {
profile: {
firstName: {
label: 'Voornaam'
},
lastName: {
label: 'Achternaam'
},
faculty: {
label: 'Faculteit'
},
university: {
label: 'Universiteit'
},
mobilePhone: {
label: 'Mobiletelefoon'
},
idNumber: {
label: 'P Nummer'
},
profileImage: {
label: 'Profiel plaat',
new: 'Klik om te uploaden',
update: 'Vervangen',
}
},
researchStudy: {
studyName: {
label: 'Studienaam'
},
studyShortDescription: {
label: 'Korte beschrijving onderzoek'
},
projectCode: {
label: 'Onderzoekscode'
},
usesHumanSubjectData: {
label: 'Maakt gebruik van gegevens van personen'
},
studyField: {
label: 'Studiegebied'
},
studyImage: {
label: 'Study plaat',
new: 'Klik om te uploaden',
update: 'Vervangen',
},
startDate: {
label: 'Start datum'
},
created_at: 'Aangemaakt',
updated_at: 'Gewijzigd',
},
contributorInvite: {
first_name: {
label: 'Voornaam'
},
last_name: {
label: 'Achternaam'
},
email_address: {
label: 'Emailadrs'
},
role: {
label: 'Rol'
},
},
apps: {
version: {
label: 'Versie'
},
contributor: {
label: 'Onderzoeker'
}
}
},
'ui.rug.form.action.save': 'Bewaar',
'ui.rug.form.action.cancel': 'Anuleer',
}

26
pages/profile/edit.vue

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
<v-container>
<ui-rug-card-form :form="form">
<ui-rug-card-title>
{{ $t('page.profile.edit.header') }}
{{ $t('page.profile.edit.title') }}
</ui-rug-card-title>
<v-card-text class="d-flex flex-row mb-6">
@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
id="formData.first_name"
v-model="formData.first_name"
:error-messages="form.getError('formData.first_name')"
:label="$t('form.label.firstName')"
:label="$t('form.profile.firstName.label')"
@blur="form.onBlur"
></v-text-field>
@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
id="formData.last_name"
v-model="formData.last_name"
:error-messages="form.getError('formData.last_name')"
:label="$t('form.label.lastName')"
:label="$t('form.profile.lastName.label')"
@blur="form.onBlur"
></v-text-field>
@ -30,14 +30,14 @@ @@ -30,14 +30,14 @@
:items="faculties"
item-text="name"
item-value="id"
:label="$t('form.label.faculty')"
:label="$t('form.profile.faculty.label')"
></v-select>
<v-text-field
id="formData.mobilephone"
v-model="formData.mobilephone"
:error-messages="form.getError('formData.mobilephone')"
:label="$t('form.label.mobilePhone')"
:label="$t('form.profile.mobilePhone.label')"
@blur="form.onBlur"
></v-text-field>
@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
id="formData.idnumber"
v-model="formData.idnumber"
:error-messages="form.getError('formData.idnumber')"
:label="$t('form.label.idNumber')"
:label="$t('form.profile.idNumber.label')"
@blur="form.onBlur"
></v-text-field>
</v-col>
@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
v-model="formData.avatar"
type="hidden"
:error-messages="form.getError('formData.avatar')"
:label="$t('form.label.profileAvatar')"
:label="$t('form.profile.profileImage.label')"
></v-text-field>
<v-avatar size="300">
@ -70,13 +70,13 @@ @@ -70,13 +70,13 @@
<client-only>
<image-uploader
:preview="false"
:className="['fileinput', { 'fileinput--loaded': hasImage }]"
:class-name="['fileinput', { 'fileinput--loaded': hasImage }]"
capture="false"
:debug="0"
:quality="0.9"
doNotResize="['gif','svg']"
:autoRotate="true"
outputFormat="verbose"
do-not-resize="['gif','svg']"
:auto-rotate="true"
output-format="verbose"
@input="setImage"
>
<label slot="upload-label" for="fileInput">
@ -94,7 +94,9 @@ @@ -94,7 +94,9 @@
</svg>
</figure>
<span class="upload-caption">{{
hasImage ? 'Replace' : 'Click to upload'
hasImage
? $t('form.profile.profileImage.update')
: $t('form.profile.profileImage.new')
}}</span>
</label>
</image-uploader>

15
pages/researchStudies/_studyId/apps/windows-vdi/index.vue

@ -112,24 +112,33 @@ export default { @@ -112,24 +112,33 @@ export default {
}
},
data() {
const $t = this.$t.bind(this)
return {
search: '',
headers: [
{
text: 'Version',
text: $t('form.apps.version.label'),
value: 'version',
},
{
text: 'Contributor',
text: $t('form.apps.version.label'),
value: 'contributor',
},
{
text: 'Action',
text: '',
value: 'actions',
},
],
}
},
head() {
const $t = this.$t.bind(this)
return {
title: $t('page.researchStudies.studyId.apps.title', {
study_name: this.study.name,
}),
}
},
methods: {
customFilter(_, search, item) {
search = search.toString().toLowerCase()

40
pages/researchStudies/_studyId/contributors/_contributorId/detail.vue

@ -1,7 +1,11 @@ @@ -1,7 +1,11 @@
<template>
<v-card>
<ui-rug-card-title>
{{ $t('page.studies.study.contributors.contributor.detail.title') }}
{{
$t(
'page.researchStudies.studyId.contributors.contributorId.detail.title'
)
}}
{{ contributor.researcher.display_name }}
</ui-rug-card-title>
@ -15,11 +19,7 @@ @@ -15,11 +19,7 @@
<tr>
<td>
{{
$t(
'page.studies.study.contributors.contributor.detail.study_name'
)
}}
{{ $t('form.researchStudy.studyName.label') }}
</td>
<td>{{ study.name }}</td>
<td rowspan="7">
@ -36,41 +36,27 @@ @@ -36,41 +36,27 @@
<tr>
<td>
{{
$t(
'page.studies.study.contributors.contributor.detail.first_name'
)
}}
{{ $t('form.profile.firstName.label') }}
</td>
<td>{{ contributor.researcher.first_name }}</td>
</tr>
<tr>
<td>
{{
$t('page.studies.study.contributors.contributor.detail.last_name')
}}
{{ $t('form.profile.lastName.label') }}
</td>
<td>{{ contributor.researcher.last_name }}</td>
</tr>
<tr>
<td>
{{
$t(
'page.studies.study.contributors.contributor.detail.email_address'
)
}}
{{ $t('form.contributorInvite.email_address.label') }}
</td>
<td>{{ contributor.researcher.email_address }}</td>
</tr>
<tr>
<td>
{{
$t(
'page.studies.study.contributors.contributor.detail.university'
)
}}
{{ $t('form.profile.university.label') }}
</td>
<td>
{{
@ -83,9 +69,7 @@ @@ -83,9 +69,7 @@
<tr>
<td>
{{
$t('page.studies.study.contributors.contributor.detail.faculty')
}}
{{ $t('form.profile.faculty.label') }}
</td>
<td>
{{
@ -98,7 +82,7 @@ @@ -98,7 +82,7 @@
<tr>
<td>
{{ $t('page.studies.study.contributors.contributor.detail.role') }}
{{ $t('form.contributorInvite.role.label') }}
</td>
<td>{{ contributor.role }}</td>
</tr>

8
pages/researchStudies/_studyId/contributors/_contributorId/edit.vue

@ -2,7 +2,11 @@ @@ -2,7 +2,11 @@
<v-container>
<ui-rug-card-form :form="form">
<ui-rug-card-title>
{{ $t('page.studies.study.contributors.contributor.edit.title') }}
{{
$t(
'page.researchStudies.studyId.contributors.contributorId.edit.title'
)
}}
</ui-rug-card-title>
<v-card-text class="flex-row mb-6">
@ -18,7 +22,7 @@ @@ -18,7 +22,7 @@
:items="roles"
item-text="name"
item-value="id"
:label="$t('form.contributorRole')"
:label="$t('form.contributorInvite.role.label')"
></v-select>
</v-card-text>
</ui-rug-card-form>

2
pages/researchStudies/_studyId/contributors/index.vue

@ -14,9 +14,7 @@ @@ -14,9 +14,7 @@
export default {
async asyncData({ store, route }) {
const studyId = route.params.studyId
await store.dispatch('studies/getStudy', { studyId })
// This does not work when you reload the browser.... It looses this information in the store..... why?? Now we need to get the data every time/call
const study = store.getters['studies/getActiveStudy']
const studyAdmin = store.getters['authorisation/isAdminOfStudy']({

16
pages/researchStudies/_studyId/contributors/invite.vue

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
<v-col cols="12">
<ui-rug-card-form :form="form">
<ui-rug-card-title>
{{ $t('page.studies.study.contributors.contributor.invite.title') }}
{{ $t('page.researchStudies.studyId.contributors.invite.title') }}
</ui-rug-card-title>
<v-card-text class="flex-row mb-6">
@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
id="formData.first_name"
v-model="formData.first_name"
:error-messages="form.getError('formData.first_name')"
:label="$t('form.contributorFirstName')"
:label="$t('form.contributorInvite.first_name.label')"
@blur="form.onBlur"
></v-text-field>
@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
id="formData.last_name"
v-model="formData.last_name"
:error-messages="form.getError('formData.last_name')"
:label="$t('form.contributorLastName')"
:label="$t('form.contributorInvite.last_name.label')"
@blur="form.onBlur"
></v-text-field>
@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@
id="formData.email"
v-model="formData.email"
:error-messages="form.getError('formData.email')"
:label="$t('form.contributorEmail')"
:label="$t('form.contributorInvite.email_address.label')"
@blur="form.onBlur"
></v-text-field>
@ -39,7 +39,7 @@ @@ -39,7 +39,7 @@
:items="studyRoles"
item-text="name"
item-value="id"
:label="$t('form.contributorRole')"
:label="$t('form.contributorInvite.role.label')"
></v-select>
</v-card-text>