summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/status_svg.vue.js.es618
-rw-r--r--app/assets/javascripts/vue_pipelines_index/index.js.es67
-rw-r--r--app/assets/javascripts/vue_pipelines_index/pipelines.vue.js.es6 (renamed from app/assets/javascripts/pipelines.vue.js.es6)54
-rw-r--r--app/assets/javascripts/vue_pipelines_index/status_data_icons.js.es6 (renamed from app/assets/javascripts/runnerstats/index.js.es6)2
-rw-r--r--app/assets/javascripts/vue_pipelines_index/store.js.es615
-rw-r--r--app/assets/javascripts/vue_pipelines_index/vue_commit_link.vue.js.es650
-rw-r--r--app/assets/javascripts/vue_pipelines_loader.js.es61
-rw-r--r--app/views/projects/pipelines/index.html.haml15
8 files changed, 116 insertions, 46 deletions
diff --git a/app/assets/javascripts/status_svg.vue.js.es6 b/app/assets/javascripts/status_svg.vue.js.es6
deleted file mode 100644
index 0af35ba6f3a..00000000000
--- a/app/assets/javascripts/status_svg.vue.js.es6
+++ /dev/null
@@ -1,18 +0,0 @@
-//= require vue
-/* global Vue, gl */
-/* eslint-disable no-param-reassign */
-
-((gl) => {
- gl.VueRunnerStatus = Vue.extend({
- props: ['status'],
- template: `
- <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
- <g fill={{status.color}} fill-rule="evenodd">
- <path d={{status.pathOne}}></path>
- <path d={{status.pathTwo}}></path>
- </g>
- </svg>
- &nbsp;{{status.text}}
- `,
- });
-})(window.gl || (window.gl = {}));
diff --git a/app/assets/javascripts/vue_pipelines_index/index.js.es6 b/app/assets/javascripts/vue_pipelines_index/index.js.es6
new file mode 100644
index 00000000000..3657d9c5b0d
--- /dev/null
+++ b/app/assets/javascripts/vue_pipelines_index/index.js.es6
@@ -0,0 +1,7 @@
+//= require vue
+//= require vue-resource
+
+//= require ./store.js.es6
+//= require ./status_data_icons.js.es6
+//= require ./vue_commit_link.vue.js.es6
+//= require ./pipelines.vue.js.es6
diff --git a/app/assets/javascripts/pipelines.vue.js.es6 b/app/assets/javascripts/vue_pipelines_index/pipelines.vue.js.es6
index 1bd30feaf9e..424b29ae527 100644
--- a/app/assets/javascripts/pipelines.vue.js.es6
+++ b/app/assets/javascripts/vue_pipelines_index/pipelines.vue.js.es6
@@ -1,5 +1,3 @@
-//= require vue
-//= require_tree ./runnerstats
/* global Vue, gl */
/* eslint-disable no-param-reassign */
@@ -7,10 +5,20 @@
gl.VuePipeLines = Vue.extend({
data() {
return {
+ endpoint: `/api/v3/projects/${this.scopeId}/pipelines`,
+ pipelines: [],
runnerStats: new gl.RunnerStats(),
};
},
- props: ['pipelines', 'count'],
+ props: ['scope', 'store'],
+ created() {
+ this.store.fetchData.call(this, Vue);
+ },
+ methods: {
+ shortSha(pipeline) {
+ return pipeline.sha.slice(0, 8);
+ },
+ },
template: `
<thead>
<tr>
@@ -25,17 +33,21 @@
<tbody v-for='pipeline in pipelines'>
<tr class="commit">
<td class="commit-link">
- <a href="{{pipeline.ref}}/{{pipeline.id}}">
- <span class="ci-status ci-{{pipeline.status}}">
- <vue-runner-status
- :status='runnerStats[pipeline.status]'
- >
- </vue-runner-status>
- </span>
+ <a href="pipelines/{{pipeline.id}}">
+ <div v-if="pipeline.status === 'running'">
+ <span class="ci-status ci-{{pipeline.status}}">
+ running
+ </span>
+ </div>
+ <div v-if="pipeline.status === 'passed'">
+ <span class="ci-status ci-{{pipeline.status}}">
+ passed
+ </span>
+ </div>
</a>
</td>
<td>
- <a href="{{pipeline.ref}}/{{pipeline.id}}"><span class="pipeline-id">#{{pipeline.id}}</span>
+ <a href="pipelines/{{pipeline.id}}"><span class="pipeline-id">#{{pipeline.id}}</span>
</a><span>by</span>
<span class="api monospace">{{pipeline.user}}</span>
</td>
@@ -49,7 +61,7 @@
<path fill="#8F8F8F" fill-rule="evenodd" d="M28.7769836,18 C27.8675252,13.9920226 24.2831748,11 20,11 C15.7168252,11 12.1324748,13.9920226 11.2230164,18 L4.0085302,18 C2.90195036,18 2,18.8954305 2,20 C2,21.1122704 2.8992496,22 4.0085302,22 L11.2230164,22 C12.1324748,26.0079774 15.7168252,29 20,29 C24.2831748,29 27.8675252,26.0079774 28.7769836,22 L35.9914698,22 C37.0980496,22 38,21.1045695 38,20 C38,18.8877296 37.1007504,18 35.9914698,18 L28.7769836,18 L28.7769836,18 Z M20,25 C22.7614237,25 25,22.7614237 25,20 C25,17.2385763 22.7614237,15 20,15 C17.2385763,15 15,17.2385763 15,20 C15,22.7614237 17.2385763,25 20,25 L20,25 Z"></path>
</svg>
</div>
- <a class="commit-id monospace" href="/gitlab-org/gitlab-ce/commit/29141ed3ea6157a60d9748921782015626a17f9e">29141ed3</a>
+ <a class="commit-id monospace" href="/gitlab-org/gitlab-ce/commit/29141ed3ea6157a60d9748921782015626a17f9e">{{shortSha(pipeline)}}</a>
<p class="commit-title">
<a href="mailto:james@jameslopez.es"><img class="avatar has-tooltip s20 hidden-xs" alt="James Lopez's avatar" title="James Lopez" data-container="body" src="http://www.gravatar.com/avatar/80d3b651b4be1f1db39435c2d11f1f23?s=40&amp;d=identicon"></a>
<a class="commit-row-message" href="/gitlab-org/gitlab-ce/commit/29141ed3ea6157a60d9748921782015626a17f9e">fix broken repo 500 errors in UI and added relevant specs</a>
@@ -57,7 +69,7 @@
</td>
<td class="stage-cell">
<div class="stage-container">
- <a class="has-tooltip ci-status-icon-failed" title="Build: failed" href="{{pipeline.ref}}#build"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
+ <a class="has-tooltip ci-status-icon-failed" title="Build: failed" href="pipelines#build"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
<g fill="#D22852" fill-rule="evenodd">
<path d="M12.5,7 C12.5,3.96243388 10.0375661,1.5 7,1.5 C3.96243388,1.5 1.5,3.96243388 1.5,7 C1.5,10.0375661 3.96243388,12.5 7,12.5 C10.0375661,12.5 12.5,10.0375661 12.5,7 Z M0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 C3.13400675,14 0,10.8659932 0,7 Z"></path>
<path d="M7.72916667,6.27083333 L7.72916667,4.28939247 C7.72916667,4.12531853 7.59703895,4 7.43405116,4 L6.56594884,4 C6.40541585,4 6.27083333,4.12956542 6.27083333,4.28939247 L6.27083333,6.27083333 L4.28939247,6.27083333 C4.12531853,6.27083333 4,6.40296105 4,6.56594884 L4,7.43405116 C4,7.59458415 4.12956542,7.72916667 4.28939247,7.72916667 L6.27083333,7.72916667 L6.27083333,9.71060753 C6.27083333,9.87468147 6.40296105,10 6.56594884,10 L7.43405116,10 C7.59458415,10 7.72916667,9.87043458 7.72916667,9.71060753 L7.72916667,7.72916667 L9.71060753,7.72916667 C9.87468147,7.72916667 10,7.59703895 10,7.43405116 L10,6.56594884 C10,6.40541585 9.87043458,6.27083333 9.71060753,6.27083333 L7.72916667,6.27083333 Z" transform="rotate(-45 7 7)"></path>
@@ -66,7 +78,7 @@
</a></div>
<div class="stage-container">
- <a class="has-tooltip ci-status-icon-failed" title="Prepare: failed" href="{{pipeline.ref}}#prepare"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
+ <a class="has-tooltip ci-status-icon-failed" title="Prepare: failed" href="pipelines#prepare"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
<g fill="#D22852" fill-rule="evenodd">
<path d="M12.5,7 C12.5,3.96243388 10.0375661,1.5 7,1.5 C3.96243388,1.5 1.5,3.96243388 1.5,7 C1.5,10.0375661 3.96243388,12.5 7,12.5 C10.0375661,12.5 12.5,10.0375661 12.5,7 Z M0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 C3.13400675,14 0,10.8659932 0,7 Z"></path>
<path d="M7.72916667,6.27083333 L7.72916667,4.28939247 C7.72916667,4.12531853 7.59703895,4 7.43405116,4 L6.56594884,4 C6.40541585,4 6.27083333,4.12956542 6.27083333,4.28939247 L6.27083333,6.27083333 L4.28939247,6.27083333 C4.12531853,6.27083333 4,6.40296105 4,6.56594884 L4,7.43405116 C4,7.59458415 4.12956542,7.72916667 4.28939247,7.72916667 L6.27083333,7.72916667 L6.27083333,9.71060753 C6.27083333,9.87468147 6.40296105,10 6.56594884,10 L7.43405116,10 C7.59458415,10 7.72916667,9.87043458 7.72916667,9.71060753 L7.72916667,7.72916667 L9.71060753,7.72916667 C9.87468147,7.72916667 10,7.59703895 10,7.43405116 L10,6.56594884 C10,6.40541585 9.87043458,6.27083333 9.71060753,6.27083333 L7.72916667,6.27083333 Z" transform="rotate(-45 7 7)"></path>
@@ -75,7 +87,7 @@
</a></div>
<div class="stage-container">
- <a class="has-tooltip ci-status-icon-success" title="Notify Build: success" href="{{pipeline.ref}}#notify_build"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
+ <a class="has-tooltip ci-status-icon-success" title="Notify Build: success" href="pipelines#notify_build"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
<g fill="#31AF64" fill-rule="evenodd">
<path d="M12.5,7 C12.5,3.96243388 10.0375661,1.5 7,1.5 C3.96243388,1.5 1.5,3.96243388 1.5,7 C1.5,10.0375661 3.96243388,12.5 7,12.5 C10.0375661,12.5 12.5,10.0375661 12.5,7 Z M0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 C3.13400675,14 0,10.8659932 0,7 Z"></path>
<path d="M7.29166667,7.875 L5.54840803,7.875 C5.38293028,7.875 5.25,8.00712771 5.25,8.17011551 L5.25,9.03821782 C5.25,9.19875081 5.38360183,9.33333333 5.54840803,9.33333333 L8.24853534,9.33333333 C8.52035522,9.33333333 8.75,9.11228506 8.75,8.83960819 L8.75,8.46475969 L8.75,4.07392947 C8.75,3.92144267 8.61787229,3.79166667 8.45488449,3.79166667 L7.58678218,3.79166667 C7.42624919,3.79166667 7.29166667,3.91804003 7.29166667,4.07392947 L7.29166667,7.875 Z" transform="rotate(45 7 6.563)"></path>
@@ -84,7 +96,7 @@
</a></div>
<div class="stage-container">
- <a class="has-tooltip ci-status-icon-failed" title="Post Test: failed" href="{{pipeline.ref}}#post-test"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
+ <a class="has-tooltip ci-status-icon-failed" title="Post Test: failed" href="pipelines#post-test"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
<g fill="#D22852" fill-rule="evenodd">
<path d="M12.5,7 C12.5,3.96243388 10.0375661,1.5 7,1.5 C3.96243388,1.5 1.5,3.96243388 1.5,7 C1.5,10.0375661 3.96243388,12.5 7,12.5 C10.0375661,12.5 12.5,10.0375661 12.5,7 Z M0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 C3.13400675,14 0,10.8659932 0,7 Z"></path>
<path d="M7.72916667,6.27083333 L7.72916667,4.28939247 C7.72916667,4.12531853 7.59703895,4 7.43405116,4 L6.56594884,4 C6.40541585,4 6.27083333,4.12956542 6.27083333,4.28939247 L6.27083333,6.27083333 L4.28939247,6.27083333 C4.12531853,6.27083333 4,6.40296105 4,6.56594884 L4,7.43405116 C4,7.59458415 4.12956542,7.72916667 4.28939247,7.72916667 L6.27083333,7.72916667 L6.27083333,9.71060753 C6.27083333,9.87468147 6.40296105,10 6.56594884,10 L7.43405116,10 C7.59458415,10 7.72916667,9.87043458 7.72916667,9.71060753 L7.72916667,7.72916667 L9.71060753,7.72916667 C9.87468147,7.72916667 10,7.59703895 10,7.43405116 L10,6.56594884 C10,6.40541585 9.87043458,6.27083333 9.71060753,6.27083333 L7.72916667,6.27083333 Z" transform="rotate(-45 7 7)"></path>
@@ -93,7 +105,7 @@
</a></div>
<div class="stage-container">
- <a class="has-tooltip ci-status-icon-running" title="Test: running" href="{{pipeline.ref}}#test"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
+ <a class="has-tooltip ci-status-icon-running" title="Test: running" href="pipelines#test"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
<g fill="#2D9FD8" fill-rule="evenodd">
<path d="M12.5,7 C12.5,3.96243388 10.0375661,1.5 7,1.5 C3.96243388,1.5 1.5,3.96243388 1.5,7 C1.5,10.0375661 3.96243388,12.5 7,12.5 C10.0375661,12.5 12.5,10.0375661 12.5,7 Z M0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 C3.13400675,14 0,10.8659932 0,7 Z"></path>
<path d="M7,3 C9.209139,3 11,4.790861 11,7 C11,9.209139 9.209139,11 7,11 C5.65802855,11 4.47040669,10.3391508 3.74481446,9.32513253 L7,7 L7,3 L7,3 Z"></path>
@@ -102,7 +114,7 @@
</a></div>
<div class="stage-container">
- <a class="has-tooltip ci-status-icon-failed" title="Notify Test: failed" href="{{pipeline.ref}}#notify_test"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
+ <a class="has-tooltip ci-status-icon-failed" title="Notify Test: failed" href="pipelines#notify_test"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
<g fill="#D22852" fill-rule="evenodd">
<path d="M12.5,7 C12.5,3.96243388 10.0375661,1.5 7,1.5 C3.96243388,1.5 1.5,3.96243388 1.5,7 C1.5,10.0375661 3.96243388,12.5 7,12.5 C10.0375661,12.5 12.5,10.0375661 12.5,7 Z M0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 C3.13400675,14 0,10.8659932 0,7 Z"></path>
<path d="M7.72916667,6.27083333 L7.72916667,4.28939247 C7.72916667,4.12531853 7.59703895,4 7.43405116,4 L6.56594884,4 C6.40541585,4 6.27083333,4.12956542 6.27083333,4.28939247 L6.27083333,6.27083333 L4.28939247,6.27083333 C4.12531853,6.27083333 4,6.40296105 4,6.56594884 L4,7.43405116 C4,7.59458415 4.12956542,7.72916667 4.28939247,7.72916667 L6.27083333,7.72916667 L6.27083333,9.71060753 C6.27083333,9.87468147 6.40296105,10 6.56594884,10 L7.43405116,10 C7.59458415,10 7.72916667,9.87043458 7.72916667,9.71060753 L7.72916667,7.72916667 L9.71060753,7.72916667 C9.87468147,7.72916667 10,7.59703895 10,7.43405116 L10,6.56594884 C10,6.40541585 9.87043458,6.27083333 9.71060753,6.27083333 L7.72916667,6.27083333 Z" transform="rotate(-45 7 7)"></path>
@@ -111,7 +123,7 @@
</a></div>
<div class="stage-container">
- <a class="has-tooltip ci-status-icon-skipped" title="Pages: skipped" href="{{pipeline.ref}}#pages"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
+ <a class="has-tooltip ci-status-icon-skipped" title="Pages: skipped" href="pipelines#pages"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
<g fill="#5C5C5C" fill-rule="evenodd">
<path d="M12.5,7 C12.5,3.96243388 10.0375661,1.5 7,1.5 C3.96243388,1.5 1.5,3.96243388 1.5,7 C1.5,10.0375661 3.96243388,12.5 7,12.5 C10.0375661,12.5 12.5,10.0375661 12.5,7 Z M0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 C3.13400675,14 0,10.8659932 0,7 Z"></path>
<rect width="8" height="2" x="3" y="6" transform="rotate(45 7 7)" rx=".5"></rect>
@@ -120,7 +132,7 @@
</a></div>
<div class="stage-container">
- <a class="has-tooltip ci-status-icon-canceled" title="Deploy: canceled" href="{{pipeline.ref}}#deploy"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
+ <a class="has-tooltip ci-status-icon-canceled" title="Deploy: canceled" href="pipelines#deploy"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
<g fill="#5C5C5C" fill-rule="evenodd">
<path d="M12.5,7 C12.5,3.96243388 10.0375661,1.5 7,1.5 C3.96243388,1.5 1.5,3.96243388 1.5,7 C1.5,10.0375661 3.96243388,12.5 7,12.5 C10.0375661,12.5 12.5,10.0375661 12.5,7 Z M0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 C3.13400675,14 0,10.8659932 0,7 Z"></path>
<rect width="8" height="2" x="3" y="6" transform="rotate(45 7 7)" rx=".5"></rect>
@@ -173,7 +185,7 @@
title="Retry"
rel="nofollow"
data-method="post"
- href="{{pipeline.ref}}/retry">
+ href="pipelines/retry">
<i class="fa fa-repeat"></i>
</a>
</div>
diff --git a/app/assets/javascripts/runnerstats/index.js.es6 b/app/assets/javascripts/vue_pipelines_index/status_data_icons.js.es6
index 35f95f3a811..b4e0c07a665 100644
--- a/app/assets/javascripts/runnerstats/index.js.es6
+++ b/app/assets/javascripts/vue_pipelines_index/status_data_icons.js.es6
@@ -5,7 +5,7 @@
constructor() {
return {
running: {
- text: 'pending',
+ text: 'running',
color: '#E75E40',
pathOne: 'M12.5,7 C12.5,3.96243388 10.0375661,1.5 7,1.5 C3.96243388,1.5 1.5,3.96243388 1.5,7 C1.5,10.0375661 3.96243388,12.5 7,12.5 C10.0375661,12.5 12.5,10.0375661 12.5,7 Z M0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 C3.13400675,14 0,10.8659932 0,7 Z',
pathTwo: 'M4.69999981,5.30065012 C4.69999981,5.13460564 4.83842754,5 5.00354719,5 L5.89645243,5 C6.06409702,5 6.19999981,5.13308716 6.19999981,5.30065012 L6.19999981,8.69934988 C6.19999981,8.86539436 6.06157207,9 5.89645243,9 L5.00354719,9 C4.8359026,9 4.69999981,8.86691284 4.69999981,8.69934988 L4.69999981,5.30065012 Z M7.69999981,5.30065012 C7.69999981,5.13460564 7.83842754,5 8.00354719,5 L8.89645243,5 C9.06409702,5 9.19999981,5.13308716 9.19999981,5.30065012 L9.19999981,8.69934988 C9.19999981,8.86539436 9.06157207,9 8.89645243,9 L8.00354719,9 C7.8359026,9 7.69999981,8.86691284 7.69999981,8.69934988 L7.69999981,5.30065012 Z',
diff --git a/app/assets/javascripts/vue_pipelines_index/store.js.es6 b/app/assets/javascripts/vue_pipelines_index/store.js.es6
new file mode 100644
index 00000000000..3f03bb31068
--- /dev/null
+++ b/app/assets/javascripts/vue_pipelines_index/store.js.es6
@@ -0,0 +1,15 @@
+/* global gl */
+/* eslint-disable no-param-reassign */
+
+((gl) => {
+ gl.PipelineStore = class {
+ fetchData(Vue) {
+ this.$http.get(`/api/v3/projects/${this.scope}/pipelines`)
+ .then((response) => {
+ Vue.set(this, 'pipelines', JSON.parse(response.body));
+ }, () => {
+ Vue.set(this, 'pipelines', []);
+ });
+ }
+ };
+})(window.gl || (window.gl = {}));
diff --git a/app/assets/javascripts/vue_pipelines_index/vue_commit_link.vue.js.es6 b/app/assets/javascripts/vue_pipelines_index/vue_commit_link.vue.js.es6
new file mode 100644
index 00000000000..9e2ef8993a2
--- /dev/null
+++ b/app/assets/javascripts/vue_pipelines_index/vue_commit_link.vue.js.es6
@@ -0,0 +1,50 @@
+
+/* global Vue, gl */
+/* eslint-disable no-param-reassign */
+
+((gl) => {
+ gl.VueCommitLink = Vue.extend({
+ props: ['pipeline'],
+ template: `
+ <td class="commit-link">
+ <a href="pipelines/{{pipeline.id}}">
+ <div v-if="pipeline.status === 'running'">
+ <span class="ci-status ci-{{pipeline.status}}">
+ <vue-runner-running></vue-runner-running>
+ </span>
+ </div>
+ <div v-if="pipeline.status === 'passed'">
+ <span class="ci-status ci-{{pipeline.status}}">
+ <vue-runner-running></vue-runner-running>
+ </span>
+ </div>
+ <div v-if="pipeline.status === 'created'">
+ <span class="ci-status ci-{{pipeline.status}}">
+ <vue-runner-running></vue-runner-running>
+ </span>
+ </div>
+ <div v-if="pipeline.status === ''">
+ <span class="ci-status ci-{{pipeline.status}}">
+ <vue-runner-running></vue-runner-running>
+ </span>
+ </div>
+ <div v-if="pipeline.status === 'r'">
+ <span class="ci-status ci-{{pipeline.status}}">
+ <vue-runner-running></vue-runner-running>
+ </span>
+ </div>
+ <div v-if="pipeline.status === 'ru'">
+ <span class="ci-status ci-{{pipeline.status}}">
+ <vue-runner-running></vue-runner-running>
+ </span>
+ </div>
+ <div v-if="pipeline.status === 'run'">
+ <span class="ci-status ci-{{pipeline.status}}">
+ <vue-runner-running></vue-runner-running>
+ </span>
+ </div>
+ </a>
+ </td>
+ `,
+ });
+})(window.gl || (window.gl = {}));
diff --git a/app/assets/javascripts/vue_pipelines_loader.js.es6 b/app/assets/javascripts/vue_pipelines_loader.js.es6
new file mode 100644
index 00000000000..1b8ba72b697
--- /dev/null
+++ b/app/assets/javascripts/vue_pipelines_loader.js.es6
@@ -0,0 +1 @@
+//= require_tree ./vue_pipelines_index
diff --git a/app/views/projects/pipelines/index.html.haml b/app/views/projects/pipelines/index.html.haml
index 30625e399b0..7cb77f2034b 100644
--- a/app/views/projects/pipelines/index.html.haml
+++ b/app/views/projects/pipelines/index.html.haml
@@ -47,17 +47,20 @@
%tbody.app
:javascript
- Vue.component('vue-pipelines', gl.VuePipeLines);
- Vue.component('vue-runner-status', gl.VueRunnerStatus);
+ Vue.use(VueResource);
- new Vue({
+ var vm = new Vue({
el: ".app",
data:{
- pipelines: JSON.parse('#{@pipelines.to_json}'),
- count: JSON.parse('#{@pipeline_count.to_json}'),
+ scope: "#{@project.id}",
+ store: new gl.PipelineStore(),
+ },
+ components: {
+ 'vue-commit-link': gl.VueCommitLink,
+ 'vue-pipelines': gl.VuePipeLines,
},
template: ""
+ "<div>"
- + "<vue-pipelines :pipelines='pipelines' :count='count'></vue-pipelines>"
+ + "<vue-pipelines :scope='scope' :store='store'></vue-pipelines>"
+ "</div>",
})