Add environment page

This commit is contained in:
Oliver Davies 2018-12-27 02:38:19 +00:00
parent e53570539e
commit 0a53808d73
2 changed files with 248 additions and 0 deletions

View file

@ -1,6 +1,7 @@
import Vue from 'vue'
import Router from 'vue-router'
import Applications from '@/views/Applications'
import Environment from '@/views/Environment'
import Environments from '@/views/Environments'
Vue.use(Router)
@ -17,6 +18,12 @@ export default new Router({
name: 'environments',
component: Environments,
props: true,
},
{
path: '/:id/environments/:environmentName',
name: 'environment',
component: Environment,
props: true,
}
]
})

241
src/views/Environment.vue Normal file
View file

@ -0,0 +1,241 @@
<template>
<div>
<div class="fixed pin-t w-full z-30">
<navbar></navbar>
<title-block>
<template slot="left">
<div class="text-xs mb-3">
<ol class="list-reset flex">
<li class="flex items-center pr-1">
<router-link to="/" class="text-blue-dark no-underline hover:underline mr-1">Applications</router-link>
<svg class="w-3 h-3 fill-current text-grey" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M12.95 10.707l.707-.707L8 4.343 6.586 5.757 10.828 10l-4.242 4.243L8 15.657l4.95-4.95z" fill-rule="evenodd"/></svg>
</li>
<li class="flex items-center pr-1">
<router-link :to="{ name: 'environments' }" class="text-blue-dark no-underline hover:underline mr-1">{{ application.name }}</router-link>
<svg class="w-3 h-3 fill-current text-grey" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M12.95 10.707l.707-.707L8 4.343 6.586 5.757 10.828 10l-4.242 4.243L8 15.657l4.95-4.95z" fill-rule="evenodd"/></svg>
</li>
<li>{{ environment.name }}</li>
</ol>
</div>
<button class="flex flex-1 items-center justify-between md:justify-start">
<div class="text-2xl font-hairline mr-2">{{ application.name }} : {{ environment.name }}</div>
<svg class="h-6 w-6 text-blue-dark fill-current" role="presentation"><use xlink:href="/img/icons.symbol.svg#actions__down-arrow"></use></svg>
</button>
</template>
<template slot="right">
<header-buttons :links="[
{ title: 'Add database', icon: 'actions__new-database', disabled: false },
{ title: 'Git Info', icon: 'actions__info', disabled: false },
{ title: 'Rename', icon: 'actions__edit', disabled: false },
{ title: 'Cancel', icon: 'actions__remove--circle', disabled: false },
]"></header-buttons>
</template>
</title-block>
</div>
<div class="mt-48">
<div class="-mt-4 md:-mt-2 flex flex-row-reverse h-full">
<div class="flex-1 p-4 lg:p-12 ml-16 lg:ml-64 overflow-x-hidden">
<div class="mb-6">
<div>
<h1 class="text-hairline mb-2">Overview</h1>
<application-tags :type="application.type" :level="application.level"></application-tags>
</div>
<div class="my-10">
<a :href="environment.url" class="flex items-center text-sm text-blue-dark no-underline hover:underline focus:underline">
<svg class="h-6 w-6 fill-current mr-1" role="presentation"><use xlink:href="/img/icons.symbol.svg#alpha__globe"></use></svg>
{{ environment.url }}
</a>
</div>
<div class="mb-6">
<div class="flex flex-wrap -mx-4 -mb-4">
<div class="w-full md:w-1/3 px-4 mb-4">
<div class="border border-grey rounded shadow bg-white overflow-hidden">
<div class="border-t-4 border-teal">
<div class="border-b border-grey-dark">
<div class="px-3 py-4">
<div class="flex flex-row-reverse">
<div class="flex-1">
<h2 class="text-grey-darker text-base mb-1">Code</h2>
<div class="text-xs text-grey-darker">{{ environment.name }}: {{ environment.label }}</div>
</div>
<div class="mr-3">
<svg class="h-8 w-8 fill-current text-teal" role="presentation"><use xlink:href="/img/icons.symbol.svg#objects__code"></use></svg>
</div>
</div>
</div>
</div>
<div>
<ul class="list-reset flex -ml-px">
<li class="w-1/2 flex-1 text-center border-l border-grey-dark">
<a href="#0" class="py-3 text-blue-dark text-xs font-bold no-underline hover:underline focus:underline hover:bg-grey-lighter focus:bg-grey-lighter focus:outline-none block">
<svg class="h-6 w-6 fill-current mb-2" role="presentation"><use xlink:href="/img/icons.symbol.svg#objects__fork"></use></svg>
<span class="block">Deploy</span>
</a>
</li>
<li class="w-1/2 flex-1 text-center border-l border-grey-dark">
<a href="#0" class="py-3 text-blue-dark text-xs font-bold no-underline hover:underline focus:underline hover:bg-grey-lighter focus:bg-grey-lighter focus:outline-none block">
<svg class="h-6 w-6 fill-current mb-2" role="presentation"><use xlink:href="/img/icons.symbol.svg#actions__switch"></use></svg>
<span class="block">Switch</span>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="w-full md:w-1/3 px-4 mb-4">
<div class="border border-grey rounded shadow bg-white overflow-hidden">
<div class="border-t-4 border-teal">
<div class="border-b border-grey-dark">
<div class="px-3 py-4">
<div class="flex flex-row-reverse">
<div class="flex-1">
<h2 class="text-grey-darker text-base mb-1">Databases</h2>
<div class="text-xs text-grey-darker">{{ environment.name }}</div>
</div>
<div class="mr-3">
<svg class="h-8 w-8 fill-current text-teal" role="presentation"><use xlink:href="/img/icons.symbol.svg#objects__database"></use></svg>
</div>
</div>
</div>
</div>
<div>
<ul class="list-reset flex -ml-px">
<li class="w-1/2 flex-1 text-center border-l border-grey-dark">
<a href="#0" class="py-3 text-blue-dark text-xs font-bold no-underline hover:underline focus:underline hover:bg-grey-lighter focus:bg-grey-lighter focus:outline-none block">
<svg class="h-6 w-6 fill-current mb-2" role="presentation"><use xlink:href="/img/icons.symbol.svg#actions__copy"></use></svg>
<span class="block">Copy</span>
</a>
</li>
<li class="w-1/2 flex-1 text-center border-l border-grey-dark">
<a href="#0" class="py-3 text-blue-dark text-xs font-bold no-underline hover:underline focus:underline hover:bg-grey-lighter focus:bg-grey-lighter focus:outline-none block">
<svg class="h-6 w-6 fill-current mb-2" role="presentation"><use xlink:href="/img/icons.symbol.svg#actions__backup"></use></svg>
<span class="block">Back up</span>
</a>
</li>
<li class="w-1/2 flex-1 text-center border-l border-grey-dark">
<a href="#0" class="py-3 text-blue-dark text-xs font-bold no-underline hover:underline focus:underline hover:bg-grey-lighter focus:bg-grey-lighter focus:outline-none block">
<svg class="h-6 w-6 fill-current mb-2" role="presentation"><use xlink:href="/img/icons.symbol.svg#actions__restore"></use></svg>
<span class="block">Restore</span>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="w-full md:w-1/3 px-4 mb-4">
<div class="border border-grey rounded shadow bg-white overflow-hidden">
<div class="border-t-4 border-teal">
<div class="border-b border-grey-dark">
<div class="px-3 py-4">
<div class="flex flex-row-reverse">
<div class="flex-1">
<h2 class="text-grey-darker text-base mb-1">Files</h2>
<div class="text-xs text-grey-darker">{{ environment.name }}</div>
</div>
<div class="mr-3">
<svg class="h-8 w-8 fill-current text-teal" role="presentation"><use xlink:href="/img/icons.symbol.svg#objects__environment"></use></svg>
</div>
</div>
</div>
</div>
<div>
<ul class="list-reset flex -ml-px">
<li class="w-1/2 flex-1 text-center border-l border-grey-dark">
<a href="#0" class="py-3 text-blue-dark text-xs font-bold no-underline hover:underline focus:underline hover:bg-grey-lighter focus:bg-grey-lighter focus:outline-none block">
<svg class="h-6 w-6 fill-current mb-2" role="presentation"><use xlink:href="/img/icons.symbol.svg#actions__copy"></use></svg>
<span class="block">Copy</span>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- <div class="lg:flex lg:items-baseline mb-2">
<div class="mr-16 mb-4 lg:mb-0">
<h1 class="text-4xl font-hairline mb-2">Environments</h1>
<application-tags :type="application.type" :level="application.level"></application-tags>
</div>
<div class="lg:flex lg:flex-row-reverse flex-1 justify-between _bg-blue items-baseline">
<div class="w-full lg:w-1/2 xl:w-1/3">
<form action="#">
<input type="text" placeholder="Filter environments" class="w-full py-2 px-3 border border-grey-darker rounded">
</form>
</div>
<div class="flex-1">
<toggle-help @toggle="help.hidden = !help.hidden"></toggle-help>
</div>
</div>
</div>
</div> -->
</div>
</div>
<sidebar :links="[
{ title: 'Environments', icon: 'alpha__grid', active: true, disabled: false },
{ title: 'Product Keys', icon: 'locations__keys', active: false, disabled: true },
{ title: 'Security', icon: 'alpha__security', active: false, disabled: true },
{ title: 'Acquia Search', icon: 'actions__search', active: false, disabled: false },
]"></sidebar>
</div>
</div>
</div>
</template>
<script>
import ApplicationTags from '@/components/Application/ApplicationTags'
import data from '@/data.json'
export default {
components: {
ApplicationTags,
},
props: {
id: String,
environmentName: String,
},
data() {
return {
applications: data.applications,
}
},
computed: {
application: function () {
return this.applications[this.id]
},
environment: function () {
return this.application['environments'][this.environmentName]
}
},
}
</script>