patched up community display in find.jet
This commit is contained in:
@@ -284,6 +284,9 @@ func (c *amContext) SubRender(name string) ([]byte, error) {
|
||||
}
|
||||
buf := new(bytes.Buffer)
|
||||
err = view.Execute(buf, c.VarMap(), c)
|
||||
if err != nil {
|
||||
log.Errorf("template \"%s\" failed subrender exec: %v", name, err)
|
||||
}
|
||||
return buf.Bytes(), err
|
||||
}
|
||||
|
||||
|
||||
+40
-5
@@ -107,6 +107,35 @@ func extractCommunityLogo(a jet.Arguments) reflect.Value {
|
||||
return reflect.ValueOf(rc)
|
||||
}
|
||||
|
||||
func displayActivity(a jet.Arguments) reflect.Value {
|
||||
timeval := a.Get(0).Convert(reflect.TypeFor[*time.Time]()).Interface().(*time.Time)
|
||||
ctxt := a.Get(1).Convert(reflect.TypeFor[AmContext]()).Interface().(AmContext)
|
||||
prefs, err := ctxt.CurrentUser().Prefs()
|
||||
if err == nil {
|
||||
return reflect.ValueOf(util.AmActivityString(timeval, prefs.Localizer()))
|
||||
}
|
||||
return reflect.ValueOf(fmt.Sprintf("<<%v>>", err))
|
||||
}
|
||||
|
||||
func displayMemberCount(a jet.Arguments) reflect.Value {
|
||||
showHidden := false
|
||||
comm := a.Get(0).Convert(reflect.TypeFor[*database.Community]()).Interface().(*database.Community)
|
||||
ctxt := a.Get(1).Convert(reflect.TypeFor[AmContext]()).Interface().(AmContext)
|
||||
level := ctxt.CurrentUser().BaseLevel
|
||||
mbr, _, clevel, err := comm.Membership(ctxt.CurrentUser())
|
||||
if err == nil {
|
||||
if mbr && clevel > level {
|
||||
level = clevel
|
||||
}
|
||||
showHidden = comm.TestPermission("Community.ShowHiddenMembers", level)
|
||||
}
|
||||
count, err := comm.MemberCount(showHidden)
|
||||
if err != nil {
|
||||
return reflect.ValueOf(-1)
|
||||
}
|
||||
return reflect.ValueOf(count)
|
||||
}
|
||||
|
||||
// SetupTemplates is called to set up the template renderer after the configuration is loaded.
|
||||
func SetupTemplates() {
|
||||
views = jet.NewSet(
|
||||
@@ -122,17 +151,19 @@ func SetupTemplates() {
|
||||
views.AddGlobalFunc("MakeIntRange", makeIntRange)
|
||||
views.AddGlobalFunc("MakeYearRange", makeYearRange)
|
||||
views.AddGlobalFunc("ExtractCommunityLogo", extractCommunityLogo)
|
||||
views.AddGlobalFunc("DisplayActivity", displayActivity)
|
||||
views.AddGlobalFunc("DisplayMemberCount", displayMemberCount)
|
||||
|
||||
views.AddGlobalFunc("GetCountryList", func(a jet.Arguments) reflect.Value {
|
||||
views.AddGlobalFunc("GetCountryList", func(jet.Arguments) reflect.Value {
|
||||
return reflect.ValueOf(util.AmCountryList())
|
||||
})
|
||||
views.AddGlobalFunc("GetLanguageList", func(a jet.Arguments) reflect.Value {
|
||||
views.AddGlobalFunc("GetLanguageList", func(jet.Arguments) reflect.Value {
|
||||
return reflect.ValueOf(util.AmLanguageList())
|
||||
})
|
||||
views.AddGlobalFunc("GetTimeZoneList", func(a jet.Arguments) reflect.Value {
|
||||
views.AddGlobalFunc("GetTimeZoneList", func(jet.Arguments) reflect.Value {
|
||||
return reflect.ValueOf(util.AmTimeZoneList())
|
||||
})
|
||||
views.AddGlobalFunc("GetMonthList", func(a jet.Arguments) reflect.Value {
|
||||
views.AddGlobalFunc("GetMonthList", func(jet.Arguments) reflect.Value {
|
||||
return reflect.ValueOf(util.AmMonthList())
|
||||
})
|
||||
views.AddGlobalFunc("AmMenu", func(a jet.Arguments) reflect.Value {
|
||||
@@ -173,5 +204,9 @@ func (r *TemplateRenderer) Render(w io.Writer, name string, data any, c echo.Con
|
||||
if amctxt != nil {
|
||||
vmap = amctxt.VarMap()
|
||||
}
|
||||
return view.Execute(w, vmap, data)
|
||||
err = view.Execute(w, vmap, data)
|
||||
if err != nil {
|
||||
log.Errorf("Template \"%s\" failed exec: %v", name, err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
+2
-2
@@ -208,7 +208,7 @@
|
||||
{{ h := rx.HostQ() }}
|
||||
<a href="/user/{{ h.Username }}" class="text-blue-700 hover:text-blue-900">{{ h.Username }}</a>
|
||||
<span class="mx-2">-</span>
|
||||
{{ n := rx.MemberCountQ(false) }}
|
||||
{{ n := DisplayMemberCount(rx, .) }}
|
||||
{{ if n == 1 }}
|
||||
<span>1 member</span>
|
||||
{{ else }}
|
||||
@@ -216,7 +216,7 @@
|
||||
{{ end }}
|
||||
</div>
|
||||
<div>
|
||||
<span class="font-medium">Latest activity:</span> [Today, 9:52:48 PM]
|
||||
<span class="font-medium">Latest activity:</span> {{ DisplayActivity(rx.LastAccess, .)}}
|
||||
</div>
|
||||
<div class="italic text-gray-600 mt-2">{{ rx.Synopsis }}</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user