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") | ||||
| } | ||||
| 
 | ||||
| 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