Commit d5a223bd authored by Filipa Lacerda's avatar Filipa Lacerda

Use webpack

parent 2621ce5c
/* eslint-disable no-new, no-param-reassign */ /* eslint-disable no-new, no-param-reassign */
/* global Vue, CommitsPipelineStore, PipelinesService, Flash */ /* global Vue, CommitsPipelineStore, PipelinesService, Flash */
//= require vue window.Vue = require('vue');
//= require_tree . require('./pipelines_store');
require('./pipelines_service');
require('./pipelines_table');
/** /**
* Commits View > Pipelines Tab > Pipelines Table. * Commits View > Pipelines Tab > Pipelines Table.
* Merge Request View > Pipelines Tab > Pipelines Table. * Merge Request View > Pipelines Tab > Pipelines Table.
......
...@@ -8,18 +8,8 @@ ...@@ -8,18 +8,8 @@
* Uses Vue.Resource * Uses Vue.Resource
*/ */
class PipelinesService { class PipelinesService {
constructor(root) { constructor(endpoint) {
Vue.http.options.root = root; this.pipelines = Vue.resource(endpoint);
this.pipelines = Vue.resource(root);
Vue.http.interceptors.push((request, next) => {
// needed in order to not break the tests.
if ($.rails) {
request.headers['X-CSRF-Token'] = $.rails.csrfToken();
}
next();
});
} }
/** /**
...@@ -28,7 +18,7 @@ class PipelinesService { ...@@ -28,7 +18,7 @@ class PipelinesService {
* *
* @return {Promise} * @return {Promise}
*/ */
all() { get() {
return this.pipelines.get(); return this.pipelines.get();
} }
} }
......
...@@ -5,25 +5,17 @@ ...@@ -5,25 +5,17 @@
* Used to store the Pipelines rendered in the commit view in the pipelines table. * Used to store the Pipelines rendered in the commit view in the pipelines table.
*/ */
(() => { class PipelinesStore {
window.gl = window.gl || {}; constructor() {
gl.commits = gl.commits || {}; this.state = {};
gl.commits.pipelines = gl.commits.pipelines || {};
gl.commits.pipelines.PipelinesStore = {
state: {},
create() {
this.state.pipelines = []; this.state.pipelines = [];
}
return this; storePipelines(pipelines = []) {
},
store(pipelines = []) {
this.state.pipelines = pipelines; this.state.pipelines = pipelines;
return pipelines; return pipelines;
}, }
/** /**
* Once the data is received we will start the time ago loops. * Once the data is received we will start the time ago loops.
...@@ -49,6 +41,7 @@ ...@@ -49,6 +41,7 @@
const startIntervals = () => startTimeLoops(); const startIntervals = () => startTimeLoops();
gl.VueRealtimeListener(removeIntervals, startIntervals); gl.VueRealtimeListener(removeIntervals, startIntervals);
}, }
}; }
})();
return PipelinesStore;
/* eslint-disable no-new, no-param-reassign */ /* eslint-disable no-new, no-param-reassign */
/* global Vue, CommitsPipelineStore, PipelinesService, Flash */ /* global Vue, CommitsPipelineStore, PipelinesService, Flash */
//= require vue window.Vue = require('vue');
//= require vue-resource window.Vue.use(require('vue-resource'));
//= require vue_shared/vue_resource_interceptor require('../../vue_shared/vue_resource_interceptor');
//= require vue_shared/components/pipelines_table require('../../vue_shared/components/pipelines_table');
//= require vue_realtime_listener/index require('../vue_realtime_listener/index');
/** /**
* *
...@@ -38,13 +38,10 @@ ...@@ -38,13 +38,10 @@
data() { data() {
const pipelinesTableData = document.querySelector('#commit-pipeline-table-view').dataset; const pipelinesTableData = document.querySelector('#commit-pipeline-table-view').dataset;
const svgsData = document.querySelector('.pipeline-svgs').dataset; const svgsData = document.querySelector('.pipeline-svgs').dataset;
const store = gl.commits.pipelines.PipelinesStore.create(); const store = new gl.commits.pipelines.PipelinesStore();
// Transform svgs DOMStringMap to a plain Object. // Transform svgs DOMStringMap to a plain Object.
const svgsObject = Object.keys(svgsData).reduce((acc, element) => { const svgsObject = gl.utils.DOMStringMapToObject(svgsData);
acc[element] = svgsData[element];
return acc;
}, {});
return { return {
endpoint: pipelinesTableData.endpoint, endpoint: pipelinesTableData.endpoint,
...@@ -71,7 +68,7 @@ ...@@ -71,7 +68,7 @@
return gl.pipelines.pipelinesService.all() return gl.pipelines.pipelinesService.all()
.then(response => response.json()) .then(response => response.json())
.then((json) => { .then((json) => {
this.store.store(json); this.store.storePipelines(json);
this.store.startTimeAgoLoops.call(this, Vue); this.store.startTimeAgoLoops.call(this, Vue);
this.isLoading = false; this.isLoading = false;
}) })
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment