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
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-02-10 21:10:50 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-02-10 21:10:50 +0300
commitf27a1b0faf16a83ba9c3f71f660262e368f4509a (patch)
treef87277526b25da417b30a425c51bbd81eff6639b /app
parentae1b3d982482280f22a907faba2c9ba02f4d1db1 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/confidential_merge_request/components/dropdown.vue48
-rw-r--r--app/assets/javascripts/confidential_merge_request/components/project_form_group.vue2
-rw-r--r--app/assets/javascripts/issues/show/components/incidents/timeline_events_item.vue5
-rw-r--r--app/finders/packages/tags_finder.rb2
-rw-r--r--app/models/packages/package.rb3
-rw-r--r--app/models/packages/tag.rb4
-rw-r--r--app/models/system_note_metadata.rb3
-rw-r--r--app/presenters/packages/npm/package_presenter.rb2
8 files changed, 40 insertions, 29 deletions
diff --git a/app/assets/javascripts/confidential_merge_request/components/dropdown.vue b/app/assets/javascripts/confidential_merge_request/components/dropdown.vue
index 9cb7cd9607f..c937e65abe3 100644
--- a/app/assets/javascripts/confidential_merge_request/components/dropdown.vue
+++ b/app/assets/javascripts/confidential_merge_request/components/dropdown.vue
@@ -1,11 +1,10 @@
<script>
-import { GlDropdown, GlDropdownItem } from '@gitlab/ui';
+import { GlCollapsibleListbox } from '@gitlab/ui';
import { __ } from '~/locale';
export default {
components: {
- GlDropdown,
- GlDropdownItem,
+ GlCollapsibleListbox,
},
props: {
projects: {
@@ -19,32 +18,37 @@ export default {
},
},
computed: {
- dropdownText() {
- if (Object.keys(this.selectedProject).length) {
- return this.selectedProject.name;
- }
-
- return __('Select private project');
+ selectedProjectValue() {
+ return this.selectedProject?.id && String(this.selectedProject.id);
+ },
+ toggleText() {
+ return this.selectedProject?.name || __('Select private project');
+ },
+ listboxItems() {
+ return this.projects.map(({ id, name }) => {
+ return {
+ value: String(id),
+ text: name,
+ };
+ });
},
},
methods: {
- selectProject(project) {
- this.$emit('click', project);
+ selectProject(projectId) {
+ const project = this.projects.find(({ id }) => String(id) === projectId);
+ this.$emit('select', project);
},
},
};
</script>
<template>
- <gl-dropdown block icon="lock" :text="dropdownText">
- <gl-dropdown-item
- v-for="project in projects"
- :key="project.id"
- is-check-item
- :is-checked="project.id === selectedProject.id"
- @click="selectProject(project)"
- >
- {{ project.name }}
- </gl-dropdown-item>
- </gl-dropdown>
+ <gl-collapsible-listbox
+ icon="lock"
+ :items="listboxItems"
+ :selected="selectedProjectValue"
+ :toggle-text="toggleText"
+ block
+ @select="selectProject"
+ />
</template>
diff --git a/app/assets/javascripts/confidential_merge_request/components/project_form_group.vue b/app/assets/javascripts/confidential_merge_request/components/project_form_group.vue
index e95424eef4d..196f5537a90 100644
--- a/app/assets/javascripts/confidential_merge_request/components/project_form_group.vue
+++ b/app/assets/javascripts/confidential_merge_request/components/project_form_group.vue
@@ -114,7 +114,7 @@ export default {
v-if="projects.length"
:projects="projects"
:selected-project="selectedProject"
- @click="selectProject"
+ @select="selectProject"
/>
<p class="gl-text-gray-600 gl-mt-1 gl-mb-0">
<template v-if="projects.length">
diff --git a/app/assets/javascripts/issues/show/components/incidents/timeline_events_item.vue b/app/assets/javascripts/issues/show/components/incidents/timeline_events_item.vue
index 9819fb459b3..d33f3146d64 100644
--- a/app/assets/javascripts/issues/show/components/incidents/timeline_events_item.vue
+++ b/app/assets/javascripts/issues/show/components/incidents/timeline_events_item.vue
@@ -42,6 +42,9 @@ export default {
time() {
return formatDate(this.occurredAt, 'HH:MM', true);
},
+ canEditEvent() {
+ return this.action === 'comment';
+ },
},
methods: {
getEventIcon,
@@ -83,7 +86,7 @@ export default {
category="tertiary"
no-caret
>
- <gl-dropdown-item @click="$emit('edit')">
+ <gl-dropdown-item v-if="canEditEvent" @click="$emit('edit')">
{{ $options.i18n.edit }}
</gl-dropdown-item>
<gl-dropdown-item @click="$emit('delete')">
diff --git a/app/finders/packages/tags_finder.rb b/app/finders/packages/tags_finder.rb
index 020b3d8072a..dd104ea6f91 100644
--- a/app/finders/packages/tags_finder.rb
+++ b/app/finders/packages/tags_finder.rb
@@ -15,7 +15,7 @@ class Packages::TagsFinder
.with_name(package_name)
packages = packages.with_package_type(package_type) if package_type.present?
- Packages::Tag.for_packages(packages)
+ Packages::Tag.for_package_ids(packages.select(:id))
end
private
diff --git a/app/models/packages/package.rb b/app/models/packages/package.rb
index c5da647eea5..970538b45e7 100644
--- a/app/models/packages/package.rb
+++ b/app/models/packages/package.rb
@@ -162,7 +162,8 @@ class Packages::Package < ApplicationRecord
scope :preload_files, -> { preload(:installable_package_files) }
scope :preload_nuget_files, -> { preload(:installable_nuget_package_files) }
scope :preload_pipelines, -> { preload(pipelines: :user) }
- scope :last_of_each_version, -> { where(id: all.select('MAX(id) AS id').group(:version)) }
+ scope :last_of_each_version, -> { where(id: all.last_of_each_version_ids) }
+ scope :last_of_each_version_ids, -> { select('MAX(id) AS id').unscope(where: :id).group(:version) }
scope :limit_recent, ->(limit) { order_created_desc.limit(limit) }
scope :select_distinct_name, -> { select(:name).distinct }
diff --git a/app/models/packages/tag.rb b/app/models/packages/tag.rb
index 14a1ae98ed4..9c17a147bf4 100644
--- a/app/models/packages/tag.rb
+++ b/app/models/packages/tag.rb
@@ -10,8 +10,8 @@ class Packages::Tag < ApplicationRecord
scope :preload_package, -> { preload(:package) }
scope :with_name, -> (name) { where(name: name) }
- def self.for_packages(packages)
- where(package_id: packages.select(:id))
+ def self.for_package_ids(package_ids)
+ where(package_id: package_ids)
.order(updated_at: :desc)
.limit(FOR_PACKAGES_TAGS_LIMIT)
end
diff --git a/app/models/system_note_metadata.rb b/app/models/system_note_metadata.rb
index 36166bdbc9a..bb8527d8c01 100644
--- a/app/models/system_note_metadata.rb
+++ b/app/models/system_note_metadata.rb
@@ -2,6 +2,9 @@
class SystemNoteMetadata < ApplicationRecord
include Importable
+ include IgnorableColumns
+
+ ignore_column :note_id_convert_to_bigint, remove_with: '16.0', remove_after: '2023-05-22'
# These notes's action text might contain a reference that is external.
# We should always force a deep validation upon references that are found
diff --git a/app/presenters/packages/npm/package_presenter.rb b/app/presenters/packages/npm/package_presenter.rb
index fabb0a36746..57bdd373309 100644
--- a/app/presenters/packages/npm/package_presenter.rb
+++ b/app/presenters/packages/npm/package_presenter.rb
@@ -83,7 +83,7 @@ module Packages
end
def package_tags
- Packages::Tag.for_packages(packages)
+ Packages::Tag.for_package_ids(packages.last_of_each_version_ids)
.preload_package
end