diff options
Diffstat (limited to 'app/assets/javascripts/repo/components/repo_sidebar.vue')
-rw-r--r-- | app/assets/javascripts/repo/components/repo_sidebar.vue | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/app/assets/javascripts/repo/components/repo_sidebar.vue b/app/assets/javascripts/repo/components/repo_sidebar.vue index 99bf471b83d..10de23d0199 100644 --- a/app/assets/javascripts/repo/components/repo_sidebar.vue +++ b/app/assets/javascripts/repo/components/repo_sidebar.vue @@ -33,26 +33,25 @@ export default { // Maybe it is not in the current tree but in the opened tabs selectedFile = Helper.getFileFromPath(location.pathname); } + + let lineNumber = null; + if (location.hash.indexOf('#L') > -1) lineNumber = Number(location.hash.substr(2)); + if (selectedFile) { if (selectedFile.url !== this.activeFile.url) { - this.fileClicked(selectedFile); - } - - if (location.hash.indexOf('#L') > -1) { - const lineNumber = Number(location.hash.substr(2)); - if (!isNaN(lineNumber)) { - Store.setActiveLine(lineNumber); - } + this.fileClicked(selectedFile, lineNumber); + } else { + Store.setActiveLine(lineNumber); } } else { // Not opened at all lets open new tab this.fileClicked({ url: location.href, - }); + }, lineNumber); } }, - fileClicked(clickedFile) { + fileClicked(clickedFile, lineNumber) { let file = clickedFile; if (file.loading) return; file.loading = true; @@ -60,17 +59,20 @@ export default { if (file.type === 'tree' && file.opened) { file = Store.removeChildFilesOfTree(file); file.loading = false; + Store.setActiveLine(lineNumber); } else { const openFile = Helper.getFileFromPath(file.url); if (openFile) { file.loading = false; Store.setActiveFiles(openFile); + Store.setActiveLine(lineNumber); } else { Service.url = file.url; Helper.getContent(file) .then(() => { file.loading = false; Helper.scrollTabsRight(); + Store.setActiveLine(lineNumber); }) .catch(Helper.loadingError); } |