73 lines
2.9 KiB
Vue
73 lines
2.9 KiB
Vue
<template>
|
|
<div>
|
|
<div v-if="display == 'grid'" class="bg-white p-4 border-grey rounded border flex-1">
|
|
<div class="flex h-full">
|
|
<div class="flex-1 flex flex-col justify-between">
|
|
<div>
|
|
<div>
|
|
<router-link :to="{name: 'environments', params: {id: id}}" class="text-blue-dark no-underline hover:underline focus:underline"><h2 class="mb-1">{{ application.name }}</h2></router-link>
|
|
</div>
|
|
|
|
<div class="overflow-hidden whitespace-no-wrap truncate">
|
|
<a href="#0" class="text-blue-dark no-underline hover:underline focus:underline">{{ application.environments['prod'].url }}</a>
|
|
</div>
|
|
</div>
|
|
|
|
<application-tags :type="application.type" :level="application.level" class="mt-6"></application-tags>
|
|
</div>
|
|
|
|
<div class="flex-none ml-2">
|
|
<button type="button" @click="starred = !starred" class="focus:outline-none" :class="[starred ? 'text-orange hover:text-orange-light focus:text-orange-light' : 'text-grey focus:text-orange hover:text-orange']">
|
|
<svg class="h-6 w-6 fill-current" role="presentation"><use :xlink:href="`/img/icons.symbol.svg#state__${starred ? 'starred' : 'unstarred'}`"></use></svg>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div v-if="display == 'list'" class="bg-white p-3 border-grey border-b">
|
|
<div class="-mx-2">
|
|
<div class="flex flex-row-reverse items-center justify-between">
|
|
<div class="flex flex-1 justify-between items-center -mx-2">
|
|
<div class="flex-1 px-2">
|
|
<router-link :to="{name: 'environments', params: {id: id}}" class="text-blue-dark no-underline hover:underline focus:underline"><h2 class="text-base font-normal mb-1">{{ application.name }}</h2></router-link>
|
|
</div>
|
|
|
|
<application-tags :type="application.type" :level="application.level" class="w-1/4 px-2"></application-tags>
|
|
|
|
<div class="w-2/5 px-2">
|
|
<a href="#0" class="text-blue-dark no-underline hover:underline focus:underline">{{ application.environments['prod'].url }}</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="px-2">
|
|
<button type="button" @click="starred = !starred" class="focus:outline-none" :class="[starred ? 'text-orange hover:text-orange-light focus:text-orange-light' : 'text-grey focus:text-orange hover:text-orange']">
|
|
<svg class="h-6 w-6 fill-current" role="presentation"><use :xlink:href="`/img/icons.symbol.svg#state__${starred ? 'starred' : 'unstarred'}`"></use></svg>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import ApplicationTags from '@/components/Application/ApplicationTags'
|
|
|
|
export default {
|
|
components: {
|
|
ApplicationTags,
|
|
},
|
|
|
|
props: {
|
|
application: Object,
|
|
display: String,
|
|
id: Number,
|
|
},
|
|
|
|
data() {
|
|
return {
|
|
starred: false,
|
|
}
|
|
}
|
|
}
|
|
</script>
|