mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-20 04:37:13 +00:00
Show label list on label set (#9251)
* Showing the list of labels of template files #7812 * Returning and logging errors when loading labels * Commenting public method * Change log level in case of error loading labels.
This commit is contained in:
parent
eba816e826
commit
1583c48e3a
|
@ -132,6 +132,25 @@ func (label *Label) ForegroundColor() template.CSS {
|
|||
return template.CSS("#000")
|
||||
}
|
||||
|
||||
func loadLabels(labelTemplate string) ([]string, error) {
|
||||
list, err := GetLabelTemplateFile(labelTemplate)
|
||||
if err != nil {
|
||||
return nil, ErrIssueLabelTemplateLoad{labelTemplate, err}
|
||||
}
|
||||
|
||||
labels := make([]string, len(list))
|
||||
for i := 0; i < len(list); i++ {
|
||||
labels[i] = list[i][0]
|
||||
}
|
||||
return labels, nil
|
||||
}
|
||||
|
||||
// LoadLabelsFormatted loads the labels' list of a template file as a string separated by comma
|
||||
func LoadLabelsFormatted(labelTemplate string) (string, error) {
|
||||
labels, err := loadLabels(labelTemplate)
|
||||
return strings.Join(labels, ", "), err
|
||||
}
|
||||
|
||||
func initalizeLabels(e Engine, repoID int64, labelTemplate string) error {
|
||||
list, err := GetLabelTemplateFile(labelTemplate)
|
||||
if err != nil {
|
||||
|
|
|
@ -64,8 +64,8 @@ var (
|
|||
// Readmes contains the readme files
|
||||
Readmes []string
|
||||
|
||||
// LabelTemplates contains the label template files
|
||||
LabelTemplates []string
|
||||
// LabelTemplates contains the label template files and the list of labels for each file
|
||||
LabelTemplates map[string]string
|
||||
|
||||
// ItemsPerPage maximum items per page in forks, watchers and stars of a repo
|
||||
ItemsPerPage = 40
|
||||
|
@ -100,11 +100,21 @@ func loadRepoConfig() {
|
|||
Gitignores = typeFiles[0]
|
||||
Licenses = typeFiles[1]
|
||||
Readmes = typeFiles[2]
|
||||
LabelTemplates = typeFiles[3]
|
||||
LabelTemplatesFiles := typeFiles[3]
|
||||
sort.Strings(Gitignores)
|
||||
sort.Strings(Licenses)
|
||||
sort.Strings(Readmes)
|
||||
sort.Strings(LabelTemplates)
|
||||
sort.Strings(LabelTemplatesFiles)
|
||||
|
||||
// Load label templates
|
||||
LabelTemplates = make(map[string]string)
|
||||
for _, templateFile := range LabelTemplatesFiles {
|
||||
labels, err := LoadLabelsFormatted(templateFile)
|
||||
if err != nil {
|
||||
log.Error("Failed to load labels: %v", err)
|
||||
}
|
||||
LabelTemplates[templateFile] = labels
|
||||
}
|
||||
|
||||
// Filter out invalid names and promote preferred licenses.
|
||||
sortedLicenses := make([]string, 0, len(Licenses))
|
||||
|
|
|
@ -109,8 +109,8 @@
|
|||
<div class="default text">{{.i18n.Tr "repo.issue_labels_helper"}}</div>
|
||||
<div class="menu">
|
||||
<div class="item" data-value="">{{.i18n.Tr "repo.issue_labels_helper"}}</div>
|
||||
{{range .LabelTemplates}}
|
||||
<div class="item" data-value="{{.}}">{{.}}</div>
|
||||
{{range $template, $labels := .LabelTemplates}}
|
||||
<div class="item" data-value="{{$template}}">{{$template}}<br/><i>({{$labels}})</i></div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -79,8 +79,8 @@
|
|||
<input type="hidden" name="template_name" value="Default">
|
||||
<div class="default text">{{.i18n.Tr "repo.issues.label_templates.helper"}}</div>
|
||||
<div class="menu">
|
||||
{{range .LabelTemplates}}
|
||||
<div class="item" data-value="{{.}}">{{.}}</div>
|
||||
{{range $template, $labels := .LabelTemplates}}
|
||||
<div class="item" data-value="{{$template}}">{{$template}}<br/><i>({{$labels}})</i></div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in a new issue