Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/pipeline_new/index.js')
-rw-r--r--app/assets/javascripts/pipeline_new/index.js75
1 files changed, 65 insertions, 10 deletions
diff --git a/app/assets/javascripts/pipeline_new/index.js b/app/assets/javascripts/pipeline_new/index.js
index 927eeb5e144..e3f363f4ada 100644
--- a/app/assets/javascripts/pipeline_new/index.js
+++ b/app/assets/javascripts/pipeline_new/index.js
@@ -1,27 +1,72 @@
import Vue from 'vue';
+import LegacyPipelineNewForm from './components/legacy_pipeline_new_form.vue';
import PipelineNewForm from './components/pipeline_new_form.vue';
-export default () => {
- const el = document.getElementById('js-new-pipeline');
+const mountLegacyPipelineNewForm = (el) => {
const {
// provide/inject
projectRefsEndpoint,
// props
- projectId,
- pipelinesPath,
configVariablesPath,
defaultBranch,
+ fileParam,
+ maxWarnings,
+ pipelinesPath,
+ projectId,
refParam,
+ settingsLink,
varParam,
+ } = el.dataset;
+
+ const variableParams = JSON.parse(varParam);
+ const fileParams = JSON.parse(fileParam);
+
+ return new Vue({
+ el,
+ provide: {
+ projectRefsEndpoint,
+ },
+ render(createElement) {
+ return createElement(LegacyPipelineNewForm, {
+ props: {
+ configVariablesPath,
+ defaultBranch,
+ fileParams,
+ maxWarnings: Number(maxWarnings),
+ pipelinesPath,
+ projectId,
+ refParam,
+ settingsLink,
+ variableParams,
+ },
+ });
+ },
+ });
+};
+
+const mountPipelineNewForm = (el) => {
+ const {
+ // provide/inject
+ projectRefsEndpoint,
+
+ // props
+ configVariablesPath,
+ defaultBranch,
fileParam,
- settingsLink,
maxWarnings,
+ pipelinesPath,
+ projectId,
+ refParam,
+ settingsLink,
+ varParam,
} = el.dataset;
const variableParams = JSON.parse(varParam);
const fileParams = JSON.parse(fileParam);
+ // TODO: add apolloProvider
+
return new Vue({
el,
provide: {
@@ -30,17 +75,27 @@ export default () => {
render(createElement) {
return createElement(PipelineNewForm, {
props: {
- projectId,
- pipelinesPath,
configVariablesPath,
defaultBranch,
- refParam,
- variableParams,
fileParams,
- settingsLink,
maxWarnings: Number(maxWarnings),
+ pipelinesPath,
+ projectId,
+ refParam,
+ settingsLink,
+ variableParams,
},
});
},
});
};
+
+export default () => {
+ const el = document.getElementById('js-new-pipeline');
+
+ if (gon.features?.runPipelineGraphql) {
+ mountPipelineNewForm(el);
+ } else {
+ mountLegacyPipelineNewForm(el);
+ }
+};