From c157f963db87a40a3ba7b94b339530ee83194bc8 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 10 Oct 2019 09:06:08 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- .../javascripts/blob/file_template_mediator.js | 49 +++--- .../blob/template_selectors/ci_yaml_selector.js | 1 - .../blob/template_selectors/dockerfile_selector.js | 1 - .../blob/template_selectors/gitignore_selector.js | 1 - .../blob/template_selectors/license_selector.js | 1 - .../blob/template_selectors/type_selector.js | 1 - .../pipelines/components/graph/graph_component.vue | 169 +++++++++++++++++- .../pipelines/components/graph/linked_pipeline.vue | 65 +++++++ .../components/graph/linked_pipelines_column.vue | 52 ++++++ .../components/graph/stage_column_component.vue | 2 +- .../mixins/graph_pipeline_bundle_mixin.js | 60 ++++++- .../pipelines/mixins/stage_column_mixin.js | 9 +- .../pipelines/pipeline_details_bundle.js | 6 +- .../pipelines/pipeline_details_mediator.js | 2 +- .../javascripts/pipelines/stores/pipeline_store.js | 190 ++++++++++++++++++++- app/assets/stylesheets/framework/dropdowns.scss | 3 +- app/assets/stylesheets/pages/editor.scss | 65 +++---- app/models/clusters/applications/knative.rb | 2 +- app/models/project.rb | 1 + .../projects/serverless/service_entity.rb | 2 +- app/views/projects/blob/_editor.html.haml | 8 +- .../projects/blob/_template_selectors.html.haml | 17 +- app/views/projects/blob/edit.html.haml | 1 - app/views/projects/blob/new.html.haml | 1 - 24 files changed, 605 insertions(+), 104 deletions(-) create mode 100644 app/assets/javascripts/pipelines/components/graph/linked_pipeline.vue create mode 100644 app/assets/javascripts/pipelines/components/graph/linked_pipelines_column.vue (limited to 'app') diff --git a/app/assets/javascripts/blob/file_template_mediator.js b/app/assets/javascripts/blob/file_template_mediator.js index 106fe2e0cef..b371f6be268 100644 --- a/app/assets/javascripts/blob/file_template_mediator.js +++ b/app/assets/javascripts/blob/file_template_mediator.js @@ -7,6 +7,8 @@ import BlobCiYamlSelector from './template_selectors/ci_yaml_selector'; import DockerfileSelector from './template_selectors/dockerfile_selector'; import GitignoreSelector from './template_selectors/gitignore_selector'; import LicenseSelector from './template_selectors/license_selector'; +import toast from '~/vue_shared/plugins/global_toast'; +import { __ } from '~/locale'; export default class FileTemplateMediator { constructor({ editor, currentAction, projectId }) { @@ -19,6 +21,7 @@ export default class FileTemplateMediator { this.initDomElements(); this.initDropdowns(); this.initPageEvents(); + this.cacheFileContents(); } initTemplateSelectors() { @@ -40,6 +43,7 @@ export default class FileTemplateMediator { return { name: cfg.name, key: cfg.key, + id: cfg.key, }; }), }); @@ -58,6 +62,7 @@ export default class FileTemplateMediator { this.$fileContent = $fileEditor.find('#file-content'); this.$commitForm = $fileEditor.find('form'); this.$navLinks = $fileEditor.find('.nav-links'); + this.$templateTypes = this.$templateSelectors.find('.template-type-selector'); } initDropdowns() { @@ -113,7 +118,11 @@ export default class FileTemplateMediator { } }); - this.typeSelector.setToggleText(item.name); + this.setFilename(item.name); + + if (this.editor.getValue() !== '') { + this.setTypeSelectorToggleText(item.name); + } this.cacheToggleText(); } @@ -123,15 +132,24 @@ export default class FileTemplateMediator { } selectTemplateFile(selector, query, data) { + const self = this; + selector.renderLoading(); - // in case undo menu is already there - this.destroyUndoMenu(); + this.fetchFileTemplate(selector.config.type, query, data) .then(file => { - this.showUndoMenu(); this.setEditorContent(file); - this.setFilename(selector.config.name); selector.renderLoaded(); + this.typeSelector.setToggleText(selector.config.name); + toast(__(`${query} template applied`), { + action: { + text: __('Undo'), + onClick: (e, toastObj) => { + self.restoreFromCache(); + toastObj.goAway(0); + }, + }, + }); }) .catch(err => new Flash(`An error occurred while fetching the template: ${err}`)); } @@ -173,22 +191,6 @@ export default class FileTemplateMediator { return this.templateSelectors.find(selector => selector.config.key === key); } - showUndoMenu() { - this.$undoMenu.removeClass('hidden'); - - this.$undoBtn.on('click', () => { - this.restoreFromCache(); - this.destroyUndoMenu(); - }); - } - - destroyUndoMenu() { - this.cacheFileContents(); - this.cacheToggleText(); - this.$undoMenu.addClass('hidden'); - this.$undoBtn.off('click'); - } - hideTemplateSelectorMenu() { this.$templatesMenu.hide(); } @@ -210,6 +212,7 @@ export default class FileTemplateMediator { this.setEditorContent(this.cachedContent); this.setFilename(this.cachedFilename); this.setTemplateSelectorToggleText(); + this.setTypeSelectorToggleText(__('Select a template type')); } getTemplateSelectorToggleText() { @@ -228,6 +231,10 @@ export default class FileTemplateMediator { return this.typeSelector.getToggleText(); } + setTypeSelectorToggleText(text) { + this.typeSelector.setToggleText(text); + } + getFilename() { return this.$filenameInput.val(); } diff --git a/app/assets/javascripts/blob/template_selectors/ci_yaml_selector.js b/app/assets/javascripts/blob/template_selectors/ci_yaml_selector.js index 43f7aead8b9..d819452df68 100644 --- a/app/assets/javascripts/blob/template_selectors/ci_yaml_selector.js +++ b/app/assets/javascripts/blob/template_selectors/ci_yaml_selector.js @@ -19,7 +19,6 @@ export default class BlobCiYamlSelector extends FileTemplateSelector { data: this.$dropdown.data('data'), filterable: true, selectable: true, - toggleLabel: item => item.name, search: { fields: ['name'], }, diff --git a/app/assets/javascripts/blob/template_selectors/dockerfile_selector.js b/app/assets/javascripts/blob/template_selectors/dockerfile_selector.js index 659d57e6a6f..7d5e98889d3 100644 --- a/app/assets/javascripts/blob/template_selectors/dockerfile_selector.js +++ b/app/assets/javascripts/blob/template_selectors/dockerfile_selector.js @@ -20,7 +20,6 @@ export default class DockerfileSelector extends FileTemplateSelector { data: this.$dropdown.data('data'), filterable: true, selectable: true, - toggleLabel: item => item.name, search: { fields: ['name'], }, diff --git a/app/assets/javascripts/blob/template_selectors/gitignore_selector.js b/app/assets/javascripts/blob/template_selectors/gitignore_selector.js index a8067ec5c84..39a8937641d 100644 --- a/app/assets/javascripts/blob/template_selectors/gitignore_selector.js +++ b/app/assets/javascripts/blob/template_selectors/gitignore_selector.js @@ -18,7 +18,6 @@ export default class BlobGitignoreSelector extends FileTemplateSelector { data: this.$dropdown.data('data'), filterable: true, selectable: true, - toggleLabel: item => item.name, search: { fields: ['name'], }, diff --git a/app/assets/javascripts/blob/template_selectors/license_selector.js b/app/assets/javascripts/blob/template_selectors/license_selector.js index d01ab9257d6..f4041835a7d 100644 --- a/app/assets/javascripts/blob/template_selectors/license_selector.js +++ b/app/assets/javascripts/blob/template_selectors/license_selector.js @@ -18,7 +18,6 @@ export default class BlobLicenseSelector extends FileTemplateSelector { data: this.$dropdown.data('data'), filterable: true, selectable: true, - toggleLabel: item => item.name, search: { fields: ['name'], }, diff --git a/app/assets/javascripts/blob/template_selectors/type_selector.js b/app/assets/javascripts/blob/template_selectors/type_selector.js index db3c144cbe3..cb4e1aaa9ac 100644 --- a/app/assets/javascripts/blob/template_selectors/type_selector.js +++ b/app/assets/javascripts/blob/template_selectors/type_selector.js @@ -16,7 +16,6 @@ export default class FileTemplateTypeSelector extends FileTemplateSelector { data: this.config.dropdownData, filterable: false, selectable: true, - toggleLabel: item => item.name, clicked: options => this.mediator.selectTemplateTypeOptions(options), text: item => item.name, }); diff --git a/app/assets/javascripts/pipelines/components/graph/graph_component.vue b/app/assets/javascripts/pipelines/components/graph/graph_component.vue index cfc72327ef7..e29509ce074 100644 --- a/app/assets/javascripts/pipelines/components/graph/graph_component.vue +++ b/app/assets/javascripts/pipelines/components/graph/graph_component.vue @@ -1,20 +1,120 @@