diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-12 21:09:26 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-12 21:09:26 +0300 |
commit | f4182abcb628e20978f011376811bbf8e644eff5 (patch) | |
tree | bb7886935855da9f69571b4970cfc5519dd40f2a /app/assets/javascripts/pipelines | |
parent | 6cf30e964d54d536b0ff861916745f0a4bb31ebb (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/pipelines')
3 files changed, 49 insertions, 13 deletions
diff --git a/app/assets/javascripts/pipelines/pipeline_details_bundle.js b/app/assets/javascripts/pipelines/pipeline_details_bundle.js index 67aec12655a..51d8bbeaef0 100644 --- a/app/assets/javascripts/pipelines/pipeline_details_bundle.js +++ b/app/assets/javascripts/pipelines/pipeline_details_bundle.js @@ -6,12 +6,10 @@ import { setUrlFragment, redirectTo } from '~/lib/utils/url_utility'; import pipelineGraph from './components/graph/graph_component.vue'; import createDagApp from './pipeline_details_dag'; import GraphBundleMixin from './mixins/graph_pipeline_bundle_mixin'; -import PipelinesMediator from './pipeline_details_mediator'; import legacyPipelineHeader from './components/legacy_header_component.vue'; import eventHub from './event_hub'; import TestReports from './components/test_reports/test_reports.vue'; import createTestReportsStore from './stores/test_reports'; -import { createPipelineHeaderApp } from './pipeline_details_header'; Vue.use(Translate); @@ -22,7 +20,7 @@ const SELECTORS = { PIPELINE_TESTS: '#js-pipeline-tests-detail', }; -const createPipelinesDetailApp = mediator => { +const createLegacyPipelinesDetailApp = mediator => { if (!document.querySelector(SELECTORS.PIPELINE_GRAPH)) { return; } @@ -127,18 +125,48 @@ const createTestDetails = () => { }); }; -export default () => { +export default async function() { + createTestDetails(); + createDagApp(); + const { dataset } = document.querySelector(SELECTORS.PIPELINE_DETAILS); - const mediator = new PipelinesMediator({ endpoint: dataset.endpoint }); - mediator.fetchPipeline(); + let mediator; + + if (!gon.features.graphqlPipelineHeader || !gon.features.graphqlPipelineDetails) { + try { + const { default: PipelinesMediator } = await import( + /* webpackChunkName: 'PipelinesMediator' */ './pipeline_details_mediator' + ); + mediator = new PipelinesMediator({ endpoint: dataset.endpoint }); + mediator.fetchPipeline(); + } catch { + Flash(__('An error occurred while loading the pipeline.')); + } + } - createPipelinesDetailApp(mediator); + if (gon.features.graphqlPipelineDetails) { + try { + const { createPipelinesDetailApp } = await import( + /* webpackChunkName: 'createPipelinesDetailApp' */ './pipeline_details_graph' + ); + createPipelinesDetailApp(); + } catch { + Flash(__('An error occurred while loading the pipeline.')); + } + } else { + createLegacyPipelinesDetailApp(mediator); + } if (gon.features.graphqlPipelineHeader) { - createPipelineHeaderApp(SELECTORS.PIPELINE_HEADER); + try { + const { createPipelineHeaderApp } = await import( + /* webpackChunkName: 'createPipelineHeaderApp' */ './pipeline_details_header' + ); + createPipelineHeaderApp(SELECTORS.PIPELINE_HEADER); + } catch { + Flash(__('An error occurred while loading a section of this page.')); + } } else { createLegacyPipelineHeaderApp(mediator); } - createTestDetails(); - createDagApp(); -}; +} diff --git a/app/assets/javascripts/pipelines/pipeline_details_dag.js b/app/assets/javascripts/pipelines/pipeline_details_dag.js index dc03b457265..3e9bdae96dd 100644 --- a/app/assets/javascripts/pipelines/pipeline_details_dag.js +++ b/app/assets/javascripts/pipelines/pipeline_details_dag.js @@ -10,11 +10,12 @@ const apolloProvider = new VueApollo({ }); const createDagApp = () => { - if (!window.gon?.features?.dagPipelineTab) { + const el = document.querySelector('#js-pipeline-dag-vue'); + + if (!window.gon?.features?.dagPipelineTab || !el) { return; } - const el = document.querySelector('#js-pipeline-dag-vue'); const { pipelineProjectPath, pipelineIid, emptySvgPath, dagDocPath } = el?.dataset; // eslint-disable-next-line no-new diff --git a/app/assets/javascripts/pipelines/pipeline_details_graph.js b/app/assets/javascripts/pipelines/pipeline_details_graph.js new file mode 100644 index 00000000000..880855cf21d --- /dev/null +++ b/app/assets/javascripts/pipelines/pipeline_details_graph.js @@ -0,0 +1,7 @@ +const createPipelinesDetailApp = () => { + // Placeholder. See: https://gitlab.com/gitlab-org/gitlab/-/issues/223262 + // eslint-disable-next-line no-useless-return + return; +}; + +export { createPipelinesDetailApp }; |