mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-30 22:11:07 +00:00 
			
		
		
		
	Allow labels to contain emoji (#6063)
* Add emoji to labels Minor cleanup of tribute code in footer.tmpl Signed-off-by: jolheiser <john.olheiser@gmail.com> * Quick find/replace in other i18n files containing label translations Signed-off-by: jolheiser <john.olheiser@gmail.com> * Revert "Quick find/replace in other i18n files containing label translations" This reverts commit ec3e1a3a1775989301bb2c1cd08e8871b317688d. * Add style to overwrite emoji height in labels * Revert Makefile change that makes Windows work
This commit is contained in:
		
					parent
					
						
							
								8c8ac1a162
							
						
					
				
			
			
				commit
				
					
						0b72c00fad
					
				
			
		
					 9 changed files with 36 additions and 21 deletions
				
			
		|  | @ -690,8 +690,8 @@ issues.label_templates.info = No labels exist yet. Create a label with 'New Labe | |||
| issues.label_templates.helper = Select a label set | ||||
| issues.label_templates.use = Use Label Set | ||||
| issues.label_templates.fail_to_load_file = Failed to load label template file '%s': %v | ||||
| issues.add_label_at = added the <div class="ui label" style="color: %s\; background-color: %s">%s</div> label %s | ||||
| issues.remove_label_at = removed the <div class="ui label" style="color: %s\; background-color: %s">%s</div> label %s | ||||
| issues.add_label_at = added the <div class="ui label has-emoji" style="color: %s\; background-color: %s">%s</div> label %s | ||||
| issues.remove_label_at = removed the <div class="ui label has-emoji" style="color: %s\; background-color: %s">%s</div> label %s | ||||
| issues.add_milestone_at = `added this to the <b>%s</b> milestone %s` | ||||
| issues.change_milestone_at = `modified the milestone from <b>%s</b> to <b>%s</b> %s` | ||||
| issues.remove_milestone_at = `removed this from the <b>%s</b> milestone %s` | ||||
|  |  | |||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -1,6 +1,10 @@ | |||
| .emoji { | ||||
|     width: 1.5em; | ||||
|     height: 1.5em; | ||||
|     display: inline-block; | ||||
|     background-size: contain; | ||||
| } | ||||
| .emoji { | ||||
|     width: 1.5em; | ||||
|     height: 1.5em; | ||||
|     display: inline-block; | ||||
|     background-size: contain; | ||||
| } | ||||
| 
 | ||||
| .ui.label .emoji { | ||||
|     height: 1.2em !important; | ||||
| } | ||||
|  |  | |||
|  | @ -22,6 +22,7 @@ func Labels(ctx *context.Context) { | |||
| 	ctx.Data["PageIsIssueList"] = true | ||||
| 	ctx.Data["PageIsLabels"] = true | ||||
| 	ctx.Data["RequireMinicolors"] = true | ||||
| 	ctx.Data["RequireTribute"] = true | ||||
| 	ctx.Data["LabelTemplates"] = models.LabelTemplates | ||||
| 	ctx.HTML(200, tplLabels) | ||||
| } | ||||
|  |  | |||
|  | @ -68,8 +68,11 @@ | |||
| 				} | ||||
| 				return itemStr; | ||||
| 			} | ||||
| 		}) | ||||
| 		issuesTribute.attach(document.getElementById('content')) | ||||
| 		}); | ||||
| 		var content = document.getElementById('content'); | ||||
| 		if (content != null) { | ||||
| 			issuesTribute.attach(content); | ||||
| 		} | ||||
| 	</script> | ||||
| 	<script> | ||||
| 		var emojiTribute = new Tribute({ | ||||
|  | @ -93,7 +96,7 @@ | |||
| 					return item; | ||||
| 				}, | ||||
| 				selectTemplate: function (item) { | ||||
| 					if (typeof item === 'undefinied') return null; | ||||
| 					if (typeof item === 'undefined') return null; | ||||
| 					return ':' + item.original + ':'; | ||||
| 				}, | ||||
| 				menuItemTemplate: function (item) { | ||||
|  | @ -101,7 +104,14 @@ | |||
| 				} | ||||
| 			}] | ||||
| 		}); | ||||
| 		emojiTribute.attach(document.getElementById('content')) | ||||
| 		var emojiInputs = document.querySelectorAll('.emoji-input'); | ||||
| 		if (emojiInputs.length > 0) { | ||||
| 			emojiTribute.attach(emojiInputs); | ||||
| 		} | ||||
| 		var content = document.getElementById('content'); | ||||
| 		if (content != null) { | ||||
| 			emojiTribute.attach(document.getElementById('content')); | ||||
| 		} | ||||
| 	</script> | ||||
| {{end}} | ||||
| 	<script src="{{AppSubUrl}}/vendor/plugins/emojify/emojify.min.js"></script> | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ | |||
| 					<div class="ui grid"> | ||||
| 						<div class="three wide column"> | ||||
| 							<div class="ui small input"> | ||||
| 								<input class="new-label-input" name="title" placeholder="{{.i18n.Tr "repo.issues.new_label_placeholder"}}" autofocus required> | ||||
| 								<input class="new-label-input emoji-input" name="title" placeholder="{{.i18n.Tr "repo.issues.new_label_placeholder"}}" autofocus required> | ||||
| 							</div> | ||||
| 						</div> | ||||
| 						<div class="five wide column"> | ||||
|  | @ -98,7 +98,7 @@ | |||
| 				<li class="item"> | ||||
| 					<div class="ui grid"> | ||||
| 						<div class="three wide column"> | ||||
| 							<div class="ui label" style="color: {{.ForegroundColor}}; background-color: {{.Color}}"><i class="octicon octicon-tag"></i> {{.Name}}</div> | ||||
| 							<div class="ui label has-emoji" style="color: {{.ForegroundColor}}; background-color: {{.Color}}"><i class="octicon octicon-tag"></i> {{.Name}}</div> | ||||
| 						</div> | ||||
| 						<div class="seven wide column"> | ||||
| 							{{.Description}} | ||||
|  | @ -151,7 +151,7 @@ | |||
| 				<div class="ui grid"> | ||||
| 					<div class="three wide column"> | ||||
| 						<div class="ui small input"> | ||||
| 							<input class="new-label-input" name="title" placeholder="{{.i18n.Tr "repo.issues.new_label_placeholder"}}" autofocus required> | ||||
| 							<input class="new-label-input emoji-input" name="title" placeholder="{{.i18n.Tr "repo.issues.new_label_placeholder"}}" autofocus required> | ||||
| 						</div> | ||||
| 					</div> | ||||
| 					<div class="five wide column"> | ||||
|  |  | |||
|  | @ -192,7 +192,7 @@ | |||
| 						<a class="ui label" href="{{$.RepoLink}}/src/branch/{{.Ref}}">{{.Ref}}</a> | ||||
| 					{{end}} | ||||
| 					{{range .Labels}} | ||||
| 						<a class="ui label" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}" title="{{.Description}}">{{.Name}}</a> | ||||
| 						<a class="ui label has-emoji" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}" title="{{.Description}}">{{.Name}}</a> | ||||
| 					{{end}} | ||||
| 
 | ||||
