1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-17 15:53:28 +00:00

repair wiki bug (#2344)

* repair wiki bug

* optimized code

* optimized code
This commit is contained in:
shanshuirenjia
2018-09-05 17:44:14 +08:00
committed by Daniel Pan
parent 508f5c705f
commit eab6c6fe61
8 changed files with 123 additions and 142 deletions

View File

@@ -13,3 +13,4 @@ export const slug = window.wiki.config.slug;
export const repoID = window.wiki.config.repoId;
export const serviceUrl = window.wiki.config.serviceUrl;
export const initialFilePath = window.wiki.config.initial_file_path;
export const permission = window.wiki.config.permission

View File

@@ -59,7 +59,6 @@ class Rename extends React.Component {
render() {
let type = this.props.currentNode.type;
let preName = this.props.currentNode.name;
return (
<Modal isOpen={true} toggle={this.toggle}>
<ModalHeader toggle={this.toggle}>{type === 'file' ? gettext("Rename File") : gettext("Rename Folder") }</ModalHeader>

View File

@@ -1,101 +1,24 @@
import React from 'react'
import Delete from './menu-dialog/delete-dialog';
import CreateFlieFolder from './menu-dialog/create-fileforder-dialog';
import Rename from './menu-dialog/rename-dialog';
const gettext = window.gettext;
class NodeMenu extends React.Component {
constructor(props) {
super(props);
this.state = {
showDelete: false,
showAddFileFolder: false,
showRename: false,
isFile: false
};
}
toggleDelete = () => {
this.setState({showDelete: !this.state.showDelete});
this.props.onHideContextMenu();
}
toggleAddFileFolder = (ev, flag) => {
if(flag){
this.setState({
showAddFileFolder: !this.state.showAddFileFolder,
isFile: true
});
} else {
this.setState({
showAddFileFolder: !this.state.showAddFileFolder,
isFile: false
})
}
this.props.onHideContextMenu();
this.props.toggleAddFileFolder(flag);
}
toggleRename = () => {
this.setState({showRename: !this.state.showRename});
this.props.onHideContextMenu();
this.props.toggleRename();
}
onDelete = () => {
this.setState({showDelete: !this.state.showDelete});
this.props.onDeleteNode();
}
deleteCancel = () => {
this.setState({showDelete: !this.state.showDelete});
}
onAddFile = (filePath) => {
this.setState({
showAddFileFolder: !this.state.showAddFileFolder,
isFile: false
});
this.props.onAddFileNode(filePath);
}
addFileCancel = () => {
this.setState({
showAddFileFolder: !this.state.showAddFileFolder,
isFile: false
});
}
onAddFolder = (dirPath) => {
this.setState({
showAddFileFolder: !this.state.showAddFileFolder,
isFile: false
});
this.props.onAddFolderNode(dirPath);
}
addFolderCancel = () => {
this.setState({
showAddFileFolder: !this.state.showAddFileFolder,
isFile: false
});
}
onRename = (newName) => {
this.setState({showRename: !this.state.showRename});
this.props.onRenameNode(newName);
}
renameCancel = () => {
this.setState({showRename: !this.state.showRename});
toggleDelete = () => {
this.props.toggleDelete();
}
renderNodeMenu() {
let style = null;
let position = this.props.menuPosition;
if (this.props.isShowMenu) {
style = {position: "fixed",left: position.left, top: position.top, display: 'block'};
}
let style = {position: "fixed",left: position.left, top: position.top, display: 'block'};
if (this.props.currentNode.type === "dir") {
@@ -134,30 +57,6 @@ class NodeMenu extends React.Component {
return (
<div className="node-menu-module">
{this.renderNodeMenu()}
{this.state.showDelete &&
<Delete
currentNode={this.props.currentNode}
handleSubmit={this.onDelete}
toggleCancel={this.deleteCancel}
/>
}
{this.state.showAddFileFolder &&
<CreateFlieFolder
isFile={this.state.isFile}
currentNode={this.props.currentNode}
onAddFolder={this.onAddFolder}
addFolderCancel={this.addFolderCancel}
onAddFile={this.onAddFile}
addFileCancel={this.addFileCancel}
/>
}
{this.state.showRename &&
<Rename
currentNode={this.props.currentNode}
onRename={this.onRename}
toggleCancel={this.renameCancel}
/>
}
</div>
)
}

View File

@@ -1,5 +1,6 @@
import React from 'react';
import MenuControl from '../menu-component/node-menu-control'
import MenuControl from '../menu-component/node-menu-control';
import { permission } from '../constance';
function sortByType(a, b) {
if (a.type == "dir" && b.type != "dir") {
@@ -110,7 +111,6 @@ class TreeNodeView extends React.Component {
paddingLeft={this.props.paddingLeft}
treeView={this.props.treeView}
isNodeItemFrezee={this.props.isNodeItemFrezee}
permission={this.props.permission}
currentFilePath={this.props.currentFilePath}
onDirCollapse={this.props.onDirCollapse}
/>
@@ -124,7 +124,7 @@ class TreeNodeView extends React.Component {
}
renderMenuController() {
if (this.props.permission === "rw") {
if (permission === "True") {
let isShow = (this.props.node.path === this.props.currentFilePath);
return (
<div className="right-icon">

View File

@@ -1,5 +1,6 @@
import Node from './node';
import moment from 'moment';
import { bytesToSize } from '../utils';
class Tree {
@@ -172,7 +173,7 @@ class Tree {
var node = new Node({
name: model.name,
type: model.type,
size: model.size,
size: bytesToSize(model.size),
last_update_time: moment.unix(model.last_update_time).fromNow(),
isExpanded: false
});
@@ -200,7 +201,7 @@ class Tree {
let node = new Node({
name: nodeObj.name,
type: nodeObj.type,
size: nodeObj.size,
size: bytesToSize(nodeObj.size),
last_update_time: moment.unix(nodeObj.last_update_time).fromNow(),
isExpanded: false
});
@@ -226,7 +227,7 @@ class Tree {
var node = new Node({
name: node.name,
type: node.type,
size: node.size,
size: bytesToSize(node.size),
last_update_time: moment.unix(node.last_update_time).fromNow(),
isExpanded: false
});