replaced SubRender mechanism with standard Jet include directives
This commit is contained in:
@@ -11,10 +11,8 @@
|
|||||||
package ui
|
package ui
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"maps"
|
|
||||||
"mime/multipart"
|
"mime/multipart"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
@@ -62,8 +60,6 @@ type AmContext interface {
|
|||||||
RemoteIP() string
|
RemoteIP() string
|
||||||
ReplaceUser(*database.User)
|
ReplaceUser(*database.User)
|
||||||
SaveSession() error
|
SaveSession() error
|
||||||
SubRender(string) ([]byte, error)
|
|
||||||
SubRender2(string, map[string]any) ([]byte, error)
|
|
||||||
SetCommunityContext(string) error
|
SetCommunityContext(string) error
|
||||||
SetLeftMenu(string)
|
SetLeftMenu(string)
|
||||||
SetLoginCookie(string)
|
SetLoginCookie(string)
|
||||||
@@ -321,52 +317,6 @@ func (c *amContext) SaveSession() error {
|
|||||||
return c.session.Save(c.echoContext.Request(), c.echoContext.Response())
|
return c.session.Save(c.echoContext.Request(), c.echoContext.Response())
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SubRender renders a subtemplate to the output.
|
|
||||||
* Parameters:
|
|
||||||
* name = The name of the template to be rendered.
|
|
||||||
* Returns:
|
|
||||||
* Byte array with the rendered data to be output.
|
|
||||||
* Standard Go error status.
|
|
||||||
*/
|
|
||||||
func (c *amContext) SubRender(name string) ([]byte, error) {
|
|
||||||
view, err := views.GetTemplate(name)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("unable to load template \"%s\": %v", name, err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
buf := new(bytes.Buffer)
|
|
||||||
if err = view.Execute(buf, c.VarMap(), c); err != nil {
|
|
||||||
log.Errorf("template \"%s\" failed subrender exec: %v", name, err)
|
|
||||||
}
|
|
||||||
return buf.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SubRender2 renders a subtemplate to the output, with extra variables to be set.
|
|
||||||
* Parameters:
|
|
||||||
* name = The name of the template to be rendered.
|
|
||||||
* vals = Additional variable values to be set.
|
|
||||||
* Returns:
|
|
||||||
* Byte array with the rendered data to be output.
|
|
||||||
* Standard Go error status.
|
|
||||||
*/
|
|
||||||
func (c *amContext) SubRender2(name string, vals map[string]any) ([]byte, error) {
|
|
||||||
view, err := views.GetTemplate(name)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("unable to load template \"%s\": %v", name, err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
newmap := make(jet.VarMap)
|
|
||||||
maps.Copy(newmap, c.VarMap())
|
|
||||||
for k, v := range vals {
|
|
||||||
newmap.Set(k, v)
|
|
||||||
}
|
|
||||||
buf := new(bytes.Buffer)
|
|
||||||
if err = view.Execute(buf, newmap, c); err != nil {
|
|
||||||
log.Errorf("template \"%s\" failed subrender exec: %v", name, err)
|
|
||||||
}
|
|
||||||
return buf.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SetCommunityContext establishes the community context from a (ID or alias) parameter.
|
/* SetCommunityContext establishes the community context from a (ID or alias) parameter.
|
||||||
* Parameters:
|
* Parameters:
|
||||||
* param - String parameter selecting the community.
|
* param - String parameter selecting the community.
|
||||||
|
|||||||
+3
-3
@@ -90,16 +90,16 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
{{ .SetScratch("__menu", m) }}
|
{{ .SetScratch("__menu", m) }}
|
||||||
{{ if m.Tag == "community" }}
|
{{ if m.Tag == "community" }}
|
||||||
{{ .SubRender("menu_left_comm.jet") | raw }}
|
{{ include "menu_left_comm.jet" }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ .SubRender("menu_left.jet") | raw }}
|
{{ include "menu_left.jet" }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- MAIN CONTENT -->
|
<!-- MAIN CONTENT -->
|
||||||
<div class="flex-1 bg-white">
|
<div class="flex-1 bg-white">
|
||||||
{{ .SubRender(amsterdam_innerPage) | raw }}
|
{{ include amsterdam_innerPage }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
+11
-4
@@ -99,11 +99,18 @@
|
|||||||
<!-- Messages -->
|
<!-- Messages -->
|
||||||
<div class="space-y-6 mb-8">
|
<div class="space-y-6 mb-8">
|
||||||
{{ if advancedControls }}<div class="flex gap-4">{{ end }}
|
{{ if advancedControls }}<div class="flex gap-4">{{ end }}
|
||||||
{{ m := map("foo", "bar") }}
|
{{ post_cur := nil }}
|
||||||
|
{{ post_userName := "" }}
|
||||||
|
{{ post_text := "" }}
|
||||||
|
{{ post_overrideLine := "" }}
|
||||||
|
{{ post_overrideLink := "" }}
|
||||||
{{ range i, p := posts }}
|
{{ range i, p := posts }}
|
||||||
{{ m = map("post_cur", p, "post_userName", post_getUserName(p, .), "post_text", post_getText(p, .),
|
{{ post_cur = p }}
|
||||||
"post_overrideLine", post_getOverrideLine(p, .), "post_overrideLink", post_getOverrideLink(p, post_topicPermalink)) }}
|
{{ post_userName = post_getUserName(p, .) }}
|
||||||
{{ .SubRender2("singlepost.jet", m) | raw }}
|
{{ post_text = post_getText(p, .) }}
|
||||||
|
{{ post_overrideLine = post_getOverrideLine(p, .) }}
|
||||||
|
{{ post_overrideLink = post_getOverrideLink(p, post_topicPermalink) }}
|
||||||
|
{{ include "singlepost.jet" }}
|
||||||
{{ if advancedControls }}
|
{{ if advancedControls }}
|
||||||
<div class="flex flex-col gap-2">
|
<div class="flex flex-col gap-2">
|
||||||
{{ if canHide }}
|
{{ if canHide }}
|
||||||
|
|||||||
+11
-2
@@ -19,11 +19,20 @@
|
|||||||
|
|
||||||
<!-- Messages -->
|
<!-- Messages -->
|
||||||
<div class="space-y-6 mb-8">
|
<div class="space-y-6 mb-8">
|
||||||
{{ m := map("foo", "bar") }}
|
{{ post_cur := nil }}
|
||||||
|
{{ post_userName := "" }}
|
||||||
|
{{ post_text := "" }}
|
||||||
|
{{ post_overrideLine := "" }}
|
||||||
|
{{ post_overrideLink := "" }}
|
||||||
{{ range i, p := posts }}
|
{{ range i, p := posts }}
|
||||||
{{ m = map("post_cur", p, "post_userName", post_getUserName(p, .), "post_text", post_getText(p, .),
|
{{ m = map("post_cur", p, "post_userName", post_getUserName(p, .), "post_text", post_getText(p, .),
|
||||||
"post_overrideLine", post_getOverrideLine(p, .), "post_overrideLink", post_getOverrideLink(p, post_topicPermalink)) }}
|
"post_overrideLine", post_getOverrideLine(p, .), "post_overrideLink", post_getOverrideLink(p, post_topicPermalink)) }}
|
||||||
{{ .SubRender2("singlepost.jet", m) | raw }}
|
{{ post_cur = p }}
|
||||||
|
{{ post_userName = post_getUserName(p, .) }}
|
||||||
|
{{ post_text = post_getText(p, .) }}
|
||||||
|
{{ post_overrideLine = post_getOverrideLine(p, .) }}
|
||||||
|
{{ post_overrideLink = post_getOverrideLink(p, post_topicPermalink) }}
|
||||||
|
{{ include "singlepost.jet" }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -49,10 +49,9 @@
|
|||||||
|
|
||||||
<!-- RIGHT SIDEBAR -->
|
<!-- RIGHT SIDEBAR -->
|
||||||
<div class="w-80 p-4">
|
<div class="w-80 p-4">
|
||||||
{{ ctxt := . }}
|
{{ range i, s := sideboxes }}
|
||||||
{{ range sideboxes }}
|
{{ .SetScratch("__sidebox", s) }}
|
||||||
{{ ctxt.SetScratch("__sidebox", .) }}
|
{{ include s.TemplateName }}
|
||||||
{{ ctxt.SubRender(.TemplateName) | raw }}
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if !.CurrentUser().IsAnon }}
|
{{ if !.CurrentUser().IsAnon }}
|
||||||
|
|||||||
Reference in New Issue
Block a user