@@ -26,6 +26,7 @@ var wikiFrameHandlers = map[string]func(*wikiRequest){
26
26
"images" : handleImagesFrame ,
27
27
"images/" : handleImagesFrame ,
28
28
"models" : handleModelsFrame ,
29
+ "models/" : handleModelsFrame ,
29
30
"settings" : handleSettingsFrame ,
30
31
"edit-page" : handleEditPageFrame ,
31
32
"edit-category" : handleEditCategoryFrame ,
@@ -36,16 +37,18 @@ var wikiFrameHandlers = map[string]func(*wikiRequest){
36
37
}
37
38
38
39
var wikiFuncHandlers = map [string ]func (* wikiRequest ){
39
- "switch-branch/" : handleSwitchBranch ,
40
- "create-branch" : handleCreateBranch ,
41
- "write-page" : handleWritePage ,
42
- "write-model" : handleWriteModel ,
43
- "write-config" : handleWriteWikiConfig ,
44
- "image/" : handleImage ,
45
- "page-revisions" : handlePageRevisions ,
46
- "create-page" : handleCreatePage ,
47
- "create-model" : handleCreateModel ,
48
- "create-page-folder" : handleCreatePageFolder ,
40
+ "switch-branch/" : handleSwitchBranch ,
41
+ "create-branch" : handleCreateBranch ,
42
+ "write-page" : handleWritePage ,
43
+ "write-model" : handleWriteModel ,
44
+ "write-config" : handleWriteWikiConfig ,
45
+ "image/" : handleImage ,
46
+ "page-revisions" : handlePageRevisions ,
47
+ "create-page" : handleCreatePage ,
48
+ "create-model" : handleCreateModel ,
49
+ "create-page-folder" : handleCreatePageFolder ,
50
+ "create-model-folder" : handleCreateModelFolder ,
51
+ "create-image-folder" : handleCreateImageFolder ,
49
52
}
50
53
51
54
// wikiTemplate members are available to all wiki templates
@@ -325,8 +328,13 @@ func handleImagesFrame(wr *wikiRequest) {
325
328
326
329
func handleModelsFrame (wr * wikiRequest ) {
327
330
descending , sortFunc := getSortFunc (wr , wiki .SortModified , true )
328
- models := wr .wi .ModelsSorted (descending , sortFunc , wiki .SortTitle )
329
- handleFileFrames (wr , "models" , models )
331
+ dir := strings .TrimPrefix (strings .TrimPrefix (wr .r .URL .Path , wr .wikiRoot + "frame/models" ), "/" )
332
+ models , dirs := wr .wi .ModelsAndDirsSorted (dir , descending , sortFunc , wiki .SortTitle )
333
+ handleFileFrames (wr , "models" , struct {
334
+ Models []wikifier.ModelInfo `json:"models"`
335
+ Dirs []string `json:"dirs"`
336
+ Cd string `json:"cd"`
337
+ }{models , dirs , dir })
330
338
}
331
339
332
340
func handleCategoriesFrame (wr * wikiRequest ) {
@@ -718,6 +726,18 @@ func handleCreatePageFolder(wr *wikiRequest) {
718
726
})
719
727
}
720
728
729
+ func handleCreateImageFolder (wr * wikiRequest ) {
730
+ handleCreateFolder ("image" , wr , func (dir , name string ) (string , error ) {
731
+ return wr .wi .CreateImageFolder (dir , name )
732
+ })
733
+ }
734
+
735
+ func handleCreateModelFolder (wr * wikiRequest ) {
736
+ handleCreateFolder ("model" , wr , func (dir , name string ) (string , error ) {
737
+ return wr .wi .CreateModelFolder (dir , name )
738
+ })
739
+ }
740
+
721
741
func handleCreateFolder (typ string , wr * wikiRequest , createFunc func (dir , name string ) (string , error )) {
722
742
if ! parsePost (wr .w , wr .r , "name" ) {
723
743
return
0 commit comments