|
| 1 | +<template> |
| 2 | + <div class="bg-white sticky top-0"> |
| 3 | + <nav class="flex items-center justify-between flex-wrap container mx-auto border-b"> |
| 4 | + <div class="flex items-center flex-shrink-0 text-white mr-6"> |
| 5 | + <span class="text-2xl tracking-tight"> |
| 6 | + <router-link to="/" class="text-indigo-900 py-2"> |
| 7 | + Paket |
| 8 | + </router-link> |
| 9 | + </span> |
| 10 | + </div> |
| 11 | + <div class="block lg:hidden"> |
| 12 | + <button class="flex items-center px-3 py-2 border rounded text-purple-700 border-gray-400 hover:text-white hover:border-white"> |
| 13 | + <svg class="fill-current h-3 w-3" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><title>Menu</title><path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z"/></svg> |
| 14 | + </button> |
| 15 | + </div> |
| 16 | + <div class="w-full block flex-grow lg:flex lg:items-center lg:w-auto"> |
| 17 | + <div class="lg:flex-grow text-indigo-700"> |
| 18 | + <router-link active-class="text-indigo-900 border-indigo-700 border-b-2" :to="{name: 'dashboard'}" class="block py-3 lg:inline-block lg:mt-0 hover:text-indigo-900 mr-4"> |
| 19 | + Dashboard |
| 20 | + </router-link> |
| 21 | + <router-link active-class="text-indigo-900 border-indigo-700 border-b-2" :to="{name: 'laravel'}" class="block py-3 lg:inline-block lg:mt-0 hover:text-indigo-900 mr-4"> |
| 22 | + Laravel |
| 23 | + </router-link> |
| 24 | + <router-link active-class="text-indigo-900 border-indigo-700 border-b-2" :to="{name: 'requirements'}" class="block py-3 lg:inline-block lg:mt-0 hover:text-indigo-900 mr-4"> |
| 25 | + Requirements |
| 26 | + </router-link> |
| 27 | + <router-link active-class="text-indigo-900 border-indigo-700 border-b-2" :to="{name: 'jobs'}" class="block py-3 lg:inline-block lg:mt-0 hover:text-indigo-900"> |
| 28 | + Jobs |
| 29 | + <span :class="getJobsBadgeClass()"></span> |
| 30 | + </router-link> |
| 31 | + </div> |
| 32 | + <div class="hidden"> |
| 33 | + <a href="#console" class="inline-block text-sm px-4 py-2 leading-none border rounded text-white border-white hover:border-transparent hover:text-indigo-900 hover:bg-white mt-4 lg:mt-0">Console</a> |
| 34 | + </div> |
| 35 | + </div> |
| 36 | + </nav> |
| 37 | + </div> |
| 38 | +</template> |
| 39 | + |
| 40 | +<script> |
| 41 | + export default { |
| 42 | + methods: { |
| 43 | + getJobsBadgeClass() { |
| 44 | + const activeJobs = this.$store.getters.getActiveJobs(); |
| 45 | +
|
| 46 | + if (activeJobs.length === 0) { |
| 47 | + return 'hidden'; |
| 48 | + } |
| 49 | +
|
| 50 | + const latestJob = activeJobs[0]; |
| 51 | +
|
| 52 | + const classes = `absolute pin-r pin-t -mt-2 -mr-2 rounded-full p-1 text-xs shadow w-3 h-3`; |
| 53 | + let statusClasses = ''; |
| 54 | +
|
| 55 | + if (latestJob.status === 'Pending') { |
| 56 | + statusClasses = 'bg-yellow-300 border border-yellow-500'; |
| 57 | + } else if (latestJob.status === 'Running') { |
| 58 | + statusClasses = 'bg-blue-300 border border-blue-500'; |
| 59 | + } |
| 60 | +
|
| 61 | + return `${classes} ${statusClasses}`; |
| 62 | + }, |
| 63 | + }, |
| 64 | + } |
| 65 | +</script> |
0 commit comments