diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-06 15:09:11 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-06 15:09:11 +0000 |
commit | 0eb3d2f799ce4f4de87fb9fc6fd98e592323bc89 (patch) | |
tree | fd70d5bc63fe152e0a67aaa5a70e4c9f16dc6ffc /app | |
parent | 5564275a0b378298dc6281599cbfe71a937109ff (diff) | |
download | gitlab-ce-0eb3d2f799ce4f4de87fb9fc6fd98e592323bc89.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
26 files changed, 34 insertions, 49 deletions
diff --git a/app/assets/javascripts/diffs/components/settings_dropdown.vue b/app/assets/javascripts/diffs/components/settings_dropdown.vue index 0129763161a..08e991c4791 100644 --- a/app/assets/javascripts/diffs/components/settings_dropdown.vue +++ b/app/assets/javascripts/diffs/components/settings_dropdown.vue @@ -31,7 +31,7 @@ export default { data-toggle="dropdown" data-display="static" > - <icon name="settings" /> <icon name="arrow-down" /> + <icon name="settings" /> <icon name="chevron-down" /> </button> <div class="dropdown-menu dropdown-menu-right p-2 pt-3 pb-3"> <div> diff --git a/app/assets/javascripts/ide/components/new_dropdown/index.vue b/app/assets/javascripts/ide/components/new_dropdown/index.vue index b2fa020fb00..9961c0df52e 100644 --- a/app/assets/javascripts/ide/components/new_dropdown/index.vue +++ b/app/assets/javascripts/ide/components/new_dropdown/index.vue @@ -64,7 +64,7 @@ export default { class="rounded border-0 d-flex ide-entry-dropdown-toggle" @click.stop="openDropdown()" > - <icon name="ellipsis_v" /> <icon name="arrow-down" /> + <icon name="ellipsis_v" /> <icon name="chevron-down" /> </button> <ul ref="dropdownMenu" class="dropdown-menu dropdown-menu-right"> <template v-if="type === 'tree'"> diff --git a/app/assets/javascripts/ide/stores/actions.js b/app/assets/javascripts/ide/stores/actions.js index 34e7cc304dd..9bc008c0dd5 100644 --- a/app/assets/javascripts/ide/stores/actions.js +++ b/app/assets/javascripts/ide/stores/actions.js @@ -86,7 +86,6 @@ export const createTempEntry = ( dispatch('setFileActive', file.path); dispatch('triggerFilesChange'); - dispatch('burstUnusedSeal'); } if (parentPath && !state.entries[parentPath].opened) { @@ -175,12 +174,6 @@ export const updateTempFlagForEntry = ({ commit, dispatch, state }, { file, temp export const toggleFileFinder = ({ commit }, fileFindVisible) => commit(types.TOGGLE_FILE_FINDER, fileFindVisible); -export const burstUnusedSeal = ({ state, commit }) => { - if (state.unusedSeal) { - commit(types.BURST_UNUSED_SEAL); - } -}; - export const setLinks = ({ commit }, links) => commit(types.SET_LINKS, links); export const setErrorMessage = ({ commit }, errorMessage) => @@ -209,8 +202,6 @@ export const deleteEntry = ({ commit, dispatch, state }, path) => { return; } - dispatch('burstUnusedSeal'); - if (entry.opened) dispatch('closeFile', entry); if (isTree) { @@ -262,8 +253,6 @@ export const renameEntry = ({ dispatch, commit, state, getters }, { path, name, if (gon.features?.stageAllByDefault) commit(types.STAGE_CHANGE, { path: newPath, diffInfo: getters.getDiffInfo(newPath) }); else commit(types.ADD_FILE_TO_CHANGED, newPath); - - dispatch('burstUnusedSeal'); } if (!newEntry.tempFile) { diff --git a/app/assets/javascripts/ide/stores/actions/file.js b/app/assets/javascripts/ide/stores/actions/file.js index 55ee8a699c8..052120059c4 100644 --- a/app/assets/javascripts/ide/stores/actions/file.js +++ b/app/assets/javascripts/ide/stores/actions/file.js @@ -148,7 +148,7 @@ export const getRawFileData = ({ state, commit, dispatch, getters }, { path }) = }); }; -export const changeFileContent = ({ commit, dispatch, state, getters }, { path, content }) => { +export const changeFileContent = ({ commit, state, getters }, { path, content }) => { const file = state.entries[path]; commit(types.UPDATE_FILE_CONTENT, { path, @@ -164,8 +164,6 @@ export const changeFileContent = ({ commit, dispatch, state, getters }, { path, } else if (!file.changed && !file.tempFile && indexOfChangedFile !== -1) { commit(types.REMOVE_FILE_FROM_CHANGED, path); } - - dispatch('burstUnusedSeal', {}, { root: true }); }; export const setFileLanguage = ({ getters, commit }, { fileLanguage }) => { diff --git a/app/assets/javascripts/ide/stores/mutation_types.js b/app/assets/javascripts/ide/stores/mutation_types.js index 4dde53a9fdf..78831bdf022 100644 --- a/app/assets/javascripts/ide/stores/mutation_types.js +++ b/app/assets/javascripts/ide/stores/mutation_types.js @@ -67,7 +67,6 @@ export const REMOVE_PENDING_TAB = 'REMOVE_PENDING_TAB'; export const UPDATE_ACTIVITY_BAR_VIEW = 'UPDATE_ACTIVITY_BAR_VIEW'; export const UPDATE_TEMP_FLAG = 'UPDATE_TEMP_FLAG'; export const TOGGLE_FILE_FINDER = 'TOGGLE_FILE_FINDER'; -export const BURST_UNUSED_SEAL = 'BURST_UNUSED_SEAL'; export const CLEAR_PROJECTS = 'CLEAR_PROJECTS'; export const RESET_OPEN_FILES = 'RESET_OPEN_FILES'; diff --git a/app/assets/javascripts/ide/stores/mutations.js b/app/assets/javascripts/ide/stores/mutations.js index e84e2782e46..49485f4d575 100644 --- a/app/assets/javascripts/ide/stores/mutations.js +++ b/app/assets/javascripts/ide/stores/mutations.js @@ -180,11 +180,6 @@ export default { }); } }, - [types.BURST_UNUSED_SEAL](state) { - Object.assign(state, { - unusedSeal: false, - }); - }, [types.SET_LINKS](state, links) { Object.assign(state, { links }); }, @@ -226,6 +221,8 @@ export default { state.changedFiles = state.changedFiles.concat(entry); } } + + state.unusedSeal = false; }, [types.RENAME_ENTRY](state, { path, name, parentPath }) { const oldEntry = state.entries[path]; diff --git a/app/assets/javascripts/ide/stores/mutations/file.js b/app/assets/javascripts/ide/stores/mutations/file.js index 313fa1fe029..5c5920a3027 100644 --- a/app/assets/javascripts/ide/stores/mutations/file.js +++ b/app/assets/javascripts/ide/stores/mutations/file.js @@ -153,11 +153,13 @@ export default { [types.ADD_FILE_TO_CHANGED](state, path) { Object.assign(state, { changedFiles: state.changedFiles.concat(state.entries[path]), + unusedSeal: false, }); }, [types.REMOVE_FILE_FROM_CHANGED](state, path) { Object.assign(state, { changedFiles: state.changedFiles.filter(f => f.path !== path), + unusedSeal: false, }); }, [types.STAGE_CHANGE](state, { path, diffInfo }) { @@ -173,6 +175,7 @@ export default { deleted: diffInfo.deleted, }), }), + unusedSeal: false, }); if (stagedFile) { diff --git a/app/assets/javascripts/releases/list/components/release_block_assets.vue b/app/assets/javascripts/releases/list/components/release_block_assets.vue index e840bc90d68..06b7f97a8de 100644 --- a/app/assets/javascripts/releases/list/components/release_block_assets.vue +++ b/app/assets/javascripts/releases/list/components/release_block_assets.vue @@ -52,7 +52,7 @@ export default { > <icon name="doc-code" class="align-top append-right-4" /> {{ __('Source code') }} - <icon name="arrow-down" /> + <icon name="chevron-down" /> </button> <div class="js-sources-dropdown dropdown-menu"> diff --git a/app/assets/javascripts/repository/components/breadcrumbs.vue b/app/assets/javascripts/repository/components/breadcrumbs.vue index 9d6eda55c1e..751565ad542 100644 --- a/app/assets/javascripts/repository/components/breadcrumbs.vue +++ b/app/assets/javascripts/repository/components/breadcrumbs.vue @@ -45,7 +45,7 @@ export default { currentPath: { type: String, required: false, - default: '/', + default: '', }, canCollaborate: { type: Boolean, @@ -107,7 +107,7 @@ export default { return acc.concat({ name, path, - to: `/-/tree/${escape(this.ref)}${path}`, + to: `/-/tree/${escape(this.ref)}${escape(path)}`, }); }, [ @@ -133,7 +133,7 @@ export default { }, { attrs: { - href: `${this.newBlobPath}${this.currentPath}`, + href: `${this.newBlobPath}/${this.currentPath ? escape(this.currentPath) : ''}`, class: 'qa-new-file-option', }, text: __('New file'), @@ -242,7 +242,7 @@ export default { <template slot="button-content"> <span class="sr-only">{{ __('Add to tree') }}</span> <icon name="plus" :size="16" class="float-left" /> - <icon name="arrow-down" :size="16" class="float-left" /> + <icon name="chevron-down" :size="16" class="float-left" /> </template> <template v-for="(item, i) in dropdownItems"> <component :is="getComponent(item.type)" :key="i" v-bind="item.attrs"> diff --git a/app/assets/javascripts/repository/components/table/parent_row.vue b/app/assets/javascripts/repository/components/table/parent_row.vue index 096c25a693f..a5c6c9822fb 100644 --- a/app/assets/javascripts/repository/components/table/parent_row.vue +++ b/app/assets/javascripts/repository/components/table/parent_row.vue @@ -28,7 +28,7 @@ export default { return splitArray.join('/'); }, parentRoute() { - return { path: `/-/tree/${escape(this.commitRef)}/${this.parentPath}` }; + return { path: `/-/tree/${escape(this.commitRef)}/${escape(this.parentPath)}` }; }, }, methods: { diff --git a/app/assets/javascripts/repository/components/table/row.vue b/app/assets/javascripts/repository/components/table/row.vue index e7bbca957c1..f97c8ae1f74 100644 --- a/app/assets/javascripts/repository/components/table/row.vue +++ b/app/assets/javascripts/repository/components/table/row.vue @@ -90,7 +90,7 @@ export default { }, computed: { routerLinkTo() { - return this.isFolder ? { path: `/-/tree/${escape(this.ref)}/${this.path}` } : null; + return this.isFolder ? { path: `/-/tree/${escape(this.ref)}/${escape(this.path)}` } : null; }, iconName() { return `fa-${getIconName(this.type, this.path)}`; diff --git a/app/assets/javascripts/repository/index.js b/app/assets/javascripts/repository/index.js index aefbef5467d..637060f6ed9 100644 --- a/app/assets/javascripts/repository/index.js +++ b/app/assets/javascripts/repository/index.js @@ -100,7 +100,7 @@ export default function setupVueRepositoryList() { render(h) { return h(TreeActionLink, { props: { - path: `${historyLink}/${this.$route.params.path || ''}`, + path: `${historyLink}/${this.$route.params.path ? escape(this.$route.params.path) : ''}`, text: __('History'), }, }); diff --git a/app/assets/javascripts/repository/log_tree.js b/app/assets/javascripts/repository/log_tree.js index aefa4963d5f..192e410b36f 100644 --- a/app/assets/javascripts/repository/log_tree.js +++ b/app/assets/javascripts/repository/log_tree.js @@ -27,9 +27,8 @@ export function fetchLogsTree(client, path, offset, resolver = null) { fetchpromise = axios .get( - `${gon.relative_url_root}/${projectPath}/-/refs/${escape(ref)}/logs_tree/${path.replace( - /^\//, - '', + `${gon.relative_url_root}/${projectPath}/-/refs/${escape(ref)}/logs_tree/${escape( + path.replace(/^\//, ''), )}`, { params: { format: 'json', offset }, diff --git a/app/assets/javascripts/vue_shared/components/droplab_dropdown_button.vue b/app/assets/javascripts/vue_shared/components/droplab_dropdown_button.vue index c35fee84771..9aca210c1fb 100644 --- a/app/assets/javascripts/vue_shared/components/droplab_dropdown_button.vue +++ b/app/assets/javascripts/vue_shared/components/droplab_dropdown_button.vue @@ -69,7 +69,7 @@ export default { data-display="static" data-toggle="dropdown" > - <icon name="arrow-down" :aria-label="__('toggle dropdown')" /> + <icon name="chevron-down" :aria-label="__('toggle dropdown')" /> </button> <ul :class="dropdownClass" class="dropdown-menu dropdown-open-top"> <template v-for="(action, index) in actions"> diff --git a/app/controllers/projects/tree_controller.rb b/app/controllers/projects/tree_controller.rb index aba28e5c835..b8fe2a47b30 100644 --- a/app/controllers/projects/tree_controller.rb +++ b/app/controllers/projects/tree_controller.rb @@ -32,7 +32,7 @@ class Projects::TreeController < Projects::ApplicationController respond_to do |format| format.html do - lfs_blob_ids if Feature.disabled?(:vue_file_list, @project) + lfs_blob_ids if Feature.disabled?(:vue_file_list, @project, default_enabled: true) @last_commit = @repository.last_commit_for_path(@commit.id, @tree.path) || @commit end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index d39a4c373ff..31b86946ca2 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -296,7 +296,7 @@ class ProjectsController < Projects::ApplicationController private def show_blob_ids? - repo_exists? && project_view_files? && Feature.disabled?(:vue_file_list, @project) + repo_exists? && project_view_files? && Feature.disabled?(:vue_file_list, @project, default_enabled: true) end # Render project landing depending of which features are available diff --git a/app/finders/projects_finder.rb b/app/finders/projects_finder.rb index 7cac8deea07..c319d2fed87 100644 --- a/app/finders/projects_finder.rb +++ b/app/finders/projects_finder.rb @@ -45,7 +45,7 @@ class ProjectsFinder < UnionFinder end use_cte = params.delete(:use_cte) - collection = Project.wrap_authorized_projects_with_cte(collection) if use_cte + collection = Project.wrap_with_cte(collection) if use_cte collection = filter_projects(collection) sort(collection) end diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 93c38d2f933..d3b0304f2c7 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -703,7 +703,7 @@ module ProjectsHelper end def vue_file_list_enabled? - Feature.enabled?(:vue_file_list, @project) + Feature.enabled?(:vue_file_list, @project, default_enabled: true) end def native_code_navigation_enabled?(project) diff --git a/app/models/project.rb b/app/models/project.rb index 8a751b0d706..667618ae1bd 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -548,8 +548,8 @@ class Project < ApplicationRecord ) end - def self.wrap_authorized_projects_with_cte(collection) - cte = Gitlab::SQL::CTE.new(:authorized_projects, collection) + def self.wrap_with_cte(collection) + cte = Gitlab::SQL::CTE.new(:projects_cte, collection) Project.with(cte.to_arel).from(cte.alias_to(Project.arel_table)) end diff --git a/app/views/groups/_home_panel.html.haml b/app/views/groups/_home_panel.html.haml index e50d2b8e994..6772ee94d46 100644 --- a/app/views/groups/_home_panel.html.haml +++ b/app/views/groups/_home_panel.html.haml @@ -30,7 +30,7 @@ .btn-group.new-project-subgroup.droplab-dropdown.home-panel-action-button.prepend-top-default.js-new-project-subgroup.qa-new-project-or-subgroup-dropdown{ data: { project_path: new_project_path(namespace_id: @group.id), subgroup_path: new_group_path(parent_id: @group.id) } } %input.btn.btn-success.dropdown-primary.js-new-group-child.qa-new-in-group-button{ type: "button", value: new_project_label, data: { action: "new-project" } } %button.btn.btn-success.dropdown-toggle.js-dropdown-toggle.qa-new-project-or-subgroup-dropdown-toggle{ type: "button", data: { "dropdown-trigger" => "#new-project-or-subgroup-dropdown", 'display' => 'static' } } - = sprite_icon("arrow-down", css_class: "icon dropdown-btn-icon") + = sprite_icon("chevron-down", css_class: "icon dropdown-btn-icon") %ul#new-project-or-subgroup-dropdown.dropdown-menu.dropdown-menu-right{ data: { dropdown: true } } %li.droplab-item-selected.qa-new-project-option{ role: "button", data: { value: "new-project", text: new_project_label } } .menu-item diff --git a/app/views/projects/buttons/_clone.html.haml b/app/views/projects/buttons/_clone.html.haml index 7507be52f44..b12be8a91d6 100644 --- a/app/views/projects/buttons/_clone.html.haml +++ b/app/views/projects/buttons/_clone.html.haml @@ -5,7 +5,7 @@ %a#clone-dropdown.btn.btn-primary.clone-dropdown-btn.qa-clone-dropdown{ href: '#', data: { toggle: 'dropdown' } } %span.append-right-4.js-clone-dropdown-label = _('Clone') - = sprite_icon("arrow-down", css_class: "icon") + = sprite_icon("chevron-down", css_class: "icon") %ul.p-3.dropdown-menu.dropdown-menu-large.dropdown-menu-selectable.clone-options-dropdown.qa-clone-options{ class: dropdown_class } - if ssh_enabled? %li diff --git a/app/views/projects/buttons/_download.html.haml b/app/views/projects/buttons/_download.html.haml index e8aff58b505..cae8bbf8c01 100644 --- a/app/views/projects/buttons/_download.html.haml +++ b/app/views/projects/buttons/_download.html.haml @@ -6,7 +6,7 @@ %button.btn.has-tooltip{ title: s_('DownloadSource|Download'), 'data-toggle' => 'dropdown', 'aria-label' => s_('DownloadSource|Download'), 'data-display' => 'static', data: { qa_selector: 'download_source_code_button' } } = sprite_icon('download') %span.sr-only= _('Select Archive Format') - = sprite_icon("arrow-down") + = sprite_icon("chevron-down") .dropdown-menu.dropdown-menu-right{ role: 'menu' } %section %h5.m-0.dropdown-bold-header= _('Download source code') diff --git a/app/views/projects/compare/_form.html.haml b/app/views/projects/compare/_form.html.haml index c8c96297672..f5a4889b4bb 100644 --- a/app/views/projects/compare/_form.html.haml +++ b/app/views/projects/compare/_form.html.haml @@ -10,7 +10,7 @@ = hidden_field_tag :to, params[:to] = button_tag type: 'button', title: params[:to], class: "btn form-control compare-dropdown-toggle js-compare-dropdown has-tooltip", required: true, data: { refs_url: refs_project_path(@project), toggle: "dropdown", target: ".js-compare-to-dropdown", selected: params[:to], field_name: :to } do .dropdown-toggle-text.str-truncated.monospace.float-left= params[:to] || _("Select branch/tag") - = sprite_icon('arrow-down', size: 16, css_class: 'float-right') + = sprite_icon('chevron-down', size: 16, css_class: 'float-right') = render 'shared/ref_dropdown' .compare-ellipsis.inline ... .form-group.dropdown.compare-form-group.from.js-compare-from-dropdown @@ -21,7 +21,7 @@ = hidden_field_tag :from, params[:from] = button_tag type: 'button', title: params[:from], class: "btn form-control compare-dropdown-toggle js-compare-dropdown has-tooltip", required: true, data: { refs_url: refs_project_path(@project), toggle: "dropdown", target: ".js-compare-from-dropdown", selected: params[:from], field_name: :from } do .dropdown-toggle-text.str-truncated.monospace.float-left= params[:from] || _("Select branch/tag") - = sprite_icon('arrow-down', size: 16, css_class: 'float-right') + = sprite_icon('chevron-down', size: 16, css_class: 'float-right') = render 'shared/ref_dropdown' = button_tag s_("CompareBranches|Compare"), class: "btn btn-success commits-compare-btn" diff --git a/app/views/projects/tree/_tree_header.html.haml b/app/views/projects/tree/_tree_header.html.haml index 52a11642f32..ffc10142259 100644 --- a/app/views/projects/tree/_tree_header.html.haml +++ b/app/views/projects/tree/_tree_header.html.haml @@ -25,7 +25,7 @@ %li.breadcrumb-item %button.btn.add-to-tree.qa-add-to-tree{ addtotree_toggle_attributes, type: 'button' } = sprite_icon('plus', size: 16, css_class: 'float-left') - = sprite_icon('arrow-down', size: 16, css_class: 'float-left') + = sprite_icon('chevron-down', size: 16, css_class: 'float-left') - if on_top_of_branch? .add-to-tree-dropdown %ul.dropdown-menu diff --git a/app/views/shared/_mobile_clone_panel.html.haml b/app/views/shared/_mobile_clone_panel.html.haml index df2ed5cfd97..2854b115506 100644 --- a/app/views/shared/_mobile_clone_panel.html.haml +++ b/app/views/shared/_mobile_clone_panel.html.haml @@ -5,7 +5,7 @@ .btn-group.mobile-git-clone.js-mobile-git-clone.btn-block = clipboard_button(button_text: default_clone_label, text: default_url_to_repo(project), hide_button_icon: true, class: "btn-primary flex-fill bold justify-content-center input-group-text clone-dropdown-btn js-clone-dropdown-label") %button.btn.btn-primary.dropdown-toggle.js-dropdown-toggle.flex-grow-0.d-flex-center.w-auto.ml-0{ type: "button", data: { toggle: "dropdown" } } - = sprite_icon("arrow-down", css_class: "dropdown-btn-icon icon") + = sprite_icon("chevron-down", css_class: "dropdown-btn-icon icon") %ul.dropdown-menu.dropdown-menu-selectable.dropdown-menu-right.clone-options-dropdown{ data: { dropdown: true } } - if ssh_enabled? %li diff --git a/app/views/shared/notifications/_new_button.html.haml b/app/views/shared/notifications/_new_button.html.haml index 363053b5e35..566f08b94ce 100644 --- a/app/views/shared/notifications/_new_button.html.haml +++ b/app/views/shared/notifications/_new_button.html.haml @@ -20,13 +20,13 @@ = notification_setting_icon(notification_setting) %span.js-notification-loading.fa.hidden %button.btn.dropdown-toggle{ data: { toggle: "dropdown", target: notifications_menu_identifier("dropdown", notification_setting), flip: "false" }, class: "#{btn_class}" } - = sprite_icon("arrow-down", css_class: "icon mr-0") + = sprite_icon("chevron-down", css_class: "icon mr-0") .sr-only Toggle dropdown - else %button.dropdown-new.btn.btn-default.has-tooltip.notifications-btn#notifications-button{ type: "button", title: button_title, class: "#{btn_class}", "aria-label" => button_title, data: { container: "body", placement: 'top', toggle: "dropdown", target: notifications_menu_identifier("dropdown", notification_setting), flip: "false" } } = notification_setting_icon(notification_setting) %span.js-notification-loading.fa.hidden - = sprite_icon("arrow-down", css_class: "icon") + = sprite_icon("chevron-down", css_class: "icon") = render "shared/notifications/notification_dropdown", notification_setting: notification_setting |