diff options
Diffstat (limited to 'app')
12 files changed, 62 insertions, 28 deletions
diff --git a/app/assets/javascripts/blob/file_template_mediator.js b/app/assets/javascripts/blob/file_template_mediator.js index 0fb02ca5965..d2c0ef330e4 100644 --- a/app/assets/javascripts/blob/file_template_mediator.js +++ b/app/assets/javascripts/blob/file_template_mediator.js @@ -9,6 +9,7 @@ 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'; +import initPopover from '~/blob/suggest_gitlab_ci_yml'; export default class FileTemplateMediator { constructor({ editor, currentAction, projectId }) { @@ -128,6 +129,7 @@ export default class FileTemplateMediator { selectTemplateFile(selector, query, data) { const self = this; const { name } = selector.config; + const suggestCommitChanges = document.querySelector('.js-suggest-gitlab-ci-yml-commit-changes'); selector.renderLoading(); @@ -146,6 +148,10 @@ export default class FileTemplateMediator { }, }, }); + + if (suggestCommitChanges) { + initPopover(suggestCommitChanges); + } }) .catch(err => new Flash(`An error occurred while fetching the template: ${err}`)); } diff --git a/app/assets/javascripts/blob/suggest_gitlab_ci_yml/components/popover.vue b/app/assets/javascripts/blob/suggest_gitlab_ci_yml/components/popover.vue index fa3c19921df..d304ae7dbf6 100644 --- a/app/assets/javascripts/blob/suggest_gitlab_ci_yml/components/popover.vue +++ b/app/assets/javascripts/blob/suggest_gitlab_ci_yml/components/popover.vue @@ -1,10 +1,25 @@ <script> import { GlPopover, GlSprintf, GlButton, GlIcon } from '@gitlab/ui'; import Cookies from 'js-cookie'; -import { parseBoolean } from '~/lib/utils/common_utils'; +import { parseBoolean, scrollToElement } from '~/lib/utils/common_utils'; import { s__ } from '~/locale'; import { glEmojiTag } from '~/emoji'; +const popoverStates = { + suggest_gitlab_ci_yml: { + title: s__(`suggestPipeline|1/2: Choose a template`), + content: s__( + `suggestPipeline|We recommend the %{boldStart}Code Quality%{boldEnd} template, which will add a report widget to your Merge Requests. This way you’ll learn about code quality degradations much sooner. %{footerStart} Goodbye technical debt! %{footerEnd}`, + ), + emoji: glEmojiTag('wave'), + }, + suggest_commit_first_project_gitlab_ci_yml: { + title: s__(`suggestPipeline|2/2: Commit your changes`), + content: s__( + `suggestPipeline|Commit the changes and your pipeline will automatically run for the first time.`, + ), + }, +}; export default { components: { GlPopover, @@ -17,7 +32,7 @@ export default { type: String, required: true, }, - cssClass: { + trackLabel: { type: String, required: true, }, @@ -33,17 +48,19 @@ export default { }, computed: { suggestTitle() { - return s__(`suggestPipeline|1/2: Choose a template`); + return popoverStates[this.trackLabel].title || ''; }, suggestContent() { - return s__( - `suggestPipeline|We recommend the %{boldStart}Code Quality%{boldEnd} template, which will add a report widget to your Merge Requests. This way you’ll learn about code quality degradations much sooner. %{footerStart} Goodbye technical debt! %{footerEnd}`, - ); + return popoverStates[this.trackLabel].content || ''; }, emoji() { - return glEmojiTag('wave'); + return popoverStates[this.trackLabel].emoji || ''; }, }, + mounted() { + if (this.trackLabel === 'suggest_commit_first_project_gitlab_ci_yml' && !this.popoverDismissed) + scrollToElement(document.querySelector(this.target)); + }, methods: { onDismiss() { this.popoverDismissed = true; @@ -61,13 +78,15 @@ export default { placement="rightbottom" trigger="manual" container="viewport" - :css-classes="[cssClass]" + :css-classes="['suggest-gitlab-ci-yml', 'ml-4']" > <template #title> - <gl-button :aria-label="__('Close')" class="btn-blank float-right" @click="onDismiss"> - <gl-icon name="close" aria-hidden="true" /> - </gl-button> - {{ suggestTitle }} + <span v-html="suggestTitle"></span> + <span class="ml-auto"> + <gl-button :aria-label="__('Close')" class="btn-blank" @click="onDismiss"> + <gl-icon name="close" aria-hidden="true" /> + </gl-button> + </span> </template> <gl-sprintf :message="suggestContent"> diff --git a/app/assets/javascripts/blob/suggest_gitlab_ci_yml/index.js b/app/assets/javascripts/blob/suggest_gitlab_ci_yml/index.js index f770000eb68..2cc342fb381 100644 --- a/app/assets/javascripts/blob/suggest_gitlab_ci_yml/index.js +++ b/app/assets/javascripts/blob/suggest_gitlab_ci_yml/index.js @@ -8,7 +8,7 @@ export default el => return createElement(Popover, { props: { target: el.dataset.target, - cssClass: el.dataset.cssClass, + trackLabel: el.dataset.trackLabel, dismissKey: el.dataset.dismissKey, }, }); diff --git a/app/assets/javascripts/blob_edit/blob_bundle.js b/app/assets/javascripts/blob_edit/blob_bundle.js index 6aaf5bf7296..f4ce98037c8 100644 --- a/app/assets/javascripts/blob_edit/blob_bundle.js +++ b/app/assets/javascripts/blob_edit/blob_bundle.js @@ -4,11 +4,13 @@ import $ from 'jquery'; import NewCommitForm from '../new_commit_form'; import EditBlob from './edit_blob'; import BlobFileDropzone from '../blob/blob_file_dropzone'; +import initPopover from '~/blob/suggest_gitlab_ci_yml'; export default () => { const editBlobForm = $('.js-edit-blob-form'); const uploadBlobForm = $('.js-upload-blob-form'); const deleteBlobForm = $('.js-delete-blob-form'); + const suggestEl = document.querySelector('.js-suggest-gitlab-ci-yml'); if (editBlobForm.length) { const urlRoot = editBlobForm.data('relativeUrlRoot'); @@ -56,4 +58,8 @@ export default () => { if (deleteBlobForm.length) { new NewCommitForm(deleteBlobForm); } + + if (suggestEl) { + initPopover(suggestEl); + } }; diff --git a/app/assets/javascripts/groups/components/group_item.vue b/app/assets/javascripts/groups/components/group_item.vue index b192fb78631..1b8c75202fb 100644 --- a/app/assets/javascripts/groups/components/group_item.vue +++ b/app/assets/javascripts/groups/components/group_item.vue @@ -95,7 +95,7 @@ export default { <li :id="groupDomId" :class="rowClass" class="group-row" @click.stop="onClickRowGroup"> <div :class="{ 'project-row-contents': !isGroup }" - class="group-row-contents d-flex align-items-center py-2" + class="group-row-contents d-flex align-items-center py-2 pr-3" > <div class="folder-toggle-wrap append-right-4 d-flex align-items-center"> <item-caret :is-group-open="group.isOpen" /> @@ -103,8 +103,8 @@ export default { </div> <gl-loading-icon v-if="group.isChildrenLoading" - size="md" - class="d-none d-sm-inline-flex flex-shrink-0 append-right-10" + size="lg" + class="d-none d-sm-inline-flex flex-shrink-0 append-right-8" /> <div :class="{ 'd-sm-flex': !group.isChildrenLoading }" diff --git a/app/assets/javascripts/groups/components/item_actions.vue b/app/assets/javascripts/groups/components/item_actions.vue index 4b569970204..5454480e61a 100644 --- a/app/assets/javascripts/groups/components/item_actions.vue +++ b/app/assets/javascripts/groups/components/item_actions.vue @@ -68,7 +68,7 @@ export default { data-placement="bottom" class="edit-group btn btn-xs no-expand" > - <icon name="settings" class="position-top-0" /> + <icon name="settings" class="position-top-0 align-middle" /> </a> </div> </template> diff --git a/app/assets/stylesheets/components/popover.scss b/app/assets/stylesheets/components/popover.scss index 7e824c72f77..198500d07a7 100644 --- a/app/assets/stylesheets/components/popover.scss +++ b/app/assets/stylesheets/components/popover.scss @@ -144,9 +144,7 @@ .popover-header { padding: $gl-padding; - - .ic-close { - margin-top: -1em; - } + display: flex; + align-items: center; } } diff --git a/app/services/clusters/applications/base_helm_service.rb b/app/services/clusters/applications/base_helm_service.rb index 57bc8bc0d9b..0c9b41be8d2 100644 --- a/app/services/clusters/applications/base_helm_service.rb +++ b/app/services/clusters/applications/base_helm_service.rb @@ -50,7 +50,7 @@ module Clusters end def helm_api - @helm_api ||= Gitlab::Kubernetes::Helm::Api.new(kubeclient) + @helm_api ||= Gitlab::Kubernetes::Helm::API.new(kubeclient) end def install_command diff --git a/app/views/projects/_commit_button.html.haml b/app/views/projects/_commit_button.html.haml index b6689f4b57a..5f7ed46297b 100644 --- a/app/views/projects/_commit_button.html.haml +++ b/app/views/projects/_commit_button.html.haml @@ -1,5 +1,6 @@ .form-actions - = button_tag 'Commit changes', class: 'btn commit-btn js-commit-button btn-success qa-commit-button' + = button_tag 'Commit changes', id: 'commit-changes', class: 'btn commit-btn js-commit-button btn-success qa-commit-button' + = link_to 'Cancel', cancel_path, class: 'btn btn-cancel', data: {confirm: leave_edit_message} diff --git a/app/views/projects/blob/_editor.html.haml b/app/views/projects/blob/_editor.html.haml index 738bca111cd..cd8407608a3 100644 --- a/app/views/projects/blob/_editor.html.haml +++ b/app/views/projects/blob/_editor.html.haml @@ -20,7 +20,10 @@ required: true, class: 'form-control new-file-name js-file-path-name-input', value: params[:file_name] || (should_suggest_gitlab_ci_yml? ? '.gitlab-ci.yml' : '') = render 'template_selectors' - if should_suggest_gitlab_ci_yml? - = render partial: 'suggest_gitlab_ci_yml', locals: { target: '#gitlab-ci-yml-selector', dismiss_key: "suggest_gitlab_ci_yml_#{@project.id}" } + .js-suggest-gitlab-ci-yml{ data: { toggle: 'popover', + target: '#gitlab-ci-yml-selector', + track_label: 'suggest_gitlab_ci_yml', + dismiss_key: "suggest_gitlab_ci_yml_#{@project.id}" } } .file-buttons - if is_markdown diff --git a/app/views/projects/blob/_suggest_gitlab_ci_yml.html.haml b/app/views/projects/blob/_suggest_gitlab_ci_yml.html.haml deleted file mode 100644 index 6b368033c1e..00000000000 --- a/app/views/projects/blob/_suggest_gitlab_ci_yml.html.haml +++ /dev/null @@ -1,4 +0,0 @@ -.js-suggest-gitlab-ci-yml{ data: { toggle: 'popover', - target: target, - css_class: 'suggest-gitlab-ci-yml ml-4', - dismiss_key: dismiss_key } } diff --git a/app/views/projects/blob/new.html.haml b/app/views/projects/blob/new.html.haml index c5e3923f1e8..bf7900018c3 100644 --- a/app/views/projects/blob/new.html.haml +++ b/app/views/projects/blob/new.html.haml @@ -13,3 +13,8 @@ = hidden_field_tag 'content', '', id: 'file-content' = render 'projects/commit_button', ref: @ref, cancel_path: project_tree_path(@project, @id) + - if should_suggest_gitlab_ci_yml? + .js-suggest-gitlab-ci-yml-commit-changes{ data: { toggle: 'popover', + target: '#commit-changes', + track_label: 'suggest_commit_first_project_gitlab_ci_yml', + dismiss_key: "suggest_commit_first_project_gitlab_ci_yml_#{@project.id}" } } |