added external link icon

This commit is contained in:
Phil Hughes 2018-05-25 17:16:57 +01:00
parent f59b9778d9
commit af42fa2364
No known key found for this signature in database
GPG key ID: 32245528C52E0F9F
4 changed files with 38 additions and 4 deletions

View file

@ -1,8 +1,10 @@
<script>
import Icon from '../../../vue_shared/components/icon.vue';
import CiIcon from '../../../vue_shared/components/ci_icon.vue';
export default {
components: {
Icon,
CiIcon,
},
props: {
@ -31,8 +33,13 @@ export default {
<a
:href="job.path"
target="_blank"
v-text="jobId"
class="ide-external-link"
>
{{ jobId }}
<icon
name="external-link"
:size="12"
/>
</a>
</span>
</div>

View file

@ -1,6 +1,7 @@
<script>
import { mapActions, mapGetters, mapState } from 'vuex';
import LoadingIcon from '../../../vue_shared/components/loading_icon.vue';
import Icon from '../../../vue_shared/components/icon.vue';
import CiIcon from '../../../vue_shared/components/ci_icon.vue';
import Tabs from '../../../vue_shared/components/tabs/tabs';
import Tab from '../../../vue_shared/components/tabs/tab.vue';
@ -9,13 +10,14 @@ import JobsList from '../jobs/list.vue';
export default {
components: {
LoadingIcon,
Icon,
CiIcon,
Tabs,
Tab,
JobsList,
},
computed: {
...mapGetters('pipelines', ['jobsCount', 'failedJobsCount', 'failedStages']),
...mapGetters('pipelines', ['jobsCount', 'failedJobsCount', 'failedStages', 'pipelineFailed']),
...mapState('pipelines', ['isLoadingPipeline', 'latestPipeline', 'stages', 'isLoadingJobs']),
},
created() {
@ -49,13 +51,20 @@ export default {
<a
:href="latestPipeline.path"
target="_blank"
class="ide-external-link"
>
#{{ latestPipeline.id }}
<icon
name="external-link"
:size="12"
/>
</a>
</span>
</header>
<tabs>
<tab active>
<tab
:active="!pipelineFailed"
>
<template slot="title">
Jobs
<span
@ -70,7 +79,9 @@ export default {
:stages="stages"
/>
</tab>
<tab>
<tab
:active="pipelineFailed"
>
<template slot="title">
Failed Jobs
<span

View file

@ -1,5 +1,8 @@
export const hasLatestPipeline = state => !state.isLoadingPipeline && !!state.latestPipeline;
export const pipelineFailed = state =>
state.latestPipeline && state.latestPipeline.details.status.text === 'failed';
export const failedStages = state =>
state.stages.filter(stage => stage.status.text === 'failed').map(stage => ({
...stage,

View file

@ -1135,3 +1135,16 @@
white-space: nowrap;
}
}
.ide-external-link {
svg {
display: none;
}
&:hover,
&:focus {
svg {
display: inline-block;
}
}
}