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>2019-11-17 00:06:10 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-17 00:06:10 +0300
commit00bfd2d81d2539e16829585f203169bdd0274bec (patch)
tree5d201485a5cda4505131396ac0c8155ae812ba8f /app/assets/javascripts/ide/stores
parent409c3cb076e500968ec4c283cb388b56f3e7c9e6 (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.js22
-rw-r--r--app/assets/javascripts/ide/stores/actions/merge_request.js16
-rw-r--r--app/assets/javascripts/ide/stores/actions/tree.js7
-rw-r--r--app/assets/javascripts/ide/stores/getters.js12
-rw-r--r--app/assets/javascripts/ide/stores/utils.js5
5 files changed, 40 insertions, 22 deletions
diff --git a/app/assets/javascripts/ide/stores/actions/file.js b/app/assets/javascripts/ide/stores/actions/file.js
index 0393f3859a9..9af0b50d1a5 100644
--- a/app/assets/javascripts/ide/stores/actions/file.js
+++ b/app/assets/javascripts/ide/stores/actions/file.js
@@ -1,11 +1,10 @@
import { joinPaths } from '~/lib/utils/url_utility';
-import { normalizeHeaders } from '~/lib/utils/common_utils';
import { __ } from '~/locale';
import eventHub from '../../eventhub';
import service from '../../services';
import * as types from '../mutation_types';
import router from '../../ide_router';
-import { setPageTitle, replaceFileUrl, addFinalNewlineIfNeeded } from '../utils';
+import { escapeFileUrl, addFinalNewlineIfNeeded, setPageTitleForFile } from '../utils';
import { viewerTypes, stageKeys } from '../../constants';
export const closeFile = ({ commit, state, dispatch }, file) => {
@@ -58,7 +57,7 @@ export const setFileActive = ({ commit, state, getters, dispatch }, path) => {
};
export const getFileData = (
- { state, commit, dispatch },
+ { state, commit, dispatch, getters },
{ path, makeFileActive = true, openFile = makeFileActive },
) => {
const file = state.entries[path];
@@ -67,15 +66,18 @@ export const getFileData = (
commit(types.TOGGLE_LOADING, { entry: file });
- const url = file.prevPath ? replaceFileUrl(file.url, file.path, file.prevPath) : file.url;
+ const url = joinPaths(
+ gon.relative_url_root || '/',
+ state.currentProjectId,
+ file.type,
+ getters.lastCommit && getters.lastCommit.id,
+ escapeFileUrl(file.prevPath || file.path),
+ );
return service
- .getFileData(joinPaths(gon.relative_url_root || '', url.replace('/-/', '/')))
- .then(({ data, headers }) => {
- const normalizedHeaders = normalizeHeaders(headers);
- let title = normalizedHeaders['PAGE-TITLE'];
- title = file.prevPath ? title.replace(file.prevPath, file.path) : title;
- setPageTitle(decodeURI(title));
+ .getFileData(url)
+ .then(({ data }) => {
+ setPageTitleForFile(state, file);
if (data) commit(types.SET_FILE_DATA, { data, file });
if (openFile) commit(types.TOGGLE_FILE_OPEN, path);
diff --git a/app/assets/javascripts/ide/stores/actions/merge_request.js b/app/assets/javascripts/ide/stores/actions/merge_request.js
index 1273e375859..6790c0fbdaa 100644
--- a/app/assets/javascripts/ide/stores/actions/merge_request.js
+++ b/app/assets/javascripts/ide/stores/actions/merge_request.js
@@ -152,15 +152,17 @@ export const openMergeRequest = (
.then(mr => {
dispatch('setCurrentBranchId', mr.source_branch);
- dispatch('getBranchData', {
+ // getFiles needs to be called after getting the branch data
+ // since files are fetched using the last commit sha of the branch
+ return dispatch('getBranchData', {
projectId,
branchId: mr.source_branch,
- });
-
- return dispatch('getFiles', {
- projectId,
- branchId: mr.source_branch,
- });
+ }).then(() =>
+ dispatch('getFiles', {
+ projectId,
+ branchId: mr.source_branch,
+ }),
+ );
})
.then(() =>
dispatch('getMergeRequestVersions', {
diff --git a/app/assets/javascripts/ide/stores/actions/tree.js b/app/assets/javascripts/ide/stores/actions/tree.js
index 75511574d3e..72cd099c5a5 100644
--- a/app/assets/javascripts/ide/stores/actions/tree.js
+++ b/app/assets/javascripts/ide/stores/actions/tree.js
@@ -46,7 +46,7 @@ export const setDirectoryData = ({ state, commit }, { projectId, branchId, treeL
});
};
-export const getFiles = ({ state, commit, dispatch }, { projectId, branchId } = {}) =>
+export const getFiles = ({ state, commit, dispatch, getters }, { projectId, branchId } = {}) =>
new Promise((resolve, reject) => {
if (
!state.trees[`${projectId}/${branchId}`] ||
@@ -54,10 +54,11 @@ export const getFiles = ({ state, commit, dispatch }, { projectId, branchId } =
state.trees[`${projectId}/${branchId}`].tree.length === 0)
) {
const selectedProject = state.projects[projectId];
- commit(types.CREATE_TREE, { treePath: `${projectId}/${branchId}` });
+ const selectedBranch = getters.findBranch(projectId, branchId);
+ commit(types.CREATE_TREE, { treePath: `${projectId}/${branchId}` });
service
- .getFiles(selectedProject.web_url, branchId)
+ .getFiles(selectedProject.web_url, selectedBranch.commit.id)
.then(({ data }) => {
const { entries, treeList } = decorateFiles({
data,
diff --git a/app/assets/javascripts/ide/stores/getters.js b/app/assets/javascripts/ide/stores/getters.js
index 85fd45358be..a176fd0aca8 100644
--- a/app/assets/javascripts/ide/stores/getters.js
+++ b/app/assets/javascripts/ide/stores/getters.js
@@ -34,7 +34,9 @@ export const currentMergeRequest = state => {
return null;
};
-export const currentProject = state => state.projects[state.currentProjectId];
+export const findProject = state => projectId => state.projects[projectId];
+
+export const currentProject = (state, getters) => getters.findProject(state.currentProjectId);
export const emptyRepo = state =>
state.projects[state.currentProjectId] && state.projects[state.currentProjectId].empty_repo;
@@ -94,8 +96,14 @@ export const lastCommit = (state, getters) => {
return branch ? branch.commit : null;
};
+export const findBranch = (state, getters) => (projectId, branchId) => {
+ const project = getters.findProject(projectId);
+
+ return project && project.branches[branchId];
+};
+
export const currentBranch = (state, getters) =>
- getters.currentProject && getters.currentProject.branches[state.currentBranchId];
+ getters.findBranch(state.currentProjectId, state.currentBranchId);
export const branchName = (_state, getters) => getters.currentBranch && getters.currentBranch.name;
diff --git a/app/assets/javascripts/ide/stores/utils.js b/app/assets/javascripts/ide/stores/utils.js
index 3ccb3722e6f..be7ee80656f 100644
--- a/app/assets/javascripts/ide/stores/utils.js
+++ b/app/assets/javascripts/ide/stores/utils.js
@@ -113,6 +113,11 @@ export const setPageTitle = title => {
document.title = title;
};
+export const setPageTitleForFile = (state, file) => {
+ const title = [file.path, state.currentBranchId, state.currentProjectId, 'GitLab'].join(' ยท ');
+ setPageTitle(title);
+};
+
export const commitActionForFile = file => {
if (file.prevPath) {
return commitActionTypes.move;