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-15 00:07:45 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-15 00:07:45 +0300
commit0b12a5312c9701fbfed25fbb334d47900ced736b (patch)
treea29a27e297134f573fd8e5c298d241f3156c207a /app/assets/javascripts/ide/stores
parent92f95ccac81911d1fcc32e999a7f1ce04624a56c (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.js101
-rw-r--r--app/assets/javascripts/ide/stores/actions/project.js5
2 files changed, 55 insertions, 51 deletions
diff --git a/app/assets/javascripts/ide/stores/actions.js b/app/assets/javascripts/ide/stores/actions.js
index 7ffb430296b..3445ef7a75f 100644
--- a/app/assets/javascripts/ide/stores/actions.js
+++ b/app/assets/javascripts/ide/stores/actions.js
@@ -53,60 +53,55 @@ export const setResizingStatus = ({ commit }, resizing) => {
export const createTempEntry = (
{ state, commit, dispatch },
{ name, type, content = '', base64 = false, binary = false, rawPath = '' },
-) =>
- new Promise(resolve => {
- const fullName = name.slice(-1) !== '/' && type === 'tree' ? `${name}/` : name;
-
- if (state.entries[name] && !state.entries[name].deleted) {
- flash(
- `The name "${name.split('/').pop()}" is already taken in this directory.`,
- 'alert',
- document,
- null,
- false,
- true,
- );
-
- resolve();
-
- return null;
- }
-
- const data = decorateFiles({
- data: [fullName],
- projectId: state.currentProjectId,
- branchId: state.currentBranchId,
- type,
- tempFile: true,
- content,
- base64,
- binary,
- rawPath,
- });
- const { file, parentPath } = data;
+) => {
+ const fullName = name.slice(-1) !== '/' && type === 'tree' ? `${name}/` : name;
+
+ if (state.entries[name] && !state.entries[name].deleted) {
+ flash(
+ sprintf(__('The name "%{name}" is already taken in this directory.'), {
+ name: name.split('/').pop(),
+ }),
+ 'alert',
+ document,
+ null,
+ false,
+ true,
+ );
- commit(types.CREATE_TMP_ENTRY, {
- data,
- projectId: state.currentProjectId,
- branchId: state.currentBranchId,
- });
+ return;
+ }
- if (type === 'blob') {
- commit(types.TOGGLE_FILE_OPEN, file.path);
- commit(types.ADD_FILE_TO_CHANGED, file.path);
- dispatch('setFileActive', file.path);
- dispatch('triggerFilesChange');
- dispatch('burstUnusedSeal');
- }
+ const data = decorateFiles({
+ data: [fullName],
+ projectId: state.currentProjectId,
+ branchId: state.currentBranchId,
+ type,
+ tempFile: true,
+ content,
+ base64,
+ binary,
+ rawPath,
+ });
+ const { file, parentPath } = data;
- if (parentPath && !state.entries[parentPath].opened) {
- commit(types.TOGGLE_TREE_OPEN, parentPath);
- }
+ commit(types.CREATE_TMP_ENTRY, {
+ data,
+ projectId: state.currentProjectId,
+ branchId: state.currentBranchId,
+ });
- resolve(file);
+ if (type === 'blob') {
+ commit(types.TOGGLE_FILE_OPEN, file.path);
+ commit(types.ADD_FILE_TO_CHANGED, file.path);
+ dispatch('setFileActive', file.path);
+ dispatch('triggerFilesChange');
+ dispatch('burstUnusedSeal');
+ }
- return null;
- });
+ if (parentPath && !state.entries[parentPath].opened) {
+ commit(types.TOGGLE_TREE_OPEN, parentPath);
+ }
+};
export const scrollToTab = () => {
Vue.nextTick(() => {
@@ -211,8 +206,9 @@ export const deleteEntry = ({ commit, dispatch, state }, path) => {
const entry = state.entries[path];
const { prevPath, prevName, prevParentPath } = entry;
const isTree = entry.type === 'tree';
+ const prevEntry = prevPath && state.entries[prevPath];
- if (prevPath) {
+ if (prevPath && (!prevEntry || prevEntry.deleted)) {
dispatch('renameEntry', {
path,
name: prevName,
@@ -245,6 +241,11 @@ export const resetOpenFiles = ({ commit }) => commit(types.RESET_OPEN_FILES);
export const renameEntry = ({ dispatch, commit, state }, { path, name, parentPath }) => {
const entry = state.entries[path];
const newPath = parentPath ? `${parentPath}/${name}` : name;
+ const existingParent = parentPath && state.entries[parentPath];
+
+ if (parentPath && (!existingParent || existingParent.deleted)) {
+ dispatch('createTempEntry', { name: parentPath, type: 'tree' });
+ }
commit(types.RENAME_ENTRY, { path, name, parentPath });
diff --git a/app/assets/javascripts/ide/stores/actions/project.js b/app/assets/javascripts/ide/stores/actions/project.js
index 52bf9becd0f..e206f9bee9e 100644
--- a/app/assets/javascripts/ide/stores/actions/project.js
+++ b/app/assets/javascripts/ide/stores/actions/project.js
@@ -83,8 +83,11 @@ export const showBranchNotFoundError = ({ dispatch }, branchId) => {
});
};
-export const showEmptyState = ({ commit, state }, { projectId, branchId }) => {
+export const showEmptyState = ({ commit, state, dispatch }, { projectId, branchId }) => {
const treePath = `${projectId}/${branchId}`;
+
+ dispatch('setCurrentBranchId', branchId);
+
commit(types.CREATE_TREE, { treePath });
commit(types.TOGGLE_LOADING, {
entry: state.trees[treePath],