1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-04 16:31:13 +00:00

optimized path check method (#2846)

This commit is contained in:
杨顺强
2019-01-17 16:33:27 +08:00
committed by Daniel Pan
parent c21fdf8ebf
commit 4444a4120a
3 changed files with 38 additions and 90 deletions

View File

@@ -383,11 +383,11 @@ class Wiki extends Component {
onLinkClick = (link) => {
const url = link;
if (this.isInternalMarkdownLink(url)) {
let path = this.getPathFromInternalMarkdownLink(url);
if (Utils.isInternalMarkdownLink(url, repoID)) {
let path = Utils.getPathFromInternalMarkdownLink(url, repoID);
this.showFile(path);
} else if (this.isInternalDirLink(url)) {
let path = this.getPathFromInternalDirLink(url);
} else if (Utils.isInternalDirLink(url, repoID)) {
let path = Utils.getPathFromInternalDirLink(url, repoID, slug);
this.showDir(path);
} else {
window.open(url);
@@ -411,7 +411,7 @@ class Wiki extends Component {
onpopstate = (event) => {
if (event.state && event.state.path) {
let path = event.state.path;
if (this.isMarkdownFile(path)) {
if (Utils.isMarkdownFile(path)) {
this.showFile(path);
} else {
this.loadDirentList(path);
@@ -878,45 +878,6 @@ class Wiki extends Component {
return dirent;
}
isMarkdownFile(filePath) {
let index = filePath.lastIndexOf('.');
if (index === -1) {
return false;
} else {
let type = filePath.substring(index).toLowerCase();
if (type === '.md' || type === '.markdown') {
return true;
} else {
return false;
}
}
}
isInternalMarkdownLink(url) {
var re = new RegExp(siteRoot + 'lib/' + repoID + '.*\.md$');
return re.test(url);
}
isInternalDirLink(url) {
var re = new RegExp(siteRoot + 'library/' + repoID + '.*');
return re.test(url);
}
getPathFromInternalMarkdownLink(url) {
var re = new RegExp(siteRoot + 'lib/' + repoID + '/file' + '(.*\.md)');
var array = re.exec(url);
var path = decodeURIComponent(array[1]);
return path;
}
getPathFromInternalDirLink(url) {
var re = new RegExp(siteRoot + 'library/' + repoID + '/' + slug + '(/.*)');
var array = re.exec(url);
var path = decodeURIComponent(array[1]);
return path;
}
getSelectedDirentPaths = () => {
let paths = [];
this.state.selectedDirentList.forEach(selectedDirent => {
@@ -977,8 +938,9 @@ class Wiki extends Component {
if (libNeedDecrypt) {
return (
<ModalPortal>
<LibDecryptDialog repoID={repoID}
onLibDecryptDialog={this.onLibDecryptDialog}
<LibDecryptDialog
repoID={repoID}
onLibDecryptDialog={this.onLibDecryptDialog}
/>
</ModalPortal>
)