diff options
Diffstat (limited to 'server/ui/controller/static.go')
-rw-r--r-- | server/ui/controller/static.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/server/ui/controller/static.go b/server/ui/controller/static.go index 0ad55480..c37fae50 100644 --- a/server/ui/controller/static.go +++ b/server/ui/controller/static.go @@ -43,3 +43,23 @@ func (c *Controller) Favicon(ctx *core.Context, request *core.Request, response response.Cache("image/x-icon", static.BinariesChecksums["favicon.ico"], blob, 48*time.Hour) } + +// AppIcon returns application icons. +func (c *Controller) AppIcon(ctx *core.Context, request *core.Request, response *core.Response) { + filename := request.StringParam("filename", "favicon.png") + encodedBlob, found := static.Binaries[filename] + if !found { + logger.Info("[Controller:AppIcon] This icon doesn't exists: %s", filename) + response.HTML().NotFound() + return + } + + blob, err := base64.StdEncoding.DecodeString(encodedBlob) + if err != nil { + logger.Error("[Controller:AppIcon] %v", err) + response.HTML().NotFound() + return + } + + response.Cache("image/png", static.BinariesChecksums[filename], blob, 48*time.Hour) +} |