mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
Implement config for 'date-time' format
This commit is contained in:
parent
b2abbc11c7
commit
4fa8ecf772
@ -3,5 +3,5 @@
|
|||||||
Relative time from 08.03.2017
|
Relative time from 08.03.2017
|
||||||
|
|
||||||
```
|
```
|
||||||
<hc-relative-date-time dateTime="03.08.2017" />
|
<date-time dateTime="03.08.2017" />
|
||||||
```
|
```
|
||||||
29
webapp/components/DateTime/index.vue
Normal file
29
webapp/components/DateTime/index.vue
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<template>
|
||||||
|
<span>{{ dateTimeString }}</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getDateFnsLocale } from '~/locales'
|
||||||
|
import format from 'date-fns/format'
|
||||||
|
import formatRelative from 'date-fns/formatRelative'
|
||||||
|
import dateTimeConstants from '~/constants/dateTime'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'DateTime',
|
||||||
|
props: {
|
||||||
|
dateTime: {
|
||||||
|
type: [Date, String],
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
dateTimeString() {
|
||||||
|
if (dateTimeConstants.RELATIVE_DATETIME) {
|
||||||
|
return formatRelative(new Date(this.dateTime), new Date(), { locale: getDateFnsLocale(this) })
|
||||||
|
} else {
|
||||||
|
return format(new Date(this.dateTime), dateTimeConstants.ABSOLUT_DATETIME_FORMAT, { locale: getDateFnsLocale(this) })
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@ -1,9 +1,9 @@
|
|||||||
import { shallowMount } from '@vue/test-utils'
|
import { shallowMount } from '@vue/test-utils'
|
||||||
import RelativeDateTime from './'
|
import DateTime from '.'
|
||||||
|
|
||||||
const localVue = global.localVue
|
const localVue = global.localVue
|
||||||
|
|
||||||
describe('RelativeDateTime', () => {
|
describe('DateTime', () => {
|
||||||
let mocks
|
let mocks
|
||||||
let locale
|
let locale
|
||||||
let dateTime
|
let dateTime
|
||||||
@ -17,7 +17,7 @@ describe('RelativeDateTime', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const Wrapper = () => {
|
const Wrapper = () => {
|
||||||
return shallowMount(RelativeDateTime, {
|
return shallowMount(DateTime, {
|
||||||
mocks,
|
mocks,
|
||||||
localVue,
|
localVue,
|
||||||
propsData: {
|
propsData: {
|
||||||
@ -15,7 +15,7 @@
|
|||||||
<ds-text size="small">
|
<ds-text size="small">
|
||||||
<span class="bold">{{ $t('modals.deleteUser.created') }}</span>
|
<span class="bold">{{ $t('modals.deleteUser.created') }}</span>
|
||||||
<br />
|
<br />
|
||||||
<relative-date-time :date-time="userdata.createdAt" />
|
<date-time :date-time="userdata.createdAt" />
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item width="15%">
|
<ds-flex-item width="15%">
|
||||||
@ -49,7 +49,7 @@
|
|||||||
import gql from 'graphql-tag'
|
import gql from 'graphql-tag'
|
||||||
import { mapMutations } from 'vuex'
|
import { mapMutations } from 'vuex'
|
||||||
import { SweetalertIcon } from 'vue-sweetalert-icons'
|
import { SweetalertIcon } from 'vue-sweetalert-icons'
|
||||||
import RelativeDateTime from '~/components/RelativeDateTime'
|
import DateTime from '~/components/DateTime'
|
||||||
import UserTeaser from '~/components/UserTeaser/UserTeaser'
|
import UserTeaser from '~/components/UserTeaser/UserTeaser'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -57,7 +57,7 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
UserTeaser,
|
UserTeaser,
|
||||||
SweetalertIcon,
|
SweetalertIcon,
|
||||||
RelativeDateTime,
|
DateTime,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
userdata: { type: Object, required: true },
|
userdata: { type: Object, required: true },
|
||||||
|
|||||||
@ -1,23 +0,0 @@
|
|||||||
<template>
|
|
||||||
<span>{{ relativeDateTime }}</span>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { getDateFnsLocale } from '~/locales'
|
|
||||||
import formatRelative from 'date-fns/formatRelative'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'HcRelativeDateTime',
|
|
||||||
props: {
|
|
||||||
dateTime: {
|
|
||||||
type: [Date, String],
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
relativeDateTime() {
|
|
||||||
return formatRelative(new Date(this.dateTime), new Date(), { locale: getDateFnsLocale(this) })
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
@ -36,7 +36,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<span v-if="!userOnly" class="text">
|
<span v-if="!userOnly" class="text">
|
||||||
<base-icon name="clock" />
|
<base-icon name="clock" />
|
||||||
<relative-date-time :date-time="dateTime" />
|
<date-time :date-time="dateTime" />
|
||||||
<slot name="dateTime"></slot>
|
<slot name="dateTime"></slot>
|
||||||
</span>
|
</span>
|
||||||
<span v-else class="text">{{ userName }}</span>
|
<span v-else class="text">{{ userName }}</span>
|
||||||
@ -48,13 +48,13 @@
|
|||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
import RelativeDateTime from '~/components/RelativeDateTime'
|
import DateTime from '~/components/DateTime'
|
||||||
import ProfileAvatar from '~/components/_new/generic/ProfileAvatar/ProfileAvatar'
|
import ProfileAvatar from '~/components/_new/generic/ProfileAvatar/ProfileAvatar'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'UserTeaser',
|
name: 'UserTeaser',
|
||||||
components: {
|
components: {
|
||||||
RelativeDateTime,
|
DateTime,
|
||||||
ProfileAvatar,
|
ProfileAvatar,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<template #reportedOn="scope">
|
<template #reportedOn="scope">
|
||||||
<ds-text size="small">
|
<ds-text size="small">
|
||||||
<hc-relative-date-time :date-time="scope.row.createdAt" data-test="filed-date" />
|
<date-time :date-time="scope.row.createdAt" data-test="filed-date" />
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</template>
|
</template>
|
||||||
<template #reasonCategory="scope">
|
<template #reasonCategory="scope">
|
||||||
@ -29,12 +29,12 @@
|
|||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import UserTeaser from '~/components/UserTeaser/UserTeaser'
|
import UserTeaser from '~/components/UserTeaser/UserTeaser'
|
||||||
import HcRelativeDateTime from '~/components/RelativeDateTime'
|
import DateTime from '~/components/DateTime'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
UserTeaser,
|
UserTeaser,
|
||||||
HcRelativeDateTime,
|
DateTime,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
filed: { type: Array, default: () => [] },
|
filed: { type: Array, default: () => [] },
|
||||||
|
|||||||
5
webapp/constants/dateTime.js
Normal file
5
webapp/constants/dateTime.js
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// this file is duplicated in `backend/src/config/metadata.js` and `webapp/constants/metadata.js`
|
||||||
|
export default {
|
||||||
|
RELATIVE_DATETIME: true,
|
||||||
|
ABSOLUT_DATETIME_FORMAT: 'P',
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user