This commit is contained in:
parent
bd1d3ffca4
commit
d75e52b648
|
@ -42,6 +42,7 @@ type Node struct {
|
||||||
Type string `json:"type"` // "f": file, "d": directory
|
Type string `json:"type"` // "f": file, "d": directory
|
||||||
Creatable bool `json:"creatable"` // whether can create file in this file node
|
Creatable bool `json:"creatable"` // whether can create file in this file node
|
||||||
Removable bool `json:"removable"` // whether can remove this file node
|
Removable bool `json:"removable"` // whether can remove this file node
|
||||||
|
IsGoAPI bool `json:"isGOAPI"`
|
||||||
Mode string `json:"mode"`
|
Mode string `json:"mode"`
|
||||||
Children []*Node `json:"children"`
|
Children []*Node `json:"children"`
|
||||||
}
|
}
|
||||||
|
@ -61,9 +62,9 @@ func initAPINode() {
|
||||||
apiPath := util.Go.GetAPIPath()
|
apiPath := util.Go.GetAPIPath()
|
||||||
|
|
||||||
apiNode = &Node{Name: "Go API", Path: apiPath, IconSkin: "ico-ztree-dir-api ", Type: "d",
|
apiNode = &Node{Name: "Go API", Path: apiPath, IconSkin: "ico-ztree-dir-api ", Type: "d",
|
||||||
Creatable: false, Removable: false, Children: []*Node{}}
|
Creatable: false, Removable: false, IsGoAPI: true, Children: []*Node{}}
|
||||||
|
|
||||||
walk(apiPath, apiNode, false, false)
|
walk(apiPath, apiNode, false, false, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetFiles handles request of constructing user workspace file tree.
|
// GetFiles handles request of constructing user workspace file tree.
|
||||||
|
@ -97,9 +98,9 @@ func GetFiles(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
workspaceNode := Node{Name: workspace[strings.LastIndex(workspace, conf.PathSeparator)+1:],
|
workspaceNode := Node{Name: workspace[strings.LastIndex(workspace, conf.PathSeparator)+1:],
|
||||||
Path: workspacePath, IconSkin: "ico-ztree-dir-workspace ", Type: "d",
|
Path: workspacePath, IconSkin: "ico-ztree-dir-workspace ", Type: "d",
|
||||||
Creatable: true, Removable: false, Children: []*Node{}}
|
Creatable: true, Removable: false, IsGoAPI: false, Children: []*Node{}}
|
||||||
|
|
||||||
walk(workspacePath, &workspaceNode, true, true)
|
walk(workspacePath, &workspaceNode, true, true, false)
|
||||||
|
|
||||||
// add workspace node
|
// add workspace node
|
||||||
root.Children = append(root.Children, &workspaceNode)
|
root.Children = append(root.Children, &workspaceNode)
|
||||||
|
@ -118,7 +119,7 @@ func RefreshDirectory(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
node := Node{Name: "root", Path: path, IconSkin: "ico-ztree-dir ", Type: "d", Children: []*Node{}}
|
node := Node{Name: "root", Path: path, IconSkin: "ico-ztree-dir ", Type: "d", Children: []*Node{}}
|
||||||
|
|
||||||
walk(path, &node, true, true)
|
walk(path, &node, true, true, false)
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
data, err := json.Marshal(node.Children)
|
data, err := json.Marshal(node.Children)
|
||||||
|
@ -427,7 +428,7 @@ func SearchText(w http.ResponseWriter, r *http.Request) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// walk traverses the specified path to build a file tree.
|
// walk traverses the specified path to build a file tree.
|
||||||
func walk(path string, node *Node, creatable, removable bool) {
|
func walk(path string, node *Node, creatable, removable, isGOAPI bool) {
|
||||||
files := listFiles(path)
|
files := listFiles(path)
|
||||||
|
|
||||||
for _, filename := range files {
|
for _, filename := range files {
|
||||||
|
@ -435,7 +436,7 @@ func walk(path string, node *Node, creatable, removable bool) {
|
||||||
|
|
||||||
fio, _ := os.Lstat(fpath)
|
fio, _ := os.Lstat(fpath)
|
||||||
|
|
||||||
child := Node{Name: filename, Path: fpath, Removable: removable, Children: []*Node{}}
|
child := Node{Name: filename, Path: fpath, Removable: removable, IsGoAPI: isGOAPI, Children: []*Node{}}
|
||||||
node.Children = append(node.Children, &child)
|
node.Children = append(node.Children, &child)
|
||||||
|
|
||||||
if nil == fio {
|
if nil == fio {
|
||||||
|
@ -449,7 +450,7 @@ func walk(path string, node *Node, creatable, removable bool) {
|
||||||
child.Creatable = creatable
|
child.Creatable = creatable
|
||||||
child.IconSkin = "ico-ztree-dir "
|
child.IconSkin = "ico-ztree-dir "
|
||||||
|
|
||||||
walk(fpath, &child, creatable, removable)
|
walk(fpath, &child, creatable, removable, isGOAPI)
|
||||||
} else {
|
} else {
|
||||||
child.Type = "f"
|
child.Type = "f"
|
||||||
child.Creatable = creatable
|
child.Creatable = creatable
|
||||||
|
|
Loading…
Reference in New Issue