diff --git a/frontend/src/components/tree-dir-view/tree-dir-list.js b/frontend/src/components/tree-dir-view/tree-dir-list.js
index b489bce447..4fef0e3450 100644
--- a/frontend/src/components/tree-dir-view/tree-dir-list.js
+++ b/frontend/src/components/tree-dir-view/tree-dir-list.js
@@ -1,5 +1,5 @@
import React, { Component } from 'react';
-
+import { serviceUrl } from '../constance';
class TreeDirList extends React.Component {
constructor(props) {
@@ -18,7 +18,7 @@ class TreeDirList extends React.Component {
return (
-
+
|
{node.name}
diff --git a/frontend/src/components/tree-view/tree.js b/frontend/src/components/tree-view/tree.js
index 729aea0551..4a870621e3 100644
--- a/frontend/src/components/tree-view/tree.js
+++ b/frontend/src/components/tree-view/tree.js
@@ -94,8 +94,7 @@ class Tree {
return findNode;
}
- setNodeToActivated(node) {
- this.setTreeToUnActivated();
+ expandNode(node) {
let treeNode = this.findNodeFromTree(node);
if (treeNode) {
treeNode.isExpanded = true;
@@ -108,7 +107,16 @@ class Tree {
return false;
}
- setTreeToUnActivated() {
+ collapseNode(node) {
+ let treeNode = this.findNodeFromTree(node);
+ if (treeNode) {
+ treeNode.isExpanded = false;
+ return true;
+ }
+ return false;
+ }
+
+ resetTreeState() {
function cb(treeNode) {
treeNode.isExpanded = false;
return false;
diff --git a/frontend/src/css/wiki.css b/frontend/src/css/wiki.css
index 9260e0e945..50c89ee744 100644
--- a/frontend/src/css/wiki.css
+++ b/frontend/src/css/wiki.css
@@ -71,6 +71,7 @@ img[src=""] {
.cur-view-container {
display: flex;
min-height: 0;
+ overflow: auto;
}
.cur-view-container .markdown-container {
diff --git a/frontend/src/wiki.js b/frontend/src/wiki.js
index 9f07990c37..63ffd39540 100644
--- a/frontend/src/wiki.js
+++ b/frontend/src/wiki.js
@@ -45,12 +45,12 @@ class Wiki extends Component {
treeData.parseListToTree(files);
let node = treeData.getNodeByPath(filePath);
- treeData.setNodeToActivated(node);
+ treeData.expandNode(node);
if (node.isDir()) {
this.exitViewFileState(treeData, node);
this.setState({isFileLoading: false});
} else {
- treeData.setNodeToActivated(node);
+ treeData.expandNode(node);
editorUtilities.getWikiFileContent(slug, filePath).then(res => {
this.setState({
tree_data: treeData,
@@ -118,7 +118,7 @@ class Wiki extends Component {
let tree = this.state.tree_data.clone();
let node = tree.getNodeByPath(path);
- tree.setNodeToActivated(node);
+ tree.expandNode(node);
this.enterViewFileState(tree, node, node.path);
}
}
@@ -126,7 +126,7 @@ class Wiki extends Component {
onMainNavBarClick = (nodePath) => {
let tree = this.state.tree_data.clone();
let node = tree.getNodeByPath(nodePath);
- tree.setNodeToActivated(node);
+ tree.expandNode(node);
this.exitViewFileState(tree, node);
@@ -137,7 +137,7 @@ class Wiki extends Component {
onMainNodeClick = (node) => {
let tree = this.state.tree_data.clone();
- tree.setNodeToActivated(node);
+ tree.expandNode(node);
if (node.isMarkdown()) {
this.initMainPanelData(node.path);
this.enterViewFileState(tree, node, node.path);
@@ -157,6 +157,13 @@ class Wiki extends Component {
this.enterViewFileState(tree, node, node.path);
} else if(node instanceof Node && node.isDir()){
let tree = this.state.tree_data.clone();
+ if (this.state.filePath === node.path) {
+ if (node.isExpanded) {
+ tree.collapseNode(node);
+ } else {
+ tree.expandNode(node);
+ }
+ }
this.exitViewFileState(tree, node);
} else {
const w=window.open('about:blank');
@@ -197,7 +204,7 @@ class Wiki extends Component {
let parentNode = tree.getNodeByPath(parentPath);
tree.addNodeToParent(node, parentNode);
if (this.state.isViewFileState) {
- tree.setNodeToActivated(node);
+ tree.expandNode(node);
this.setState({
tree_data: tree,
changedNode: node
@@ -221,7 +228,7 @@ class Wiki extends Component {
let parentNode = tree.getNodeByPath(parentPath);
tree.addNodeToParent(node, parentNode);
if (this.state.isViewFileState) {
- tree.setNodeToActivated(node);
+ tree.expandNode(node);
this.setState({
tree_data: tree,
changedNode: node
@@ -247,7 +254,7 @@ class Wiki extends Component {
if (this.state.isViewFileState) {
if (this.isModifyCurrentFile(cloneNode)) {
- tree.setNodeToActivated(node);
+ tree.expandNode(node);
this.setState({
tree_data: tree,
changedNode: node
@@ -279,7 +286,7 @@ class Wiki extends Component {
if (this.state.isViewFileState) {
if (currentFilePath.indexOf(nodePath) > -1) {
- tree.setNodeToActivated(currentFileNode);
+ tree.expandNode(currentFileNode);
this.setState({
tree_data: tree,
changedNode: currentFileNode
@@ -290,10 +297,10 @@ class Wiki extends Component {
}
} else {
if (nodePath === currentFilePath) { // old node
- tree.setNodeToActivated(node);
+ tree.expandNode(node);
this.exitViewFileState(tree, node);
} else if (node.path.indexOf(currentFilePath) > -1) { // new node
- tree.setNodeToActivated(currentFileNode);
+ tree.expandNode(currentFileNode);
this.exitViewFileState(tree, currentFileNode);
} else {
this.setState({tree_data: tree});
@@ -325,7 +332,7 @@ class Wiki extends Component {
if (this.state.isViewFileState) {
if (isCurrentFile) {
let homeNode = this.getHomeNode(tree);
- tree.setNodeToActivated(homeNode);
+ tree.expandNode(homeNode);
this.setState({
tree_data: tree,
changedNode: homeNode
|