mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-23 20:17:03 +01: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
4 changed files with 37 additions and 8 deletions
|
@ -132,6 +132,25 @@ func (label *Label) ForegroundColor() template.CSS {
|
||||||
return template.CSS("#000")
|
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 {
|
func initalizeLabels(e Engine, repoID int64, labelTemplate string) error {
|
||||||
list, err := GetLabelTemplateFile(labelTemplate)
|
list, err := GetLabelTemplateFile(labelTemplate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -64,8 +64,8 @@ var (
|
||||||
// Readmes contains the readme files
|
// Readmes contains the readme files
|
||||||
Readmes []string
|
Readmes []string
|
||||||
|
|
||||||
// LabelTemplates contains the label template files
|
// LabelTemplates contains the label template files and the list of labels for each file
|
||||||
LabelTemplates []string
|
LabelTemplates map[string]string
|
||||||
|
|
||||||
// ItemsPerPage maximum items per page in forks, watchers and stars of a repo
|
// ItemsPerPage maximum items per page in forks, watchers and stars of a repo
|
||||||
ItemsPerPage = 40
|
ItemsPerPage = 40
|
||||||
|
@ -100,11 +100,21 @@ func loadRepoConfig() {
|
||||||
Gitignores = typeFiles[0]
|
Gitignores = typeFiles[0]
|
||||||
Licenses = typeFiles[1]
|
Licenses = typeFiles[1]
|
||||||
Readmes = typeFiles[2]
|
Readmes = typeFiles[2]
|
||||||
LabelTemplates = typeFiles[3]
|
LabelTemplatesFiles := typeFiles[3]
|
||||||
sort.Strings(Gitignores)
|
sort.Strings(Gitignores)
|
||||||
sort.Strings(Licenses)
|
sort.Strings(Licenses)
|
||||||
sort.Strings(Readmes)
|
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.
|
// Filter out invalid names and promote preferred licenses.
|
||||||
sortedLicenses := make([]string, 0, len(Licenses))
|
sortedLicenses := make([]string, 0, len(Licenses))
|
||||||
|
|
|
@ -109,8 +109,8 @@
|
||||||
<div class="default text">{{.i18n.Tr "repo.issue_labels_helper"}}</div>
|
<div class="default text">{{.i18n.Tr "repo.issue_labels_helper"}}</div>
|
||||||
<div class="menu">
|
<div class="menu">
|
||||||
<div class="item" data-value="">{{.i18n.Tr "repo.issue_labels_helper"}}</div>
|
<div class="item" data-value="">{{.i18n.Tr "repo.issue_labels_helper"}}</div>
|
||||||
{{range .LabelTemplates}}
|
{{range $template, $labels := .LabelTemplates}}
|
||||||
<div class="item" data-value="{{.}}">{{.}}</div>
|
<div class="item" data-value="{{$template}}">{{$template}}<br/><i>({{$labels}})</i></div>
|
||||||
{{end}}
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -79,8 +79,8 @@
|
||||||
<input type="hidden" name="template_name" value="Default">
|
<input type="hidden" name="template_name" value="Default">
|
||||||
<div class="default text">{{.i18n.Tr "repo.issues.label_templates.helper"}}</div>
|
<div class="default text">{{.i18n.Tr "repo.issues.label_templates.helper"}}</div>
|
||||||
<div class="menu">
|
<div class="menu">
|
||||||
{{range .LabelTemplates}}
|
{{range $template, $labels := .LabelTemplates}}
|
||||||
<div class="item" data-value="{{.}}">{{.}}</div>
|
<div class="item" data-value="{{$template}}">{{$template}}<br/><i>({{$labels}})</i></div>
|
||||||
{{end}}
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue