From 254ec28f5448f6f353cd98f637985de3d1405854 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 9 Apr 2020 21:09:19 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- app/assets/javascripts/diffs/components/app.vue | 13 -- .../diffs/components/compare_dropdown_layout.vue | 78 ++++++++++ .../diffs/components/compare_versions.vue | 39 ++--- .../diffs/components/compare_versions_dropdown.vue | 162 --------------------- app/assets/javascripts/diffs/constants.js | 2 + app/assets/javascripts/diffs/store/getters.js | 2 + .../diffs/store/getters_versions_dropdowns.js | 43 ++++++ .../javascripts/diffs/store/modules/diff_state.js | 2 +- .../javascripts/notes/components/note_header.vue | 35 +++-- .../pages/projects/services/edit/index.js | 9 +- .../prometheus_metrics/prometheus_metrics.js | 4 + .../badges/gitlab_team_member_badge.vue | 27 ++++ 12 files changed, 194 insertions(+), 222 deletions(-) create mode 100644 app/assets/javascripts/diffs/components/compare_dropdown_layout.vue delete mode 100644 app/assets/javascripts/diffs/components/compare_versions_dropdown.vue create mode 100644 app/assets/javascripts/diffs/store/getters_versions_dropdowns.js create mode 100644 app/assets/javascripts/vue_shared/components/user_avatar/badges/gitlab_team_member_badge.vue (limited to 'app/assets') diff --git a/app/assets/javascripts/diffs/components/app.vue b/app/assets/javascripts/diffs/components/app.vue index 3ea2a2fbaee..072bcaaad97 100644 --- a/app/assets/javascripts/diffs/components/app.vue +++ b/app/assets/javascripts/diffs/components/app.vue @@ -112,7 +112,6 @@ export default { mergeRequestDiffs: state => state.diffs.mergeRequestDiffs, mergeRequestDiff: state => state.diffs.mergeRequestDiff, commit: state => state.diffs.commit, - targetBranchName: state => state.diffs.targetBranchName, renderOverflowWarning: state => state.diffs.renderOverflowWarning, numTotalFiles: state => state.diffs.realSize, numVisibleFiles: state => state.diffs.size, @@ -123,19 +122,9 @@ export default { ...mapState('diffs', ['showTreeList', 'isLoading', 'startVersion']), ...mapGetters('diffs', ['isParallelView', 'currentDiffIndex']), ...mapGetters(['isNotesFetched', 'getNoteableData']), - targetBranch() { - return { - branchName: this.targetBranchName, - versionIndex: -1, - path: '', - }; - }, canCurrentUserFork() { return this.currentUser.can_fork === true && this.currentUser.can_create_merge_request; }, - showCompareVersions() { - return this.mergeRequestDiffs && this.mergeRequestDiff; - }, renderDiffFiles() { return ( this.diffFiles.length > 0 || @@ -369,8 +358,6 @@ export default {
diff --git a/app/assets/javascripts/diffs/components/compare_dropdown_layout.vue b/app/assets/javascripts/diffs/components/compare_dropdown_layout.vue new file mode 100644 index 00000000000..ed4edabd81c --- /dev/null +++ b/app/assets/javascripts/diffs/components/compare_dropdown_layout.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/app/assets/javascripts/diffs/components/compare_versions.vue b/app/assets/javascripts/diffs/components/compare_versions.vue index 34716c214c6..c680c3f4600 100644 --- a/app/assets/javascripts/diffs/components/compare_versions.vue +++ b/app/assets/javascripts/diffs/components/compare_versions.vue @@ -4,14 +4,14 @@ import { GlTooltipDirective, GlLink, GlDeprecatedButton, GlSprintf } from '@gitl import { __ } from '~/locale'; import { polyfillSticky } from '~/lib/utils/sticky'; import Icon from '~/vue_shared/components/icon.vue'; -import CompareVersionsDropdown from './compare_versions_dropdown.vue'; +import CompareDropdownLayout from './compare_dropdown_layout.vue'; import SettingsDropdown from './settings_dropdown.vue'; import DiffStats from './diff_stats.vue'; import { CENTERED_LIMITED_CONTAINER_CLASSES } from '../constants'; export default { components: { - CompareVersionsDropdown, + CompareDropdownLayout, Icon, GlLink, GlDeprecatedButton, @@ -27,16 +27,6 @@ export default { type: Array, required: true, }, - mergeRequestDiff: { - type: Object, - required: false, - default: () => ({}), - }, - targetBranch: { - type: Object, - required: false, - default: null, - }, isLimitedContainer: { type: Boolean, required: false, @@ -48,7 +38,11 @@ export default { }, }, computed: { - ...mapGetters('diffs', ['hasCollapsedFile']), + ...mapGetters('diffs', [ + 'hasCollapsedFile', + 'diffCompareDropdownTargetVersions', + 'diffCompareDropdownSourceVersions', + ]), ...mapState('diffs', [ 'commit', 'showTreeList', @@ -57,18 +51,12 @@ export default { 'addedLines', 'removedLines', ]), - comparableDiffs() { - return this.mergeRequestDiffs.slice(1); - }, showDropdowns() { return !this.commit && this.mergeRequestDiffs.length; }, toggleFileBrowserTitle() { return this.showTreeList ? __('Hide file browser') : __('Show file browser'); }, - baseVersionPath() { - return this.mergeRequestDiff.base_version_path; - }, }, created() { this.CENTERED_LIMITED_CONTAINER_CLASSES = CENTERED_LIMITED_CONTAINER_CLASSES; @@ -113,19 +101,14 @@ export default { :message="s__('MergeRequest|Compare %{source} and %{target}')" > diff --git a/app/assets/javascripts/diffs/components/compare_versions_dropdown.vue b/app/assets/javascripts/diffs/components/compare_versions_dropdown.vue deleted file mode 100644 index cc4b2dacab3..00000000000 --- a/app/assets/javascripts/diffs/components/compare_versions_dropdown.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - diff --git a/app/assets/javascripts/diffs/constants.js b/app/assets/javascripts/diffs/constants.js index 7521f3c950a..b07dfe5f33d 100644 --- a/app/assets/javascripts/diffs/constants.js +++ b/app/assets/javascripts/diffs/constants.js @@ -58,3 +58,5 @@ export const START_RENDERING_INDEX = 200; export const INLINE_DIFF_LINES_KEY = 'highlighted_diff_lines'; export const PARALLEL_DIFF_LINES_KEY = 'parallel_diff_lines'; export const DIFFS_PER_PAGE = 20; + +export const DIFF_COMPARE_BASE_VERSION_INDEX = -1; diff --git a/app/assets/javascripts/diffs/store/getters.js b/app/assets/javascripts/diffs/store/getters.js index 3898974638f..047caed1e63 100644 --- a/app/assets/javascripts/diffs/store/getters.js +++ b/app/assets/javascripts/diffs/store/getters.js @@ -1,6 +1,8 @@ import { __, n__ } from '~/locale'; import { PARALLEL_DIFF_VIEW_TYPE, INLINE_DIFF_VIEW_TYPE } from '../constants'; +export * from './getters_versions_dropdowns'; + export const isParallelView = state => state.diffViewType === PARALLEL_DIFF_VIEW_TYPE; export const isInlineView = state => state.diffViewType === INLINE_DIFF_VIEW_TYPE; diff --git a/app/assets/javascripts/diffs/store/getters_versions_dropdowns.js b/app/assets/javascripts/diffs/store/getters_versions_dropdowns.js new file mode 100644 index 00000000000..14c51602f28 --- /dev/null +++ b/app/assets/javascripts/diffs/store/getters_versions_dropdowns.js @@ -0,0 +1,43 @@ +import { __, n__, sprintf } from '~/locale'; +import { DIFF_COMPARE_BASE_VERSION_INDEX } from '../constants'; + +export const selectedTargetIndex = state => + state.startVersion?.version_index || DIFF_COMPARE_BASE_VERSION_INDEX; + +export const selectedSourceIndex = state => state.mergeRequestDiff.version_index; + +export const diffCompareDropdownTargetVersions = (state, getters) => { + // startVersion only exists if the user has selected a version other + // than "base" so if startVersion is null then base must be selected + const baseVersion = { + versionName: state.targetBranchName, + version_index: DIFF_COMPARE_BASE_VERSION_INDEX, + href: state.mergeRequestDiff.base_version_path, + isBase: true, + selected: !state.startVersion, + }; + // Appended properties here are to make the compare_dropdown_layout easier to reason about + const formatVersion = v => { + return { + href: v.compare_path, + versionName: sprintf(__(`version %{versionIndex}`), { versionIndex: v.version_index }), + selected: v.version_index === getters.selectedTargetIndex, + ...v, + }; + }; + return [...state.mergeRequestDiffs.slice(1).map(formatVersion), baseVersion]; +}; + +export const diffCompareDropdownSourceVersions = (state, getters) => { + // Appended properties here are to make the compare_dropdown_layout easier to reason about + return state.mergeRequestDiffs.map((v, i) => ({ + ...v, + href: v.version_path, + commitsText: n__(`%d commit,`, `%d commits,`, v.commits_count), + versionName: + i === 0 + ? __('latest version') + : sprintf(__(`version %{versionIndex}`), { versionIndex: v.version_index }), + selected: v.version_index === getters.selectedSourceIndex, + })); +}; diff --git a/app/assets/javascripts/diffs/store/modules/diff_state.js b/app/assets/javascripts/diffs/store/modules/diff_state.js index 81f1506260c..87938ababed 100644 --- a/app/assets/javascripts/diffs/store/modules/diff_state.js +++ b/app/assets/javascripts/diffs/store/modules/diff_state.js @@ -15,7 +15,7 @@ export default () => ({ endpoint: '', basePath: '', commit: null, - startVersion: null, + startVersion: null, // Null unless a target diff is selected for comparison that is not the "base" diff diffFiles: [], coverageFiles: {}, mergeRequestDiffs: [], diff --git a/app/assets/javascripts/notes/components/note_header.vue b/app/assets/javascripts/notes/components/note_header.vue index 16351baedb7..9cb592ceedb 100644 --- a/app/assets/javascripts/notes/components/note_header.vue +++ b/app/assets/javascripts/notes/components/note_header.vue @@ -1,10 +1,12 @@ + + -- cgit v1.2.1