gitlab-org--gitlab-foss/app/assets/javascripts/pipelines/components/graph/stage_column_component.vue

84 lines
1.5 KiB
Vue
Raw Normal View History

<script>
2018-01-05 00:18:35 +00:00
import jobComponent from './job_component.vue';
import dropdownJobComponent from './dropdown_job_component.vue';
2018-01-05 00:18:35 +00:00
export default {
components: {
jobComponent,
dropdownJobComponent,
},
2018-01-05 00:18:35 +00:00
props: {
title: {
type: String,
required: true,
},
2018-01-05 00:18:35 +00:00
jobs: {
type: Array,
required: true,
},
2018-01-05 00:18:35 +00:00
isFirstColumn: {
type: Boolean,
required: false,
default: false,
},
2018-01-05 00:18:35 +00:00
stageConnectorClass: {
type: String,
required: false,
default: '',
},
},
2018-01-05 00:18:35 +00:00
methods: {
firstJob(list) {
return list[0];
},
jobId(job) {
return `ci-badge-${job.name}`;
},
2018-01-05 00:18:35 +00:00
buildConnnectorClass(index) {
return index === 0 && !this.isFirstColumn ? 'left-connector' : '';
},
},
2018-01-05 00:18:35 +00:00
};
</script>
<template>
<li
class="stage-column"
:class="stageConnectorClass">
<div class="stage-name">
2018-01-05 00:18:35 +00:00
{{ title }}
</div>
<div class="builds-container">
<ul>
<li
v-for="(job, index) in jobs"
:key="job.id"
class="build"
:class="buildConnnectorClass(index)"
2018-01-05 00:18:35 +00:00
:id="jobId(job)"
>
<div class="curve"></div>
<job-component
v-if="job.size === 1"
:job="job"
css-class-job-name="build-content"
2018-01-05 00:18:35 +00:00
/>
<dropdown-job-component
v-if="job.size > 1"
:job="job"
2018-01-05 00:18:35 +00:00
/>
</li>
</ul>
</div>
</li>
</template>