From 213e91d43926f09eb969859aa2c306eeb127deb4 Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Thu, 21 Dec 2017 15:05:47 +0000 Subject: [PATCH] Resolve "Decouple multi-file editor from file list" --- app/assets/javascripts/api.js | 14 +- app/assets/javascripts/dispatcher.js | 5 - app/assets/javascripts/fly_out_nav.js | 15 +- .../helpers/user_feature_helper.js | 7 - .../ide/components/commit_sidebar/list.vue | 66 ++++ .../commit_sidebar/list_collapsed.vue | 0 .../components/commit_sidebar/list_item.vue | 0 app/assets/javascripts/ide/components/ide.vue | 73 ++++ .../ide/components/ide_context_bar.vue | 75 ++++ .../components/ide_project_branches_tree.vue | 47 +++ .../ide/components/ide_project_tree.vue | 47 +++ .../ide/components/ide_repo_tree.vue | 66 ++++ .../ide/components/ide_side_bar.vue | 62 ++++ .../ide/components/ide_status_bar.vue | 71 ++++ .../components/new_branch_form.vue | 2 +- .../ide/components/new_dropdown/index.vue | 101 ++++++ .../components/new_dropdown/modal.vue | 16 +- .../components/new_dropdown/upload.vue | 35 +- .../components/repo_commit_section.vue | 45 +-- .../components/repo_edit_button.vue | 0 .../{repo => ide}/components/repo_editor.vue | 42 ++- .../{repo => ide}/components/repo_file.vue | 74 +++- .../components/repo_file_buttons.vue | 0 .../components/repo_loading_file.vue | 8 +- .../components/repo_prev_directory.vue | 8 +- .../{repo => ide}/components/repo_preview.vue | 0 .../{repo => ide}/components/repo_tab.vue | 6 +- .../{repo => ide}/components/repo_tabs.vue | 0 app/assets/javascripts/ide/ide_router.js | 101 ++++++ app/assets/javascripts/ide/index.js | 55 +++ .../{repo => ide}/lib/common/disposable.js | 0 .../{repo => ide}/lib/common/model.js | 8 + .../{repo => ide}/lib/common/model_manager.js | 0 .../lib/decorations/controller.js | 0 .../{repo => ide}/lib/diff/controller.js | 0 .../{repo => ide}/lib/diff/diff.js | 0 .../{repo => ide}/lib/diff/diff_worker.js | 0 .../javascripts/{repo => ide}/lib/editor.js | 30 ++ .../{repo => ide}/lib/editor_options.js | 0 .../{repo => ide}/monaco_loader.js | 0 .../{repo => ide}/services/index.js | 7 +- app/assets/javascripts/ide/stores/actions.js | 179 ++++++++++ .../javascripts/ide/stores/actions/branch.js | 43 +++ .../{repo => ide}/stores/actions/file.js | 41 ++- .../javascripts/ide/stores/actions/project.js | 25 ++ .../javascripts/ide/stores/actions/tree.js | 188 ++++++++++ app/assets/javascripts/ide/stores/getters.js | 19 + .../javascripts/{repo => ide}/stores/index.js | 0 .../{repo => ide}/stores/mutation_types.js | 19 +- .../{repo => ide}/stores/mutations.js | 18 +- .../ide/stores/mutations/branch.js | 28 ++ .../{repo => ide}/stores/mutations/file.js | 20 ++ .../ide/stores/mutations/project.js | 23 ++ .../{repo => ide}/stores/mutations/tree.js | 9 + .../javascripts/{repo => ide}/stores/state.js | 20 +- .../javascripts/{repo => ide}/stores/utils.js | 64 +++- app/assets/javascripts/new_commit_form.js | 7 +- .../repo/components/commit_sidebar/list.vue | 89 ----- .../repo/components/new_dropdown/index.vue | 89 ----- .../javascripts/repo/components/repo.vue | 63 ---- .../repo/components/repo_sidebar.vue | 85 ----- app/assets/javascripts/repo/index.js | 106 ------ app/assets/javascripts/repo/stores/actions.js | 146 -------- .../javascripts/repo/stores/actions/branch.js | 20 -- .../javascripts/repo/stores/actions/tree.js | 163 --------- app/assets/javascripts/repo/stores/getters.js | 40 --- .../repo/stores/mutations/branch.js | 9 - .../components/project_avatar/image.vue | 103 ++++++ .../framework/contextual-sidebar.scss | 1 - .../stylesheets/framework/variables.scss | 1 + app/assets/stylesheets/pages/repo.scss | 241 +++++++++++-- app/controllers/ide_controller.rb | 6 + app/helpers/application_helper.rb | 2 +- app/helpers/blob_helper.rb | 43 ++- app/views/ide/index.html.haml | 12 + app/views/layouts/nav_only.html.haml | 13 + app/views/projects/_files.html.haml | 2 +- app/views/projects/blob/_header.html.haml | 1 + app/views/projects/blob/show.html.haml | 15 +- .../projects/tree/_old_tree_content.html.haml | 24 -- .../projects/tree/_old_tree_header.html.haml | 64 ---- .../projects/tree/_tree_content.html.haml | 29 +- .../projects/tree/_tree_header.html.haml | 78 ++++- app/views/projects/tree/show.html.haml | 7 +- app/views/shared/_ref_switcher.html.haml | 2 +- app/views/shared/repo/_repo.html.haml | 13 - ...ouple-multi-file-editor-from-file-list.yml | 5 + config/routes.rb | 2 + config/webpack.config.js | 4 +- package.json | 1 + spec/features/projects/ref_switcher_spec.rb | 78 ----- .../projects/tree/create_directory_spec.rb | 26 +- .../projects/tree/create_file_spec.rb | 16 +- .../projects/tree/upload_file_spec.rb | 9 +- .../commit_sidebar/list_collapsed_spec.js | 4 +- .../commit_sidebar/list_item_spec.js | 2 +- .../components/commit_sidebar/list_spec.js | 29 +- .../repo/components/ide_context_bar_spec.js | 49 +++ ..._sidebar_spec.js => ide_repo_tree_spec.js} | 23 +- .../repo/components/ide_side_bar_spec.js | 43 +++ .../components/{repo_spec.js => ide_spec.js} | 12 +- .../repo/components/new_branch_form_spec.js | 4 +- .../components/new_dropdown/index_spec.js | 17 +- .../components/new_dropdown/modal_spec.js | 149 +++++--- .../components/new_dropdown/upload_spec.js | 81 ++++- .../components/repo_commit_section_spec.js | 33 +- .../repo/components/repo_edit_button_spec.js | 8 +- .../repo/components/repo_editor_spec.js | 6 +- .../repo/components/repo_file_buttons_spec.js | 4 +- .../repo/components/repo_file_spec.js | 13 +- .../repo/components/repo_loading_file_spec.js | 5 +- .../components/repo_prev_directory_spec.js | 4 +- .../repo/components/repo_preview_spec.js | 4 +- .../repo/components/repo_tab_spec.js | 10 +- .../repo/components/repo_tabs_spec.js | 4 +- spec/javascripts/repo/helpers.js | 5 +- .../repo/lib/common/disposable_spec.js | 2 +- .../repo/lib/common/model_manager_spec.js | 4 +- .../javascripts/repo/lib/common/model_spec.js | 4 +- .../repo/lib/decorations/controller_spec.js | 8 +- .../repo/lib/diff/controller_spec.js | 12 +- spec/javascripts/repo/lib/diff/diff_spec.js | 2 +- .../repo/lib/editor_options_spec.js | 2 +- spec/javascripts/repo/lib/editor_spec.js | 4 +- spec/javascripts/repo/monaco_loader_spec.js | 2 +- .../repo/stores/actions/branch_spec.js | 20 +- .../repo/stores/actions/file_spec.js | 75 ++-- .../repo/stores/actions/tree_spec.js | 326 ++++++------------ spec/javascripts/repo/stores/actions_spec.js | 95 ++--- spec/javascripts/repo/stores/getters_spec.js | 38 +- .../repo/stores/mutations/branch_spec.js | 6 +- .../repo/stores/mutations/file_spec.js | 4 +- .../repo/stores/mutations/tree_spec.js | 4 +- .../javascripts/repo/stores/mutations_spec.js | 40 ++- spec/javascripts/repo/stores/utils_spec.js | 43 ++- yarn.lock | 4 + 136 files changed, 2867 insertions(+), 1734 deletions(-) delete mode 100644 app/assets/javascripts/helpers/user_feature_helper.js create mode 100644 app/assets/javascripts/ide/components/commit_sidebar/list.vue rename app/assets/javascripts/{repo => ide}/components/commit_sidebar/list_collapsed.vue (100%) rename app/assets/javascripts/{repo => ide}/components/commit_sidebar/list_item.vue (100%) create mode 100644 app/assets/javascripts/ide/components/ide.vue create mode 100644 app/assets/javascripts/ide/components/ide_context_bar.vue create mode 100644 app/assets/javascripts/ide/components/ide_project_branches_tree.vue create mode 100644 app/assets/javascripts/ide/components/ide_project_tree.vue create mode 100644 app/assets/javascripts/ide/components/ide_repo_tree.vue create mode 100644 app/assets/javascripts/ide/components/ide_side_bar.vue create mode 100644 app/assets/javascripts/ide/components/ide_status_bar.vue rename app/assets/javascripts/{repo => ide}/components/new_branch_form.vue (99%) create mode 100644 app/assets/javascripts/ide/components/new_dropdown/index.vue rename app/assets/javascripts/{repo => ide}/components/new_dropdown/modal.vue (84%) rename app/assets/javascripts/{repo => ide}/components/new_dropdown/upload.vue (70%) rename app/assets/javascripts/{repo => ide}/components/repo_commit_section.vue (83%) rename app/assets/javascripts/{repo => ide}/components/repo_edit_button.vue (100%) rename app/assets/javascripts/{repo => ide}/components/repo_editor.vue (64%) rename app/assets/javascripts/{repo => ide}/components/repo_file.vue (58%) rename app/assets/javascripts/{repo => ide}/components/repo_file_buttons.vue (100%) rename app/assets/javascripts/{repo => ide}/components/repo_loading_file.vue (85%) rename app/assets/javascripts/{repo => ide}/components/repo_prev_directory.vue (74%) rename app/assets/javascripts/{repo => ide}/components/repo_preview.vue (100%) rename app/assets/javascripts/{repo => ide}/components/repo_tab.vue (92%) rename app/assets/javascripts/{repo => ide}/components/repo_tabs.vue (100%) create mode 100644 app/assets/javascripts/ide/ide_router.js create mode 100644 app/assets/javascripts/ide/index.js rename app/assets/javascripts/{repo => ide}/lib/common/disposable.js (100%) rename app/assets/javascripts/{repo => ide}/lib/common/model.js (89%) rename app/assets/javascripts/{repo => ide}/lib/common/model_manager.js (100%) rename app/assets/javascripts/{repo => ide}/lib/decorations/controller.js (100%) rename app/assets/javascripts/{repo => ide}/lib/diff/controller.js (100%) rename app/assets/javascripts/{repo => ide}/lib/diff/diff.js (100%) rename app/assets/javascripts/{repo => ide}/lib/diff/diff_worker.js (100%) rename app/assets/javascripts/{repo => ide}/lib/editor.js (73%) rename app/assets/javascripts/{repo => ide}/lib/editor_options.js (100%) rename app/assets/javascripts/{repo => ide}/monaco_loader.js (100%) rename app/assets/javascripts/{repo => ide}/services/index.js (83%) create mode 100644 app/assets/javascripts/ide/stores/actions.js create mode 100644 app/assets/javascripts/ide/stores/actions/branch.js rename app/assets/javascripts/{repo => ide}/stores/actions/file.js (66%) create mode 100644 app/assets/javascripts/ide/stores/actions/project.js create mode 100644 app/assets/javascripts/ide/stores/actions/tree.js create mode 100644 app/assets/javascripts/ide/stores/getters.js rename app/assets/javascripts/{repo => ide}/stores/index.js (100%) rename app/assets/javascripts/{repo => ide}/stores/mutation_types.js (62%) rename app/assets/javascripts/{repo => ide}/stores/mutations.js (80%) create mode 100644 app/assets/javascripts/ide/stores/mutations/branch.js rename app/assets/javascripts/{repo => ide}/stores/mutations/file.js (74%) create mode 100644 app/assets/javascripts/ide/stores/mutations/project.js rename app/assets/javascripts/{repo => ide}/stores/mutations/tree.js (76%) rename app/assets/javascripts/{repo => ide}/stores/state.js (54%) rename app/assets/javascripts/{repo => ide}/stores/utils.js (52%) delete mode 100644 app/assets/javascripts/repo/components/commit_sidebar/list.vue delete mode 100644 app/assets/javascripts/repo/components/new_dropdown/index.vue delete mode 100644 app/assets/javascripts/repo/components/repo.vue delete mode 100644 app/assets/javascripts/repo/components/repo_sidebar.vue delete mode 100644 app/assets/javascripts/repo/index.js delete mode 100644 app/assets/javascripts/repo/stores/actions.js delete mode 100644 app/assets/javascripts/repo/stores/actions/branch.js delete mode 100644 app/assets/javascripts/repo/stores/actions/tree.js delete mode 100644 app/assets/javascripts/repo/stores/getters.js delete mode 100644 app/assets/javascripts/repo/stores/mutations/branch.js create mode 100644 app/assets/javascripts/vue_shared/components/project_avatar/image.vue create mode 100644 app/controllers/ide_controller.rb create mode 100644 app/views/ide/index.html.haml create mode 100644 app/views/layouts/nav_only.html.haml delete mode 100644 app/views/projects/tree/_old_tree_content.html.haml delete mode 100644 app/views/projects/tree/_old_tree_header.html.haml delete mode 100644 app/views/shared/repo/_repo.html.haml create mode 100644 changelogs/unreleased/40040-decouple-multi-file-editor-from-file-list.yml delete mode 100644 spec/features/projects/ref_switcher_spec.rb create mode 100644 spec/javascripts/repo/components/ide_context_bar_spec.js rename spec/javascripts/repo/components/{repo_sidebar_spec.js => ide_repo_tree_spec.js} (65%) create mode 100644 spec/javascripts/repo/components/ide_side_bar_spec.js rename spec/javascripts/repo/components/{repo_spec.js => ide_spec.js} (73%) diff --git a/app/assets/javascripts/api.js b/app/assets/javascripts/api.js index d963101028a..21d8c790e90 100644 --- a/app/assets/javascripts/api.js +++ b/app/assets/javascripts/api.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import axios from './lib/utils/axios_utils'; const Api = { groupsPath: '/api/:version/groups.json', @@ -6,6 +7,7 @@ const Api = { namespacesPath: '/api/:version/namespaces.json', groupProjectsPath: '/api/:version/groups/:id/projects.json', projectsPath: '/api/:version/projects.json', + projectPath: '/api/:version/projects/:id', projectLabelsPath: '/:namespace_path/:project_path/labels', groupLabelsPath: '/groups/:namespace_path/labels', licensePath: '/api/:version/templates/licenses/:key', @@ -76,6 +78,14 @@ const Api = { .done(projects => callback(projects)); }, + // Return single project + project(projectPath) { + const url = Api.buildUrl(Api.projectPath) + .replace(':id', encodeURIComponent(projectPath)); + + return axios.get(url); + }, + newLabel(namespacePath, projectPath, data, callback) { let url; @@ -115,7 +125,7 @@ const Api = { commitMultiple(id, data) { // see https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions const url = Api.buildUrl(Api.commitPath) - .replace(':id', id); + .replace(':id', encodeURIComponent(id)); return this.wrapAjaxCall({ url, type: 'POST', @@ -127,7 +137,7 @@ const Api = { branchSingle(id, branch) { const url = Api.buildUrl(Api.branchSinglePath) - .replace(':id', id) + .replace(':id', encodeURIComponent(id)) .replace(':branch', branch); return this.wrapAjaxCall({ diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js index 62867c56214..07df3c216b1 100644 --- a/app/assets/javascripts/dispatcher.js +++ b/app/assets/javascripts/dispatcher.js @@ -73,7 +73,6 @@ import initLegacyFilters from './init_legacy_filters'; import initIssuableSidebar from './init_issuable_sidebar'; import initProjectVisibilitySelector from './project_visibility'; import GpgBadges from './gpg_badges'; -import UserFeatureHelper from './helpers/user_feature_helper'; import initChangesDropdown from './init_changes_dropdown'; import NewGroupChild from './groups/new_group_child'; import AbuseReports from './abuse_reports'; @@ -447,9 +446,6 @@ import Activities from './activities'; break; case 'projects:tree:show': shortcut_handler = new ShortcutsNavigation(); - - if (UserFeatureHelper.isNewRepoEnabled()) break; - new TreeView(); new BlobViewer(); new NewCommitForm($('.js-create-dir-form')); @@ -468,7 +464,6 @@ import Activities from './activities'; shortcut_handler = true; break; case 'projects:blob:show': - if (UserFeatureHelper.isNewRepoEnabled()) break; new BlobViewer(); initBlob(); break; diff --git a/app/assets/javascripts/fly_out_nav.js b/app/assets/javascripts/fly_out_nav.js index 6110d961609..abb04d77f8f 100644 --- a/app/assets/javascripts/fly_out_nav.js +++ b/app/assets/javascripts/fly_out_nav.js @@ -161,13 +161,16 @@ export default () => { const items = [...sidebar.querySelectorAll('.sidebar-top-level-items > li')]; - sidebar.querySelector('.sidebar-top-level-items').addEventListener('mouseleave', () => { - clearTimeout(timeoutId); + const topItems = sidebar.querySelector('.sidebar-top-level-items'); + if (topItems) { + sidebar.querySelector('.sidebar-top-level-items').addEventListener('mouseleave', () => { + clearTimeout(timeoutId); - timeoutId = setTimeout(() => { - if (currentOpenMenu) hideMenu(currentOpenMenu); - }, getHideSubItemsInterval()); - }); + timeoutId = setTimeout(() => { + if (currentOpenMenu) hideMenu(currentOpenMenu); + }, getHideSubItemsInterval()); + }); + } headerHeight = document.querySelector('.nav-sidebar').offsetTop; diff --git a/app/assets/javascripts/helpers/user_feature_helper.js b/app/assets/javascripts/helpers/user_feature_helper.js deleted file mode 100644 index 638118a5204..00000000000 --- a/app/assets/javascripts/helpers/user_feature_helper.js +++ /dev/null @@ -1,7 +0,0 @@ -import Cookies from 'js-cookie'; - -export default { - isNewRepoEnabled() { - return Cookies.get('new_repo') === 'true'; - }, -}; diff --git a/app/assets/javascripts/ide/components/commit_sidebar/list.vue b/app/assets/javascripts/ide/components/commit_sidebar/list.vue new file mode 100644 index 00000000000..704dff981df --- /dev/null +++ b/app/assets/javascripts/ide/components/commit_sidebar/list.vue @@ -0,0 +1,66 @@ + + + diff --git a/app/assets/javascripts/repo/components/commit_sidebar/list_collapsed.vue b/app/assets/javascripts/ide/components/commit_sidebar/list_collapsed.vue similarity index 100% rename from app/assets/javascripts/repo/components/commit_sidebar/list_collapsed.vue rename to app/assets/javascripts/ide/components/commit_sidebar/list_collapsed.vue diff --git a/app/assets/javascripts/repo/components/commit_sidebar/list_item.vue b/app/assets/javascripts/ide/components/commit_sidebar/list_item.vue similarity index 100% rename from app/assets/javascripts/repo/components/commit_sidebar/list_item.vue rename to app/assets/javascripts/ide/components/commit_sidebar/list_item.vue diff --git a/app/assets/javascripts/ide/components/ide.vue b/app/assets/javascripts/ide/components/ide.vue new file mode 100644 index 00000000000..7f29a355eca --- /dev/null +++ b/app/assets/javascripts/ide/components/ide.vue @@ -0,0 +1,73 @@ + + + diff --git a/app/assets/javascripts/ide/components/ide_context_bar.vue b/app/assets/javascripts/ide/components/ide_context_bar.vue new file mode 100644 index 00000000000..5a08718e386 --- /dev/null +++ b/app/assets/javascripts/ide/components/ide_context_bar.vue @@ -0,0 +1,75 @@ + + + diff --git a/app/assets/javascripts/ide/components/ide_project_branches_tree.vue b/app/assets/javascripts/ide/components/ide_project_branches_tree.vue new file mode 100644 index 00000000000..bd3a521ff43 --- /dev/null +++ b/app/assets/javascripts/ide/components/ide_project_branches_tree.vue @@ -0,0 +1,47 @@ + + + diff --git a/app/assets/javascripts/ide/components/ide_project_tree.vue b/app/assets/javascripts/ide/components/ide_project_tree.vue new file mode 100644 index 00000000000..61daba6d176 --- /dev/null +++ b/app/assets/javascripts/ide/components/ide_project_tree.vue @@ -0,0 +1,47 @@ + + + diff --git a/app/assets/javascripts/ide/components/ide_repo_tree.vue b/app/assets/javascripts/ide/components/ide_repo_tree.vue new file mode 100644 index 00000000000..b6b089e6b25 --- /dev/null +++ b/app/assets/javascripts/ide/components/ide_repo_tree.vue @@ -0,0 +1,66 @@ + + + diff --git a/app/assets/javascripts/ide/components/ide_side_bar.vue b/app/assets/javascripts/ide/components/ide_side_bar.vue new file mode 100644 index 00000000000..535398d98c2 --- /dev/null +++ b/app/assets/javascripts/ide/components/ide_side_bar.vue @@ -0,0 +1,62 @@ + + + diff --git a/app/assets/javascripts/ide/components/ide_status_bar.vue b/app/assets/javascripts/ide/components/ide_status_bar.vue new file mode 100644 index 00000000000..a24abadd936 --- /dev/null +++ b/app/assets/javascripts/ide/components/ide_status_bar.vue @@ -0,0 +1,71 @@ + + + diff --git a/app/assets/javascripts/repo/components/new_branch_form.vue b/app/assets/javascripts/ide/components/new_branch_form.vue similarity index 99% rename from app/assets/javascripts/repo/components/new_branch_form.vue rename to app/assets/javascripts/ide/components/new_branch_form.vue index ba7090e4a9d..2119d373d31 100644 --- a/app/assets/javascripts/repo/components/new_branch_form.vue +++ b/app/assets/javascripts/ide/components/new_branch_form.vue @@ -44,7 +44,7 @@ this.branchName = ''; if (this.dropdownText) { - this.dropdownText.textContent = this.currentBranch; + this.dropdownText.textContent = this.currentBranchId; } this.toggleDropdown(); diff --git a/app/assets/javascripts/ide/components/new_dropdown/index.vue b/app/assets/javascripts/ide/components/new_dropdown/index.vue new file mode 100644 index 00000000000..6e67e99a70f --- /dev/null +++ b/app/assets/javascripts/ide/components/new_dropdown/index.vue @@ -0,0 +1,101 @@ + + + diff --git a/app/assets/javascripts/repo/components/new_dropdown/modal.vue b/app/assets/javascripts/ide/components/new_dropdown/modal.vue similarity index 84% rename from app/assets/javascripts/repo/components/new_dropdown/modal.vue rename to app/assets/javascripts/ide/components/new_dropdown/modal.vue index c191af7dec3..a0650d37690 100644 --- a/app/assets/javascripts/repo/components/new_dropdown/modal.vue +++ b/app/assets/javascripts/ide/components/new_dropdown/modal.vue @@ -1,10 +1,18 @@ diff --git a/app/assets/javascripts/repo/components/repo_commit_section.vue b/app/assets/javascripts/ide/components/repo_commit_section.vue similarity index 83% rename from app/assets/javascripts/repo/components/repo_commit_section.vue rename to app/assets/javascripts/ide/components/repo_commit_section.vue index 4e0178072cb..470db2c9650 100644 --- a/app/assets/javascripts/repo/components/repo_commit_section.vue +++ b/app/assets/javascripts/ide/components/repo_commit_section.vue @@ -20,12 +20,13 @@ export default { submitCommitsLoading: false, startNewMR: false, commitMessage: '', - collapsed: true, }; }, computed: { ...mapState([ - 'currentBranch', + 'currentProjectId', + 'currentBranchId', + 'rightPanelCollapsed', ]), ...mapGetters([ 'changedFiles', @@ -42,12 +43,13 @@ export default { 'checkCommitStatus', 'commitChanges', 'getTreeData', + 'setPanelCollapsedStatus', ]), makeCommit(newBranch = false) { const createNewBranch = newBranch || this.startNewMR; const payload = { - branch: createNewBranch ? `${this.currentBranch}-${new Date().getTime().toString()}` : this.currentBranch, + branch: createNewBranch ? `${this.currentBranchId}-${new Date().getTime().toString()}` : this.currentBranchId, commit_message: this.commitMessage, actions: this.changedFiles.map(f => ({ action: f.tempFile ? 'create' : 'update', @@ -55,7 +57,7 @@ export default { content: f.content, encoding: f.base64 ? 'base64' : 'text', })), - start_branch: createNewBranch ? this.currentBranch : undefined, + start_branch: createNewBranch ? this.currentBranchId : undefined, }; this.showNewBranchModal = false; @@ -64,7 +66,12 @@ export default { this.commitChanges({ payload, newMr: this.startNewMR }) .then(() => { this.submitCommitsLoading = false; - this.getTreeData(); + this.$store.dispatch('getTreeData', { + projectId: this.currentProjectId, + branch: this.currentBranchId, + endpoint: `/tree/${this.currentBranchId}`, + force: true, + }); }) .catch(() => { this.submitCommitsLoading = false; @@ -86,19 +93,17 @@ export default { }); }, toggleCollapsed() { - this.collapsed = !this.collapsed; + this.setPanelCollapsedStatus({ + side: 'right', + collapsed: !this.rightPanelCollapsed, + }); }, }, };