%PDF- %PDF-
| Direktori : /home/graphicd/public_html/vebto/vendor/laravel/horizon/resources/js/screens/recentJobs/ |
| Current File : /home/graphicd/public_html/vebto/vendor/laravel/horizon/resources/js/screens/recentJobs/job-row.vue |
<template>
<tr>
<td>
<router-link :title="job.name" :to="{ name: $route.params.type+'-jobs-preview', params: { jobId: job.id }}">
{{ jobBaseName(job.name) }}
</router-link>
<small class="badge badge-secondary badge-sm"
v-tooltip:top="`Delayed for ${delayed}`"
v-if="delayed && (job.status == 'reserved' || job.status == 'pending')">
Delayed
</small>
<br>
<small class="text-muted">
Queue: {{job.queue}}
<span v-if="job.payload.tags && job.payload.tags.length" class="text-break">
| Tags: {{ job.payload.tags && job.payload.tags.length ? job.payload.tags.slice(0,3).join(', ') : '' }}<span v-if="job.payload.tags.length > 3"> ({{ job.payload.tags.length - 3 }} more)</span>
</span>
</small>
</td>
<td class="table-fit">
{{ readableTimestamp(job.payload.pushedAt) }}
</td>
<td v-if="$route.params.type=='completed'" class="table-fit">
{{ readableTimestamp(job.completed_at) }}
</td>
<td v-if="$route.params.type=='completed'" class="table-fit">
<span>{{ job.completed_at ? (job.completed_at - job.reserved_at).toFixed(2)+'s' : '-' }}</span>
</td>
</tr>
</template>
<script type="text/ecmascript-6">
import phpunserialize from 'phpunserialize'
import moment from 'moment-timezone';
export default {
props: {
job: {
type: Object,
required: true
}
},
computed: {
unserialized() {
try {
return phpunserialize(this.job.payload.data.command);
}catch(err){
//
}
},
delayed() {
if (this.unserialized && this.unserialized.delay && this.unserialized.delay.date) {
return moment.tz(this.unserialized.delay.date, this.unserialized.delay.timezone)
.fromNow(true);
} else if (this.unserialized && this.unserialized.delay) {
return this.formatDate(this.job.payload.pushedAt).add(this.unserialized.delay, 'seconds')
.fromNow(true);
}
return null;
},
},
}
</script>