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
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/diffs/components/diff_file.vue')
-rw-r--r--app/assets/javascripts/diffs/components/diff_file.vue79
1 files changed, 25 insertions, 54 deletions
diff --git a/app/assets/javascripts/diffs/components/diff_file.vue b/app/assets/javascripts/diffs/components/diff_file.vue
index 8e1c6cecbd1..4e1ccfc530e 100644
--- a/app/assets/javascripts/diffs/components/diff_file.vue
+++ b/app/assets/javascripts/diffs/components/diff_file.vue
@@ -25,7 +25,7 @@ import {
FILE_DIFF_POSITION_TYPE,
} from '../constants';
import eventHub from '../event_hub';
-import { DIFF_FILE, GENERIC_ERROR, CONFLICT_TEXT } from '../i18n';
+import { DIFF_FILE, SOMETHING_WENT_WRONG, SAVING_THE_COMMENT_FAILED, CONFLICT_TEXT } from '../i18n';
import { collapsedType, getShortShaFromFile } from '../utils/diff_file';
import DiffDiscussions from './diff_discussions.vue';
import DiffFileHeader from './diff_file_header.vue';
@@ -88,11 +88,6 @@ export default {
required: false,
default: true,
},
- preRender: {
- type: Boolean,
- required: false,
- default: false,
- },
},
idState() {
return {
@@ -104,7 +99,7 @@ export default {
},
i18n: {
...DIFF_FILE,
- genericError: GENERIC_ERROR,
+ genericError: SOMETHING_WENT_WRONG,
},
computed: {
...mapState('diffs', [
@@ -122,7 +117,7 @@ export default {
return getShortShaFromFile(this.file);
},
showLoadingIcon() {
- return this.idState.isLoadingCollapsedDiff || (!this.file.renderIt && !this.isCollapsed);
+ return this.idState.isLoadingCollapsedDiff;
},
hasDiff() {
return hasDiff(this.file);
@@ -177,9 +172,6 @@ export default {
showLocalFileReviews() {
return Boolean(gon.current_user_id);
},
- codequalityDiffForFile() {
- return this.codequalityDiff?.files?.[this.file.file_path] || [];
- },
isCollapsed() {
if (collapsedType(this.file) !== DIFF_FILE_MANUAL_COLLAPSE) {
return this.viewDiffsFileByFile ? false : this.file.viewer?.automaticallyCollapsed;
@@ -194,9 +186,8 @@ export default {
},
showFileDiscussions() {
return (
- this.glFeatures.commentOnFiles &&
!this.file.viewer?.manuallyCollapsed &&
- (this.fileDiscussions.length || this.file.drafts.length || this.file.hasCommentForm)
+ (this.fileDiscussions.length || this.file.drafts?.length || this.file.hasCommentForm)
);
},
diffFileHash() {
@@ -206,8 +197,6 @@ export default {
watch: {
'file.id': {
handler: function fileIdHandler() {
- if (this.preRender) return;
-
this.manageViewedEffects();
},
},
@@ -220,7 +209,6 @@ export default {
newHash &&
oldHash &&
!this.hasDiff &&
- !this.preRender &&
!this.idState.hasLoadedCollapsedDiff
) {
this.requestDiff();
@@ -229,14 +217,10 @@ export default {
},
},
created() {
- if (this.preRender) return;
-
notesEventHub.$on(`loadCollapsedDiff/${this.file.file_hash}`, this.requestDiff);
eventHub.$on(EVT_EXPAND_ALL_FILES, this.expandAllListener);
},
mounted() {
- if (this.preRender) return;
-
if (this.hasDiff) {
this.postRender();
}
@@ -244,15 +228,12 @@ export default {
this.manageViewedEffects();
},
beforeDestroy() {
- if (this.preRender) return;
-
eventHub.$off(EVT_EXPAND_ALL_FILES, this.expandAllListener);
},
methods: {
...mapActions('diffs', [
'loadCollapsedDiff',
'assignDiscussionsToDiff',
- 'setRenderIt',
'setFileCollapsedByUser',
'saveDiffDiscussion',
'toggleFileCommentForm',
@@ -316,10 +297,6 @@ export default {
.then(() => {
idState.isLoadingCollapsedDiff = false;
idState.hasLoadedCollapsedDiff = true;
-
- if (this.file.file_hash === file.file_hash) {
- this.setRenderIt(this.file);
- }
})
.then(() => {
if (this.file.file_hash !== file.file_hash) return;
@@ -345,7 +322,7 @@ export default {
hideForkMessage() {
this.idState.forkMessageVisible = false;
},
- handleSaveNote(note) {
+ handleSaveNote(note, parentElement, errorCallback) {
this.saveDiffDiscussion({
note,
formData: {
@@ -354,8 +331,23 @@ export default {
diffFile: this.file,
positionType: FILE_DIFF_POSITION_TYPE,
},
+ }).catch((e) => {
+ const reason = e.response?.data?.errors;
+ const errorMessage = reason
+ ? sprintf(SAVING_THE_COMMENT_FAILED, { reason })
+ : SOMETHING_WENT_WRONG;
+
+ createAlert({
+ message: errorMessage,
+ parent: parentElement,
+ });
+
+ errorCallback();
});
},
+ handleSaveDraftNote(note, _, parentElement, errorCallback) {
+ this.addToReview(note, this.$options.FILE_DIFF_POSITION_TYPE, parentElement, errorCallback);
+ },
},
CONFLICT_TEXT,
FILE_DIFF_POSITION_TYPE,
@@ -364,15 +356,14 @@ export default {
<template>
<div
- :id="!preRender && active && file.file_hash"
+ :id="file.file_hash"
:class="{
- 'is-active': currentDiffFileId === file.file_hash,
'comments-disabled': Boolean(file.brokenSymlink),
'has-body': showBody,
'is-virtual-scrolling': isVirtualScrollingEnabled,
}"
:data-path="file.new_path"
- class="diff-file file-holder gl-border-none"
+ class="diff-file file-holder gl-border-none gl-mb-0! gl-pb-5"
>
<diff-file-header
:can-current-user-fork="canCurrentUserFork"
@@ -383,7 +374,6 @@ export default {
:add-merge-request-buttons="true"
:view-diffs-file-by-file="viewDiffsFileByFile"
:show-local-file-reviews="showLocalFileReviews"
- :codequality-diff="codequalityDiffForFile"
class="js-file-title file-title gl-border-1 gl-border-solid gl-border-gray-100"
:class="hasBodyClasses.header"
@toggleFile="handleToggle({ viaUserInteraction: true })"
@@ -412,7 +402,7 @@ export default {
</div>
<template v-else>
<div
- :id="!preRender && active && `diff-content-${file.file_hash}`"
+ :id="`diff-content-${file.file_hash}`"
:class="hasBodyClasses.contentByHash"
data-testid="content-area"
>
@@ -463,7 +453,7 @@ export default {
</template>
</gl-sprintf>
</gl-alert>
- <div v-if="showFileDiscussions" class="gl-border-b" data-testid="file-discussions">
+ <div v-if="showFileDiscussions" data-testid="file-discussions">
<div class="diff-file-discussions-wrapper">
<diff-discussions
v-if="fileDiscussions.length"
@@ -485,9 +475,7 @@ export default {
class="gl-py-3 gl-px-5"
data-testid="file-note-form"
@handleFormUpdate="handleSaveNote"
- @handleFormUpdateAddToReview="
- (note) => addToReview(note, $options.FILE_DIFF_POSITION_TYPE)
- "
+ @handleFormUpdateAddToReview="handleSaveDraftNote"
@cancelForm="toggleFileCommentForm(file.file_path)"
/>
</div>
@@ -538,20 +526,3 @@ export default {
</template>
</div>
</template>
-
-<style>
-@keyframes shadow-fade {
- from {
- box-shadow: 0 0 4px #919191;
- }
-
- to {
- box-shadow: 0 0 0 #dfdfdf;
- }
-}
-
-.diff-file.is-active {
- box-shadow: 0 0 0 #dfdfdf;
- animation: shadow-fade 1.2s 0.1s 1;
-}
-</style>