diff options
author | silverwind <me@silverwind.io> | 2020-11-25 12:20:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-25 13:20:40 +0200 |
commit | 6d93a3ab182d772543f449073bbea855c3bfb155 (patch) | |
tree | 2575e52175ef1cc2dcacaf54e0d68a104a0c05d8 /modules/templates/helper.go | |
parent | 00ec651270aca19cba9a82fa48e6f7137efdfe1f (diff) | |
download | gitea-6d93a3ab182d772543f449073bbea855c3bfb155.tar.gz gitea-6d93a3ab182d772543f449073bbea855c3bfb155.zip |
Issue and Pulls lists rework (#13594)
* Issue and Pulls lists rework
Reorganized and restyled the issue and pull request lists.
* color and layout tweaks
* use new issue list on dashboard as well
* move pagination into template
* misc tweaks
* fix label hover
* fix milestone list
* fix discrepancies between issue and milestone list, add new 'merge' helper
* fmt
* simplify merge helper
* remove whitespace
* fix startIndex
* further simplify dict merging
* rename helper to 'mergeinto' for clarity
* allow bottom-row to wrap
Co-authored-by: Lauris BH <lauris@nix.lv>
Diffstat (limited to 'modules/templates/helper.go')
-rw-r--r-- | modules/templates/helper.go | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/modules/templates/helper.go b/modules/templates/helper.go index e1c5d5d86b..4e5c96cd0f 100644 --- a/modules/templates/helper.go +++ b/modules/templates/helper.go @@ -256,31 +256,27 @@ func NewFuncMap() []template.FuncMap { "DefaultTheme": func() string { return setting.UI.DefaultTheme }, + // pass key-value pairs to a partial template which receives them as a dict "dict": func(values ...interface{}) (map[string]interface{}, error) { if len(values) == 0 { return nil, errors.New("invalid dict call") } dict := make(map[string]interface{}) + return util.MergeInto(dict, values...) + }, + /* like dict but merge key-value pairs into the first dict and return it */ + "mergeinto": func(root map[string]interface{}, values ...interface{}) (map[string]interface{}, error) { + if len(values) == 0 { + return nil, errors.New("invalid mergeinto call") + } - for i := 0; i < len(values); i++ { - switch key := values[i].(type) { - case string: - i++ - if i == len(values) { - return nil, errors.New("specify the key for non array values") - } - dict[key] = values[i] - case map[string]interface{}: - m := values[i].(map[string]interface{}) - for i, v := range m { - dict[i] = v - } - default: - return nil, errors.New("dict values must be maps") - } + dict := make(map[string]interface{}) + for key, value := range root { + dict[key] = value } - return dict, nil + + return util.MergeInto(dict, values...) }, "percentage": func(n int, values ...int) float32 { var sum = 0 |