forked from gitea/gitea
		
	Display owner of a runner as a tooltip instead of static text (#24377)
Before:  After:   --------- Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: Giteabot <teabot@gitea.io> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		
							parent
							
								
									4aec1f87a4
								
							
						
					
					
						commit
						49808136c5
					
				| @ -11,6 +11,7 @@ import ( | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	"code.gitea.io/gitea/models/shared/types" | ||||
| 	user_model "code.gitea.io/gitea/models/user" | ||||
| 	"code.gitea.io/gitea/modules/timeutil" | ||||
| 	"code.gitea.io/gitea/modules/translation" | ||||
| @ -28,7 +29,7 @@ type ActionRunner struct { | ||||
| 	Version     string                 `xorm:"VARCHAR(64)"` | ||||
| 	OwnerID     int64                  `xorm:"index"` // org level runner, 0 means system | ||||
| 	Owner       *user_model.User       `xorm:"-"` | ||||
| 	RepoID      int64                  `xorm:"index"` // repo level runner, if orgid also is zero, then it's a global | ||||
| 	RepoID      int64                  `xorm:"index"` // repo level runner, if OwnerID also is zero, then it's a global | ||||
| 	Repo        *repo_model.Repository `xorm:"-"` | ||||
| 	Description string                 `xorm:"TEXT"` | ||||
| 	Base        int                    // 0 native 1 docker 2 virtual machine | ||||
| @ -52,14 +53,25 @@ type ActionRunner struct { | ||||
| 	Deleted timeutil.TimeStamp `xorm:"deleted"` | ||||
| } | ||||
| 
 | ||||
| func (r *ActionRunner) OwnType() string { | ||||
| // BelongsToOwnerName before calling, should guarantee that all attributes are loaded | ||||
| func (r *ActionRunner) BelongsToOwnerName() string { | ||||
| 	if r.RepoID != 0 { | ||||
| 		return fmt.Sprintf("Repo(%s)", r.Repo.FullName()) | ||||
| 		return r.Repo.FullName() | ||||
| 	} | ||||
| 	if r.OwnerID != 0 { | ||||
| 		return fmt.Sprintf("Org(%s)", r.Owner.Name) | ||||
| 		return r.Owner.Name | ||||
| 	} | ||||
| 	return "Global" | ||||
| 	return "" | ||||
| } | ||||
| 
 | ||||
| func (r *ActionRunner) BelongsToOwnerType() types.OwnerType { | ||||
| 	if r.RepoID != 0 { | ||||
| 		return types.OwnerTypeRepository | ||||
| 	} | ||||
| 	if r.OwnerID != 0 { | ||||
| 		return types.OwnerTypeOrganization | ||||
| 	} | ||||
| 	return types.OwnerTypeSystemGlobal | ||||
| } | ||||
| 
 | ||||
| func (r *ActionRunner) Status() runnerv1.RunnerStatus { | ||||
|  | ||||
							
								
								
									
										29
									
								
								models/shared/types/ownertype.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								models/shared/types/ownertype.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | ||||
| // Copyright 2023 The Gitea Authors. All rights reserved. | ||||
| // SPDX-License-Identifier: MIT | ||||
| 
 | ||||
| package types | ||||
| 
 | ||||
| import "code.gitea.io/gitea/modules/translation" | ||||
| 
 | ||||
| type OwnerType string | ||||
| 
 | ||||
| const ( | ||||
| 	OwnerTypeSystemGlobal = "system-global" | ||||
| 	OwnerTypeIndividual   = "individual" | ||||
| 	OwnerTypeRepository   = "repository" | ||||
| 	OwnerTypeOrganization = "organization" | ||||
| ) | ||||
| 
 | ||||
| func (o OwnerType) LocaleString(locale translation.Locale) string { | ||||
| 	switch o { | ||||
| 	case OwnerTypeSystemGlobal: | ||||
| 		return locale.Tr("concept_system_global") | ||||
| 	case OwnerTypeIndividual: | ||||
| 		return locale.Tr("concept_user_individual") | ||||
| 	case OwnerTypeRepository: | ||||
| 		return locale.Tr("concept_code_repository") | ||||
| 	case OwnerTypeOrganization: | ||||
| 		return locale.Tr("concept_user_organization") | ||||
| 	} | ||||
| 	return locale.Tr("unknown") | ||||
| } | ||||
| @ -114,6 +114,11 @@ unknown = Unknown | ||||
| 
 | ||||
| rss_feed = RSS Feed | ||||
| 
 | ||||
| concept_system_global = Global | ||||
| concept_user_individual = Individual | ||||
| concept_code_repository = Repository | ||||
| concept_user_organization = Organization | ||||
| 
 | ||||
| [aria] | ||||
| navbar = Navigation Bar | ||||
| footer = Footer | ||||
|  | ||||
| @ -7,15 +7,15 @@ | ||||
| 			{{template "base/disable_form_autofill"}} | ||||
| 			{{.CsrfTokenHtml}} | ||||
| 			<div class="runner-basic-info"> | ||||
| 				<div class="field gt-dib gt-mr-4 disabled"> | ||||
| 				<div class="field gt-dib gt-mr-4"> | ||||
| 					<label>{{.locale.Tr "actions.runners.status"}}</label> | ||||
| 					<span class="runner-status-{{if .Runner.IsOnline}}online{{else}}offline{{end}}">{{.Runner.StatusLocaleName $.locale}}</span> | ||||
| 				</div> | ||||
| 				<div class="field gt-dib gt-mr-4 disabled"> | ||||
| 				<div class="field gt-dib gt-mr-4"> | ||||
| 					<label>{{.locale.Tr "actions.runners.last_online"}}</label> | ||||
| 					<span>{{if .LastOnline}}{{TimeSinceUnix .LastOnline $.locale}}{{else}}{{$.locale.Tr "never"}}{{end}}</span> | ||||
| 				</div> | ||||
| 				<div class="field gt-dib gt-mr-4 disabled"> | ||||
| 				<div class="field gt-dib gt-mr-4"> | ||||
| 					<label>{{.locale.Tr "actions.runners.agent_labels"}}</label> | ||||
| 					<span> | ||||
| 						{{range .Runner.AgentLabels}} | ||||
| @ -23,9 +23,9 @@ | ||||
| 						{{end}} | ||||
| 					</span> | ||||
| 				</div> | ||||
| 				<div class="field gt-dib gt-mr-4 disabled"> | ||||
| 				<div class="field gt-dib gt-mr-4"> | ||||
| 					<label>{{.locale.Tr "actions.runners.owner_type"}}</label> | ||||
| 					<span>{{.Runner.OwnType}}</span> | ||||
| 					<span data-tooltip-content="{{.Runner.BelongsToOwnerName}}">{{.Runner.BelongsToOwnerType.LocaleString $.locale}}</span> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 
 | ||||
|  | ||||
| @ -65,7 +65,7 @@ | ||||
| 						<td>{{.ID}}</td> | ||||
| 						<td><p data-tooltip-content="{{.Description}}">{{.Name}}</p></td> | ||||
| 						<td>{{if .Version}}{{.Version}}{{else}}{{$.locale.Tr "unknown"}}{{end}}</td> | ||||
| 						<td>{{.OwnType}}</td> | ||||
| 						<td><span data-tooltip-content="{{.BelongsToOwnerName}}">{{.BelongsToOwnerType.LocaleString $.locale}}<span></td> | ||||
| 						<td class="runner-tags"> | ||||
| 							{{range .AllLabels}}<span class="ui label">{{.}}</span>{{end}} | ||||
| 						</td> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 yp05327
						yp05327