| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // Copyright 2018 Frédéric Guillot. All rights reserved.
- // Use of this source code is governed by the Apache 2.0
- // license that can be found in the LICENSE file.
- package view // import "miniflux.app/ui/view"
- import (
- "net/http"
- "miniflux.app/http/request"
- "miniflux.app/template"
- "miniflux.app/ui/session"
- "miniflux.app/ui/static"
- )
- // View wraps template argument building.
- type View struct {
- tpl *template.Engine
- r *http.Request
- params map[string]interface{}
- }
- // Set adds a new template argument.
- func (v *View) Set(param string, value interface{}) *View {
- v.params[param] = value
- return v
- }
- // Render executes the template with arguments.
- func (v *View) Render(template string) []byte {
- return v.tpl.Render(template+".html", v.params)
- }
- // New returns a new view with default parameters.
- func New(tpl *template.Engine, r *http.Request, sess *session.Session) *View {
- b := &View{tpl, r, make(map[string]interface{})}
- theme := request.UserTheme(r)
- b.params["menu"] = ""
- b.params["csrf"] = request.CSRF(r)
- b.params["flashMessage"] = sess.FlashMessage(request.FlashMessage(r))
- b.params["flashErrorMessage"] = sess.FlashErrorMessage(request.FlashErrorMessage(r))
- b.params["theme"] = theme
- b.params["language"] = request.UserLanguage(r)
- b.params["theme_checksum"] = static.StylesheetBundleChecksums[theme]
- b.params["app_js_checksum"] = static.JavascriptBundleChecksums["app"]
- b.params["sw_js_checksum"] = static.JavascriptBundleChecksums["service-worker"]
- return b
- }
|