Project Docs Github
Log in
ittf site docs t _js widgets treeFileSystem.js.ittf Edit
  • /ittf/site/docs/t/_js/widgets/treeFileSystem.js.ittf
  • /t/a_cb_throw.ittf
  • /t/a_cb.ittf

/ittf/site/docs/t/_js/widgets/treeFileSystem.js.ittf (primary)

edit
                                            
1 $group
2 #
3 # dependencies
4 # . g/js/wz/standalone.js.ittf
5 # - wz.fs.infoByPath
6 # params
7 # { ctx
8 # { fsAdapter (BrowserFilesystem, ...)
9 class TreeFileSystem
10 ctor
11 param ctx
12 set this.fsAdapter = ctx.fsAdapter
13 # the fs item
14 set this.copyCutItem = null
15 # the TreeNode containing the copy/cut fs item
16 set this.copyCutContext = null
17 # oneOf( 'copy', 'cut' )
18 set this.copyCutOper = null
19 m getChildName
20 param item
21 param name
22 var c = 0
23 var result, ok = false
24 while ok == false
25 set result = name + (c == 0 ? '' : c)
26 set ok = true
27 foreach child in item.children
28 if child.name === result
29 set ok = false
30 set c++
31 return result
32 m getFolderRoot
33 param callback
34 _ this.fsAdapter.getFolderItem
35 @ callback
36 m populateFolderItem
37 param parentItem
38 param callback
39 _ this.fsAdapter.getFolderItem
40 @ parentItem
41 @ callback
42 m createFolder
43 param parentItem
44 param callback
45 var newName
46 _ this.getChildName
47 @ parentItem
48 @ 'new folder'
49 var newPath = parentItem.path + '/' + newName
50 _ this.fsAdapter.createFolder
51 @ newPath
52 a_cb_throw( result )
53 var newItem
54 _ wz.fs.infoByPath
55 @ newPath
56 @ true
57 set newItem.name = newItem.basename
58 set newItem.children = []
59 _ callback
60 @ null
61 @ newItem
62 m deleteFolder
63 param item
64 param callback
65 _ this.fsAdapter.deleteFolder
66 @ item.path
67 @ callback
68 m createFile
69 param parentItem
70 param callback
71 var newName
72 _ this.getChildName
73 @ parentItem
74 @ 'new file'
75 var newPath = parentItem.path + '/' + newName
76 var newContent = '...'
77 _ this.fsAdapter.writeFile
78 @ newPath
79 @ newContent
80 a_cb_throw( result )
81 var newItem
82 _ wz.fs.infoByPath
83 @ newPath
84 @ false
85 set newItem.name = newItem.basename
86 set newItem.children = []
87 _ callback
88 @ null
89 @ newItem
90 m updateFile
91 param item
92 param content
93 param callback
94 _ this.fsAdapter.writeFile
95 @ item.path
96 @ content
97 @ callback
98 m deleteFile
99 param item
100 param callback
101 _ this.fsAdapter.deleteFile
102 @ item.path
103 @ callback
104 m rename
105 param item
106 param newName
107 param callback
108 log 'treeFileSystem.rename', item, newName
109 if item.isFolder
110 _ this.fsAdapter.renameFolder
111 @ item.path
112 @ item.dirname + '/' + newName
113 @ callback
114 else
115 _ this.fsAdapter.renameFile
116 @ item.path
117 @ item.dirname + '/' + newName
118 @ callback
119 m copyCutStart
120 param item
121 param context
122 param oper
123 #
124 # params
125 # { item
126 # is a TreeNode.item
127 # { context
128 # is a TreeNode
129 # { item
130 # oneOf( 'copy', 'cut' )
131 set this.copyCutItem = item
132 set this.copyCutContext = context
133 set this.copyCutOper = oper
134 m copyCutClear
135 set this.copyCutItem = null
136 set this.copyCutContext = null
137 set this.copyCutOper = null
138 m pasteTo
139 param item
140 param callback
141 log 'TreeFileSystem.pasteTo', item, 'from', this.copyCutItem
142 var action
143 if this.copyCutOper === 'copy'
144 if this.copyCutItem.isFolder
145 set action = 'copyFolder'
146 else
147 set action = 'copyFile'
148 else
149 if this.copyCutItem.isFolder
150 set action = 'moveFolder'
151 else
152 set action = 'moveFile'
153 _ this.fsAdapter[action]
154 @ this.copyCutItem.path
155 @ item.path + '/' + this.copyCutItem.basename
156 a_cb( result )
157 _ callback
158 @ null
159 {
160 @ item this.copyCutItem
161 @ context this.copyCutContext
162 @ oper this.copyCutOper
163 @ action action
164 _ this.copyCutClear
165 m folderContextmenuItems
166 param item
167 var canPaste = this.copyCutItem && item !== this.copyCutItem
168 var items
169 [
170 {
171 @ label 'create folder'
172 {
173 @ label 'create file'
174 {
175 @ label 'clone repo'
176 {
177 @ label 'checkout repo'
178 if canPaste
179 _ items.push
180 {
181 @ label 'paste'
182 set items
183 _ items.concat
184 [
185 {
186 @ label 'copy'
187 {
188 @ label 'cut'
189 {
190 @ label 'rename'
191 {
192 @ label 'delete'
193 return items
194 m fileContextmenuItems
195 param item
196 var canPaste = this.copyCutItem && item !== this.copyCutItem
197 var items = []
198 if canPaste
199 _ items.push
200 {
201 @ label 'paste'
202 set items
203 _ items.concat
204 [
205 {
206 @ label 'copy'
207 {
208 @ label 'cut'
209 {
210 @ label 'rename'
211 {
212 @ label 'delete'
213 return items

/t/a_cb_throw.ittf

edit
                                            
1 $group
2 $params result|notUsed
3 =>
4 param err
5 param ${result}
6 if err
7 log 'err', err
8 throw err
9 $hook

/t/a_cb.ittf

edit
                                            
1 $group
2 $params result|notUsed
3 =>
4 param err
5 param ${result}
6 if err
7 return
8 _ callback
9 @ err
10 $hook
Save
Save & Refresh
Cancel