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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-10 18:07:47 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-10 18:07:47 +0300
commit8b1228b0d409d7751f01d9fb72ebfbbf62399486 (patch)
tree1b4126fe48d7666a90c0d7ee26230cf8379b6410 /app/assets/javascripts/ide/stores
parent96b0c1245c93585a8b0fe23e22306d32ff4e4905 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/ide/stores')
-rw-r--r--app/assets/javascripts/ide/stores/actions/file.js15
-rw-r--r--app/assets/javascripts/ide/stores/mutations/file.js22
2 files changed, 23 insertions, 14 deletions
diff --git a/app/assets/javascripts/ide/stores/actions/file.js b/app/assets/javascripts/ide/stores/actions/file.js
index cec4ce204f8..99e13e32ba4 100644
--- a/app/assets/javascripts/ide/stores/actions/file.js
+++ b/app/assets/javascripts/ide/stores/actions/file.js
@@ -61,8 +61,10 @@ export const getFileData = (
{ path, makeFileActive = true, openFile = makeFileActive },
) => {
const file = state.entries[path];
+ const fileDeletedAndReadded = getters.isFileDeletedAndReadded(path);
- if (file.raw || (file.tempFile && !file.prevPath)) return Promise.resolve();
+ if (file.raw || (file.tempFile && !file.prevPath && !fileDeletedAndReadded))
+ return Promise.resolve();
commit(types.TOGGLE_LOADING, { entry: file });
@@ -102,11 +104,16 @@ export const setFileMrChange = ({ commit }, { file, mrChange }) => {
export const getRawFileData = ({ state, commit, dispatch, getters }, { path }) => {
const file = state.entries[path];
+ const stagedFile = state.stagedFiles.find(f => f.path === path);
+
return new Promise((resolve, reject) => {
+ const fileDeletedAndReadded = getters.isFileDeletedAndReadded(path);
service
- .getRawFileData(file)
+ .getRawFileData(fileDeletedAndReadded ? stagedFile : file)
.then(raw => {
- if (!(file.tempFile && !file.prevPath)) commit(types.SET_FILE_RAW_DATA, { file, raw });
+ if (!(file.tempFile && !file.prevPath && !fileDeletedAndReadded))
+ commit(types.SET_FILE_RAW_DATA, { file, raw, fileDeletedAndReadded });
+
if (file.mrChange && file.mrChange.new_file === false) {
const baseSha =
(getters.currentMergeRequest && getters.currentMergeRequest.baseCommitSha) || '';
@@ -151,7 +158,7 @@ export const changeFileContent = ({ commit, dispatch, state }, { path, content }
if (file.changed && indexOfChangedFile === -1) {
commit(types.ADD_FILE_TO_CHANGED, path);
- } else if (!file.changed && indexOfChangedFile !== -1) {
+ } else if (!file.changed && !file.tempFile && indexOfChangedFile !== -1) {
commit(types.REMOVE_FILE_FROM_CHANGED, path);
}
diff --git a/app/assets/javascripts/ide/stores/mutations/file.js b/app/assets/javascripts/ide/stores/mutations/file.js
index 73d03e57f54..313fa1fe029 100644
--- a/app/assets/javascripts/ide/stores/mutations/file.js
+++ b/app/assets/javascripts/ide/stores/mutations/file.js
@@ -54,27 +54,29 @@ export default {
}
});
},
- [types.SET_FILE_RAW_DATA](state, { file, raw }) {
+ [types.SET_FILE_RAW_DATA](state, { file, raw, fileDeletedAndReadded = false }) {
const openPendingFile = state.openFiles.find(
- f => f.path === file.path && f.pending && !(f.tempFile && !f.prevPath),
+ f =>
+ f.path === file.path && f.pending && !(f.tempFile && !f.prevPath && !fileDeletedAndReadded),
);
+ const stagedFile = state.stagedFiles.find(f => f.path === file.path);
- if (file.tempFile && file.content === '') {
- Object.assign(state.entries[file.path], {
- content: raw,
- });
+ if (file.tempFile && file.content === '' && !fileDeletedAndReadded) {
+ Object.assign(state.entries[file.path], { content: raw });
+ } else if (fileDeletedAndReadded) {
+ Object.assign(stagedFile, { raw });
} else {
- Object.assign(state.entries[file.path], {
- raw,
- });
+ Object.assign(state.entries[file.path], { raw });
}
if (!openPendingFile) return;
if (!openPendingFile.tempFile) {
openPendingFile.raw = raw;
- } else if (openPendingFile.tempFile) {
+ } else if (openPendingFile.tempFile && !fileDeletedAndReadded) {
openPendingFile.content = raw;
+ } else if (fileDeletedAndReadded) {
+ Object.assign(stagedFile, { raw });
}
},
[types.SET_FILE_BASE_RAW_DATA](state, { file, baseRaw }) {