Add application display switcher

This commit is contained in:
Oliver Davies 2018-12-24 08:46:33 +00:00
parent 0a28f22748
commit bdfba4fb78
3 changed files with 77 additions and 5 deletions

View file

@ -1,8 +1,8 @@
<template>
<div>
<div class="mb-6 bg-white p-4 border border-grey rounded">
<div v-if="display == 'grid'" class="bg-white p-4 border-grey rounded border">
<div class="flex flex-col h-full justify-between">
<div class="flex justify-between mb-12">
<div class="flex mb-12" :class="[display == 'grid' ? '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>
@ -22,6 +22,28 @@
<application-tags :type="application.type" :level="application.level"></application-tags>
</div>
</div>
<div v-if="display == 'list'" class="bg-white p-3 border-grey border-b">
<div class="flex flex-row-reverse items-center justify-between">
<div class="flex flex-1 justify-between">
<div class="flex-1">
<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/5"></application-tags>
<div class="w-2/5">
<a href="#0" class="text-blue-dark no-underline hover:underline focus:underline">{{ application.environments['prod'].url }}</a>
</div>
</div>
<div class="mr-3">
<button type="button" @click="starred = !starred" class="focus:outline-none">
<svg class="h-6 w-6 text-orange fill-current" role="presentation"><use :xlink:href="`/img/icons.symbol.svg#state__${starred ? 'starred' : 'unstarred'}`"></use></svg>
</button>
</div>
</div>
</div>
</div>
</template>
@ -35,6 +57,7 @@ export default {
props: {
application: Object,
display: String,
id: Number,
},

View file

@ -0,0 +1,36 @@
<template>
<div>
<div class="bg-grey-lightest rounded overflow-hidden">
<button type="button" class="p-2 focus:outline-none" :class="[mode == 'grid' ? 'bg-blue-light text-white' : 'text-grey-darkest']" @click="changeMode('grid')">
<svg class="h-5 w-5 fill-current"role="presentation"><use xlink:href="/img/icons.symbol.svg#actions__grid"></use></svg>
<span class="hidden">Grid</span>
</button>
<button type="button" class="p-2 focus:outline-none" :class="[mode == 'list' ? 'bg-blue-light text-white' : 'text-grey-darkest']" @click="changeMode('list')">
<svg class="h-5 w-5 fill-current" role="presentation"><use xlink:href="/img/icons.symbol.svg#actions__list"></use></svg>
<span class="hidden">List</span>
</button>
</div>
</div>
</template>
<script>
export default {
props: {
mode: String,
},
// data() {
// return {
// mode: 'grid'
// }
// },
methods: {
changeMode(mode) {
this.mode = mode
this.$emit('display-changed', mode)
}
}
}
</script>