59 lines
1020 B
Vue
59 lines
1020 B
Vue
![]() |
<script>
|
||
|
import tooltipMixin from '../mixins/tooltip';
|
||
|
import timeagoMixin from '../mixins/timeago';
|
||
|
import '../../lib/utils/datetime_utility';
|
||
|
|
||
|
/**
|
||
|
* Port of ruby helper time_ago_with_tooltip
|
||
|
*/
|
||
|
|
||
|
export default {
|
||
|
props: {
|
||
|
time: {
|
||
|
type: String,
|
||
|
required: true,
|
||
|
},
|
||
|
|
||
|
tooltipPlacement: {
|
||
|
type: String,
|
||
|
required: false,
|
||
|
default: 'top',
|
||
|
},
|
||
|
|
||
|
shortFormat: {
|
||
|
type: Boolean,
|
||
|
required: false,
|
||
|
default: false,
|
||
|
},
|
||
|
|
||
|
cssClass: {
|
||
|
type: String,
|
||
|
required: false,
|
||
|
default: '',
|
||
|
},
|
||
|
},
|
||
|
|
||
|
mixins: [
|
||
|
tooltipMixin,
|
||
|
timeagoMixin,
|
||
|
],
|
||
|
|
||
|
computed: {
|
||
|
timeagoCssClass() {
|
||
|
return this.shortFormat ? 'js-short-timeago' : 'js-timeago';
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
</script>
|
||
|
<template>
|
||
|
<time
|
||
|
:class="[timeagoCssClass, cssClass]"
|
||
|
class="js-timeago js-timeago-render"
|
||
|
:title="tooltipTitle(time)"
|
||
|
:data-placement="tooltipPlacement"
|
||
|
data-container="body"
|
||
|
ref="tooltip">
|
||
|
{{timeFormated(time)}}
|
||
|
</time>
|
||
|
</template>
|