package finder import ( "personalwebsite/apps" "personalwebsite/wde" "personalwebsite/webfilesystem" "strings" "github.com/gin-gonic/gin" ) type FinderApplication struct { fs *webfilesystem.WebFileSystem manifest apps.ApplicationManifest } func NewFinderApplication(webFs *webfilesystem.WebFileSystem) *FinderApplication { return &FinderApplication{ fs: webFs, manifest: apps.ApplicationManifest{ AppId: "finder", WindowName: "TODO DELETE", //TODO DELETE }, } } func (f *FinderApplication) GetManifest() apps.ApplicationManifest { return f.manifest } func (f *FinderApplication) GetId() string { return f.manifest.AppId } func (f *FinderApplication) Render(isMobile bool) gin.H { return gin.H{} } func (f *FinderApplication) RenderContextMenu(context string, data string) gin.H { islands := [][]wde.ContexMenuRow{} //FIXME switch context { case "FileTileView": islands = [][]wde.ContexMenuRow{ { { Label: "Get Info", Action: strings.Join([]string{"getInfo"}[:], ","), }, }, { { Label: "New Directory", Action: strings.Join([]string{"createDir"}[:], ","), }, }, } case "directory": islands = [][]wde.ContexMenuRow{ { { Label: "Test", Action: strings.Join([]string{""}[:], ","), }, { Label: "Delete", Action: strings.Join([]string{""}[:], ","), }, }, { { Label: "Get Info", Action: strings.Join([]string{""}[:], ","), }, }, } default: islands = [][]wde.ContexMenuRow{ { { Label: "temp Menu 1", Action: strings.Join([]string{""}[:], ","), }, { Label: "temp Menu 2", Action: strings.Join([]string{""}[:], ","), }, { Label: "temp Menu 3", Action: strings.Join([]string{""}[:], ","), }, { Label: "temp Menu 4", Action: strings.Join([]string{""}[:], ","), }, }, } } islands = append(islands, []wde.ContexMenuRow{ { Label: "Delete File", Action: strings.Join([]string{"deleteFile"}[:], ";"), }, }) return gin.H{ "Islands": islands, } } // func (f *FinderApplication) Routes(routes *gin.RouterGroup) { // routes.GET("render", func(ctx *gin.Context) { // isMobileParam := ctx.Query("isMobile") // isMobile := isMobileParam == "true" // admin := true // if isMobile { // ctx.HTML(http.StatusOK, "finder/mobile-app.tmpl", f.Render(isMobile)) // return // } // if admin { // ctx.HTML(http.StatusOK, "finder/admin-app.tmpl", f.Render(isMobile)) // return // } // ctx.HTML(http.StatusOK, "finder/app.tmpl", f.Render(isMobile)) // }) // routes.GET("renderMobileDesktop", func(ctx *gin.Context) { // ctx.HTML(http.StatusOK, "finder/mobile-desktop.tmpl", gin.H{}) // }) // routes.GET("renderDesktop", func(ctx *gin.Context) { // path := ctx.Query("path") // if path == "" { // ctx.JSON(http.StatusBadRequest, "no path provided") // return // } // ctx.HTML(http.StatusOK, "finder/desktop.tmpl", gin.H{}) // }) // routes.GET("contextMenu", func(ctx *gin.Context) { // context := ctx.Query("context") // data := ctx.Query("data") // ginH := f.RenderContextMenu(context, data) // ctx.HTML(http.StatusOK, "wde-widgets/context-menu.tmpl", ginH) // }) // }