diff --git a/app/assets/javascripts/commit/pipelines/pipelines_table.js b/app/assets/javascripts/commit/pipelines/pipelines_table.js index f2c2524908db5d58c4d8472e6a0b1a2fcd036c24..7cc82b50d430701c6858788cee6597f0e8fccedb 100644 --- a/app/assets/javascripts/commit/pipelines/pipelines_table.js +++ b/app/assets/javascripts/commit/pipelines/pipelines_table.js @@ -1,5 +1,3 @@ -/* eslint-disable no-new*/ -/* global Flash */ import Vue from 'vue'; import PipelinesTableComponent from '../../vue_shared/components/pipelines_table'; import PipelinesService from '../../vue_pipelines_index/services/pipelines_service'; @@ -50,11 +48,11 @@ export default Vue.component('pipelines-table', { computed: { shouldRenderErrorState() { - return this.hasError && !this.pageRequest; + return this.hasError && !this.isLoading; }, shouldRenderEmptyState() { - return !this.state.pipelines.length && !this.pageRequest; + return !this.state.pipelines.length && !this.isLoading; }, }, @@ -98,7 +96,6 @@ export default Vue.component('pipelines-table', { .catch(() => { this.hasError = true; this.isLoading = false; - new Flash('An error occurred while fetching the pipelines, please reload the page again.'); }); }, }, diff --git a/app/assets/javascripts/vue_pipelines_index/pipelines.js b/app/assets/javascripts/vue_pipelines_index/pipelines.js index 796fd5b581ed82eb96698b3f1cf5d09bb90744de..b6721600415279c5eec8092f3efeeb2850275238 100644 --- a/app/assets/javascripts/vue_pipelines_index/pipelines.js +++ b/app/assets/javascripts/vue_pipelines_index/pipelines.js @@ -45,7 +45,7 @@ export default { state: this.store.state, apiScope: 'all', pagenum: 1, - pageRequest: false, + isLoading: false, hasError: false, }; }, @@ -61,7 +61,7 @@ export default { }, shouldRenderErrorState() { - return this.hasError && !this.pageRequest; + return this.hasError && !this.isLoading; }, /** @@ -71,7 +71,7 @@ export default { * @return {Boolean} */ shouldRenderEmptyState() { - return !this.pageRequest && + return !this.isLoading && !this.hasError && !this.state.pipelines.length && (this.scope === 'all' || this.scope === null); @@ -83,7 +83,7 @@ export default { * @return {Boolean} */ shouldRenderNoPipelinesMessage() { - return !this.pageRequest && + return !this.isLoading && !this.hasError && !this.state.pipelines.length && this.scope !== 'all' && @@ -92,7 +92,7 @@ export default { shouldRenderTable() { return !this.hasError && - !this.pageRequest && this.state.pipelines.length; + !this.isLoading && this.state.pipelines.length; }, /** @@ -101,7 +101,7 @@ export default { * @return {Boolean} */ shouldRenderPagination() { - return !this.pageRequest && + return !this.isLoading && this.state.pipelines.length && this.state.pageInfo.total > this.state.pageInfo.perPage; }, @@ -157,7 +157,7 @@ export default { const pageNumber = gl.utils.getParameterByName('page') || this.pagenum; const scope = gl.utils.getParameterByName('scope') || this.apiScope; - this.pageRequest = true; + this.isLoading = true; return this.service.getPipelines(scope, pageNumber) .then(resp => ({ headers: resp.headers, @@ -169,11 +169,11 @@ export default { this.store.storePagination(response.headers); }) .then(() => { - this.pageRequest = false; + this.isLoading = false; }) .catch(() => { this.hasError = true; - this.pageRequest = false; + this.isLoading = false; }); }, }, @@ -183,7 +183,7 @@ export default { <div class="top-area" - v-if="!pageRequest && !shouldRenderEmptyState"> + v-if="!isLoading && !shouldRenderEmptyState"> <navigation-tabs :scope="scope" :count="state.count" @@ -201,7 +201,7 @@ export default { <div class="realtime-loading" - v-if="pageRequest"> + v-if="isLoading"> <i class="fa fa-spinner fa-spin" aria-hidden="true" /> diff --git a/spec/javascripts/commit/pipelines/pipelines_spec.js b/spec/javascripts/commit/pipelines/pipelines_spec.js index 65093e533320a79cb11aa17c249574e2c447ccbd..bc2e092db6503ec65f97a8cf7088e7a4d63401d8 100644 --- a/spec/javascripts/commit/pipelines/pipelines_spec.js +++ b/spec/javascripts/commit/pipelines/pipelines_spec.js @@ -34,6 +34,7 @@ describe('Pipelines table in Commits and Merge requests', () => { setTimeout(() => { expect(component.$el.querySelector('.empty-state')).toBeDefined(); + expect(component.$el.querySelector('.realtime-loading')).toBe(null); done(); }, 1); }); @@ -63,6 +64,7 @@ describe('Pipelines table in Commits and Merge requests', () => { setTimeout(() => { expect(component.$el.querySelectorAll('table > tbody > tr').length).toEqual(1); + expect(component.$el.querySelector('.realtime-loading')).toBe(null); done(); }, 0); }); @@ -93,6 +95,7 @@ describe('Pipelines table in Commits and Merge requests', () => { setTimeout(() => { expect(component.$el.querySelector('.js-pipelines-error-state')).toBeDefined(); + expect(component.$el.querySelector('.realtime-loading')).toBe(null); done(); }, 0); }); diff --git a/spec/javascripts/vue_pipelines_index/pipelines_spec.js b/spec/javascripts/vue_pipelines_index/pipelines_spec.js index b57761e3b12f76f9ed3bdf677fae95364c9ce1f5..725f6cb2d7a6fc95081180665d0e92c039a9f5bd 100644 --- a/spec/javascripts/vue_pipelines_index/pipelines_spec.js +++ b/spec/javascripts/vue_pipelines_index/pipelines_spec.js @@ -41,6 +41,7 @@ describe('Pipelines', () => { setTimeout(() => { expect(component.$el.querySelector('.table-holder')).toBeDefined(); + expect(component.$el.querySelector('.realtime-loading')).toBe(null); done(); }); }); @@ -72,6 +73,7 @@ describe('Pipelines', () => { setTimeout(() => { expect(component.$el.querySelector('.empty-state')).toBeDefined(); + expect(component.$el.querySelector('.realtime-loading')).toBe(null); done(); }); }); @@ -104,6 +106,7 @@ describe('Pipelines', () => { setTimeout(() => { expect(component.$el.querySelector('.js-pipelines-error-state')).toBeDefined(); + expect(component.$el.querySelector('.realtime-loading')).toBe(null); done(); }); });