Skip to content

Commit 1583c48

Browse files
oscarcostatechknowlogick
authored andcommitted
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.
1 parent eba816e commit 1583c48

File tree

4 files changed

+37
-8
lines changed

4 files changed

+37
-8
lines changed

models/issue_label.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,25 @@ func (label *Label) ForegroundColor() template.CSS {
132132
return template.CSS("#000")
133133
}
134134

135+
func loadLabels(labelTemplate string) ([]string, error) {
136+
list, err := GetLabelTemplateFile(labelTemplate)
137+
if err != nil {
138+
return nil, ErrIssueLabelTemplateLoad{labelTemplate, err}
139+
}
140+
141+
labels := make([]string, len(list))
142+
for i := 0; i < len(list); i++ {
143+
labels[i] = list[i][0]
144+
}
145+
return labels, nil
146+
}
147+
148+
// LoadLabelsFormatted loads the labels' list of a template file as a string separated by comma
149+
func LoadLabelsFormatted(labelTemplate string) (string, error) {
150+
labels, err := loadLabels(labelTemplate)
151+
return strings.Join(labels, ", "), err
152+
}
153+
135154
func initalizeLabels(e Engine, repoID int64, labelTemplate string) error {
136155
list, err := GetLabelTemplateFile(labelTemplate)
137156
if err != nil {

models/repo.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ var (
6464
// Readmes contains the readme files
6565
Readmes []string
6666

67-
// LabelTemplates contains the label template files
68-
LabelTemplates []string
67+
// LabelTemplates contains the label template files and the list of labels for each file
68+
LabelTemplates map[string]string
6969

7070
// ItemsPerPage maximum items per page in forks, watchers and stars of a repo
7171
ItemsPerPage = 40
@@ -100,11 +100,21 @@ func loadRepoConfig() {
100100
Gitignores = typeFiles[0]
101101
Licenses = typeFiles[1]
102102
Readmes = typeFiles[2]
103-
LabelTemplates = typeFiles[3]
103+
LabelTemplatesFiles := typeFiles[3]
104104
sort.Strings(Gitignores)
105105
sort.Strings(Licenses)
106106
sort.Strings(Readmes)
107-
sort.Strings(LabelTemplates)
107+
sort.Strings(LabelTemplatesFiles)
108+
109+
// Load label templates
110+
LabelTemplates = make(map[string]string)
111+
for _, templateFile := range LabelTemplatesFiles {
112+
labels, err := LoadLabelsFormatted(templateFile)
113+
if err != nil {
114+
log.Error("Failed to load labels: %v", err)
115+
}
116+
LabelTemplates[templateFile] = labels
117+
}
108118

109119
// Filter out invalid names and promote preferred licenses.
110120
sortedLicenses := make([]string, 0, len(Licenses))

templates/repo/create.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@
109109
<div class="default text">{{.i18n.Tr "repo.issue_labels_helper"}}</div>
110110
<div class="menu">
111111
<div class="item" data-value="">{{.i18n.Tr "repo.issue_labels_helper"}}</div>
112-
{{range .LabelTemplates}}
113-
<div class="item" data-value="{{.}}">{{.}}</div>
112+
{{range $template, $labels := .LabelTemplates}}
113+
<div class="item" data-value="{{$template}}">{{$template}}<br/><i>({{$labels}})</i></div>
114114
{{end}}
115115
</div>
116116
</div>

templates/repo/issue/labels.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@
7979
<input type="hidden" name="template_name" value="Default">
8080
<div class="default text">{{.i18n.Tr "repo.issues.label_templates.helper"}}</div>
8181
<div class="menu">
82-
{{range .LabelTemplates}}
83-
<div class="item" data-value="{{.}}">{{.}}</div>
82+
{{range $template, $labels := .LabelTemplates}}
83+
<div class="item" data-value="{{$template}}">{{$template}}<br/><i>({{$labels}})</i></div>
8484
{{end}}
8585
</div>
8686
</div>

0 commit comments

Comments
 (0)