| 					{{if .NumComments}} | ||||
|  |  | |||
|  | @ -46,14 +46,14 @@ | |||
| 				<div class="filter menu" data-id="#label_ids"> | ||||
| 					<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_labels"}}</div> | ||||
| 					{{range .Labels}} | ||||
| 						<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon {{if .IsChecked}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a> | ||||
| 						<a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon {{if .IsChecked}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a> | ||||
| 					{{end}} | ||||
| 				</div> | ||||
| 			</div> | ||||
| 			<div class="ui labels list"> | ||||
| 				<span class="no-select item {{if .HasSelectedLabel}}hide{{end}}">{{.i18n.Tr "repo.issues.new.no_label"}}</span> | ||||
| 				{{range .Labels}} | ||||
| 					<a class="{{if not .IsChecked}}hide{{end}} item" id="label_{{.ID}}" href="{{$.RepoLink}}/issues?labels={{.ID}}"><span class="label color" style="background-color: {{.Color}}"></span> <span class="text">{{.Name}}</span></a> | ||||
| 					<a class="{{if not .IsChecked}}hide{{end}} item" id="label_{{.ID}}" href="{{$.RepoLink}}/issues?labels={{.ID}}"><span class="label color" style="background-color: {{.Color}}"></span> <span class="text has-emoji">{{.Name}}</span></a> | ||||
| 				{{end}} | ||||
| 			</div> | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ | |||
| 			<div class="filter menu" data-action="update" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/labels"> | ||||
| 				<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_labels"}}</div> | ||||
| 				{{range .Labels}} | ||||
| 					<a class="{{if .IsChecked}}checked{{end}} item" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon {{if .IsChecked}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}} | ||||
| 					<a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon {{if .IsChecked}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}} | ||||
| 					{{if .Description }}<br><small class="desc">{{.Description}}</small>{{end}}</a> | ||||
| 				{{end}} | ||||
| 			</div> | ||||
|  | @ -19,7 +19,7 @@ | |||
| 			<span class="no-select item {{if .HasSelectedLabel}}hide{{end}}">{{.i18n.Tr "repo.issues.new.no_label"}}</span> | ||||
| 			{{range .Labels}} | ||||
| 				<div class="item"> | ||||
| 					<a class="ui label {{if not .IsChecked}}hide{{end}}" id="label_{{.ID}}" href="{{$.RepoLink}}/issues?labels={{.ID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}" title="{{.Description}}">{{.Name}}</a> | ||||
| 					<a class="ui label has-emoji {{if not .IsChecked}}hide{{end}}" id="label_{{.ID}}" href="{{$.RepoLink}}/issues?labels={{.ID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}" title="{{.Description}}">{{.Name}}</a> | ||||
| 				</div> | ||||
| 
 | ||||
| 			{{end}} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue