mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Refactor i18n to locale (#20153)
				
					
				
			* Refactor `i18n` to `locale` - Currently we're using the `i18n` variable naming for the `locale` struct. This contains locale's specific information and cannot be used for general i18n purpose, therefore refactoring it to `locale` makes more sense. - Ref: https://github.com/go-gitea/gitea/pull/20096#discussion_r906699200 * Update routers/install/install.go
This commit is contained in:
		@@ -794,7 +794,7 @@ func Contexter() func(next http.Handler) http.Handler {
 | 
				
			|||||||
			ctx.Data["UnitPullsGlobalDisabled"] = unit.TypePullRequests.UnitGlobalDisabled()
 | 
								ctx.Data["UnitPullsGlobalDisabled"] = unit.TypePullRequests.UnitGlobalDisabled()
 | 
				
			||||||
			ctx.Data["UnitProjectsGlobalDisabled"] = unit.TypeProjects.UnitGlobalDisabled()
 | 
								ctx.Data["UnitProjectsGlobalDisabled"] = unit.TypeProjects.UnitGlobalDisabled()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			ctx.Data["i18n"] = locale
 | 
								ctx.Data["locale"] = locale
 | 
				
			||||||
			ctx.Data["AllLangs"] = translation.AllLangs()
 | 
								ctx.Data["AllLangs"] = translation.AllLangs()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			next.ServeHTTP(ctx.Resp, ctx.Req)
 | 
								next.ServeHTTP(ctx.Resp, ctx.Req)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -69,7 +69,7 @@ func Init(next http.Handler) http.Handler {
 | 
				
			|||||||
			Render:  rnd,
 | 
								Render:  rnd,
 | 
				
			||||||
			Session: session.GetSession(req),
 | 
								Session: session.GetSession(req),
 | 
				
			||||||
			Data: map[string]interface{}{
 | 
								Data: map[string]interface{}{
 | 
				
			||||||
				"i18n":          locale,
 | 
									"locale":        locale,
 | 
				
			||||||
				"Title":         locale.Tr("install.install"),
 | 
									"Title":         locale.Tr("install.install"),
 | 
				
			||||||
				"PageIsInstall": true,
 | 
									"PageIsInstall": true,
 | 
				
			||||||
				"DbTypeNames":   dbTypeNames,
 | 
									"DbTypeNames":   dbTypeNames,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -57,7 +57,7 @@ func installRecovery() func(next http.Handler) http.Handler {
 | 
				
			|||||||
					store := dataStore{
 | 
										store := dataStore{
 | 
				
			||||||
						"Language":       lc.Language(),
 | 
											"Language":       lc.Language(),
 | 
				
			||||||
						"CurrentURL":     setting.AppSubURL + req.URL.RequestURI(),
 | 
											"CurrentURL":     setting.AppSubURL + req.URL.RequestURI(),
 | 
				
			||||||
						"i18n":           lc,
 | 
											"locale":         lc,
 | 
				
			||||||
						"SignedUserID":   int64(0),
 | 
											"SignedUserID":   int64(0),
 | 
				
			||||||
						"SignedUserName": "",
 | 
											"SignedUserName": "",
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -139,7 +139,7 @@ func Recovery() func(next http.Handler) http.Handler {
 | 
				
			|||||||
					store := dataStore{
 | 
										store := dataStore{
 | 
				
			||||||
						"Language":   lc.Language(),
 | 
											"Language":   lc.Language(),
 | 
				
			||||||
						"CurrentURL": setting.AppSubURL + req.URL.RequestURI(),
 | 
											"CurrentURL": setting.AppSubURL + req.URL.RequestURI(),
 | 
				
			||||||
						"i18n":       lc,
 | 
											"locale":     lc,
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					user := context.GetContextUser(req)
 | 
										user := context.GetContextUser(req)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -80,7 +80,7 @@ func sendUserMail(language string, u *user_model.User, tpl base.TplName, code, s
 | 
				
			|||||||
		"Code":              code,
 | 
							"Code":              code,
 | 
				
			||||||
		"Language":          locale.Language(),
 | 
							"Language":          locale.Language(),
 | 
				
			||||||
		// helper
 | 
							// helper
 | 
				
			||||||
		"i18n":      locale,
 | 
							"locale":    locale,
 | 
				
			||||||
		"Str2html":  templates.Str2html,
 | 
							"Str2html":  templates.Str2html,
 | 
				
			||||||
		"DotEscape": templates.DotEscape,
 | 
							"DotEscape": templates.DotEscape,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -131,7 +131,7 @@ func SendActivateEmailMail(u *user_model.User, email *user_model.EmailAddress) {
 | 
				
			|||||||
		"Email":           email.Email,
 | 
							"Email":           email.Email,
 | 
				
			||||||
		"Language":        locale.Language(),
 | 
							"Language":        locale.Language(),
 | 
				
			||||||
		// helper
 | 
							// helper
 | 
				
			||||||
		"i18n":      locale,
 | 
							"locale":    locale,
 | 
				
			||||||
		"Str2html":  templates.Str2html,
 | 
							"Str2html":  templates.Str2html,
 | 
				
			||||||
		"DotEscape": templates.DotEscape,
 | 
							"DotEscape": templates.DotEscape,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -162,7 +162,7 @@ func SendRegisterNotifyMail(u *user_model.User) {
 | 
				
			|||||||
		"Username":    u.Name,
 | 
							"Username":    u.Name,
 | 
				
			||||||
		"Language":    locale.Language(),
 | 
							"Language":    locale.Language(),
 | 
				
			||||||
		// helper
 | 
							// helper
 | 
				
			||||||
		"i18n":      locale,
 | 
							"locale":    locale,
 | 
				
			||||||
		"Str2html":  templates.Str2html,
 | 
							"Str2html":  templates.Str2html,
 | 
				
			||||||
		"DotEscape": templates.DotEscape,
 | 
							"DotEscape": templates.DotEscape,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -196,7 +196,7 @@ func SendCollaboratorMail(u, doer *user_model.User, repo *repo_model.Repository)
 | 
				
			|||||||
		"Link":     repo.HTMLURL(),
 | 
							"Link":     repo.HTMLURL(),
 | 
				
			||||||
		"Language": locale.Language(),
 | 
							"Language": locale.Language(),
 | 
				
			||||||
		// helper
 | 
							// helper
 | 
				
			||||||
		"i18n":      locale,
 | 
							"locale":    locale,
 | 
				
			||||||
		"Str2html":  templates.Str2html,
 | 
							"Str2html":  templates.Str2html,
 | 
				
			||||||
		"DotEscape": templates.DotEscape,
 | 
							"DotEscape": templates.DotEscape,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -281,7 +281,7 @@ func composeIssueCommentMessages(ctx *mailCommentContext, lang string, recipient
 | 
				
			|||||||
		"ReviewComments":  reviewComments,
 | 
							"ReviewComments":  reviewComments,
 | 
				
			||||||
		"Language":        locale.Language(),
 | 
							"Language":        locale.Language(),
 | 
				
			||||||
		// helper
 | 
							// helper
 | 
				
			||||||
		"i18n":      locale,
 | 
							"locale":    locale,
 | 
				
			||||||
		"Str2html":  templates.Str2html,
 | 
							"Str2html":  templates.Str2html,
 | 
				
			||||||
		"DotEscape": templates.DotEscape,
 | 
							"DotEscape": templates.DotEscape,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -75,7 +75,7 @@ func mailNewRelease(ctx context.Context, lang string, tos []string, rel *models.
 | 
				
			|||||||
		"Subject":  subject,
 | 
							"Subject":  subject,
 | 
				
			||||||
		"Language": locale.Language(),
 | 
							"Language": locale.Language(),
 | 
				
			||||||
		// helper
 | 
							// helper
 | 
				
			||||||
		"i18n":      locale,
 | 
							"locale":    locale,
 | 
				
			||||||
		"Str2html":  templates.Str2html,
 | 
							"Str2html":  templates.Str2html,
 | 
				
			||||||
		"DotEscape": templates.DotEscape,
 | 
							"DotEscape": templates.DotEscape,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,7 +74,7 @@ func sendRepoTransferNotifyMailPerLang(lang string, newOwner, doer *user_model.U
 | 
				
			|||||||
		"Language":    locale.Language(),
 | 
							"Language":    locale.Language(),
 | 
				
			||||||
		"Destination": destination,
 | 
							"Destination": destination,
 | 
				
			||||||
		// helper
 | 
							// helper
 | 
				
			||||||
		"i18n":      locale,
 | 
							"locale":    locale,
 | 
				
			||||||
		"Str2html":  templates.Str2html,
 | 
							"Str2html":  templates.Str2html,
 | 
				
			||||||
		"DotEscape": templates.DotEscape,
 | 
							"DotEscape": templates.DotEscape,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.auths.edit"}}
 | 
								{{.locale.Tr "admin.auths.edit"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<form class="ui form" action="{{.Link}}" method="post">
 | 
								<form class="ui form" action="{{.Link}}" method="post">
 | 
				
			||||||
@@ -12,12 +12,12 @@
 | 
				
			|||||||
				{{.CsrfTokenHtml}}
 | 
									{{.CsrfTokenHtml}}
 | 
				
			||||||
				<input type="hidden" name="id" value="{{.Source.ID}}">
 | 
									<input type="hidden" name="id" value="{{.Source.ID}}">
 | 
				
			||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<label>{{$.i18n.Tr "admin.auths.auth_type"}}</label>
 | 
										<label>{{$.locale.Tr "admin.auths.auth_type"}}</label>
 | 
				
			||||||
					<input type="hidden" id="auth_type" name="type" value="{{.Source.Type.Int}}">
 | 
										<input type="hidden" id="auth_type" name="type" value="{{.Source.Type.Int}}">
 | 
				
			||||||
					<span>{{.Source.TypeName}}</span>
 | 
										<span>{{.Source.TypeName}}</span>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="required inline field {{if .Err_Name}}error{{end}}">
 | 
									<div class="required inline field {{if .Err_Name}}error{{end}}">
 | 
				
			||||||
					<label for="name">{{.i18n.Tr "admin.auths.auth_name"}}</label>
 | 
										<label for="name">{{.locale.Tr "admin.auths.auth_name"}}</label>
 | 
				
			||||||
					<input id="name" name="name" value="{{.Source.Name}}" autofocus required>
 | 
										<input id="name" name="name" value="{{.Source.Name}}" autofocus required>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -25,7 +25,7 @@
 | 
				
			|||||||
				{{if or .Source.IsLDAP .Source.IsDLDAP}}
 | 
									{{if or .Source.IsLDAP .Source.IsDLDAP}}
 | 
				
			||||||
					{{ $cfg:=.Source.Cfg }}
 | 
										{{ $cfg:=.Source.Cfg }}
 | 
				
			||||||
					<div class="inline required field {{if .Err_SecurityProtocol}}error{{end}}">
 | 
										<div class="inline required field {{if .Err_SecurityProtocol}}error{{end}}">
 | 
				
			||||||
						<label>{{.i18n.Tr "admin.auths.security_protocol"}}</label>
 | 
											<label>{{.locale.Tr "admin.auths.security_protocol"}}</label>
 | 
				
			||||||
						<div class="ui selection security-protocol dropdown">
 | 
											<div class="ui selection security-protocol dropdown">
 | 
				
			||||||
							<input type="hidden" id="security_protocol" name="security_protocol" value="{{$cfg.SecurityProtocol.Int}}">
 | 
												<input type="hidden" id="security_protocol" name="security_protocol" value="{{$cfg.SecurityProtocol.Int}}">
 | 
				
			||||||
							<div class="text">{{$cfg.SecurityProtocolName}}</div>
 | 
												<div class="text">{{$cfg.SecurityProtocolName}}</div>
 | 
				
			||||||
@@ -38,74 +38,74 @@
 | 
				
			|||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="required field">
 | 
										<div class="required field">
 | 
				
			||||||
						<label for="host">{{.i18n.Tr "admin.auths.host"}}</label>
 | 
											<label for="host">{{.locale.Tr "admin.auths.host"}}</label>
 | 
				
			||||||
						<input id="host" name="host" value="{{$cfg.Host}}" placeholder="e.g. mydomain.com" required>
 | 
											<input id="host" name="host" value="{{$cfg.Host}}" placeholder="e.g. mydomain.com" required>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="required field">
 | 
										<div class="required field">
 | 
				
			||||||
						<label for="port">{{.i18n.Tr "admin.auths.port"}}</label>
 | 
											<label for="port">{{.locale.Tr "admin.auths.port"}}</label>
 | 
				
			||||||
						<input id="port" name="port" value="{{$cfg.Port}}"  placeholder="e.g. 636" required>
 | 
											<input id="port" name="port" value="{{$cfg.Port}}"  placeholder="e.g. 636" required>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="has-tls inline field {{if not .HasTLS}}hide{{end}}">
 | 
										<div class="has-tls inline field {{if not .HasTLS}}hide{{end}}">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label><strong>{{.i18n.Tr "admin.auths.skip_tls_verify"}}</strong></label>
 | 
												<label><strong>{{.locale.Tr "admin.auths.skip_tls_verify"}}</strong></label>
 | 
				
			||||||
							<input name="skip_verify" type="checkbox" {{if .Source.SkipVerify}}checked{{end}}>
 | 
												<input name="skip_verify" type="checkbox" {{if .Source.SkipVerify}}checked{{end}}>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					{{if .Source.IsLDAP}}
 | 
										{{if .Source.IsLDAP}}
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label for="bind_dn">{{.i18n.Tr "admin.auths.bind_dn"}}</label>
 | 
												<label for="bind_dn">{{.locale.Tr "admin.auths.bind_dn"}}</label>
 | 
				
			||||||
							<input id="bind_dn" name="bind_dn" value="{{$cfg.BindDN}}" placeholder="e.g. cn=Search,dc=mydomain,dc=com">
 | 
												<input id="bind_dn" name="bind_dn" value="{{$cfg.BindDN}}" placeholder="e.g. cn=Search,dc=mydomain,dc=com">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label for="bind_password">{{.i18n.Tr "admin.auths.bind_password"}}</label>
 | 
												<label for="bind_password">{{.locale.Tr "admin.auths.bind_password"}}</label>
 | 
				
			||||||
							<input id="bind_password" name="bind_password" type="password" value="{{$cfg.BindPassword}}">
 | 
												<input id="bind_password" name="bind_password" type="password" value="{{$cfg.BindPassword}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					<div class="{{if .Source.IsLDAP}}required{{end}} field">
 | 
										<div class="{{if .Source.IsLDAP}}required{{end}} field">
 | 
				
			||||||
							<label for="user_base">{{.i18n.Tr "admin.auths.user_base"}}</label>
 | 
												<label for="user_base">{{.locale.Tr "admin.auths.user_base"}}</label>
 | 
				
			||||||
							<input id="user_base" name="user_base" value="{{$cfg.UserBase}}" placeholder="e.g. ou=Users,dc=mydomain,dc=com" {{if .Source.IsLDAP}}required{{end}}>
 | 
												<input id="user_base" name="user_base" value="{{$cfg.UserBase}}" placeholder="e.g. ou=Users,dc=mydomain,dc=com" {{if .Source.IsLDAP}}required{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					{{if .Source.IsDLDAP}}
 | 
										{{if .Source.IsDLDAP}}
 | 
				
			||||||
						<div class="required field">
 | 
											<div class="required field">
 | 
				
			||||||
							<label for="user_dn">{{.i18n.Tr "admin.auths.user_dn"}}</label>
 | 
												<label for="user_dn">{{.locale.Tr "admin.auths.user_dn"}}</label>
 | 
				
			||||||
							<input id="user_dn" name="user_dn" value="{{$cfg.UserDN}}" placeholder="e.g. uid=%s,ou=Users,dc=mydomain,dc=com" required>
 | 
												<input id="user_dn" name="user_dn" value="{{$cfg.UserDN}}" placeholder="e.g. uid=%s,ou=Users,dc=mydomain,dc=com" required>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					<div class="required field">
 | 
										<div class="required field">
 | 
				
			||||||
						<label for="filter">{{.i18n.Tr "admin.auths.filter"}}</label>
 | 
											<label for="filter">{{.locale.Tr "admin.auths.filter"}}</label>
 | 
				
			||||||
						<input id="filter" name="filter" value="{{$cfg.Filter}}" placeholder="e.g. (&(objectClass=posixAccount)(uid=%s))" required>
 | 
											<input id="filter" name="filter" value="{{$cfg.Filter}}" placeholder="e.g. (&(objectClass=posixAccount)(uid=%s))" required>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="admin_filter">{{.i18n.Tr "admin.auths.admin_filter"}}</label>
 | 
											<label for="admin_filter">{{.locale.Tr "admin.auths.admin_filter"}}</label>
 | 
				
			||||||
						<input id="admin_filter" name="admin_filter" value="{{$cfg.AdminFilter}}">
 | 
											<input id="admin_filter" name="admin_filter" value="{{$cfg.AdminFilter}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="restricted_filter">{{.i18n.Tr "admin.auths.restricted_filter"}}</label>
 | 
											<label for="restricted_filter">{{.locale.Tr "admin.auths.restricted_filter"}}</label>
 | 
				
			||||||
						<input id="restricted_filter" name="restricted_filter" value="{{$cfg.RestrictedFilter}}">
 | 
											<input id="restricted_filter" name="restricted_filter" value="{{$cfg.RestrictedFilter}}">
 | 
				
			||||||
						<p class="help">{{.i18n.Tr "admin.auths.restricted_filter_helper"}}</p>
 | 
											<p class="help">{{.locale.Tr "admin.auths.restricted_filter_helper"}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="attribute_username">{{.i18n.Tr "admin.auths.attribute_username"}}</label>
 | 
											<label for="attribute_username">{{.locale.Tr "admin.auths.attribute_username"}}</label>
 | 
				
			||||||
						<input id="attribute_username" name="attribute_username" value="{{$cfg.AttributeUsername}}" placeholder="{{.i18n.Tr "admin.auths.attribute_username_placeholder"}}">
 | 
											<input id="attribute_username" name="attribute_username" value="{{$cfg.AttributeUsername}}" placeholder="{{.locale.Tr "admin.auths.attribute_username_placeholder"}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="attribute_name">{{.i18n.Tr "admin.auths.attribute_name"}}</label>
 | 
											<label for="attribute_name">{{.locale.Tr "admin.auths.attribute_name"}}</label>
 | 
				
			||||||
						<input id="attribute_name" name="attribute_name" value="{{$cfg.AttributeName}}">
 | 
											<input id="attribute_name" name="attribute_name" value="{{$cfg.AttributeName}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="attribute_surname">{{.i18n.Tr "admin.auths.attribute_surname"}}</label>
 | 
											<label for="attribute_surname">{{.locale.Tr "admin.auths.attribute_surname"}}</label>
 | 
				
			||||||
						<input id="attribute_surname" name="attribute_surname" value="{{$cfg.AttributeSurname}}">
 | 
											<input id="attribute_surname" name="attribute_surname" value="{{$cfg.AttributeSurname}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="required field">
 | 
										<div class="required field">
 | 
				
			||||||
						<label for="attribute_mail">{{.i18n.Tr "admin.auths.attribute_mail"}}</label>
 | 
											<label for="attribute_mail">{{.locale.Tr "admin.auths.attribute_mail"}}</label>
 | 
				
			||||||
						<input id="attribute_mail" name="attribute_mail" value="{{$cfg.AttributeMail}}" placeholder="e.g. mail" required>
 | 
											<input id="attribute_mail" name="attribute_mail" value="{{$cfg.AttributeMail}}" placeholder="e.g. mail" required>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="attribute_ssh_public_key">{{.i18n.Tr "admin.auths.attribute_ssh_public_key"}}</label>
 | 
											<label for="attribute_ssh_public_key">{{.locale.Tr "admin.auths.attribute_ssh_public_key"}}</label>
 | 
				
			||||||
						<input id="attribute_ssh_public_key" name="attribute_ssh_public_key" value="{{$cfg.AttributeSSHPublicKey}}" placeholder="e.g. SshPublicKey">
 | 
											<input id="attribute_ssh_public_key" name="attribute_ssh_public_key" value="{{$cfg.AttributeSSHPublicKey}}" placeholder="e.g. SshPublicKey">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="attribute_avatar">{{.i18n.Tr "admin.auths.attribute_avatar"}}</label>
 | 
											<label for="attribute_avatar">{{.locale.Tr "admin.auths.attribute_avatar"}}</label>
 | 
				
			||||||
						<input id="attribute_avatar" name="attribute_avatar" value="{{$cfg.AttributeAvatar}}" placeholder="e.g. jpegPhoto">
 | 
											<input id="attribute_avatar" name="attribute_avatar" value="{{$cfg.AttributeAvatar}}" placeholder="e.g. jpegPhoto">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -113,33 +113,33 @@
 | 
				
			|||||||
					<!-- ldap group begin -->
 | 
										<!-- ldap group begin -->
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label><strong>{{.i18n.Tr "admin.auths.enable_ldap_groups"}}</strong></label>
 | 
												<label><strong>{{.locale.Tr "admin.auths.enable_ldap_groups"}}</strong></label>
 | 
				
			||||||
							<input type="checkbox" name="groups_enabled" class="js-ldap-group-toggle" {{if $cfg.GroupsEnabled}}checked{{end}}>
 | 
												<input type="checkbox" name="groups_enabled" class="js-ldap-group-toggle" {{if $cfg.GroupsEnabled}}checked{{end}}>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div id="ldap-group-options" class="ui segment secondary" {{if not $cfg.GroupsEnabled}}hidden{{end}}>
 | 
										<div id="ldap-group-options" class="ui segment secondary" {{if not $cfg.GroupsEnabled}}hidden{{end}}>
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label>{{.i18n.Tr "admin.auths.group_search_base"}}</label>
 | 
												<label>{{.locale.Tr "admin.auths.group_search_base"}}</label>
 | 
				
			||||||
							<input name="group_dn" value="{{$cfg.GroupDN}}" placeholder="e.g. ou=group,dc=mydomain,dc=com">
 | 
												<input name="group_dn" value="{{$cfg.GroupDN}}" placeholder="e.g. ou=group,dc=mydomain,dc=com">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label>{{.i18n.Tr "admin.auths.group_attribute_list_users"}}</label>
 | 
												<label>{{.locale.Tr "admin.auths.group_attribute_list_users"}}</label>
 | 
				
			||||||
							<input name="group_member_uid" value="{{$cfg.GroupMemberUID}}" placeholder="e.g. memberUid">
 | 
												<input name="group_member_uid" value="{{$cfg.GroupMemberUID}}" placeholder="e.g. memberUid">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label>{{.i18n.Tr "admin.auths.user_attribute_in_group"}}</label>
 | 
												<label>{{.locale.Tr "admin.auths.user_attribute_in_group"}}</label>
 | 
				
			||||||
							<input name="user_uid" value="{{$cfg.UserUID}}" placeholder="e.g. uid">
 | 
												<input name="user_uid" value="{{$cfg.UserUID}}" placeholder="e.g. uid">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label>{{.i18n.Tr "admin.auths.verify_group_membership"}}</label>
 | 
												<label>{{.locale.Tr "admin.auths.verify_group_membership"}}</label>
 | 
				
			||||||
							<input name="group_filter" value="{{$cfg.GroupFilter}}" placeholder="e.g. (|(cn=gitea_users)(cn=admins))">
 | 
												<input name="group_filter" value="{{$cfg.GroupFilter}}" placeholder="e.g. (|(cn=gitea_users)(cn=admins))">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label>{{.i18n.Tr "admin.auths.map_group_to_team"}}</label>
 | 
												<label>{{.locale.Tr "admin.auths.map_group_to_team"}}</label>
 | 
				
			||||||
							<input name="group_team_map" value="{{$cfg.GroupTeamMap}}" placeholder='e.g. {"cn=my-group,cn=groups,dc=example,dc=org": {"MyGiteaOrganization": ["MyGiteaTeam1", "MyGiteaTeam2"]}}'>
 | 
												<input name="group_team_map" value="{{$cfg.GroupTeamMap}}" placeholder='e.g. {"cn=my-group,cn=groups,dc=example,dc=org": {"MyGiteaOrganization": ["MyGiteaTeam1", "MyGiteaTeam2"]}}'>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label>{{.i18n.Tr "admin.auths.map_group_to_team_removal"}}</label>
 | 
												<label>{{.locale.Tr "admin.auths.map_group_to_team_removal"}}</label>
 | 
				
			||||||
							<input name="group_team_map_removal" type="checkbox" {{if $cfg.GroupTeamMapRemoval}}checked{{end}}>
 | 
												<input name="group_team_map_removal" type="checkbox" {{if $cfg.GroupTeamMapRemoval}}checked{{end}}>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
@@ -148,31 +148,31 @@
 | 
				
			|||||||
					{{if .Source.IsLDAP}}
 | 
										{{if .Source.IsLDAP}}
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label for="use_paged_search"><strong>{{.i18n.Tr "admin.auths.use_paged_search"}}</strong></label>
 | 
													<label for="use_paged_search"><strong>{{.locale.Tr "admin.auths.use_paged_search"}}</strong></label>
 | 
				
			||||||
								<input id="use_paged_search" name="use_paged_search" type="checkbox" {{if $cfg.UsePagedSearch}}checked{{end}}>
 | 
													<input id="use_paged_search" name="use_paged_search" type="checkbox" {{if $cfg.UsePagedSearch}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field required search-page-size{{if not $cfg.UsePagedSearch}} hide{{end}}">
 | 
											<div class="field required search-page-size{{if not $cfg.UsePagedSearch}} hide{{end}}">
 | 
				
			||||||
							<label for="search_page_size">{{.i18n.Tr "admin.auths.search_page_size"}}</label>
 | 
												<label for="search_page_size">{{.locale.Tr "admin.auths.search_page_size"}}</label>
 | 
				
			||||||
							<input id="search_page_size" name="search_page_size" value="{{if $cfg.UsePagedSearch}}{{$cfg.SearchPageSize}}{{end}}">
 | 
												<input id="search_page_size" name="search_page_size" value="{{if $cfg.UsePagedSearch}}{{$cfg.SearchPageSize}}{{end}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label><strong>{{.i18n.Tr "admin.auths.attributes_in_bind"}}</strong></label>
 | 
													<label><strong>{{.locale.Tr "admin.auths.attributes_in_bind"}}</strong></label>
 | 
				
			||||||
								<input name="attributes_in_bind" type="checkbox" {{if $cfg.AttributesInBind}}checked{{end}}>
 | 
													<input name="attributes_in_bind" type="checkbox" {{if $cfg.AttributesInBind}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					<div class="optional field">
 | 
										<div class="optional field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label for="skip_local_two_fa"><strong>{{.i18n.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
												<label for="skip_local_two_fa"><strong>{{.locale.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
				
			||||||
							<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if $cfg.SkipLocalTwoFA}}checked{{end}}>
 | 
												<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if $cfg.SkipLocalTwoFA}}checked{{end}}>
 | 
				
			||||||
							<p class="help">{{.i18n.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
												<p class="help">{{.locale.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label for="allow_deactivate_all"><strong>{{.i18n.Tr "admin.auths.allow_deactivate_all"}}</strong></label>
 | 
												<label for="allow_deactivate_all"><strong>{{.locale.Tr "admin.auths.allow_deactivate_all"}}</strong></label>
 | 
				
			||||||
							<input id="allow_deactivate_all" name="allow_deactivate_all" type="checkbox" {{if $cfg.AllowDeactivateAll}}checked{{end}}>
 | 
												<input id="allow_deactivate_all" name="allow_deactivate_all" type="checkbox" {{if $cfg.AllowDeactivateAll}}checked{{end}}>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
@@ -182,7 +182,7 @@
 | 
				
			|||||||
				{{if .Source.IsSMTP}}
 | 
									{{if .Source.IsSMTP}}
 | 
				
			||||||
					{{ $cfg:=.Source.Cfg }}
 | 
										{{ $cfg:=.Source.Cfg }}
 | 
				
			||||||
					<div class="inline required field">
 | 
										<div class="inline required field">
 | 
				
			||||||
						<label>{{.i18n.Tr "admin.auths.smtp_auth"}}</label>
 | 
											<label>{{.locale.Tr "admin.auths.smtp_auth"}}</label>
 | 
				
			||||||
						<div class="ui selection type dropdown">
 | 
											<div class="ui selection type dropdown">
 | 
				
			||||||
							<input type="hidden" id="smtp_auth" name="smtp_auth" value="{{$cfg.Auth}}" required>
 | 
												<input type="hidden" id="smtp_auth" name="smtp_auth" value="{{$cfg.Auth}}" required>
 | 
				
			||||||
							<div class="text">{{$cfg.Auth}}</div>
 | 
												<div class="text">{{$cfg.Auth}}</div>
 | 
				
			||||||
@@ -195,47 +195,47 @@
 | 
				
			|||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="required field">
 | 
										<div class="required field">
 | 
				
			||||||
						<label for="smtp_host">{{.i18n.Tr "admin.auths.smtphost"}}</label>
 | 
											<label for="smtp_host">{{.locale.Tr "admin.auths.smtphost"}}</label>
 | 
				
			||||||
						<input id="smtp_host" name="smtp_host" value="{{$cfg.Host}}" required>
 | 
											<input id="smtp_host" name="smtp_host" value="{{$cfg.Host}}" required>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="required field">
 | 
										<div class="required field">
 | 
				
			||||||
						<label for="smtp_port">{{.i18n.Tr "admin.auths.smtpport"}}</label>
 | 
											<label for="smtp_port">{{.locale.Tr "admin.auths.smtpport"}}</label>
 | 
				
			||||||
						<input id="smtp_port" name="smtp_port" value="{{$cfg.Port}}" required>
 | 
											<input id="smtp_port" name="smtp_port" value="{{$cfg.Port}}" required>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label for="force_smtps"><strong>{{.i18n.Tr "admin.auths.force_smtps"}}</strong></label>
 | 
												<label for="force_smtps"><strong>{{.locale.Tr "admin.auths.force_smtps"}}</strong></label>
 | 
				
			||||||
							<input id="force_smtps" name="force_smtps" type="checkbox" {{if $cfg.ForceSMTPS}}checked{{end}}>
 | 
												<input id="force_smtps" name="force_smtps" type="checkbox" {{if $cfg.ForceSMTPS}}checked{{end}}>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<p class="help">{{.i18n.Tr "admin.auths.force_smtps_helper"}}</p>
 | 
											<p class="help">{{.locale.Tr "admin.auths.force_smtps_helper"}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="has-tls inline field {{if not .HasTLS}}hide{{end}}">
 | 
										<div class="has-tls inline field {{if not .HasTLS}}hide{{end}}">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label><strong>{{.i18n.Tr "admin.auths.skip_tls_verify"}}</strong></label>
 | 
												<label><strong>{{.locale.Tr "admin.auths.skip_tls_verify"}}</strong></label>
 | 
				
			||||||
							<input name="skip_verify" type="checkbox" {{if .Source.SkipVerify}}checked{{end}}>
 | 
												<input name="skip_verify" type="checkbox" {{if .Source.SkipVerify}}checked{{end}}>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="helo_hostname">{{.i18n.Tr "admin.auths.helo_hostname"}}</label>
 | 
											<label for="helo_hostname">{{.locale.Tr "admin.auths.helo_hostname"}}</label>
 | 
				
			||||||
						<input id="helo_hostname" name="helo_hostname" value="{{$cfg.HeloHostname}}">
 | 
											<input id="helo_hostname" name="helo_hostname" value="{{$cfg.HeloHostname}}">
 | 
				
			||||||
						<p class="help">{{.i18n.Tr "admin.auths.helo_hostname_helper"}}</p>
 | 
											<p class="help">{{.locale.Tr "admin.auths.helo_hostname_helper"}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label for="disable_helo"><strong>{{.i18n.Tr "admin.auths.disable_helo"}}</strong></label>
 | 
												<label for="disable_helo"><strong>{{.locale.Tr "admin.auths.disable_helo"}}</strong></label>
 | 
				
			||||||
							<input id="disable_helo" name="disable_helo" type="checkbox" {{if $cfg.DisableHelo}}checked{{end}}>
 | 
												<input id="disable_helo" name="disable_helo" type="checkbox" {{if $cfg.DisableHelo}}checked{{end}}>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="allowed_domains">{{.i18n.Tr "admin.auths.allowed_domains"}}</label>
 | 
											<label for="allowed_domains">{{.locale.Tr "admin.auths.allowed_domains"}}</label>
 | 
				
			||||||
						<input id="allowed_domains" name="allowed_domains" value="{{$cfg.AllowedDomains}}">
 | 
											<input id="allowed_domains" name="allowed_domains" value="{{$cfg.AllowedDomains}}">
 | 
				
			||||||
						<p class="help">{{.i18n.Tr "admin.auths.allowed_domains_helper"}}</p>
 | 
											<p class="help">{{.locale.Tr "admin.auths.allowed_domains_helper"}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="optional field">
 | 
										<div class="optional field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label for="skip_local_two_fa"><strong>{{.i18n.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
												<label for="skip_local_two_fa"><strong>{{.locale.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
				
			||||||
							<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if $cfg.SkipLocalTwoFA}}checked{{end}}>
 | 
												<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if $cfg.SkipLocalTwoFA}}checked{{end}}>
 | 
				
			||||||
							<p class="help">{{.i18n.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
												<p class="help">{{.locale.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
@@ -244,18 +244,18 @@
 | 
				
			|||||||
				{{if .Source.IsPAM}}
 | 
									{{if .Source.IsPAM}}
 | 
				
			||||||
					{{ $cfg:=.Source.Cfg }}
 | 
										{{ $cfg:=.Source.Cfg }}
 | 
				
			||||||
					<div class="required field">
 | 
										<div class="required field">
 | 
				
			||||||
						<label for="pam_service_name">{{.i18n.Tr "admin.auths.pam_service_name"}}</label>
 | 
											<label for="pam_service_name">{{.locale.Tr "admin.auths.pam_service_name"}}</label>
 | 
				
			||||||
						<input id="pam_service_name" name="pam_service_name" value="{{$cfg.ServiceName}}" required>
 | 
											<input id="pam_service_name" name="pam_service_name" value="{{$cfg.ServiceName}}" required>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="pam_email_domain">{{.i18n.Tr "admin.auths.pam_email_domain"}}</label>
 | 
											<label for="pam_email_domain">{{.locale.Tr "admin.auths.pam_email_domain"}}</label>
 | 
				
			||||||
						<input id="pam_email_domain" name="pam_email_domain" value="{{$cfg.EmailDomain}}">
 | 
											<input id="pam_email_domain" name="pam_email_domain" value="{{$cfg.EmailDomain}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="optional field">
 | 
										<div class="optional field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label for="skip_local_two_fa"><strong>{{.i18n.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
												<label for="skip_local_two_fa"><strong>{{.locale.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
				
			||||||
							<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if $cfg.SkipLocalTwoFA}}checked{{end}}>
 | 
												<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if $cfg.SkipLocalTwoFA}}checked{{end}}>
 | 
				
			||||||
							<p class="help">{{.i18n.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
												<p class="help">{{.locale.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
@@ -264,7 +264,7 @@
 | 
				
			|||||||
				{{if .Source.IsOAuth2}}
 | 
									{{if .Source.IsOAuth2}}
 | 
				
			||||||
					{{ $cfg:=.Source.Cfg }}
 | 
										{{ $cfg:=.Source.Cfg }}
 | 
				
			||||||
					<div class="inline required field">
 | 
										<div class="inline required field">
 | 
				
			||||||
						<label>{{.i18n.Tr "admin.auths.oauth2_provider"}}</label>
 | 
											<label>{{.locale.Tr "admin.auths.oauth2_provider"}}</label>
 | 
				
			||||||
						<div class="ui selection type dropdown">
 | 
											<div class="ui selection type dropdown">
 | 
				
			||||||
							<input type="hidden" id="oauth2_provider" name="oauth2_provider" value="{{$cfg.Provider}}" required>
 | 
												<input type="hidden" id="oauth2_provider" name="oauth2_provider" value="{{$cfg.Provider}}" required>
 | 
				
			||||||
							<div class="text">{{.CurrentOAuth2Provider.DisplayName}}</div>
 | 
												<div class="text">{{.CurrentOAuth2Provider.DisplayName}}</div>
 | 
				
			||||||
@@ -277,52 +277,52 @@
 | 
				
			|||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="required field">
 | 
										<div class="required field">
 | 
				
			||||||
						<label for="oauth2_key">{{.i18n.Tr "admin.auths.oauth2_clientID"}}</label>
 | 
											<label for="oauth2_key">{{.locale.Tr "admin.auths.oauth2_clientID"}}</label>
 | 
				
			||||||
						<input id="oauth2_key" name="oauth2_key" value="{{$cfg.ClientID}}" required>
 | 
											<input id="oauth2_key" name="oauth2_key" value="{{$cfg.ClientID}}" required>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="required field">
 | 
										<div class="required field">
 | 
				
			||||||
						<label for="oauth2_secret">{{.i18n.Tr "admin.auths.oauth2_clientSecret"}}</label>
 | 
											<label for="oauth2_secret">{{.locale.Tr "admin.auths.oauth2_clientSecret"}}</label>
 | 
				
			||||||
						<input id="oauth2_secret" name="oauth2_secret" value="{{$cfg.ClientSecret}}" required>
 | 
											<input id="oauth2_secret" name="oauth2_secret" value="{{$cfg.ClientSecret}}" required>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="optional field">
 | 
										<div class="optional field">
 | 
				
			||||||
						<label for="oauth2_icon_url">{{.i18n.Tr "admin.auths.oauth2_icon_url"}}</label>
 | 
											<label for="oauth2_icon_url">{{.locale.Tr "admin.auths.oauth2_icon_url"}}</label>
 | 
				
			||||||
						<input id="oauth2_icon_url" name="oauth2_icon_url" value="{{$cfg.IconURL}}">
 | 
											<input id="oauth2_icon_url" name="oauth2_icon_url" value="{{$cfg.IconURL}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="open_id_connect_auto_discovery_url required field">
 | 
										<div class="open_id_connect_auto_discovery_url required field">
 | 
				
			||||||
						<label for="open_id_connect_auto_discovery_url">{{.i18n.Tr "admin.auths.openIdConnectAutoDiscoveryURL"}}</label>
 | 
											<label for="open_id_connect_auto_discovery_url">{{.locale.Tr "admin.auths.openIdConnectAutoDiscoveryURL"}}</label>
 | 
				
			||||||
						<input id="open_id_connect_auto_discovery_url" name="open_id_connect_auto_discovery_url" value="{{$cfg.OpenIDConnectAutoDiscoveryURL}}">
 | 
											<input id="open_id_connect_auto_discovery_url" name="open_id_connect_auto_discovery_url" value="{{$cfg.OpenIDConnectAutoDiscoveryURL}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="optional field">
 | 
										<div class="optional field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label for="skip_local_two_fa"><strong>{{.i18n.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
												<label for="skip_local_two_fa"><strong>{{.locale.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
				
			||||||
							<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if $cfg.SkipLocalTwoFA}}checked{{end}}>
 | 
												<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if $cfg.SkipLocalTwoFA}}checked{{end}}>
 | 
				
			||||||
							<p class="help">{{.i18n.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
												<p class="help">{{.locale.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="oauth2_use_custom_url inline field">
 | 
										<div class="oauth2_use_custom_url inline field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label><strong>{{.i18n.Tr "admin.auths.oauth2_use_custom_url"}}</strong></label>
 | 
												<label><strong>{{.locale.Tr "admin.auths.oauth2_use_custom_url"}}</strong></label>
 | 
				
			||||||
							<input id="oauth2_use_custom_url" name="oauth2_use_custom_url" type="checkbox" {{if $cfg.CustomURLMapping}}checked{{end}}>
 | 
												<input id="oauth2_use_custom_url" name="oauth2_use_custom_url" type="checkbox" {{if $cfg.CustomURLMapping}}checked{{end}}>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="oauth2_use_custom_url_field oauth2_auth_url required field">
 | 
										<div class="oauth2_use_custom_url_field oauth2_auth_url required field">
 | 
				
			||||||
						<label for="oauth2_auth_url">{{.i18n.Tr "admin.auths.oauth2_authURL"}}</label>
 | 
											<label for="oauth2_auth_url">{{.locale.Tr "admin.auths.oauth2_authURL"}}</label>
 | 
				
			||||||
						<input id="oauth2_auth_url" name="oauth2_auth_url" value="{{if $cfg.CustomURLMapping}}{{$cfg.CustomURLMapping.AuthURL}}{{end}}">
 | 
											<input id="oauth2_auth_url" name="oauth2_auth_url" value="{{if $cfg.CustomURLMapping}}{{$cfg.CustomURLMapping.AuthURL}}{{end}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="oauth2_use_custom_url_field oauth2_token_url required field">
 | 
										<div class="oauth2_use_custom_url_field oauth2_token_url required field">
 | 
				
			||||||
						<label for="oauth2_token_url">{{.i18n.Tr "admin.auths.oauth2_tokenURL"}}</label>
 | 
											<label for="oauth2_token_url">{{.locale.Tr "admin.auths.oauth2_tokenURL"}}</label>
 | 
				
			||||||
						<input id="oauth2_token_url" name="oauth2_token_url" value="{{if $cfg.CustomURLMapping}}{{$cfg.CustomURLMapping.TokenURL}}{{end}}">
 | 
											<input id="oauth2_token_url" name="oauth2_token_url" value="{{if $cfg.CustomURLMapping}}{{$cfg.CustomURLMapping.TokenURL}}{{end}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="oauth2_use_custom_url_field oauth2_profile_url required field">
 | 
										<div class="oauth2_use_custom_url_field oauth2_profile_url required field">
 | 
				
			||||||
						<label for="oauth2_profile_url">{{.i18n.Tr "admin.auths.oauth2_profileURL"}}</label>
 | 
											<label for="oauth2_profile_url">{{.locale.Tr "admin.auths.oauth2_profileURL"}}</label>
 | 
				
			||||||
						<input id="oauth2_profile_url" name="oauth2_profile_url" value="{{if $cfg.CustomURLMapping}}{{$cfg.CustomURLMapping.ProfileURL}}{{end}}">
 | 
											<input id="oauth2_profile_url" name="oauth2_profile_url" value="{{if $cfg.CustomURLMapping}}{{$cfg.CustomURLMapping.ProfileURL}}{{end}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="oauth2_use_custom_url_field oauth2_email_url required field">
 | 
										<div class="oauth2_use_custom_url_field oauth2_email_url required field">
 | 
				
			||||||
						<label for="oauth2_email_url">{{.i18n.Tr "admin.auths.oauth2_emailURL"}}</label>
 | 
											<label for="oauth2_email_url">{{.locale.Tr "admin.auths.oauth2_emailURL"}}</label>
 | 
				
			||||||
						<input id="oauth2_email_url" name="oauth2_email_url" value="{{if $cfg.CustomURLMapping}}{{$cfg.CustomURLMapping.EmailURL}}{{end}}">
 | 
											<input id="oauth2_email_url" name="oauth2_email_url" value="{{if $cfg.CustomURLMapping}}{{$cfg.CustomURLMapping.EmailURL}}{{end}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="oauth2_use_custom_url_field oauth2_tenant required field">
 | 
										<div class="oauth2_use_custom_url_field oauth2_tenant required field">
 | 
				
			||||||
						<label for="oauth2_tenant">{{.i18n.Tr "admin.auths.oauth2_tenant"}}</label>
 | 
											<label for="oauth2_tenant">{{.locale.Tr "admin.auths.oauth2_tenant"}}</label>
 | 
				
			||||||
						<input id="oauth2_tenant" name="oauth2_tenant" value="{{if $cfg.CustomURLMapping}}{{$cfg.CustomURLMapping.Tenant}}{{end}}">
 | 
											<input id="oauth2_tenant" name="oauth2_tenant" value="{{if $cfg.CustomURLMapping}}{{$cfg.CustomURLMapping.Tenant}}{{end}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -336,29 +336,29 @@
 | 
				
			|||||||
					{{end}}{{end}}
 | 
										{{end}}{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="oauth2_scopes">{{.i18n.Tr "admin.auths.oauth2_scopes"}}</label>
 | 
											<label for="oauth2_scopes">{{.locale.Tr "admin.auths.oauth2_scopes"}}</label>
 | 
				
			||||||
						<input id="oauth2_scopes" name="oauth2_scopes" value="{{if $cfg.Scopes}}{{Join $cfg.Scopes "," }}{{end}}">
 | 
											<input id="oauth2_scopes" name="oauth2_scopes" value="{{if $cfg.Scopes}}{{Join $cfg.Scopes "," }}{{end}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="oauth2_required_claim_name">{{.i18n.Tr "admin.auths.oauth2_required_claim_name"}}</label>
 | 
											<label for="oauth2_required_claim_name">{{.locale.Tr "admin.auths.oauth2_required_claim_name"}}</label>
 | 
				
			||||||
						<input id="oauth2_required_claim_name" name="oauth2_required_claim_name" values="{{$cfg.RequiredClaimName}}">
 | 
											<input id="oauth2_required_claim_name" name="oauth2_required_claim_name" values="{{$cfg.RequiredClaimName}}">
 | 
				
			||||||
						<p class="help">{{.i18n.Tr "admin.auths.oauth2_required_claim_name_helper"}}</p>
 | 
											<p class="help">{{.locale.Tr "admin.auths.oauth2_required_claim_name_helper"}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="oauth2_required_claim_value">{{.i18n.Tr "admin.auths.oauth2_required_claim_value"}}</label>
 | 
											<label for="oauth2_required_claim_value">{{.locale.Tr "admin.auths.oauth2_required_claim_value"}}</label>
 | 
				
			||||||
						<input id="oauth2_required_claim_value" name="oauth2_required_claim_value" values="{{$cfg.RequiredClaimValue}}">
 | 
											<input id="oauth2_required_claim_value" name="oauth2_required_claim_value" values="{{$cfg.RequiredClaimValue}}">
 | 
				
			||||||
						<p class="help">{{.i18n.Tr "admin.auths.oauth2_required_claim_value_helper"}}</p>
 | 
											<p class="help">{{.locale.Tr "admin.auths.oauth2_required_claim_value_helper"}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="oauth2_group_claim_name">{{.i18n.Tr "admin.auths.oauth2_group_claim_name"}}</label>
 | 
											<label for="oauth2_group_claim_name">{{.locale.Tr "admin.auths.oauth2_group_claim_name"}}</label>
 | 
				
			||||||
						<input id="oauth2_group_claim_name" name="oauth2_group_claim_name" value="{{$cfg.GroupClaimName}}">
 | 
											<input id="oauth2_group_claim_name" name="oauth2_group_claim_name" value="{{$cfg.GroupClaimName}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="oauth2_admin_group">{{.i18n.Tr "admin.auths.oauth2_admin_group"}}</label>
 | 
											<label for="oauth2_admin_group">{{.locale.Tr "admin.auths.oauth2_admin_group"}}</label>
 | 
				
			||||||
						<input id="oauth2_admin_group" name="oauth2_admin_group" value="{{$cfg.AdminGroup}}">
 | 
											<input id="oauth2_admin_group" name="oauth2_admin_group" value="{{$cfg.AdminGroup}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="oauth2_restricted_group">{{.i18n.Tr "admin.auths.oauth2_restricted_group"}}</label>
 | 
											<label for="oauth2_restricted_group">{{.locale.Tr "admin.auths.oauth2_restricted_group"}}</label>
 | 
				
			||||||
						<input id="oauth2_restricted_group" name="oauth2_restricted_group" value="{{$cfg.RestrictedGroup}}">
 | 
											<input id="oauth2_restricted_group" name="oauth2_restricted_group" value="{{$cfg.RestrictedGroup}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
@@ -368,32 +368,32 @@
 | 
				
			|||||||
					{{ $cfg:=.Source.Cfg }}
 | 
										{{ $cfg:=.Source.Cfg }}
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label for="sspi_auto_create_users"><strong>{{.i18n.Tr "admin.auths.sspi_auto_create_users"}}</strong></label>
 | 
												<label for="sspi_auto_create_users"><strong>{{.locale.Tr "admin.auths.sspi_auto_create_users"}}</strong></label>
 | 
				
			||||||
							<input id="sspi_auto_create_users" name="sspi_auto_create_users" class="sspi-auto-create-users" type="checkbox" {{if $cfg.AutoCreateUsers}}checked{{end}}>
 | 
												<input id="sspi_auto_create_users" name="sspi_auto_create_users" class="sspi-auto-create-users" type="checkbox" {{if $cfg.AutoCreateUsers}}checked{{end}}>
 | 
				
			||||||
							<p class="help">{{.i18n.Tr "admin.auths.sspi_auto_create_users_helper"}}</p>
 | 
												<p class="help">{{.locale.Tr "admin.auths.sspi_auto_create_users_helper"}}</p>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label for="sspi_auto_activate_users"><strong>{{.i18n.Tr "admin.auths.sspi_auto_activate_users"}}</strong></label>
 | 
												<label for="sspi_auto_activate_users"><strong>{{.locale.Tr "admin.auths.sspi_auto_activate_users"}}</strong></label>
 | 
				
			||||||
							<input id="sspi_auto_activate_users" name="sspi_auto_activate_users" class="sspi-auto-activate-users" type="checkbox" {{if $cfg.AutoActivateUsers}}checked{{end}}>
 | 
												<input id="sspi_auto_activate_users" name="sspi_auto_activate_users" class="sspi-auto-activate-users" type="checkbox" {{if $cfg.AutoActivateUsers}}checked{{end}}>
 | 
				
			||||||
							<p class="help">{{.i18n.Tr "admin.auths.sspi_auto_activate_users_helper"}}</p>
 | 
												<p class="help">{{.locale.Tr "admin.auths.sspi_auto_activate_users_helper"}}</p>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label for="sspi_strip_domain_names"><strong>{{.i18n.Tr "admin.auths.sspi_strip_domain_names"}}</strong></label>
 | 
												<label for="sspi_strip_domain_names"><strong>{{.locale.Tr "admin.auths.sspi_strip_domain_names"}}</strong></label>
 | 
				
			||||||
							<input id="sspi_strip_domain_names" name="sspi_strip_domain_names" class="sspi-strip-domain-names" type="checkbox" {{if $cfg.StripDomainNames}}checked{{end}}>
 | 
												<input id="sspi_strip_domain_names" name="sspi_strip_domain_names" class="sspi-strip-domain-names" type="checkbox" {{if $cfg.StripDomainNames}}checked{{end}}>
 | 
				
			||||||
							<p class="help">{{.i18n.Tr "admin.auths.sspi_strip_domain_names_helper"}}</p>
 | 
												<p class="help">{{.locale.Tr "admin.auths.sspi_strip_domain_names_helper"}}</p>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="required field">
 | 
										<div class="required field">
 | 
				
			||||||
						<label for="sspi_separator_replacement">{{.i18n.Tr "admin.auths.sspi_separator_replacement"}}</label>
 | 
											<label for="sspi_separator_replacement">{{.locale.Tr "admin.auths.sspi_separator_replacement"}}</label>
 | 
				
			||||||
						<input id="sspi_separator_replacement" name="sspi_separator_replacement" value="{{$cfg.SeparatorReplacement}}" required>
 | 
											<input id="sspi_separator_replacement" name="sspi_separator_replacement" value="{{$cfg.SeparatorReplacement}}" required>
 | 
				
			||||||
						<p class="help">{{.i18n.Tr "admin.auths.sspi_separator_replacement_helper"}}</p>
 | 
											<p class="help">{{.locale.Tr "admin.auths.sspi_separator_replacement_helper"}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="field">
 | 
										<div class="field">
 | 
				
			||||||
						<label for="sspi_default_language">{{.i18n.Tr "admin.auths.sspi_default_language"}}</label>
 | 
											<label for="sspi_default_language">{{.locale.Tr "admin.auths.sspi_default_language"}}</label>
 | 
				
			||||||
						<div class="ui language selection dropdown" id="sspi_default_language">
 | 
											<div class="ui language selection dropdown" id="sspi_default_language">
 | 
				
			||||||
							<input name="sspi_default_language" type="hidden" value="{{$cfg.DefaultLanguage}}">
 | 
												<input name="sspi_default_language" type="hidden" value="{{$cfg.DefaultLanguage}}">
 | 
				
			||||||
							{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
												{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
@@ -405,27 +405,27 @@
 | 
				
			|||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<p class="help">{{.i18n.Tr "admin.auths.sspi_default_language_helper"}}</p>
 | 
											<p class="help">{{.locale.Tr "admin.auths.sspi_default_language_helper"}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{if .Source.IsLDAP}}
 | 
									{{if .Source.IsLDAP}}
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label><strong>{{.i18n.Tr "admin.auths.syncenabled"}}</strong></label>
 | 
												<label><strong>{{.locale.Tr "admin.auths.syncenabled"}}</strong></label>
 | 
				
			||||||
							<input name="is_sync_enabled" type="checkbox" {{if .Source.IsSyncEnabled}}checked{{end}}>
 | 
												<input name="is_sync_enabled" type="checkbox" {{if .Source.IsSyncEnabled}}checked{{end}}>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.auths.activated"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.auths.activated"}}</strong></label>
 | 
				
			||||||
						<input name="is_active" type="checkbox" {{if .Source.IsActive}}checked{{end}}>
 | 
											<input name="is_active" type="checkbox" {{if .Source.IsActive}}checked{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="field">
 | 
									<div class="field">
 | 
				
			||||||
					<button class="ui green button">{{.i18n.Tr "admin.auths.update"}}</button>
 | 
										<button class="ui green button">{{.locale.Tr "admin.auths.update"}}</button>
 | 
				
			||||||
					<div class="ui red button delete-button" data-url="{{$.Link}}/delete" data-id="{{.Source.ID}}">{{.i18n.Tr "admin.auths.delete"}}</div>
 | 
										<div class="ui red button delete-button" data-url="{{$.Link}}/delete" data-id="{{.Source.ID}}">{{.locale.Tr "admin.auths.delete"}}</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
@@ -435,10 +435,10 @@
 | 
				
			|||||||
<div class="ui small basic delete modal">
 | 
					<div class="ui small basic delete modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-trash"}}
 | 
							{{svg "octicon-trash"}}
 | 
				
			||||||
		{{.i18n.Tr "admin.auths.delete_auth_title"}}
 | 
							{{.locale.Tr "admin.auths.delete_auth_title"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{.i18n.Tr "admin.auths.delete_auth_desc"}}</p>
 | 
							<p>{{.locale.Tr "admin.auths.delete_auth_desc"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,9 +4,9 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.auths.auth_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}})
 | 
								{{.locale.Tr "admin.auths.auth_manage_panel"}} ({{.locale.Tr "admin.total" .Total}})
 | 
				
			||||||
			<div class="ui right">
 | 
								<div class="ui right">
 | 
				
			||||||
				<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/auths/new">{{.i18n.Tr "admin.auths.new"}}</a>
 | 
									<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/auths/new">{{.locale.Tr "admin.auths.new"}}</a>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
@@ -14,12 +14,12 @@
 | 
				
			|||||||
				<thead>
 | 
									<thead>
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th>ID</th>
 | 
											<th>ID</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.auths.name"}}</th>
 | 
											<th>{{.locale.Tr "admin.auths.name"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.auths.type"}}</th>
 | 
											<th>{{.locale.Tr "admin.auths.type"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.auths.enabled"}}</th>
 | 
											<th>{{.locale.Tr "admin.auths.enabled"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.auths.updated"}}</th>
 | 
											<th>{{.locale.Tr "admin.auths.updated"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.created"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.created"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.edit"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.edit"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.auths.new"}}
 | 
								{{.locale.Tr "admin.auths.new"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<form class="ui form" action="{{.Link}}" method="post">
 | 
								<form class="ui form" action="{{.Link}}" method="post">
 | 
				
			||||||
@@ -12,7 +12,7 @@
 | 
				
			|||||||
				{{.CsrfTokenHtml}}
 | 
									{{.CsrfTokenHtml}}
 | 
				
			||||||
				<!-- Types and name -->
 | 
									<!-- Types and name -->
 | 
				
			||||||
				<div class="inline required field {{if .Err_Type}}error{{end}}">
 | 
									<div class="inline required field {{if .Err_Type}}error{{end}}">
 | 
				
			||||||
					<label>{{.i18n.Tr "admin.auths.auth_type"}}</label>
 | 
										<label>{{.locale.Tr "admin.auths.auth_type"}}</label>
 | 
				
			||||||
					<div class="ui selection type dropdown">
 | 
										<div class="ui selection type dropdown">
 | 
				
			||||||
						<input type="hidden" id="auth_type" name="type" value="{{.type}}">
 | 
											<input type="hidden" id="auth_type" name="type" value="{{.type}}">
 | 
				
			||||||
						<div class="text">{{.CurrentTypeName}}</div>
 | 
											<div class="text">{{.CurrentTypeName}}</div>
 | 
				
			||||||
@@ -25,7 +25,7 @@
 | 
				
			|||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="required inline field {{if .Err_Name}}error{{end}}">
 | 
									<div class="required inline field {{if .Err_Name}}error{{end}}">
 | 
				
			||||||
					<label for="name">{{.i18n.Tr "admin.auths.auth_name"}}</label>
 | 
										<label for="name">{{.locale.Tr "admin.auths.auth_name"}}</label>
 | 
				
			||||||
					<input id="name" name="name" value="{{.name}}" autofocus required>
 | 
										<input id="name" name="name" value="{{.name}}" autofocus required>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -37,16 +37,16 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
				<!-- PAM -->
 | 
									<!-- PAM -->
 | 
				
			||||||
				<div class="pam required field {{if not (eq .type 4)}}hide{{end}}">
 | 
									<div class="pam required field {{if not (eq .type 4)}}hide{{end}}">
 | 
				
			||||||
					<label for="pam_service_name">{{.i18n.Tr "admin.auths.pam_service_name"}}</label>
 | 
										<label for="pam_service_name">{{.locale.Tr "admin.auths.pam_service_name"}}</label>
 | 
				
			||||||
					<input id="pam_service_name" name="pam_service_name" value="{{.pam_service_name}}" />
 | 
										<input id="pam_service_name" name="pam_service_name" value="{{.pam_service_name}}" />
 | 
				
			||||||
					<label for="pam_email_domain">{{.i18n.Tr "admin.auths.pam_email_domain"}}</label>
 | 
										<label for="pam_email_domain">{{.locale.Tr "admin.auths.pam_email_domain"}}</label>
 | 
				
			||||||
					<input id="pam_email_domain" name="pam_email_domain" value="{{.pam_email_domain}}">
 | 
										<input id="pam_email_domain" name="pam_email_domain" value="{{.pam_email_domain}}">
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="pam optional field {{if not (eq .type 4)}}hide{{end}}">
 | 
									<div class="pam optional field {{if not (eq .type 4)}}hide{{end}}">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label for="skip_local_two_fa"><strong>{{.i18n.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
											<label for="skip_local_two_fa"><strong>{{.locale.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
				
			||||||
						<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if .skip_local_two_fa}}checked{{end}}>
 | 
											<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if .skip_local_two_fa}}checked{{end}}>
 | 
				
			||||||
						<p class="help">{{.i18n.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
											<p class="help">{{.locale.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -58,67 +58,67 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
				<div class="ldap field">
 | 
									<div class="ldap field">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.auths.attributes_in_bind"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.auths.attributes_in_bind"}}</strong></label>
 | 
				
			||||||
						<input name="attributes_in_bind" type="checkbox" {{if .attributes_in_bind}}checked{{end}}>
 | 
											<input name="attributes_in_bind" type="checkbox" {{if .attributes_in_bind}}checked{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="ldap inline field {{if not (eq .type 2)}}hide{{end}}">
 | 
									<div class="ldap inline field {{if not (eq .type 2)}}hide{{end}}">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.auths.syncenabled"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.auths.syncenabled"}}</strong></label>
 | 
				
			||||||
						<input name="is_sync_enabled" type="checkbox" {{if .is_sync_enabled}}checked{{end}}>
 | 
											<input name="is_sync_enabled" type="checkbox" {{if .is_sync_enabled}}checked{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.auths.activated"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.auths.activated"}}</strong></label>
 | 
				
			||||||
						<input name="is_active" type="checkbox" {{if .is_active}}checked{{end}}>
 | 
											<input name="is_active" type="checkbox" {{if .is_active}}checked{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="field">
 | 
									<div class="field">
 | 
				
			||||||
					<button class="ui green button">{{.i18n.Tr "admin.auths.new"}}</button>
 | 
										<button class="ui green button">{{.locale.Tr "admin.auths.new"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.auths.tips"}}
 | 
								{{.locale.Tr "admin.auths.tips"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<h5>GMail Settings:</h5>
 | 
								<h5>GMail Settings:</h5>
 | 
				
			||||||
			<p>Host: smtp.gmail.com, Port: 587, Enable TLS Encryption: true</p>
 | 
								<p>Host: smtp.gmail.com, Port: 587, Enable TLS Encryption: true</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			<h5>{{.i18n.Tr "admin.auths.tips.oauth2.general"}}:</h5>
 | 
								<h5>{{.locale.Tr "admin.auths.tips.oauth2.general"}}:</h5>
 | 
				
			||||||
			<p>{{.i18n.Tr "admin.auths.tips.oauth2.general.tip"}}</p>
 | 
								<p>{{.locale.Tr "admin.auths.tips.oauth2.general.tip"}}</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			<h5 class="ui top attached header">{{.i18n.Tr "admin.auths.tip.oauth2_provider"}}</h5>
 | 
								<h5 class="ui top attached header">{{.locale.Tr "admin.auths.tip.oauth2_provider"}}</h5>
 | 
				
			||||||
			<div class="ui attached segment">
 | 
								<div class="ui attached segment">
 | 
				
			||||||
				<li>Bitbucket</li>
 | 
									<li>Bitbucket</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.bitbucket"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.bitbucket"}}</span>
 | 
				
			||||||
				<li>Dropbox</li>
 | 
									<li>Dropbox</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.dropbox"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.dropbox"}}</span>
 | 
				
			||||||
				<li>Facebook</li>
 | 
									<li>Facebook</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.facebook"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.facebook"}}</span>
 | 
				
			||||||
				<li>GitHub</li>
 | 
									<li>GitHub</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.github"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.github"}}</span>
 | 
				
			||||||
				<li>GitLab</li>
 | 
									<li>GitLab</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.gitlab"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.gitlab"}}</span>
 | 
				
			||||||
				<li>Google</li>
 | 
									<li>Google</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.google_plus"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.google_plus"}}</span>
 | 
				
			||||||
				<li>OpenID Connect</li>
 | 
									<li>OpenID Connect</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.openid_connect"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.openid_connect"}}</span>
 | 
				
			||||||
				<li>Twitter</li>
 | 
									<li>Twitter</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.twitter"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.twitter"}}</span>
 | 
				
			||||||
				<li>Discord</li>
 | 
									<li>Discord</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.discord"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.discord"}}</span>
 | 
				
			||||||
				<li>Gitea</li>
 | 
									<li>Gitea</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.gitea"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.gitea"}}</span>
 | 
				
			||||||
				<li>Nextcloud</li>
 | 
									<li>Nextcloud</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.nextcloud"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.nextcloud"}}</span>
 | 
				
			||||||
				<li>Yandex</li>
 | 
									<li>Yandex</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.yandex"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.yandex"}}</span>
 | 
				
			||||||
				<li>Mastodon</li>
 | 
									<li>Mastodon</li>
 | 
				
			||||||
				<span>{{.i18n.Tr "admin.auths.tip.mastodon"}}</span>
 | 
									<span>{{.locale.Tr "admin.auths.tip.mastodon"}}</span>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
<div class="ldap dldap field {{if not (or (eq .type 2) (eq .type 5))}}hide{{end}}">
 | 
					<div class="ldap dldap field {{if not (or (eq .type 2) (eq .type 5))}}hide{{end}}">
 | 
				
			||||||
	<div class="inline required field {{if .Err_SecurityProtocol}}error{{end}}">
 | 
						<div class="inline required field {{if .Err_SecurityProtocol}}error{{end}}">
 | 
				
			||||||
		<label>{{.i18n.Tr "admin.auths.security_protocol"}}</label>
 | 
							<label>{{.locale.Tr "admin.auths.security_protocol"}}</label>
 | 
				
			||||||
		<div class="ui selection security-protocol dropdown">
 | 
							<div class="ui selection security-protocol dropdown">
 | 
				
			||||||
			<input type="hidden" id="security_protocol" name="security_protocol" value="{{.security_protocol}}">
 | 
								<input type="hidden" id="security_protocol" name="security_protocol" value="{{.security_protocol}}">
 | 
				
			||||||
			<div class="text">{{.CurrentSecurityProtocol}}</div>
 | 
								<div class="text">{{.CurrentSecurityProtocol}}</div>
 | 
				
			||||||
@@ -13,103 +13,103 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="required field">
 | 
						<div class="required field">
 | 
				
			||||||
		<label for="host">{{.i18n.Tr "admin.auths.host"}}</label>
 | 
							<label for="host">{{.locale.Tr "admin.auths.host"}}</label>
 | 
				
			||||||
		<input id="host" name="host" value="{{.host}}" placeholder="e.g. mydomain.com">
 | 
							<input id="host" name="host" value="{{.host}}" placeholder="e.g. mydomain.com">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="required field">
 | 
						<div class="required field">
 | 
				
			||||||
		<label for="port">{{.i18n.Tr "admin.auths.port"}}</label>
 | 
							<label for="port">{{.locale.Tr "admin.auths.port"}}</label>
 | 
				
			||||||
		<input id="port" name="port" value="{{.port}}"  placeholder="e.g. 636">
 | 
							<input id="port" name="port" value="{{.port}}"  placeholder="e.g. 636">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="has-tls inline field {{if not .HasTLS}}hide{{end}}">
 | 
						<div class="has-tls inline field {{if not .HasTLS}}hide{{end}}">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label><strong>{{.i18n.Tr "admin.auths.skip_tls_verify"}}</strong></label>
 | 
								<label><strong>{{.locale.Tr "admin.auths.skip_tls_verify"}}</strong></label>
 | 
				
			||||||
			<input name="skip_verify" type="checkbox" {{if .skip_verify}}checked{{end}}>
 | 
								<input name="skip_verify" type="checkbox" {{if .skip_verify}}checked{{end}}>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="ldap field {{if not (eq .type 2)}}hide{{end}}">
 | 
						<div class="ldap field {{if not (eq .type 2)}}hide{{end}}">
 | 
				
			||||||
		<label for="bind_dn">{{.i18n.Tr "admin.auths.bind_dn"}}</label>
 | 
							<label for="bind_dn">{{.locale.Tr "admin.auths.bind_dn"}}</label>
 | 
				
			||||||
		<input id="bind_dn" name="bind_dn" value="{{.bind_dn}}" placeholder="e.g. cn=Search,dc=mydomain,dc=com">
 | 
							<input id="bind_dn" name="bind_dn" value="{{.bind_dn}}" placeholder="e.g. cn=Search,dc=mydomain,dc=com">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="ldap field {{if not (eq .type 2)}}hide{{end}}">
 | 
						<div class="ldap field {{if not (eq .type 2)}}hide{{end}}">
 | 
				
			||||||
		<label for="bind_password">{{.i18n.Tr "admin.auths.bind_password"}}</label>
 | 
							<label for="bind_password">{{.locale.Tr "admin.auths.bind_password"}}</label>
 | 
				
			||||||
		<input id="bind_password" name="bind_password" type="password" autocomplete="off" value="{{.bind_password}}">
 | 
							<input id="bind_password" name="bind_password" type="password" autocomplete="off" value="{{.bind_password}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="binddnrequired {{if (eq .type 2)}}required{{end}} field">
 | 
						<div class="binddnrequired {{if (eq .type 2)}}required{{end}} field">
 | 
				
			||||||
		<label for="user_base">{{.i18n.Tr "admin.auths.user_base"}}</label>
 | 
							<label for="user_base">{{.locale.Tr "admin.auths.user_base"}}</label>
 | 
				
			||||||
		<input id="user_base" name="user_base" value="{{.user_base}}" placeholder="e.g. ou=Users,dc=mydomain,dc=com">
 | 
							<input id="user_base" name="user_base" value="{{.user_base}}" placeholder="e.g. ou=Users,dc=mydomain,dc=com">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="dldap required field {{if not (eq .type 5)}}hide{{end}}">
 | 
						<div class="dldap required field {{if not (eq .type 5)}}hide{{end}}">
 | 
				
			||||||
		<label for="user_dn">{{.i18n.Tr "admin.auths.user_dn"}}</label>
 | 
							<label for="user_dn">{{.locale.Tr "admin.auths.user_dn"}}</label>
 | 
				
			||||||
		<input id="user_dn" name="user_dn" value="{{.user_dn}}" placeholder="e.g. uid=%s,ou=Users,dc=mydomain,dc=com">
 | 
							<input id="user_dn" name="user_dn" value="{{.user_dn}}" placeholder="e.g. uid=%s,ou=Users,dc=mydomain,dc=com">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="required field">
 | 
						<div class="required field">
 | 
				
			||||||
		<label for="filter">{{.i18n.Tr "admin.auths.filter"}}</label>
 | 
							<label for="filter">{{.locale.Tr "admin.auths.filter"}}</label>
 | 
				
			||||||
		<input id="filter" name="filter" value="{{.filter}}" placeholder="e.g. (&(objectClass=posixAccount)(uid=%s))">
 | 
							<input id="filter" name="filter" value="{{.filter}}" placeholder="e.g. (&(objectClass=posixAccount)(uid=%s))">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="admin_filter">{{.i18n.Tr "admin.auths.admin_filter"}}</label>
 | 
							<label for="admin_filter">{{.locale.Tr "admin.auths.admin_filter"}}</label>
 | 
				
			||||||
		<input id="admin_filter" name="admin_filter" value="{{.admin_filter}}">
 | 
							<input id="admin_filter" name="admin_filter" value="{{.admin_filter}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="restricted_filter">{{.i18n.Tr "admin.auths.restricted_filter"}}</label>
 | 
							<label for="restricted_filter">{{.locale.Tr "admin.auths.restricted_filter"}}</label>
 | 
				
			||||||
		<input id="restricted_filter" name="admin_filter" value="{{.restricted_filter}}">
 | 
							<input id="restricted_filter" name="admin_filter" value="{{.restricted_filter}}">
 | 
				
			||||||
		<p class="help">{{.i18n.Tr "admin.auths.restricted_filter_helper"}}</p>
 | 
							<p class="help">{{.locale.Tr "admin.auths.restricted_filter_helper"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="attribute_username">{{.i18n.Tr "admin.auths.attribute_username"}}</label>
 | 
							<label for="attribute_username">{{.locale.Tr "admin.auths.attribute_username"}}</label>
 | 
				
			||||||
		<input id="attribute_username" name="attribute_username" value="{{.attribute_username}}" placeholder="{{.i18n.Tr "admin.auths.attribute_username_placeholder"}}">
 | 
							<input id="attribute_username" name="attribute_username" value="{{.attribute_username}}" placeholder="{{.locale.Tr "admin.auths.attribute_username_placeholder"}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="attribute_name">{{.i18n.Tr "admin.auths.attribute_name"}}</label>
 | 
							<label for="attribute_name">{{.locale.Tr "admin.auths.attribute_name"}}</label>
 | 
				
			||||||
		<input id="attribute_name" name="attribute_name" value="{{.attribute_name}}">
 | 
							<input id="attribute_name" name="attribute_name" value="{{.attribute_name}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="attribute_surname">{{.i18n.Tr "admin.auths.attribute_surname"}}</label>
 | 
							<label for="attribute_surname">{{.locale.Tr "admin.auths.attribute_surname"}}</label>
 | 
				
			||||||
		<input id="attribute_surname" name="attribute_surname" value="{{.attribute_surname}}">
 | 
							<input id="attribute_surname" name="attribute_surname" value="{{.attribute_surname}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="required field">
 | 
						<div class="required field">
 | 
				
			||||||
		<label for="attribute_mail">{{.i18n.Tr "admin.auths.attribute_mail"}}</label>
 | 
							<label for="attribute_mail">{{.locale.Tr "admin.auths.attribute_mail"}}</label>
 | 
				
			||||||
		<input id="attribute_mail" name="attribute_mail" value="{{.attribute_mail}}" placeholder="e.g. mail">
 | 
							<input id="attribute_mail" name="attribute_mail" value="{{.attribute_mail}}" placeholder="e.g. mail">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="attribute_ssh_public_key">{{.i18n.Tr "admin.auths.attribute_ssh_public_key"}}</label>
 | 
							<label for="attribute_ssh_public_key">{{.locale.Tr "admin.auths.attribute_ssh_public_key"}}</label>
 | 
				
			||||||
		<input id="attribute_ssh_public_key" name="attribute_ssh_public_key" value="{{.attribute_ssh_public_key}}" placeholder="e.g. SshPublicKey">
 | 
							<input id="attribute_ssh_public_key" name="attribute_ssh_public_key" value="{{.attribute_ssh_public_key}}" placeholder="e.g. SshPublicKey">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="attribute_avatar">{{.i18n.Tr "admin.auths.attribute_avatar"}}</label>
 | 
							<label for="attribute_avatar">{{.locale.Tr "admin.auths.attribute_avatar"}}</label>
 | 
				
			||||||
		<input id="attribute_avatar" name="attribute_avatar" value="{{.attribute_avatar}}" placeholder="e.g. jpegPhoto">
 | 
							<input id="attribute_avatar" name="attribute_avatar" value="{{.attribute_avatar}}" placeholder="e.g. jpegPhoto">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<!-- ldap group begin -->
 | 
						<!-- ldap group begin -->
 | 
				
			||||||
	<div class="inline field">
 | 
						<div class="inline field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label><strong>{{.i18n.Tr "admin.auths.enable_ldap_groups"}}</strong></label>
 | 
								<label><strong>{{.locale.Tr "admin.auths.enable_ldap_groups"}}</strong></label>
 | 
				
			||||||
			<input type="checkbox" name="groups_enabled" class="js-ldap-group-toggle" {{if .groups_enabled}}checked{{end}}>
 | 
								<input type="checkbox" name="groups_enabled" class="js-ldap-group-toggle" {{if .groups_enabled}}checked{{end}}>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div id="ldap-group-options" class="ui segment secondary">
 | 
						<div id="ldap-group-options" class="ui segment secondary">
 | 
				
			||||||
		<div class="field">
 | 
							<div class="field">
 | 
				
			||||||
			<label>{{.i18n.Tr "admin.auths.group_search_base"}}</label>
 | 
								<label>{{.locale.Tr "admin.auths.group_search_base"}}</label>
 | 
				
			||||||
			<input name="group_dn" value="{{.group_dn}}" placeholder="e.g. ou=group,dc=mydomain,dc=com">
 | 
								<input name="group_dn" value="{{.group_dn}}" placeholder="e.g. ou=group,dc=mydomain,dc=com">
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="field">
 | 
							<div class="field">
 | 
				
			||||||
			<label>{{.i18n.Tr "admin.auths.group_attribute_list_users"}}</label>
 | 
								<label>{{.locale.Tr "admin.auths.group_attribute_list_users"}}</label>
 | 
				
			||||||
			<input name="group_member_uid" value="{{.group_member_uid}}" placeholder="e.g. memberUid">
 | 
								<input name="group_member_uid" value="{{.group_member_uid}}" placeholder="e.g. memberUid">
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="field">
 | 
							<div class="field">
 | 
				
			||||||
			<label>{{.i18n.Tr "admin.auths.user_attribute_in_group"}}</label>
 | 
								<label>{{.locale.Tr "admin.auths.user_attribute_in_group"}}</label>
 | 
				
			||||||
			<input name="user_uid" value="{{.user_uid}}" placeholder="e.g. uid">
 | 
								<input name="user_uid" value="{{.user_uid}}" placeholder="e.g. uid">
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="field">
 | 
							<div class="field">
 | 
				
			||||||
			<label>{{.i18n.Tr "admin.auths.verify_group_membership"}}</label>
 | 
								<label>{{.locale.Tr "admin.auths.verify_group_membership"}}</label>
 | 
				
			||||||
			<input name="group_filter" value="{{.group_filter}}" placeholder="e.g. (|(cn=gitea_users)(cn=admins))">
 | 
								<input name="group_filter" value="{{.group_filter}}" placeholder="e.g. (|(cn=gitea_users)(cn=admins))">
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="field">
 | 
							<div class="field">
 | 
				
			||||||
			<label>{{.i18n.Tr "admin.auths.map_group_to_team"}}</label>
 | 
								<label>{{.locale.Tr "admin.auths.map_group_to_team"}}</label>
 | 
				
			||||||
			<input name="group_team_map" value="{{.group_team_map}}" placeholder='e.g. {"cn=my-group,cn=groups,dc=example,dc=org": {"MyGiteaOrganization": ["MyGiteaTeam1", "MyGiteaTeam2"]}}'>
 | 
								<input name="group_team_map" value="{{.group_team_map}}" placeholder='e.g. {"cn=my-group,cn=groups,dc=example,dc=org": {"MyGiteaOrganization": ["MyGiteaTeam1", "MyGiteaTeam2"]}}'>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label>{{.i18n.Tr "admin.auths.map_group_to_team_removal"}}</label>
 | 
								<label>{{.locale.Tr "admin.auths.map_group_to_team_removal"}}</label>
 | 
				
			||||||
			<input name="group_team_map_removal" type="checkbox" {{if .group_team_map_removal}}checked{{end}}>
 | 
								<input name="group_team_map_removal" type="checkbox" {{if .group_team_map_removal}}checked{{end}}>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
@@ -117,24 +117,24 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	<div class="ldap inline field {{if not (eq .type 2)}}hide{{end}}">
 | 
						<div class="ldap inline field {{if not (eq .type 2)}}hide{{end}}">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label for="use_paged_search"><strong>{{.i18n.Tr "admin.auths.use_paged_search"}}</strong></label>
 | 
								<label for="use_paged_search"><strong>{{.locale.Tr "admin.auths.use_paged_search"}}</strong></label>
 | 
				
			||||||
			<input id="use_paged_search" name="use_paged_search" class="use-paged-search" type="checkbox" {{if .use_paged_search}}checked{{end}}>
 | 
								<input id="use_paged_search" name="use_paged_search" class="use-paged-search" type="checkbox" {{if .use_paged_search}}checked{{end}}>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="ldap field search-page-size required {{if or (not (eq .type 2)) (not .use_paged_search)}}hide{{end}}">
 | 
						<div class="ldap field search-page-size required {{if or (not (eq .type 2)) (not .use_paged_search)}}hide{{end}}">
 | 
				
			||||||
		<label for="search_page_size">{{.i18n.Tr "admin.auths.search_page_size"}}</label>
 | 
							<label for="search_page_size">{{.locale.Tr "admin.auths.search_page_size"}}</label>
 | 
				
			||||||
		<input id="search_page_size" name="search_page_size" value="{{.search_page_size}}">
 | 
							<input id="search_page_size" name="search_page_size" value="{{.search_page_size}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="optional field">
 | 
						<div class="optional field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label for="skip_local_two_fa"><strong>{{.i18n.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
								<label for="skip_local_two_fa"><strong>{{.locale.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
				
			||||||
			<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if .skip_local_two_fa}}checked{{end}}>
 | 
								<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if .skip_local_two_fa}}checked{{end}}>
 | 
				
			||||||
			<p class="help">{{.i18n.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
								<p class="help">{{.locale.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="inline field">
 | 
						<div class="inline field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label for="allow_deactivate_all"><strong>{{.i18n.Tr "admin.auths.allow_deactivate_all"}}</strong></label>
 | 
								<label for="allow_deactivate_all"><strong>{{.locale.Tr "admin.auths.allow_deactivate_all"}}</strong></label>
 | 
				
			||||||
			<input id="allow_deactivate_all" name="allow_deactivate_all" type="checkbox" {{if .allow_deactivate_all}}checked{{end}}>
 | 
								<input id="allow_deactivate_all" name="allow_deactivate_all" type="checkbox" {{if .allow_deactivate_all}}checked{{end}}>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
<div class="oauth2 field {{if not (eq .type 6)}}hide{{end}}">
 | 
					<div class="oauth2 field {{if not (eq .type 6)}}hide{{end}}">
 | 
				
			||||||
	<div class="inline required field">
 | 
						<div class="inline required field">
 | 
				
			||||||
		<label>{{.i18n.Tr "admin.auths.oauth2_provider"}}</label>
 | 
							<label>{{.locale.Tr "admin.auths.oauth2_provider"}}</label>
 | 
				
			||||||
		<div class="ui selection type dropdown">
 | 
							<div class="ui selection type dropdown">
 | 
				
			||||||
			<input type="hidden" id="oauth2_provider" name="oauth2_provider" value="{{.oauth2_provider}}">
 | 
								<input type="hidden" id="oauth2_provider" name="oauth2_provider" value="{{.oauth2_provider}}">
 | 
				
			||||||
			<div class="text">{{.oauth2_provider}}</div>
 | 
								<div class="text">{{.oauth2_provider}}</div>
 | 
				
			||||||
@@ -13,53 +13,53 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="required field">
 | 
						<div class="required field">
 | 
				
			||||||
		<label for="oauth2_key">{{.i18n.Tr "admin.auths.oauth2_clientID"}}</label>
 | 
							<label for="oauth2_key">{{.locale.Tr "admin.auths.oauth2_clientID"}}</label>
 | 
				
			||||||
		<input id="oauth2_key" name="oauth2_key" value="{{.oauth2_key}}">
 | 
							<input id="oauth2_key" name="oauth2_key" value="{{.oauth2_key}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="required field">
 | 
						<div class="required field">
 | 
				
			||||||
		<label for="oauth2_secret">{{.i18n.Tr "admin.auths.oauth2_clientSecret"}}</label>
 | 
							<label for="oauth2_secret">{{.locale.Tr "admin.auths.oauth2_clientSecret"}}</label>
 | 
				
			||||||
		<input id="oauth2_secret" name="oauth2_secret" value="{{.oauth2_secret}}">
 | 
							<input id="oauth2_secret" name="oauth2_secret" value="{{.oauth2_secret}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="optional field">
 | 
						<div class="optional field">
 | 
				
			||||||
		<label for="oauth2_icon_url">{{.i18n.Tr "admin.auths.oauth2_icon_url"}}</label>
 | 
							<label for="oauth2_icon_url">{{.locale.Tr "admin.auths.oauth2_icon_url"}}</label>
 | 
				
			||||||
		<input id="oauth2_icon_url" name="oauth2_icon_url" value="{{.oauth2_icon_url}}">
 | 
							<input id="oauth2_icon_url" name="oauth2_icon_url" value="{{.oauth2_icon_url}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="open_id_connect_auto_discovery_url required field">
 | 
						<div class="open_id_connect_auto_discovery_url required field">
 | 
				
			||||||
		<label for="open_id_connect_auto_discovery_url">{{.i18n.Tr "admin.auths.openIdConnectAutoDiscoveryURL"}}</label>
 | 
							<label for="open_id_connect_auto_discovery_url">{{.locale.Tr "admin.auths.openIdConnectAutoDiscoveryURL"}}</label>
 | 
				
			||||||
		<input id="open_id_connect_auto_discovery_url" name="open_id_connect_auto_discovery_url" value="{{.open_id_connect_auto_discovery_url}}">
 | 
							<input id="open_id_connect_auto_discovery_url" name="open_id_connect_auto_discovery_url" value="{{.open_id_connect_auto_discovery_url}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="optional field">
 | 
						<div class="optional field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label for="skip_local_two_fa"><strong>{{.i18n.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
								<label for="skip_local_two_fa"><strong>{{.locale.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
				
			||||||
			<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if .skip_local_two_fa}}checked{{end}}>
 | 
								<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if .skip_local_two_fa}}checked{{end}}>
 | 
				
			||||||
			<p class="help">{{.i18n.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
								<p class="help">{{.locale.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<div class="oauth2_use_custom_url inline field">
 | 
						<div class="oauth2_use_custom_url inline field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label><strong>{{.i18n.Tr "admin.auths.oauth2_use_custom_url"}}</strong></label>
 | 
								<label><strong>{{.locale.Tr "admin.auths.oauth2_use_custom_url"}}</strong></label>
 | 
				
			||||||
			<input id="oauth2_use_custom_url" name="oauth2_use_custom_url" type="checkbox">
 | 
								<input id="oauth2_use_custom_url" name="oauth2_use_custom_url" type="checkbox">
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="oauth2_use_custom_url_field oauth2_auth_url required field">
 | 
						<div class="oauth2_use_custom_url_field oauth2_auth_url required field">
 | 
				
			||||||
		<label for="oauth2_auth_url">{{.i18n.Tr "admin.auths.oauth2_authURL"}}</label>
 | 
							<label for="oauth2_auth_url">{{.locale.Tr "admin.auths.oauth2_authURL"}}</label>
 | 
				
			||||||
		<input id="oauth2_auth_url" name="oauth2_auth_url" value="{{.oauth2_auth_url}}">
 | 
							<input id="oauth2_auth_url" name="oauth2_auth_url" value="{{.oauth2_auth_url}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="oauth2_use_custom_url_field oauth2_token_url required field">
 | 
						<div class="oauth2_use_custom_url_field oauth2_token_url required field">
 | 
				
			||||||
		<label for="oauth2_token_url">{{.i18n.Tr "admin.auths.oauth2_tokenURL"}}</label>
 | 
							<label for="oauth2_token_url">{{.locale.Tr "admin.auths.oauth2_tokenURL"}}</label>
 | 
				
			||||||
		<input id="oauth2_token_url" name="oauth2_token_url" value="{{.oauth2_token_url}}">
 | 
							<input id="oauth2_token_url" name="oauth2_token_url" value="{{.oauth2_token_url}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="oauth2_use_custom_url_field oauth2_profile_url required field">
 | 
						<div class="oauth2_use_custom_url_field oauth2_profile_url required field">
 | 
				
			||||||
		<label for="oauth2_profile_url">{{.i18n.Tr "admin.auths.oauth2_profileURL"}}</label>
 | 
							<label for="oauth2_profile_url">{{.locale.Tr "admin.auths.oauth2_profileURL"}}</label>
 | 
				
			||||||
		<input id="oauth2_profile_url" name="oauth2_profile_url" value="{{.oauth2_profile_url}}">
 | 
							<input id="oauth2_profile_url" name="oauth2_profile_url" value="{{.oauth2_profile_url}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="oauth2_use_custom_url_field oauth2_email_url required field">
 | 
						<div class="oauth2_use_custom_url_field oauth2_email_url required field">
 | 
				
			||||||
		<label for="oauth2_email_url">{{.i18n.Tr "admin.auths.oauth2_emailURL"}}</label>
 | 
							<label for="oauth2_email_url">{{.locale.Tr "admin.auths.oauth2_emailURL"}}</label>
 | 
				
			||||||
		<input id="oauth2_email_url" name="oauth2_email_url" value="{{.oauth2_email_url}}">
 | 
							<input id="oauth2_email_url" name="oauth2_email_url" value="{{.oauth2_email_url}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="oauth2_use_custom_url_field oauth2_tenant required field">
 | 
						<div class="oauth2_use_custom_url_field oauth2_tenant required field">
 | 
				
			||||||
		<label for="oauth2_tenant">{{.i18n.Tr "admin.auths.oauth2_tenant"}}</label>
 | 
							<label for="oauth2_tenant">{{.locale.Tr "admin.auths.oauth2_tenant"}}</label>
 | 
				
			||||||
		<input id="oauth2_tenant" name="oauth2_tenant" value="{{.oauth2_tenant}}">
 | 
							<input id="oauth2_tenant" name="oauth2_tenant" value="{{.oauth2_tenant}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -73,29 +73,29 @@
 | 
				
			|||||||
	{{end}}{{end}}
 | 
						{{end}}{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="oauth2_scopes">{{.i18n.Tr "admin.auths.oauth2_scopes"}}</label>
 | 
							<label for="oauth2_scopes">{{.locale.Tr "admin.auths.oauth2_scopes"}}</label>
 | 
				
			||||||
		<input id="oauth2_scopes" name="oauth2_scopes" values="{{.oauth2_scopes}}">
 | 
							<input id="oauth2_scopes" name="oauth2_scopes" values="{{.oauth2_scopes}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="oauth2_required_claim_name">{{.i18n.Tr "admin.auths.oauth2_required_claim_name"}}</label>
 | 
							<label for="oauth2_required_claim_name">{{.locale.Tr "admin.auths.oauth2_required_claim_name"}}</label>
 | 
				
			||||||
		<input id="oauth2_required_claim_name" name="oauth2_required_claim_name" values="{{.oauth2_required_claim_name}}">
 | 
							<input id="oauth2_required_claim_name" name="oauth2_required_claim_name" values="{{.oauth2_required_claim_name}}">
 | 
				
			||||||
		<p class="help">{{.i18n.Tr "admin.auths.oauth2_required_claim_name_helper"}}</p>
 | 
							<p class="help">{{.locale.Tr "admin.auths.oauth2_required_claim_name_helper"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="oauth2_required_claim_value">{{.i18n.Tr "admin.auths.oauth2_required_claim_value"}}</label>
 | 
							<label for="oauth2_required_claim_value">{{.locale.Tr "admin.auths.oauth2_required_claim_value"}}</label>
 | 
				
			||||||
		<input id="oauth2_required_claim_value" name="oauth2_required_claim_value" values="{{.oauth2_required_claim_value}}">
 | 
							<input id="oauth2_required_claim_value" name="oauth2_required_claim_value" values="{{.oauth2_required_claim_value}}">
 | 
				
			||||||
		<p class="help">{{.i18n.Tr "admin.auths.oauth2_required_claim_value_helper"}}</p>
 | 
							<p class="help">{{.locale.Tr "admin.auths.oauth2_required_claim_value_helper"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="oauth2_group_claim_name">{{.i18n.Tr "admin.auths.oauth2_group_claim_name"}}</label>
 | 
							<label for="oauth2_group_claim_name">{{.locale.Tr "admin.auths.oauth2_group_claim_name"}}</label>
 | 
				
			||||||
		<input id="oauth2_group_claim_name" name="oauth2_group_claim_name" value="{{.oauth2_group_claim_name}}">
 | 
							<input id="oauth2_group_claim_name" name="oauth2_group_claim_name" value="{{.oauth2_group_claim_name}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="oauth2_admin_group">{{.i18n.Tr "admin.auths.oauth2_admin_group"}}</label>
 | 
							<label for="oauth2_admin_group">{{.locale.Tr "admin.auths.oauth2_admin_group"}}</label>
 | 
				
			||||||
		<input id="oauth2_admin_group" name="oauth2_admin_group" value="{{.oauth2_group_claim_name}}">
 | 
							<input id="oauth2_admin_group" name="oauth2_admin_group" value="{{.oauth2_group_claim_name}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="oauth2_restricted_group">{{.i18n.Tr "admin.auths.oauth2_restricted_group"}}</label>
 | 
							<label for="oauth2_restricted_group">{{.locale.Tr "admin.auths.oauth2_restricted_group"}}</label>
 | 
				
			||||||
		<input id="oauth2_restricted_group" name="oauth2_restricted_group" value="{{.oauth2_group_claim_name}}">
 | 
							<input id="oauth2_restricted_group" name="oauth2_restricted_group" value="{{.oauth2_group_claim_name}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
<div class="smtp field {{if not (eq .type 3)}}hide{{end}}">
 | 
					<div class="smtp field {{if not (eq .type 3)}}hide{{end}}">
 | 
				
			||||||
	<div class="inline required field">
 | 
						<div class="inline required field">
 | 
				
			||||||
		<label>{{.i18n.Tr "admin.auths.smtp_auth"}}</label>
 | 
							<label>{{.locale.Tr "admin.auths.smtp_auth"}}</label>
 | 
				
			||||||
		<div class="ui selection type dropdown">
 | 
							<div class="ui selection type dropdown">
 | 
				
			||||||
			<input type="hidden" id="smtp_auth" name="smtp_auth" value="{{.smtp_auth}}">
 | 
								<input type="hidden" id="smtp_auth" name="smtp_auth" value="{{.smtp_auth}}">
 | 
				
			||||||
			<div class="text">{{.smtp_auth}}</div>
 | 
								<div class="text">{{.smtp_auth}}</div>
 | 
				
			||||||
@@ -13,47 +13,47 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="required field">
 | 
						<div class="required field">
 | 
				
			||||||
		<label for="smtp_host">{{.i18n.Tr "admin.auths.smtphost"}}</label>
 | 
							<label for="smtp_host">{{.locale.Tr "admin.auths.smtphost"}}</label>
 | 
				
			||||||
		<input id="smtp_host" name="smtp_host" value="{{.smtp_host}}">
 | 
							<input id="smtp_host" name="smtp_host" value="{{.smtp_host}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="required field">
 | 
						<div class="required field">
 | 
				
			||||||
		<label for="smtp_port">{{.i18n.Tr "admin.auths.smtpport"}}</label>
 | 
							<label for="smtp_port">{{.locale.Tr "admin.auths.smtpport"}}</label>
 | 
				
			||||||
		<input id="smtp_port" name="smtp_port" value="{{.smtp_port}}">
 | 
							<input id="smtp_port" name="smtp_port" value="{{.smtp_port}}">
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="inline field">
 | 
						<div class="inline field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label for="force_smtps"><strong>{{.i18n.Tr "admin.auths.force_smtps"}}</strong></label>
 | 
								<label for="force_smtps"><strong>{{.locale.Tr "admin.auths.force_smtps"}}</strong></label>
 | 
				
			||||||
			<input id="force_smtps" name="force_smtps" type="checkbox" {{if .force_smtps}}checked{{end}}>
 | 
								<input id="force_smtps" name="force_smtps" type="checkbox" {{if .force_smtps}}checked{{end}}>
 | 
				
			||||||
			<p class="help">{{.i18n.Tr "admin.auths.force_smtps_helper"}}</p>
 | 
								<p class="help">{{.locale.Tr "admin.auths.force_smtps_helper"}}</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="inline field">
 | 
						<div class="inline field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label><strong>{{.i18n.Tr "admin.auths.skip_tls_verify"}}</strong></label>
 | 
								<label><strong>{{.locale.Tr "admin.auths.skip_tls_verify"}}</strong></label>
 | 
				
			||||||
			<input name="skip_verify" type="checkbox" {{if .skip_verify}}checked{{end}}>
 | 
								<input name="skip_verify" type="checkbox" {{if .skip_verify}}checked{{end}}>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="helo_hostname">{{.i18n.Tr "admin.auths.helo_hostname"}}</label>
 | 
							<label for="helo_hostname">{{.locale.Tr "admin.auths.helo_hostname"}}</label>
 | 
				
			||||||
		<input id="helo_hostname" name="helo_hostname" value="{{.helo_hostname}}">
 | 
							<input id="helo_hostname" name="helo_hostname" value="{{.helo_hostname}}">
 | 
				
			||||||
		<p class="help">{{.i18n.Tr "admin.auths.helo_hostname_helper"}}</p>
 | 
							<p class="help">{{.locale.Tr "admin.auths.helo_hostname_helper"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="inline field">
 | 
						<div class="inline field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label for="disable_helo"><strong>{{.i18n.Tr "admin.auths.disable_helo"}}</strong></label>
 | 
								<label for="disable_helo"><strong>{{.locale.Tr "admin.auths.disable_helo"}}</strong></label>
 | 
				
			||||||
			<input id="disable_helo" name="disable_helo" type="checkbox" {{if .disable_helo}}checked{{end}}>
 | 
								<input id="disable_helo" name="disable_helo" type="checkbox" {{if .disable_helo}}checked{{end}}>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="allowed_domains">{{.i18n.Tr "admin.auths.allowed_domains"}}</label>
 | 
							<label for="allowed_domains">{{.locale.Tr "admin.auths.allowed_domains"}}</label>
 | 
				
			||||||
		<input id="allowed_domains" name="allowed_domains" value="{{.allowed_domains}}">
 | 
							<input id="allowed_domains" name="allowed_domains" value="{{.allowed_domains}}">
 | 
				
			||||||
		<p class="help">{{.i18n.Tr "admin.auths.allowed_domains_helper"}}</p>
 | 
							<p class="help">{{.locale.Tr "admin.auths.allowed_domains_helper"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="optional field">
 | 
						<div class="optional field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label for="skip_local_two_fa"><strong>{{.i18n.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
								<label for="skip_local_two_fa"><strong>{{.locale.Tr "admin.auths.skip_local_two_fa"}}</strong></label>
 | 
				
			||||||
			<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if .skip_local_two_fa}}checked{{end}}>
 | 
								<input id="skip_local_two_fa" name="skip_local_two_fa" type="checkbox" {{if .skip_local_two_fa}}checked{{end}}>
 | 
				
			||||||
			<p class="help">{{.i18n.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
								<p class="help">{{.locale.Tr "admin.auths.skip_local_two_fa_helper"}}</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,32 +1,32 @@
 | 
				
			|||||||
<div class="sspi field {{if not (eq .type 7)}}hide{{end}}">
 | 
					<div class="sspi field {{if not (eq .type 7)}}hide{{end}}">
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label for="sspi_auto_create_users"><strong>{{.i18n.Tr "admin.auths.sspi_auto_create_users"}}</strong></label>
 | 
								<label for="sspi_auto_create_users"><strong>{{.locale.Tr "admin.auths.sspi_auto_create_users"}}</strong></label>
 | 
				
			||||||
			<input id="sspi_auto_create_users" name="sspi_auto_create_users" class="sspi-auto-create-users" type="checkbox" {{if .SSPIAutoCreateUsers}}checked{{end}}>
 | 
								<input id="sspi_auto_create_users" name="sspi_auto_create_users" class="sspi-auto-create-users" type="checkbox" {{if .SSPIAutoCreateUsers}}checked{{end}}>
 | 
				
			||||||
			<p class="help">{{.i18n.Tr "admin.auths.sspi_auto_create_users_helper"}}</p>
 | 
								<p class="help">{{.locale.Tr "admin.auths.sspi_auto_create_users_helper"}}</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label for="sspi_auto_activate_users"><strong>{{.i18n.Tr "admin.auths.sspi_auto_activate_users"}}</strong></label>
 | 
								<label for="sspi_auto_activate_users"><strong>{{.locale.Tr "admin.auths.sspi_auto_activate_users"}}</strong></label>
 | 
				
			||||||
			<input id="sspi_auto_activate_users" name="sspi_auto_activate_users" class="sspi-auto-activate-users" type="checkbox" {{if .SSPIAutoActivateUsers}}checked{{end}}>
 | 
								<input id="sspi_auto_activate_users" name="sspi_auto_activate_users" class="sspi-auto-activate-users" type="checkbox" {{if .SSPIAutoActivateUsers}}checked{{end}}>
 | 
				
			||||||
			<p class="help">{{.i18n.Tr "admin.auths.sspi_auto_activate_users_helper"}}</p>
 | 
								<p class="help">{{.locale.Tr "admin.auths.sspi_auto_activate_users_helper"}}</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<div class="ui checkbox">
 | 
							<div class="ui checkbox">
 | 
				
			||||||
			<label for="sspi_strip_domain_names"><strong>{{.i18n.Tr "admin.auths.sspi_strip_domain_names"}}</strong></label>
 | 
								<label for="sspi_strip_domain_names"><strong>{{.locale.Tr "admin.auths.sspi_strip_domain_names"}}</strong></label>
 | 
				
			||||||
			<input id="sspi_strip_domain_names" name="sspi_strip_domain_names" class="sspi-strip-domain-names" type="checkbox" {{if .SSPIStripDomainNames}}checked{{end}}>
 | 
								<input id="sspi_strip_domain_names" name="sspi_strip_domain_names" class="sspi-strip-domain-names" type="checkbox" {{if .SSPIStripDomainNames}}checked{{end}}>
 | 
				
			||||||
			<p class="help">{{.i18n.Tr "admin.auths.sspi_strip_domain_names_helper"}}</p>
 | 
								<p class="help">{{.locale.Tr "admin.auths.sspi_strip_domain_names_helper"}}</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="required field">
 | 
						<div class="required field">
 | 
				
			||||||
		<label for="sspi_separator_replacement">{{.i18n.Tr "admin.auths.sspi_separator_replacement"}}</label>
 | 
							<label for="sspi_separator_replacement">{{.locale.Tr "admin.auths.sspi_separator_replacement"}}</label>
 | 
				
			||||||
		<input id="sspi_separator_replacement" name="sspi_separator_replacement" value="{{.SSPISeparatorReplacement}}">
 | 
							<input id="sspi_separator_replacement" name="sspi_separator_replacement" value="{{.SSPISeparatorReplacement}}">
 | 
				
			||||||
		<p class="help">{{.i18n.Tr "admin.auths.sspi_separator_replacement_helper"}}</p>
 | 
							<p class="help">{{.locale.Tr "admin.auths.sspi_separator_replacement_helper"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="field">
 | 
						<div class="field">
 | 
				
			||||||
		<label for="sspi_default_language">{{.i18n.Tr "admin.auths.sspi_default_language"}}</label>
 | 
							<label for="sspi_default_language">{{.locale.Tr "admin.auths.sspi_default_language"}}</label>
 | 
				
			||||||
		<div class="ui language selection dropdown" id="sspi_default_language">
 | 
							<div class="ui language selection dropdown" id="sspi_default_language">
 | 
				
			||||||
			<input name="sspi_default_language" type="hidden" value="{{.SSPIDefaultLanguage}}">
 | 
								<input name="sspi_default_language" type="hidden" value="{{.SSPIDefaultLanguage}}">
 | 
				
			||||||
			{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
								{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
@@ -38,6 +38,6 @@
 | 
				
			|||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<p class="help">{{.i18n.Tr "admin.auths.sspi_default_language_helper"}}</p>
 | 
							<p class="help">{{.locale.Tr "admin.auths.sspi_default_language_helper"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,22 +2,22 @@
 | 
				
			|||||||
<!-- Sort -->
 | 
					<!-- Sort -->
 | 
				
			||||||
	<div class="ui dropdown type jump item">
 | 
						<div class="ui dropdown type jump item">
 | 
				
			||||||
		<span class="text">
 | 
							<span class="text">
 | 
				
			||||||
			{{.i18n.Tr "repo.issues.filter_sort"}}
 | 
								{{.locale.Tr "repo.issues.filter_sort"}}
 | 
				
			||||||
			{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
								{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
		</span>
 | 
							</span>
 | 
				
			||||||
		<div class="menu">
 | 
							<div class="menu">
 | 
				
			||||||
			<a class="{{if or (eq .SortType "oldest") (not .SortType)}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
								<a class="{{if or (eq .SortType "oldest") (not .SortType)}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
								<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</a>
 | 
								<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}">{{.locale.Tr "repo.issues.label.filter_sort.alphabetically"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a>
 | 
								<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}">{{.locale.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
								<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
								<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
<form class="ui form ignore-dirty"  style="max-width: 90%;">
 | 
					<form class="ui form ignore-dirty"  style="max-width: 90%;">
 | 
				
			||||||
	<div class="ui fluid action input">
 | 
						<div class="ui fluid action input">
 | 
				
			||||||
		<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
							<input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..." autofocus>
 | 
				
			||||||
		<button class="ui primary button">{{.i18n.Tr "explore.search"}}</button>
 | 
							<button class="ui primary button">{{.locale.Tr "explore.search"}}</button>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,50 +4,50 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.server_config"}}
 | 
								{{.locale.Tr "admin.config.server_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.app_name"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.app_name"}}</dt>
 | 
				
			||||||
				<dd>{{AppName}}</dd>
 | 
									<dd>{{AppName}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.app_ver"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.app_ver"}}</dt>
 | 
				
			||||||
				<dd>{{AppVer}}{{AppBuiltWith}}</dd>
 | 
									<dd>{{AppVer}}{{AppBuiltWith}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.custom_conf"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.custom_conf"}}</dt>
 | 
				
			||||||
				<dd>{{.CustomConf}}</dd>
 | 
									<dd>{{.CustomConf}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.app_url"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.app_url"}}</dt>
 | 
				
			||||||
				<dd>{{.AppUrl}}</dd>
 | 
									<dd>{{.AppUrl}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.domain"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.domain"}}</dt>
 | 
				
			||||||
				<dd>{{.Domain}}</dd>
 | 
									<dd>{{.Domain}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.offline_mode"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.offline_mode"}}</dt>
 | 
				
			||||||
				<dd>{{if .OfflineMode}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .OfflineMode}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.disable_router_log"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.disable_router_log"}}</dt>
 | 
				
			||||||
				<dd>{{if .DisableRouterLog}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .DisableRouterLog}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.run_user"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.run_user"}}</dt>
 | 
				
			||||||
				<dd>{{.RunUser}}</dd>
 | 
									<dd>{{.RunUser}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.run_mode"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.run_mode"}}</dt>
 | 
				
			||||||
				<dd>{{.RunMode}}</dd>
 | 
									<dd>{{.RunMode}}</dd>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_version"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_version"}}</dt>
 | 
				
			||||||
				<dd>{{.GitVersion}}</dd>
 | 
									<dd>{{.GitVersion}}</dd>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.repo_root_path"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.repo_root_path"}}</dt>
 | 
				
			||||||
				<dd>{{.RepoRootPath}}</dd>
 | 
									<dd>{{.RepoRootPath}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.static_file_root_path"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.static_file_root_path"}}</dt>
 | 
				
			||||||
				<dd>{{.StaticRootPath}}</dd>
 | 
									<dd>{{.StaticRootPath}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.custom_file_root_path"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.custom_file_root_path"}}</dt>
 | 
				
			||||||
				<dd>{{.CustomRootPath}}</dd>
 | 
									<dd>{{.CustomRootPath}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.log_file_root_path"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.log_file_root_path"}}</dt>
 | 
				
			||||||
				<dd>{{.LogRootPath}}</dd>
 | 
									<dd>{{.LogRootPath}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.script_type"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.script_type"}}</dt>
 | 
				
			||||||
				<dd>{{.ScriptType}}</dd>
 | 
									<dd>{{.ScriptType}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.reverse_auth_user"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.reverse_auth_user"}}</dt>
 | 
				
			||||||
				<dd>{{.ReverseProxyAuthUser}}</dd>
 | 
									<dd>{{.ReverseProxyAuthUser}}</dd>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				{{if .EnvVars }}
 | 
									{{if .EnvVars }}
 | 
				
			||||||
@@ -62,33 +62,33 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.ssh_config"}}
 | 
								{{.locale.Tr "admin.config.ssh_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.ssh_enabled"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.ssh_enabled"}}</dt>
 | 
				
			||||||
				<dd>{{if not .SSH.Disabled}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if not .SSH.Disabled}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				{{if not .SSH.Disabled}}
 | 
									{{if not .SSH.Disabled}}
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.ssh_start_builtin_server"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.ssh_start_builtin_server"}}</dt>
 | 
				
			||||||
					<dd>{{if .SSH.StartBuiltinServer}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
										<dd>{{if .SSH.StartBuiltinServer}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.ssh_domain"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.ssh_domain"}}</dt>
 | 
				
			||||||
					<dd>{{.SSH.Domain}}</dd>
 | 
										<dd>{{.SSH.Domain}}</dd>
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.ssh_port"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.ssh_port"}}</dt>
 | 
				
			||||||
					<dd>{{.SSH.Port}}</dd>
 | 
										<dd>{{.SSH.Port}}</dd>
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.ssh_listen_port"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.ssh_listen_port"}}</dt>
 | 
				
			||||||
					<dd>{{.SSH.ListenPort}}</dd>
 | 
										<dd>{{.SSH.ListenPort}}</dd>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					{{if not .SSH.StartBuiltinServer}}
 | 
										{{if not .SSH.StartBuiltinServer}}
 | 
				
			||||||
						<dt>{{.i18n.Tr "admin.config.ssh_root_path"}}</dt>
 | 
											<dt>{{.locale.Tr "admin.config.ssh_root_path"}}</dt>
 | 
				
			||||||
						<dd>{{.SSH.RootPath}}</dd>
 | 
											<dd>{{.SSH.RootPath}}</dd>
 | 
				
			||||||
						<dt>{{.i18n.Tr "admin.config.ssh_key_test_path"}}</dt>
 | 
											<dt>{{.locale.Tr "admin.config.ssh_key_test_path"}}</dt>
 | 
				
			||||||
						<dd>{{.SSH.KeyTestPath}}</dd>
 | 
											<dd>{{.SSH.KeyTestPath}}</dd>
 | 
				
			||||||
						<dt>{{.i18n.Tr "admin.config.ssh_keygen_path"}}</dt>
 | 
											<dt>{{.locale.Tr "admin.config.ssh_keygen_path"}}</dt>
 | 
				
			||||||
						<dd>{{.SSH.KeygenPath}}</dd>
 | 
											<dd>{{.SSH.KeygenPath}}</dd>
 | 
				
			||||||
						<dt>{{.i18n.Tr "admin.config.ssh_minimum_key_size_check"}}</dt>
 | 
											<dt>{{.locale.Tr "admin.config.ssh_minimum_key_size_check"}}</dt>
 | 
				
			||||||
						<dd>{{if .SSH.MinimumKeySizeCheck}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
											<dd>{{if .SSH.MinimumKeySizeCheck}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
						{{if .SSH.MinimumKeySizeCheck}}
 | 
											{{if .SSH.MinimumKeySizeCheck}}
 | 
				
			||||||
							<dt>{{.i18n.Tr "admin.config.ssh_minimum_key_sizes"}}</dt>
 | 
												<dt>{{.locale.Tr "admin.config.ssh_minimum_key_sizes"}}</dt>
 | 
				
			||||||
							<dd>{{.SSH.MinimumKeySizes}}</dd>
 | 
												<dd>{{.SSH.MinimumKeySizes}}</dd>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
@@ -97,304 +97,304 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.lfs_config"}}
 | 
								{{.locale.Tr "admin.config.lfs_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.lfs_enabled"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.lfs_enabled"}}</dt>
 | 
				
			||||||
				<dd>{{if .LFS.StartServer}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .LFS.StartServer}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				{{if .LFS.StartServer}}
 | 
									{{if .LFS.StartServer}}
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.lfs_content_path"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.lfs_content_path"}}</dt>
 | 
				
			||||||
					<dd>{{.LFS.Path}}</dd>
 | 
										<dd>{{.LFS.Path}}</dd>
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.lfs_http_auth_expiry"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.lfs_http_auth_expiry"}}</dt>
 | 
				
			||||||
					<dd>{{.LFS.HTTPAuthExpiry}}</dd>
 | 
										<dd>{{.LFS.HTTPAuthExpiry}}</dd>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.db_config"}}
 | 
								{{.locale.Tr "admin.config.db_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.db_type"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.db_type"}}</dt>
 | 
				
			||||||
				<dd>{{.DbCfg.Type}}</dd>
 | 
									<dd>{{.DbCfg.Type}}</dd>
 | 
				
			||||||
				{{if not (eq .DbCfg.Type "sqlite3")}}
 | 
									{{if not (eq .DbCfg.Type "sqlite3")}}
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.db_host"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.db_host"}}</dt>
 | 
				
			||||||
					<dd>{{if .DbCfg.Host}}{{.DbCfg.Host}}{{else}}-{{end}}</dd>
 | 
										<dd>{{if .DbCfg.Host}}{{.DbCfg.Host}}{{else}}-{{end}}</dd>
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.db_name"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.db_name"}}</dt>
 | 
				
			||||||
					<dd>{{if .DbCfg.Name}}{{.DbCfg.Name}}{{else}}-{{end}}</dd>
 | 
										<dd>{{if .DbCfg.Name}}{{.DbCfg.Name}}{{else}}-{{end}}</dd>
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.db_user"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.db_user"}}</dt>
 | 
				
			||||||
					<dd>{{if .DbCfg.User}}{{.DbCfg.User}}{{else}}-{{end}}</dd>
 | 
										<dd>{{if .DbCfg.User}}{{.DbCfg.User}}{{else}}-{{end}}</dd>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{if eq .DbCfg.Type "postgres"}}
 | 
									{{if eq .DbCfg.Type "postgres"}}
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.db_schema"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.db_schema"}}</dt>
 | 
				
			||||||
					<dd>{{if .DbCfg.Schema}}{{.DbCfg.Schema}}{{else}}-{{end}}</dd>
 | 
										<dd>{{if .DbCfg.Schema}}{{.DbCfg.Schema}}{{else}}-{{end}}</dd>
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.db_ssl_mode"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.db_ssl_mode"}}</dt>
 | 
				
			||||||
					<dd>{{if .DbCfg.SSLMode}}{{.DbCfg.SSLMode}}{{else}}-{{end}}</dd>
 | 
										<dd>{{if .DbCfg.SSLMode}}{{.DbCfg.SSLMode}}{{else}}-{{end}}</dd>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{if eq .DbCfg.Type "sqlite3"}}
 | 
									{{if eq .DbCfg.Type "sqlite3"}}
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.db_path"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.db_path"}}</dt>
 | 
				
			||||||
					<dd>{{if .DbCfg.Path}}{{.DbCfg.Path}}{{else}}-{{end}}</dd>
 | 
										<dd>{{if .DbCfg.Path}}{{.DbCfg.Path}}{{else}}-{{end}}</dd>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.service_config"}}
 | 
								{{.locale.Tr "admin.config.service_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.register_email_confirm"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.register_email_confirm"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.RegisterEmailConfirm}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.RegisterEmailConfirm}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.disable_register"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.disable_register"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.DisableRegistration}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.DisableRegistration}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.allow_only_internal_registration"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.allow_only_internal_registration"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.AllowOnlyInternalRegistration}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.AllowOnlyInternalRegistration}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.allow_only_external_registration"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.allow_only_external_registration"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.AllowOnlyExternalRegistration}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.AllowOnlyExternalRegistration}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.show_registration_button"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.show_registration_button"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.ShowRegistrationButton}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.ShowRegistrationButton}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.enable_openid_signup"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.enable_openid_signup"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.EnableOpenIDSignUp}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.EnableOpenIDSignUp}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.enable_openid_signin"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.enable_openid_signin"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.EnableOpenIDSignIn}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.EnableOpenIDSignIn}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.require_sign_in_view"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.require_sign_in_view"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.RequireSignInView}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.RequireSignInView}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.mail_notify"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.mail_notify"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.EnableNotifyMail}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.EnableNotifyMail}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.disable_key_size_check"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.disable_key_size_check"}}</dt>
 | 
				
			||||||
				<dd>{{if .SSH.MinimumKeySizeCheck}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .SSH.MinimumKeySizeCheck}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.enable_captcha"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.enable_captcha"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.EnableCaptcha}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.EnableCaptcha}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.default_keep_email_private"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.default_keep_email_private"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.DefaultKeepEmailPrivate}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.DefaultKeepEmailPrivate}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.default_allow_create_organization"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.default_allow_create_organization"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.DefaultAllowCreateOrganization}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.DefaultAllowCreateOrganization}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.enable_timetracking"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.enable_timetracking"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.EnableTimetracking}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.EnableTimetracking}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				{{if .Service.EnableTimetracking}}
 | 
									{{if .Service.EnableTimetracking}}
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.default_enable_timetracking"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.default_enable_timetracking"}}</dt>
 | 
				
			||||||
					<dd>{{if .Service.DefaultEnableTimetracking}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
										<dd>{{if .Service.DefaultEnableTimetracking}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.default_allow_only_contributors_to_track_time"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.default_allow_only_contributors_to_track_time"}}</dt>
 | 
				
			||||||
					<dd>{{if .Service.DefaultAllowOnlyContributorsToTrackTime}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
										<dd>{{if .Service.DefaultAllowOnlyContributorsToTrackTime}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.default_visibility_organization"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.default_visibility_organization"}}</dt>
 | 
				
			||||||
				<dd>{{.Service.DefaultOrgVisibility}}</dd>
 | 
									<dd>{{.Service.DefaultOrgVisibility}}</dd>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.no_reply_address"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.no_reply_address"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.NoReplyAddress}}{{.Service.NoReplyAddress}}{{else}}-{{end}}</dd>
 | 
									<dd>{{if .Service.NoReplyAddress}}{{.Service.NoReplyAddress}}{{else}}-{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.default_enable_dependencies"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.default_enable_dependencies"}}</dt>
 | 
				
			||||||
				<dd>{{if .Service.DefaultEnableDependencies}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Service.DefaultEnableDependencies}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.active_code_lives"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.active_code_lives"}}</dt>
 | 
				
			||||||
				<dd>{{.Service.ActiveCodeLives}} {{.i18n.Tr "tool.raw_minutes"}}</dd>
 | 
									<dd>{{.Service.ActiveCodeLives}} {{.locale.Tr "tool.raw_minutes"}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.reset_password_code_lives"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.reset_password_code_lives"}}</dt>
 | 
				
			||||||
				<dd>{{.Service.ResetPwdCodeLives}} {{.i18n.Tr "tool.raw_minutes"}}</dd>
 | 
									<dd>{{.Service.ResetPwdCodeLives}} {{.locale.Tr "tool.raw_minutes"}}</dd>
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.webhook_config"}}
 | 
								{{.locale.Tr "admin.config.webhook_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.queue_length"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.queue_length"}}</dt>
 | 
				
			||||||
				<dd>{{.Webhook.QueueLength}}</dd>
 | 
									<dd>{{.Webhook.QueueLength}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.deliver_timeout"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.deliver_timeout"}}</dt>
 | 
				
			||||||
				<dd>{{.Webhook.DeliverTimeout}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
 | 
									<dd>{{.Webhook.DeliverTimeout}} {{.locale.Tr "tool.raw_seconds"}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.skip_tls_verify"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.skip_tls_verify"}}</dt>
 | 
				
			||||||
				<dd>{{if .Webhook.SkipTLSVerify}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Webhook.SkipTLSVerify}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.mailer_config"}}
 | 
								{{.locale.Tr "admin.config.mailer_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.mailer_enabled"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.mailer_enabled"}}</dt>
 | 
				
			||||||
				<dd>{{if .MailerEnabled}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .MailerEnabled}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				{{if .MailerEnabled}}
 | 
									{{if .MailerEnabled}}
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.mailer_name"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.mailer_name"}}</dt>
 | 
				
			||||||
					<dd>{{.Mailer.Name}}</dd>
 | 
										<dd>{{.Mailer.Name}}</dd>
 | 
				
			||||||
					{{if eq .Mailer.MailerType "smtp"}}
 | 
										{{if eq .Mailer.MailerType "smtp"}}
 | 
				
			||||||
						<dt>{{.i18n.Tr "admin.config.mailer_disable_helo"}}</dt>
 | 
											<dt>{{.locale.Tr "admin.config.mailer_disable_helo"}}</dt>
 | 
				
			||||||
						<dd>{{if .DisableHelo}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
											<dd>{{if .DisableHelo}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
						<dt>{{.i18n.Tr "admin.config.mailer_host"}}</dt>
 | 
											<dt>{{.locale.Tr "admin.config.mailer_host"}}</dt>
 | 
				
			||||||
						<dd>{{.Mailer.Host}}</dd>
 | 
											<dd>{{.Mailer.Host}}</dd>
 | 
				
			||||||
					{{else if eq .Mailer.MailerType "sendmail"}}
 | 
										{{else if eq .Mailer.MailerType "sendmail"}}
 | 
				
			||||||
						<dt>{{.i18n.Tr "admin.config.mailer_use_sendmail"}}</dt>
 | 
											<dt>{{.locale.Tr "admin.config.mailer_use_sendmail"}}</dt>
 | 
				
			||||||
						<dd>{{svg "octicon-check"}}</dd>
 | 
											<dd>{{svg "octicon-check"}}</dd>
 | 
				
			||||||
						<dt>{{.i18n.Tr "admin.config.mailer_sendmail_path"}}</dt>
 | 
											<dt>{{.locale.Tr "admin.config.mailer_sendmail_path"}}</dt>
 | 
				
			||||||
						<dd>{{.Mailer.SendmailPath}}</dd>
 | 
											<dd>{{.Mailer.SendmailPath}}</dd>
 | 
				
			||||||
						<dt>{{.i18n.Tr "admin.config.mailer_sendmail_args"}}</dt>
 | 
											<dt>{{.locale.Tr "admin.config.mailer_sendmail_args"}}</dt>
 | 
				
			||||||
						<dd>{{.Mailer.SendmailArgs}}</dd>
 | 
											<dd>{{.Mailer.SendmailArgs}}</dd>
 | 
				
			||||||
						<dt>{{.i18n.Tr "admin.config.mailer_sendmail_timeout"}}</dt>
 | 
											<dt>{{.locale.Tr "admin.config.mailer_sendmail_timeout"}}</dt>
 | 
				
			||||||
						<dd>{{.Mailer.SendmailTimeout}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
 | 
											<dd>{{.Mailer.SendmailTimeout}} {{.locale.Tr "tool.raw_seconds"}}</dd>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.mailer_user"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.mailer_user"}}</dt>
 | 
				
			||||||
					<dd>{{if .Mailer.User}}{{.Mailer.User}}{{else}}(empty){{end}}</dd><br>
 | 
										<dd>{{if .Mailer.User}}{{.Mailer.User}}{{else}}(empty){{end}}</dd><br>
 | 
				
			||||||
					<form class="ui form ignore-dirty" action="{{AppSubUrl}}/admin/config/test_mail" method="post">
 | 
										<form class="ui form ignore-dirty" action="{{AppSubUrl}}/admin/config/test_mail" method="post">
 | 
				
			||||||
						{{.CsrfTokenHtml}}
 | 
											{{.CsrfTokenHtml}}
 | 
				
			||||||
						<div class="inline field ui left">
 | 
											<div class="inline field ui left">
 | 
				
			||||||
							<div class="ui input">
 | 
												<div class="ui input">
 | 
				
			||||||
								<input type="email" name="email" placeholder="{{.i18n.Tr "admin.config.test_email_placeholder"}}" size="29" required>
 | 
													<input type="email" name="email" placeholder="{{.locale.Tr "admin.config.test_email_placeholder"}}" size="29" required>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<button class="ui green button" id="test-mail-btn">{{.i18n.Tr "admin.config.send_test_mail"}}</button>
 | 
											<button class="ui green button" id="test-mail-btn">{{.locale.Tr "admin.config.send_test_mail"}}</button>
 | 
				
			||||||
					</form>
 | 
										</form>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.cache_config"}}
 | 
								{{.locale.Tr "admin.config.cache_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.cache_adapter"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.cache_adapter"}}</dt>
 | 
				
			||||||
				<dd>{{.CacheAdapter}}</dd>
 | 
									<dd>{{.CacheAdapter}}</dd>
 | 
				
			||||||
				{{if eq .CacheAdapter "memory"}}
 | 
									{{if eq .CacheAdapter "memory"}}
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.cache_interval"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.cache_interval"}}</dt>
 | 
				
			||||||
					<dd>{{.CacheInterval}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
 | 
										<dd>{{.CacheInterval}} {{.locale.Tr "tool.raw_seconds"}}</dd>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{if .CacheConn}}
 | 
									{{if .CacheConn}}
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.cache_conn"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.cache_conn"}}</dt>
 | 
				
			||||||
					<dd><code>{{.CacheConn}}</code></dd>
 | 
										<dd><code>{{.CacheConn}}</code></dd>
 | 
				
			||||||
					<dt>{{.i18n.Tr "admin.config.cache_item_ttl"}}</dt>
 | 
										<dt>{{.locale.Tr "admin.config.cache_item_ttl"}}</dt>
 | 
				
			||||||
					<dd><code>{{.CacheItemTTL}}</code></dd>
 | 
										<dd><code>{{.CacheItemTTL}}</code></dd>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.session_config"}}
 | 
								{{.locale.Tr "admin.config.session_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.session_provider"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.session_provider"}}</dt>
 | 
				
			||||||
				<dd>{{.SessionConfig.Provider}}</dd>
 | 
									<dd>{{.SessionConfig.Provider}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.provider_config"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.provider_config"}}</dt>
 | 
				
			||||||
				<dd><code>{{if .SessionConfig.ProviderConfig}}{{.SessionConfig.ProviderConfig}}{{else}}-{{end}}</code></dd>
 | 
									<dd><code>{{if .SessionConfig.ProviderConfig}}{{.SessionConfig.ProviderConfig}}{{else}}-{{end}}</code></dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.cookie_name"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.cookie_name"}}</dt>
 | 
				
			||||||
				<dd>{{.SessionConfig.CookieName}}</dd>
 | 
									<dd>{{.SessionConfig.CookieName}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.gc_interval_time"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.gc_interval_time"}}</dt>
 | 
				
			||||||
				<dd>{{.SessionConfig.Gclifetime}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
 | 
									<dd>{{.SessionConfig.Gclifetime}} {{.locale.Tr "tool.raw_seconds"}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.session_life_time"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.session_life_time"}}</dt>
 | 
				
			||||||
				<dd>{{.SessionConfig.Maxlifetime}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
 | 
									<dd>{{.SessionConfig.Maxlifetime}} {{.locale.Tr "tool.raw_seconds"}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.https_only"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.https_only"}}</dt>
 | 
				
			||||||
				<dd>{{if .SessionConfig.Secure}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .SessionConfig.Secure}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.picture_config"}}
 | 
								{{.locale.Tr "admin.config.picture_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.disable_gravatar"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.disable_gravatar"}}</dt>
 | 
				
			||||||
				<dd>{{if .DisableGravatar}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .DisableGravatar}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.enable_federated_avatar"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.enable_federated_avatar"}}</dt>
 | 
				
			||||||
				<dd>{{if .EnableFederatedAvatar}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .EnableFederatedAvatar}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.git_config"}}
 | 
								{{.locale.Tr "admin.config.git_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_disable_diff_highlight"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_disable_diff_highlight"}}</dt>
 | 
				
			||||||
				<dd>{{if .Git.DisableDiffHighlight}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
									<dd>{{if .Git.DisableDiffHighlight}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_max_diff_lines"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_max_diff_lines"}}</dt>
 | 
				
			||||||
				<dd>{{.Git.MaxGitDiffLines}}</dd>
 | 
									<dd>{{.Git.MaxGitDiffLines}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_max_diff_line_characters"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_max_diff_line_characters"}}</dt>
 | 
				
			||||||
				<dd>{{.Git.MaxGitDiffLineCharacters}}</dd>
 | 
									<dd>{{.Git.MaxGitDiffLineCharacters}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_max_diff_files"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_max_diff_files"}}</dt>
 | 
				
			||||||
				<dd>{{.Git.MaxGitDiffFiles}}</dd>
 | 
									<dd>{{.Git.MaxGitDiffFiles}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_gc_args"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_gc_args"}}</dt>
 | 
				
			||||||
				<dd><code>{{.Git.GCArgs}}</code></dd>
 | 
									<dd><code>{{.Git.GCArgs}}</code></dd>
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_migrate_timeout"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_migrate_timeout"}}</dt>
 | 
				
			||||||
				<dd>{{.Git.Timeout.Migrate}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
 | 
									<dd>{{.Git.Timeout.Migrate}} {{.locale.Tr "tool.raw_seconds"}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_mirror_timeout"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_mirror_timeout"}}</dt>
 | 
				
			||||||
				<dd>{{.Git.Timeout.Mirror}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
 | 
									<dd>{{.Git.Timeout.Mirror}} {{.locale.Tr "tool.raw_seconds"}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_clone_timeout"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_clone_timeout"}}</dt>
 | 
				
			||||||
				<dd>{{.Git.Timeout.Clone}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
 | 
									<dd>{{.Git.Timeout.Clone}} {{.locale.Tr "tool.raw_seconds"}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_pull_timeout"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_pull_timeout"}}</dt>
 | 
				
			||||||
				<dd>{{.Git.Timeout.Pull}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
 | 
									<dd>{{.Git.Timeout.Pull}} {{.locale.Tr "tool.raw_seconds"}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.config.git_gc_timeout"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.config.git_gc_timeout"}}</dt>
 | 
				
			||||||
				<dd>{{.Git.Timeout.GC}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
 | 
									<dd>{{.Git.Timeout.GC}} {{.locale.Tr "tool.raw_seconds"}}</dd>
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.config.log_config"}}
 | 
								{{.locale.Tr "admin.config.log_config"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				{{range .Loggers.default.SubLogDescriptions}}
 | 
									{{range .Loggers.default.SubLogDescriptions}}
 | 
				
			||||||
					<dt>{{$.i18n.Tr "admin.config.log_mode"}}</dt>
 | 
										<dt>{{$.locale.Tr "admin.config.log_mode"}}</dt>
 | 
				
			||||||
					<dd>{{.Name}} ({{.Provider}})</dd>
 | 
										<dd>{{.Name}} ({{.Provider}})</dd>
 | 
				
			||||||
					<dt>{{$.i18n.Tr "admin.config.log_config"}}</dt>
 | 
										<dt>{{$.locale.Tr "admin.config.log_config"}}</dt>
 | 
				
			||||||
					<dd><pre>{{.Config | JsonPrettyPrint}}</pre></dd>
 | 
										<dd><pre>{{.Config | JsonPrettyPrint}}</pre></dd>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<dt>{{$.i18n.Tr "admin.config.router_log_mode"}}</dt>
 | 
									<dt>{{$.locale.Tr "admin.config.router_log_mode"}}</dt>
 | 
				
			||||||
				{{if .DisableRouterLog}}
 | 
									{{if .DisableRouterLog}}
 | 
				
			||||||
					<dd>{{$.i18n.Tr "admin.config.disabled_logger"}}</dd>
 | 
										<dd>{{$.locale.Tr "admin.config.disabled_logger"}}</dd>
 | 
				
			||||||
				{{else}}
 | 
									{{else}}
 | 
				
			||||||
					{{if .Loggers.router.SubLogDescriptions}}
 | 
										{{if .Loggers.router.SubLogDescriptions}}
 | 
				
			||||||
						<dd>{{$.i18n.Tr "admin.config.own_named_logger"}}</dd>
 | 
											<dd>{{$.locale.Tr "admin.config.own_named_logger"}}</dd>
 | 
				
			||||||
						{{range .Loggers.router.SubLogDescriptions}}
 | 
											{{range .Loggers.router.SubLogDescriptions}}
 | 
				
			||||||
							<dt>{{$.i18n.Tr "admin.config.log_mode"}}</dt>
 | 
												<dt>{{$.locale.Tr "admin.config.log_mode"}}</dt>
 | 
				
			||||||
							<dd>{{.Name}} ({{.Provider}})</dd>
 | 
												<dd>{{.Name}} ({{.Provider}})</dd>
 | 
				
			||||||
							<dt>{{$.i18n.Tr "admin.config.log_config"}}</dt>
 | 
												<dt>{{$.locale.Tr "admin.config.log_config"}}</dt>
 | 
				
			||||||
							<dd><pre>{{.Config | JsonPrettyPrint}}</pre></dd>
 | 
												<dd><pre>{{.Config | JsonPrettyPrint}}</pre></dd>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
					{{else}}
 | 
										{{else}}
 | 
				
			||||||
						<dd>{{$.i18n.Tr "admin.config.routes_to_default_logger"}}</dd>
 | 
											<dd>{{$.locale.Tr "admin.config.routes_to_default_logger"}}</dd>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<dt>{{$.i18n.Tr "admin.config.access_log_mode"}}</dt>
 | 
									<dt>{{$.locale.Tr "admin.config.access_log_mode"}}</dt>
 | 
				
			||||||
				{{if .EnableAccessLog}}
 | 
									{{if .EnableAccessLog}}
 | 
				
			||||||
					{{if .Loggers.access.SubLogDescriptions}}
 | 
										{{if .Loggers.access.SubLogDescriptions}}
 | 
				
			||||||
						<dd>{{$.i18n.Tr "admin.config.own_named_logger"}}</dd>
 | 
											<dd>{{$.locale.Tr "admin.config.own_named_logger"}}</dd>
 | 
				
			||||||
						{{range .Loggers.access.SubLogDescriptions}}
 | 
											{{range .Loggers.access.SubLogDescriptions}}
 | 
				
			||||||
							<dt>{{$.i18n.Tr "admin.config.log_mode"}}</dt>
 | 
												<dt>{{$.locale.Tr "admin.config.log_mode"}}</dt>
 | 
				
			||||||
							<dd>{{.Name}} ({{.Provider}})</dd>
 | 
												<dd>{{.Name}} ({{.Provider}})</dd>
 | 
				
			||||||
							<dt>{{$.i18n.Tr "admin.config.log_config"}}</dt>
 | 
												<dt>{{$.locale.Tr "admin.config.log_config"}}</dt>
 | 
				
			||||||
							<dd><pre>{{.Config | JsonPrettyPrint}}</pre></dd>
 | 
												<dd><pre>{{.Config | JsonPrettyPrint}}</pre></dd>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
					{{else}}
 | 
										{{else}}
 | 
				
			||||||
						<dd>{{$.i18n.Tr "admin.config.routes_to_default_logger"}}</dd>
 | 
											<dd>{{$.locale.Tr "admin.config.routes_to_default_logger"}}</dd>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					<dt>{{$.i18n.Tr "admin.config.access_log_template"}}</dt>
 | 
										<dt>{{$.locale.Tr "admin.config.access_log_template"}}</dt>
 | 
				
			||||||
					<dd><code>{{$.AccessLogTemplate}}</code></dd>
 | 
										<dd><code>{{$.AccessLogTemplate}}</code></dd>
 | 
				
			||||||
				{{else}}
 | 
									{{else}}
 | 
				
			||||||
					<dd>{{$.i18n.Tr "admin.config.disabled_logger"}}</dd>
 | 
										<dd>{{$.locale.Tr "admin.config.disabled_logger"}}</dd>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<dt>{{$.i18n.Tr "admin.config.xorm_log_mode"}}</dt>
 | 
									<dt>{{$.locale.Tr "admin.config.xorm_log_mode"}}</dt>
 | 
				
			||||||
				{{if .EnableXORMLog}}
 | 
									{{if .EnableXORMLog}}
 | 
				
			||||||
					{{if .Loggers.xorm.SubLogDescriptions}}
 | 
										{{if .Loggers.xorm.SubLogDescriptions}}
 | 
				
			||||||
						<dd>{{$.i18n.Tr "admin.config.own_named_logger"}}</dd>
 | 
											<dd>{{$.locale.Tr "admin.config.own_named_logger"}}</dd>
 | 
				
			||||||
						{{range .Loggers.xorm.SubLogDescriptions}}
 | 
											{{range .Loggers.xorm.SubLogDescriptions}}
 | 
				
			||||||
							<dt>{{$.i18n.Tr "admin.config.log_mode"}}</dt>
 | 
												<dt>{{$.locale.Tr "admin.config.log_mode"}}</dt>
 | 
				
			||||||
							<dd>{{.Name}} ({{.Provider}})</dd>
 | 
												<dd>{{.Name}} ({{.Provider}})</dd>
 | 
				
			||||||
							<dt>{{$.i18n.Tr "admin.config.log_config"}}</dt>
 | 
												<dt>{{$.locale.Tr "admin.config.log_config"}}</dt>
 | 
				
			||||||
							<dd><pre>{{.Config | JsonPrettyPrint}}</pre></dd>
 | 
												<dd><pre>{{.Config | JsonPrettyPrint}}</pre></dd>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
					{{else}}
 | 
										{{else}}
 | 
				
			||||||
						<dd>{{$.i18n.Tr "admin.config.routes_to_default_logger"}}</dd>
 | 
											<dd>{{$.locale.Tr "admin.config.routes_to_default_logger"}}</dd>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					<dt>{{$.i18n.Tr "admin.config.xorm_log_sql"}}</dt>
 | 
										<dt>{{$.locale.Tr "admin.config.xorm_log_sql"}}</dt>
 | 
				
			||||||
					<dd>{{if $.LogSQL}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
										<dd>{{if $.LogSQL}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</dd>
 | 
				
			||||||
				{{else}}
 | 
									{{else}}
 | 
				
			||||||
					<dd>{{$.i18n.Tr "admin.config.disabled_logger"}}</dd>
 | 
										<dd>{{$.locale.Tr "admin.config.disabled_logger"}}</dd>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
<h4 class="ui top attached header">
 | 
					<h4 class="ui top attached header">
 | 
				
			||||||
	{{.i18n.Tr "admin.monitor.cron"}}
 | 
						{{.locale.Tr "admin.monitor.cron"}}
 | 
				
			||||||
</h4>
 | 
					</h4>
 | 
				
			||||||
<div class="ui attached table segment">
 | 
					<div class="ui attached table segment">
 | 
				
			||||||
	<form method="post" action="{{AppSubUrl}}/admin">
 | 
						<form method="post" action="{{AppSubUrl}}/admin">
 | 
				
			||||||
@@ -7,24 +7,24 @@
 | 
				
			|||||||
			<thead>
 | 
								<thead>
 | 
				
			||||||
				<tr>
 | 
									<tr>
 | 
				
			||||||
					<th></th>
 | 
										<th></th>
 | 
				
			||||||
					<th>{{.i18n.Tr "admin.monitor.name"}}</th>
 | 
										<th>{{.locale.Tr "admin.monitor.name"}}</th>
 | 
				
			||||||
					<th>{{.i18n.Tr "admin.monitor.schedule"}}</th>
 | 
										<th>{{.locale.Tr "admin.monitor.schedule"}}</th>
 | 
				
			||||||
					<th>{{.i18n.Tr "admin.monitor.next"}}</th>
 | 
										<th>{{.locale.Tr "admin.monitor.next"}}</th>
 | 
				
			||||||
					<th>{{.i18n.Tr "admin.monitor.previous"}}</th>
 | 
										<th>{{.locale.Tr "admin.monitor.previous"}}</th>
 | 
				
			||||||
					<th>{{.i18n.Tr "admin.monitor.execute_times"}}</th>
 | 
										<th>{{.locale.Tr "admin.monitor.execute_times"}}</th>
 | 
				
			||||||
					<th>{{.i18n.Tr "admin.monitor.last_execution_result"}}</th>
 | 
										<th>{{.locale.Tr "admin.monitor.last_execution_result"}}</th>
 | 
				
			||||||
				</tr>
 | 
									</tr>
 | 
				
			||||||
			</thead>
 | 
								</thead>
 | 
				
			||||||
			<tbody>
 | 
								<tbody>
 | 
				
			||||||
				{{range .Entries}}
 | 
									{{range .Entries}}
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<td><button type="submit" class="ui green button" name="op" value="{{.Name}}" title="{{$.i18n.Tr "admin.dashboard.operation_run"}}">{{svg "octicon-triangle-right"}}</button></td>
 | 
											<td><button type="submit" class="ui green button" name="op" value="{{.Name}}" title="{{$.locale.Tr "admin.dashboard.operation_run"}}">{{svg "octicon-triangle-right"}}</button></td>
 | 
				
			||||||
						<td>{{$.i18n.Tr (printf "admin.dashboard.%s" .Name)}}</td>
 | 
											<td>{{$.locale.Tr (printf "admin.dashboard.%s" .Name)}}</td>
 | 
				
			||||||
						<td>{{.Spec}}</td>
 | 
											<td>{{.Spec}}</td>
 | 
				
			||||||
						<td>{{DateFmtLong .Next}}</td>
 | 
											<td>{{DateFmtLong .Next}}</td>
 | 
				
			||||||
						<td>{{if gt .Prev.Year 1 }}{{DateFmtLong .Prev}}{{else}}N/A{{end}}</td>
 | 
											<td>{{if gt .Prev.Year 1 }}{{DateFmtLong .Prev}}{{else}}N/A{{end}}</td>
 | 
				
			||||||
						<td>{{.ExecTimes}}</td>
 | 
											<td>{{.ExecTimes}}</td>
 | 
				
			||||||
						<td {{if ne .Status ""}}class="tooltip" data-content="{{.FormatLastMessage $.i18n}}"{{end}} >{{if eq .Status "" }}—{{else if eq .Status "finished"}}{{svg "octicon-check" 16}}{{else}}{{svg "octicon-x" 16}}{{end}}</td>
 | 
											<td {{if ne .Status ""}}class="tooltip" data-content="{{.FormatLastMessage $.locale}}"{{end}} >{{if eq .Status "" }}—{{else if eq .Status "finished"}}{{svg "octicon-check" 16}}{{else}}{{svg "octicon-x" 16}}{{end}}</td>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</tbody>
 | 
								</tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,19 +5,19 @@
 | 
				
			|||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		{{if .NeedUpdate}}
 | 
							{{if .NeedUpdate}}
 | 
				
			||||||
			<div class="ui negative message flash-error">
 | 
								<div class="ui negative message flash-error">
 | 
				
			||||||
				<p>{{(.i18n.Tr "admin.dashboard.new_version_hint" .RemoteVersion AppVer) | Str2html}}</p>
 | 
									<p>{{(.locale.Tr "admin.dashboard.new_version_hint" .RemoteVersion AppVer) | Str2html}}</p>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.dashboard.statistic"}}
 | 
								{{.locale.Tr "admin.dashboard.statistic"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<p>
 | 
								<p>
 | 
				
			||||||
				{{.i18n.Tr "admin.dashboard.statistic_info" .Stats.Counter.User .Stats.Counter.Org .Stats.Counter.PublicKey .Stats.Counter.Repo .Stats.Counter.Watch .Stats.Counter.Star .Stats.Counter.Action .Stats.Counter.Access .Stats.Counter.Issue .Stats.Counter.Comment .Stats.Counter.Oauth .Stats.Counter.Follow .Stats.Counter.Mirror .Stats.Counter.Release .Stats.Counter.AuthSource .Stats.Counter.Webhook .Stats.Counter.Milestone .Stats.Counter.Label .Stats.Counter.HookTask .Stats.Counter.Team .Stats.Counter.UpdateTask .Stats.Counter.Attachment | Str2html}}
 | 
									{{.locale.Tr "admin.dashboard.statistic_info" .Stats.Counter.User .Stats.Counter.Org .Stats.Counter.PublicKey .Stats.Counter.Repo .Stats.Counter.Watch .Stats.Counter.Star .Stats.Counter.Action .Stats.Counter.Access .Stats.Counter.Issue .Stats.Counter.Comment .Stats.Counter.Oauth .Stats.Counter.Follow .Stats.Counter.Mirror .Stats.Counter.Release .Stats.Counter.AuthSource .Stats.Counter.Webhook .Stats.Counter.Milestone .Stats.Counter.Label .Stats.Counter.HookTask .Stats.Counter.Team .Stats.Counter.UpdateTask .Stats.Counter.Attachment | Str2html}}
 | 
				
			||||||
			</p>
 | 
								</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.dashboard.operations"}}
 | 
								{{.locale.Tr "admin.dashboard.operations"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<form method="post" action="{{AppSubUrl}}/admin">
 | 
							<form method="post" action="{{AppSubUrl}}/admin">
 | 
				
			||||||
			{{.CsrfTokenHtml}}
 | 
								{{.CsrfTokenHtml}}
 | 
				
			||||||
@@ -25,52 +25,52 @@
 | 
				
			|||||||
				<table class="ui very basic table">
 | 
									<table class="ui very basic table">
 | 
				
			||||||
					<tbody>
 | 
										<tbody>
 | 
				
			||||||
						<tr>
 | 
											<tr>
 | 
				
			||||||
							<td>{{.i18n.Tr "admin.dashboard.delete_inactive_accounts"}}</td>
 | 
												<td>{{.locale.Tr "admin.dashboard.delete_inactive_accounts"}}</td>
 | 
				
			||||||
							<td><button type="submit" class="ui green button" name="op" value="delete_inactive_accounts">{{svg "octicon-play"}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
												<td><button type="submit" class="ui green button" name="op" value="delete_inactive_accounts">{{svg "octicon-play"}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
						<tr>
 | 
											<tr>
 | 
				
			||||||
							<td>{{.i18n.Tr "admin.dashboard.delete_repo_archives"}}</td>
 | 
												<td>{{.locale.Tr "admin.dashboard.delete_repo_archives"}}</td>
 | 
				
			||||||
							<td><button type="submit" class="ui green button" name="op" value="delete_repo_archives">{{svg "octicon-play"}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
												<td><button type="submit" class="ui green button" name="op" value="delete_repo_archives">{{svg "octicon-play"}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
						<tr>
 | 
											<tr>
 | 
				
			||||||
							<td>{{.i18n.Tr "admin.dashboard.delete_missing_repos"}}</td>
 | 
												<td>{{.locale.Tr "admin.dashboard.delete_missing_repos"}}</td>
 | 
				
			||||||
							<td><button type="submit" class="ui green button" name="op" value="delete_missing_repos">{{svg "octicon-play"}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
												<td><button type="submit" class="ui green button" name="op" value="delete_missing_repos">{{svg "octicon-play"}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
						<tr>
 | 
											<tr>
 | 
				
			||||||
							<td>{{.i18n.Tr "admin.dashboard.git_gc_repos"}}</td>
 | 
												<td>{{.locale.Tr "admin.dashboard.git_gc_repos"}}</td>
 | 
				
			||||||
							<td><button type="submit" class="ui green button" name="op" value="git_gc_repos">{{svg "octicon-play"}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
												<td><button type="submit" class="ui green button" name="op" value="git_gc_repos">{{svg "octicon-play"}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
						{{if and (not .SSH.Disabled) (not .SSH.StartBuiltinServer)}}
 | 
											{{if and (not .SSH.Disabled) (not .SSH.StartBuiltinServer)}}
 | 
				
			||||||
							<tr>
 | 
												<tr>
 | 
				
			||||||
								<td>{{.i18n.Tr "admin.dashboard.resync_all_sshkeys"}}<br/>
 | 
													<td>{{.locale.Tr "admin.dashboard.resync_all_sshkeys"}}<br/>
 | 
				
			||||||
								{{.i18n.Tr "admin.dashboard.resync_all_sshkeys.desc"}}</td>
 | 
													{{.locale.Tr "admin.dashboard.resync_all_sshkeys.desc"}}</td>
 | 
				
			||||||
								<td><button type="submit" class="ui green button" name="op" value="resync_all_sshkeys">{{svg "octicon-play"}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
													<td><button type="submit" class="ui green button" name="op" value="resync_all_sshkeys">{{svg "octicon-play"}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
							</tr>
 | 
												</tr>
 | 
				
			||||||
							<tr>
 | 
												<tr>
 | 
				
			||||||
								<td>{{.i18n.Tr "admin.dashboard.resync_all_sshprincipals"}}<br/>
 | 
													<td>{{.locale.Tr "admin.dashboard.resync_all_sshprincipals"}}<br/>
 | 
				
			||||||
								{{.i18n.Tr "admin.dashboard.resync_all_sshprincipals.desc"}}</td>
 | 
													{{.locale.Tr "admin.dashboard.resync_all_sshprincipals.desc"}}</td>
 | 
				
			||||||
								<td><button type="submit" class="ui green button" name="op" value="resync_all_sshprincipals">{{svg "octicon-play" 16}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
													<td><button type="submit" class="ui green button" name="op" value="resync_all_sshprincipals">{{svg "octicon-play" 16}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
							</tr>
 | 
												</tr>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						<tr>
 | 
											<tr>
 | 
				
			||||||
							<td>{{.i18n.Tr "admin.dashboard.resync_all_hooks"}}</td>
 | 
												<td>{{.locale.Tr "admin.dashboard.resync_all_hooks"}}</td>
 | 
				
			||||||
							<td><button type="submit" class="ui green button" name="op" value="resync_all_hooks">{{svg "octicon-play"}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
												<td><button type="submit" class="ui green button" name="op" value="resync_all_hooks">{{svg "octicon-play"}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
						<tr>
 | 
											<tr>
 | 
				
			||||||
							<td>{{.i18n.Tr "admin.dashboard.reinit_missing_repos"}}</td>
 | 
												<td>{{.locale.Tr "admin.dashboard.reinit_missing_repos"}}</td>
 | 
				
			||||||
							<td><button type="submit" class="ui green button" name="op" value="reinit_missing_repos">{{svg "octicon-play"}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
												<td><button type="submit" class="ui green button" name="op" value="reinit_missing_repos">{{svg "octicon-play"}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
						<tr>
 | 
											<tr>
 | 
				
			||||||
							<td>{{.i18n.Tr "admin.dashboard.sync_external_users"}}</td>
 | 
												<td>{{.locale.Tr "admin.dashboard.sync_external_users"}}</td>
 | 
				
			||||||
							<td><button type="submit" class="ui green button" name="op" value="sync_external_users">{{svg "octicon-play"}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
												<td><button type="submit" class="ui green button" name="op" value="sync_external_users">{{svg "octicon-play"}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
						<tr>
 | 
											<tr>
 | 
				
			||||||
							<td>{{.i18n.Tr "admin.dashboard.repo_health_check"}}</td>
 | 
												<td>{{.locale.Tr "admin.dashboard.repo_health_check"}}</td>
 | 
				
			||||||
							<td><button type="submit" class="ui green button" name="op" value="repo_health_check">{{svg "octicon-play"}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
												<td><button type="submit" class="ui green button" name="op" value="repo_health_check">{{svg "octicon-play"}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
						<tr>
 | 
											<tr>
 | 
				
			||||||
							<td>{{.i18n.Tr "admin.dashboard.delete_generated_repository_avatars"}}</td>
 | 
												<td>{{.locale.Tr "admin.dashboard.delete_generated_repository_avatars"}}</td>
 | 
				
			||||||
							<td><button type="submit" class="ui green button" name="op" value="delete_generated_repository_avatars">{{svg "octicon-play"}} {{.i18n.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
												<td><button type="submit" class="ui green button" name="op" value="delete_generated_repository_avatars">{{svg "octicon-play"}} {{.locale.Tr "admin.dashboard.operation_run"}}</button></td>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
					</tbody>
 | 
										</tbody>
 | 
				
			||||||
				</table>
 | 
									</table>
 | 
				
			||||||
@@ -78,69 +78,69 @@
 | 
				
			|||||||
		</form>
 | 
							</form>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.dashboard.system_status"}}
 | 
								{{.locale.Tr "admin.dashboard.system_status"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<dl class="dl-horizontal admin-dl-horizontal">
 | 
								<dl class="dl-horizontal admin-dl-horizontal">
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.server_uptime"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.server_uptime"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.Uptime}}</dd>
 | 
									<dd>{{.SysStatus.Uptime}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.current_goroutine"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.current_goroutine"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.NumGoroutine}}</dd>
 | 
									<dd>{{.SysStatus.NumGoroutine}}</dd>
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.current_memory_usage"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.current_memory_usage"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.MemAllocated}}</dd>
 | 
									<dd>{{.SysStatus.MemAllocated}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.total_memory_allocated"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.total_memory_allocated"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.MemTotal}}</dd>
 | 
									<dd>{{.SysStatus.MemTotal}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.memory_obtained"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.memory_obtained"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.MemSys}}</dd>
 | 
									<dd>{{.SysStatus.MemSys}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.pointer_lookup_times"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.pointer_lookup_times"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.Lookups}}</dd>
 | 
									<dd>{{.SysStatus.Lookups}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.memory_allocate_times"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.memory_allocate_times"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.MemMallocs}}</dd>
 | 
									<dd>{{.SysStatus.MemMallocs}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.memory_free_times"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.memory_free_times"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.MemFrees}}</dd>
 | 
									<dd>{{.SysStatus.MemFrees}}</dd>
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.current_heap_usage"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.current_heap_usage"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.HeapAlloc}}</dd>
 | 
									<dd>{{.SysStatus.HeapAlloc}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.heap_memory_obtained"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.heap_memory_obtained"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.HeapSys}}</dd>
 | 
									<dd>{{.SysStatus.HeapSys}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.heap_memory_idle"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.heap_memory_idle"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.HeapIdle}}</dd>
 | 
									<dd>{{.SysStatus.HeapIdle}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.heap_memory_in_use"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.heap_memory_in_use"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.HeapInuse}}</dd>
 | 
									<dd>{{.SysStatus.HeapInuse}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.heap_memory_released"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.heap_memory_released"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.HeapReleased}}</dd>
 | 
									<dd>{{.SysStatus.HeapReleased}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.heap_objects"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.heap_objects"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.HeapObjects}}</dd>
 | 
									<dd>{{.SysStatus.HeapObjects}}</dd>
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.bootstrap_stack_usage"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.bootstrap_stack_usage"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.StackInuse}}</dd>
 | 
									<dd>{{.SysStatus.StackInuse}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.stack_memory_obtained"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.stack_memory_obtained"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.StackSys}}</dd>
 | 
									<dd>{{.SysStatus.StackSys}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.mspan_structures_usage"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.mspan_structures_usage"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.MSpanInuse}}</dd>
 | 
									<dd>{{.SysStatus.MSpanInuse}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.mspan_structures_obtained"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.mspan_structures_obtained"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.MSpanSys}}</dd>
 | 
									<dd>{{.SysStatus.MSpanSys}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.mcache_structures_usage"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.mcache_structures_usage"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.MCacheInuse}}</dd>
 | 
									<dd>{{.SysStatus.MCacheInuse}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.mcache_structures_obtained"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.mcache_structures_obtained"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.MCacheSys}}</dd>
 | 
									<dd>{{.SysStatus.MCacheSys}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.profiling_bucket_hash_table_obtained"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.profiling_bucket_hash_table_obtained"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.BuckHashSys}}</dd>
 | 
									<dd>{{.SysStatus.BuckHashSys}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.gc_metadata_obtained"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.gc_metadata_obtained"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.GCSys}}</dd>
 | 
									<dd>{{.SysStatus.GCSys}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.other_system_allocation_obtained"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.other_system_allocation_obtained"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.OtherSys}}</dd>
 | 
									<dd>{{.SysStatus.OtherSys}}</dd>
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.next_gc_recycle"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.next_gc_recycle"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.NextGC}}</dd>
 | 
									<dd>{{.SysStatus.NextGC}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.last_gc_time"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.last_gc_time"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.LastGC}}</dd>
 | 
									<dd>{{.SysStatus.LastGC}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.total_gc_pause"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.total_gc_pause"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.PauseTotalNs}}</dd>
 | 
									<dd>{{.SysStatus.PauseTotalNs}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.last_gc_pause"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.last_gc_pause"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.PauseNs}}</dd>
 | 
									<dd>{{.SysStatus.PauseNs}}</dd>
 | 
				
			||||||
				<dt>{{.i18n.Tr "admin.dashboard.gc_times"}}</dt>
 | 
									<dt>{{.locale.Tr "admin.dashboard.gc_times"}}</dt>
 | 
				
			||||||
				<dd>{{.SysStatus.NumGC}}</dd>
 | 
									<dd>{{.SysStatus.NumGC}}</dd>
 | 
				
			||||||
			</dl>
 | 
								</dl>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,28 +4,28 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.emails.email_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}})
 | 
								{{.locale.Tr "admin.emails.email_manage_panel"}} ({{.locale.Tr "admin.total" .Total}})
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<div class="ui right floated secondary filter menu">
 | 
								<div class="ui right floated secondary filter menu">
 | 
				
			||||||
			<!-- Sort -->
 | 
								<!-- Sort -->
 | 
				
			||||||
				<div class="ui dropdown type jump item">
 | 
									<div class="ui dropdown type jump item">
 | 
				
			||||||
					<span class="text">
 | 
										<span class="text">
 | 
				
			||||||
						{{.i18n.Tr "repo.issues.filter_sort"}}
 | 
											{{.locale.Tr "repo.issues.filter_sort"}}
 | 
				
			||||||
						{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
											{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
					</span>
 | 
										</span>
 | 
				
			||||||
					<div class="menu">
 | 
										<div class="menu">
 | 
				
			||||||
						<a class="{{if or (eq .SortType "email") (not .SortType)}}active{{end}} item" href="{{$.Link}}?sort=email&q={{$.Keyword}}">{{.i18n.Tr "admin.emails.filter_sort.email"}}</a>
 | 
											<a class="{{if or (eq .SortType "email") (not .SortType)}}active{{end}} item" href="{{$.Link}}?sort=email&q={{$.Keyword}}">{{.locale.Tr "admin.emails.filter_sort.email"}}</a>
 | 
				
			||||||
						<a class="{{if eq .SortType "reverseemail"}}active{{end}} item" href="{{$.Link}}?sort=reverseemail&q={{$.Keyword}}">{{.i18n.Tr "admin.emails.filter_sort.email_reverse"}}</a>
 | 
											<a class="{{if eq .SortType "reverseemail"}}active{{end}} item" href="{{$.Link}}?sort=reverseemail&q={{$.Keyword}}">{{.locale.Tr "admin.emails.filter_sort.email_reverse"}}</a>
 | 
				
			||||||
						<a class="{{if eq .SortType "username"}}active{{end}} item" href="{{$.Link}}?sort=username&q={{$.Keyword}}">{{.i18n.Tr "admin.emails.filter_sort.name"}}</a>
 | 
											<a class="{{if eq .SortType "username"}}active{{end}} item" href="{{$.Link}}?sort=username&q={{$.Keyword}}">{{.locale.Tr "admin.emails.filter_sort.name"}}</a>
 | 
				
			||||||
						<a class="{{if eq .SortType "reverseusername"}}active{{end}} item" href="{{$.Link}}?sort=reverseusername&q={{$.Keyword}}">{{.i18n.Tr "admin.emails.filter_sort.name_reverse"}}</a>
 | 
											<a class="{{if eq .SortType "reverseusername"}}active{{end}} item" href="{{$.Link}}?sort=reverseusername&q={{$.Keyword}}">{{.locale.Tr "admin.emails.filter_sort.name_reverse"}}</a>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<form class="ui form ignore-dirty"  style="max-width: 90%">
 | 
								<form class="ui form ignore-dirty"  style="max-width: 90%">
 | 
				
			||||||
				<div class="ui fluid action input">
 | 
									<div class="ui fluid action input">
 | 
				
			||||||
					<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
										<input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..." autofocus>
 | 
				
			||||||
					<button class="ui primary button">{{.i18n.Tr "explore.search"}}</button>
 | 
										<button class="ui primary button">{{.locale.Tr "explore.search"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
@@ -34,16 +34,16 @@
 | 
				
			|||||||
				<thead>
 | 
									<thead>
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th data-sortt-asc="username" data-sortt-desc="reverseusername">
 | 
											<th data-sortt-asc="username" data-sortt-desc="reverseusername">
 | 
				
			||||||
							{{.i18n.Tr "admin.users.name"}}
 | 
												{{.locale.Tr "admin.users.name"}}
 | 
				
			||||||
							{{SortArrow "username" "reverseusername" $.SortType false}}
 | 
												{{SortArrow "username" "reverseusername" $.SortType false}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.full_name"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.full_name"}}</th>
 | 
				
			||||||
						<th data-sortt-asc="email" data-sortt-desc="reverseemail" data-sortt-default="true">
 | 
											<th data-sortt-asc="email" data-sortt-desc="reverseemail" data-sortt-default="true">
 | 
				
			||||||
							{{.i18n.Tr "email"}}
 | 
												{{.locale.Tr "email"}}
 | 
				
			||||||
							{{SortArrow "email" "reverseemail" $.SortType true}}
 | 
												{{SortArrow "email" "reverseemail" $.SortType true}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.emails.primary"}}</th>
 | 
											<th>{{.locale.Tr "admin.emails.primary"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.emails.activated"}}</th>
 | 
											<th>{{.locale.Tr "admin.emails.activated"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
@@ -75,10 +75,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		<div class="ui basic modal" id="change-email-modal">
 | 
							<div class="ui basic modal" id="change-email-modal">
 | 
				
			||||||
			<div class="ui icon header">
 | 
								<div class="ui icon header">
 | 
				
			||||||
				{{.i18n.Tr "admin.emails.change_email_header"}}
 | 
									{{.locale.Tr "admin.emails.change_email_header"}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="content center">
 | 
								<div class="content center">
 | 
				
			||||||
				<p>{{.i18n.Tr "admin.emails.change_email_text"}}</p>
 | 
									<p>{{.locale.Tr "admin.emails.change_email_text"}}</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<form class="ui form" id="email-action-form" action="{{AppSubUrl}}/admin/emails/activate" method="post">
 | 
									<form class="ui form" id="email-action-form" action="{{AppSubUrl}}/admin/emails/activate" method="post">
 | 
				
			||||||
					{{$.CsrfTokenHtml}}
 | 
										{{$.CsrfTokenHtml}}
 | 
				
			||||||
@@ -94,8 +94,8 @@
 | 
				
			|||||||
					<input type="hidden" id="form-activate" name="activate" value="" required>
 | 
										<input type="hidden" id="form-activate" name="activate" value="" required>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<div class="center actions">
 | 
										<div class="center actions">
 | 
				
			||||||
						<div class="ui basic cancel inverted button">{{$.i18n.Tr "settings.cancel"}}</div>
 | 
											<div class="ui basic cancel inverted button">{{$.locale.Tr "settings.cancel"}}</div>
 | 
				
			||||||
						<button class="ui basic inverted yellow button">{{$.i18n.Tr "modal.yes"}}</button>
 | 
											<button class="ui basic inverted yellow button">{{$.locale.Tr "modal.yes"}}</button>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				</form>
 | 
									</form>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,13 +5,13 @@
 | 
				
			|||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{if .PageIsAdminDefaultHooksNew}}
 | 
								{{if .PageIsAdminDefaultHooksNew}}
 | 
				
			||||||
				{{.i18n.Tr "admin.defaulthooks.add_webhook"}}
 | 
									{{.locale.Tr "admin.defaulthooks.add_webhook"}}
 | 
				
			||||||
			{{else if .PageIsAdminSystemHooksNew}}
 | 
								{{else if .PageIsAdminSystemHooksNew}}
 | 
				
			||||||
				{{.i18n.Tr "admin.systemhooks.add_webhook"}}
 | 
									{{.locale.Tr "admin.systemhooks.add_webhook"}}
 | 
				
			||||||
			{{else if .Webhook.IsSystemWebhook}}
 | 
								{{else if .Webhook.IsSystemWebhook}}
 | 
				
			||||||
				{{.i18n.Tr "admin.systemhooks.update_webhook"}}
 | 
									{{.locale.Tr "admin.systemhooks.update_webhook"}}
 | 
				
			||||||
			{{else}}
 | 
								{{else}}
 | 
				
			||||||
				{{.i18n.Tr "admin.defaulthooks.update_webhook"}}
 | 
									{{.locale.Tr "admin.defaulthooks.update_webhook"}}
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
			<div class="ui right">
 | 
								<div class="ui right">
 | 
				
			||||||
				{{if eq .HookType "gitea"}}
 | 
									{{if eq .HookType "gitea"}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,17 +5,17 @@
 | 
				
			|||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		{{template "admin/cron" .}}
 | 
							{{template "admin/cron" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.monitor.queues"}}
 | 
								{{.locale.Tr "admin.monitor.queues"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<table class="ui very basic striped table unstackable">
 | 
								<table class="ui very basic striped table unstackable">
 | 
				
			||||||
				<thead>
 | 
									<thead>
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.name"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.name"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.type"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.type"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.exemplar"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.exemplar"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.numberworkers"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.numberworkers"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.numberinqueue"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.numberinqueue"}}</th>
 | 
				
			||||||
						<th></th>
 | 
											<th></th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
@@ -27,7 +27,7 @@
 | 
				
			|||||||
							<td>{{.ExemplarType}}</td>
 | 
												<td>{{.ExemplarType}}</td>
 | 
				
			||||||
							<td>{{$sum := .NumberOfWorkers}}{{if lt $sum 0}}-{{else}}{{$sum}}{{end}}</td>
 | 
												<td>{{$sum := .NumberOfWorkers}}{{if lt $sum 0}}-{{else}}{{$sum}}{{end}}</td>
 | 
				
			||||||
							<td>{{$sum := .NumberInQueue}}{{if lt $sum 0}}-{{else}}{{$sum}}{{end}}</td>
 | 
												<td>{{$sum := .NumberInQueue}}{{if lt $sum 0}}-{{else}}{{$sum}}{{end}}</td>
 | 
				
			||||||
							<td><a href="{{$.Link}}/queue/{{.QID}}" class="button">{{if lt $sum 0}}{{$.i18n.Tr "admin.monitor.queue.review"}}{{else}}{{$.i18n.Tr "admin.monitor.queue.review_add"}}{{end}}</a>
 | 
												<td><a href="{{$.Link}}/queue/{{.QID}}" class="button">{{if lt $sum 0}}{{$.locale.Tr "admin.monitor.queue.review"}}{{else}}{{$.locale.Tr "admin.monitor.queue.review_add"}}{{end}}</a>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</tbody>
 | 
									</tbody>
 | 
				
			||||||
@@ -40,11 +40,11 @@
 | 
				
			|||||||
<div class="ui small basic delete modal">
 | 
					<div class="ui small basic delete modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-x" 16 "close inside"}}
 | 
							{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
		{{.i18n.Tr "admin.monitor.process.cancel"}}
 | 
							{{.locale.Tr "admin.monitor.process.cancel"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{$.i18n.Tr "admin.monitor.process.cancel_notices" `<span class="name"></span>` | Safe}}</p>
 | 
							<p>{{$.locale.Tr "admin.monitor.process.cancel_notices" `<span class="name"></span>` | Safe}}</p>
 | 
				
			||||||
		<p>{{$.i18n.Tr "admin.monitor.process.cancel_desc"}}</p>
 | 
							<p>{{$.locale.Tr "admin.monitor.process.cancel_desc"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,39 +1,39 @@
 | 
				
			|||||||
<div class="ui secondary pointing tabular top attached borderless menu stackable new-menu navbar">
 | 
					<div class="ui secondary pointing tabular top attached borderless menu stackable new-menu navbar">
 | 
				
			||||||
	<div class="new-menu-inner">
 | 
						<div class="new-menu-inner">
 | 
				
			||||||
		<a class="{{if .PageIsAdminDashboard}}active{{end}} item" href="{{AppSubUrl}}/admin">
 | 
							<a class="{{if .PageIsAdminDashboard}}active{{end}} item" href="{{AppSubUrl}}/admin">
 | 
				
			||||||
			{{.i18n.Tr "admin.dashboard"}}
 | 
								{{.locale.Tr "admin.dashboard"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		<a class="{{if .PageIsAdminUsers}}active{{end}} item" href="{{AppSubUrl}}/admin/users">
 | 
							<a class="{{if .PageIsAdminUsers}}active{{end}} item" href="{{AppSubUrl}}/admin/users">
 | 
				
			||||||
			{{.i18n.Tr "admin.users"}}
 | 
								{{.locale.Tr "admin.users"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		<a class="{{if .PageIsAdminOrganizations}}active{{end}} item" href="{{AppSubUrl}}/admin/orgs">
 | 
							<a class="{{if .PageIsAdminOrganizations}}active{{end}} item" href="{{AppSubUrl}}/admin/orgs">
 | 
				
			||||||
			{{.i18n.Tr "admin.organizations"}}
 | 
								{{.locale.Tr "admin.organizations"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		<a class="{{if .PageIsAdminRepositories}}active{{end}} item" href="{{AppSubUrl}}/admin/repos">
 | 
							<a class="{{if .PageIsAdminRepositories}}active{{end}} item" href="{{AppSubUrl}}/admin/repos">
 | 
				
			||||||
			{{.i18n.Tr "admin.repositories"}}
 | 
								{{.locale.Tr "admin.repositories"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		<a class="{{if .PageIsAdminPackages}}active{{end}} item" href="{{AppSubUrl}}/admin/packages">
 | 
							<a class="{{if .PageIsAdminPackages}}active{{end}} item" href="{{AppSubUrl}}/admin/packages">
 | 
				
			||||||
			{{.i18n.Tr "packages.title"}}
 | 
								{{.locale.Tr "packages.title"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		{{if not DisableWebhooks}}
 | 
							{{if not DisableWebhooks}}
 | 
				
			||||||
			<a class="{{if or .PageIsAdminDefaultHooks .PageIsAdminSystemHooks}}active{{end}} item" href="{{AppSubUrl}}/admin/hooks">
 | 
								<a class="{{if or .PageIsAdminDefaultHooks .PageIsAdminSystemHooks}}active{{end}} item" href="{{AppSubUrl}}/admin/hooks">
 | 
				
			||||||
				{{.i18n.Tr "admin.hooks"}}
 | 
									{{.locale.Tr "admin.hooks"}}
 | 
				
			||||||
			</a>
 | 
								</a>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
		<a class="{{if .PageIsAdminAuthentications}}active{{end}} item" href="{{AppSubUrl}}/admin/auths">
 | 
							<a class="{{if .PageIsAdminAuthentications}}active{{end}} item" href="{{AppSubUrl}}/admin/auths">
 | 
				
			||||||
			{{.i18n.Tr "admin.authentication"}}
 | 
								{{.locale.Tr "admin.authentication"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		<a class="{{if .PageIsAdminEmails}}active{{end}} item" href="{{AppSubUrl}}/admin/emails">
 | 
							<a class="{{if .PageIsAdminEmails}}active{{end}} item" href="{{AppSubUrl}}/admin/emails">
 | 
				
			||||||
			{{.i18n.Tr "admin.emails"}}
 | 
								{{.locale.Tr "admin.emails"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		<a class="{{if .PageIsAdminConfig}}active{{end}} item" href="{{AppSubUrl}}/admin/config">
 | 
							<a class="{{if .PageIsAdminConfig}}active{{end}} item" href="{{AppSubUrl}}/admin/config">
 | 
				
			||||||
			{{.i18n.Tr "admin.config"}}
 | 
								{{.locale.Tr "admin.config"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		<a class="{{if .PageIsAdminNotices}}active{{end}} item" href="{{AppSubUrl}}/admin/notices">
 | 
							<a class="{{if .PageIsAdminNotices}}active{{end}} item" href="{{AppSubUrl}}/admin/notices">
 | 
				
			||||||
			{{.i18n.Tr "admin.notices"}}
 | 
								{{.locale.Tr "admin.notices"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		<a class="{{if .PageIsAdminMonitor}}active{{end}} item" href="{{AppSubUrl}}/admin/monitor">
 | 
							<a class="{{if .PageIsAdminMonitor}}active{{end}} item" href="{{AppSubUrl}}/admin/monitor">
 | 
				
			||||||
			{{.i18n.Tr "admin.monitor"}}
 | 
								{{.locale.Tr "admin.monitor"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.notices.system_notice_list"}} ({{.i18n.Tr "admin.total" .Total}})
 | 
								{{.locale.Tr "admin.notices.system_notice_list"}} ({{.locale.Tr "admin.total" .Total}})
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<table id="notice-table" class="ui very basic select selectable table unstackable">
 | 
								<table id="notice-table" class="ui very basic select selectable table unstackable">
 | 
				
			||||||
@@ -12,10 +12,10 @@
 | 
				
			|||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th></th>
 | 
											<th></th>
 | 
				
			||||||
						<th>ID</th>
 | 
											<th>ID</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.notices.type"}}</th>
 | 
											<th>{{.locale.Tr "admin.notices.type"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.notices.desc"}}</th>
 | 
											<th>{{.locale.Tr "admin.notices.desc"}}</th>
 | 
				
			||||||
						<th width="100px">{{.i18n.Tr "admin.users.created"}}</th>
 | 
											<th width="100px">{{.locale.Tr "admin.users.created"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.notices.op"}}</th>
 | 
											<th>{{.locale.Tr "admin.notices.op"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
@@ -27,7 +27,7 @@
 | 
				
			|||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</td>
 | 
												</td>
 | 
				
			||||||
							<td>{{.ID}}</td>
 | 
												<td>{{.ID}}</td>
 | 
				
			||||||
							<td>{{$.i18n.Tr .TrStr}}</td>
 | 
												<td>{{$.locale.Tr .TrStr}}</td>
 | 
				
			||||||
							<td class="view-detail"><span class="notice-description text truncate">{{.Description}}</span></td>
 | 
												<td class="view-detail"><span class="notice-description text truncate">{{.Description}}</span></td>
 | 
				
			||||||
							<td><span class="notice-created-time tooltip" data-content="{{.CreatedUnix.AsTime}}">{{.CreatedUnix.FormatShort}}</span></td>
 | 
												<td><span class="notice-created-time tooltip" data-content="{{.CreatedUnix.AsTime}}">{{.CreatedUnix.FormatShort}}</span></td>
 | 
				
			||||||
							<td><a href="#">{{svg "octicon-note" 16 "view-detail"}}</a></td>
 | 
												<td><a href="#">{{svg "octicon-note" 16 "view-detail"}}</a></td>
 | 
				
			||||||
@@ -42,25 +42,25 @@
 | 
				
			|||||||
									<div class="ui right">
 | 
														<div class="ui right">
 | 
				
			||||||
										<form method="post" action="{{AppSubUrl}}/admin/notices/empty">
 | 
															<form method="post" action="{{AppSubUrl}}/admin/notices/empty">
 | 
				
			||||||
											{{.CsrfTokenHtml}}
 | 
																{{.CsrfTokenHtml}}
 | 
				
			||||||
											<button type="submit" class="ui red small button">{{.i18n.Tr "admin.notices.delete_all"}}</button>
 | 
																<button type="submit" class="ui red small button">{{.locale.Tr "admin.notices.delete_all"}}</button>
 | 
				
			||||||
										</form>
 | 
															</form>
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
									<div class="ui floating upward dropdown small button">
 | 
														<div class="ui floating upward dropdown small button">
 | 
				
			||||||
										<span class="text">{{.i18n.Tr "admin.notices.actions"}}</span>
 | 
															<span class="text">{{.locale.Tr "admin.notices.actions"}}</span>
 | 
				
			||||||
										<div class="menu">
 | 
															<div class="menu">
 | 
				
			||||||
											<div class="item select action" data-action="select-all">
 | 
																<div class="item select action" data-action="select-all">
 | 
				
			||||||
												{{.i18n.Tr "admin.notices.select_all"}}
 | 
																	{{.locale.Tr "admin.notices.select_all"}}
 | 
				
			||||||
											</div>
 | 
																</div>
 | 
				
			||||||
											<div class="item select action" data-action="deselect-all">
 | 
																<div class="item select action" data-action="deselect-all">
 | 
				
			||||||
												{{.i18n.Tr "admin.notices.deselect_all"}}
 | 
																	{{.locale.Tr "admin.notices.deselect_all"}}
 | 
				
			||||||
											</div>
 | 
																</div>
 | 
				
			||||||
											<div class="item select action" data-action="inverse">
 | 
																<div class="item select action" data-action="inverse">
 | 
				
			||||||
												{{.i18n.Tr "admin.notices.inverse_selection"}}
 | 
																	{{.locale.Tr "admin.notices.inverse_selection"}}
 | 
				
			||||||
											</div>
 | 
																</div>
 | 
				
			||||||
										</div>
 | 
															</div>
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
									<div class="ui small teal button" id="delete-selection" data-link="{{.Link}}/delete" data-redirect="{{.Link}}?page={{.Page.Paginater.Current}}">
 | 
														<div class="ui small teal button" id="delete-selection" data-link="{{.Link}}/delete" data-redirect="{{.Link}}?page={{.Page.Paginater.Current}}">
 | 
				
			||||||
										{{.i18n.Tr "admin.notices.delete_selected"}}
 | 
															{{.locale.Tr "admin.notices.delete_selected"}}
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
								</th>
 | 
													</th>
 | 
				
			||||||
							</tr>
 | 
												</tr>
 | 
				
			||||||
@@ -75,7 +75,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<div class="ui modal admin" id="detail-modal">
 | 
					<div class="ui modal admin" id="detail-modal">
 | 
				
			||||||
	{{svg "octicon-x" 16 "close inside"}}
 | 
						{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
	<div class="header">{{$.i18n.Tr "admin.notices.view_detail_header"}}</div>
 | 
						<div class="header">{{$.locale.Tr "admin.notices.view_detail_header"}}</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<div class="sub header"></div>
 | 
							<div class="sub header"></div>
 | 
				
			||||||
		<pre></pre>
 | 
							<pre></pre>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,9 +4,9 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.orgs.org_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}})
 | 
								{{.locale.Tr "admin.orgs.org_manage_panel"}} ({{.locale.Tr "admin.total" .Total}})
 | 
				
			||||||
			<div class="ui right">
 | 
								<div class="ui right">
 | 
				
			||||||
				<a class="ui primary tiny button" href="{{AppSubUrl}}/org/create">{{.i18n.Tr "admin.orgs.new_orga"}}</a>
 | 
									<a class="ui primary tiny button" href="{{AppSubUrl}}/org/create">{{.locale.Tr "admin.orgs.new_orga"}}</a>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
@@ -18,17 +18,17 @@
 | 
				
			|||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th data-sortt-asc="oldest" data-sortt-desc="newest">ID{{SortArrow "oldest" "newest" $.SortType false}}</th>
 | 
											<th data-sortt-asc="oldest" data-sortt-desc="newest">ID{{SortArrow "oldest" "newest" $.SortType false}}</th>
 | 
				
			||||||
						<th data-sortt-asc="alphabetically" data-sortt-desc="reversealphabetically" data-sortt-default="true">
 | 
											<th data-sortt-asc="alphabetically" data-sortt-desc="reversealphabetically" data-sortt-default="true">
 | 
				
			||||||
							{{.i18n.Tr "admin.orgs.name"}}
 | 
												{{.locale.Tr "admin.orgs.name"}}
 | 
				
			||||||
							{{SortArrow "alphabetically" "reversealphabetically" $.SortType true}}
 | 
												{{SortArrow "alphabetically" "reversealphabetically" $.SortType true}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.orgs.teams"}}</th>
 | 
											<th>{{.locale.Tr "admin.orgs.teams"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.orgs.members"}}</th>
 | 
											<th>{{.locale.Tr "admin.orgs.members"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.repos"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.repos"}}</th>
 | 
				
			||||||
						<th data-sortt-asc="recentupdate" data-sortt-desc="leastupdate">
 | 
											<th data-sortt-asc="recentupdate" data-sortt-desc="leastupdate">
 | 
				
			||||||
							{{.i18n.Tr "admin.users.created"}}
 | 
												{{.locale.Tr "admin.users.created"}}
 | 
				
			||||||
							{{SortArrow "recentupdate" "leastupdate" $.SortType false}}
 | 
												{{SortArrow "recentupdate" "leastupdate" $.SortType false}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.edit"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.edit"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,15 +4,15 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.packages.package_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}}, {{.i18n.Tr "admin.packages.total_size" (FileSize .TotalBlobSize)}})
 | 
								{{.locale.Tr "admin.packages.package_manage_panel"}} ({{.locale.Tr "admin.total" .Total}}, {{.locale.Tr "admin.packages.total_size" (FileSize .TotalBlobSize)}})
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<form class="ui form ignore-dirty">
 | 
								<form class="ui form ignore-dirty">
 | 
				
			||||||
				<div class="ui fluid action input">
 | 
									<div class="ui fluid action input">
 | 
				
			||||||
					<input name="q" value="{{.Query}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
										<input name="q" value="{{.Query}}" placeholder="{{.locale.Tr "explore.search"}}..." autofocus>
 | 
				
			||||||
					<select class="ui dropdown" name="type">
 | 
										<select class="ui dropdown" name="type">
 | 
				
			||||||
						<option value="">{{.i18n.Tr "packages.filter.type"}}</option>
 | 
											<option value="">{{.locale.Tr "packages.filter.type"}}</option>
 | 
				
			||||||
						<option value="all">{{.i18n.Tr "packages.filter.type.all"}}</option>
 | 
											<option value="all">{{.locale.Tr "packages.filter.type.all"}}</option>
 | 
				
			||||||
						<option value="composer" {{if eq .PackageType "composer"}}selected="selected"{{end}}>Composer</option>
 | 
											<option value="composer" {{if eq .PackageType "composer"}}selected="selected"{{end}}>Composer</option>
 | 
				
			||||||
						<option value="conan" {{if eq .PackageType "conan"}}selected="selected"{{end}}>Conan</option>
 | 
											<option value="conan" {{if eq .PackageType "conan"}}selected="selected"{{end}}>Conan</option>
 | 
				
			||||||
						<option value="container" {{if eq .PackageType "container"}}selected="selected"{{end}}>Container</option>
 | 
											<option value="container" {{if eq .PackageType "container"}}selected="selected"{{end}}>Container</option>
 | 
				
			||||||
@@ -24,7 +24,7 @@
 | 
				
			|||||||
						<option value="pypi" {{if eq .PackageType "pypi"}}selected="selected"{{end}}>PyPi</option>
 | 
											<option value="pypi" {{if eq .PackageType "pypi"}}selected="selected"{{end}}>PyPi</option>
 | 
				
			||||||
						<option value="rubygems" {{if eq .PackageType "rubygems"}}selected="selected"{{end}}>RubyGems</option>
 | 
											<option value="rubygems" {{if eq .PackageType "rubygems"}}selected="selected"{{end}}>RubyGems</option>
 | 
				
			||||||
					</select>
 | 
										</select>
 | 
				
			||||||
					<button class="ui primary button">{{.i18n.Tr "explore.search"}}</button>
 | 
										<button class="ui primary button">{{.locale.Tr "explore.search"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
@@ -33,24 +33,24 @@
 | 
				
			|||||||
				<thead>
 | 
									<thead>
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th>ID</th>
 | 
											<th>ID</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.packages.owner"}}</th>
 | 
											<th>{{.locale.Tr "admin.packages.owner"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.packages.type"}}</th>
 | 
											<th>{{.locale.Tr "admin.packages.type"}}</th>
 | 
				
			||||||
						<th data-sortt-asc="alphabetically" data-sortt-desc="reversealphabetically">
 | 
											<th data-sortt-asc="alphabetically" data-sortt-desc="reversealphabetically">
 | 
				
			||||||
							{{.i18n.Tr "admin.packages.name"}}
 | 
												{{.locale.Tr "admin.packages.name"}}
 | 
				
			||||||
							{{SortArrow "alphabetically" "reversealphabetically" .SortType false}}
 | 
												{{SortArrow "alphabetically" "reversealphabetically" .SortType false}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th data-sortt-asc="highestversion" data-sortt-desc="lowestversion">
 | 
											<th data-sortt-asc="highestversion" data-sortt-desc="lowestversion">
 | 
				
			||||||
							{{.i18n.Tr "admin.packages.version"}}
 | 
												{{.locale.Tr "admin.packages.version"}}
 | 
				
			||||||
							{{SortArrow "highestversion" "lowestversion" .SortType false}}
 | 
												{{SortArrow "highestversion" "lowestversion" .SortType false}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.packages.creator"}}</th>
 | 
											<th>{{.locale.Tr "admin.packages.creator"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.packages.repository"}}</th>
 | 
											<th>{{.locale.Tr "admin.packages.repository"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.packages.size"}}</th>
 | 
											<th>{{.locale.Tr "admin.packages.size"}}</th>
 | 
				
			||||||
						<th data-sortt-asc="oldest" data-sortt-desc="newest">
 | 
											<th data-sortt-asc="oldest" data-sortt-desc="newest">
 | 
				
			||||||
							{{.i18n.Tr "admin.packages.published"}}
 | 
												{{.locale.Tr "admin.packages.published"}}
 | 
				
			||||||
							{{SortArrow "oldest" "newest" .SortType true}}
 | 
												{{SortArrow "oldest" "newest" .SortType true}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.notices.op"}}</th>
 | 
											<th>{{.locale.Tr "admin.notices.op"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
@@ -88,10 +88,10 @@
 | 
				
			|||||||
<div class="ui small basic delete modal">
 | 
					<div class="ui small basic delete modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-trash"}}
 | 
							{{svg "octicon-trash"}}
 | 
				
			||||||
		{{.i18n.Tr "packages.settings.delete"}}
 | 
							{{.locale.Tr "packages.settings.delete"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		{{.i18n.Tr "packages.settings.delete.notice" `<span class="name"></span>` `<span class="dataVersion"></span>` | Safe}}
 | 
							{{.locale.Tr "packages.settings.delete.notice" `<span class="name"></span>` `<span class="dataVersion"></span>` | Safe}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
		<div class="icon ml-3 mr-3">{{if eq .Process.Type "request"}}{{svg "octicon-globe" 16 }}{{else if eq .Process.Type "system"}}{{svg "octicon-cpu" 16 }}{{else}}{{svg "octicon-terminal" 16 }}{{end}}</div>
 | 
							<div class="icon ml-3 mr-3">{{if eq .Process.Type "request"}}{{svg "octicon-globe" 16 }}{{else if eq .Process.Type "system"}}{{svg "octicon-cpu" 16 }}{{else}}{{svg "octicon-terminal" 16 }}{{end}}</div>
 | 
				
			||||||
		<div class="content f1">
 | 
							<div class="content f1">
 | 
				
			||||||
			<div class="header">{{.Process.Description}}</div>
 | 
								<div class="header">{{.Process.Description}}</div>
 | 
				
			||||||
			<div class="description"><span title="{{DateFmtLong .Process.Start}}">{{TimeSince .Process.Start .root.i18n}}</span></div>
 | 
								<div class="description"><span title="{{DateFmtLong .Process.Start}}">{{TimeSince .Process.Start .root.locale}}</span></div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div>
 | 
							<div>
 | 
				
			||||||
			{{if ne .Process.Type "system"}}
 | 
								{{if ne .Process.Type "system"}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
<h4 class="ui top attached header">
 | 
					<h4 class="ui top attached header">
 | 
				
			||||||
	{{.i18n.Tr "admin.monitor.process"}}
 | 
						{{.locale.Tr "admin.monitor.process"}}
 | 
				
			||||||
	<div class="ui right">
 | 
						<div class="ui right">
 | 
				
			||||||
		<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/monitor/stacktrace">{{.i18n.Tr "admin.monitor.stacktrace"}}</a>
 | 
							<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/monitor/stacktrace">{{.locale.Tr "admin.monitor.stacktrace"}}</a>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</h4>
 | 
					</h4>
 | 
				
			||||||
<div class="ui attached segment">
 | 
					<div class="ui attached segment">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,18 +4,18 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.monitor.queue" .Queue.Name}}
 | 
								{{.locale.Tr "admin.monitor.queue" .Queue.Name}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<table class="ui very basic striped table">
 | 
								<table class="ui very basic striped table">
 | 
				
			||||||
				<thead>
 | 
									<thead>
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.name"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.name"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.type"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.type"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.exemplar"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.exemplar"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.numberworkers"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.numberworkers"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.maxnumberworkers"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.maxnumberworkers"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.numberinqueue"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.numberinqueue"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
@@ -32,141 +32,141 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		{{if lt $sum 0 }}
 | 
							{{if lt $sum 0 }}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.monitor.queue.nopool.title"}}
 | 
								{{.locale.Tr "admin.monitor.queue.nopool.title"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{if eq .Queue.Type "wrapped" }}
 | 
								{{if eq .Queue.Type "wrapped" }}
 | 
				
			||||||
			<p>{{.i18n.Tr "admin.monitor.queue.wrapped.desc"}}</p>
 | 
								<p>{{.locale.Tr "admin.monitor.queue.wrapped.desc"}}</p>
 | 
				
			||||||
			{{else if eq .Queue.Type "persistable-channel"}}
 | 
								{{else if eq .Queue.Type "persistable-channel"}}
 | 
				
			||||||
			<p>{{.i18n.Tr "admin.monitor.queue.persistable-channel.desc"}}</p>
 | 
								<p>{{.locale.Tr "admin.monitor.queue.persistable-channel.desc"}}</p>
 | 
				
			||||||
			{{else}}
 | 
								{{else}}
 | 
				
			||||||
			<p>{{.i18n.Tr "admin.monitor.queue.nopool.desc"}}</p>
 | 
								<p>{{.locale.Tr "admin.monitor.queue.nopool.desc"}}</p>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		{{else}}
 | 
							{{else}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.monitor.queue.settings.title"}}
 | 
								{{.locale.Tr "admin.monitor.queue.settings.title"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<p>{{.i18n.Tr "admin.monitor.queue.settings.desc"}}</p>
 | 
								<p>{{.locale.Tr "admin.monitor.queue.settings.desc"}}</p>
 | 
				
			||||||
			<form method="POST" action="{{.Link}}/set">
 | 
								<form method="POST" action="{{.Link}}/set">
 | 
				
			||||||
				{{$.CsrfTokenHtml}}
 | 
									{{$.CsrfTokenHtml}}
 | 
				
			||||||
				<div class="ui form">
 | 
									<div class="ui form">
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<label for="max-number">{{.i18n.Tr "admin.monitor.queue.settings.maxnumberworkers"}}</label>
 | 
											<label for="max-number">{{.locale.Tr "admin.monitor.queue.settings.maxnumberworkers"}}</label>
 | 
				
			||||||
						<input name="max-number" type="text" placeholder="{{.i18n.Tr "admin.monitor.queue.settings.maxnumberworkers.placeholder" .Queue.MaxNumberOfWorkers}}">
 | 
											<input name="max-number" type="text" placeholder="{{.locale.Tr "admin.monitor.queue.settings.maxnumberworkers.placeholder" .Queue.MaxNumberOfWorkers}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<label for="timeout">{{.i18n.Tr "admin.monitor.queue.settings.timeout"}}</label>
 | 
											<label for="timeout">{{.locale.Tr "admin.monitor.queue.settings.timeout"}}</label>
 | 
				
			||||||
						<input name="timeout" type="text" placeholder="{{.i18n.Tr "admin.monitor.queue.settings.timeout.placeholder" .Queue.BoostTimeout }}">
 | 
											<input name="timeout" type="text" placeholder="{{.locale.Tr "admin.monitor.queue.settings.timeout.placeholder" .Queue.BoostTimeout }}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<label for="number">{{.i18n.Tr "admin.monitor.queue.settings.numberworkers"}}</label>
 | 
											<label for="number">{{.locale.Tr "admin.monitor.queue.settings.numberworkers"}}</label>
 | 
				
			||||||
						<input name="number" type="text" placeholder="{{.i18n.Tr "admin.monitor.queue.settings.numberworkers.placeholder" .Queue.BoostWorkers}}">
 | 
											<input name="number" type="text" placeholder="{{.locale.Tr "admin.monitor.queue.settings.numberworkers.placeholder" .Queue.BoostWorkers}}">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<label>{{.i18n.Tr "admin.monitor.queue.settings.blocktimeout"}}</label>
 | 
											<label>{{.locale.Tr "admin.monitor.queue.settings.blocktimeout"}}</label>
 | 
				
			||||||
						<span>{{.i18n.Tr "admin.monitor.queue.settings.blocktimeout.value" .Queue.BlockTimeout}}</span>
 | 
											<span>{{.locale.Tr "admin.monitor.queue.settings.blocktimeout.value" .Queue.BlockTimeout}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<button class="ui submit button">{{.i18n.Tr "admin.monitor.queue.settings.submit"}}</button>
 | 
										<button class="ui submit button">{{.locale.Tr "admin.monitor.queue.settings.submit"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.monitor.queue.pool.addworkers.title"}}
 | 
								{{.locale.Tr "admin.monitor.queue.pool.addworkers.title"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<p>{{.i18n.Tr "admin.monitor.queue.pool.addworkers.desc"}}</p>
 | 
								<p>{{.locale.Tr "admin.monitor.queue.pool.addworkers.desc"}}</p>
 | 
				
			||||||
			<form method="POST" action="{{.Link}}/add">
 | 
								<form method="POST" action="{{.Link}}/add">
 | 
				
			||||||
				{{$.CsrfTokenHtml}}
 | 
									{{$.CsrfTokenHtml}}
 | 
				
			||||||
				<div class="ui form">
 | 
									<div class="ui form">
 | 
				
			||||||
					<div class="fields">
 | 
										<div class="fields">
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label>{{.i18n.Tr "admin.monitor.queue.numberworkers"}}</label>
 | 
												<label>{{.locale.Tr "admin.monitor.queue.numberworkers"}}</label>
 | 
				
			||||||
							<input name="number" type="text" placeholder="{{.i18n.Tr "admin.monitor.queue.pool.addworkers.numberworkers.placeholder"}}">
 | 
												<input name="number" type="text" placeholder="{{.locale.Tr "admin.monitor.queue.pool.addworkers.numberworkers.placeholder"}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label>{{.i18n.Tr "admin.monitor.queue.pool.timeout"}}</label>
 | 
												<label>{{.locale.Tr "admin.monitor.queue.pool.timeout"}}</label>
 | 
				
			||||||
							<input name="timeout" type="text" placeholder="{{.i18n.Tr "admin.monitor.queue.pool.addworkers.timeout.placeholder"}}">
 | 
												<input name="timeout" type="text" placeholder="{{.locale.Tr "admin.monitor.queue.pool.addworkers.timeout.placeholder"}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<button class="ui submit button">{{.i18n.Tr "admin.monitor.queue.pool.addworkers.submit"}}</button>
 | 
										<button class="ui submit button">{{.locale.Tr "admin.monitor.queue.pool.addworkers.submit"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		{{if .Queue.Pausable}}
 | 
							{{if .Queue.Pausable}}
 | 
				
			||||||
			{{if .Queue.IsPaused}}
 | 
								{{if .Queue.IsPaused}}
 | 
				
			||||||
				<h4 class="ui top attached header">
 | 
									<h4 class="ui top attached header">
 | 
				
			||||||
					{{.i18n.Tr "admin.monitor.queue.pool.resume.title"}}
 | 
										{{.locale.Tr "admin.monitor.queue.pool.resume.title"}}
 | 
				
			||||||
				</h4>
 | 
									</h4>
 | 
				
			||||||
				<div class="ui attached segment">
 | 
									<div class="ui attached segment">
 | 
				
			||||||
					<p>{{.i18n.Tr "admin.monitor.queue.pool.resume.desc"}}</p>
 | 
										<p>{{.locale.Tr "admin.monitor.queue.pool.resume.desc"}}</p>
 | 
				
			||||||
					<form method="POST" action="{{.Link}}/resume">
 | 
										<form method="POST" action="{{.Link}}/resume">
 | 
				
			||||||
						{{$.CsrfTokenHtml}}
 | 
											{{$.CsrfTokenHtml}}
 | 
				
			||||||
						<div class="ui form">
 | 
											<div class="ui form">
 | 
				
			||||||
							<button class="ui submit button">{{.i18n.Tr "admin.monitor.queue.pool.resume.submit"}}</button>
 | 
												<button class="ui submit button">{{.locale.Tr "admin.monitor.queue.pool.resume.submit"}}</button>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</form>
 | 
										</form>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			{{else}}
 | 
								{{else}}
 | 
				
			||||||
				<h4 class="ui top attached header">
 | 
									<h4 class="ui top attached header">
 | 
				
			||||||
					{{.i18n.Tr "admin.monitor.queue.pool.pause.title"}}
 | 
										{{.locale.Tr "admin.monitor.queue.pool.pause.title"}}
 | 
				
			||||||
				</h4>
 | 
									</h4>
 | 
				
			||||||
				<div class="ui attached segment">
 | 
									<div class="ui attached segment">
 | 
				
			||||||
					<p>{{.i18n.Tr "admin.monitor.queue.pool.pause.desc"}}</p>
 | 
										<p>{{.locale.Tr "admin.monitor.queue.pool.pause.desc"}}</p>
 | 
				
			||||||
					<form method="POST" action="{{.Link}}/pause">
 | 
										<form method="POST" action="{{.Link}}/pause">
 | 
				
			||||||
						{{$.CsrfTokenHtml}}
 | 
											{{$.CsrfTokenHtml}}
 | 
				
			||||||
						<div class="ui form">
 | 
											<div class="ui form">
 | 
				
			||||||
							<button class="ui submit button">{{.i18n.Tr "admin.monitor.queue.pool.pause.submit"}}</button>
 | 
												<button class="ui submit button">{{.locale.Tr "admin.monitor.queue.pool.pause.submit"}}</button>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</form>
 | 
										</form>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.monitor.queue.pool.flush.title"}}
 | 
								{{.locale.Tr "admin.monitor.queue.pool.flush.title"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<p>{{.i18n.Tr "admin.monitor.queue.pool.flush.desc"}}</p>
 | 
								<p>{{.locale.Tr "admin.monitor.queue.pool.flush.desc"}}</p>
 | 
				
			||||||
			<form method="POST" action="{{.Link}}/flush">
 | 
								<form method="POST" action="{{.Link}}/flush">
 | 
				
			||||||
				{{$.CsrfTokenHtml}}
 | 
									{{$.CsrfTokenHtml}}
 | 
				
			||||||
				<div class="ui form">
 | 
									<div class="ui form">
 | 
				
			||||||
					<div class="fields">
 | 
										<div class="fields">
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label>{{.i18n.Tr "admin.monitor.queue.pool.timeout"}}</label>
 | 
												<label>{{.locale.Tr "admin.monitor.queue.pool.timeout"}}</label>
 | 
				
			||||||
							<input name="timeout" type="text" placeholder="{{.i18n.Tr "admin.monitor.queue.pool.addworkers.timeout.placeholder"}}">
 | 
												<input name="timeout" type="text" placeholder="{{.locale.Tr "admin.monitor.queue.pool.addworkers.timeout.placeholder"}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<button class="ui submit button">{{.i18n.Tr "admin.monitor.queue.pool.flush.submit"}}</button>
 | 
										<button class="ui submit button">{{.locale.Tr "admin.monitor.queue.pool.flush.submit"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.monitor.queue.pool.workers.title"}}
 | 
								{{.locale.Tr "admin.monitor.queue.pool.workers.title"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached table segment">
 | 
							<div class="ui attached table segment">
 | 
				
			||||||
			<table class="ui very basic striped table">
 | 
								<table class="ui very basic striped table">
 | 
				
			||||||
				<thead>
 | 
									<thead>
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.numberworkers"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.numberworkers"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.start"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.start"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.monitor.queue.pool.timeout"}}</th>
 | 
											<th>{{.locale.Tr "admin.monitor.queue.pool.timeout"}}</th>
 | 
				
			||||||
						<th></th>
 | 
											<th></th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
					{{range .Queue.Workers}}
 | 
										{{range .Queue.Workers}}
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<td>{{.Workers}}{{if .IsFlusher}}<span title="{{.i18n.Tr "admin.monitor.queue.flush"}}">{{svg "octicon-sync"}}</span>{{end}}</td>
 | 
											<td>{{.Workers}}{{if .IsFlusher}}<span title="{{.locale.Tr "admin.monitor.queue.flush"}}">{{svg "octicon-sync"}}</span>{{end}}</td>
 | 
				
			||||||
						<td>{{DateFmtLong .Start}}</td>
 | 
											<td>{{DateFmtLong .Start}}</td>
 | 
				
			||||||
						<td>{{if .HasTimeout}}{{DateFmtLong .Timeout}}{{else}}-{{end}}</td>
 | 
											<td>{{if .HasTimeout}}{{DateFmtLong .Timeout}}{{else}}-{{end}}</td>
 | 
				
			||||||
						<td>
 | 
											<td>
 | 
				
			||||||
							<a class="delete-button" href="" data-url="{{$.Link}}/cancel/{{.PID}}" data-id="{{.PID}}" data-name="{{.Workers}}"><span class="text red" title="{{$.i18n.Tr "remove"}}">{{svg "octicon-trash"}}</span></a>
 | 
												<a class="delete-button" href="" data-url="{{$.Link}}/cancel/{{.PID}}" data-id="{{.PID}}" data-name="{{.Workers}}"><span class="text red" title="{{$.locale.Tr "remove"}}">{{svg "octicon-trash"}}</span></a>
 | 
				
			||||||
						</td>
 | 
											</td>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
					{{else}}
 | 
										{{else}}
 | 
				
			||||||
						<tr>
 | 
											<tr>
 | 
				
			||||||
							<td colspan="4">{{.i18n.Tr "admin.monitor.queue.pool.workers.none" }}
 | 
												<td colspan="4">{{.locale.Tr "admin.monitor.queue.pool.workers.none" }}
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</tbody>
 | 
									</tbody>
 | 
				
			||||||
@@ -174,7 +174,7 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.monitor.queue.configuration"}}
 | 
								{{.locale.Tr "admin.monitor.queue.configuration"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<pre>{{.Queue.Configuration | JsonPrettyPrint}}
 | 
								<pre>{{.Queue.Configuration | JsonPrettyPrint}}
 | 
				
			||||||
@@ -184,11 +184,11 @@
 | 
				
			|||||||
<div class="ui small basic delete modal">
 | 
					<div class="ui small basic delete modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-x" 16 "close inside"}}
 | 
							{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
		{{.i18n.Tr "admin.monitor.queue.pool.cancel"}}
 | 
							{{.locale.Tr "admin.monitor.queue.pool.cancel"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{$.i18n.Tr "admin.monitor.queue.pool.cancel_notices" `<span class="name"></span>` | Safe}}</p>
 | 
							<p>{{$.locale.Tr "admin.monitor.queue.pool.cancel_notices" `<span class="name"></span>` | Safe}}</p>
 | 
				
			||||||
		<p>{{$.i18n.Tr "admin.monitor.queue.pool.cancel_desc"}}</p>
 | 
							<p>{{$.locale.Tr "admin.monitor.queue.pool.cancel_desc"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,9 +4,9 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.repos.repo_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}})
 | 
								{{.locale.Tr "admin.repos.repo_manage_panel"}} ({{.locale.Tr "admin.total" .Total}})
 | 
				
			||||||
			<div class="ui right">
 | 
								<div class="ui right">
 | 
				
			||||||
				<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/repos/unadopted">{{.i18n.Tr "admin.repos.unadopted"}}</a>
 | 
									<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/repos/unadopted">{{.locale.Tr "admin.repos.unadopted"}}</a>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
@@ -17,27 +17,27 @@
 | 
				
			|||||||
				<thead>
 | 
									<thead>
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th data-sortt-asc="oldest" data-sortt-desc="newest">ID{{SortArrow "oldest" "newest" $.SortType false}}</th>
 | 
											<th data-sortt-asc="oldest" data-sortt-desc="newest">ID{{SortArrow "oldest" "newest" $.SortType false}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.repos.owner"}}</th>
 | 
											<th>{{.locale.Tr "admin.repos.owner"}}</th>
 | 
				
			||||||
						<th data-sortt-asc="alphabetically" data-sortt-desc="reversealphabetically">
 | 
											<th data-sortt-asc="alphabetically" data-sortt-desc="reversealphabetically">
 | 
				
			||||||
							{{.i18n.Tr "admin.repos.name"}}
 | 
												{{.locale.Tr "admin.repos.name"}}
 | 
				
			||||||
							{{SortArrow "alphabetically" "reversealphabetically" $.SortType false}}
 | 
												{{SortArrow "alphabetically" "reversealphabetically" $.SortType false}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.repos.watches"}}</th>
 | 
											<th>{{.locale.Tr "admin.repos.watches"}}</th>
 | 
				
			||||||
						<th  data-sortt-asc="moststars" data-sortt-desc="feweststars">
 | 
											<th  data-sortt-asc="moststars" data-sortt-desc="feweststars">
 | 
				
			||||||
							{{.i18n.Tr "admin.repos.stars"}}
 | 
												{{.locale.Tr "admin.repos.stars"}}
 | 
				
			||||||
							{{SortArrow "moststars" "feweststars" $.SortType false}}
 | 
												{{SortArrow "moststars" "feweststars" $.SortType false}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th  data-sortt-asc="mostforks" data-sortt-desc="fewestforks">
 | 
											<th  data-sortt-asc="mostforks" data-sortt-desc="fewestforks">
 | 
				
			||||||
							{{.i18n.Tr "admin.repos.forks"}}
 | 
												{{.locale.Tr "admin.repos.forks"}}
 | 
				
			||||||
							{{SortArrow "mostforks" "fewestforks" $.SortType false}}
 | 
												{{SortArrow "mostforks" "fewestforks" $.SortType false}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.repos.issues"}}</th>
 | 
											<th>{{.locale.Tr "admin.repos.issues"}}</th>
 | 
				
			||||||
						<th  data-sortt-asc="size" data-sortt-desc="reversesize">
 | 
											<th  data-sortt-asc="size" data-sortt-desc="reversesize">
 | 
				
			||||||
							{{.i18n.Tr "admin.repos.size"}}
 | 
												{{.locale.Tr "admin.repos.size"}}
 | 
				
			||||||
							{{SortArrow "size" "reversesize" $.SortType false}}
 | 
												{{SortArrow "size" "reversesize" $.SortType false}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.created"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.created"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.notices.op"}}</th>
 | 
											<th>{{.locale.Tr "admin.notices.op"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
@@ -53,22 +53,22 @@
 | 
				
			|||||||
							<td>
 | 
												<td>
 | 
				
			||||||
								<a href="{{.Link}}">{{.Name}}</a>
 | 
													<a href="{{.Link}}">{{.Name}}</a>
 | 
				
			||||||
								{{if .IsArchived}}
 | 
													{{if .IsArchived}}
 | 
				
			||||||
									<span class="ui basic mini label">{{$.i18n.Tr "repo.desc.archived"}}</span>
 | 
														<span class="ui basic mini label">{{$.locale.Tr "repo.desc.archived"}}</span>
 | 
				
			||||||
								{{end}}
 | 
													{{end}}
 | 
				
			||||||
								{{if .IsTemplate}}
 | 
													{{if .IsTemplate}}
 | 
				
			||||||
									{{if .IsPrivate}}
 | 
														{{if .IsPrivate}}
 | 
				
			||||||
										<span class="ui basic mini label">{{$.i18n.Tr "repo.desc.private_template"}}</span>
 | 
															<span class="ui basic mini label">{{$.locale.Tr "repo.desc.private_template"}}</span>
 | 
				
			||||||
									{{else}}
 | 
														{{else}}
 | 
				
			||||||
										{{if .Owner.Visibility.IsPrivate}}
 | 
															{{if .Owner.Visibility.IsPrivate}}
 | 
				
			||||||
											<span class="ui basic mini label">{{$.i18n.Tr "repo.desc.internal_template"}}</span>
 | 
																<span class="ui basic mini label">{{$.locale.Tr "repo.desc.internal_template"}}</span>
 | 
				
			||||||
										{{end}}
 | 
															{{end}}
 | 
				
			||||||
									{{end}}
 | 
														{{end}}
 | 
				
			||||||
								{{else}}
 | 
													{{else}}
 | 
				
			||||||
									{{if .IsPrivate}}
 | 
														{{if .IsPrivate}}
 | 
				
			||||||
										<span class="ui basic mini label">{{$.i18n.Tr "repo.desc.private"}}</span>
 | 
															<span class="ui basic mini label">{{$.locale.Tr "repo.desc.private"}}</span>
 | 
				
			||||||
									{{else}}
 | 
														{{else}}
 | 
				
			||||||
										{{if .Owner.Visibility.IsPrivate}}
 | 
															{{if .Owner.Visibility.IsPrivate}}
 | 
				
			||||||
											<span class="ui basic mini label">{{$.i18n.Tr "repo.desc.internal"}}</span>
 | 
																<span class="ui basic mini label">{{$.locale.Tr "repo.desc.internal"}}</span>
 | 
				
			||||||
										{{end}}
 | 
															{{end}}
 | 
				
			||||||
									{{end}}
 | 
														{{end}}
 | 
				
			||||||
								{{end}}
 | 
													{{end}}
 | 
				
			||||||
@@ -98,12 +98,12 @@
 | 
				
			|||||||
<div class="ui small basic delete modal">
 | 
					<div class="ui small basic delete modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-trash"}}
 | 
							{{svg "octicon-trash"}}
 | 
				
			||||||
		{{.i18n.Tr "repo.settings.delete"}}
 | 
							{{.locale.Tr "repo.settings.delete"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{.i18n.Tr "repo.settings.delete_desc"}}</p>
 | 
							<p>{{.locale.Tr "repo.settings.delete_desc"}}</p>
 | 
				
			||||||
		{{.i18n.Tr "repo.settings.delete_notices_2" `<span class="name"></span>` | Safe}}<br>
 | 
							{{.locale.Tr "repo.settings.delete_notices_2" `<span class="name"></span>` | Safe}}<br>
 | 
				
			||||||
		{{.i18n.Tr "repo.settings.delete_notices_fork_1"}}<br>
 | 
							{{.locale.Tr "repo.settings.delete_notices_fork_1"}}<br>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,28 +2,28 @@
 | 
				
			|||||||
	<!-- Sort -->
 | 
						<!-- Sort -->
 | 
				
			||||||
	<div class="ui dropdown type jump item">
 | 
						<div class="ui dropdown type jump item">
 | 
				
			||||||
		<span class="text">
 | 
							<span class="text">
 | 
				
			||||||
			{{.i18n.Tr "repo.issues.filter_sort"}}
 | 
								{{.locale.Tr "repo.issues.filter_sort"}}
 | 
				
			||||||
				{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
									{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
		</span>
 | 
							</span>
 | 
				
			||||||
		<div class="menu">
 | 
							<div class="menu">
 | 
				
			||||||
			<a class="{{if or (eq .SortType "oldest") (not .SortType)}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
								<a class="{{if or (eq .SortType "oldest") (not .SortType)}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
								<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</a>
 | 
								<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}">{{.locale.Tr "repo.issues.label.filter_sort.alphabetically"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a>
 | 
								<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}">{{.locale.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
								<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
								<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "moststars"}}active{{end}} item" href="{{$.Link}}?sort=moststars&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.moststars"}}</a>
 | 
								<a class="{{if eq .SortType "moststars"}}active{{end}} item" href="{{$.Link}}?sort=moststars&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.moststars"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "feweststars"}}active{{end}} item" href="{{$.Link}}?sort=feweststars&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.feweststars"}}</a>
 | 
								<a class="{{if eq .SortType "feweststars"}}active{{end}} item" href="{{$.Link}}?sort=feweststars&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.feweststars"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "mostforks"}}active{{end}} item" href="{{$.Link}}?sort=mostforks&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.mostforks"}}</a>
 | 
								<a class="{{if eq .SortType "mostforks"}}active{{end}} item" href="{{$.Link}}?sort=mostforks&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.mostforks"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "fewestforks"}}active{{end}} item" href="{{$.Link}}?sort=fewestforks&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.fewestforks"}}</a>
 | 
								<a class="{{if eq .SortType "fewestforks"}}active{{end}} item" href="{{$.Link}}?sort=fewestforks&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.fewestforks"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "size"}}active{{end}} item" href="{{$.Link}}?sort=size&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.label.filter_sort.by_size"}}</a>
 | 
								<a class="{{if eq .SortType "size"}}active{{end}} item" href="{{$.Link}}?sort=size&q={{$.Keyword}}">{{.locale.Tr "repo.issues.label.filter_sort.by_size"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "reversesize"}}active{{end}} item" href="{{$.Link}}?sort=reversesize&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_by_size"}}</a>
 | 
								<a class="{{if eq .SortType "reversesize"}}active{{end}} item" href="{{$.Link}}?sort=reversesize&q={{$.Keyword}}">{{.locale.Tr "repo.issues.label.filter_sort.reverse_by_size"}}</a>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
<form class="ui form ignore-dirty"  style="max-width: 90%">
 | 
					<form class="ui form ignore-dirty"  style="max-width: 90%">
 | 
				
			||||||
	<div class="ui fluid action input">
 | 
						<div class="ui fluid action input">
 | 
				
			||||||
		<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
							<input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..." autofocus>
 | 
				
			||||||
		<button class="ui primary button">{{.i18n.Tr "explore.search"}}</button>
 | 
							<button class="ui primary button">{{.locale.Tr "explore.search"}}</button>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,17 +4,17 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.repos.unadopted"}}
 | 
								{{.locale.Tr "admin.repos.unadopted"}}
 | 
				
			||||||
			<div class="ui right">
 | 
								<div class="ui right">
 | 
				
			||||||
				<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/repos">{{.i18n.Tr "admin.repos.repo_manage_panel"}}</a>
 | 
									<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/repos">{{.locale.Tr "admin.repos.repo_manage_panel"}}</a>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<form class="ui form ignore-dirty">
 | 
								<form class="ui form ignore-dirty">
 | 
				
			||||||
				<div class="ui fluid action input">
 | 
									<div class="ui fluid action input">
 | 
				
			||||||
				<input name="search" value="true" type="hidden">
 | 
									<input name="search" value="true" type="hidden">
 | 
				
			||||||
				<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "repo.adopt_search"}}" autofocus>
 | 
									<input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "repo.adopt_search"}}" autofocus>
 | 
				
			||||||
				<button class="ui primary button">{{.i18n.Tr "explore.search"}}</button>
 | 
									<button class="ui primary button">{{.locale.Tr "explore.search"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
@@ -28,14 +28,14 @@
 | 
				
			|||||||
									<span class="icon">{{svg "octicon-file-directory-fill"}}</span>
 | 
														<span class="icon">{{svg "octicon-file-directory-fill"}}</span>
 | 
				
			||||||
									<span class="name">{{$dir}}</span>
 | 
														<span class="name">{{$dir}}</span>
 | 
				
			||||||
									<div class="right floated content">
 | 
														<div class="right floated content">
 | 
				
			||||||
										<button class="ui button submit tiny green adopt show-modal" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{$.i18n.Tr "repo.adopt_preexisting_label"}}</span></button>
 | 
															<button class="ui button submit tiny green adopt show-modal" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{$.locale.Tr "repo.adopt_preexisting_label"}}</span></button>
 | 
				
			||||||
										<div class="ui basic modal" id="adopt-unadopted-modal-{{$dirI}}">
 | 
															<div class="ui basic modal" id="adopt-unadopted-modal-{{$dirI}}">
 | 
				
			||||||
											{{svg "octicon-x" 16 "close inside"}}
 | 
																{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
											<div class="header">
 | 
																<div class="header">
 | 
				
			||||||
												<span class="label">{{$.i18n.Tr "repo.adopt_preexisting"}}</span>
 | 
																	<span class="label">{{$.locale.Tr "repo.adopt_preexisting"}}</span>
 | 
				
			||||||
											</div>
 | 
																</div>
 | 
				
			||||||
											<div class="content">
 | 
																<div class="content">
 | 
				
			||||||
												<p>{{$.i18n.Tr "repo.adopt_preexisting_content" $dir}}</p>
 | 
																	<p>{{$.locale.Tr "repo.adopt_preexisting_content" $dir}}</p>
 | 
				
			||||||
											</div>
 | 
																</div>
 | 
				
			||||||
											<form class="ui form" method="POST" action="{{AppSubUrl}}/admin/repos/unadopted">
 | 
																<form class="ui form" method="POST" action="{{AppSubUrl}}/admin/repos/unadopted">
 | 
				
			||||||
												{{$.CsrfTokenHtml}}
 | 
																	{{$.CsrfTokenHtml}}
 | 
				
			||||||
@@ -46,23 +46,23 @@
 | 
				
			|||||||
												<div class="actions">
 | 
																	<div class="actions">
 | 
				
			||||||
													<div class="ui red basic inverted cancel button">
 | 
																		<div class="ui red basic inverted cancel button">
 | 
				
			||||||
														{{svg "octicon-trash" 16 "mr-2"}}
 | 
																			{{svg "octicon-trash" 16 "mr-2"}}
 | 
				
			||||||
														{{$.i18n.Tr "modal.no"}}
 | 
																			{{$.locale.Tr "modal.no"}}
 | 
				
			||||||
													</div>
 | 
																		</div>
 | 
				
			||||||
													<button class="ui green basic inverted ok button">
 | 
																		<button class="ui green basic inverted ok button">
 | 
				
			||||||
														{{svg "octicon-check" 16 "mr-2"}}
 | 
																			{{svg "octicon-check" 16 "mr-2"}}
 | 
				
			||||||
														{{$.i18n.Tr "modal.yes"}}
 | 
																			{{$.locale.Tr "modal.yes"}}
 | 
				
			||||||
													</button>
 | 
																		</button>
 | 
				
			||||||
												</div>
 | 
																	</div>
 | 
				
			||||||
											</form>
 | 
																</form>
 | 
				
			||||||
										</div>
 | 
															</div>
 | 
				
			||||||
										<button class="ui button submit tiny red delete show-modal" data-modal="#delete-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-x"}}</span><span class="label">{{$.i18n.Tr "repo.delete_preexisting_label"}}</span></button>
 | 
															<button class="ui button submit tiny red delete show-modal" data-modal="#delete-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-x"}}</span><span class="label">{{$.locale.Tr "repo.delete_preexisting_label"}}</span></button>
 | 
				
			||||||
										<div class="ui basic modal" id="delete-unadopted-modal-{{$dirI}}">
 | 
															<div class="ui basic modal" id="delete-unadopted-modal-{{$dirI}}">
 | 
				
			||||||
											{{svg "octicon-x" 16 "close inside"}}
 | 
																{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
											<div class="header">
 | 
																<div class="header">
 | 
				
			||||||
												<span class="label">{{$.i18n.Tr "repo.delete_preexisting"}}</span>
 | 
																	<span class="label">{{$.locale.Tr "repo.delete_preexisting"}}</span>
 | 
				
			||||||
											</div>
 | 
																</div>
 | 
				
			||||||
											<div class="content">
 | 
																<div class="content">
 | 
				
			||||||
												<p>{{$.i18n.Tr "repo.delete_preexisting_content" $dir}}</p>
 | 
																	<p>{{$.locale.Tr "repo.delete_preexisting_content" $dir}}</p>
 | 
				
			||||||
											</div>
 | 
																</div>
 | 
				
			||||||
											<form class="ui form" method="POST" action="{{AppSubUrl}}/admin/repos/unadopted">
 | 
																<form class="ui form" method="POST" action="{{AppSubUrl}}/admin/repos/unadopted">
 | 
				
			||||||
												{{$.CsrfTokenHtml}}
 | 
																	{{$.CsrfTokenHtml}}
 | 
				
			||||||
@@ -73,11 +73,11 @@
 | 
				
			|||||||
												<div class="actions">
 | 
																	<div class="actions">
 | 
				
			||||||
													<div class="ui red basic inverted cancel button">
 | 
																		<div class="ui red basic inverted cancel button">
 | 
				
			||||||
														{{svg "octicon-trash" 16 "mr-2"}}
 | 
																			{{svg "octicon-trash" 16 "mr-2"}}
 | 
				
			||||||
														{{$.i18n.Tr "modal.no"}}
 | 
																			{{$.locale.Tr "modal.no"}}
 | 
				
			||||||
													</div>
 | 
																		</div>
 | 
				
			||||||
													<button class="ui green basic inverted ok button">
 | 
																		<button class="ui green basic inverted ok button">
 | 
				
			||||||
														{{svg "octicon-check" 16 "mr-2"}}
 | 
																			{{svg "octicon-check" 16 "mr-2"}}
 | 
				
			||||||
														{{$.i18n.Tr "modal.yes"}}
 | 
																			{{$.locale.Tr "modal.yes"}}
 | 
				
			||||||
													</button>
 | 
																		</button>
 | 
				
			||||||
												</div>
 | 
																	</div>
 | 
				
			||||||
											</form>
 | 
																</form>
 | 
				
			||||||
@@ -90,7 +90,7 @@
 | 
				
			|||||||
					{{template "base/paginate" .}}
 | 
										{{template "base/paginate" .}}
 | 
				
			||||||
				{{else}}
 | 
									{{else}}
 | 
				
			||||||
					<div class="item">
 | 
										<div class="item">
 | 
				
			||||||
						{{.i18n.Tr "admin.repos.unadopted.no_more"}}
 | 
											{{.locale.Tr "admin.repos.unadopted.no_more"}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					{{template "base/paginate" .}}
 | 
										{{template "base/paginate" .}}
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="content f1">
 | 
							<div class="content f1">
 | 
				
			||||||
			<div class="header">{{.Process.Description}}</div>
 | 
								<div class="header">{{.Process.Description}}</div>
 | 
				
			||||||
			<div class="description">{{if ne .Process.Type "none"}}<span title="{{DateFmtLong .Process.Start}}">{{TimeSince .Process.Start .root.i18n}}</span>{{end}}</div>
 | 
								<div class="description">{{if ne .Process.Type "none"}}<span title="{{DateFmtLong .Process.Start}}">{{TimeSince .Process.Start .root.locale}}</span>{{end}}</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div>
 | 
							<div>
 | 
				
			||||||
			{{if or (eq .Process.Type "request") (eq .Process.Type "normal") }}
 | 
								{{if or (eq .Process.Type "request") (eq .Process.Type "normal") }}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,9 +4,9 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.monitor.stacktrace"}}: {{.i18n.Tr "admin.monitor.goroutines" .GoroutineCount}}
 | 
								{{.locale.Tr "admin.monitor.stacktrace"}}: {{.locale.Tr "admin.monitor.goroutines" .GoroutineCount}}
 | 
				
			||||||
			<div class="ui right">
 | 
								<div class="ui right">
 | 
				
			||||||
				<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/monitor">{{.i18n.Tr "admin.monitor"}}</a>
 | 
									<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/monitor">{{.locale.Tr "admin.monitor"}}</a>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
@@ -21,11 +21,11 @@
 | 
				
			|||||||
<div class="ui small basic delete modal">
 | 
					<div class="ui small basic delete modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-x" 16 "close inside"}}
 | 
							{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
		{{.i18n.Tr "admin.monitor.process.cancel"}}
 | 
							{{.locale.Tr "admin.monitor.process.cancel"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{$.i18n.Tr "admin.monitor.process.cancel_notices" `<span class="name"></span>` | Safe}}</p>
 | 
							<p>{{$.locale.Tr "admin.monitor.process.cancel_notices" `<span class="name"></span>` | Safe}}</p>
 | 
				
			||||||
		<p>{{$.i18n.Tr "admin.monitor.process.cancel_desc"}}</p>
 | 
							<p>{{$.locale.Tr "admin.monitor.process.cancel_desc"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,25 +4,25 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.users.edit_account"}}
 | 
								{{.locale.Tr "admin.users.edit_account"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<form class="ui form" action="{{.Link}}" method="post">
 | 
								<form class="ui form" action="{{.Link}}" method="post">
 | 
				
			||||||
				{{template "base/disable_form_autofill"}}
 | 
									{{template "base/disable_form_autofill"}}
 | 
				
			||||||
				{{.CsrfTokenHtml}}
 | 
									{{.CsrfTokenHtml}}
 | 
				
			||||||
				<div class="field {{if .Err_UserName}}error{{end}}">
 | 
									<div class="field {{if .Err_UserName}}error{{end}}">
 | 
				
			||||||
					<label for="user_name">{{.i18n.Tr "username"}}</label>
 | 
										<label for="user_name">{{.locale.Tr "username"}}</label>
 | 
				
			||||||
					<input id="user_name" name="user_name" value="{{.User.Name}}" autofocus {{if not .User.IsLocal }}disabled{{end}}>
 | 
										<input id="user_name" name="user_name" value="{{.User.Name}}" autofocus {{if not .User.IsLocal }}disabled{{end}}>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<!-- Types and name -->
 | 
									<!-- Types and name -->
 | 
				
			||||||
				<div class="inline required field {{if .Err_LoginType}}error{{end}}">
 | 
									<div class="inline required field {{if .Err_LoginType}}error{{end}}">
 | 
				
			||||||
					<label>{{.i18n.Tr "admin.users.auth_source"}}</label>
 | 
										<label>{{.locale.Tr "admin.users.auth_source"}}</label>
 | 
				
			||||||
					<div class="ui selection type dropdown">
 | 
										<div class="ui selection type dropdown">
 | 
				
			||||||
						<input type="hidden" id="login_type" name="login_type" value="{{.LoginSource.Type.Int}}-{{.LoginSource.ID}}" required>
 | 
											<input type="hidden" id="login_type" name="login_type" value="{{.LoginSource.Type.Int}}-{{.LoginSource.ID}}" required>
 | 
				
			||||||
						<div class="text">{{.i18n.Tr "admin.users.local"}}</div>
 | 
											<div class="text">{{.locale.Tr "admin.users.local"}}</div>
 | 
				
			||||||
						{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
											{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
						<div class="menu">
 | 
											<div class="menu">
 | 
				
			||||||
							<div class="item" data-value="0-0">{{.i18n.Tr "admin.users.local"}}</div>
 | 
												<div class="item" data-value="0-0">{{.locale.Tr "admin.users.local"}}</div>
 | 
				
			||||||
							{{range .Sources}}
 | 
												{{range .Sources}}
 | 
				
			||||||
								<div class="item" data-value="{{.Type.Int}}-{{.ID}}">{{.Name}}</div>
 | 
													<div class="item" data-value="{{.Type.Int}}-{{.ID}}">{{.Name}}</div>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
@@ -31,25 +31,25 @@
 | 
				
			|||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="inline field {{if .Err_Visibility}}error{{end}}">
 | 
									<div class="inline field {{if .Err_Visibility}}error{{end}}">
 | 
				
			||||||
					<span class="inline required field"><label for="visibility">{{.i18n.Tr "settings.visibility"}}</label></span>
 | 
										<span class="inline required field"><label for="visibility">{{.locale.Tr "settings.visibility"}}</label></span>
 | 
				
			||||||
					<div class="ui selection type dropdown">
 | 
										<div class="ui selection type dropdown">
 | 
				
			||||||
						{{if .User.Visibility.IsPublic}}<input type="hidden" id="visibility" name="visibility" value="0">{{end}}
 | 
											{{if .User.Visibility.IsPublic}}<input type="hidden" id="visibility" name="visibility" value="0">{{end}}
 | 
				
			||||||
						{{if .User.Visibility.IsLimited}}<input type="hidden" id="visibility" name="visibility" value="1">{{end}}
 | 
											{{if .User.Visibility.IsLimited}}<input type="hidden" id="visibility" name="visibility" value="1">{{end}}
 | 
				
			||||||
						{{if .User.Visibility.IsPrivate}}<input type="hidden" id="visibility" name="visibility" value="2">{{end}}
 | 
											{{if .User.Visibility.IsPrivate}}<input type="hidden" id="visibility" name="visibility" value="2">{{end}}
 | 
				
			||||||
						<div class="text">
 | 
											<div class="text">
 | 
				
			||||||
							{{if .User.Visibility.IsPublic}}{{.i18n.Tr "settings.visibility.public"}}{{end}}
 | 
												{{if .User.Visibility.IsPublic}}{{.locale.Tr "settings.visibility.public"}}{{end}}
 | 
				
			||||||
							{{if .User.Visibility.IsLimited}}{{.i18n.Tr "settings.visibility.limited"}}{{end}}
 | 
												{{if .User.Visibility.IsLimited}}{{.locale.Tr "settings.visibility.limited"}}{{end}}
 | 
				
			||||||
							{{if .User.Visibility.IsPrivate}}{{.i18n.Tr "settings.visibility.private"}}{{end}}
 | 
												{{if .User.Visibility.IsPrivate}}{{.locale.Tr "settings.visibility.private"}}{{end}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
											{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
						<div class="menu">
 | 
											<div class="menu">
 | 
				
			||||||
							{{range $mode := .AllowedUserVisibilityModes}}
 | 
												{{range $mode := .AllowedUserVisibilityModes}}
 | 
				
			||||||
								{{if $mode.IsPublic}}
 | 
													{{if $mode.IsPublic}}
 | 
				
			||||||
									<div class="item tooltip" data-content="{{$.i18n.Tr "settings.visibility.public_tooltip"}}" data-value="0">{{$.i18n.Tr "settings.visibility.public"}}</div>
 | 
														<div class="item tooltip" data-content="{{$.locale.Tr "settings.visibility.public_tooltip"}}" data-value="0">{{$.locale.Tr "settings.visibility.public"}}</div>
 | 
				
			||||||
								{{else if $mode.IsLimited}}
 | 
													{{else if $mode.IsLimited}}
 | 
				
			||||||
									<div class="item tooltip" data-content="{{$.i18n.Tr "settings.visibility.limited_tooltip"}}" data-value="1">{{$.i18n.Tr "settings.visibility.limited"}}</div>
 | 
														<div class="item tooltip" data-content="{{$.locale.Tr "settings.visibility.limited_tooltip"}}" data-value="1">{{$.locale.Tr "settings.visibility.limited"}}</div>
 | 
				
			||||||
								{{else if $mode.IsPrivate}}
 | 
													{{else if $mode.IsPrivate}}
 | 
				
			||||||
									<div class="item tooltip" data-content="{{$.i18n.Tr "settings.visibility.private_tooltip"}}" data-value="2">{{$.i18n.Tr "settings.visibility.private"}}</div>
 | 
														<div class="item tooltip" data-content="{{$.locale.Tr "settings.visibility.private_tooltip"}}" data-value="2">{{$.locale.Tr "settings.visibility.private"}}</div>
 | 
				
			||||||
								{{end}}
 | 
													{{end}}
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
@@ -57,81 +57,81 @@
 | 
				
			|||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="required non-local field {{if .Err_LoginName}}error{{end}} {{if eq .User.LoginSource 0}}hide{{end}}">
 | 
									<div class="required non-local field {{if .Err_LoginName}}error{{end}} {{if eq .User.LoginSource 0}}hide{{end}}">
 | 
				
			||||||
					<label for="login_name">{{.i18n.Tr "admin.users.auth_login_name"}}</label>
 | 
										<label for="login_name">{{.locale.Tr "admin.users.auth_login_name"}}</label>
 | 
				
			||||||
					<input id="login_name" name="login_name" value="{{.User.LoginName}}" autofocus>
 | 
										<input id="login_name" name="login_name" value="{{.User.LoginName}}" autofocus>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="field {{if .Err_FullName}}error{{end}}">
 | 
									<div class="field {{if .Err_FullName}}error{{end}}">
 | 
				
			||||||
					<label for="full_name">{{.i18n.Tr "settings.full_name"}}</label>
 | 
										<label for="full_name">{{.locale.Tr "settings.full_name"}}</label>
 | 
				
			||||||
					<input id="full_name" name="full_name" value="{{.User.FullName}}">
 | 
										<input id="full_name" name="full_name" value="{{.User.FullName}}">
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="required field {{if .Err_Email}}error{{end}}">
 | 
									<div class="required field {{if .Err_Email}}error{{end}}">
 | 
				
			||||||
					<label for="email">{{.i18n.Tr "email"}}</label>
 | 
										<label for="email">{{.locale.Tr "email"}}</label>
 | 
				
			||||||
					<input id="email" name="email" type="email" value="{{.User.Email}}" autofocus required>
 | 
										<input id="email" name="email" type="email" value="{{.User.Email}}" autofocus required>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="local field {{if .Err_Password}}error{{end}} {{if not (or (.User.IsLocal) (.User.IsOAuth2))}}hide{{end}}">
 | 
									<div class="local field {{if .Err_Password}}error{{end}} {{if not (or (.User.IsLocal) (.User.IsOAuth2))}}hide{{end}}">
 | 
				
			||||||
					<label for="password">{{.i18n.Tr "password"}}</label>
 | 
										<label for="password">{{.locale.Tr "password"}}</label>
 | 
				
			||||||
					<input id="password" name="password" type="password" autocomplete="new-password">
 | 
										<input id="password" name="password" type="password" autocomplete="new-password">
 | 
				
			||||||
					<p class="help">{{.i18n.Tr "admin.users.password_helper"}}</p>
 | 
										<p class="help">{{.locale.Tr "admin.users.password_helper"}}</p>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="field {{if .Err_Website}}error{{end}}">
 | 
									<div class="field {{if .Err_Website}}error{{end}}">
 | 
				
			||||||
					<label for="website">{{.i18n.Tr "settings.website"}}</label>
 | 
										<label for="website">{{.locale.Tr "settings.website"}}</label>
 | 
				
			||||||
					<input id="website" name="website" type="url" value="{{.User.Website}}" placeholder="e.g. http://mydomain.com or https://mydomain.com">
 | 
										<input id="website" name="website" type="url" value="{{.User.Website}}" placeholder="e.g. http://mydomain.com or https://mydomain.com">
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="field {{if .Err_Location}}error{{end}}">
 | 
									<div class="field {{if .Err_Location}}error{{end}}">
 | 
				
			||||||
					<label for="location">{{.i18n.Tr "settings.location"}}</label>
 | 
										<label for="location">{{.locale.Tr "settings.location"}}</label>
 | 
				
			||||||
					<input id="location" name="location" value="{{.User.Location}}">
 | 
										<input id="location" name="location" value="{{.User.Location}}">
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="inline field {{if .Err_MaxRepoCreation}}error{{end}}">
 | 
									<div class="inline field {{if .Err_MaxRepoCreation}}error{{end}}">
 | 
				
			||||||
					<label for="max_repo_creation">{{.i18n.Tr "admin.users.max_repo_creation"}}</label>
 | 
										<label for="max_repo_creation">{{.locale.Tr "admin.users.max_repo_creation"}}</label>
 | 
				
			||||||
					<input id="max_repo_creation" name="max_repo_creation" type="number" value="{{.User.MaxRepoCreation}}">
 | 
										<input id="max_repo_creation" name="max_repo_creation" type="number" value="{{.User.MaxRepoCreation}}">
 | 
				
			||||||
					<p class="help">{{.i18n.Tr "admin.users.max_repo_creation_desc"}}</p>
 | 
										<p class="help">{{.locale.Tr "admin.users.max_repo_creation_desc"}}</p>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.users.is_activated"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.users.is_activated"}}</strong></label>
 | 
				
			||||||
						<input name="active" type="checkbox" {{if .User.IsActive}}checked{{end}}>
 | 
											<input name="active" type="checkbox" {{if .User.IsActive}}checked{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.users.prohibit_login"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.users.prohibit_login"}}</strong></label>
 | 
				
			||||||
						<input name="prohibit_login" type="checkbox" {{if .User.ProhibitLogin}}checked{{end}} {{if (eq .User.ID .SignedUserID)}}disabled{{end}}>
 | 
											<input name="prohibit_login" type="checkbox" {{if .User.ProhibitLogin}}checked{{end}} {{if (eq .User.ID .SignedUserID)}}disabled{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.users.is_admin"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.users.is_admin"}}</strong></label>
 | 
				
			||||||
						<input name="admin" type="checkbox" {{if .User.IsAdmin}}checked{{end}}>
 | 
											<input name="admin" type="checkbox" {{if .User.IsAdmin}}checked{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.users.is_restricted"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.users.is_restricted"}}</strong></label>
 | 
				
			||||||
						<input name="restricted" type="checkbox" {{if .User.IsRestricted}}checked{{end}}>
 | 
											<input name="restricted" type="checkbox" {{if .User.IsRestricted}}checked{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="inline field"{{if DisableGitHooks}} hidden{{end}}>
 | 
									<div class="inline field"{{if DisableGitHooks}} hidden{{end}}>
 | 
				
			||||||
					<div class="ui checkbox tooltip" data-content="{{.i18n.Tr "admin.users.allow_git_hook_tooltip"}}" data-variation="very wide">
 | 
										<div class="ui checkbox tooltip" data-content="{{.locale.Tr "admin.users.allow_git_hook_tooltip"}}" data-variation="very wide">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.users.allow_git_hook"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.users.allow_git_hook"}}</strong></label>
 | 
				
			||||||
						<input name="allow_git_hook" type="checkbox" {{if .User.CanEditGitHook}}checked{{end}} {{if DisableGitHooks}}disabled{{end}}>
 | 
											<input name="allow_git_hook" type="checkbox" {{if .User.CanEditGitHook}}checked{{end}} {{if DisableGitHooks}}disabled{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="inline field" {{if or (DisableImportLocal) (.DisableMigrations)}}hidden{{end}}>
 | 
									<div class="inline field" {{if or (DisableImportLocal) (.DisableMigrations)}}hidden{{end}}>
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.users.allow_import_local"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.users.allow_import_local"}}</strong></label>
 | 
				
			||||||
						<input name="allow_import_local" type="checkbox" {{if .User.CanImportLocal}}checked{{end}} {{if DisableImportLocal}}disabled{{end}}>
 | 
											<input name="allow_import_local" type="checkbox" {{if .User.CanImportLocal}}checked{{end}} {{if DisableImportLocal}}disabled{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				{{if not .DisableRegularOrgCreation}}
 | 
									{{if not .DisableRegularOrgCreation}}
 | 
				
			||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.users.allow_create_organization"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.users.allow_create_organization"}}</strong></label>
 | 
				
			||||||
						<input name="allow_create_organization" type="checkbox" {{if .User.CanCreateOrganization}}checked{{end}}>
 | 
											<input name="allow_create_organization" type="checkbox" {{if .User.CanCreateOrganization}}checked{{end}}>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
@@ -141,7 +141,7 @@
 | 
				
			|||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "admin.users.reset_2fa"}}</strong></label>
 | 
											<label><strong>{{.locale.Tr "admin.users.reset_2fa"}}</strong></label>
 | 
				
			||||||
						<input name="reset_2fa" type="checkbox">
 | 
											<input name="reset_2fa" type="checkbox">
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
@@ -150,14 +150,14 @@
 | 
				
			|||||||
				<div class="ui divider"></div>
 | 
									<div class="ui divider"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="field">
 | 
									<div class="field">
 | 
				
			||||||
					<button class="ui green button">{{.i18n.Tr "admin.users.update_profile"}}</button>
 | 
										<button class="ui green button">{{.locale.Tr "admin.users.update_profile"}}</button>
 | 
				
			||||||
					<div class="ui red button delete-button" data-url="{{$.Link}}/delete" data-id="{{.User.ID}}">{{.i18n.Tr "admin.users.delete_account"}}</div>
 | 
										<div class="ui red button delete-button" data-url="{{$.Link}}/delete" data-id="{{.User.ID}}">{{.locale.Tr "admin.users.delete_account"}}</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "settings.avatar"}}
 | 
								{{.locale.Tr "settings.avatar"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<form class="ui form" action="{{.Link}}/avatar" method="post" enctype="multipart/form-data">
 | 
								<form class="ui form" action="{{.Link}}/avatar" method="post" enctype="multipart/form-data">
 | 
				
			||||||
@@ -166,11 +166,11 @@
 | 
				
			|||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<div class="ui radio checkbox">
 | 
										<div class="ui radio checkbox">
 | 
				
			||||||
						<input name="source" value="lookup" type="radio" {{if not .User.UseCustomAvatar}}checked{{end}}>
 | 
											<input name="source" value="lookup" type="radio" {{if not .User.UseCustomAvatar}}checked{{end}}>
 | 
				
			||||||
						<label>{{.i18n.Tr "settings.lookup_avatar_by_mail"}}</label>
 | 
											<label>{{.locale.Tr "settings.lookup_avatar_by_mail"}}</label>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="field {{if .Err_Gravatar}}error{{end}}">
 | 
									<div class="field {{if .Err_Gravatar}}error{{end}}">
 | 
				
			||||||
					<label for="gravatar">Avatar {{.i18n.Tr "email"}}</label>
 | 
										<label for="gravatar">Avatar {{.locale.Tr "email"}}</label>
 | 
				
			||||||
					<input id="gravatar" name="gravatar" value="{{.User.AvatarEmail}}" />
 | 
										<input id="gravatar" name="gravatar" value="{{.User.AvatarEmail}}" />
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
@@ -178,18 +178,18 @@
 | 
				
			|||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<div class="ui radio checkbox">
 | 
										<div class="ui radio checkbox">
 | 
				
			||||||
						<input name="source" value="local" type="radio" {{if .User.UseCustomAvatar}}checked{{end}}>
 | 
											<input name="source" value="local" type="radio" {{if .User.UseCustomAvatar}}checked{{end}}>
 | 
				
			||||||
						<label>{{.i18n.Tr "settings.enable_custom_avatar"}}</label>
 | 
											<label>{{.locale.Tr "settings.enable_custom_avatar"}}</label>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="inline field">
 | 
									<div class="inline field">
 | 
				
			||||||
					<label for="avatar">{{.i18n.Tr "settings.choose_new_avatar"}}</label>
 | 
										<label for="avatar">{{.locale.Tr "settings.choose_new_avatar"}}</label>
 | 
				
			||||||
					<input name="avatar" type="file" >
 | 
										<input name="avatar" type="file" >
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="field">
 | 
									<div class="field">
 | 
				
			||||||
					<button class="ui green button">{{$.i18n.Tr "settings.update_avatar"}}</button>
 | 
										<button class="ui green button">{{$.locale.Tr "settings.update_avatar"}}</button>
 | 
				
			||||||
					<a class="ui red button delete-post" data-request-url="{{.Link}}/avatar/delete" data-done-url="{{.Link}}">{{$.i18n.Tr "settings.delete_current_avatar"}}</a>
 | 
										<a class="ui red button delete-post" data-request-url="{{.Link}}/avatar/delete" data-done-url="{{.Link}}">{{$.locale.Tr "settings.delete_current_avatar"}}</a>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
@@ -199,10 +199,10 @@
 | 
				
			|||||||
<div class="ui small basic delete modal">
 | 
					<div class="ui small basic delete modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-trash"}}
 | 
							{{svg "octicon-trash"}}
 | 
				
			||||||
		{{.i18n.Tr "settings.delete_account_title"}}
 | 
							{{.locale.Tr "settings.delete_account_title"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{.i18n.Tr "settings.delete_account_desc"}}</p>
 | 
							<p>{{.locale.Tr "settings.delete_account_desc"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,9 +4,9 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.users.user_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}})
 | 
								{{.locale.Tr "admin.users.user_manage_panel"}} ({{.locale.Tr "admin.total" .Total}})
 | 
				
			||||||
			<div class="ui right">
 | 
								<div class="ui right">
 | 
				
			||||||
				<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/users/new">{{.i18n.Tr "admin.users.new_account"}}</a>
 | 
									<a class="ui primary tiny button" href="{{AppSubUrl}}/admin/users/new">{{.locale.Tr "admin.users.new_account"}}</a>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
@@ -16,47 +16,47 @@
 | 
				
			|||||||
				<div class="ui right floated secondary filter menu">
 | 
									<div class="ui right floated secondary filter menu">
 | 
				
			||||||
					<!-- Status Filter Menu Item -->
 | 
										<!-- Status Filter Menu Item -->
 | 
				
			||||||
					<div class="ui dropdown type jump item">
 | 
										<div class="ui dropdown type jump item">
 | 
				
			||||||
						<span class="text">{{.i18n.Tr "admin.users.list_status_filter.menu_text"}} {{svg "octicon-triangle-down" 14 "dropdown icon"}}</span>
 | 
											<span class="text">{{.locale.Tr "admin.users.list_status_filter.menu_text"}} {{svg "octicon-triangle-down" 14 "dropdown icon"}}</span>
 | 
				
			||||||
						<div class="menu">
 | 
											<div class="menu">
 | 
				
			||||||
							<a class="item j-reset-status-filter">{{.i18n.Tr "admin.users.list_status_filter.reset"}}</a>
 | 
												<a class="item j-reset-status-filter">{{.locale.Tr "admin.users.list_status_filter.reset"}}</a>
 | 
				
			||||||
							<div class="ui divider"></div>
 | 
												<div class="ui divider"></div>
 | 
				
			||||||
							<label class="item"><input type="radio" name="status_filter[is_admin]" value="1"> {{.i18n.Tr "admin.users.list_status_filter.is_admin"}}</label>
 | 
												<label class="item"><input type="radio" name="status_filter[is_admin]" value="1"> {{.locale.Tr "admin.users.list_status_filter.is_admin"}}</label>
 | 
				
			||||||
							<label class="item"><input type="radio" name="status_filter[is_admin]" value="0"> {{.i18n.Tr "admin.users.list_status_filter.not_admin"}}</label>
 | 
												<label class="item"><input type="radio" name="status_filter[is_admin]" value="0"> {{.locale.Tr "admin.users.list_status_filter.not_admin"}}</label>
 | 
				
			||||||
							<div class="ui divider"></div>
 | 
												<div class="ui divider"></div>
 | 
				
			||||||
							<label class="item"><input type="radio" name="status_filter[is_active]" value="1"> {{.i18n.Tr "admin.users.list_status_filter.is_active"}}</label>
 | 
												<label class="item"><input type="radio" name="status_filter[is_active]" value="1"> {{.locale.Tr "admin.users.list_status_filter.is_active"}}</label>
 | 
				
			||||||
							<label class="item"><input type="radio" name="status_filter[is_active]" value="0"> {{.i18n.Tr "admin.users.list_status_filter.not_active"}}</label>
 | 
												<label class="item"><input type="radio" name="status_filter[is_active]" value="0"> {{.locale.Tr "admin.users.list_status_filter.not_active"}}</label>
 | 
				
			||||||
							<div class="ui divider"></div>
 | 
												<div class="ui divider"></div>
 | 
				
			||||||
							<label class="item"><input type="radio" name="status_filter[is_restricted]" value="0"> {{.i18n.Tr "admin.users.list_status_filter.not_restricted"}}</label>
 | 
												<label class="item"><input type="radio" name="status_filter[is_restricted]" value="0"> {{.locale.Tr "admin.users.list_status_filter.not_restricted"}}</label>
 | 
				
			||||||
							<label class="item"><input type="radio" name="status_filter[is_restricted]" value="1"> {{.i18n.Tr "admin.users.list_status_filter.is_restricted"}}</label>
 | 
												<label class="item"><input type="radio" name="status_filter[is_restricted]" value="1"> {{.locale.Tr "admin.users.list_status_filter.is_restricted"}}</label>
 | 
				
			||||||
							<div class="ui divider"></div>
 | 
												<div class="ui divider"></div>
 | 
				
			||||||
							<label class="item"><input type="radio" name="status_filter[is_prohibit_login]" value="0"> {{.i18n.Tr "admin.users.list_status_filter.not_prohibit_login"}}</label>
 | 
												<label class="item"><input type="radio" name="status_filter[is_prohibit_login]" value="0"> {{.locale.Tr "admin.users.list_status_filter.not_prohibit_login"}}</label>
 | 
				
			||||||
							<label class="item"><input type="radio" name="status_filter[is_prohibit_login]" value="1"> {{.i18n.Tr "admin.users.list_status_filter.is_prohibit_login"}}</label>
 | 
												<label class="item"><input type="radio" name="status_filter[is_prohibit_login]" value="1"> {{.locale.Tr "admin.users.list_status_filter.is_prohibit_login"}}</label>
 | 
				
			||||||
							<div class="ui divider"></div>
 | 
												<div class="ui divider"></div>
 | 
				
			||||||
							<label class="item"><input type="radio" name="status_filter[is_2fa_enabled]" value="1"> {{.i18n.Tr "admin.users.list_status_filter.is_2fa_enabled"}}</label>
 | 
												<label class="item"><input type="radio" name="status_filter[is_2fa_enabled]" value="1"> {{.locale.Tr "admin.users.list_status_filter.is_2fa_enabled"}}</label>
 | 
				
			||||||
							<label class="item"><input type="radio" name="status_filter[is_2fa_enabled]" value="0"> {{.i18n.Tr "admin.users.list_status_filter.not_2fa_enabled"}}</label>
 | 
												<label class="item"><input type="radio" name="status_filter[is_2fa_enabled]" value="0"> {{.locale.Tr "admin.users.list_status_filter.not_2fa_enabled"}}</label>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<!-- Sort Menu Item -->
 | 
										<!-- Sort Menu Item -->
 | 
				
			||||||
					<div class="ui dropdown type jump item">
 | 
										<div class="ui dropdown type jump item">
 | 
				
			||||||
						<span class="text">
 | 
											<span class="text">
 | 
				
			||||||
							{{.i18n.Tr "repo.issues.filter_sort"}} {{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
												{{.locale.Tr "repo.issues.filter_sort"}} {{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
						</span>
 | 
											</span>
 | 
				
			||||||
						<div class="menu">
 | 
											<div class="menu">
 | 
				
			||||||
							<button class="item" name="sort" value="oldest">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</button>
 | 
												<button class="item" name="sort" value="oldest">{{.locale.Tr "repo.issues.filter_sort.oldest"}}</button>
 | 
				
			||||||
							<button class="item" name="sort" value="newest">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</button>
 | 
												<button class="item" name="sort" value="newest">{{.locale.Tr "repo.issues.filter_sort.latest"}}</button>
 | 
				
			||||||
							<button class="item" name="sort" value="alphabetically">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</button>
 | 
												<button class="item" name="sort" value="alphabetically">{{.locale.Tr "repo.issues.label.filter_sort.alphabetically"}}</button>
 | 
				
			||||||
							<button class="item" name="sort" value="reversealphabetically">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</button>
 | 
												<button class="item" name="sort" value="reversealphabetically">{{.locale.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</button>
 | 
				
			||||||
							<button class="item" name="sort" value="recentupdate">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</button>
 | 
												<button class="item" name="sort" value="recentupdate">{{.locale.Tr "repo.issues.filter_sort.recentupdate"}}</button>
 | 
				
			||||||
							<button class="item" name="sort" value="leastupdate">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</button>
 | 
												<button class="item" name="sort" value="leastupdate">{{.locale.Tr "repo.issues.filter_sort.leastupdate"}}</button>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<!-- Search Text -->
 | 
									<!-- Search Text -->
 | 
				
			||||||
				<div class="ui fluid action input" style="max-width: 70%;">
 | 
									<div class="ui fluid action input" style="max-width: 70%;">
 | 
				
			||||||
					<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
										<input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..." autofocus>
 | 
				
			||||||
					<button class="ui primary button">{{.i18n.Tr "explore.search"}}</button>
 | 
										<button class="ui primary button">{{.locale.Tr "explore.search"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
@@ -66,21 +66,21 @@
 | 
				
			|||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th data-sortt-asc="oldest" data-sortt-desc="newest">ID{{SortArrow "oldest" "newest" .SortType false}}</th>
 | 
											<th data-sortt-asc="oldest" data-sortt-desc="newest">ID{{SortArrow "oldest" "newest" .SortType false}}</th>
 | 
				
			||||||
						<th data-sortt-asc="alphabetically" data-sortt-desc="reversealphabetically" data-sortt-default="true">
 | 
											<th data-sortt-asc="alphabetically" data-sortt-desc="reversealphabetically" data-sortt-default="true">
 | 
				
			||||||
							{{.i18n.Tr "admin.users.name"}}
 | 
												{{.locale.Tr "admin.users.name"}}
 | 
				
			||||||
							{{SortArrow "alphabetically" "reversealphabetically" $.SortType true}}
 | 
												{{SortArrow "alphabetically" "reversealphabetically" $.SortType true}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "email"}}</th>
 | 
											<th>{{.locale.Tr "email"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.activated"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.activated"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.admin"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.admin"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.restricted"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.restricted"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.2fa"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.2fa"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.repos"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.repos"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.created"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.created"}}</th>
 | 
				
			||||||
						<th data-sortt-asc="leastupdate" data-sortt-desc="recentupdate">
 | 
											<th data-sortt-asc="leastupdate" data-sortt-desc="recentupdate">
 | 
				
			||||||
							{{.i18n.Tr "admin.users.last_login"}}
 | 
												{{.locale.Tr "admin.users.last_login"}}
 | 
				
			||||||
							{{SortArrow "leastupdate" "recentupdate" $.SortType false}}
 | 
												{{SortArrow "leastupdate" "recentupdate" $.SortType false}}
 | 
				
			||||||
						</th>
 | 
											</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "admin.users.edit"}}</th>
 | 
											<th>{{.locale.Tr "admin.users.edit"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
@@ -98,7 +98,7 @@
 | 
				
			|||||||
							{{if .LastLoginUnix}}
 | 
												{{if .LastLoginUnix}}
 | 
				
			||||||
								<td><span title="{{.LastLoginUnix.FormatLong}}">{{.LastLoginUnix.FormatShort}}</span></td>
 | 
													<td><span title="{{.LastLoginUnix.FormatLong}}">{{.LastLoginUnix.FormatShort}}</span></td>
 | 
				
			||||||
							{{else}}
 | 
												{{else}}
 | 
				
			||||||
								<td><span>{{$.i18n.Tr "admin.users.never_login"}}</span></td>
 | 
													<td><span>{{$.locale.Tr "admin.users.never_login"}}</span></td>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
							<td><a href="{{$.Link}}/{{.ID}}">{{svg "octicon-pencil"}}</a></td>
 | 
												<td><a href="{{$.Link}}/{{.ID}}">{{svg "octicon-pencil"}}</a></td>
 | 
				
			||||||
						</tr>
 | 
											</tr>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "admin.users.new_account"}}
 | 
								{{.locale.Tr "admin.users.new_account"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<form class="ui form" action="{{.Link}}" method="post">
 | 
								<form class="ui form" action="{{.Link}}" method="post">
 | 
				
			||||||
@@ -12,13 +12,13 @@
 | 
				
			|||||||
				{{.CsrfTokenHtml}}
 | 
									{{.CsrfTokenHtml}}
 | 
				
			||||||
				<!-- Types and name -->
 | 
									<!-- Types and name -->
 | 
				
			||||||
				<div class="inline required field {{if .Err_LoginType}}error{{end}}">
 | 
									<div class="inline required field {{if .Err_LoginType}}error{{end}}">
 | 
				
			||||||
					<label>{{.i18n.Tr "admin.users.auth_source"}}</label>
 | 
										<label>{{.locale.Tr "admin.users.auth_source"}}</label>
 | 
				
			||||||
					<div class="ui selection type dropdown">
 | 
										<div class="ui selection type dropdown">
 | 
				
			||||||
						<input type="hidden" id="login_type" name="login_type" value="{{.login_type}}" data-password="required" required>
 | 
											<input type="hidden" id="login_type" name="login_type" value="{{.login_type}}" data-password="required" required>
 | 
				
			||||||
						<div class="text">{{.i18n.Tr "admin.users.local"}}</div>
 | 
											<div class="text">{{.locale.Tr "admin.users.local"}}</div>
 | 
				
			||||||
						{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
											{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
						<div class="menu">
 | 
											<div class="menu">
 | 
				
			||||||
							<div class="item" data-value="0-0">{{.i18n.Tr "admin.users.local"}}</div>
 | 
												<div class="item" data-value="0-0">{{.locale.Tr "admin.users.local"}}</div>
 | 
				
			||||||
							{{range .Sources}}
 | 
												{{range .Sources}}
 | 
				
			||||||
								<div class="item" data-value="{{.Type.Int}}-{{.ID}}">{{.Name}}</div>
 | 
													<div class="item" data-value="{{.Type.Int}}-{{.ID}}">{{.Name}}</div>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
@@ -27,23 +27,23 @@
 | 
				
			|||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="inline field {{if .Err_Visibility}}error{{end}}">
 | 
									<div class="inline field {{if .Err_Visibility}}error{{end}}">
 | 
				
			||||||
					<span class="inline required field"><label for="visibility">{{.i18n.Tr "settings.visibility"}}</label></span>
 | 
										<span class="inline required field"><label for="visibility">{{.locale.Tr "settings.visibility"}}</label></span>
 | 
				
			||||||
					<div class="ui selection type dropdown">
 | 
										<div class="ui selection type dropdown">
 | 
				
			||||||
						<input type="hidden" id="visibility" name="visibility" value="{{if .visibility}}{{.visibility}}{{else}}{{printf "%d" .DefaultUserVisibilityMode}}{{end}}">
 | 
											<input type="hidden" id="visibility" name="visibility" value="{{if .visibility}}{{.visibility}}{{else}}{{printf "%d" .DefaultUserVisibilityMode}}{{end}}">
 | 
				
			||||||
						<div class="text">
 | 
											<div class="text">
 | 
				
			||||||
							{{if .DefaultUserVisibilityMode.IsPublic}}{{.i18n.Tr "settings.visibility.public"}}{{end}}
 | 
												{{if .DefaultUserVisibilityMode.IsPublic}}{{.locale.Tr "settings.visibility.public"}}{{end}}
 | 
				
			||||||
							{{if .DefaultUserVisibilityMode.IsLimited}}{{.i18n.Tr "settings.visibility.limited"}}{{end}}
 | 
												{{if .DefaultUserVisibilityMode.IsLimited}}{{.locale.Tr "settings.visibility.limited"}}{{end}}
 | 
				
			||||||
							{{if .DefaultUserVisibilityMode.IsPrivate}}{{.i18n.Tr "settings.visibility.private"}}{{end}}
 | 
												{{if .DefaultUserVisibilityMode.IsPrivate}}{{.locale.Tr "settings.visibility.private"}}{{end}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
											{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
						<div class="menu">
 | 
											<div class="menu">
 | 
				
			||||||
							{{range $mode := .AllowedUserVisibilityModes}}
 | 
												{{range $mode := .AllowedUserVisibilityModes}}
 | 
				
			||||||
								{{if $mode.IsPublic}}
 | 
													{{if $mode.IsPublic}}
 | 
				
			||||||
									<div class="item tooltip" data-content="{{$.i18n.Tr "settings.visibility.public_tooltip"}}" data-value="0">{{$.i18n.Tr "settings.visibility.public"}}</div>
 | 
														<div class="item tooltip" data-content="{{$.locale.Tr "settings.visibility.public_tooltip"}}" data-value="0">{{$.locale.Tr "settings.visibility.public"}}</div>
 | 
				
			||||||
								{{else if $mode.IsLimited}}
 | 
													{{else if $mode.IsLimited}}
 | 
				
			||||||
									<div class="item tooltip" data-content="{{$.i18n.Tr "settings.visibility.limited_tooltip"}}" data-value="1">{{$.i18n.Tr "settings.visibility.limited"}}</div>
 | 
														<div class="item tooltip" data-content="{{$.locale.Tr "settings.visibility.limited_tooltip"}}" data-value="1">{{$.locale.Tr "settings.visibility.limited"}}</div>
 | 
				
			||||||
								{{else if $mode.IsPrivate}}
 | 
													{{else if $mode.IsPrivate}}
 | 
				
			||||||
									<div class="item tooltip" data-content="{{$.i18n.Tr "settings.visibility.private_tooltip"}}" data-value="2">{{$.i18n.Tr "settings.visibility.private"}}</div>
 | 
														<div class="item tooltip" data-content="{{$.locale.Tr "settings.visibility.private_tooltip"}}" data-value="2">{{$.locale.Tr "settings.visibility.private"}}</div>
 | 
				
			||||||
								{{end}}
 | 
													{{end}}
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
@@ -51,25 +51,25 @@
 | 
				
			|||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="required non-local field {{if .Err_LoginName}}error{{end}} {{if eq .login_type "0-0"}}hide{{end}}">
 | 
									<div class="required non-local field {{if .Err_LoginName}}error{{end}} {{if eq .login_type "0-0"}}hide{{end}}">
 | 
				
			||||||
					<label for="login_name">{{.i18n.Tr "admin.users.auth_login_name"}}</label>
 | 
										<label for="login_name">{{.locale.Tr "admin.users.auth_login_name"}}</label>
 | 
				
			||||||
					<input id="login_name" name="login_name" value="{{.login_name}}">
 | 
										<input id="login_name" name="login_name" value="{{.login_name}}">
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="required field {{if .Err_UserName}}error{{end}}">
 | 
									<div class="required field {{if .Err_UserName}}error{{end}}">
 | 
				
			||||||
					<label for="user_name">{{.i18n.Tr "username"}}</label>
 | 
										<label for="user_name">{{.locale.Tr "username"}}</label>
 | 
				
			||||||
					<input id="user_name" type="text" name="user_name" value="{{.user_name}}" autofocus required>
 | 
										<input id="user_name" type="text" name="user_name" value="{{.user_name}}" autofocus required>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="required field {{if .Err_Email}}error{{end}}">
 | 
									<div class="required field {{if .Err_Email}}error{{end}}">
 | 
				
			||||||
					<label for="email">{{.i18n.Tr "email"}}</label>
 | 
										<label for="email">{{.locale.Tr "email"}}</label>
 | 
				
			||||||
					<input id="email" name="email" type="email" value="{{.email}}" required>
 | 
										<input id="email" name="email" type="email" value="{{.email}}" required>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="required local field {{if .Err_Password}}error{{end}} {{if not (eq .login_type "0-0")}}hide{{end}}">
 | 
									<div class="required local field {{if .Err_Password}}error{{end}} {{if not (eq .login_type "0-0")}}hide{{end}}">
 | 
				
			||||||
					<label for="password">{{.i18n.Tr "password"}}</label>
 | 
										<label for="password">{{.locale.Tr "password"}}</label>
 | 
				
			||||||
					<input id="password" name="password" type="password" autocomplete="new-password" value="{{.password}}" {{if eq .login_type "0-0"}}required{{end}}>
 | 
										<input id="password" name="password" type="password" autocomplete="new-password" value="{{.password}}" {{if eq .login_type "0-0"}}required{{end}}>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="inline field local{{if ne .login_type "0-0"}} hide{{end}}">
 | 
									<div class="inline field local{{if ne .login_type "0-0"}} hide{{end}}">
 | 
				
			||||||
					<div class="ui checkbox">
 | 
										<div class="ui checkbox">
 | 
				
			||||||
						<label><strong>{{.i18n.Tr "auth.allow_password_change" }}</strong></label>
 | 
											<label><strong>{{.locale.Tr "auth.allow_password_change" }}</strong></label>
 | 
				
			||||||
						<input name="must_change_password" type="checkbox" checked>
 | 
											<input name="must_change_password" type="checkbox" checked>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
@@ -78,14 +78,14 @@
 | 
				
			|||||||
				{{if .CanSendEmail}}
 | 
									{{if .CanSendEmail}}
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<div class="ui checkbox">
 | 
											<div class="ui checkbox">
 | 
				
			||||||
							<label><strong>{{.i18n.Tr "admin.users.send_register_notify"}}</strong></label>
 | 
												<label><strong>{{.locale.Tr "admin.users.send_register_notify"}}</strong></label>
 | 
				
			||||||
							<input name="send_notify" type="checkbox" {{if .send_notify}}checked{{end}}>
 | 
												<input name="send_notify" type="checkbox" {{if .send_notify}}checked{{end}}>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="field">
 | 
									<div class="field">
 | 
				
			||||||
					<button class="ui green button">{{.i18n.Tr "admin.users.new_account"}}</button>
 | 
										<button class="ui green button">{{.locale.Tr "admin.users.new_account"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
<div class="actions">
 | 
					<div class="actions">
 | 
				
			||||||
	<div class="ui red basic inverted cancel button">
 | 
						<div class="ui red basic inverted cancel button">
 | 
				
			||||||
		{{svg "octicon-x"}}
 | 
							{{svg "octicon-x"}}
 | 
				
			||||||
		{{.i18n.Tr "modal.no"}}
 | 
							{{.locale.Tr "modal.no"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="ui green basic inverted ok button">
 | 
						<div class="ui green basic inverted ok button">
 | 
				
			||||||
		{{svg "octicon-check"}}
 | 
							{{svg "octicon-check"}}
 | 
				
			||||||
		{{.i18n.Tr "modal.yes"}}
 | 
							{{.locale.Tr "modal.yes"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
<footer>
 | 
					<footer>
 | 
				
			||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		<div class="ui left">
 | 
							<div class="ui left">
 | 
				
			||||||
			{{.i18n.Tr "powered_by" "Gitea"}}
 | 
								{{.locale.Tr "powered_by" "Gitea"}}
 | 
				
			||||||
			{{if (or .ShowFooterVersion .PageIsAdmin)}}
 | 
								{{if (or .ShowFooterVersion .PageIsAdmin)}}
 | 
				
			||||||
				{{.i18n.Tr "version"}}:
 | 
									{{.locale.Tr "version"}}:
 | 
				
			||||||
				{{if .IsAdmin}}
 | 
									{{if .IsAdmin}}
 | 
				
			||||||
					<a href="{{AppSubUrl}}/admin/config">{{AppVer}}</a>
 | 
										<a href="{{AppSubUrl}}/admin/config">{{AppVer}}</a>
 | 
				
			||||||
				{{else}}
 | 
									{{else}}
 | 
				
			||||||
@@ -11,8 +11,8 @@
 | 
				
			|||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
			{{if and .TemplateLoadTimes ShowFooterTemplateLoadTime}}
 | 
								{{if and .TemplateLoadTimes ShowFooterTemplateLoadTime}}
 | 
				
			||||||
				{{.i18n.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong>
 | 
									{{.locale.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong>
 | 
				
			||||||
				{{.i18n.Tr "template"}}
 | 
									{{.locale.Tr "template"}}
 | 
				
			||||||
				{{if .TemplateName}} {{.TemplateName}}{{end}}: <strong>{{call .TemplateLoadTimes}}</strong>
 | 
									{{if .TemplateName}} {{.TemplateName}}{{end}}: <strong>{{call .TemplateLoadTimes}}</strong>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
@@ -22,16 +22,16 @@
 | 
				
			|||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
			<div class="ui language bottom floating slide up dropdown link item">
 | 
								<div class="ui language bottom floating slide up dropdown link item">
 | 
				
			||||||
				{{svg "octicon-globe"}}
 | 
									{{svg "octicon-globe"}}
 | 
				
			||||||
				<div class="text">{{.i18n.LangName}}</div>
 | 
									<div class="text">{{.locale.LangName}}</div>
 | 
				
			||||||
				<div class="menu language-menu">
 | 
									<div class="menu language-menu">
 | 
				
			||||||
					{{range .AllLangs}}
 | 
										{{range .AllLangs}}
 | 
				
			||||||
						<a lang="{{.Lang}}" data-url="{{AppSubUrl}}/?lang={{.Lang}}" class="item {{if eq $.i18n.Lang .Lang}}active selected{{end}}">{{.Name}}</a>
 | 
											<a lang="{{.Lang}}" data-url="{{AppSubUrl}}/?lang={{.Lang}}" class="item {{if eq $.locale.Lang .Lang}}active selected{{end}}">{{.Name}}</a>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<a href="{{AssetUrlPrefix}}/js/licenses.txt">{{.i18n.Tr "licenses"}}</a>
 | 
								<a href="{{AssetUrlPrefix}}/js/licenses.txt">{{.locale.Tr "licenses"}}</a>
 | 
				
			||||||
			{{if .EnableSwagger}}<a href="{{AppSubUrl}}/api/swagger">API</a>{{end}}
 | 
								{{if .EnableSwagger}}<a href="{{AppSubUrl}}/api/swagger">API</a>{{end}}
 | 
				
			||||||
			<a target="_blank" rel="noopener noreferrer" href="https://gitea.io">{{.i18n.Tr "website"}}</a>
 | 
								<a target="_blank" rel="noopener noreferrer" href="https://gitea.io">{{.locale.Tr "website"}}</a>
 | 
				
			||||||
			{{template "custom/extra_links_footer" .}}
 | 
								{{template "custom/extra_links_footer" .}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					<!DOCTYPE html>
 | 
				
			||||||
<html lang="{{.i18n.Lang}}" class="theme-{{.SignedUser.Theme}}">
 | 
					<html lang="{{.locale.Lang}}" class="theme-{{.SignedUser.Theme}}">
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
	<meta charset="utf-8">
 | 
						<meta charset="utf-8">
 | 
				
			||||||
	<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
						<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
				
			||||||
@@ -78,7 +78,7 @@
 | 
				
			|||||||
	{{template "custom/body_outer_pre" .}}
 | 
						{{template "custom/body_outer_pre" .}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<div class="full height">
 | 
						<div class="full height">
 | 
				
			||||||
		<noscript>{{.i18n.Tr "enable_javascript"}}</noscript>
 | 
							<noscript>{{.locale.Tr "enable_javascript"}}</noscript>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		{{template "custom/body_inner_pre" .}}
 | 
							{{template "custom/body_inner_pre" .}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
<div class="ui container" id="navbar">
 | 
					<div class="ui container" id="navbar">
 | 
				
			||||||
	<div class="item brand" style="justify-content: space-between;">
 | 
						<div class="item brand" style="justify-content: space-between;">
 | 
				
			||||||
		<a href="{{AppSubUrl}}/" aria-label="{{if .IsSigned}}{{.i18n.Tr "dashboard"}}{{else}}{{.i18n.Tr "home"}}{{end}}">
 | 
							<a href="{{AppSubUrl}}/" aria-label="{{if .IsSigned}}{{.locale.Tr "dashboard"}}{{else}}{{.locale.Tr "home"}}{{end}}">
 | 
				
			||||||
			<img class="ui mini image" width="30" height="30" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{.i18n.Tr "logo"}}" aria-hidden="true">
 | 
								<img class="ui mini image" width="30" height="30" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{.locale.Tr "logo"}}" aria-hidden="true">
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		<div class="ui basic icon button mobile-only" id="navbar-expand-toggle">
 | 
							<div class="ui basic icon button mobile-only" id="navbar-expand-toggle">
 | 
				
			||||||
			<i class="sidebar icon"></i>
 | 
								<i class="sidebar icon"></i>
 | 
				
			||||||
@@ -12,19 +12,19 @@
 | 
				
			|||||||
		{{/* No links */}}
 | 
							{{/* No links */}}
 | 
				
			||||||
	{{else if .IsSigned}}
 | 
						{{else if .IsSigned}}
 | 
				
			||||||
		{{if not .UnitIssuesGlobalDisabled}}
 | 
							{{if not .UnitIssuesGlobalDisabled}}
 | 
				
			||||||
		<a class="item {{if .PageIsIssues}}active{{end}}" href="{{AppSubUrl}}/issues">{{.i18n.Tr "issues"}}</a>
 | 
							<a class="item {{if .PageIsIssues}}active{{end}}" href="{{AppSubUrl}}/issues">{{.locale.Tr "issues"}}</a>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
		{{if not .UnitPullsGlobalDisabled}}
 | 
							{{if not .UnitPullsGlobalDisabled}}
 | 
				
			||||||
		<a class="item {{if .PageIsPulls}}active{{end}}" href="{{AppSubUrl}}/pulls">{{.i18n.Tr "pull_requests"}}</a>
 | 
							<a class="item {{if .PageIsPulls}}active{{end}}" href="{{AppSubUrl}}/pulls">{{.locale.Tr "pull_requests"}}</a>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
		{{if not (and .UnitIssuesGlobalDisabled .UnitPullsGlobalDisabled)}}
 | 
							{{if not (and .UnitIssuesGlobalDisabled .UnitPullsGlobalDisabled)}}
 | 
				
			||||||
		{{if .ShowMilestonesDashboardPage}}<a class="item {{if .PageIsMilestonesDashboard}}active{{end}}" href="{{AppSubUrl}}/milestones">{{.i18n.Tr "milestones"}}</a>{{end}}
 | 
							{{if .ShowMilestonesDashboardPage}}<a class="item {{if .PageIsMilestonesDashboard}}active{{end}}" href="{{AppSubUrl}}/milestones">{{.locale.Tr "milestones"}}</a>{{end}}
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
		<a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/repos">{{.i18n.Tr "explore"}}</a>
 | 
							<a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/repos">{{.locale.Tr "explore"}}</a>
 | 
				
			||||||
	{{else if .IsLandingPageOrganizations}}
 | 
						{{else if .IsLandingPageOrganizations}}
 | 
				
			||||||
		<a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/organizations">{{.i18n.Tr "explore"}}</a>
 | 
							<a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/organizations">{{.locale.Tr "explore"}}</a>
 | 
				
			||||||
	{{else}}
 | 
						{{else}}
 | 
				
			||||||
		<a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/repos">{{.i18n.Tr "explore"}}</a>
 | 
							<a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/repos">{{.locale.Tr "explore"}}</a>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{template "custom/extra_links" .}}
 | 
						{{template "custom/extra_links" .}}
 | 
				
			||||||
@@ -32,7 +32,7 @@
 | 
				
			|||||||
	{{/* TODO
 | 
						{{/* TODO
 | 
				
			||||||
		<div class="item">
 | 
							<div class="item">
 | 
				
			||||||
		<div class="ui icon input">
 | 
							<div class="ui icon input">
 | 
				
			||||||
		<input class="searchbox" type="text" placeholder="{{.i18n.Tr "search_project"}}">
 | 
							<input class="searchbox" type="text" placeholder="{{.locale.Tr "search_project"}}">
 | 
				
			||||||
		<i class="icon df ac jc">{{svg "octicon-search" 16}}</i>
 | 
							<i class="icon df ac jc">{{svg "octicon-search" 16}}</i>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
@@ -41,22 +41,22 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	{{if and .IsSigned .MustChangePassword}}
 | 
						{{if and .IsSigned .MustChangePassword}}
 | 
				
			||||||
		<div class="right stackable menu">
 | 
							<div class="right stackable menu">
 | 
				
			||||||
			<div class="ui dropdown jump item tooltip" tabindex="-1" data-content="{{.i18n.Tr "user_profile_and_more"}}">
 | 
								<div class="ui dropdown jump item tooltip" tabindex="-1" data-content="{{.locale.Tr "user_profile_and_more"}}">
 | 
				
			||||||
				<span class="text">
 | 
									<span class="text">
 | 
				
			||||||
					{{avatar .SignedUser 24 "tiny"}}
 | 
										{{avatar .SignedUser 24 "tiny"}}
 | 
				
			||||||
					<span class="sr-only">{{.i18n.Tr "user_profile_and_more"}}</span>
 | 
										<span class="sr-only">{{.locale.Tr "user_profile_and_more"}}</span>
 | 
				
			||||||
					<span class="mobile-only">{{.SignedUser.Name}}</span>
 | 
										<span class="mobile-only">{{.SignedUser.Name}}</span>
 | 
				
			||||||
					<span class="fitted not-mobile" tabindex="-1">{{svg "octicon-triangle-down"}}</span>
 | 
										<span class="fitted not-mobile" tabindex="-1">{{svg "octicon-triangle-down"}}</span>
 | 
				
			||||||
				</span>
 | 
									</span>
 | 
				
			||||||
				<div class="menu user-menu" tabindex="-1">
 | 
									<div class="menu user-menu" tabindex="-1">
 | 
				
			||||||
					<div class="ui header">
 | 
										<div class="ui header">
 | 
				
			||||||
						{{.i18n.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
 | 
											{{.locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<div class="divider"></div>
 | 
										<div class="divider"></div>
 | 
				
			||||||
					<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout" data-redirect="{{AppSubUrl}}/">
 | 
										<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout" data-redirect="{{AppSubUrl}}/">
 | 
				
			||||||
						{{svg "octicon-sign-out"}}
 | 
											{{svg "octicon-sign-out"}}
 | 
				
			||||||
						{{.i18n.Tr "sign_out"}}<!-- Sign Out -->
 | 
											{{.locale.Tr "sign_out"}}<!-- Sign Out -->
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
				</div><!-- end content avatar menu -->
 | 
									</div><!-- end content avatar menu -->
 | 
				
			||||||
			</div><!-- end dropdown avatar menu -->
 | 
								</div><!-- end dropdown avatar menu -->
 | 
				
			||||||
@@ -69,7 +69,7 @@
 | 
				
			|||||||
						{{svg "octicon-stopwatch"}}
 | 
											{{svg "octicon-stopwatch"}}
 | 
				
			||||||
						<span class="red" style="position:absolute; right:-0.6em; top:-0.6em;">{{svg "octicon-dot-fill"}}</span>
 | 
											<span class="red" style="position:absolute; right:-0.6em; top:-0.6em;">{{svg "octicon-dot-fill"}}</span>
 | 
				
			||||||
					</span>
 | 
										</span>
 | 
				
			||||||
					<span class="sr-mobile-only">{{.i18n.Tr "active_stopwatch"}}</span>
 | 
										<span class="sr-mobile-only">{{.locale.Tr "active_stopwatch"}}</span>
 | 
				
			||||||
				</span>
 | 
									</span>
 | 
				
			||||||
			</a>
 | 
								</a>
 | 
				
			||||||
			<div class="ui popup very wide">
 | 
								<div class="ui popup very wide">
 | 
				
			||||||
@@ -85,7 +85,7 @@
 | 
				
			|||||||
						{{.CsrfTokenHtml}}
 | 
											{{.CsrfTokenHtml}}
 | 
				
			||||||
						<button
 | 
											<button
 | 
				
			||||||
							class="ui button mini compact basic icon fitted tooltip"
 | 
												class="ui button mini compact basic icon fitted tooltip"
 | 
				
			||||||
							data-content="{{.i18n.Tr "repo.issues.stop_tracking"}}"
 | 
												data-content="{{.locale.Tr "repo.issues.stop_tracking"}}"
 | 
				
			||||||
							data-position="top right"
 | 
												data-position="top right"
 | 
				
			||||||
						>{{svg "octicon-square-fill"}}</button>
 | 
											>{{svg "octicon-square-fill"}}</button>
 | 
				
			||||||
					</form>
 | 
										</form>
 | 
				
			||||||
@@ -93,17 +93,17 @@
 | 
				
			|||||||
						{{.CsrfTokenHtml}}
 | 
											{{.CsrfTokenHtml}}
 | 
				
			||||||
						<button
 | 
											<button
 | 
				
			||||||
							class="ui button mini compact basic icon fitted tooltip"
 | 
												class="ui button mini compact basic icon fitted tooltip"
 | 
				
			||||||
							data-content="{{.i18n.Tr "repo.issues.cancel_tracking"}}"
 | 
												data-content="{{.locale.Tr "repo.issues.cancel_tracking"}}"
 | 
				
			||||||
							data-position="top right"
 | 
												data-position="top right"
 | 
				
			||||||
						>{{svg "octicon-trash"}}</button>
 | 
											>{{svg "octicon-trash"}}</button>
 | 
				
			||||||
					</form>
 | 
										</form>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			<a href="{{AppSubUrl}}/notifications" class="item tooltip" data-content='{{.i18n.Tr "notifications"}}'>
 | 
								<a href="{{AppSubUrl}}/notifications" class="item tooltip" data-content='{{.locale.Tr "notifications"}}'>
 | 
				
			||||||
				<span class="text">
 | 
									<span class="text">
 | 
				
			||||||
					<span class="fitted">{{svg "octicon-bell"}}</span>
 | 
										<span class="fitted">{{svg "octicon-bell"}}</span>
 | 
				
			||||||
					<span class="sr-mobile-only">{{.i18n.Tr "notifications"}}</span>
 | 
										<span class="sr-mobile-only">{{.locale.Tr "notifications"}}</span>
 | 
				
			||||||
					{{$notificationUnreadCount := 0}}
 | 
										{{$notificationUnreadCount := 0}}
 | 
				
			||||||
					{{if .NotificationUnreadCount}}{{$notificationUnreadCount = call .NotificationUnreadCount}}{{end}}
 | 
										{{if .NotificationUnreadCount}}{{$notificationUnreadCount = call .NotificationUnreadCount}}{{end}}
 | 
				
			||||||
					<span class="ui red label {{if not $notificationUnreadCount}}hidden{{end}} notification_count">
 | 
										<span class="ui red label {{if not $notificationUnreadCount}}hidden{{end}} notification_count">
 | 
				
			||||||
@@ -112,87 +112,87 @@
 | 
				
			|||||||
				</span>
 | 
									</span>
 | 
				
			||||||
			</a>
 | 
								</a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			<div class="ui dropdown jump item tooltip" data-content="{{.i18n.Tr "create_new"}}">
 | 
								<div class="ui dropdown jump item tooltip" data-content="{{.locale.Tr "create_new"}}">
 | 
				
			||||||
				<span class="text">
 | 
									<span class="text">
 | 
				
			||||||
					<span class="fitted">{{svg "octicon-plus"}}</span>
 | 
										<span class="fitted">{{svg "octicon-plus"}}</span>
 | 
				
			||||||
					<span class="sr-mobile-only">{{.i18n.Tr "create_new"}}</span>
 | 
										<span class="sr-mobile-only">{{.locale.Tr "create_new"}}</span>
 | 
				
			||||||
					<span class="fitted not-mobile">{{svg "octicon-triangle-down"}}</span>
 | 
										<span class="fitted not-mobile">{{svg "octicon-triangle-down"}}</span>
 | 
				
			||||||
				</span>
 | 
									</span>
 | 
				
			||||||
				<div class="menu">
 | 
									<div class="menu">
 | 
				
			||||||
					<a class="item" href="{{AppSubUrl}}/repo/create">
 | 
										<a class="item" href="{{AppSubUrl}}/repo/create">
 | 
				
			||||||
						<span class="fitted">{{svg "octicon-plus"}}</span> {{.i18n.Tr "new_repo"}}
 | 
											<span class="fitted">{{svg "octicon-plus"}}</span> {{.locale.Tr "new_repo"}}
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
					{{if not .DisableMigrations}}
 | 
										{{if not .DisableMigrations}}
 | 
				
			||||||
						<a class="item" href="{{AppSubUrl}}/repo/migrate">
 | 
											<a class="item" href="{{AppSubUrl}}/repo/migrate">
 | 
				
			||||||
							<span class="fitted">{{svg "octicon-repo-push"}}</span> {{.i18n.Tr "new_migrate"}}
 | 
												<span class="fitted">{{svg "octicon-repo-push"}}</span> {{.locale.Tr "new_migrate"}}
 | 
				
			||||||
						</a>
 | 
											</a>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					{{if .SignedUser.CanCreateOrganization}}
 | 
										{{if .SignedUser.CanCreateOrganization}}
 | 
				
			||||||
					<a class="item" href="{{AppSubUrl}}/org/create">
 | 
										<a class="item" href="{{AppSubUrl}}/org/create">
 | 
				
			||||||
						<span class="fitted">{{svg "octicon-organization"}}</span> {{.i18n.Tr "new_org"}}
 | 
											<span class="fitted">{{svg "octicon-organization"}}</span> {{.locale.Tr "new_org"}}
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</div><!-- end content create new menu -->
 | 
									</div><!-- end content create new menu -->
 | 
				
			||||||
			</div><!-- end dropdown menu create new -->
 | 
								</div><!-- end dropdown menu create new -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			<div class="ui dropdown jump item tooltip" tabindex="-1" data-content="{{.i18n.Tr "user_profile_and_more"}}">
 | 
								<div class="ui dropdown jump item tooltip" tabindex="-1" data-content="{{.locale.Tr "user_profile_and_more"}}">
 | 
				
			||||||
				<span class="text">
 | 
									<span class="text">
 | 
				
			||||||
					{{avatar .SignedUser 24 "tiny"}}
 | 
										{{avatar .SignedUser 24 "tiny"}}
 | 
				
			||||||
					<span class="sr-only">{{.i18n.Tr "user_profile_and_more"}}</span>
 | 
										<span class="sr-only">{{.locale.Tr "user_profile_and_more"}}</span>
 | 
				
			||||||
					<span class="mobile-only">{{.SignedUser.Name}}</span>
 | 
										<span class="mobile-only">{{.SignedUser.Name}}</span>
 | 
				
			||||||
					<span class="fitted not-mobile" tabindex="-1">{{svg "octicon-triangle-down"}}</span>
 | 
										<span class="fitted not-mobile" tabindex="-1">{{svg "octicon-triangle-down"}}</span>
 | 
				
			||||||
				</span>
 | 
									</span>
 | 
				
			||||||
				<div class="menu user-menu" tabindex="-1">
 | 
									<div class="menu user-menu" tabindex="-1">
 | 
				
			||||||
					<div class="ui header">
 | 
										<div class="ui header">
 | 
				
			||||||
						{{.i18n.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
 | 
											{{.locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<div class="divider"></div>
 | 
										<div class="divider"></div>
 | 
				
			||||||
					<a class="item" href="{{.SignedUser.HomeLink}}">
 | 
										<a class="item" href="{{.SignedUser.HomeLink}}">
 | 
				
			||||||
						{{svg "octicon-person"}}
 | 
											{{svg "octicon-person"}}
 | 
				
			||||||
						{{.i18n.Tr "your_profile"}}<!-- Your profile -->
 | 
											{{.locale.Tr "your_profile"}}<!-- Your profile -->
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
					{{if not .DisableStars}}
 | 
										{{if not .DisableStars}}
 | 
				
			||||||
						<a class="item" href="{{.SignedUser.HomeLink}}?tab=stars">
 | 
											<a class="item" href="{{.SignedUser.HomeLink}}?tab=stars">
 | 
				
			||||||
							{{svg "octicon-star"}}
 | 
												{{svg "octicon-star"}}
 | 
				
			||||||
							{{.i18n.Tr "your_starred"}}
 | 
												{{.locale.Tr "your_starred"}}
 | 
				
			||||||
						</a>
 | 
											</a>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					<a class="{{if .PageIsUserSettings}}active{{end}} item" href="{{AppSubUrl}}/user/settings">
 | 
										<a class="{{if .PageIsUserSettings}}active{{end}} item" href="{{AppSubUrl}}/user/settings">
 | 
				
			||||||
						{{svg "octicon-tools"}}
 | 
											{{svg "octicon-tools"}}
 | 
				
			||||||
						{{.i18n.Tr "your_settings"}}<!-- Your settings -->
 | 
											{{.locale.Tr "your_settings"}}<!-- Your settings -->
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
					<a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io">
 | 
										<a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io">
 | 
				
			||||||
						{{svg "octicon-question"}}
 | 
											{{svg "octicon-question"}}
 | 
				
			||||||
						{{.i18n.Tr "help"}}<!-- Help -->
 | 
											{{.locale.Tr "help"}}<!-- Help -->
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
					{{if .IsAdmin}}
 | 
										{{if .IsAdmin}}
 | 
				
			||||||
						<div class="divider"></div>
 | 
											<div class="divider"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						<a class="{{if .PageIsAdmin}}active{{end}} item" href="{{AppSubUrl}}/admin">
 | 
											<a class="{{if .PageIsAdmin}}active{{end}} item" href="{{AppSubUrl}}/admin">
 | 
				
			||||||
							{{svg "octicon-server"}}
 | 
												{{svg "octicon-server"}}
 | 
				
			||||||
							{{.i18n.Tr "admin_panel"}}<!-- Admin Panel -->
 | 
												{{.locale.Tr "admin_panel"}}<!-- Admin Panel -->
 | 
				
			||||||
						</a>
 | 
											</a>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<div class="divider"></div>
 | 
										<div class="divider"></div>
 | 
				
			||||||
					<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout" data-redirect="{{AppSubUrl}}/">
 | 
										<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout" data-redirect="{{AppSubUrl}}/">
 | 
				
			||||||
						{{svg "octicon-sign-out"}}
 | 
											{{svg "octicon-sign-out"}}
 | 
				
			||||||
						{{.i18n.Tr "sign_out"}}<!-- Sign Out -->
 | 
											{{.locale.Tr "sign_out"}}<!-- Sign Out -->
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
				</div><!-- end content avatar menu -->
 | 
									</div><!-- end content avatar menu -->
 | 
				
			||||||
			</div><!-- end dropdown avatar menu -->
 | 
								</div><!-- end dropdown avatar menu -->
 | 
				
			||||||
		</div><!-- end signed user right menu -->
 | 
							</div><!-- end signed user right menu -->
 | 
				
			||||||
	{{else}}
 | 
						{{else}}
 | 
				
			||||||
		<a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io">{{.i18n.Tr "help"}}</a>
 | 
							<a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io">{{.locale.Tr "help"}}</a>
 | 
				
			||||||
		<div class="right stackable menu">
 | 
							<div class="right stackable menu">
 | 
				
			||||||
			{{if .ShowRegistrationButton}}
 | 
								{{if .ShowRegistrationButton}}
 | 
				
			||||||
				<a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up">
 | 
									<a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up">
 | 
				
			||||||
					{{svg "octicon-person"}} {{.i18n.Tr "register"}}
 | 
										{{svg "octicon-person"}} {{.locale.Tr "register"}}
 | 
				
			||||||
				</a>
 | 
									</a>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
			<a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login{{if not .PageIsSignIn}}?redirect_to={{.CurrentURL}}{{end}}">
 | 
								<a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login{{if not .PageIsSignIn}}?redirect_to={{.CurrentURL}}{{end}}">
 | 
				
			||||||
				{{svg "octicon-sign-in"}} {{.i18n.Tr "sign_in"}}
 | 
									{{svg "octicon-sign-in"}} {{.locale.Tr "sign_in"}}
 | 
				
			||||||
			</a>
 | 
								</a>
 | 
				
			||||||
		</div><!-- end anonymous right menu -->
 | 
							</div><!-- end anonymous right menu -->
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,10 +38,10 @@ If you introduce mistakes in it, Gitea JavaScript code wouldn't run correctly.
 | 
				
			|||||||
		mermaidMaxSourceCharacters: {{MermaidMaxSourceCharacters}},
 | 
							mermaidMaxSourceCharacters: {{MermaidMaxSourceCharacters}},
 | 
				
			||||||
		{{/* this global i18n object should only contain general texts. for specialized texts, it should be provided inside the related modules by: (1) API response (2) HTML data-attribute (3) PageData */}}
 | 
							{{/* this global i18n object should only contain general texts. for specialized texts, it should be provided inside the related modules by: (1) API response (2) HTML data-attribute (3) PageData */}}
 | 
				
			||||||
		i18n: {
 | 
							i18n: {
 | 
				
			||||||
			copy_success: '{{.i18n.Tr "copy_success"}}',
 | 
								copy_success: '{{.locale.Tr "copy_success"}}',
 | 
				
			||||||
			copy_error: '{{.i18n.Tr "copy_error"}}',
 | 
								copy_error: '{{.locale.Tr "copy_error"}}',
 | 
				
			||||||
			error_occurred: '{{.i18n.Tr "error.occurred"}}',
 | 
								error_occurred: '{{.locale.Tr "error.occurred"}}',
 | 
				
			||||||
			network_error: '{{.i18n.Tr "error.network_error"}}',
 | 
								network_error: '{{.locale.Tr "error.network_error"}}',
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
	{{/* in case some pages don't render the pageData, we make sure it is an object to prevent null access */}}
 | 
						{{/* in case some pages don't render the pageData, we make sure it is an object to prevent null access */}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,11 +5,11 @@
 | 
				
			|||||||
			<div class="ui borderless pagination menu">
 | 
								<div class="ui borderless pagination menu">
 | 
				
			||||||
				<a class="{{if .IsFirst}}disabled{{end}} item navigation" {{if not .IsFirst}}href="{{$.Link}}{{if $paginationLink}}?{{$paginationLink}}{{end}}"{{end}}>
 | 
									<a class="{{if .IsFirst}}disabled{{end}} item navigation" {{if not .IsFirst}}href="{{$.Link}}{{if $paginationLink}}?{{$paginationLink}}{{end}}"{{end}}>
 | 
				
			||||||
					{{svg "gitea-double-chevron-left" 16 "mr-2"}}
 | 
										{{svg "gitea-double-chevron-left" 16 "mr-2"}}
 | 
				
			||||||
					<span class="navigation_label">{{$.i18n.Tr "admin.first_page"}}</span>
 | 
										<span class="navigation_label">{{$.locale.Tr "admin.first_page"}}</span>
 | 
				
			||||||
				</a>
 | 
									</a>
 | 
				
			||||||
				<a class="{{if not .HasPrevious}}disabled{{end}} item navigation" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}{{if $paginationLink}}&{{$paginationLink}}{{end}}"{{end}}>
 | 
									<a class="{{if not .HasPrevious}}disabled{{end}} item navigation" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}{{if $paginationLink}}&{{$paginationLink}}{{end}}"{{end}}>
 | 
				
			||||||
					{{svg "octicon-chevron-left" 16 "mr-2"}}
 | 
										{{svg "octicon-chevron-left" 16 "mr-2"}}
 | 
				
			||||||
					<span class="navigation_label">{{$.i18n.Tr "repo.issues.previous"}}</span>
 | 
										<span class="navigation_label">{{$.locale.Tr "repo.issues.previous"}}</span>
 | 
				
			||||||
				</a>
 | 
									</a>
 | 
				
			||||||
				{{range .Pages}}
 | 
									{{range .Pages}}
 | 
				
			||||||
					{{if eq .Num -1}}
 | 
										{{if eq .Num -1}}
 | 
				
			||||||
@@ -19,11 +19,11 @@
 | 
				
			|||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				<a class="{{if not .HasNext}}disabled{{end}} item navigation" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}{{if $paginationLink}}&{{$paginationLink}}{{end}}"{{end}}>
 | 
									<a class="{{if not .HasNext}}disabled{{end}} item navigation" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}{{if $paginationLink}}&{{$paginationLink}}{{end}}"{{end}}>
 | 
				
			||||||
					<span class="navigation_label">{{$.i18n.Tr "repo.issues.next"}}</span>
 | 
										<span class="navigation_label">{{$.locale.Tr "repo.issues.next"}}</span>
 | 
				
			||||||
					{{svg "octicon-chevron-right" 16 "ml-2"}}
 | 
										{{svg "octicon-chevron-right" 16 "ml-2"}}
 | 
				
			||||||
				</a>
 | 
									</a>
 | 
				
			||||||
				<a class="{{if .IsLast}}disabled{{end}} item navigation" {{if not .IsLast}}href="{{$.Link}}?page={{.TotalPages}}{{if $paginationLink}}&{{$paginationLink}}{{end}}"{{end}}>
 | 
									<a class="{{if .IsLast}}disabled{{end}} item navigation" {{if not .IsLast}}href="{{$.Link}}?page={{.TotalPages}}{{if $paginationLink}}&{{$paginationLink}}{{end}}"{{end}}>
 | 
				
			||||||
					<span class="navigation_label">{{$.i18n.Tr "admin.last_page"}}</span>
 | 
										<span class="navigation_label">{{$.locale.Tr "admin.last_page"}}</span>
 | 
				
			||||||
					{{svg "gitea-double-chevron-right" 16 "ml-2"}}
 | 
										{{svg "gitea-double-chevron-right" 16 "ml-2"}}
 | 
				
			||||||
				</a>
 | 
									</a>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,27 +4,27 @@
 | 
				
			|||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		<form class="ui form ignore-dirty" style="max-width: 100%">
 | 
							<form class="ui form ignore-dirty" style="max-width: 100%">
 | 
				
			||||||
			<div class="ui fluid action input">
 | 
								<div class="ui fluid action input">
 | 
				
			||||||
				<input name="q" value="{{.Keyword}}"{{if .CodeIndexerUnavailable }} disabled{{end}} placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
									<input name="q" value="{{.Keyword}}"{{if .CodeIndexerUnavailable }} disabled{{end}} placeholder="{{.locale.Tr "explore.search"}}..." autofocus>
 | 
				
			||||||
				<div class="ui dropdown selection{{if .CodeIndexerUnavailable }} disabled{{end}}">
 | 
									<div class="ui dropdown selection{{if .CodeIndexerUnavailable }} disabled{{end}}">
 | 
				
			||||||
					<input name="t" type="hidden" value="{{.queryType}}"{{if .CodeIndexerUnavailable }} disabled{{end}}>{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
										<input name="t" type="hidden" value="{{.queryType}}"{{if .CodeIndexerUnavailable }} disabled{{end}}>{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
					<div class="text">{{.i18n.Tr (printf "explore.search.%s" (or .queryType "fuzzy"))}}</div>
 | 
										<div class="text">{{.locale.Tr (printf "explore.search.%s" (or .queryType "fuzzy"))}}</div>
 | 
				
			||||||
					<div class="menu transition hidden" tabindex="-1" style="display: block !important;">
 | 
										<div class="menu transition hidden" tabindex="-1" style="display: block !important;">
 | 
				
			||||||
						<div class="item" data-value="">{{.i18n.Tr "explore.search.fuzzy"}}</div>
 | 
											<div class="item" data-value="">{{.locale.Tr "explore.search.fuzzy"}}</div>
 | 
				
			||||||
						<div class="item" data-value="match">{{.i18n.Tr "explore.search.match"}}</div>
 | 
											<div class="item" data-value="match">{{.locale.Tr "explore.search.match"}}</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<button class="ui primary button"{{if .CodeIndexerUnavailable }} disabled{{end}}>{{.i18n.Tr "explore.search"}}</button>
 | 
									<button class="ui primary button"{{if .CodeIndexerUnavailable }} disabled{{end}}>{{.locale.Tr "explore.search"}}</button>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</form>
 | 
							</form>
 | 
				
			||||||
		<div class="ui divider"></div>
 | 
							<div class="ui divider"></div>
 | 
				
			||||||
		<div class="ui user list">
 | 
							<div class="ui user list">
 | 
				
			||||||
			{{if .CodeIndexerUnavailable }}
 | 
								{{if .CodeIndexerUnavailable }}
 | 
				
			||||||
				<div class="ui error message">
 | 
									<div class="ui error message">
 | 
				
			||||||
					<p>{{$.i18n.Tr "explore.code_search_unavailable"}}</p>
 | 
										<p>{{$.locale.Tr "explore.code_search_unavailable"}}</p>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			{{else if .SearchResults}}
 | 
								{{else if .SearchResults}}
 | 
				
			||||||
				<h3>
 | 
									<h3>
 | 
				
			||||||
					{{.i18n.Tr "explore.code_search_results" (.Keyword|Escape) | Str2html }}
 | 
										{{.locale.Tr "explore.code_search_results" (.Keyword|Escape) | Str2html }}
 | 
				
			||||||
				</h3>
 | 
									</h3>
 | 
				
			||||||
				<div class="df ac fw">
 | 
									<div class="df ac fw">
 | 
				
			||||||
					{{range $term := .SearchResultLanguages}}
 | 
										{{range $term := .SearchResultLanguages}}
 | 
				
			||||||
@@ -43,11 +43,11 @@
 | 
				
			|||||||
								<span class="file">
 | 
													<span class="file">
 | 
				
			||||||
									<a rel="nofollow" href="{{$repo.HTMLURL}}">{{$repo.FullName}}</a>
 | 
														<a rel="nofollow" href="{{$repo.HTMLURL}}">{{$repo.FullName}}</a>
 | 
				
			||||||
										{{if $repo.IsArchived}}
 | 
															{{if $repo.IsArchived}}
 | 
				
			||||||
											<span class="ui basic label">{{$.i18n.Tr "repo.desc.archived"}}</span>
 | 
																<span class="ui basic label">{{$.locale.Tr "repo.desc.archived"}}</span>
 | 
				
			||||||
										{{end}}
 | 
															{{end}}
 | 
				
			||||||
									- {{.Filename}}
 | 
														- {{.Filename}}
 | 
				
			||||||
								</span>
 | 
													</span>
 | 
				
			||||||
								<a class="ui basic tiny button" rel="nofollow" href="{{$repo.HTMLURL}}/src/commit/{{$result.CommitID | PathEscape}}/{{.Filename | PathEscapeSegments}}">{{$.i18n.Tr "repo.diff.view_file"}}</a>
 | 
													<a class="ui basic tiny button" rel="nofollow" href="{{$repo.HTMLURL}}/src/commit/{{$result.CommitID | PathEscape}}/{{.Filename | PathEscapeSegments}}">{{$.locale.Tr "repo.diff.view_file"}}</a>
 | 
				
			||||||
							</h4>
 | 
												</h4>
 | 
				
			||||||
							<div class="ui attached table segment">
 | 
												<div class="ui attached table segment">
 | 
				
			||||||
								<div class="file-body file-code code-view">
 | 
													<div class="file-body file-code code-view">
 | 
				
			||||||
@@ -70,7 +70,7 @@
 | 
				
			|||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			{{else}}
 | 
								{{else}}
 | 
				
			||||||
				<div>{{$.i18n.Tr "explore.code_no_results"}}</div>
 | 
									<div>{{$.locale.Tr "explore.code_no_results"}}</div>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,18 +1,18 @@
 | 
				
			|||||||
<div class="ui secondary pointing tabular top attached borderless stackable menu new-menu navbar">
 | 
					<div class="ui secondary pointing tabular top attached borderless stackable menu new-menu navbar">
 | 
				
			||||||
	<a class="{{if .PageIsExploreRepositories}}active{{end}} item" href="{{AppSubUrl}}/explore/repos">
 | 
						<a class="{{if .PageIsExploreRepositories}}active{{end}} item" href="{{AppSubUrl}}/explore/repos">
 | 
				
			||||||
		{{svg "octicon-repo"}} {{.i18n.Tr "explore.repos"}}
 | 
							{{svg "octicon-repo"}} {{.locale.Tr "explore.repos"}}
 | 
				
			||||||
	</a>
 | 
						</a>
 | 
				
			||||||
	{{if not .UsersIsDisabled}}
 | 
						{{if not .UsersIsDisabled}}
 | 
				
			||||||
		<a class="{{if .PageIsExploreUsers}}active{{end}} item" href="{{AppSubUrl}}/explore/users">
 | 
							<a class="{{if .PageIsExploreUsers}}active{{end}} item" href="{{AppSubUrl}}/explore/users">
 | 
				
			||||||
			{{svg "octicon-person"}} {{.i18n.Tr "explore.users"}}
 | 
								{{svg "octicon-person"}} {{.locale.Tr "explore.users"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
	<a class="{{if .PageIsExploreOrganizations}}active{{end}} item" href="{{AppSubUrl}}/explore/organizations">
 | 
						<a class="{{if .PageIsExploreOrganizations}}active{{end}} item" href="{{AppSubUrl}}/explore/organizations">
 | 
				
			||||||
		{{svg "octicon-organization"}} {{.i18n.Tr "explore.organizations"}}
 | 
							{{svg "octicon-organization"}} {{.locale.Tr "explore.organizations"}}
 | 
				
			||||||
	</a>
 | 
						</a>
 | 
				
			||||||
	{{if .IsRepoIndexerEnabled}}
 | 
						{{if .IsRepoIndexerEnabled}}
 | 
				
			||||||
	<a class="{{if .PageIsExploreCode}}active{{end}} item" href="{{AppSubUrl}}/explore/code">
 | 
						<a class="{{if .PageIsExploreCode}}active{{end}} item" href="{{AppSubUrl}}/explore/code">
 | 
				
			||||||
		{{svg "octicon-code"}} {{.i18n.Tr "explore.code"}}
 | 
							{{svg "octicon-code"}} {{.locale.Tr "explore.code"}}
 | 
				
			||||||
	</a>
 | 
						</a>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,7 @@
 | 
				
			|||||||
						<span class="header">
 | 
											<span class="header">
 | 
				
			||||||
							<a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}
 | 
												<a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}
 | 
				
			||||||
							{{if .Visibility.IsPrivate}}
 | 
												{{if .Visibility.IsPrivate}}
 | 
				
			||||||
								<span class="ui basic label">{{$.i18n.Tr "repo.desc.private"}}</span>
 | 
													<span class="ui basic label">{{$.locale.Tr "repo.desc.private"}}</span>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
						</span>
 | 
											</span>
 | 
				
			||||||
						<div class="description">
 | 
											<div class="description">
 | 
				
			||||||
@@ -23,12 +23,12 @@
 | 
				
			|||||||
								{{svg "octicon-link"}}
 | 
													{{svg "octicon-link"}}
 | 
				
			||||||
								<a href="{{.Website}}" rel="nofollow">{{.Website}}</a>
 | 
													<a href="{{.Website}}" rel="nofollow">{{.Website}}</a>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
							{{svg "octicon-clock"}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 | 
												{{svg "octicon-clock"}} {{$.locale.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			{{else}}
 | 
								{{else}}
 | 
				
			||||||
				<div>{{$.i18n.Tr "explore.org_no_results"}}</div>
 | 
									<div>{{$.locale.Tr "explore.org_no_results"}}</div>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,22 +12,22 @@
 | 
				
			|||||||
					</a>
 | 
										</a>
 | 
				
			||||||
					<div class="labels df ac fw">
 | 
										<div class="labels df ac fw">
 | 
				
			||||||
						{{if .IsArchived}}
 | 
											{{if .IsArchived}}
 | 
				
			||||||
							<span class="ui basic label">{{$.i18n.Tr "repo.desc.archived"}}</span>
 | 
												<span class="ui basic label">{{$.locale.Tr "repo.desc.archived"}}</span>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						{{if .IsTemplate}}
 | 
											{{if .IsTemplate}}
 | 
				
			||||||
							{{if .IsPrivate}}
 | 
												{{if .IsPrivate}}
 | 
				
			||||||
								<span class="ui basic label">{{$.i18n.Tr "repo.desc.private_template"}}</span>
 | 
													<span class="ui basic label">{{$.locale.Tr "repo.desc.private_template"}}</span>
 | 
				
			||||||
							{{else}}
 | 
												{{else}}
 | 
				
			||||||
								{{if .Owner.Visibility.IsPrivate}}
 | 
													{{if .Owner.Visibility.IsPrivate}}
 | 
				
			||||||
									<span class="ui basic label">{{$.i18n.Tr "repo.desc.internal_template"}}</span>
 | 
														<span class="ui basic label">{{$.locale.Tr "repo.desc.internal_template"}}</span>
 | 
				
			||||||
								{{end}}
 | 
													{{end}}
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
						{{else}}
 | 
											{{else}}
 | 
				
			||||||
							{{if .IsPrivate}}
 | 
												{{if .IsPrivate}}
 | 
				
			||||||
								<span class="ui basic label">{{$.i18n.Tr "repo.desc.private"}}</span>
 | 
													<span class="ui basic label">{{$.locale.Tr "repo.desc.private"}}</span>
 | 
				
			||||||
							{{else}}
 | 
												{{else}}
 | 
				
			||||||
								{{if .Owner.Visibility.IsPrivate}}
 | 
													{{if .Owner.Visibility.IsPrivate}}
 | 
				
			||||||
									<span class="ui basic label">{{$.i18n.Tr "repo.desc.internal"}}</span>
 | 
														<span class="ui basic label">{{$.locale.Tr "repo.desc.internal"}}</span>
 | 
				
			||||||
								{{end}}
 | 
													{{end}}
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
@@ -60,12 +60,12 @@
 | 
				
			|||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				<p class="time">{{$.i18n.Tr "org.repo_updated"}} {{TimeSinceUnix .UpdatedUnix $.i18n}}</p>
 | 
									<p class="time">{{$.locale.Tr "org.repo_updated"}} {{TimeSinceUnix .UpdatedUnix $.locale}}</p>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{else}}
 | 
						{{else}}
 | 
				
			||||||
	<div>
 | 
						<div>
 | 
				
			||||||
		{{$.i18n.Tr "explore.repo_no_results"}}
 | 
							{{$.locale.Tr "explore.repo_no_results"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,22 +2,22 @@
 | 
				
			|||||||
	<!-- Sort -->
 | 
						<!-- Sort -->
 | 
				
			||||||
	<div class="ui right dropdown type jump item">
 | 
						<div class="ui right dropdown type jump item">
 | 
				
			||||||
		<span class="text">
 | 
							<span class="text">
 | 
				
			||||||
			{{.i18n.Tr "repo.issues.filter_sort"}}
 | 
								{{.locale.Tr "repo.issues.filter_sort"}}
 | 
				
			||||||
				{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
									{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
		</span>
 | 
							</span>
 | 
				
			||||||
		<div class="menu">
 | 
							<div class="menu">
 | 
				
			||||||
			<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}&language={{$.Language}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
								<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}&language={{$.Language}}">{{.locale.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}&language={{$.Language}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
								<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}&language={{$.Language}}">{{.locale.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}&language={{$.Language}}">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</a>
 | 
								<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}&language={{$.Language}}">{{.locale.Tr "repo.issues.label.filter_sort.alphabetically"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}&language={{$.Language}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a>
 | 
								<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}&language={{$.Language}}">{{.locale.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}&language={{$.Language}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
								<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}&language={{$.Language}}">{{.locale.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}&language={{$.Language}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
								<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}&language={{$.Language}}">{{.locale.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
				
			||||||
			{{if not .DisableStars}}
 | 
								{{if not .DisableStars}}
 | 
				
			||||||
				<a class="{{if eq .SortType "moststars"}}active{{end}} item" href="{{$.Link}}?sort=moststars&q={{$.Keyword}}&language={{$.Language}}">{{.i18n.Tr "repo.issues.filter_sort.moststars"}}</a>
 | 
									<a class="{{if eq .SortType "moststars"}}active{{end}} item" href="{{$.Link}}?sort=moststars&q={{$.Keyword}}&language={{$.Language}}">{{.locale.Tr "repo.issues.filter_sort.moststars"}}</a>
 | 
				
			||||||
				<a class="{{if eq .SortType "feweststars"}}active{{end}} item" href="{{$.Link}}?sort=feweststars&q={{$.Keyword}}&language={{$.Language}}">{{.i18n.Tr "repo.issues.filter_sort.feweststars"}}</a>
 | 
									<a class="{{if eq .SortType "feweststars"}}active{{end}} item" href="{{$.Link}}?sort=feweststars&q={{$.Keyword}}&language={{$.Language}}">{{.locale.Tr "repo.issues.filter_sort.feweststars"}}</a>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
			<a class="{{if eq .SortType "mostforks"}}active{{end}} item" href="{{$.Link}}?sort=mostforks&q={{$.Keyword}}&language={{$.Language}}">{{.i18n.Tr "repo.issues.filter_sort.mostforks"}}</a>
 | 
								<a class="{{if eq .SortType "mostforks"}}active{{end}} item" href="{{$.Link}}?sort=mostforks&q={{$.Keyword}}&language={{$.Language}}">{{.locale.Tr "repo.issues.filter_sort.mostforks"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "fewestforks"}}active{{end}} item" href="{{$.Link}}?sort=fewestforks&q={{$.Keyword}}&language={{$.Language}}">{{.i18n.Tr "repo.issues.filter_sort.fewestforks"}}</a>
 | 
								<a class="{{if eq .SortType "fewestforks"}}active{{end}} item" href="{{$.Link}}?sort=fewestforks&q={{$.Keyword}}&language={{$.Language}}">{{.locale.Tr "repo.issues.filter_sort.fewestforks"}}</a>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
@@ -25,8 +25,8 @@
 | 
				
			|||||||
	<input type="hidden" name="sort" value="{{$.SortType}}">
 | 
						<input type="hidden" name="sort" value="{{$.SortType}}">
 | 
				
			||||||
	<input type="hidden" name="language" value="{{$.Language}}">
 | 
						<input type="hidden" name="language" value="{{$.Language}}">
 | 
				
			||||||
	<div class="ui fluid action input">
 | 
						<div class="ui fluid action input">
 | 
				
			||||||
		<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
							<input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..." autofocus>
 | 
				
			||||||
		<button class="ui primary button">{{.i18n.Tr "explore.search"}}</button>
 | 
							<button class="ui primary button">{{.locale.Tr "explore.search"}}</button>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
<div class="ui divider"></div>
 | 
					<div class="ui divider"></div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,23 +2,23 @@
 | 
				
			|||||||
<!-- Sort -->
 | 
					<!-- Sort -->
 | 
				
			||||||
	<div class="ui right dropdown type jump item">
 | 
						<div class="ui right dropdown type jump item">
 | 
				
			||||||
		<span class="text">
 | 
							<span class="text">
 | 
				
			||||||
			{{.i18n.Tr "repo.issues.filter_sort"}}
 | 
								{{.locale.Tr "repo.issues.filter_sort"}}
 | 
				
			||||||
			{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
								{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
		</span>
 | 
							</span>
 | 
				
			||||||
		<div class="menu">
 | 
							<div class="menu">
 | 
				
			||||||
			<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
								<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
								<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</a>
 | 
								<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}">{{.locale.Tr "repo.issues.label.filter_sort.alphabetically"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a>
 | 
								<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}">{{.locale.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
								<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
				
			||||||
			<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
								<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}">{{.locale.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
<form class="ui form ignore-dirty" style="max-width: 90%">
 | 
					<form class="ui form ignore-dirty" style="max-width: 90%">
 | 
				
			||||||
	<div class="ui fluid action input">
 | 
						<div class="ui fluid action input">
 | 
				
			||||||
		<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
							<input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..." autofocus>
 | 
				
			||||||
		<button class="ui primary button">{{.i18n.Tr "explore.search"}}</button>
 | 
							<button class="ui primary button">{{.locale.Tr "explore.search"}}</button>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
<div class="ui divider"></div>
 | 
					<div class="ui divider"></div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,12 +18,12 @@
 | 
				
			|||||||
								{{svg "octicon-mail"}}
 | 
													{{svg "octicon-mail"}}
 | 
				
			||||||
								<a href="mailto:{{.Email}}" rel="nofollow">{{.Email}}</a>
 | 
													<a href="mailto:{{.Email}}" rel="nofollow">{{.Email}}</a>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
							{{svg "octicon-clock"}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 | 
												{{svg "octicon-clock"}} {{$.locale.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			{{else}}
 | 
								{{else}}
 | 
				
			||||||
				<div>{{$.i18n.Tr "explore.user_no_results"}}</div>
 | 
									<div>{{$.locale.Tr "explore.user_no_results"}}</div>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,43 +9,43 @@
 | 
				
			|||||||
				<h1 class="ui icon header title">
 | 
									<h1 class="ui icon header title">
 | 
				
			||||||
					{{AppName}}
 | 
										{{AppName}}
 | 
				
			||||||
				</h1>
 | 
									</h1>
 | 
				
			||||||
				<h2>{{.i18n.Tr "startpage.app_desc"}}</h2>
 | 
									<h2>{{.locale.Tr "startpage.app_desc"}}</h2>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="ui stackable middle very relaxed page grid">
 | 
						<div class="ui stackable middle very relaxed page grid">
 | 
				
			||||||
		<div class="eight wide center column">
 | 
							<div class="eight wide center column">
 | 
				
			||||||
			<h1 class="hero ui icon header">
 | 
								<h1 class="hero ui icon header">
 | 
				
			||||||
				{{svg "octicon-flame"}} {{.i18n.Tr "startpage.install"}}
 | 
									{{svg "octicon-flame"}} {{.locale.Tr "startpage.install"}}
 | 
				
			||||||
			</h1>
 | 
								</h1>
 | 
				
			||||||
			<p class="large">
 | 
								<p class="large">
 | 
				
			||||||
				{{.i18n.Tr "startpage.install_desc" | Str2html}}
 | 
									{{.locale.Tr "startpage.install_desc" | Str2html}}
 | 
				
			||||||
			</p>
 | 
								</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="eight wide center column">
 | 
							<div class="eight wide center column">
 | 
				
			||||||
			<h1 class="hero ui icon header">
 | 
								<h1 class="hero ui icon header">
 | 
				
			||||||
				{{svg "octicon-device-desktop"}} {{.i18n.Tr "startpage.platform"}}
 | 
									{{svg "octicon-device-desktop"}} {{.locale.Tr "startpage.platform"}}
 | 
				
			||||||
			</h1>
 | 
								</h1>
 | 
				
			||||||
			<p class="large">
 | 
								<p class="large">
 | 
				
			||||||
				{{.i18n.Tr "startpage.platform_desc" | Str2html}}
 | 
									{{.locale.Tr "startpage.platform_desc" | Str2html}}
 | 
				
			||||||
			</p>
 | 
								</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="ui stackable middle very relaxed page grid">
 | 
						<div class="ui stackable middle very relaxed page grid">
 | 
				
			||||||
		<div class="eight wide center column">
 | 
							<div class="eight wide center column">
 | 
				
			||||||
			<h1 class="hero ui icon header">
 | 
								<h1 class="hero ui icon header">
 | 
				
			||||||
				{{svg "octicon-rocket"}} {{.i18n.Tr "startpage.lightweight"}}
 | 
									{{svg "octicon-rocket"}} {{.locale.Tr "startpage.lightweight"}}
 | 
				
			||||||
			</h1>
 | 
								</h1>
 | 
				
			||||||
			<p class="large">
 | 
								<p class="large">
 | 
				
			||||||
				{{.i18n.Tr "startpage.lightweight_desc" | Str2html}}
 | 
									{{.locale.Tr "startpage.lightweight_desc" | Str2html}}
 | 
				
			||||||
			</p>
 | 
								</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="eight wide center column">
 | 
							<div class="eight wide center column">
 | 
				
			||||||
			<h1 class="hero ui icon header">
 | 
								<h1 class="hero ui icon header">
 | 
				
			||||||
				{{svg "octicon-code"}} {{.i18n.Tr "startpage.license"}}
 | 
									{{svg "octicon-code"}} {{.locale.Tr "startpage.license"}}
 | 
				
			||||||
			</h1>
 | 
								</h1>
 | 
				
			||||||
			<p class="large">
 | 
								<p class="large">
 | 
				
			||||||
				{{.i18n.Tr "startpage.license_desc" | Str2html}}
 | 
									{{.locale.Tr "startpage.license_desc" | Str2html}}
 | 
				
			||||||
			</p>
 | 
								</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,19 +3,19 @@
 | 
				
			|||||||
	<div class="ui middle very relaxed page grid">
 | 
						<div class="ui middle very relaxed page grid">
 | 
				
			||||||
		<div class="sixteen wide center aligned centered column">
 | 
							<div class="sixteen wide center aligned centered column">
 | 
				
			||||||
			<h3 class="ui top attached header">
 | 
								<h3 class="ui top attached header">
 | 
				
			||||||
				{{.i18n.Tr "install.title"}}
 | 
									{{.locale.Tr "install.title"}}
 | 
				
			||||||
			</h3>
 | 
								</h3>
 | 
				
			||||||
			<div class="ui attached segment">
 | 
								<div class="ui attached segment">
 | 
				
			||||||
				{{template "base/alert" .}}
 | 
									{{template "base/alert" .}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<p>{{.i18n.Tr "install.docker_helper" "https://docs.gitea.io/en-us/install-with-docker/" | Safe}}</p>
 | 
									<p>{{.locale.Tr "install.docker_helper" "https://docs.gitea.io/en-us/install-with-docker/" | Safe}}</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<form class="ui form" action="{{AppSubUrl}}/" method="post">
 | 
									<form class="ui form" action="{{AppSubUrl}}/" method="post">
 | 
				
			||||||
					<!-- Database Settings -->
 | 
										<!-- Database Settings -->
 | 
				
			||||||
					<h4 class="ui dividing header">{{.i18n.Tr "install.db_title"}}</h4>
 | 
										<h4 class="ui dividing header">{{.locale.Tr "install.db_title"}}</h4>
 | 
				
			||||||
					<p>{{.i18n.Tr "install.require_db_desc"}}</p>
 | 
										<p>{{.locale.Tr "install.require_db_desc"}}</p>
 | 
				
			||||||
					<div class="inline required field {{if .Err_DbType}}error{{end}}">
 | 
										<div class="inline required field {{if .Err_DbType}}error{{end}}">
 | 
				
			||||||
						<label>{{.i18n.Tr "install.db_type"}}</label>
 | 
											<label>{{.locale.Tr "install.db_type"}}</label>
 | 
				
			||||||
						<div class="ui selection database type dropdown">
 | 
											<div class="ui selection database type dropdown">
 | 
				
			||||||
							<input type="hidden" id="db_type" name="db_type" value="{{.CurDbType}}">
 | 
												<input type="hidden" id="db_type" name="db_type" value="{{.CurDbType}}">
 | 
				
			||||||
							<div class="text">{{.CurDbType}}</div>
 | 
												<div class="text">{{.CurDbType}}</div>
 | 
				
			||||||
@@ -30,27 +30,27 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
					<div class="hide" data-db-setting-for="common-host">
 | 
										<div class="hide" data-db-setting-for="common-host">
 | 
				
			||||||
						<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
 | 
											<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
 | 
				
			||||||
							<label for="db_host">{{.i18n.Tr "install.host"}}</label>
 | 
												<label for="db_host">{{.locale.Tr "install.host"}}</label>
 | 
				
			||||||
							<input id="db_host" name="db_host" value="{{.db_host}}">
 | 
												<input id="db_host" name="db_host" value="{{.db_host}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
 | 
											<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
 | 
				
			||||||
							<label for="db_user">{{.i18n.Tr "install.user"}}</label>
 | 
												<label for="db_user">{{.locale.Tr "install.user"}}</label>
 | 
				
			||||||
							<input id="db_user" name="db_user" value="{{.db_user}}">
 | 
												<input id="db_user" name="db_user" value="{{.db_user}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
 | 
											<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
 | 
				
			||||||
							<label for="db_passwd">{{.i18n.Tr "install.password"}}</label>
 | 
												<label for="db_passwd">{{.locale.Tr "install.password"}}</label>
 | 
				
			||||||
							<input id="db_passwd" name="db_passwd" type="password" value="{{.db_passwd}}">
 | 
												<input id="db_passwd" name="db_passwd" type="password" value="{{.db_passwd}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
 | 
											<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
 | 
				
			||||||
							<label for="db_name">{{.i18n.Tr "install.db_name"}}</label>
 | 
												<label for="db_name">{{.locale.Tr "install.db_name"}}</label>
 | 
				
			||||||
							<input id="db_name" name="db_name" value="{{.db_name}}">
 | 
												<input id="db_name" name="db_name" value="{{.db_name}}">
 | 
				
			||||||
							<span class="help">{{.i18n.Tr "install.db_helper"}}</span>
 | 
												<span class="help">{{.locale.Tr "install.db_helper"}}</span>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<div class="hide" data-db-setting-for="postgres">
 | 
										<div class="hide" data-db-setting-for="postgres">
 | 
				
			||||||
						<div class="inline required field">
 | 
											<div class="inline required field">
 | 
				
			||||||
							<label>{{.i18n.Tr "install.ssl_mode"}}</label>
 | 
												<label>{{.locale.Tr "install.ssl_mode"}}</label>
 | 
				
			||||||
							<div class="ui selection database type dropdown">
 | 
												<div class="ui selection database type dropdown">
 | 
				
			||||||
								<input type="hidden" name="ssl_mode" value="{{if .ssl_mode}}{{.ssl_mode}}{{else}}disable{{end}}">
 | 
													<input type="hidden" name="ssl_mode" value="{{if .ssl_mode}}{{.ssl_mode}}{{else}}disable{{end}}">
 | 
				
			||||||
								<div class="default text">disable</div>
 | 
													<div class="default text">disable</div>
 | 
				
			||||||
@@ -63,15 +63,15 @@
 | 
				
			|||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field {{if .Err_DbSetting}}error{{end}}">
 | 
											<div class="inline field {{if .Err_DbSetting}}error{{end}}">
 | 
				
			||||||
							<label for="db_schema">{{.i18n.Tr "install.db_schema"}}</label>
 | 
												<label for="db_schema">{{.locale.Tr "install.db_schema"}}</label>
 | 
				
			||||||
							<input id="db_schema" name="db_schema" value="{{.db_schema}}">
 | 
												<input id="db_schema" name="db_schema" value="{{.db_schema}}">
 | 
				
			||||||
							<span class="help">{{.i18n.Tr "install.db_schema_helper"}}</span>
 | 
												<span class="help">{{.locale.Tr "install.db_schema_helper"}}</span>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<div class="hide" data-db-setting-for="mysql">
 | 
										<div class="hide" data-db-setting-for="mysql">
 | 
				
			||||||
						<div class="inline required field">
 | 
											<div class="inline required field">
 | 
				
			||||||
							<label>{{.i18n.Tr "install.charset"}}</label>
 | 
												<label>{{.locale.Tr "install.charset"}}</label>
 | 
				
			||||||
							<div class="ui selection database type dropdown">
 | 
												<div class="ui selection database type dropdown">
 | 
				
			||||||
								<input type="hidden" name="charset" value="{{if .charset}}{{.charset}}{{else}}utf8mb4{{end}}">
 | 
													<input type="hidden" name="charset" value="{{if .charset}}{{.charset}}{{else}}utf8mb4{{end}}">
 | 
				
			||||||
								<div class="default text">utf8mb4</div>
 | 
													<div class="default text">utf8mb4</div>
 | 
				
			||||||
@@ -85,30 +85,30 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
					<div class="hide" data-db-setting-for="sqlite3">
 | 
										<div class="hide" data-db-setting-for="sqlite3">
 | 
				
			||||||
						<div class="inline required field {{if or .Err_DbPath .Err_DbSetting}}error{{end}}">
 | 
											<div class="inline required field {{if or .Err_DbPath .Err_DbSetting}}error{{end}}">
 | 
				
			||||||
							<label for="db_path">{{.i18n.Tr "install.path"}}</label>
 | 
												<label for="db_path">{{.locale.Tr "install.path"}}</label>
 | 
				
			||||||
							<input id="db_path" name="db_path" value="{{.db_path}}">
 | 
												<input id="db_path" name="db_path" value="{{.db_path}}">
 | 
				
			||||||
							<span class="help">{{.i18n.Tr "install.sqlite_helper" | Safe}}</span>
 | 
												<span class="help">{{.locale.Tr "install.sqlite_helper" | Safe}}</span>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					{{if .Err_DbInstalledBefore}}
 | 
										{{if .Err_DbInstalledBefore}}
 | 
				
			||||||
					<div>
 | 
										<div>
 | 
				
			||||||
						<p class="reinstall-message">{{.i18n.Tr "install.reinstall_confirm_message"}}</p>
 | 
											<p class="reinstall-message">{{.locale.Tr "install.reinstall_confirm_message"}}</p>
 | 
				
			||||||
						<div class="reinstall-confirm">
 | 
											<div class="reinstall-confirm">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label>{{.i18n.Tr "install.reinstall_confirm_check_1"}}</label>
 | 
													<label>{{.locale.Tr "install.reinstall_confirm_check_1"}}</label>
 | 
				
			||||||
								<input name="reinstall_confirm_first" type="checkbox">
 | 
													<input name="reinstall_confirm_first" type="checkbox">
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="reinstall-confirm">
 | 
											<div class="reinstall-confirm">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label>{{.i18n.Tr "install.reinstall_confirm_check_2"}}</label>
 | 
													<label>{{.locale.Tr "install.reinstall_confirm_check_2"}}</label>
 | 
				
			||||||
								<input name="reinstall_confirm_second" type="checkbox">
 | 
													<input name="reinstall_confirm_second" type="checkbox">
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="reinstall-confirm">
 | 
											<div class="reinstall-confirm">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label>{{.i18n.Tr "install.reinstall_confirm_check_3"}}</label>
 | 
													<label>{{.locale.Tr "install.reinstall_confirm_check_3"}}</label>
 | 
				
			||||||
								<input name="reinstall_confirm_third" type="checkbox">
 | 
													<input name="reinstall_confirm_third" type="checkbox">
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
@@ -116,88 +116,88 @@
 | 
				
			|||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<!-- General Settings -->
 | 
										<!-- General Settings -->
 | 
				
			||||||
					<h4 class="ui dividing header">{{.i18n.Tr "install.general_title"}}</h4>
 | 
										<h4 class="ui dividing header">{{.locale.Tr "install.general_title"}}</h4>
 | 
				
			||||||
					<div class="inline required field {{if .Err_AppName}}error{{end}}">
 | 
										<div class="inline required field {{if .Err_AppName}}error{{end}}">
 | 
				
			||||||
						<label for="app_name">{{.i18n.Tr "install.app_name"}}</label>
 | 
											<label for="app_name">{{.locale.Tr "install.app_name"}}</label>
 | 
				
			||||||
						<input id="app_name" name="app_name" value="{{.app_name}}" required>
 | 
											<input id="app_name" name="app_name" value="{{.app_name}}" required>
 | 
				
			||||||
						<span class="help">{{.i18n.Tr "install.app_name_helper"}}</span>
 | 
											<span class="help">{{.locale.Tr "install.app_name_helper"}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline required field {{if .Err_RepoRootPath}}error{{end}}">
 | 
										<div class="inline required field {{if .Err_RepoRootPath}}error{{end}}">
 | 
				
			||||||
						<label for="repo_root_path">{{.i18n.Tr "install.repo_path"}}</label>
 | 
											<label for="repo_root_path">{{.locale.Tr "install.repo_path"}}</label>
 | 
				
			||||||
						<input id="repo_root_path" name="repo_root_path" value="{{.repo_root_path}}" required>
 | 
											<input id="repo_root_path" name="repo_root_path" value="{{.repo_root_path}}" required>
 | 
				
			||||||
						<span class="help">{{.i18n.Tr "install.repo_path_helper"}}</span>
 | 
											<span class="help">{{.locale.Tr "install.repo_path_helper"}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline field {{if .Err_LFSRootPath}}error{{end}}">
 | 
										<div class="inline field {{if .Err_LFSRootPath}}error{{end}}">
 | 
				
			||||||
						<label for="lfs_root_path">{{.i18n.Tr "install.lfs_path"}}</label>
 | 
											<label for="lfs_root_path">{{.locale.Tr "install.lfs_path"}}</label>
 | 
				
			||||||
						<input id="lfs_root_path" name="lfs_root_path" value="{{.lfs_root_path}}">
 | 
											<input id="lfs_root_path" name="lfs_root_path" value="{{.lfs_root_path}}">
 | 
				
			||||||
						<span class="help">{{.i18n.Tr "install.lfs_path_helper"}}</span>
 | 
											<span class="help">{{.locale.Tr "install.lfs_path_helper"}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline required field {{if .Err_RunUser}}error{{end}}">
 | 
										<div class="inline required field {{if .Err_RunUser}}error{{end}}">
 | 
				
			||||||
						<label for="run_user">{{.i18n.Tr "install.run_user"}}</label>
 | 
											<label for="run_user">{{.locale.Tr "install.run_user"}}</label>
 | 
				
			||||||
						<input id="run_user" name="run_user" value="{{.run_user}}" required>
 | 
											<input id="run_user" name="run_user" value="{{.run_user}}" required>
 | 
				
			||||||
						<span class="help">{{.i18n.Tr "install.run_user_helper"}}</span>
 | 
											<span class="help">{{.locale.Tr "install.run_user_helper"}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline required field">
 | 
										<div class="inline required field">
 | 
				
			||||||
						<label for="domain">{{.i18n.Tr "install.domain"}}</label>
 | 
											<label for="domain">{{.locale.Tr "install.domain"}}</label>
 | 
				
			||||||
						<input id="domain" name="domain" value="{{.domain}}" placeholder="e.g. try.gitea.io" required>
 | 
											<input id="domain" name="domain" value="{{.domain}}" placeholder="e.g. try.gitea.io" required>
 | 
				
			||||||
						<span class="help">{{.i18n.Tr "install.domain_helper"}}</span>
 | 
											<span class="help">{{.locale.Tr "install.domain_helper"}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<label for="ssh_port">{{.i18n.Tr "install.ssh_port"}}</label>
 | 
											<label for="ssh_port">{{.locale.Tr "install.ssh_port"}}</label>
 | 
				
			||||||
						<input id="ssh_port" name="ssh_port" value="{{.ssh_port}}">
 | 
											<input id="ssh_port" name="ssh_port" value="{{.ssh_port}}">
 | 
				
			||||||
						<span class="help">{{.i18n.Tr "install.ssh_port_helper"}}</span>
 | 
											<span class="help">{{.locale.Tr "install.ssh_port_helper"}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline required field">
 | 
										<div class="inline required field">
 | 
				
			||||||
						<label for="http_port">{{.i18n.Tr "install.http_port"}}</label>
 | 
											<label for="http_port">{{.locale.Tr "install.http_port"}}</label>
 | 
				
			||||||
						<input id="http_port" name="http_port" value="{{.http_port}}" required>
 | 
											<input id="http_port" name="http_port" value="{{.http_port}}" required>
 | 
				
			||||||
						<span class="help">{{.i18n.Tr "install.http_port_helper"}}</span>
 | 
											<span class="help">{{.locale.Tr "install.http_port_helper"}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline required field">
 | 
										<div class="inline required field">
 | 
				
			||||||
						<label for="app_url">{{.i18n.Tr "install.app_url"}}</label>
 | 
											<label for="app_url">{{.locale.Tr "install.app_url"}}</label>
 | 
				
			||||||
						<input id="app_url" name="app_url" value="{{.app_url}}" placeholder="e.g. https://try.gitea.io" required>
 | 
											<input id="app_url" name="app_url" value="{{.app_url}}" placeholder="e.g. https://try.gitea.io" required>
 | 
				
			||||||
						<span class="help">{{.i18n.Tr "install.app_url_helper"}}</span>
 | 
											<span class="help">{{.locale.Tr "install.app_url_helper"}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="inline required field">
 | 
										<div class="inline required field">
 | 
				
			||||||
						<label for="log_root_path">{{.i18n.Tr "install.log_root_path"}}</label>
 | 
											<label for="log_root_path">{{.locale.Tr "install.log_root_path"}}</label>
 | 
				
			||||||
						<input id="log_root_path" name="log_root_path" value="{{.log_root_path}}" placeholder="log" required>
 | 
											<input id="log_root_path" name="log_root_path" value="{{.log_root_path}}" placeholder="log" required>
 | 
				
			||||||
						<span class="help">{{.i18n.Tr "install.log_root_path_helper"}}</span>
 | 
											<span class="help">{{.locale.Tr "install.log_root_path_helper"}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<!-- Optional Settings -->
 | 
										<!-- Optional Settings -->
 | 
				
			||||||
					<h4 class="ui dividing header">{{.i18n.Tr "install.optional_title"}}</h4>
 | 
										<h4 class="ui dividing header">{{.locale.Tr "install.optional_title"}}</h4>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<!-- Email -->
 | 
										<!-- Email -->
 | 
				
			||||||
					<details class="optional field">
 | 
										<details class="optional field">
 | 
				
			||||||
						<summary class="title py-3{{if .Err_SMTP}} text red{{end}}">
 | 
											<summary class="title py-3{{if .Err_SMTP}} text red{{end}}">
 | 
				
			||||||
							{{.i18n.Tr "install.email_title"}}
 | 
												{{.locale.Tr "install.email_title"}}
 | 
				
			||||||
						</summary>
 | 
											</summary>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<label for="smtp_host">{{.i18n.Tr "install.smtp_host"}}</label>
 | 
												<label for="smtp_host">{{.locale.Tr "install.smtp_host"}}</label>
 | 
				
			||||||
							<input id="smtp_host" name="smtp_host" value="{{.smtp_host}}">
 | 
												<input id="smtp_host" name="smtp_host" value="{{.smtp_host}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field {{if .Err_SMTPFrom}}error{{end}}">
 | 
											<div class="inline field {{if .Err_SMTPFrom}}error{{end}}">
 | 
				
			||||||
							<label for="smtp_from">{{.i18n.Tr "install.smtp_from"}}</label>
 | 
												<label for="smtp_from">{{.locale.Tr "install.smtp_from"}}</label>
 | 
				
			||||||
							<input id="smtp_from" name="smtp_from" value="{{.smtp_from}}">
 | 
												<input id="smtp_from" name="smtp_from" value="{{.smtp_from}}">
 | 
				
			||||||
							<span class="help">{{.i18n.Tr "install.smtp_from_helper"}}</span>
 | 
												<span class="help">{{.locale.Tr "install.smtp_from_helper"}}</span>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field {{if .Err_SMTPUser}}error{{end}}">
 | 
											<div class="inline field {{if .Err_SMTPUser}}error{{end}}">
 | 
				
			||||||
							<label for="smtp_user">{{.i18n.Tr "install.mailer_user"}}</label>
 | 
												<label for="smtp_user">{{.locale.Tr "install.mailer_user"}}</label>
 | 
				
			||||||
							<input id="smtp_user" name="smtp_user" value="{{.smtp_user}}">
 | 
												<input id="smtp_user" name="smtp_user" value="{{.smtp_user}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<label for="smtp_passwd">{{.i18n.Tr "install.mailer_password"}}</label>
 | 
												<label for="smtp_passwd">{{.locale.Tr "install.mailer_password"}}</label>
 | 
				
			||||||
							<input id="smtp_passwd" name="smtp_passwd" type="password" value="{{.smtp_passwd}}">
 | 
												<input id="smtp_passwd" name="smtp_passwd" type="password" value="{{.smtp_passwd}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label><strong>{{.i18n.Tr "install.register_confirm"}}</strong></label>
 | 
													<label><strong>{{.locale.Tr "install.register_confirm"}}</strong></label>
 | 
				
			||||||
								<input name="register_confirm" type="checkbox" {{if .register_confirm}}checked{{end}}>
 | 
													<input name="register_confirm" type="checkbox" {{if .register_confirm}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label><strong>{{.i18n.Tr "install.mail_notify"}}</strong></label>
 | 
													<label><strong>{{.locale.Tr "install.mail_notify"}}</strong></label>
 | 
				
			||||||
								<input name="mail_notify" type="checkbox" {{if .mail_notify}}checked{{end}}>
 | 
													<input name="mail_notify" type="checkbox" {{if .mail_notify}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
@@ -206,87 +206,87 @@
 | 
				
			|||||||
					<!-- Server and other services -->
 | 
										<!-- Server and other services -->
 | 
				
			||||||
					<details class="optional field">
 | 
										<details class="optional field">
 | 
				
			||||||
						<summary class="title py-3{{if .Err_Services}} text red{{end}}">
 | 
											<summary class="title py-3{{if .Err_Services}} text red{{end}}">
 | 
				
			||||||
							{{.i18n.Tr "install.server_service_title"}}
 | 
												{{.locale.Tr "install.server_service_title"}}
 | 
				
			||||||
						</summary>
 | 
											</summary>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox" id="offline-mode">
 | 
												<div class="ui checkbox" id="offline-mode">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.offline_mode_popup"}}"><strong>{{.i18n.Tr "install.offline_mode"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.offline_mode_popup"}}"><strong>{{.locale.Tr "install.offline_mode"}}</strong></label>
 | 
				
			||||||
								<input name="offline_mode" type="checkbox" {{if .offline_mode}}checked{{end}}>
 | 
													<input name="offline_mode" type="checkbox" {{if .offline_mode}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox" id="disable-gravatar">
 | 
												<div class="ui checkbox" id="disable-gravatar">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.disable_gravatar_popup"}}"><strong>{{.i18n.Tr "install.disable_gravatar"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.disable_gravatar_popup"}}"><strong>{{.locale.Tr "install.disable_gravatar"}}</strong></label>
 | 
				
			||||||
								<input name="disable_gravatar" type="checkbox" {{if .disable_gravatar}}checked{{end}}>
 | 
													<input name="disable_gravatar" type="checkbox" {{if .disable_gravatar}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox" id="federated-avatar-lookup">
 | 
												<div class="ui checkbox" id="federated-avatar-lookup">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.federated_avatar_lookup_popup"}}"><strong>{{.i18n.Tr "install.federated_avatar_lookup"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.federated_avatar_lookup_popup"}}"><strong>{{.locale.Tr "install.federated_avatar_lookup"}}</strong></label>
 | 
				
			||||||
								<input name="enable_federated_avatar" type="checkbox" {{if .enable_federated_avatar}}checked{{end}}>
 | 
													<input name="enable_federated_avatar" type="checkbox" {{if .enable_federated_avatar}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox" id="enable-openid-signin">
 | 
												<div class="ui checkbox" id="enable-openid-signin">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.openid_signin_popup"}}"><strong>{{.i18n.Tr "install.openid_signin"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.openid_signin_popup"}}"><strong>{{.locale.Tr "install.openid_signin"}}</strong></label>
 | 
				
			||||||
								<input name="enable_open_id_sign_in" type="checkbox" {{if .enable_open_id_sign_in}}checked{{end}}>
 | 
													<input name="enable_open_id_sign_in" type="checkbox" {{if .enable_open_id_sign_in}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox" id="disable-registration">
 | 
												<div class="ui checkbox" id="disable-registration">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.disable_registration_popup"}}"><strong>{{.i18n.Tr "install.disable_registration"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.disable_registration_popup"}}"><strong>{{.locale.Tr "install.disable_registration"}}</strong></label>
 | 
				
			||||||
								<input name="disable_registration" type="checkbox" {{if .disable_registration}}checked{{end}}>
 | 
													<input name="disable_registration" type="checkbox" {{if .disable_registration}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox" id="allow-only-external-registration">
 | 
												<div class="ui checkbox" id="allow-only-external-registration">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.allow_only_external_registration_popup"}}"><strong>{{.i18n.Tr "install.allow_only_external_registration_popup"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.allow_only_external_registration_popup"}}"><strong>{{.locale.Tr "install.allow_only_external_registration_popup"}}</strong></label>
 | 
				
			||||||
								<input name="allow_only_external_registration" type="checkbox" {{if .allow_only_external_registration}}checked{{end}}>
 | 
													<input name="allow_only_external_registration" type="checkbox" {{if .allow_only_external_registration}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox" id="enable-openid-signup">
 | 
												<div class="ui checkbox" id="enable-openid-signup">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.openid_signup_popup"}}"><strong>{{.i18n.Tr "install.openid_signup"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.openid_signup_popup"}}"><strong>{{.locale.Tr "install.openid_signup"}}</strong></label>
 | 
				
			||||||
								<input name="enable_open_id_sign_up" type="checkbox" {{if .enable_open_id_sign_up}}checked{{end}}>
 | 
													<input name="enable_open_id_sign_up" type="checkbox" {{if .enable_open_id_sign_up}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox" id="enable-captcha">
 | 
												<div class="ui checkbox" id="enable-captcha">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.enable_captcha_popup"}}"><strong>{{.i18n.Tr "install.enable_captcha"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.enable_captcha_popup"}}"><strong>{{.locale.Tr "install.enable_captcha"}}</strong></label>
 | 
				
			||||||
								<input name="enable_captcha" type="checkbox" {{if .enable_captcha}}checked{{end}}>
 | 
													<input name="enable_captcha" type="checkbox" {{if .enable_captcha}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.require_sign_in_view_popup"}}"><strong>{{.i18n.Tr "install.require_sign_in_view"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.require_sign_in_view_popup"}}"><strong>{{.locale.Tr "install.require_sign_in_view"}}</strong></label>
 | 
				
			||||||
								<input name="require_sign_in_view" type="checkbox" {{if .require_sign_in_view}}checked{{end}}>
 | 
													<input name="require_sign_in_view" type="checkbox" {{if .require_sign_in_view}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.default_keep_email_private_popup"}}"><strong>{{.i18n.Tr "install.default_keep_email_private"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.default_keep_email_private_popup"}}"><strong>{{.locale.Tr "install.default_keep_email_private"}}</strong></label>
 | 
				
			||||||
								<input name="default_keep_email_private" type="checkbox" {{if .default_keep_email_private}}checked{{end}}>
 | 
													<input name="default_keep_email_private" type="checkbox" {{if .default_keep_email_private}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.default_allow_create_organization_popup"}}"><strong>{{.i18n.Tr "install.default_allow_create_organization"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.default_allow_create_organization_popup"}}"><strong>{{.locale.Tr "install.default_allow_create_organization"}}</strong></label>
 | 
				
			||||||
								<input name="default_allow_create_organization" type="checkbox" {{if .default_allow_create_organization}}checked{{end}}>
 | 
													<input name="default_allow_create_organization" type="checkbox" {{if .default_allow_create_organization}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<label class="tooltip" data-content="{{.i18n.Tr "install.default_enable_timetracking_popup"}}"><strong>{{.i18n.Tr "install.default_enable_timetracking"}}</strong></label>
 | 
													<label class="tooltip" data-content="{{.locale.Tr "install.default_enable_timetracking_popup"}}"><strong>{{.locale.Tr "install.default_enable_timetracking"}}</strong></label>
 | 
				
			||||||
								<input name="default_enable_timetracking" type="checkbox" {{if .default_enable_timetracking}}checked{{end}}>
 | 
													<input name="default_enable_timetracking" type="checkbox" {{if .default_enable_timetracking}}checked{{end}}>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<label for="no_reply_address">{{.i18n.Tr "install.no_reply_address"}}</label>
 | 
												<label for="no_reply_address">{{.locale.Tr "install.no_reply_address"}}</label>
 | 
				
			||||||
							<input id="_no_reply_address" name="no_reply_address" value="{{.no_reply_address}}">
 | 
												<input id="_no_reply_address" name="no_reply_address" value="{{.no_reply_address}}">
 | 
				
			||||||
							<span class="help">{{.i18n.Tr "install.no_reply_address_helper"}}</span>
 | 
												<span class="help">{{.locale.Tr "install.no_reply_address_helper"}}</span>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<label for="password_algorithm">{{.i18n.Tr "install.password_algorithm"}}</label>
 | 
												<label for="password_algorithm">{{.locale.Tr "install.password_algorithm"}}</label>
 | 
				
			||||||
							<div class="ui selection dropdown">
 | 
												<div class="ui selection dropdown">
 | 
				
			||||||
								<input id="password_algorithm" type="hidden" name="password_algorithm" value="{{.password_algorithm}}">
 | 
													<input id="password_algorithm" type="hidden" name="password_algorithm" value="{{.password_algorithm}}">
 | 
				
			||||||
								<div class="text">{{.password_algorithm}}</div>
 | 
													<div class="text">{{.password_algorithm}}</div>
 | 
				
			||||||
@@ -297,30 +297,30 @@
 | 
				
			|||||||
									{{end}}
 | 
														{{end}}
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
							<span class="help">{{.i18n.Tr "install.password_algorithm_helper"}}</span>
 | 
												<span class="help">{{.locale.Tr "install.password_algorithm_helper"}}</span>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</details>
 | 
										</details>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<!-- Admin -->
 | 
										<!-- Admin -->
 | 
				
			||||||
					<details class="optional field">
 | 
										<details class="optional field">
 | 
				
			||||||
						<summary class="title py-3{{if .Err_Admin}} text red{{end}}">
 | 
											<summary class="title py-3{{if .Err_Admin}} text red{{end}}">
 | 
				
			||||||
							{{.i18n.Tr "install.admin_title"}}
 | 
												{{.locale.Tr "install.admin_title"}}
 | 
				
			||||||
						</summary>
 | 
											</summary>
 | 
				
			||||||
						<p class="center">{{.i18n.Tr "install.admin_setting_desc"}}</p>
 | 
											<p class="center">{{.locale.Tr "install.admin_setting_desc"}}</p>
 | 
				
			||||||
						<div class="inline field {{if .Err_AdminName}}error{{end}}">
 | 
											<div class="inline field {{if .Err_AdminName}}error{{end}}">
 | 
				
			||||||
							<label for="admin_name">{{.i18n.Tr "install.admin_name"}}</label>
 | 
												<label for="admin_name">{{.locale.Tr "install.admin_name"}}</label>
 | 
				
			||||||
							<input id="admin_name" name="admin_name" value="{{.admin_name}}">
 | 
												<input id="admin_name" name="admin_name" value="{{.admin_name}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field {{if .Err_AdminPasswd}}error{{end}}">
 | 
											<div class="inline field {{if .Err_AdminPasswd}}error{{end}}">
 | 
				
			||||||
							<label for="admin_passwd">{{.i18n.Tr "install.admin_password"}}</label>
 | 
												<label for="admin_passwd">{{.locale.Tr "install.admin_password"}}</label>
 | 
				
			||||||
							<input id="admin_passwd" name="admin_passwd" type="password" autocomplete="new-password" value="{{.admin_passwd}}">
 | 
												<input id="admin_passwd" name="admin_passwd" type="password" autocomplete="new-password" value="{{.admin_passwd}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field {{if .Err_AdminPasswd}}error{{end}}">
 | 
											<div class="inline field {{if .Err_AdminPasswd}}error{{end}}">
 | 
				
			||||||
							<label for="admin_confirm_passwd">{{.i18n.Tr "install.confirm_password"}}</label>
 | 
												<label for="admin_confirm_passwd">{{.locale.Tr "install.confirm_password"}}</label>
 | 
				
			||||||
							<input id="admin_confirm_passwd" name="admin_confirm_passwd" autocomplete="new-password" type="password" value="{{.admin_confirm_passwd}}">
 | 
												<input id="admin_confirm_passwd" name="admin_confirm_passwd" autocomplete="new-password" type="password" value="{{.admin_confirm_passwd}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline field {{if .Err_AdminEmail}}error{{end}}">
 | 
											<div class="inline field {{if .Err_AdminEmail}}error{{end}}">
 | 
				
			||||||
							<label for="admin_email">{{.i18n.Tr "install.admin_email"}}</label>
 | 
												<label for="admin_email">{{.locale.Tr "install.admin_email"}}</label>
 | 
				
			||||||
							<input id="admin_email" name="admin_email" type="email" value="{{.admin_email}}">
 | 
												<input id="admin_email" name="admin_email" type="email" value="{{.admin_email}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</details>
 | 
										</details>
 | 
				
			||||||
@@ -328,7 +328,7 @@
 | 
				
			|||||||
					<div class="ui divider"></div>
 | 
										<div class="ui divider"></div>
 | 
				
			||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<label></label>
 | 
											<label></label>
 | 
				
			||||||
						<button class="ui primary button">{{.i18n.Tr "install.install_btn_confirm"}}</button>
 | 
											<button class="ui primary button">{{.locale.Tr "install.install_btn_confirm"}}</button>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</form>
 | 
									</form>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,14 +3,14 @@
 | 
				
			|||||||
<head>
 | 
					<head>
 | 
				
			||||||
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
						<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
	<meta name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no"/>
 | 
						<meta name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no"/>
 | 
				
			||||||
	<title>{{.i18n.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
 | 
						<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{{ $activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
 | 
					{{ $activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName | Str2html}}</p><br>
 | 
						<p>{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName | Str2html}}</p><br>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.activate_account.text_2" .ActiveCodeLives | Str2html}}</p><p><a href="{{$activate_url}}">{{$activate_url}}</a></p><br>
 | 
						<p>{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives | Str2html}}</p><p><a href="{{$activate_url}}">{{$activate_url}}</a></p><br>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.link_not_working_do_paste"}}</p>
 | 
						<p>{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<p>© <a target="_blank" rel="noopener noreferrer" href="{{AppUrl}}">{{AppName}}</a></p>
 | 
						<p>© <a target="_blank" rel="noopener noreferrer" href="{{AppUrl}}">{{AppName}}</a></p>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,15 +2,15 @@
 | 
				
			|||||||
<html>
 | 
					<html>
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
						<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
	<meta name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no"/>
 | 
						<meta Name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no"/>
 | 
				
			||||||
	<title>{{.i18n.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
 | 
						<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{{ $activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
 | 
					{{ $activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.hi_user_x" (.DisplayName|DotEscape) | Str2html}}</p><br>
 | 
						<p>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape) | Str2html}}</p><br>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.activate_email.text" .ActiveCodeLives | Str2html}}</p><p><a href="{{$activate_url}}">{{$activate_url}}</a></p><br>
 | 
						<p>{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives | Str2html}}</p><p><a href="{{$activate_url}}">{{$activate_url}}</a></p><br>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.link_not_working_do_paste"}}</p>
 | 
						<p>{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<p>© <a target="_blank" rel="noopener noreferrer" href="{{AppUrl}}">{{AppName}}</a></p>
 | 
						<p>© <a target="_blank" rel="noopener noreferrer" href="{{AppUrl}}">{{AppName}}</a></p>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,15 +3,15 @@
 | 
				
			|||||||
<head>
 | 
					<head>
 | 
				
			||||||
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
						<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
	<meta name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no"/>
 | 
						<meta name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no"/>
 | 
				
			||||||
	<title>{{.i18n.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
 | 
						<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{{$set_pwd_url := printf "%[1]suser/forgot_password" AppUrl}}
 | 
					{{$set_pwd_url := printf "%[1]suser/forgot_password" AppUrl}}
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.hi_user_x" (.DisplayName|DotEscape) | Str2html}}</p><br>
 | 
						<p>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape) | Str2html}}</p><br>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.register_notify.text_1" AppName}}</p><br>
 | 
						<p>{{.locale.Tr "mail.register_notify.text_1" AppName}}</p><br>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.register_notify.text_2" .Username}}</p><p><a href="{{AppUrl}}user/login">{{AppUrl}}user/login</a></p><br>
 | 
						<p>{{.locale.Tr "mail.register_notify.text_2" .Username}}</p><p><a href="{{AppUrl}}user/login">{{AppUrl}}user/login</a></p><br>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.register_notify.text_3" ($set_pwd_url | Escape) | Str2html}}</p><br>
 | 
						<p>{{.locale.Tr "mail.register_notify.text_3" ($set_pwd_url | Escape) | Str2html}}</p><br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<p>© <a target="_blank" rel="noopener noreferrer" href="{{AppUrl}}">{{AppName}}</a></p>
 | 
						<p>© <a target="_blank" rel="noopener noreferrer" href="{{AppUrl}}">{{AppName}}</a></p>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,14 +3,14 @@
 | 
				
			|||||||
<head>
 | 
					<head>
 | 
				
			||||||
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
						<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
	<meta name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no"/>
 | 
						<meta name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no"/>
 | 
				
			||||||
	<title>{{.i18n.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
 | 
						<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{{ $recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
 | 
					{{ $recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.hi_user_x" (.DisplayName|DotEscape) | Str2html}}</p><br>
 | 
						<p>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape) | Str2html}}</p><br>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.reset_password.text" .ResetPwdCodeLives | Str2html}}</p><p><a href="{{$recover_url}}">{{$recover_url}}</a></p><br>
 | 
						<p>{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives | Str2html}}</p><p><a href="{{$recover_url}}">{{$recover_url}}</a></p><br>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.link_not_working_do_paste"}}</p>
 | 
						<p>{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<p>© <a target="_blank" rel="noopener noreferrer" href="{{AppUrl}}">{{AppName}}</a></p>
 | 
						<p>© <a target="_blank" rel="noopener noreferrer" href="{{AppUrl}}">{{AppName}}</a></p>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,16 +13,16 @@
 | 
				
			|||||||
<body>
 | 
					<body>
 | 
				
			||||||
	<p>
 | 
						<p>
 | 
				
			||||||
		{{if .IsPull}}
 | 
							{{if .IsPull}}
 | 
				
			||||||
			{{.i18n.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url | Str2html}}
 | 
								{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url | Str2html}}
 | 
				
			||||||
		{{else}}
 | 
							{{else}}
 | 
				
			||||||
			{{.i18n.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url | Str2html}}
 | 
								{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url | Str2html}}
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
	</p>
 | 
						</p>
 | 
				
			||||||
	<div class="footer">
 | 
						<div class="footer">
 | 
				
			||||||
		<p>
 | 
							<p>
 | 
				
			||||||
			---
 | 
								---
 | 
				
			||||||
			<br>
 | 
								<br>
 | 
				
			||||||
			<a href="{{.Link}}">{{.i18n.Tr "mail.view_it_on" AppName}}</a>.
 | 
								<a href="{{.Link}}">{{.locale.Tr "mail.view_it_on" AppName}}</a>.
 | 
				
			||||||
		</p>
 | 
							</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
	{{if .IsMention}}<p>{{.i18n.Tr "mail.issue.x_mentioned_you" .Doer.Name | Str2html}}</p>{{end}}
 | 
						{{if .IsMention}}<p>{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name | Str2html}}</p>{{end}}
 | 
				
			||||||
	{{if eq .ActionName "push"}}
 | 
						{{if eq .ActionName "push"}}
 | 
				
			||||||
		<p>
 | 
							<p>
 | 
				
			||||||
			{{if .Comment.IsForcePush}}
 | 
								{{if .Comment.IsForcePush}}
 | 
				
			||||||
@@ -28,41 +28,41 @@
 | 
				
			|||||||
				{{$newShortSha := ShortSha .Comment.NewCommit}}
 | 
									{{$newShortSha := ShortSha .Comment.NewCommit}}
 | 
				
			||||||
				{{$newCommitLink := printf "<a href='%[1]s'><b>%[2]s</b></a>" (Escape $newCommitUrl) (Escape $newShortSha)}}
 | 
									{{$newCommitLink := printf "<a href='%[1]s'><b>%[2]s</b></a>" (Escape $newCommitUrl) (Escape $newShortSha)}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				{{.i18n.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink | Str2html}}
 | 
									{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink | Str2html}}
 | 
				
			||||||
			{{else}}
 | 
								{{else}}
 | 
				
			||||||
				{{.i18n.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits) | Str2html}}
 | 
									{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits) | Str2html}}
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		</p>
 | 
							</p>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
	<p>
 | 
						<p>
 | 
				
			||||||
		{{if eq .ActionName "close"}}
 | 
							{{if eq .ActionName "close"}}
 | 
				
			||||||
			{{.i18n.Tr "mail.issue.action.close" (Escape .Doer.Name) .Issue.Index | Str2html}}
 | 
								{{.locale.Tr "mail.issue.action.close" (Escape .Doer.Name) .Issue.Index | Str2html}}
 | 
				
			||||||
		{{else if eq .ActionName "reopen"}}
 | 
							{{else if eq .ActionName "reopen"}}
 | 
				
			||||||
			{{.i18n.Tr "mail.issue.action.reopen" (Escape .Doer.Name) .Issue.Index | Str2html}}
 | 
								{{.locale.Tr "mail.issue.action.reopen" (Escape .Doer.Name) .Issue.Index | Str2html}}
 | 
				
			||||||
		{{else if eq .ActionName "merge"}}
 | 
							{{else if eq .ActionName "merge"}}
 | 
				
			||||||
			{{.i18n.Tr "mail.issue.action.merge" (Escape .Doer.Name) .Issue.Index (Escape .Issue.PullRequest.BaseBranch) | Str2html}}
 | 
								{{.locale.Tr "mail.issue.action.merge" (Escape .Doer.Name) .Issue.Index (Escape .Issue.PullRequest.BaseBranch) | Str2html}}
 | 
				
			||||||
		{{else if eq .ActionName "approve"}}
 | 
							{{else if eq .ActionName "approve"}}
 | 
				
			||||||
			{{.i18n.Tr "mail.issue.action.approve" (Escape .Doer.Name) | Str2html}}
 | 
								{{.locale.Tr "mail.issue.action.approve" (Escape .Doer.Name) | Str2html}}
 | 
				
			||||||
		{{else if eq .ActionName "reject"}}
 | 
							{{else if eq .ActionName "reject"}}
 | 
				
			||||||
			{{.i18n.Tr "mail.issue.action.reject" (Escape .Doer.Name) | Str2html}}
 | 
								{{.locale.Tr "mail.issue.action.reject" (Escape .Doer.Name) | Str2html}}
 | 
				
			||||||
		{{else if eq .ActionName "review"}}
 | 
							{{else if eq .ActionName "review"}}
 | 
				
			||||||
			{{.i18n.Tr "mail.issue.action.review" (Escape .Doer.Name) | Str2html}}
 | 
								{{.locale.Tr "mail.issue.action.review" (Escape .Doer.Name) | Str2html}}
 | 
				
			||||||
		{{else if eq .ActionName "review_dismissed"}}
 | 
							{{else if eq .ActionName "review_dismissed"}}
 | 
				
			||||||
			{{.i18n.Tr "mail.issue.action.review_dismissed" (Escape .Doer.Name) (Escape .Comment.Review.Reviewer.Name) | Str2html}}
 | 
								{{.locale.Tr "mail.issue.action.review_dismissed" (Escape .Doer.Name) (Escape .Comment.Review.Reviewer.Name) | Str2html}}
 | 
				
			||||||
		{{else if eq .ActionName "ready_for_review"}}
 | 
							{{else if eq .ActionName "ready_for_review"}}
 | 
				
			||||||
			{{.i18n.Tr "mail.issue.action.ready_for_review" (Escape .Doer.Name) | Str2html}}
 | 
								{{.locale.Tr "mail.issue.action.ready_for_review" (Escape .Doer.Name) | Str2html}}
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		{{- if eq .Body ""}}
 | 
							{{- if eq .Body ""}}
 | 
				
			||||||
			{{if eq .ActionName "new"}}
 | 
								{{if eq .ActionName "new"}}
 | 
				
			||||||
				{{.i18n.Tr "mail.issue.action.new" (Escape .Doer.Name) .Issue.Index | Str2html}}
 | 
									{{.locale.Tr "mail.issue.action.new" (Escape .Doer.Name) .Issue.Index | Str2html}}
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		{{else}}
 | 
							{{else}}
 | 
				
			||||||
			{{.Body | Str2html}}
 | 
								{{.Body | Str2html}}
 | 
				
			||||||
		{{end -}}
 | 
							{{end -}}
 | 
				
			||||||
		{{- range .ReviewComments}}
 | 
							{{- range .ReviewComments}}
 | 
				
			||||||
			<hr>
 | 
								<hr>
 | 
				
			||||||
			{{$.i18n.Tr "mail.issue.in_tree_path" .TreePath}}
 | 
								{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}
 | 
				
			||||||
			<div class="review">
 | 
								<div class="review">
 | 
				
			||||||
				<pre>{{.Patch}}</pre>
 | 
									<pre>{{.Patch}}</pre>
 | 
				
			||||||
				<div>{{.RenderedContent | Safe}}</div>
 | 
									<div>{{.RenderedContent | Safe}}</div>
 | 
				
			||||||
@@ -84,7 +84,7 @@
 | 
				
			|||||||
	<p>
 | 
						<p>
 | 
				
			||||||
		---
 | 
							---
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<a href="{{.Link}}">{{.i18n.Tr "mail.view_it_on" AppName}}</a>.
 | 
							<a href="{{.Link}}">{{.locale.Tr "mail.view_it_on" AppName}}</a>.
 | 
				
			||||||
	</p>
 | 
						</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,12 +9,12 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
	<p>{{.i18n.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code></p>
 | 
						<p>{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code></p>
 | 
				
			||||||
	<div class="footer">
 | 
						<div class="footer">
 | 
				
			||||||
		<p>
 | 
							<p>
 | 
				
			||||||
			---
 | 
								---
 | 
				
			||||||
			<br>
 | 
								<br>
 | 
				
			||||||
			<a href="{{.Link}}">{{.i18n.Tr "mail.view_it_on" AppName}}</a>.
 | 
								<a href="{{.Link}}">{{.locale.Tr "mail.view_it_on" AppName}}</a>.
 | 
				
			||||||
		</p>
 | 
							</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,11 +8,11 @@
 | 
				
			|||||||
{{$url := printf "<a href='%[1]s'>%[2]s</a>" (Escape .Link) (Escape .Repo)}}
 | 
					{{$url := printf "<a href='%[1]s'>%[2]s</a>" (Escape .Link) (Escape .Repo)}}
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
	<p>{{.Subject}}.
 | 
						<p>{{.Subject}}.
 | 
				
			||||||
		{{.i18n.Tr "mail.repo.transfer.body" $url | Str2html}}
 | 
							{{.locale.Tr "mail.repo.transfer.body" $url | Str2html}}
 | 
				
			||||||
	<p>
 | 
						<p>
 | 
				
			||||||
		---
 | 
							---
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<a href="{{.Link}}">{{.i18n.Tr "mail.view_it_on" AppName}}</a>.
 | 
							<a href="{{.Link}}">{{.locale.Tr "mail.view_it_on" AppName}}</a>.
 | 
				
			||||||
	</p>
 | 
						</p>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,11 +15,11 @@
 | 
				
			|||||||
{{$repo_url := printf "<a href='%s'>%s</a>" (.Release.Repo.HTMLURL | Escape) (.Release.Repo.FullName | Escape)}}
 | 
					{{$repo_url := printf "<a href='%s'>%s</a>" (.Release.Repo.HTMLURL | Escape) (.Release.Repo.FullName | Escape)}}
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
	<p>
 | 
						<p>
 | 
				
			||||||
		{{.i18n.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url | Str2html}}
 | 
							{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url | Str2html}}
 | 
				
			||||||
	</p>
 | 
						</p>
 | 
				
			||||||
	<h4>{{.i18n.Tr "mail.release.title" .Release.Title}}</h4>
 | 
						<h4>{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
 | 
				
			||||||
	<p>
 | 
						<p>
 | 
				
			||||||
		{{.i18n.Tr "mail.release.note"}}<br>
 | 
							{{.locale.Tr "mail.release.note"}}<br>
 | 
				
			||||||
		{{- if eq .Release.RenderedNote ""}}
 | 
							{{- if eq .Release.RenderedNote ""}}
 | 
				
			||||||
		{{else}}
 | 
							{{else}}
 | 
				
			||||||
			{{.Release.RenderedNote | Str2html}}
 | 
								{{.Release.RenderedNote | Str2html}}
 | 
				
			||||||
@@ -29,13 +29,13 @@
 | 
				
			|||||||
	<p>
 | 
						<p>
 | 
				
			||||||
		---
 | 
							---
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		{{.i18n.Tr "mail.release.downloads"}}
 | 
							{{.locale.Tr "mail.release.downloads"}}
 | 
				
			||||||
		<ul>
 | 
							<ul>
 | 
				
			||||||
			<li>
 | 
								<li>
 | 
				
			||||||
				<a href="{{.Release.Repo.Link}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip" rel="nofollow"><strong>{{.i18n.Tr "mail.release.download.zip"}}</strong></a>
 | 
									<a href="{{.Release.Repo.Link}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip" rel="nofollow"><strong>{{.locale.Tr "mail.release.download.zip"}}</strong></a>
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
			<li>
 | 
								<li>
 | 
				
			||||||
				<a href="{{.Release.Repo.Link}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz" rel="nofollow"><strong>{{.i18n.Tr "mail.release.download.targz"}}</strong></a>
 | 
									<a href="{{.Release.Repo.Link}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz" rel="nofollow"><strong>{{.locale.Tr "mail.release.download.targz"}}</strong></a>
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
			{{if .Release.Attachments}}
 | 
								{{if .Release.Attachments}}
 | 
				
			||||||
				{{range .Release.Attachments}}
 | 
									{{range .Release.Attachments}}
 | 
				
			||||||
@@ -52,7 +52,7 @@
 | 
				
			|||||||
	<p>
 | 
						<p>
 | 
				
			||||||
		---
 | 
							---
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<a href="{{.Link}}">{{.i18n.Tr "mail.view_it_on" AppName}}</a>.
 | 
							<a href="{{.Link}}">{{.locale.Tr "mail.view_it_on" AppName}}</a>.
 | 
				
			||||||
	</p>
 | 
						</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,40 +5,40 @@
 | 
				
			|||||||
			<form class="ui form" action="{{.Link}}" method="post">
 | 
								<form class="ui form" action="{{.Link}}" method="post">
 | 
				
			||||||
				{{.CsrfTokenHtml}}
 | 
									{{.CsrfTokenHtml}}
 | 
				
			||||||
				<h3 class="ui top attached header">
 | 
									<h3 class="ui top attached header">
 | 
				
			||||||
					{{.i18n.Tr "new_org"}}
 | 
										{{.locale.Tr "new_org"}}
 | 
				
			||||||
				</h3>
 | 
									</h3>
 | 
				
			||||||
				<div class="ui attached segment">
 | 
									<div class="ui attached segment">
 | 
				
			||||||
					{{template "base/alert" .}}
 | 
										{{template "base/alert" .}}
 | 
				
			||||||
					<div class="inline required field {{if .Err_OrgName}}error{{end}}">
 | 
										<div class="inline required field {{if .Err_OrgName}}error{{end}}">
 | 
				
			||||||
						<label for="org_name">{{.i18n.Tr "org.org_name_holder"}}</label>
 | 
											<label for="org_name">{{.locale.Tr "org.org_name_holder"}}</label>
 | 
				
			||||||
						<input id="org_name" name="org_name" value="{{.org_name}}" autofocus required>
 | 
											<input id="org_name" name="org_name" value="{{.org_name}}" autofocus required>
 | 
				
			||||||
						<span class="help">{{.i18n.Tr "org.org_name_helper"}}</span>
 | 
											<span class="help">{{.locale.Tr "org.org_name_helper"}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<div class="inline field {{if .Err_OrgVisibility}}error{{end}}">
 | 
										<div class="inline field {{if .Err_OrgVisibility}}error{{end}}">
 | 
				
			||||||
						<span class="inline required field"><label for="visibility">{{.i18n.Tr "org.settings.visibility"}}</label></span>
 | 
											<span class="inline required field"><label for="visibility">{{.locale.Tr "org.settings.visibility"}}</label></span>
 | 
				
			||||||
						<div class="inline-grouped-list">
 | 
											<div class="inline-grouped-list">
 | 
				
			||||||
							<div class="ui radio checkbox">
 | 
												<div class="ui radio checkbox">
 | 
				
			||||||
								<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="0" {{if .DefaultOrgVisibilityMode.IsPublic}}checked{{end}}/>
 | 
													<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="0" {{if .DefaultOrgVisibilityMode.IsPublic}}checked{{end}}/>
 | 
				
			||||||
								<label>{{.i18n.Tr "org.settings.visibility.public"}}</label>
 | 
													<label>{{.locale.Tr "org.settings.visibility.public"}}</label>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
							<div class="ui radio checkbox">
 | 
												<div class="ui radio checkbox">
 | 
				
			||||||
								<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="1" {{if .DefaultOrgVisibilityMode.IsLimited}}checked{{end}}/>
 | 
													<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="1" {{if .DefaultOrgVisibilityMode.IsLimited}}checked{{end}}/>
 | 
				
			||||||
								<label>{{.i18n.Tr "org.settings.visibility.limited"}}</label>
 | 
													<label>{{.locale.Tr "org.settings.visibility.limited"}}</label>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
							<div class="ui radio checkbox">
 | 
												<div class="ui radio checkbox">
 | 
				
			||||||
								<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="2" {{if .DefaultOrgVisibilityMode.IsPrivate}}checked{{end}}/>
 | 
													<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="2" {{if .DefaultOrgVisibilityMode.IsPrivate}}checked{{end}}/>
 | 
				
			||||||
								<label>{{.i18n.Tr "org.settings.visibility.private"}}</label>
 | 
													<label>{{.locale.Tr "org.settings.visibility.private"}}</label>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<div class="inline field" id="permission_box">
 | 
										<div class="inline field" id="permission_box">
 | 
				
			||||||
						<label>{{.i18n.Tr "org.settings.permission"}}</label>
 | 
											<label>{{.locale.Tr "org.settings.permission"}}</label>
 | 
				
			||||||
						<div class="inline-grouped-list">
 | 
											<div class="inline-grouped-list">
 | 
				
			||||||
							<div class="ui checkbox">
 | 
												<div class="ui checkbox">
 | 
				
			||||||
								<input class="hidden" type="checkbox" name="repo_admin_change_team_access" checked/>
 | 
													<input class="hidden" type="checkbox" name="repo_admin_change_team_access" checked/>
 | 
				
			||||||
								<label>{{.i18n.Tr "org.settings.repoadminchangeteam"}}</label>
 | 
													<label>{{.locale.Tr "org.settings.repoadminchangeteam"}}</label>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
@@ -46,9 +46,9 @@
 | 
				
			|||||||
					<div class="inline field">
 | 
										<div class="inline field">
 | 
				
			||||||
						<label></label>
 | 
											<label></label>
 | 
				
			||||||
						<button class="ui green button">
 | 
											<button class="ui green button">
 | 
				
			||||||
							{{.i18n.Tr "org.create_org"}}
 | 
												{{.locale.Tr "org.create_org"}}
 | 
				
			||||||
						</button>
 | 
											</button>
 | 
				
			||||||
						<a class="ui button" href="{{AppSubUrl}}/">{{.i18n.Tr "cancel"}}</a>
 | 
											<a class="ui button" href="{{AppSubUrl}}/">{{.locale.Tr "cancel"}}</a>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,8 +6,8 @@
 | 
				
			|||||||
					{{avatar . 100}}
 | 
										{{avatar . 100}}
 | 
				
			||||||
					<span class="text thin grey"><a href="{{.HomeLink}}">{{.DisplayName}}</a></span>
 | 
										<span class="text thin grey"><a href="{{.HomeLink}}">{{.DisplayName}}</a></span>
 | 
				
			||||||
					<span class="org-visibility">
 | 
										<span class="org-visibility">
 | 
				
			||||||
						{{if .Visibility.IsLimited}}<div class="ui medium orange horizontal label">{{$.i18n.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
 | 
											{{if .Visibility.IsLimited}}<div class="ui medium orange horizontal label">{{$.locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
 | 
				
			||||||
						{{if .Visibility.IsPrivate}}<div class="ui medium red horizontal label">{{$.i18n.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
 | 
											{{if .Visibility.IsPrivate}}<div class="ui medium red horizontal label">{{$.locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
 | 
				
			||||||
					</span>
 | 
										</span>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,10 +5,10 @@
 | 
				
			|||||||
		<div id="org-info">
 | 
							<div id="org-info">
 | 
				
			||||||
			<div class="ui header">
 | 
								<div class="ui header">
 | 
				
			||||||
				{{.Org.DisplayName}}
 | 
									{{.Org.DisplayName}}
 | 
				
			||||||
				<a href="{{.Org.HomeLink}}.rss"><i class="ui grey icon tooltip ml-3" data-content="{{.i18n.Tr "rss_feed"}}" data-position="top center">{{svg "octicon-rss" 36}}</i></a>
 | 
									<a href="{{.Org.HomeLink}}.rss"><i class="ui grey icon tooltip ml-3" data-content="{{.locale.Tr "rss_feed"}}" data-position="top center">{{svg "octicon-rss" 36}}</i></a>
 | 
				
			||||||
				<span class="org-visibility">
 | 
									<span class="org-visibility">
 | 
				
			||||||
					{{if .Org.Visibility.IsLimited}}<div class="ui large basic horizontal label">{{.i18n.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
 | 
										{{if .Org.Visibility.IsLimited}}<div class="ui large basic horizontal label">{{.locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}}
 | 
				
			||||||
					{{if .Org.Visibility.IsPrivate}}<div class="ui large basic horizontal label">{{.i18n.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
 | 
										{{if .Org.Visibility.IsPrivate}}<div class="ui large basic horizontal label">{{.locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}}
 | 
				
			||||||
				</span>
 | 
									</span>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			{{if $.RenderedDescription}}<p class="render-content markup">{{$.RenderedDescription|Str2html}}</p>{{end}}
 | 
								{{if $.RenderedDescription}}<p class="render-content markup">{{$.RenderedDescription|Str2html}}</p>{{end}}
 | 
				
			||||||
@@ -32,15 +32,15 @@
 | 
				
			|||||||
			<div class="ui five wide column">
 | 
								<div class="ui five wide column">
 | 
				
			||||||
				{{if .CanCreateOrgRepo}}
 | 
									{{if .CanCreateOrgRepo}}
 | 
				
			||||||
					<div class="center aligned">
 | 
										<div class="center aligned">
 | 
				
			||||||
						<a class="ui green button" href="{{AppSubUrl}}/repo/create?org={{.Org.ID}}">{{.i18n.Tr "new_repo"}}</a>
 | 
											<a class="ui green button" href="{{AppSubUrl}}/repo/create?org={{.Org.ID}}">{{.locale.Tr "new_repo"}}</a>
 | 
				
			||||||
						{{if not .DisableNewPullMirrors}}
 | 
											{{if not .DisableNewPullMirrors}}
 | 
				
			||||||
							<a class="ui green button" href="{{AppSubUrl}}/repo/migrate?org={{.Org.ID}}&mirror=1">{{.i18n.Tr "new_migrate"}}</a>
 | 
												<a class="ui green button" href="{{AppSubUrl}}/repo/migrate?org={{.Org.ID}}&mirror=1">{{.locale.Tr "new_migrate"}}</a>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="ui divider"></div>
 | 
										<div class="ui divider"></div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				<h4 class="ui top attached header df">
 | 
									<h4 class="ui top attached header df">
 | 
				
			||||||
					<strong class="f1">{{.i18n.Tr "org.people"}}</strong>
 | 
										<strong class="f1">{{.locale.Tr "org.people"}}</strong>
 | 
				
			||||||
					{{if .IsOrganizationMember}}
 | 
										{{if .IsOrganizationMember}}
 | 
				
			||||||
						<div class="ui">
 | 
											<div class="ui">
 | 
				
			||||||
							<a class="text grey dif ac" href="{{.OrgLink}}/members"><span>{{.Org.NumMembers}}</span> {{svg "octicon-chevron-right"}}</a>
 | 
												<a class="text grey dif ac" href="{{.OrgLink}}/members"><span>{{.Org.NumMembers}}</span> {{svg "octicon-chevron-right"}}</a>
 | 
				
			||||||
@@ -60,7 +60,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
				{{if .IsOrganizationMember}}
 | 
									{{if .IsOrganizationMember}}
 | 
				
			||||||
					<div class="ui top attached header df">
 | 
										<div class="ui top attached header df">
 | 
				
			||||||
						<strong class="f1">{{.i18n.Tr "org.teams"}}</strong>
 | 
											<strong class="f1">{{.locale.Tr "org.teams"}}</strong>
 | 
				
			||||||
						<div class="ui">
 | 
											<div class="ui">
 | 
				
			||||||
							<a class="text grey dif ac" href="{{.OrgLink}}/teams"><span>{{.Org.NumTeams}}</span> {{svg "octicon-chevron-right"}}</a>
 | 
												<a class="text grey dif ac" href="{{.OrgLink}}/teams"><span>{{.Org.NumTeams}}</span> {{svg "octicon-chevron-right"}}</a>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
@@ -70,15 +70,15 @@
 | 
				
			|||||||
							<div class="item">
 | 
												<div class="item">
 | 
				
			||||||
								<a href="{{$.OrgLink}}/teams/{{.LowerName | PathEscape}}"><strong class="team-name">{{.Name}}</strong></a>
 | 
													<a href="{{$.OrgLink}}/teams/{{.LowerName | PathEscape}}"><strong class="team-name">{{.Name}}</strong></a>
 | 
				
			||||||
								<p class="text grey">
 | 
													<p class="text grey">
 | 
				
			||||||
									<a href="{{$.OrgLink}}/teams/{{.LowerName | PathEscape}}"><strong>{{.NumMembers}}</strong> {{$.i18n.Tr "org.lower_members"}}</a> ·
 | 
														<a href="{{$.OrgLink}}/teams/{{.LowerName | PathEscape}}"><strong>{{.NumMembers}}</strong> {{$.locale.Tr "org.lower_members"}}</a> ·
 | 
				
			||||||
									<a href="{{$.OrgLink}}/teams/{{.LowerName | PathEscape}}/repositories"><strong>{{.NumRepos}}</strong> {{$.i18n.Tr "org.lower_repositories"}}</a>
 | 
														<a href="{{$.OrgLink}}/teams/{{.LowerName | PathEscape}}/repositories"><strong>{{.NumRepos}}</strong> {{$.locale.Tr "org.lower_repositories"}}</a>
 | 
				
			||||||
								</p>
 | 
													</p>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					{{if .IsOrganizationOwner}}
 | 
										{{if .IsOrganizationOwner}}
 | 
				
			||||||
						<div class="ui bottom attached segment">
 | 
											<div class="ui bottom attached segment">
 | 
				
			||||||
							<a class="ui primary small button" href="{{.OrgLink}}/teams/new">{{.i18n.Tr "org.create_new_team"}}</a>
 | 
												<a class="ui primary small button" href="{{.OrgLink}}/teams/new">{{.locale.Tr "org.create_new_team"}}</a>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,30 +16,30 @@
 | 
				
			|||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="ui four wide column center">
 | 
										<div class="ui four wide column center">
 | 
				
			||||||
						<div class="meta">
 | 
											<div class="meta">
 | 
				
			||||||
							{{$.i18n.Tr "org.members.membership_visibility"}}
 | 
												{{$.locale.Tr "org.members.membership_visibility"}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="meta">
 | 
											<div class="meta">
 | 
				
			||||||
							{{ $isPublic := index $.MembersIsPublicMember .ID}}
 | 
												{{ $isPublic := index $.MembersIsPublicMember .ID}}
 | 
				
			||||||
							{{if $isPublic}}
 | 
												{{if $isPublic}}
 | 
				
			||||||
								<strong>{{$.i18n.Tr "org.members.public"}}</strong>
 | 
													<strong>{{$.locale.Tr "org.members.public"}}</strong>
 | 
				
			||||||
								{{if or (eq $.SignedUser.ID .ID) $.IsOrganizationOwner}}(<a class="link-action" href data-url="{{$.OrgLink}}/members/action/private?uid={{.ID}}">{{$.i18n.Tr "org.members.public_helper"}}</a>){{end}}
 | 
													{{if or (eq $.SignedUser.ID .ID) $.IsOrganizationOwner}}(<a class="link-action" href data-url="{{$.OrgLink}}/members/action/private?uid={{.ID}}">{{$.locale.Tr "org.members.public_helper"}}</a>){{end}}
 | 
				
			||||||
							{{else}}
 | 
												{{else}}
 | 
				
			||||||
								<strong>{{$.i18n.Tr "org.members.private"}}</strong>
 | 
													<strong>{{$.locale.Tr "org.members.private"}}</strong>
 | 
				
			||||||
								{{if or (eq $.SignedUser.ID .ID) $.IsOrganizationOwner}}(<a class="link-action" href data-url="{{$.OrgLink}}/members/action/public?uid={{.ID}}">{{$.i18n.Tr "org.members.private_helper"}}</a>){{end}}
 | 
													{{if or (eq $.SignedUser.ID .ID) $.IsOrganizationOwner}}(<a class="link-action" href data-url="{{$.OrgLink}}/members/action/public?uid={{.ID}}">{{$.locale.Tr "org.members.private_helper"}}</a>){{end}}
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="ui three wide column center">
 | 
										<div class="ui three wide column center">
 | 
				
			||||||
						<div class="meta">
 | 
											<div class="meta">
 | 
				
			||||||
							{{$.i18n.Tr "org.members.member_role"}}
 | 
												{{$.locale.Tr "org.members.member_role"}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="meta">
 | 
											<div class="meta">
 | 
				
			||||||
							<strong>{{if index $.MembersIsUserOrgOwner .ID}}{{svg "octicon-shield-lock"}} {{$.i18n.Tr "org.members.owner"}}{{else}}{{$.i18n.Tr "org.members.member"}}{{end}}</strong>
 | 
												<strong>{{if index $.MembersIsUserOrgOwner .ID}}{{svg "octicon-shield-lock"}} {{$.locale.Tr "org.members.owner"}}{{else}}{{$.locale.Tr "org.members.member"}}{{end}}</strong>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="ui two wide column center">
 | 
										<div class="ui two wide column center">
 | 
				
			||||||
						<div class="meta">
 | 
											<div class="meta">
 | 
				
			||||||
							{{$.i18n.Tr "admin.users.2fa"}}
 | 
												{{$.locale.Tr "admin.users.2fa"}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="meta">
 | 
											<div class="meta">
 | 
				
			||||||
							<strong>
 | 
												<strong>
 | 
				
			||||||
@@ -58,14 +58,14 @@
 | 
				
			|||||||
									<button class="ui red small button delete-button" data-modal-id="leave-organization"
 | 
														<button class="ui red small button delete-button" data-modal-id="leave-organization"
 | 
				
			||||||
										data-url="{{$.OrgLink}}/members/action/leave" data-datauid="{{.ID}}"
 | 
															data-url="{{$.OrgLink}}/members/action/leave" data-datauid="{{.ID}}"
 | 
				
			||||||
										data-name="{{.DisplayName}}"
 | 
															data-name="{{.DisplayName}}"
 | 
				
			||||||
										data-data-organization-name="{{$.Org.DisplayName}}">{{$.i18n.Tr "org.members.leave"}}</button>
 | 
															data-data-organization-name="{{$.Org.DisplayName}}">{{$.locale.Tr "org.members.leave"}}</button>
 | 
				
			||||||
								</form>
 | 
													</form>
 | 
				
			||||||
							{{else if $.IsOrganizationOwner}}
 | 
												{{else if $.IsOrganizationOwner}}
 | 
				
			||||||
								<form>
 | 
													<form>
 | 
				
			||||||
									<button class="ui red small button delete-button" data-modal-id="remove-organization-member"
 | 
														<button class="ui red small button delete-button" data-modal-id="remove-organization-member"
 | 
				
			||||||
										data-url="{{$.OrgLink}}/members/action/remove" data-datauid="{{.ID}}"
 | 
															data-url="{{$.OrgLink}}/members/action/remove" data-datauid="{{.ID}}"
 | 
				
			||||||
										data-name="{{.DisplayName}}"
 | 
															data-name="{{.DisplayName}}"
 | 
				
			||||||
										data-data-organization-name="{{$.Org.DisplayName}}">{{$.i18n.Tr "org.members.remove"}}</button>
 | 
															data-data-organization-name="{{$.Org.DisplayName}}">{{$.locale.Tr "org.members.remove"}}</button>
 | 
				
			||||||
								</form>
 | 
													</form>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
@@ -80,20 +80,20 @@
 | 
				
			|||||||
<div class="ui small basic delete modal" id="leave-organization">
 | 
					<div class="ui small basic delete modal" id="leave-organization">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-x" 16 "close inside"}}
 | 
							{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
		{{$.i18n.Tr "org.members.leave"}}
 | 
							{{$.locale.Tr "org.members.leave"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{$.i18n.Tr "org.members.leave.detail" `<span class="dataOrganizationName"></span>` | Safe}}</p>
 | 
							<p>{{$.locale.Tr "org.members.leave.detail" `<span class="dataOrganizationName"></span>` | Safe}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
<div class="ui small basic delete modal" id="remove-organization-member">
 | 
					<div class="ui small basic delete modal" id="remove-organization-member">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-x" 16 "close inside"}}
 | 
							{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
		{{$.i18n.Tr "org.members.remove"}}
 | 
							{{$.locale.Tr "org.members.remove"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{$.i18n.Tr "org.members.remove.detail" `<span class="name"></span>` `<span class="dataOrganizationName"></span>` | Safe}}</p>
 | 
							<p>{{$.locale.Tr "org.members.remove.detail" `<span class="name"></span>` `<span class="dataOrganizationName"></span>` | Safe}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,22 +1,22 @@
 | 
				
			|||||||
<div class="ui tabs container">
 | 
					<div class="ui tabs container">
 | 
				
			||||||
	<div class="ui secondary stackable pointing menu">
 | 
						<div class="ui secondary stackable pointing menu">
 | 
				
			||||||
		<a class="{{if .PageIsViewRepositories}}active{{end}} item" href="{{$.Org.HomeLink}}">
 | 
							<a class="{{if .PageIsViewRepositories}}active{{end}} item" href="{{$.Org.HomeLink}}">
 | 
				
			||||||
			{{svg "octicon-repo"}} {{.i18n.Tr "user.repositories"}}
 | 
								{{svg "octicon-repo"}} {{.locale.Tr "user.repositories"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		{{if .IsPackageEnabled}}
 | 
							{{if .IsPackageEnabled}}
 | 
				
			||||||
		<a class="item" href="{{$.Org.HomeLink}}/-/packages">
 | 
							<a class="item" href="{{$.Org.HomeLink}}/-/packages">
 | 
				
			||||||
			{{svg "octicon-package"}} {{.i18n.Tr "packages.title"}}
 | 
								{{svg "octicon-package"}} {{.locale.Tr "packages.title"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
		{{if .IsOrganizationMember}}
 | 
							{{if .IsOrganizationMember}}
 | 
				
			||||||
			<a class="{{if $.PageIsOrgMembers}}active{{end}} item" href="{{$.OrgLink}}/members">
 | 
								<a class="{{if $.PageIsOrgMembers}}active{{end}} item" href="{{$.OrgLink}}/members">
 | 
				
			||||||
				{{svg "octicon-organization"}} {{$.i18n.Tr "org.people"}}
 | 
									{{svg "octicon-organization"}} {{$.locale.Tr "org.people"}}
 | 
				
			||||||
				{{if .NumMembers}}
 | 
									{{if .NumMembers}}
 | 
				
			||||||
					<div class="ui primary label">{{.NumMembers}}</div>
 | 
										<div class="ui primary label">{{.NumMembers}}</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</a>
 | 
								</a>
 | 
				
			||||||
			<a class="{{if $.PageIsOrgTeams}}active{{end}} item" href="{{$.OrgLink}}/teams">
 | 
								<a class="{{if $.PageIsOrgTeams}}active{{end}} item" href="{{$.OrgLink}}/teams">
 | 
				
			||||||
				{{svg "octicon-people"}} {{$.i18n.Tr "org.teams"}}
 | 
									{{svg "octicon-people"}} {{$.locale.Tr "org.teams"}}
 | 
				
			||||||
				{{if .NumTeams}}
 | 
									{{if .NumTeams}}
 | 
				
			||||||
					<div class="ui black label">{{.NumTeams}}</div>
 | 
										<div class="ui black label">{{.NumTeams}}</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
@@ -26,7 +26,7 @@
 | 
				
			|||||||
		{{if .IsOrganizationOwner}}
 | 
							{{if .IsOrganizationOwner}}
 | 
				
			||||||
			<div class="right menu">
 | 
								<div class="right menu">
 | 
				
			||||||
				<a class="{{if .PageIsOrgSettings}}active{{end}} item" href="{{.OrgLink}}/settings">
 | 
									<a class="{{if .PageIsOrgSettings}}active{{end}} item" href="{{.OrgLink}}/settings">
 | 
				
			||||||
				{{svg "octicon-tools"}} {{.i18n.Tr "repo.settings"}}
 | 
									{{svg "octicon-tools"}} {{.locale.Tr "repo.settings"}}
 | 
				
			||||||
				</a>
 | 
									</a>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,20 +7,20 @@
 | 
				
			|||||||
			<div class="twelve wide column content">
 | 
								<div class="twelve wide column content">
 | 
				
			||||||
				{{template "base/alert" .}}
 | 
									{{template "base/alert" .}}
 | 
				
			||||||
				<h4 class="ui top attached error header">
 | 
									<h4 class="ui top attached error header">
 | 
				
			||||||
					{{.i18n.Tr "org.settings.delete_account"}}
 | 
										{{.locale.Tr "org.settings.delete_account"}}
 | 
				
			||||||
				</h4>
 | 
									</h4>
 | 
				
			||||||
				<div class="ui attached error segment">
 | 
									<div class="ui attached error segment">
 | 
				
			||||||
					<div class="ui red message">
 | 
										<div class="ui red message">
 | 
				
			||||||
						<p class="text left">{{svg "octicon-alert"}} {{.i18n.Tr "org.settings.delete_prompt" | Str2html}}</p>
 | 
											<p class="text left">{{svg "octicon-alert"}} {{.locale.Tr "org.settings.delete_prompt" | Str2html}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<form class="ui form ignore-dirty" id="delete-form" action="{{.Link}}" method="post">
 | 
										<form class="ui form ignore-dirty" id="delete-form" action="{{.Link}}" method="post">
 | 
				
			||||||
						{{.CsrfTokenHtml}}
 | 
											{{.CsrfTokenHtml}}
 | 
				
			||||||
						<div class="inline required field {{if .Err_OrgName}}error{{end}}">
 | 
											<div class="inline required field {{if .Err_OrgName}}error{{end}}">
 | 
				
			||||||
							<label for="org_name">{{.i18n.Tr "org.org_name_holder"}}</label>
 | 
												<label for="org_name">{{.locale.Tr "org.org_name_holder"}}</label>
 | 
				
			||||||
							<input id="org_name" name="org_name" value="" autocomplete="off" autofocus required>
 | 
												<input id="org_name" name="org_name" value="" autocomplete="off" autofocus required>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="ui red button delete-button" data-type="form" data-form="#delete-form">
 | 
											<div class="ui red button delete-button" data-type="form" data-form="#delete-form">
 | 
				
			||||||
							{{.i18n.Tr "org.settings.confirm_delete_account"}}
 | 
												{{.locale.Tr "org.settings.confirm_delete_account"}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</form>
 | 
										</form>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
@@ -32,10 +32,10 @@
 | 
				
			|||||||
<div class="ui small basic delete modal">
 | 
					<div class="ui small basic delete modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-trash"}}
 | 
							{{svg "octicon-trash"}}
 | 
				
			||||||
		{{.i18n.Tr "org.settings.delete_org_title"}}
 | 
							{{.locale.Tr "org.settings.delete_org_title"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{.i18n.Tr "org.settings.delete_org_desc"}}</p>
 | 
							<p>{{.locale.Tr "org.settings.delete_org_desc"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,7 @@
 | 
				
			|||||||
			<div class="twelve wide column content">
 | 
								<div class="twelve wide column content">
 | 
				
			||||||
				{{template "base/alert" .}}
 | 
									{{template "base/alert" .}}
 | 
				
			||||||
				<h4 class="ui top attached header">
 | 
									<h4 class="ui top attached header">
 | 
				
			||||||
					{{if .PageIsSettingsHooksNew}}{{.i18n.Tr "repo.settings.add_webhook"}}{{else}}{{.i18n.Tr "repo.settings.update_webhook"}}{{end}}
 | 
										{{if .PageIsSettingsHooksNew}}{{.locale.Tr "repo.settings.add_webhook"}}{{else}}{{.locale.Tr "repo.settings.update_webhook"}}{{end}}
 | 
				
			||||||
					<div class="ui right">
 | 
										<div class="ui right">
 | 
				
			||||||
						{{if eq .HookType "gitea"}}
 | 
											{{if eq .HookType "gitea"}}
 | 
				
			||||||
							<img width="26" height="26" src="{{AssetUrlPrefix}}/img/gitea.svg">
 | 
												<img width="26" height="26" src="{{AssetUrlPrefix}}/img/gitea.svg">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,11 +7,11 @@
 | 
				
			|||||||
				<div class="ui twelve wide column content">
 | 
									<div class="ui twelve wide column content">
 | 
				
			||||||
					<div class="ui grid">
 | 
										<div class="ui grid">
 | 
				
			||||||
						<div class="left floated twelve wide column">
 | 
											<div class="left floated twelve wide column">
 | 
				
			||||||
							{{$.i18n.Tr "org.settings.labels_desc" | Str2html}}
 | 
												{{$.locale.Tr "org.settings.labels_desc" | Str2html}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="right floated three wide column">
 | 
											<div class="right floated three wide column">
 | 
				
			||||||
							<div class="ui right">
 | 
												<div class="ui right">
 | 
				
			||||||
								<div class="ui green new-label button">{{.i18n.Tr "repo.issues.new_label"}}</div>
 | 
													<div class="ui green new-label button">{{.locale.Tr "repo.issues.new_label"}}</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,19 +1,19 @@
 | 
				
			|||||||
<div class="four wide column">
 | 
					<div class="four wide column">
 | 
				
			||||||
	<div class="ui fluid vertical menu">
 | 
						<div class="ui fluid vertical menu">
 | 
				
			||||||
		<div class="header item">{{.i18n.Tr "org.settings"}}</div>
 | 
							<div class="header item">{{.locale.Tr "org.settings"}}</div>
 | 
				
			||||||
		<a class="{{if .PageIsSettingsOptions}}active{{end}} item" href="{{.OrgLink}}/settings">
 | 
							<a class="{{if .PageIsSettingsOptions}}active{{end}} item" href="{{.OrgLink}}/settings">
 | 
				
			||||||
			{{.i18n.Tr "org.settings.options"}}
 | 
								{{.locale.Tr "org.settings.options"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		{{if not DisableWebhooks}}
 | 
							{{if not DisableWebhooks}}
 | 
				
			||||||
		<a class="{{if .PageIsSettingsHooks}}active{{end}} item" href="{{.OrgLink}}/settings/hooks">
 | 
							<a class="{{if .PageIsSettingsHooks}}active{{end}} item" href="{{.OrgLink}}/settings/hooks">
 | 
				
			||||||
			{{.i18n.Tr "repo.settings.hooks"}}
 | 
								{{.locale.Tr "repo.settings.hooks"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
		<a class="{{if .PageIsOrgSettingsLabels}}active{{end}} item" href="{{.OrgLink}}/settings/labels">
 | 
							<a class="{{if .PageIsOrgSettingsLabels}}active{{end}} item" href="{{.OrgLink}}/settings/labels">
 | 
				
			||||||
			{{.i18n.Tr "repo.labels"}}
 | 
								{{.locale.Tr "repo.labels"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
		<a class="{{if .PageIsSettingsDelete}}active{{end}} item" href="{{.OrgLink}}/settings/delete">
 | 
							<a class="{{if .PageIsSettingsDelete}}active{{end}} item" href="{{.OrgLink}}/settings/delete">
 | 
				
			||||||
			{{.i18n.Tr "org.settings.delete"}}
 | 
								{{.locale.Tr "org.settings.delete"}}
 | 
				
			||||||
		</a>
 | 
							</a>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,64 +7,64 @@
 | 
				
			|||||||
			<div class="twelve wide column content">
 | 
								<div class="twelve wide column content">
 | 
				
			||||||
				{{template "base/alert" .}}
 | 
									{{template "base/alert" .}}
 | 
				
			||||||
				<h4 class="ui top attached header">
 | 
									<h4 class="ui top attached header">
 | 
				
			||||||
					{{.i18n.Tr "org.settings.options"}}
 | 
										{{.locale.Tr "org.settings.options"}}
 | 
				
			||||||
				</h4>
 | 
									</h4>
 | 
				
			||||||
				<div class="ui attached segment">
 | 
									<div class="ui attached segment">
 | 
				
			||||||
					<form class="ui form" action="{{.Link}}" method="post">
 | 
										<form class="ui form" action="{{.Link}}" method="post">
 | 
				
			||||||
						{{.CsrfTokenHtml}}
 | 
											{{.CsrfTokenHtml}}
 | 
				
			||||||
						<div class="required field {{if .Err_Name}}error{{end}}">
 | 
											<div class="required field {{if .Err_Name}}error{{end}}">
 | 
				
			||||||
							<label for="org_name">{{.i18n.Tr "org.org_name_holder"}}
 | 
												<label for="org_name">{{.locale.Tr "org.org_name_holder"}}
 | 
				
			||||||
								<span class="text red hide" id="org-name-change-prompt"> {{.i18n.Tr "org.settings.change_orgname_prompt"}}</span>
 | 
													<span class="text red hide" id="org-name-change-prompt"> {{.locale.Tr "org.settings.change_orgname_prompt"}}</span>
 | 
				
			||||||
								<span class="text red hide" id="org-name-change-redirect-prompt"> {{.i18n.Tr "org.settings.change_orgname_redirect_prompt"}}</span>
 | 
													<span class="text red hide" id="org-name-change-redirect-prompt"> {{.locale.Tr "org.settings.change_orgname_redirect_prompt"}}</span>
 | 
				
			||||||
							</label>
 | 
												</label>
 | 
				
			||||||
							<input id="org_name" name="name" value="{{.Org.Name}}" data-org-name="{{.Org.Name}}" autofocus required>
 | 
												<input id="org_name" name="name" value="{{.Org.Name}}" data-org-name="{{.Org.Name}}" autofocus required>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field {{if .Err_FullName}}error{{end}}">
 | 
											<div class="field {{if .Err_FullName}}error{{end}}">
 | 
				
			||||||
							<label for="full_name">{{.i18n.Tr "org.org_full_name_holder"}}</label>
 | 
												<label for="full_name">{{.locale.Tr "org.org_full_name_holder"}}</label>
 | 
				
			||||||
							<input id="full_name" name="full_name" value="{{.Org.FullName}}">
 | 
												<input id="full_name" name="full_name" value="{{.Org.FullName}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field {{if .Err_Description}}error{{end}}">
 | 
											<div class="field {{if .Err_Description}}error{{end}}">
 | 
				
			||||||
							<label for="description">{{$.i18n.Tr "org.org_desc"}}</label>
 | 
												<label for="description">{{$.locale.Tr "org.org_desc"}}</label>
 | 
				
			||||||
							<textarea id="description" name="description" rows="2">{{.Org.Description}}</textarea>
 | 
												<textarea id="description" name="description" rows="2">{{.Org.Description}}</textarea>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field {{if .Err_Website}}error{{end}}">
 | 
											<div class="field {{if .Err_Website}}error{{end}}">
 | 
				
			||||||
							<label for="website">{{.i18n.Tr "org.settings.website"}}</label>
 | 
												<label for="website">{{.locale.Tr "org.settings.website"}}</label>
 | 
				
			||||||
							<input id="website" name="website" type="url" value="{{.Org.Website}}">
 | 
												<input id="website" name="website" type="url" value="{{.Org.Website}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<label for="location">{{.i18n.Tr "org.settings.location"}}</label>
 | 
												<label for="location">{{.locale.Tr "org.settings.location"}}</label>
 | 
				
			||||||
							<input id="location" name="location"  value="{{.Org.Location}}">
 | 
												<input id="location" name="location"  value="{{.Org.Location}}">
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						<div class="ui divider"></div>
 | 
											<div class="ui divider"></div>
 | 
				
			||||||
						<div class="field" id="visibility_box">
 | 
											<div class="field" id="visibility_box">
 | 
				
			||||||
							<label for="visibility">{{.i18n.Tr "org.settings.visibility"}}</label>
 | 
												<label for="visibility">{{.locale.Tr "org.settings.visibility"}}</label>
 | 
				
			||||||
							<div class="field">
 | 
												<div class="field">
 | 
				
			||||||
								<div class="ui radio checkbox">
 | 
													<div class="ui radio checkbox">
 | 
				
			||||||
									<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="0" {{if eq .CurrentVisibility 0}}checked{{end}}/>
 | 
														<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="0" {{if eq .CurrentVisibility 0}}checked{{end}}/>
 | 
				
			||||||
									<label>{{.i18n.Tr "org.settings.visibility.public"}}</label>
 | 
														<label>{{.locale.Tr "org.settings.visibility.public"}}</label>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
							<div class="field">
 | 
												<div class="field">
 | 
				
			||||||
								<div class="ui radio checkbox">
 | 
													<div class="ui radio checkbox">
 | 
				
			||||||
									<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="1" {{if eq .CurrentVisibility 1}}checked{{end}}/>
 | 
														<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="1" {{if eq .CurrentVisibility 1}}checked{{end}}/>
 | 
				
			||||||
									<label>{{.i18n.Tr "org.settings.visibility.limited"}}</label>
 | 
														<label>{{.locale.Tr "org.settings.visibility.limited"}}</label>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
							<div class="field">
 | 
												<div class="field">
 | 
				
			||||||
								<div class="ui radio checkbox">
 | 
													<div class="ui radio checkbox">
 | 
				
			||||||
									<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="2" {{if eq .CurrentVisibility 2}}checked{{end}}/>
 | 
														<input class="hidden enable-system-radio" tabindex="0" name="visibility" type="radio" value="2" {{if eq .CurrentVisibility 2}}checked{{end}}/>
 | 
				
			||||||
									<label>{{.i18n.Tr "org.settings.visibility.private"}}</label>
 | 
														<label>{{.locale.Tr "org.settings.visibility.private"}}</label>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						<div class="field" id="permission_box">
 | 
											<div class="field" id="permission_box">
 | 
				
			||||||
							<label>{{.i18n.Tr "org.settings.permission"}}</label>
 | 
												<label>{{.locale.Tr "org.settings.permission"}}</label>
 | 
				
			||||||
							<div class="field">
 | 
												<div class="field">
 | 
				
			||||||
								<div class="ui checkbox">
 | 
													<div class="ui checkbox">
 | 
				
			||||||
									<input class="hidden" type="checkbox" name="repo_admin_change_team_access" {{if .RepoAdminChangeTeamAccess}}checked{{end}}/>
 | 
														<input class="hidden" type="checkbox" name="repo_admin_change_team_access" {{if .RepoAdminChangeTeamAccess}}checked{{end}}/>
 | 
				
			||||||
									<label>{{.i18n.Tr "org.settings.repoadminchangeteam"}}</label>
 | 
														<label>{{.locale.Tr "org.settings.repoadminchangeteam"}}</label>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
@@ -73,14 +73,14 @@
 | 
				
			|||||||
						<div class="ui divider"></div>
 | 
											<div class="ui divider"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						<div class="inline field {{if .Err_MaxRepoCreation}}error{{end}}">
 | 
											<div class="inline field {{if .Err_MaxRepoCreation}}error{{end}}">
 | 
				
			||||||
							<label for="max_repo_creation">{{.i18n.Tr "admin.users.max_repo_creation"}}</label>
 | 
												<label for="max_repo_creation">{{.locale.Tr "admin.users.max_repo_creation"}}</label>
 | 
				
			||||||
							<input id="max_repo_creation" name="max_repo_creation" type="number" value="{{.Org.MaxRepoCreation}}">
 | 
												<input id="max_repo_creation" name="max_repo_creation" type="number" value="{{.Org.MaxRepoCreation}}">
 | 
				
			||||||
							<p class="help">{{.i18n.Tr "admin.users.max_repo_creation_desc"}}</p>
 | 
												<p class="help">{{.locale.Tr "admin.users.max_repo_creation_desc"}}</p>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<button class="ui green button">{{$.i18n.Tr "org.settings.update_settings"}}</button>
 | 
												<button class="ui green button">{{$.locale.Tr "org.settings.update_settings"}}</button>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</form>
 | 
										</form>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -89,13 +89,13 @@
 | 
				
			|||||||
					<form class="ui form" action="{{.Link}}/avatar" method="post" enctype="multipart/form-data">
 | 
										<form class="ui form" action="{{.Link}}/avatar" method="post" enctype="multipart/form-data">
 | 
				
			||||||
						{{.CsrfTokenHtml}}
 | 
											{{.CsrfTokenHtml}}
 | 
				
			||||||
						<div class="inline field">
 | 
											<div class="inline field">
 | 
				
			||||||
							<label for="avatar">{{.i18n.Tr "settings.choose_new_avatar"}}</label>
 | 
												<label for="avatar">{{.locale.Tr "settings.choose_new_avatar"}}</label>
 | 
				
			||||||
							<input name="avatar" type="file" >
 | 
												<input name="avatar" type="file" >
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							<button class="ui green button">{{$.i18n.Tr "settings.update_avatar"}}</button>
 | 
												<button class="ui green button">{{$.locale.Tr "settings.update_avatar"}}</button>
 | 
				
			||||||
							<a class="ui red button delete-post" data-request-url="{{.Link}}/avatar/delete" data-done-url="{{.Link}}">{{$.i18n.Tr "settings.delete_current_avatar"}}</a>
 | 
												<a class="ui red button delete-post" data-request-url="{{.Link}}/avatar/delete" data-done-url="{{.Link}}">{{$.locale.Tr "settings.delete_current_avatar"}}</a>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</form>
 | 
										</form>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,11 +15,11 @@
 | 
				
			|||||||
							<div class="inline field ui left">
 | 
												<div class="inline field ui left">
 | 
				
			||||||
								<div id="search-user-box" class="ui search">
 | 
													<div id="search-user-box" class="ui search">
 | 
				
			||||||
									<div class="ui input">
 | 
														<div class="ui input">
 | 
				
			||||||
										<input class="prompt" name="uname" placeholder="{{.i18n.Tr "repo.settings.search_user_placeholder"}}" autocomplete="off" required>
 | 
															<input class="prompt" name="uname" placeholder="{{.locale.Tr "repo.settings.search_user_placeholder"}}" autocomplete="off" required>
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
							<button class="ui green button">{{.i18n.Tr "org.teams.add_team_member"}}</button>
 | 
												<button class="ui green button">{{.locale.Tr "org.teams.add_team_member"}}</button>
 | 
				
			||||||
						</form>
 | 
											</form>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
@@ -31,7 +31,7 @@
 | 
				
			|||||||
									<button class="ui red button delete-button right" data-modal-id="remove-team-member"
 | 
														<button class="ui red button delete-button right" data-modal-id="remove-team-member"
 | 
				
			||||||
										data-url="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/remove" data-datauid="{{.ID}}"
 | 
															data-url="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/remove" data-datauid="{{.ID}}"
 | 
				
			||||||
										data-name="{{.DisplayName}}"
 | 
															data-name="{{.DisplayName}}"
 | 
				
			||||||
										data-data-team-name="{{$.Team.Name}}">{{$.i18n.Tr "org.members.remove"}}</button>
 | 
															data-data-team-name="{{$.Team.Name}}">{{$.locale.Tr "org.members.remove"}}</button>
 | 
				
			||||||
								</form>
 | 
													</form>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
							<a href="{{.HomeLink}}">
 | 
												<a href="{{.HomeLink}}">
 | 
				
			||||||
@@ -41,7 +41,7 @@
 | 
				
			|||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					{{else}}
 | 
										{{else}}
 | 
				
			||||||
						<div class="item">
 | 
											<div class="item">
 | 
				
			||||||
							<span class="text grey italic">{{$.i18n.Tr "org.teams.members.none"}}</span>
 | 
												<span class="text grey italic">{{$.locale.Tr "org.teams.members.none"}}</span>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
@@ -52,10 +52,10 @@
 | 
				
			|||||||
<div class="ui small basic delete modal" id="remove-team-member">
 | 
					<div class="ui small basic delete modal" id="remove-team-member">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-x" 16 "close inside"}}
 | 
							{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
		{{$.i18n.Tr "org.members.remove"}}
 | 
							{{$.locale.Tr "org.members.remove"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{$.i18n.Tr "org.members.remove.detail" `<span class="name"></span>` `<span class="dataTeamName"></span>` | Safe}}</p>
 | 
							<p>{{$.locale.Tr "org.members.remove.detail" `<span class="name"></span>` `<span class="dataTeamName"></span>` | Safe}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
<div class="ui top attached tabular menu">
 | 
					<div class="ui top attached tabular menu">
 | 
				
			||||||
	<a class="item{{if .PageIsOrgTeamMembers}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}">{{svg "octicon-person"}} <strong>{{.Team.NumMembers}}</strong>  {{$.i18n.Tr "org.lower_members"}}</a>
 | 
						<a class="item{{if .PageIsOrgTeamMembers}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}">{{svg "octicon-person"}} <strong>{{.Team.NumMembers}}</strong>  {{$.locale.Tr "org.lower_members"}}</a>
 | 
				
			||||||
	<a class="item{{if .PageIsOrgTeamRepos}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/repositories">{{svg "octicon-repo"}} <strong>{{.Team.NumRepos}}</strong>  {{$.i18n.Tr "org.lower_repositories"}}</a>
 | 
						<a class="item{{if .PageIsOrgTeamRepos}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/repositories">{{svg "octicon-repo"}} <strong>{{.Team.NumRepos}}</strong>  {{$.locale.Tr "org.lower_repositories"}}</a>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,83 +7,83 @@
 | 
				
			|||||||
				<form class="ui form" action="{{if .PageIsOrgTeamsNew}}{{.OrgLink}}/teams/new{{else}}{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/edit{{end}}" data-delete-url="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/delete" method="post">
 | 
									<form class="ui form" action="{{if .PageIsOrgTeamsNew}}{{.OrgLink}}/teams/new{{else}}{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/edit{{end}}" data-delete-url="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/delete" method="post">
 | 
				
			||||||
					{{.CsrfTokenHtml}}
 | 
										{{.CsrfTokenHtml}}
 | 
				
			||||||
					<h3 class="ui top attached header">
 | 
										<h3 class="ui top attached header">
 | 
				
			||||||
						{{if .PageIsOrgTeamsNew}}{{.i18n.Tr "org.create_new_team"}}{{else}}{{.i18n.Tr "org.teams.settings"}}{{end}}
 | 
											{{if .PageIsOrgTeamsNew}}{{.locale.Tr "org.create_new_team"}}{{else}}{{.locale.Tr "org.teams.settings"}}{{end}}
 | 
				
			||||||
					</h3>
 | 
										</h3>
 | 
				
			||||||
					<div class="ui attached segment">
 | 
										<div class="ui attached segment">
 | 
				
			||||||
						{{template "base/alert" .}}
 | 
											{{template "base/alert" .}}
 | 
				
			||||||
						<div class="required field {{if .Err_TeamName}}error{{end}}">
 | 
											<div class="required field {{if .Err_TeamName}}error{{end}}">
 | 
				
			||||||
							<label for="team_name">{{.i18n.Tr "org.team_name"}}</label>
 | 
												<label for="team_name">{{.locale.Tr "org.team_name"}}</label>
 | 
				
			||||||
							{{if eq .Team.LowerName "owners"}}
 | 
												{{if eq .Team.LowerName "owners"}}
 | 
				
			||||||
								<input type="hidden" name="team_name" value="{{.Team.Name}}">
 | 
													<input type="hidden" name="team_name" value="{{.Team.Name}}">
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
							<input id="team_name" name="team_name" value="{{.Team.Name}}" required {{if eq .Team.LowerName "owners"}}disabled{{end}} autofocus>
 | 
												<input id="team_name" name="team_name" value="{{.Team.Name}}" required {{if eq .Team.LowerName "owners"}}disabled{{end}} autofocus>
 | 
				
			||||||
							<span class="help">{{.i18n.Tr "org.team_name_helper"}}</span>
 | 
												<span class="help">{{.locale.Tr "org.team_name_helper"}}</span>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="field {{if .Err_Description}}error{{end}}">
 | 
											<div class="field {{if .Err_Description}}error{{end}}">
 | 
				
			||||||
							<label for="description">{{.i18n.Tr "org.team_desc"}}</label>
 | 
												<label for="description">{{.locale.Tr "org.team_desc"}}</label>
 | 
				
			||||||
							<input id="description" name="description" value="{{.Team.Description}}">
 | 
												<input id="description" name="description" value="{{.Team.Description}}">
 | 
				
			||||||
							<span class="help">{{.i18n.Tr "org.team_desc_helper"}}</span>
 | 
												<span class="help">{{.locale.Tr "org.team_desc_helper"}}</span>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						{{if not (eq .Team.LowerName "owners")}}
 | 
											{{if not (eq .Team.LowerName "owners")}}
 | 
				
			||||||
							<div class="grouped field">
 | 
												<div class="grouped field">
 | 
				
			||||||
								<label>{{.i18n.Tr "org.team_access_desc"}}</label>
 | 
													<label>{{.locale.Tr "org.team_access_desc"}}</label>
 | 
				
			||||||
								<br>
 | 
													<br>
 | 
				
			||||||
								<div class="field">
 | 
													<div class="field">
 | 
				
			||||||
									<div class="ui radio checkbox">
 | 
														<div class="ui radio checkbox">
 | 
				
			||||||
										<input type="radio" name="repo_access" value="specific" {{if not .Team.IncludesAllRepositories}}checked{{end}}>
 | 
															<input type="radio" name="repo_access" value="specific" {{if not .Team.IncludesAllRepositories}}checked{{end}}>
 | 
				
			||||||
										<label>{{.i18n.Tr "org.teams.specific_repositories"}}</label>
 | 
															<label>{{.locale.Tr "org.teams.specific_repositories"}}</label>
 | 
				
			||||||
										<span class="help">{{.i18n.Tr "org.teams.specific_repositories_helper" | Str2html}}</span>
 | 
															<span class="help">{{.locale.Tr "org.teams.specific_repositories_helper" | Str2html}}</span>
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
								<div class="field">
 | 
													<div class="field">
 | 
				
			||||||
									<div class="ui radio checkbox">
 | 
														<div class="ui radio checkbox">
 | 
				
			||||||
										<input type="radio" name="repo_access" value="all" {{if .Team.IncludesAllRepositories}}checked{{end}}>
 | 
															<input type="radio" name="repo_access" value="all" {{if .Team.IncludesAllRepositories}}checked{{end}}>
 | 
				
			||||||
										<label>{{.i18n.Tr "org.teams.all_repositories"}}</label>
 | 
															<label>{{.locale.Tr "org.teams.all_repositories"}}</label>
 | 
				
			||||||
										<span class="help">{{.i18n.Tr "org.teams.all_repositories_helper" | Str2html}}</span>
 | 
															<span class="help">{{.locale.Tr "org.teams.all_repositories_helper" | Str2html}}</span>
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
								<div class="field">
 | 
													<div class="field">
 | 
				
			||||||
									<div class="ui checkbox">
 | 
														<div class="ui checkbox">
 | 
				
			||||||
										<label for="can_create_org_repo">{{.i18n.Tr "org.teams.can_create_org_repo"}}</label>
 | 
															<label for="can_create_org_repo">{{.locale.Tr "org.teams.can_create_org_repo"}}</label>
 | 
				
			||||||
										<input id="can_create_org_repo" name="can_create_org_repo" type="checkbox" {{if .Team.CanCreateOrgRepo}}checked{{end}}>
 | 
															<input id="can_create_org_repo" name="can_create_org_repo" type="checkbox" {{if .Team.CanCreateOrgRepo}}checked{{end}}>
 | 
				
			||||||
										<span class="help">{{.i18n.Tr "org.teams.can_create_org_repo_helper"}}</span>
 | 
															<span class="help">{{.locale.Tr "org.teams.can_create_org_repo_helper"}}</span>
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
							<div class="grouped field">
 | 
												<div class="grouped field">
 | 
				
			||||||
								<label>{{.i18n.Tr "org.team_permission_desc"}}</label>
 | 
													<label>{{.locale.Tr "org.team_permission_desc"}}</label>
 | 
				
			||||||
								<br>
 | 
													<br>
 | 
				
			||||||
								<div class="field">
 | 
													<div class="field">
 | 
				
			||||||
									<div class="ui radio checkbox">
 | 
														<div class="ui radio checkbox">
 | 
				
			||||||
										<input type="radio" name="permission" value="read" {{if or .PageIsOrgTeamsNew (eq .Team.AccessMode 1) (eq .Team.AccessMode 2)}}checked{{end}}>
 | 
															<input type="radio" name="permission" value="read" {{if or .PageIsOrgTeamsNew (eq .Team.AccessMode 1) (eq .Team.AccessMode 2)}}checked{{end}}>
 | 
				
			||||||
										<label>{{.i18n.Tr "org.teams.general_access"}}</label>
 | 
															<label>{{.locale.Tr "org.teams.general_access"}}</label>
 | 
				
			||||||
										<span class="help">{{.i18n.Tr "org.teams.general_access_helper"}}</span>
 | 
															<span class="help">{{.locale.Tr "org.teams.general_access_helper"}}</span>
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
								<div class="field">
 | 
													<div class="field">
 | 
				
			||||||
									<div class="ui radio checkbox">
 | 
														<div class="ui radio checkbox">
 | 
				
			||||||
										<input type="radio" name="permission" value="admin" {{if eq .Team.AccessMode 3}}checked{{end}}>
 | 
															<input type="radio" name="permission" value="admin" {{if eq .Team.AccessMode 3}}checked{{end}}>
 | 
				
			||||||
										<label>{{.i18n.Tr "org.teams.admin_access"}}</label>
 | 
															<label>{{.locale.Tr "org.teams.admin_access"}}</label>
 | 
				
			||||||
										<span class="help">{{.i18n.Tr "org.teams.admin_access_helper"}}</span>
 | 
															<span class="help">{{.locale.Tr "org.teams.admin_access_helper"}}</span>
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
							<div class="ui divider"></div>
 | 
												<div class="ui divider"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							<div class="team-units required grouped field"{{if eq .Team.AccessMode 3}} style="display: none"{{end}}>
 | 
												<div class="team-units required grouped field"{{if eq .Team.AccessMode 3}} style="display: none"{{end}}>
 | 
				
			||||||
								<label>{{.i18n.Tr "org.team_unit_desc"}}</label>
 | 
													<label>{{.locale.Tr "org.team_unit_desc"}}</label>
 | 
				
			||||||
								<table class="ui celled table">
 | 
													<table class="ui celled table">
 | 
				
			||||||
									<thead>
 | 
														<thead>
 | 
				
			||||||
										<tr>
 | 
															<tr>
 | 
				
			||||||
											<th class="center aligned">{{.i18n.Tr "units.unit"}}</th>
 | 
																<th class="center aligned">{{.locale.Tr "units.unit"}}</th>
 | 
				
			||||||
											<th class="center aligned">{{.i18n.Tr "org.teams.none_access"}}
 | 
																<th class="center aligned">{{.locale.Tr "org.teams.none_access"}}
 | 
				
			||||||
											<i class="circle help icon link tooltip" data-content="{{.i18n.Tr "org.teams.none_access_helper"}}"></i></th>
 | 
																<i class="circle help icon link tooltip" data-content="{{.locale.Tr "org.teams.none_access_helper"}}"></i></th>
 | 
				
			||||||
											<th class="center aligned">{{.i18n.Tr "org.teams.read_access"}}
 | 
																<th class="center aligned">{{.locale.Tr "org.teams.read_access"}}
 | 
				
			||||||
											<i class="circle help icon link tooltip" data-content="{{.i18n.Tr "org.teams.read_access_helper"}}"></i>
 | 
																<i class="circle help icon link tooltip" data-content="{{.locale.Tr "org.teams.read_access_helper"}}"></i>
 | 
				
			||||||
											</th>
 | 
																</th>
 | 
				
			||||||
											<th class="center aligned">{{.i18n.Tr "org.teams.write_access"}}
 | 
																<th class="center aligned">{{.locale.Tr "org.teams.write_access"}}
 | 
				
			||||||
											<i class="circle help icon link tooltip" data-content="{{.i18n.Tr "org.teams.write_access_helper"}}"></i>
 | 
																<i class="circle help icon link tooltip" data-content="{{.locale.Tr "org.teams.write_access_helper"}}"></i>
 | 
				
			||||||
											</th>
 | 
																</th>
 | 
				
			||||||
										</tr>
 | 
															</tr>
 | 
				
			||||||
									</thead>
 | 
														</thead>
 | 
				
			||||||
@@ -92,10 +92,10 @@
 | 
				
			|||||||
											{{if ge $unit.MaxPerm 2}}
 | 
																{{if ge $unit.MaxPerm 2}}
 | 
				
			||||||
												<tr>
 | 
																	<tr>
 | 
				
			||||||
													<td>
 | 
																		<td>
 | 
				
			||||||
														<div {{if $unit.Type.UnitGlobalDisabled}}class="field tooltip" data-content="{{$.i18n.Tr "repo.unit_disabled"}}"{{- else -}}class="field"{{end}}>
 | 
																			<div {{if $unit.Type.UnitGlobalDisabled}}class="field tooltip" data-content="{{$.locale.Tr "repo.unit_disabled"}}"{{- else -}}class="field"{{end}}>
 | 
				
			||||||
															<div class="ui">
 | 
																				<div class="ui">
 | 
				
			||||||
																<label>{{$.i18n.Tr $unit.NameKey}}{{if $unit.Type.UnitGlobalDisabled}} {{$.i18n.Tr "org.team_unit_disabled"}}{{end}}</label>
 | 
																					<label>{{$.locale.Tr $unit.NameKey}}{{if $unit.Type.UnitGlobalDisabled}} {{$.locale.Tr "org.team_unit_disabled"}}{{end}}</label>
 | 
				
			||||||
																<span class="help">{{$.i18n.Tr $unit.DescKey}}</span>
 | 
																					<span class="help">{{$.locale.Tr $unit.DescKey}}</span>
 | 
				
			||||||
															</div>
 | 
																				</div>
 | 
				
			||||||
														</div>
 | 
																			</div>
 | 
				
			||||||
													</td>
 | 
																		</td>
 | 
				
			||||||
@@ -121,11 +121,11 @@
 | 
				
			|||||||
								</table>
 | 
													</table>
 | 
				
			||||||
								{{range $t, $unit := $.Units}}
 | 
													{{range $t, $unit := $.Units}}
 | 
				
			||||||
									{{if lt $unit.MaxPerm 2}}
 | 
														{{if lt $unit.MaxPerm 2}}
 | 
				
			||||||
										<div {{if $unit.Type.UnitGlobalDisabled}}class="field tooltip" data-content="{{$.i18n.Tr "repo.unit_disabled"}}"{{else}}class="field"{{end}}>
 | 
															<div {{if $unit.Type.UnitGlobalDisabled}}class="field tooltip" data-content="{{$.locale.Tr "repo.unit_disabled"}}"{{else}}class="field"{{end}}>
 | 
				
			||||||
											<div class="ui checkbox">
 | 
																<div class="ui checkbox">
 | 
				
			||||||
												<input type="checkbox" class="hidden" name="unit_{{$unit.Type.Value}}" value="1"{{if or (eq $.Team.ID 0) (eq ($.Team.UnitAccessMode $unit.Type) 1)}} checked{{end}} {{if $unit.Type.UnitGlobalDisabled}}disabled{{end}}>
 | 
																	<input type="checkbox" class="hidden" name="unit_{{$unit.Type.Value}}" value="1"{{if or (eq $.Team.ID 0) (eq ($.Team.UnitAccessMode $unit.Type) 1)}} checked{{end}} {{if $unit.Type.UnitGlobalDisabled}}disabled{{end}}>
 | 
				
			||||||
												<label>{{$.i18n.Tr $unit.NameKey}}{{if $unit.Type.UnitGlobalDisabled}} {{$.i18n.Tr "org.team_unit_disabled"}}{{end}}</label>
 | 
																	<label>{{$.locale.Tr $unit.NameKey}}{{if $unit.Type.UnitGlobalDisabled}} {{$.locale.Tr "org.team_unit_disabled"}}{{end}}</label>
 | 
				
			||||||
												<span class="help">{{$.i18n.Tr $unit.DescKey}}</span>
 | 
																	<span class="help">{{$.locale.Tr $unit.DescKey}}</span>
 | 
				
			||||||
											</div>
 | 
																</div>
 | 
				
			||||||
										</div>
 | 
															</div>
 | 
				
			||||||
									{{end}}
 | 
														{{end}}
 | 
				
			||||||
@@ -135,12 +135,12 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
						<div class="field">
 | 
											<div class="field">
 | 
				
			||||||
							{{if .PageIsOrgTeamsNew}}
 | 
												{{if .PageIsOrgTeamsNew}}
 | 
				
			||||||
								<button class="ui green button">{{.i18n.Tr "org.create_team"}}</button>
 | 
													<button class="ui green button">{{.locale.Tr "org.create_team"}}</button>
 | 
				
			||||||
								<a class="ui button" href="{{.OrgLink}}/teams">{{.i18n.Tr "cancel"}}</a>
 | 
													<a class="ui button" href="{{.OrgLink}}/teams">{{.locale.Tr "cancel"}}</a>
 | 
				
			||||||
							{{else}}
 | 
												{{else}}
 | 
				
			||||||
								<button class="ui green button">{{.i18n.Tr "org.teams.update_settings"}}</button>
 | 
													<button class="ui green button">{{.locale.Tr "org.teams.update_settings"}}</button>
 | 
				
			||||||
								{{if not (eq .Team.LowerName "owners")}}
 | 
													{{if not (eq .Team.LowerName "owners")}}
 | 
				
			||||||
									<button class="ui red button delete-button" data-url="{{.OrgLink}}/teams/{{.team_name | PathEscape}}/delete">{{.i18n.Tr "org.teams.delete_team"}}</button>
 | 
														<button class="ui red button delete-button" data-url="{{.OrgLink}}/teams/{{.team_name | PathEscape}}/delete">{{.locale.Tr "org.teams.delete_team"}}</button>
 | 
				
			||||||
								{{end}}
 | 
													{{end}}
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
@@ -154,10 +154,10 @@
 | 
				
			|||||||
<div class="ui small basic delete modal">
 | 
					<div class="ui small basic delete modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-trash"}}
 | 
							{{svg "octicon-trash"}}
 | 
				
			||||||
		{{.i18n.Tr "org.teams.delete_team_title"}}
 | 
							{{.locale.Tr "org.teams.delete_team_title"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{.i18n.Tr "org.teams.delete_team_desc"}}</p>
 | 
							<p>{{.locale.Tr "org.teams.delete_team_desc"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,17 +16,17 @@
 | 
				
			|||||||
								<div class="inline field ui left">
 | 
													<div class="inline field ui left">
 | 
				
			||||||
									<div id="search-repo-box" data-uid="{{.Org.ID}}" class="ui search">
 | 
														<div id="search-repo-box" data-uid="{{.Org.ID}}" class="ui search">
 | 
				
			||||||
										<div class="ui input">
 | 
															<div class="ui input">
 | 
				
			||||||
											<input class="prompt" name="repo_name" placeholder="{{.i18n.Tr "org.teams.search_repo_placeholder"}}" autocomplete="off" required>
 | 
																<input class="prompt" name="repo_name" placeholder="{{.locale.Tr "org.teams.search_repo_placeholder"}}" autocomplete="off" required>
 | 
				
			||||||
										</div>
 | 
															</div>
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
								<button class="ui green button">{{.i18n.Tr "add"}}</button>
 | 
													<button class="ui green button">{{.locale.Tr "add"}}</button>
 | 
				
			||||||
							</form>
 | 
												</form>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<div class="inline ui field right">
 | 
											<div class="inline ui field right">
 | 
				
			||||||
							<form class="ui form" id="repo-multiple-form" action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/repositories" method="post">
 | 
												<form class="ui form" id="repo-multiple-form" action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/repositories" method="post">
 | 
				
			||||||
								<button class="ui red button delete-button right" data-url="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/removeall">{{.i18n.Tr "remove_all"}}</button>
 | 
													<button class="ui red button delete-button right" data-url="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/removeall">{{.locale.Tr "remove_all"}}</button>
 | 
				
			||||||
								<button class="ui green button add-all-button right" data-url="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/addall">{{.i18n.Tr "add_all"}}</button>
 | 
													<button class="ui green button add-all-button right" data-url="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/addall">{{.locale.Tr "add_all"}}</button>
 | 
				
			||||||
							</form>
 | 
												</form>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
@@ -37,7 +37,7 @@
 | 
				
			|||||||
							{{if $canAddRemove}}
 | 
												{{if $canAddRemove}}
 | 
				
			||||||
								<form method="post" action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/remove">
 | 
													<form method="post" action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/repo/remove">
 | 
				
			||||||
									{{$.CsrfTokenHtml}}
 | 
														{{$.CsrfTokenHtml}}
 | 
				
			||||||
									<button type="submit" class="ui red small button right" name="repoid" value="{{.ID}}">{{$.i18n.Tr "remove"}}</button>
 | 
														<button type="submit" class="ui red small button right" name="repoid" value="{{.ID}}">{{$.locale.Tr "remove"}}</button>
 | 
				
			||||||
								</form>
 | 
													</form>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
							<a class="member" href="{{$.Org.HomeLink}}/{{.Name | PathEscape}}">
 | 
												<a class="member" href="{{$.Org.HomeLink}}/{{.Name | PathEscape}}">
 | 
				
			||||||
@@ -55,7 +55,7 @@
 | 
				
			|||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					{{else}}
 | 
										{{else}}
 | 
				
			||||||
						<div class="item">
 | 
											<div class="item">
 | 
				
			||||||
							<span class="text grey italic">{{$.i18n.Tr "org.teams.repos.none"}}</span>
 | 
												<span class="text grey italic">{{$.locale.Tr "org.teams.repos.none"}}</span>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
@@ -67,10 +67,10 @@
 | 
				
			|||||||
<div class="ui small basic delete modal">
 | 
					<div class="ui small basic delete modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-trash"}}
 | 
							{{svg "octicon-trash"}}
 | 
				
			||||||
		{{.i18n.Tr "org.teams.remove_all_repos_title"}}
 | 
							{{.locale.Tr "org.teams.remove_all_repos_title"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{.i18n.Tr "org.teams.remove_all_repos_desc"}}</p>
 | 
							<p>{{.locale.Tr "org.teams.remove_all_repos_desc"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
@@ -78,10 +78,10 @@
 | 
				
			|||||||
<div class="ui small basic addall modal">
 | 
					<div class="ui small basic addall modal">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		<i class="globe icon"></i>
 | 
							<i class="globe icon"></i>
 | 
				
			||||||
		{{.i18n.Tr "org.teams.add_all_repos_title"}}
 | 
							{{.locale.Tr "org.teams.add_all_repos_title"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{.i18n.Tr "org.teams.add_all_repos_desc"}}</p>
 | 
							<p>{{.locale.Tr "org.teams.add_all_repos_desc"}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@
 | 
				
			|||||||
				<form>
 | 
									<form>
 | 
				
			||||||
					<button class="ui red tiny button delete-button" data-modal-id="leave-team-sidebar"
 | 
										<button class="ui red tiny button delete-button" data-modal-id="leave-team-sidebar"
 | 
				
			||||||
						data-url="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/action/leave" data-datauid="{{$.SignedUser.ID}}"
 | 
											data-url="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/action/leave" data-datauid="{{$.SignedUser.ID}}"
 | 
				
			||||||
						data-name="{{.Team.Name}}">{{$.i18n.Tr "org.teams.leave"}}</button>
 | 
											data-name="{{.Team.Name}}">{{$.locale.Tr "org.teams.leave"}}</button>
 | 
				
			||||||
				</form>
 | 
									</form>
 | 
				
			||||||
			{{else if .IsOrganizationOwner}}
 | 
								{{else if .IsOrganizationOwner}}
 | 
				
			||||||
				<form method="post" action="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/action/join">
 | 
									<form method="post" action="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/action/join">
 | 
				
			||||||
					{{$.CsrfTokenHtml}}
 | 
										{{$.CsrfTokenHtml}}
 | 
				
			||||||
					<input type="hidden" name="page" value="team"/>
 | 
										<input type="hidden" name="page" value="team"/>
 | 
				
			||||||
					<button type="submit" class="ui primary tiny button" name="uid" value="{{$.SignedUser.ID}}">{{$.i18n.Tr "org.teams.join"}}</button>
 | 
										<button type="submit" class="ui primary tiny button" name="uid" value="{{$.SignedUser.ID}}">{{$.locale.Tr "org.teams.join"}}</button>
 | 
				
			||||||
				</form>
 | 
									</form>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
@@ -22,51 +22,51 @@
 | 
				
			|||||||
			{{if .Team.Description}}
 | 
								{{if .Team.Description}}
 | 
				
			||||||
				{{.Team.Description}}
 | 
									{{.Team.Description}}
 | 
				
			||||||
			{{else}}
 | 
								{{else}}
 | 
				
			||||||
				<span class="text grey italic">{{.i18n.Tr "org.teams.no_desc"}}</span>
 | 
									<span class="text grey italic">{{.locale.Tr "org.teams.no_desc"}}</span>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		{{if eq .Team.LowerName "owners"}}
 | 
							{{if eq .Team.LowerName "owners"}}
 | 
				
			||||||
			<div class="item">
 | 
								<div class="item">
 | 
				
			||||||
				{{.i18n.Tr "org.teams.owners_permission_desc" | Str2html}}
 | 
									{{.locale.Tr "org.teams.owners_permission_desc" | Str2html}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		{{else}}
 | 
							{{else}}
 | 
				
			||||||
			<div class="item">
 | 
								<div class="item">
 | 
				
			||||||
				<h3>{{.i18n.Tr "org.team_access_desc"}}</h3>
 | 
									<h3>{{.locale.Tr "org.team_access_desc"}}</h3>
 | 
				
			||||||
				<ul>
 | 
									<ul>
 | 
				
			||||||
					{{if .Team.IncludesAllRepositories}}
 | 
										{{if .Team.IncludesAllRepositories}}
 | 
				
			||||||
						<li>{{.i18n.Tr "org.teams.all_repositories" | Str2html}}
 | 
											<li>{{.locale.Tr "org.teams.all_repositories" | Str2html}}
 | 
				
			||||||
					{{else}}
 | 
										{{else}}
 | 
				
			||||||
						<li>{{.i18n.Tr "org.teams.specific_repositories" | Str2html}}
 | 
											<li>{{.locale.Tr "org.teams.specific_repositories" | Str2html}}
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
					{{if .Team.CanCreateOrgRepo}}
 | 
										{{if .Team.CanCreateOrgRepo}}
 | 
				
			||||||
						<li>{{.i18n.Tr "org.teams.can_create_org_repo"}}
 | 
											<li>{{.locale.Tr "org.teams.can_create_org_repo"}}
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</ul>
 | 
									</ul>
 | 
				
			||||||
				{{if (eq .Team.AccessMode 2)}}
 | 
									{{if (eq .Team.AccessMode 2)}}
 | 
				
			||||||
					<h3>{{.i18n.Tr "org.settings.permission"}}</h3>
 | 
										<h3>{{.locale.Tr "org.settings.permission"}}</h3>
 | 
				
			||||||
					{{.i18n.Tr "org.teams.write_permission_desc" | Str2html}}
 | 
										{{.locale.Tr "org.teams.write_permission_desc" | Str2html}}
 | 
				
			||||||
				{{else if (eq .Team.AccessMode 3)}}
 | 
									{{else if (eq .Team.AccessMode 3)}}
 | 
				
			||||||
					<h3>{{.i18n.Tr "org.settings.permission"}}</h3>
 | 
										<h3>{{.locale.Tr "org.settings.permission"}}</h3>
 | 
				
			||||||
					{{.i18n.Tr "org.teams.admin_permission_desc" | Str2html}}
 | 
										{{.locale.Tr "org.teams.admin_permission_desc" | Str2html}}
 | 
				
			||||||
				{{else}}
 | 
									{{else}}
 | 
				
			||||||
					<table class="ui table">
 | 
										<table class="ui table">
 | 
				
			||||||
						<thead>
 | 
											<thead>
 | 
				
			||||||
							<tr>
 | 
												<tr>
 | 
				
			||||||
								<th>{{.i18n.Tr "units.unit"}}</th>
 | 
													<th>{{.locale.Tr "units.unit"}}</th>
 | 
				
			||||||
								<th>{{.i18n.Tr "org.team_permission_desc"}}</th>
 | 
													<th>{{.locale.Tr "org.team_permission_desc"}}</th>
 | 
				
			||||||
							</tr>
 | 
												</tr>
 | 
				
			||||||
						</thead>
 | 
											</thead>
 | 
				
			||||||
						<tbody>
 | 
											<tbody>
 | 
				
			||||||
							{{range $t, $unit := $.Units}}
 | 
												{{range $t, $unit := $.Units}}
 | 
				
			||||||
								{{if and (lt $unit.MaxPerm 2) (not $unit.Type.UnitGlobalDisabled)}}
 | 
													{{if and (lt $unit.MaxPerm 2) (not $unit.Type.UnitGlobalDisabled)}}
 | 
				
			||||||
									<tr>
 | 
														<tr>
 | 
				
			||||||
										<td><strong>{{$.i18n.Tr $unit.NameKey}}</strong></td>
 | 
															<td><strong>{{$.locale.Tr $unit.NameKey}}</strong></td>
 | 
				
			||||||
										<td>{{if eq ($.Team.UnitAccessMode $unit.Type) 0 -}}
 | 
															<td>{{if eq ($.Team.UnitAccessMode $unit.Type) 0 -}}
 | 
				
			||||||
										{{$.i18n.Tr "org.teams.none_access"}}
 | 
															{{$.locale.Tr "org.teams.none_access"}}
 | 
				
			||||||
										{{- else if or (eq $.Team.ID 0) (eq ($.Team.UnitAccessMode $unit.Type) 1) -}}
 | 
															{{- else if or (eq $.Team.ID 0) (eq ($.Team.UnitAccessMode $unit.Type) 1) -}}
 | 
				
			||||||
										{{$.i18n.Tr "org.teams.read_access"}}
 | 
															{{$.locale.Tr "org.teams.read_access"}}
 | 
				
			||||||
										{{- else if eq ($.Team.UnitAccessMode $unit.Type) 2 -}}
 | 
															{{- else if eq ($.Team.UnitAccessMode $unit.Type) 2 -}}
 | 
				
			||||||
										{{$.i18n.Tr "org.teams.write_access"}}
 | 
															{{$.locale.Tr "org.teams.write_access"}}
 | 
				
			||||||
										{{- end}}</td>
 | 
															{{- end}}</td>
 | 
				
			||||||
									</tr>
 | 
														</tr>
 | 
				
			||||||
								{{end}}
 | 
													{{end}}
 | 
				
			||||||
@@ -79,17 +79,17 @@
 | 
				
			|||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{if .IsOrganizationOwner}}
 | 
						{{if .IsOrganizationOwner}}
 | 
				
			||||||
		<div class="ui bottom attached segment">
 | 
							<div class="ui bottom attached segment">
 | 
				
			||||||
			<a class="ui teal small button" href="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/edit">{{svg "octicon-gear"}} {{$.i18n.Tr "org.teams.settings"}}</a>
 | 
								<a class="ui teal small button" href="{{.OrgLink}}/teams/{{.Team.LowerName | PathEscape}}/edit">{{svg "octicon-gear"}} {{$.locale.Tr "org.teams.settings"}}</a>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
<div class="ui small basic delete modal" id="leave-team-sidebar">
 | 
					<div class="ui small basic delete modal" id="leave-team-sidebar">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-x" 16 "close inside"}}
 | 
							{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
		{{$.i18n.Tr "org.teams.leave"}}
 | 
							{{$.locale.Tr "org.teams.leave"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{$.i18n.Tr "org.teams.leave.detail" `<span class="name"></span>` | Safe}}</p>
 | 
							<p>{{$.locale.Tr "org.teams.leave.detail" `<span class="name"></span>` | Safe}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,7 @@
 | 
				
			|||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		{{if .IsOrganizationOwner}}
 | 
							{{if .IsOrganizationOwner}}
 | 
				
			||||||
			<div class="text right">
 | 
								<div class="text right">
 | 
				
			||||||
				<a class="ui green button" href="{{.OrgLink}}/teams/new">{{svg "octicon-plus"}} {{.i18n.Tr "org.create_new_team"}}</a>
 | 
									<a class="ui green button" href="{{.OrgLink}}/teams/new">{{svg "octicon-plus"}} {{.locale.Tr "org.create_new_team"}}</a>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="ui divider"></div>
 | 
								<div class="ui divider"></div>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
@@ -20,12 +20,12 @@
 | 
				
			|||||||
								<form>
 | 
													<form>
 | 
				
			||||||
									<button class="ui red tiny button delete-button" data-modal-id="leave-team"
 | 
														<button class="ui red tiny button delete-button" data-modal-id="leave-team"
 | 
				
			||||||
										data-url="{{$.OrgLink}}/teams/{{.LowerName | PathEscape}}/action/leave" data-datauid="{{$.SignedUser.ID}}"
 | 
															data-url="{{$.OrgLink}}/teams/{{.LowerName | PathEscape}}/action/leave" data-datauid="{{$.SignedUser.ID}}"
 | 
				
			||||||
										data-name="{{.Name}}">{{$.i18n.Tr "org.teams.leave"}}</button>
 | 
															data-name="{{.Name}}">{{$.locale.Tr "org.teams.leave"}}</button>
 | 
				
			||||||
								</form>
 | 
													</form>
 | 
				
			||||||
							{{else if $.IsOrganizationOwner}}
 | 
												{{else if $.IsOrganizationOwner}}
 | 
				
			||||||
								<form method="post" action="{{$.OrgLink}}/teams/{{.LowerName | PathEscape}}/action/join">
 | 
													<form method="post" action="{{$.OrgLink}}/teams/{{.LowerName | PathEscape}}/action/join">
 | 
				
			||||||
									{{$.CsrfTokenHtml}}
 | 
														{{$.CsrfTokenHtml}}
 | 
				
			||||||
									<button type="submit" class="ui primary small button" name="uid" value="{{$.SignedUser.ID}}">{{$.i18n.Tr "org.teams.join"}}</button>
 | 
														<button type="submit" class="ui primary small button" name="uid" value="{{$.SignedUser.ID}}">{{$.locale.Tr "org.teams.join"}}</button>
 | 
				
			||||||
								</form>
 | 
													</form>
 | 
				
			||||||
							{{end}}
 | 
												{{end}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
@@ -38,7 +38,7 @@
 | 
				
			|||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="ui bottom attached header">
 | 
										<div class="ui bottom attached header">
 | 
				
			||||||
						<p class="team-meta">{{.NumMembers}} {{$.i18n.Tr "org.lower_members"}} · {{.NumRepos}} {{$.i18n.Tr "org.lower_repositories"}}</p>
 | 
											<p class="team-meta">{{.NumMembers}} {{$.locale.Tr "org.lower_members"}} · {{.NumRepos}} {{$.locale.Tr "org.lower_repositories"}}</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
@@ -48,10 +48,10 @@
 | 
				
			|||||||
<div class="ui small basic delete modal" id="leave-team">
 | 
					<div class="ui small basic delete modal" id="leave-team">
 | 
				
			||||||
	<div class="ui icon header">
 | 
						<div class="ui icon header">
 | 
				
			||||||
		{{svg "octicon-x" 16 "close inside"}}
 | 
							{{svg "octicon-x" 16 "close inside"}}
 | 
				
			||||||
		{{$.i18n.Tr "org.teams.leave"}}
 | 
							{{$.locale.Tr "org.teams.leave"}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="content">
 | 
						<div class="content">
 | 
				
			||||||
		<p>{{$.i18n.Tr "org.teams.leave.detail" `<span class="name"></span>` | Safe}}</p>
 | 
							<p>{{$.locale.Tr "org.teams.leave.detail" `<span class="name"></span>` | Safe}}</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{template "base/delete_modal_actions" .}}
 | 
						{{template "base/delete_modal_actions" .}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "composer"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "composer"}}
 | 
				
			||||||
	<h4 class="ui top attached header">{{.i18n.Tr "packages.installation"}}</h4>
 | 
						<h4 class="ui top attached header">{{.locale.Tr "packages.installation"}}</h4>
 | 
				
			||||||
	<div class="ui attached segment">
 | 
						<div class="ui attached segment">
 | 
				
			||||||
		<div class="ui form">
 | 
							<div class="ui form">
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-code"}} {{.i18n.Tr "packages.composer.registry" | Safe}}</label>
 | 
									<label>{{svg "octicon-code"}} {{.locale.Tr "packages.composer.registry" | Safe}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>{
 | 
									<div class="markup"><pre class="code-block"><code>{
 | 
				
			||||||
	"repositories": [{
 | 
						"repositories": [{
 | 
				
			||||||
			"type": "composer",
 | 
								"type": "composer",
 | 
				
			||||||
@@ -13,34 +13,34 @@
 | 
				
			|||||||
}</code></pre></div>
 | 
					}</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.composer.install"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.composer.install"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>composer require {{.PackageDescriptor.Package.Name}}:{{.PackageDescriptor.Version.Version}}</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>composer require {{.PackageDescriptor.Package.Name}}:{{.PackageDescriptor.Version.Version}}</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{.i18n.Tr "packages.composer.documentation" | Safe}}</label>
 | 
									<label>{{.locale.Tr "packages.composer.documentation" | Safe}}</label>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Description}}
 | 
						{{if .PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.about"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.about"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{.PackageDescriptor.Metadata.Description}}
 | 
								{{.PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if or .PackageDescriptor.Metadata.Require .PackageDescriptor.Metadata.RequireDev}}
 | 
						{{if or .PackageDescriptor.Metadata.Require .PackageDescriptor.Metadata.RequireDev}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.dependencies"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.dependencies"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<div class="ui list">
 | 
								<div class="ui list">
 | 
				
			||||||
				{{template "package/content/composer_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.Require "title" (.i18n.Tr "packages.composer.dependencies")}}
 | 
									{{template "package/content/composer_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.Require "title" (.locale.Tr "packages.composer.dependencies")}}
 | 
				
			||||||
				{{template "package/content/composer_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.RequireDev "title" (.i18n.Tr "packages.composer.dependencies.development")}}
 | 
									{{template "package/content/composer_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.RequireDev "title" (.locale.Tr "packages.composer.dependencies.development")}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if or .PackageDescriptor.Metadata.Keywords}}
 | 
						{{if or .PackageDescriptor.Metadata.Keywords}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.keywords"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.keywords"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{range .PackageDescriptor.Metadata.Keywords}}
 | 
								{{range .PackageDescriptor.Metadata.Keywords}}
 | 
				
			||||||
				{{.}}
 | 
									{{.}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,8 +3,8 @@
 | 
				
			|||||||
<table class="ui single line very basic table">
 | 
					<table class="ui single line very basic table">
 | 
				
			||||||
	<thead>
 | 
						<thead>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<th class="eleven wide">{{.root.i18n.Tr "packages.dependency.id"}}</th>
 | 
								<th class="eleven wide">{{.root.locale.Tr "packages.dependency.id"}}</th>
 | 
				
			||||||
			<th class="five wide">{{.root.i18n.Tr "packages.dependency.version"}}</th>
 | 
								<th class="five wide">{{.root.locale.Tr "packages.dependency.version"}}</th>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</thead>
 | 
						</thead>
 | 
				
			||||||
	<tbody>
 | 
						<tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,30 +1,30 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "conan"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "conan"}}
 | 
				
			||||||
	<h4 class="ui top attached header">{{.i18n.Tr "packages.installation"}}</h4>
 | 
						<h4 class="ui top attached header">{{.locale.Tr "packages.installation"}}</h4>
 | 
				
			||||||
	<div class="ui attached segment">
 | 
						<div class="ui attached segment">
 | 
				
			||||||
		<div class="ui form">
 | 
							<div class="ui form">
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.conan.registry"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.conan.registry"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>conan remote add gitea {{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/conan</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>conan remote add gitea {{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/conan</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.conan.install"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.conan.install"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>conan install --remote=gitea {{.PackageDescriptor.Package.Name}}/{{.PackageDescriptor.Version.Version}}</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>conan install --remote=gitea {{.PackageDescriptor.Package.Name}}/{{.PackageDescriptor.Version.Version}}</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{.i18n.Tr "packages.conan.documentation" | Safe}}</label>
 | 
									<label>{{.locale.Tr "packages.conan.documentation" | Safe}}</label>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Description}}
 | 
						{{if .PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.about"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.about"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{if .PackageDescriptor.Metadata.Description}}{{.PackageDescriptor.Metadata.Description}}{{end}}
 | 
								{{if .PackageDescriptor.Metadata.Description}}{{.PackageDescriptor.Metadata.Description}}{{end}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if or .PackageDescriptor.Metadata.Keywords}}
 | 
						{{if or .PackageDescriptor.Metadata.Keywords}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.keywords"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.keywords"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{range .PackageDescriptor.Metadata.Keywords}}
 | 
								{{range .PackageDescriptor.Metadata.Keywords}}
 | 
				
			||||||
				{{.}}
 | 
									{{.}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "container"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "container"}}
 | 
				
			||||||
	<h4 class="ui top attached header">{{.i18n.Tr "packages.installation"}}</h4>
 | 
						<h4 class="ui top attached header">{{.locale.Tr "packages.installation"}}</h4>
 | 
				
			||||||
	<div class="ui attached segment">
 | 
						<div class="ui attached segment">
 | 
				
			||||||
		<div class="ui form">
 | 
							<div class="ui form">
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.container.pull"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.container.pull"}}</label>
 | 
				
			||||||
				{{if eq .PackageDescriptor.Metadata.Type "helm"}}
 | 
									{{if eq .PackageDescriptor.Metadata.Type "helm"}}
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>helm pull oci://{{.RegistryHost}}/{{.PackageDescriptor.Owner.LowerName}}/{{.PackageDescriptor.Package.LowerName}} --version {{.PackageDescriptor.Version.LowerVersion}}</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>helm pull oci://{{.RegistryHost}}/{{.PackageDescriptor.Owner.LowerName}}/{{.PackageDescriptor.Package.LowerName}} --version {{.PackageDescriptor.Version.LowerVersion}}</code></pre></div>
 | 
				
			||||||
				{{else}}
 | 
									{{else}}
 | 
				
			||||||
@@ -15,12 +15,12 @@
 | 
				
			|||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{.i18n.Tr "packages.container.documentation" | Safe}}</label>
 | 
									<label>{{.locale.Tr "packages.container.documentation" | Safe}}</label>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.MultiArch}}
 | 
						{{if .PackageDescriptor.Metadata.MultiArch}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.container.multi_arch"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.container.multi_arch"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<div class="ui form">
 | 
								<div class="ui form">
 | 
				
			||||||
			{{range $arch, $digest := .PackageDescriptor.Metadata.MultiArch}}
 | 
								{{range $arch, $digest := .PackageDescriptor.Metadata.MultiArch}}
 | 
				
			||||||
@@ -35,13 +35,13 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Description}}
 | 
						{{if .PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.about"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.about"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{.PackageDescriptor.Metadata.Description}}
 | 
								{{.PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.ImageLayers}}
 | 
						{{if .PackageDescriptor.Metadata.ImageLayers}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.container.layers"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.container.layers"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<table id="notice-table" class="ui very basic compact table">
 | 
								<table id="notice-table" class="ui very basic compact table">
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
@@ -55,13 +55,13 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Labels}}
 | 
						{{if .PackageDescriptor.Metadata.Labels}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.container.labels"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.container.labels"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<table id="notice-table" class="ui very basic compact table">
 | 
								<table id="notice-table" class="ui very basic compact table">
 | 
				
			||||||
				<thead>
 | 
									<thead>
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th>{{.i18n.Tr "packages.container.labels.key"}}</th>
 | 
											<th>{{.locale.Tr "packages.container.labels.key"}}</th>
 | 
				
			||||||
						<th>{{.i18n.Tr "packages.container.labels.value"}}</th>
 | 
											<th>{{.locale.Tr "packages.container.labels.value"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,13 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "generic"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "generic"}}
 | 
				
			||||||
	<h4 class="ui top attached header">{{.i18n.Tr "packages.installation"}}</h4>
 | 
						<h4 class="ui top attached header">{{.locale.Tr "packages.installation"}}</h4>
 | 
				
			||||||
	<div class="ui attached segment">
 | 
						<div class="ui attached segment">
 | 
				
			||||||
		<div class="ui form">
 | 
							<div class="ui form">
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.generic.download"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.generic.download"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>curl {{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/generic/{{.PackageDescriptor.Package.Name}}/{{.PackageDescriptor.Version.Version}}/{{(index .PackageDescriptor.Files 0).File.Name}}</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>curl {{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/generic/{{.PackageDescriptor.Package.Name}}/{{.PackageDescriptor.Version.Version}}/{{(index .PackageDescriptor.Files 0).File.Name}}</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{.i18n.Tr "packages.generic.documentation" | Safe}}</label>
 | 
									<label>{{.locale.Tr "packages.generic.documentation" | Safe}}</label>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,37 +1,37 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "helm"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "helm"}}
 | 
				
			||||||
	<h4 class="ui top attached header">{{.i18n.Tr "packages.installation"}}</h4>
 | 
						<h4 class="ui top attached header">{{.locale.Tr "packages.installation"}}</h4>
 | 
				
			||||||
	<div class="ui attached segment">
 | 
						<div class="ui attached segment">
 | 
				
			||||||
		<div class="ui form">
 | 
							<div class="ui form">
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.helm.registry"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.helm.registry"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>helm repo add gitea {{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/helm
 | 
									<div class="markup"><pre class="code-block"><code>helm repo add gitea {{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/helm
 | 
				
			||||||
helm repo update</code></pre></div>
 | 
					helm repo update</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.helm.install"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.helm.install"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>helm install {{.PackageDescriptor.Package.Name}} gitea/{{.PackageDescriptor.Package.Name}}</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>helm install {{.PackageDescriptor.Package.Name}} gitea/{{.PackageDescriptor.Package.Name}}</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{.i18n.Tr "packages.helm.documentation" | Safe}}</label>
 | 
									<label>{{.locale.Tr "packages.helm.documentation" | Safe}}</label>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Description}}
 | 
						{{if .PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.about"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.about"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{.PackageDescriptor.Metadata.Description}}
 | 
								{{.PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Dependencies}}
 | 
						{{if .PackageDescriptor.Metadata.Dependencies}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.dependencies"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.dependencies"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<table class="ui single line very basic table">
 | 
								<table class="ui single line very basic table">
 | 
				
			||||||
				<thead>
 | 
									<thead>
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th class="ten wide">{{.i18n.Tr "packages.dependency.id"}}</th>
 | 
											<th class="ten wide">{{.locale.Tr "packages.dependency.id"}}</th>
 | 
				
			||||||
						<th class="six wide">{{.i18n.Tr "packages.dependency.version"}}</th>
 | 
											<th class="six wide">{{.locale.Tr "packages.dependency.version"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
@@ -47,7 +47,7 @@ helm repo update</code></pre></div>
 | 
				
			|||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Keywords}}
 | 
						{{if .PackageDescriptor.Metadata.Keywords}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.keywords"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.keywords"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{range .PackageDescriptor.Metadata.Keywords}}
 | 
								{{range .PackageDescriptor.Metadata.Keywords}}
 | 
				
			||||||
				{{.}}
 | 
									{{.}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "maven"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "maven"}}
 | 
				
			||||||
	<h4 class="ui top attached header">{{.i18n.Tr "packages.installation"}}</h4>
 | 
						<h4 class="ui top attached header">{{.locale.Tr "packages.installation"}}</h4>
 | 
				
			||||||
	<div class="ui attached segment">
 | 
						<div class="ui attached segment">
 | 
				
			||||||
		<div class="ui form">
 | 
							<div class="ui form">
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-code"}} {{.i18n.Tr "packages.maven.registry" | Safe}}</label>
 | 
									<label>{{svg "octicon-code"}} {{.locale.Tr "packages.maven.registry" | Safe}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code><repositories>
 | 
									<div class="markup"><pre class="code-block"><code><repositories>
 | 
				
			||||||
	<repository>
 | 
						<repository>
 | 
				
			||||||
		<id>gitea</id>
 | 
							<id>gitea</id>
 | 
				
			||||||
@@ -24,7 +24,7 @@
 | 
				
			|||||||
</distributionManagement></code></pre></div>
 | 
					</distributionManagement></code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-code"}} {{.i18n.Tr "packages.maven.install" | Safe}}</label>
 | 
									<label>{{svg "octicon-code"}} {{.locale.Tr "packages.maven.install" | Safe}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code><dependency>
 | 
									<div class="markup"><pre class="code-block"><code><dependency>
 | 
				
			||||||
	<groupId>{{.PackageDescriptor.Metadata.GroupID}}</groupId>
 | 
						<groupId>{{.PackageDescriptor.Metadata.GroupID}}</groupId>
 | 
				
			||||||
	<artifactId>{{.PackageDescriptor.Metadata.ArtifactID}}</artifactId>
 | 
						<artifactId>{{.PackageDescriptor.Metadata.ArtifactID}}</artifactId>
 | 
				
			||||||
@@ -32,28 +32,28 @@
 | 
				
			|||||||
</dependency></code></pre></div>
 | 
					</dependency></code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.maven.install2"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.maven.install2"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>mvn install</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>mvn install</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.maven.download"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.maven.download"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>mvn dependency:get -DremoteRepositories={{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/maven -Dartifact={{.PackageDescriptor.Metadata.GroupID}}:{{.PackageDescriptor.Metadata.ArtifactID}}:{{.PackageDescriptor.Version.Version}}</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>mvn dependency:get -DremoteRepositories={{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/maven -Dartifact={{.PackageDescriptor.Metadata.GroupID}}:{{.PackageDescriptor.Metadata.ArtifactID}}:{{.PackageDescriptor.Version.Version}}</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{.i18n.Tr "packages.maven.documentation" | Safe}}</label>
 | 
									<label>{{.locale.Tr "packages.maven.documentation" | Safe}}</label>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Description}}
 | 
						{{if .PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.about"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.about"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{.PackageDescriptor.Metadata.Description}}
 | 
								{{.PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Dependencies}}
 | 
						{{if .PackageDescriptor.Metadata.Dependencies}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.dependencies"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.dependencies"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<div class="ui list">
 | 
								<div class="ui list">
 | 
				
			||||||
				{{range .PackageDescriptor.Metadata.Dependencies}}
 | 
									{{range .PackageDescriptor.Metadata.Dependencies}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,27 +1,27 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "npm"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "npm"}}
 | 
				
			||||||
	<h4 class="ui top attached header">{{.i18n.Tr "packages.installation"}}</h4>
 | 
						<h4 class="ui top attached header">{{.locale.Tr "packages.installation"}}</h4>
 | 
				
			||||||
	<div class="ui attached segment">
 | 
						<div class="ui attached segment">
 | 
				
			||||||
		<div class="ui form">
 | 
							<div class="ui form">
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-code"}} {{.i18n.Tr "packages.npm.registry" | Safe}}</label>
 | 
									<label>{{svg "octicon-code"}} {{.locale.Tr "packages.npm.registry" | Safe}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>{{if .PackageDescriptor.Metadata.Scope}}{{.PackageDescriptor.Metadata.Scope}}:{{end}}registry={{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/npm/</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>{{if .PackageDescriptor.Metadata.Scope}}{{.PackageDescriptor.Metadata.Scope}}:{{end}}registry={{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/npm/</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.npm.install"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.npm.install"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>npm install {{.PackageDescriptor.Package.Name}}@{{.PackageDescriptor.Version.Version}}</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>npm install {{.PackageDescriptor.Package.Name}}@{{.PackageDescriptor.Version.Version}}</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-code"}} {{.i18n.Tr "packages.npm.install2"}}</label>
 | 
									<label>{{svg "octicon-code"}} {{.locale.Tr "packages.npm.install2"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>"{{.PackageDescriptor.Package.Name}}": "{{.PackageDescriptor.Version.Version}}"</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>"{{.PackageDescriptor.Package.Name}}": "{{.PackageDescriptor.Version.Version}}"</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{.i18n.Tr "packages.npm.documentation" | Safe}}</label>
 | 
									<label>{{.locale.Tr "packages.npm.documentation" | Safe}}</label>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if or .PackageDescriptor.Metadata.Description .PackageDescriptor.Metadata.Readme}}
 | 
						{{if or .PackageDescriptor.Metadata.Description .PackageDescriptor.Metadata.Readme}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.about"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.about"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{if .PackageDescriptor.Metadata.Readme}}
 | 
								{{if .PackageDescriptor.Metadata.Readme}}
 | 
				
			||||||
			<div class="markup markdown">
 | 
								<div class="markup markdown">
 | 
				
			||||||
@@ -34,19 +34,19 @@
 | 
				
			|||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if or .PackageDescriptor.Metadata.Dependencies .PackageDescriptor.Metadata.DevelopmentDependencies .PackageDescriptor.Metadata.PeerDependencies .PackageDescriptor.Metadata.OptionalDependencies}}
 | 
						{{if or .PackageDescriptor.Metadata.Dependencies .PackageDescriptor.Metadata.DevelopmentDependencies .PackageDescriptor.Metadata.PeerDependencies .PackageDescriptor.Metadata.OptionalDependencies}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.dependencies"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.dependencies"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<div class="ui list">
 | 
								<div class="ui list">
 | 
				
			||||||
				{{template "package/content/npm_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.Dependencies "title" (.i18n.Tr "packages.npm.dependencies")}}
 | 
									{{template "package/content/npm_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.Dependencies "title" (.locale.Tr "packages.npm.dependencies")}}
 | 
				
			||||||
				{{template "package/content/npm_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.DevelopmentDependencies "title" (.i18n.Tr "packages.npm.dependencies.development")}}
 | 
									{{template "package/content/npm_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.DevelopmentDependencies "title" (.locale.Tr "packages.npm.dependencies.development")}}
 | 
				
			||||||
				{{template "package/content/npm_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.PeerDependencies "title" (.i18n.Tr "packages.npm.dependencies.peer")}}
 | 
									{{template "package/content/npm_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.PeerDependencies "title" (.locale.Tr "packages.npm.dependencies.peer")}}
 | 
				
			||||||
				{{template "package/content/npm_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.OptionalDependencies "title" (.i18n.Tr "packages.npm.dependencies.optional")}}
 | 
									{{template "package/content/npm_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.OptionalDependencies "title" (.locale.Tr "packages.npm.dependencies.optional")}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Keywords}}
 | 
						{{if .PackageDescriptor.Metadata.Keywords}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.keywords"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.keywords"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{range .PackageDescriptor.Metadata.Keywords}}
 | 
								{{range .PackageDescriptor.Metadata.Keywords}}
 | 
				
			||||||
				{{.}}
 | 
									{{.}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,8 +3,8 @@
 | 
				
			|||||||
<table class="ui single line very basic table">
 | 
					<table class="ui single line very basic table">
 | 
				
			||||||
	<thead>
 | 
						<thead>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<th class="eleven wide">{{.root.i18n.Tr "packages.dependency.id"}}</th>
 | 
								<th class="eleven wide">{{.root.locale.Tr "packages.dependency.id"}}</th>
 | 
				
			||||||
			<th class="five wide">{{.root.i18n.Tr "packages.dependency.version"}}</th>
 | 
								<th class="five wide">{{.root.locale.Tr "packages.dependency.version"}}</th>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</thead>
 | 
						</thead>
 | 
				
			||||||
	<tbody>
 | 
						<tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,23 +1,23 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "nuget"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "nuget"}}
 | 
				
			||||||
	<h4 class="ui top attached header">{{.i18n.Tr "packages.installation"}}</h4>
 | 
						<h4 class="ui top attached header">{{.locale.Tr "packages.installation"}}</h4>
 | 
				
			||||||
	<div class="ui attached segment">
 | 
						<div class="ui attached segment">
 | 
				
			||||||
		<div class="ui form">
 | 
							<div class="ui form">
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.nuget.registry"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.nuget.registry"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>dotnet nuget add source --name Gitea --username your_username --password your_token {{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/nuget/index.json</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>dotnet nuget add source --name Gitea --username your_username --password your_token {{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/nuget/index.json</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.nuget.install"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.nuget.install"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>dotnet add package --source Gitea --version {{.PackageDescriptor.Version.Version}} {{.PackageDescriptor.Package.Name}}</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>dotnet add package --source Gitea --version {{.PackageDescriptor.Version.Version}} {{.PackageDescriptor.Package.Name}}</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{.i18n.Tr "packages.nuget.documentation" | Safe}}</label>
 | 
									<label>{{.locale.Tr "packages.nuget.documentation" | Safe}}</label>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if or .PackageDescriptor.Metadata.Description .PackageDescriptor.Metadata.ReleaseNotes}}
 | 
						{{if or .PackageDescriptor.Metadata.Description .PackageDescriptor.Metadata.ReleaseNotes}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.about"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.about"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{if .PackageDescriptor.Metadata.Description}}{{.PackageDescriptor.Metadata.Description}}{{end}}
 | 
								{{if .PackageDescriptor.Metadata.Description}}{{.PackageDescriptor.Metadata.Description}}{{end}}
 | 
				
			||||||
			{{if .PackageDescriptor.Metadata.ReleaseNotes}}{{Str2html .PackageDescriptor.Metadata.ReleaseNotes}}{{end}}
 | 
								{{if .PackageDescriptor.Metadata.ReleaseNotes}}{{Str2html .PackageDescriptor.Metadata.ReleaseNotes}}{{end}}
 | 
				
			||||||
@@ -25,14 +25,14 @@
 | 
				
			|||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Dependencies}}
 | 
						{{if .PackageDescriptor.Metadata.Dependencies}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.dependencies"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.dependencies"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<table class="ui single line very basic table">
 | 
								<table class="ui single line very basic table">
 | 
				
			||||||
				<thead>
 | 
									<thead>
 | 
				
			||||||
					<tr>
 | 
										<tr>
 | 
				
			||||||
						<th class="ten wide">{{.i18n.Tr "packages.dependency.id"}}</th>
 | 
											<th class="ten wide">{{.locale.Tr "packages.dependency.id"}}</th>
 | 
				
			||||||
						<th class="three wide">{{.i18n.Tr "packages.dependency.version"}}</th>
 | 
											<th class="three wide">{{.locale.Tr "packages.dependency.version"}}</th>
 | 
				
			||||||
						<th class="three wide">{{.i18n.Tr "packages.nuget.dependency.framework"}}</th>
 | 
											<th class="three wide">{{.locale.Tr "packages.nuget.dependency.framework"}}</th>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				</thead>
 | 
									</thead>
 | 
				
			||||||
				<tbody>
 | 
									<tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,18 +1,18 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "pypi"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "pypi"}}
 | 
				
			||||||
	<h4 class="ui top attached header">{{.i18n.Tr "packages.installation"}}</h4>
 | 
						<h4 class="ui top attached header">{{.locale.Tr "packages.installation"}}</h4>
 | 
				
			||||||
	<div class="ui attached segment">
 | 
						<div class="ui attached segment">
 | 
				
			||||||
		<div class="ui form">
 | 
							<div class="ui form">
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.pypi.install"}}</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.pypi.install"}}</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>pip install --extra-index-url {{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/pypi/simple {{.PackageDescriptor.Package.Name}}</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>pip install --extra-index-url {{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/pypi/simple {{.PackageDescriptor.Package.Name}}</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{.i18n.Tr "packages.pypi.documentation" | Safe}}</label>
 | 
									<label>{{.locale.Tr "packages.pypi.documentation" | Safe}}</label>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{if or .PackageDescriptor.Metadata.Description .PackageDescriptor.Metadata.LongDescription .PackageDescriptor.Metadata.Summary}}
 | 
						{{if or .PackageDescriptor.Metadata.Description .PackageDescriptor.Metadata.LongDescription .PackageDescriptor.Metadata.Summary}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.about"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.about"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<p>{{if .PackageDescriptor.Metadata.Summary}}{{.PackageDescriptor.Metadata.Summary}}{{end}}</p>
 | 
								<p>{{if .PackageDescriptor.Metadata.Summary}}{{.PackageDescriptor.Metadata.Summary}}{{end}}</p>
 | 
				
			||||||
			{{if .PackageDescriptor.Metadata.LongDescription}}
 | 
								{{if .PackageDescriptor.Metadata.LongDescription}}
 | 
				
			||||||
@@ -23,9 +23,9 @@
 | 
				
			|||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.RequiresPython}}
 | 
						{{if .PackageDescriptor.Metadata.RequiresPython}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.requirements"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.requirements"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{.i18n.Tr "packages.pypi.requires"}}: {{.PackageDescriptor.Metadata.RequiresPython}}
 | 
								{{.locale.Tr "packages.pypi.requires"}}: {{.PackageDescriptor.Metadata.RequiresPython}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,39 +1,39 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "rubygems"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "rubygems"}}
 | 
				
			||||||
	<h4 class="ui top attached header">{{.i18n.Tr "packages.installation"}}</h4>
 | 
						<h4 class="ui top attached header">{{.locale.Tr "packages.installation"}}</h4>
 | 
				
			||||||
	<div class="ui attached segment">
 | 
						<div class="ui attached segment">
 | 
				
			||||||
		<div class="ui form">
 | 
							<div class="ui form">
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-terminal"}} {{.i18n.Tr "packages.rubygems.install" | Safe}}:</label>
 | 
									<label>{{svg "octicon-terminal"}} {{.locale.Tr "packages.rubygems.install" | Safe}}:</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>gem install {{.PackageDescriptor.Package.Name}} --version "{{.PackageDescriptor.Version.Version}}" --source "{{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/rubygems"</code></pre></div>
 | 
									<div class="markup"><pre class="code-block"><code>gem install {{.PackageDescriptor.Package.Name}} --version "{{.PackageDescriptor.Version.Version}}" --source "{{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/rubygems"</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{svg "octicon-code"}} {{.i18n.Tr "packages.rubygems.install2"}}:</label>
 | 
									<label>{{svg "octicon-code"}} {{.locale.Tr "packages.rubygems.install2"}}:</label>
 | 
				
			||||||
				<div class="markup"><pre class="code-block"><code>source "{{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/rubygems" do
 | 
									<div class="markup"><pre class="code-block"><code>source "{{AppUrl}}api/packages/{{.PackageDescriptor.Owner.Name}}/rubygems" do
 | 
				
			||||||
	gem "{{.PackageDescriptor.Package.Name}}", "{{.PackageDescriptor.Version.Version}}"
 | 
						gem "{{.PackageDescriptor.Package.Name}}", "{{.PackageDescriptor.Version.Version}}"
 | 
				
			||||||
end</code></pre></div>
 | 
					end</code></pre></div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="field">
 | 
								<div class="field">
 | 
				
			||||||
				<label>{{.i18n.Tr "packages.rubygems.documentation" | Safe}}</label>
 | 
									<label>{{.locale.Tr "packages.rubygems.documentation" | Safe}}</label>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Description}}
 | 
						{{if .PackageDescriptor.Metadata.Description}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.about"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.about"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">{{.PackageDescriptor.Metadata.Description}}</div>
 | 
							<div class="ui attached segment">{{.PackageDescriptor.Metadata.Description}}</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
	{{if or .PackageDescriptor.Metadata.RequiredRubyVersion .PackageDescriptor.Metadata.RequiredRubygemsVersion}}
 | 
						{{if or .PackageDescriptor.Metadata.RequiredRubyVersion .PackageDescriptor.Metadata.RequiredRubygemsVersion}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.requirements"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.requirements"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			{{if .PackageDescriptor.Metadata.RequiredRubyVersion}}<p>{{.i18n.Tr "packages.rubygems.required.ruby"}}: {{range $i, $v := .PackageDescriptor.Metadata.RequiredRubyVersion}}{{if gt $i 0}}, {{end}}{{$v.Restriction}}{{$v.Version}}{{end}}</p>{{end}}
 | 
								{{if .PackageDescriptor.Metadata.RequiredRubyVersion}}<p>{{.locale.Tr "packages.rubygems.required.ruby"}}: {{range $i, $v := .PackageDescriptor.Metadata.RequiredRubyVersion}}{{if gt $i 0}}, {{end}}{{$v.Restriction}}{{$v.Version}}{{end}}</p>{{end}}
 | 
				
			||||||
			{{if .PackageDescriptor.Metadata.RequiredRubygemsVersion}}<p>{{.i18n.Tr "packages.rubygems.required.rubygems"}}: {{range $i, $v := .PackageDescriptor.Metadata.RequiredRubygemsVersion}}{{if gt $i 0}}, {{end}}{{$v.Restriction}}{{$v.Version}}{{end}}</p>{{end}}
 | 
								{{if .PackageDescriptor.Metadata.RequiredRubygemsVersion}}<p>{{.locale.Tr "packages.rubygems.required.rubygems"}}: {{range $i, $v := .PackageDescriptor.Metadata.RequiredRubygemsVersion}}{{if gt $i 0}}, {{end}}{{$v.Restriction}}{{$v.Version}}{{end}}</p>{{end}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
	{{if or .PackageDescriptor.Metadata.RuntimeDependencies .PackageDescriptor.Metadata.DevelopmentDependencies}}
 | 
						{{if or .PackageDescriptor.Metadata.RuntimeDependencies .PackageDescriptor.Metadata.DevelopmentDependencies}}
 | 
				
			||||||
		<h4 class="ui top attached header">{{.i18n.Tr "packages.dependencies"}}</h4>
 | 
							<h4 class="ui top attached header">{{.locale.Tr "packages.dependencies"}}</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<div class="ui list">
 | 
								<div class="ui list">
 | 
				
			||||||
				{{template "package/content/rubygems_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.RuntimeDependencies "title" (.i18n.Tr "packages.rubygems.dependencies.runtime")}}
 | 
									{{template "package/content/rubygems_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.RuntimeDependencies "title" (.locale.Tr "packages.rubygems.dependencies.runtime")}}
 | 
				
			||||||
				{{template "package/content/rubygems_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.DevelopmentDependencies "title" (.i18n.Tr "packages.rubygems.dependencies.development")}}
 | 
									{{template "package/content/rubygems_dependencies" dict "root" $ "dependencies" .PackageDescriptor.Metadata.DevelopmentDependencies "title" (.locale.Tr "packages.rubygems.dependencies.development")}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,8 +3,8 @@
 | 
				
			|||||||
<table class="ui single line very basic table">
 | 
					<table class="ui single line very basic table">
 | 
				
			||||||
	<thead>
 | 
						<thead>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<th class="eleven wide">{{.root.i18n.Tr "packages.dependency.id"}}</th>
 | 
								<th class="eleven wide">{{.root.locale.Tr "packages.dependency.id"}}</th>
 | 
				
			||||||
			<th class="five wide">{{.root.i18n.Tr "packages.dependency.version"}}</th>
 | 
								<th class="five wide">{{.root.locale.Tr "packages.dependency.version"}}</th>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</thead>
 | 
						</thead>
 | 
				
			||||||
	<tbody>
 | 
						<tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "composer"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "composer"}}
 | 
				
			||||||
	{{range .PackageDescriptor.Metadata.Authors}}<div class="item" title="{{$.i18n.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.Name}}</div>{{end}}
 | 
						{{range .PackageDescriptor.Metadata.Authors}}<div class="item" title="{{$.locale.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.Name}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Homepage}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.Homepage}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.Homepage}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.Homepage}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
				
			||||||
	{{range .PackageDescriptor.Metadata.License}}<div class="item" title="{{$.i18n.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.}}</div>{{end}}
 | 
						{{range .PackageDescriptor.Metadata.License}}<div class="item" title="{{$.locale.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.}}</div>{{end}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "conan"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "conan"}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Author}}<div class="item" title="{{.i18n.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Author}}</div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.Author}}<div class="item" title="{{.locale.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Author}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.License}}<div class="item" title="{{.i18n.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.PackageDescriptor.Metadata.License}}</div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.License}}<div class="item" title="{{.locale.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.PackageDescriptor.Metadata.License}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.RepositoryURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.RepositoryURL}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.conan.details.repository"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.RepositoryURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.RepositoryURL}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.conan.details.repository"}}</a></div>{{end}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "container"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "container"}}
 | 
				
			||||||
	<div class="item" title="{{.i18n.Tr "packages.container.details.type"}}">{{svg "octicon-package" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Type.Name}}</div>
 | 
						<div class="item" title="{{.locale.Tr "packages.container.details.type"}}">{{svg "octicon-package" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Type.Name}}</div>
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Platform}}<div class="item" title="{{$.i18n.Tr "packages.container.details.platform"}}">{{svg "octicon-cpu" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Platform}}</div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.Platform}}<div class="item" title="{{$.locale.Tr "packages.container.details.platform"}}">{{svg "octicon-cpu" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Platform}}</div>{{end}}
 | 
				
			||||||
	{{range .PackageDescriptor.Metadata.Authors}}<div class="item" title="{{$.i18n.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.}}</div>{{end}}
 | 
						{{range .PackageDescriptor.Metadata.Authors}}<div class="item" title="{{$.locale.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Licenses}}<div class="item">{{svg "octicon-law" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Licenses}}</div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.Licenses}}<div class="item">{{svg "octicon-law" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Licenses}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.RepositoryURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.RepositoryURL}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.container.details.repository_site"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.RepositoryURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.RepositoryURL}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.container.details.repository_site"}}</a></div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.DocumentationURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.DocumentationURL}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.container.details.documentation_site"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.DocumentationURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.DocumentationURL}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.container.details.documentation_site"}}</a></div>{{end}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "helm"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "helm"}}
 | 
				
			||||||
	{{range .PackageDescriptor.Metadata.Maintainers}}<div class="item" title="{{$.i18n.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.Name}}</div>{{end}}
 | 
						{{range .PackageDescriptor.Metadata.Maintainers}}<div class="item" title="{{$.locale.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.Name}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Home}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.Home}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.Home}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.Home}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "maven"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "maven"}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Name}}<div class="item">{{svg "octicon-note" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Name}}</div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.Name}}<div class="item">{{svg "octicon-note" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Name}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
				
			||||||
	{{range .PackageDescriptor.Metadata.Licenses}}<div class="item" title="{{$.i18n.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.}}</div>{{end}}
 | 
						{{range .PackageDescriptor.Metadata.Licenses}}<div class="item" title="{{$.locale.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.}}</div>{{end}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "npm"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "npm"}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Author}}<div class="item" title="{{.i18n.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Author}}</div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.Author}}<div class="item" title="{{.locale.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Author}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.License}}<div class="item" title="{{.i18n.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.PackageDescriptor.Metadata.License}}</div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.License}}<div class="item" title="{{.locale.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.PackageDescriptor.Metadata.License}}</div>{{end}}
 | 
				
			||||||
	{{range .PackageDescriptor.Properties}}
 | 
						{{range .PackageDescriptor.Properties}}
 | 
				
			||||||
		{{if eq .Name "npm.tag"}}<div class="item" title="{{$.i18n.Tr "packages.npm.details.tag"}}">{{svg "octicon-versions" 16 "mr-3"}} {{.Value}}</div>{{end}}
 | 
							{{if eq .Name "npm.tag"}}<div class="item" title="{{$.locale.Tr "packages.npm.details.tag"}}">{{svg "octicon-versions" 16 "mr-3"}} {{.Value}}</div>{{end}}
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "nuget"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "nuget"}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Authors}}<div class="item" title="{{.i18n.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Authors}}</div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.Authors}}<div class="item" title="{{.locale.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Authors}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "pypi"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "pypi"}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.Author}}<div class="item" title="{{.i18n.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Author}}</div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.Author}}<div class="item" title="{{.locale.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.PackageDescriptor.Metadata.Author}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.details.project_site"}}</a></div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.License}}<div class="item" title="{{.i18n.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.PackageDescriptor.Metadata.License}}</div>{{end}}
 | 
						{{if .PackageDescriptor.Metadata.License}}<div class="item" title="{{.locale.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.PackageDescriptor.Metadata.License}}</div>{{end}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
{{if eq .PackageDescriptor.Package.Type "rubygems"}}
 | 
					{{if eq .PackageDescriptor.Package.Type "rubygems"}}
 | 
				
			||||||
	{{range .PackageDescriptor.Metadata.Authors}}<div class="item" title="{{$.i18n.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.}}</div>{{end}}
 | 
						{{range .PackageDescriptor.Metadata.Authors}}<div class="item" title="{{$.locale.Tr "packages.details.author"}}">{{svg "octicon-person" 16 "mr-3"}} {{.}}</div>{{end}}
 | 
				
			||||||
	{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.i18n.Tr "packages.details.project_site"}}</a></div>	{{end}}
 | 
						{{if .PackageDescriptor.Metadata.ProjectURL}}<div class="item">{{svg "octicon-link-external" 16 "mr-3"}} <a href="{{.PackageDescriptor.Metadata.ProjectURL}}" target="_blank" rel="noopener noreferrer me">{{.locale.Tr "packages.details.project_site"}}</a></div>	{{end}}
 | 
				
			||||||
	{{range .PackageDescriptor.Metadata.Licenses}}<div class="item" title="{{$.i18n.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.}}</div>{{end}}
 | 
						{{range .PackageDescriptor.Metadata.Licenses}}<div class="item" title="{{$.locale.Tr "packages.details.license"}}">{{svg "octicon-law" 16 "mr-3"}} {{.}}</div>{{end}}
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,12 +3,12 @@
 | 
				
			|||||||
	{{template "user/overview/header" .}}
 | 
						{{template "user/overview/header" .}}
 | 
				
			||||||
	<div class="ui container">
 | 
						<div class="ui container">
 | 
				
			||||||
		{{template "base/alert" .}}
 | 
							{{template "base/alert" .}}
 | 
				
			||||||
		<p><a href="{{.PackageDescriptor.FullWebLink}}">{{.PackageDescriptor.Package.Name}} ({{.PackageDescriptor.Version.Version}})</a> / <strong>{{.i18n.Tr "repo.settings"}}</strong></p>
 | 
							<p><a href="{{.PackageDescriptor.FullWebLink}}">{{.PackageDescriptor.Package.Name}} ({{.PackageDescriptor.Version.Version}})</a> / <strong>{{.locale.Tr "repo.settings"}}</strong></p>
 | 
				
			||||||
		<h4 class="ui top attached header">
 | 
							<h4 class="ui top attached header">
 | 
				
			||||||
			{{.i18n.Tr "packages.settings.link"}}
 | 
								{{.locale.Tr "packages.settings.link"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached segment">
 | 
							<div class="ui attached segment">
 | 
				
			||||||
			<p>{{.i18n.Tr "packages.settings.link.description"}}</p>
 | 
								<p>{{.locale.Tr "packages.settings.link.description"}}</p>
 | 
				
			||||||
			<form class="ui form" action="{{.Link}}" method="post">
 | 
								<form class="ui form" action="{{.Link}}" method="post">
 | 
				
			||||||
				{{template "base/disable_form_autofill"}}
 | 
									{{template "base/disable_form_autofill"}}
 | 
				
			||||||
				{{.CsrfTokenHtml}}
 | 
									{{.CsrfTokenHtml}}
 | 
				
			||||||
@@ -21,7 +21,7 @@
 | 
				
			|||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						<input type="hidden" name="repo_id" value="{{$repoID}}">
 | 
											<input type="hidden" name="repo_id" value="{{$repoID}}">
 | 
				
			||||||
						<i class="dropdown icon"></i>
 | 
											<i class="dropdown icon"></i>
 | 
				
			||||||
						<div class="default text">{{.i18n.Tr "packages.settings.link.select"}}</div>
 | 
											<div class="default text">{{.locale.Tr "packages.settings.link.select"}}</div>
 | 
				
			||||||
						<div class="menu">
 | 
											<div class="menu">
 | 
				
			||||||
							{{range .Repos}}
 | 
												{{range .Repos}}
 | 
				
			||||||
								<div class="item" data-value="{{.ID}}">{{.Name}}</div>
 | 
													<div class="item" data-value="{{.ID}}">{{.Name}}</div>
 | 
				
			||||||
@@ -30,36 +30,36 @@
 | 
				
			|||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="field">
 | 
									<div class="field">
 | 
				
			||||||
					<button class="ui green button">{{.i18n.Tr "packages.settings.link.button"}}</button>
 | 
										<button class="ui green button">{{.locale.Tr "packages.settings.link.button"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</form>
 | 
								</form>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<h4 class="ui top attached error header">
 | 
							<h4 class="ui top attached error header">
 | 
				
			||||||
			{{.i18n.Tr "repo.settings.danger_zone"}}
 | 
								{{.locale.Tr "repo.settings.danger_zone"}}
 | 
				
			||||||
		</h4>
 | 
							</h4>
 | 
				
			||||||
		<div class="ui attached error table danger segment">
 | 
							<div class="ui attached error table danger segment">
 | 
				
			||||||
			<div class="item">
 | 
								<div class="item">
 | 
				
			||||||
				<div class="ui right">
 | 
									<div class="ui right">
 | 
				
			||||||
					<button class="ui basic red show-modal button" data-modal="#delete-package-modal">{{.i18n.Tr "packages.settings.delete"}}</button>
 | 
										<button class="ui basic red show-modal button" data-modal="#delete-package-modal">{{.locale.Tr "packages.settings.delete"}}</button>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div>
 | 
									<div>
 | 
				
			||||||
					<h5>{{.i18n.Tr "packages.settings.delete"}}</h5>
 | 
										<h5>{{.locale.Tr "packages.settings.delete"}}</h5>
 | 
				
			||||||
					<p>{{.i18n.Tr "packages.settings.delete.description"}}</p>
 | 
										<p>{{.locale.Tr "packages.settings.delete.description"}}</p>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="ui tiny modal" id="delete-package-modal">
 | 
									<div class="ui tiny modal" id="delete-package-modal">
 | 
				
			||||||
					<div class="header">
 | 
										<div class="header">
 | 
				
			||||||
						{{.i18n.Tr "packages.settings.delete"}}
 | 
											{{.locale.Tr "packages.settings.delete"}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="content">
 | 
										<div class="content">
 | 
				
			||||||
						<div class="ui warning message text left">
 | 
											<div class="ui warning message text left">
 | 
				
			||||||
							{{.i18n.Tr "packages.settings.delete.notice" .PackageDescriptor.Package.Name .PackageDescriptor.Version.Version}}
 | 
												{{.locale.Tr "packages.settings.delete.notice" .PackageDescriptor.Package.Name .PackageDescriptor.Version.Version}}
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
						<form class="ui form" action="{{.Link}}" method="post">
 | 
											<form class="ui form" action="{{.Link}}" method="post">
 | 
				
			||||||
							{{.CsrfTokenHtml}}
 | 
												{{.CsrfTokenHtml}}
 | 
				
			||||||
							<input type="hidden" name="action" value="delete">
 | 
												<input type="hidden" name="action" value="delete">
 | 
				
			||||||
							<div class="text right actions">
 | 
												<div class="text right actions">
 | 
				
			||||||
								<div class="ui cancel button">{{.i18n.Tr "cancel"}}</div>
 | 
													<div class="ui cancel button">{{.locale.Tr "cancel"}}</div>
 | 
				
			||||||
								<button class="ui red button">{{.i18n.Tr "ok"}}</button>
 | 
													<button class="ui red button">{{.locale.Tr "ok"}}</button>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</form>
 | 
											</form>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,10 +2,10 @@
 | 
				
			|||||||
	{{template "base/alert" .}}
 | 
						{{template "base/alert" .}}
 | 
				
			||||||
	<form class="ui form ignore-dirty">
 | 
						<form class="ui form ignore-dirty">
 | 
				
			||||||
		<div class="ui fluid action input">
 | 
							<div class="ui fluid action input">
 | 
				
			||||||
			<input name="q" value="{{.Query}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
								<input name="q" value="{{.Query}}" placeholder="{{.locale.Tr "explore.search"}}..." autofocus>
 | 
				
			||||||
			<select class="ui dropdown" name="type">
 | 
								<select class="ui dropdown" name="type">
 | 
				
			||||||
				<option value="">{{.i18n.Tr "packages.filter.type"}}</option>
 | 
									<option value="">{{.locale.Tr "packages.filter.type"}}</option>
 | 
				
			||||||
				<option value="all">{{.i18n.Tr "packages.filter.type.all"}}</option>
 | 
									<option value="all">{{.locale.Tr "packages.filter.type.all"}}</option>
 | 
				
			||||||
				<option value="composer" {{if eq .PackageType "composer"}}selected="selected"{{end}}>Composer</option>
 | 
									<option value="composer" {{if eq .PackageType "composer"}}selected="selected"{{end}}>Composer</option>
 | 
				
			||||||
				<option value="conan" {{if eq .PackageType "conan"}}selected="selected"{{end}}>Conan</option>
 | 
									<option value="conan" {{if eq .PackageType "conan"}}selected="selected"{{end}}>Conan</option>
 | 
				
			||||||
				<option value="container" {{if eq .PackageType "container"}}selected="selected"{{end}}>Container</option>
 | 
									<option value="container" {{if eq .PackageType "container"}}selected="selected"{{end}}>Container</option>
 | 
				
			||||||
@@ -17,7 +17,7 @@
 | 
				
			|||||||
				<option value="pypi" {{if eq .PackageType "pypi"}}selected="selected"{{end}}>PyPi</option>
 | 
									<option value="pypi" {{if eq .PackageType "pypi"}}selected="selected"{{end}}>PyPi</option>
 | 
				
			||||||
				<option value="rubygems" {{if eq .PackageType "rubygems"}}selected="selected"{{end}}>RubyGems</option>
 | 
									<option value="rubygems" {{if eq .PackageType "rubygems"}}selected="selected"{{end}}>RubyGems</option>
 | 
				
			||||||
			</select>
 | 
								</select>
 | 
				
			||||||
			<button class="ui primary button">{{.i18n.Tr "explore.search"}}</button>
 | 
								<button class="ui primary button">{{.locale.Tr "explore.search"}}</button>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</form>
 | 
						</form>
 | 
				
			||||||
	<div class="ui {{if .PackageDescriptors}}issue list{{end}}">
 | 
						<div class="ui {{if .PackageDescriptors}}issue list{{end}}">
 | 
				
			||||||
@@ -29,15 +29,15 @@
 | 
				
			|||||||
						<span class="ui label">{{svg .Package.Type.SVGName 16}} {{.Package.Type.Name}}</span>
 | 
											<span class="ui label">{{svg .Package.Type.SVGName 16}} {{.Package.Type.Name}}</span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="desc issue-item-bottom-row df ac fw my-1">
 | 
										<div class="desc issue-item-bottom-row df ac fw my-1">
 | 
				
			||||||
						{{$timeStr := TimeSinceUnix .Version.CreatedUnix $.i18n}}
 | 
											{{$timeStr := TimeSinceUnix .Version.CreatedUnix $.locale}}
 | 
				
			||||||
						{{$hasRepositoryAccess := false}}
 | 
											{{$hasRepositoryAccess := false}}
 | 
				
			||||||
						{{if .Repository}}
 | 
											{{if .Repository}}
 | 
				
			||||||
							{{$hasRepositoryAccess = index $.RepositoryAccessMap .Repository.ID}}
 | 
												{{$hasRepositoryAccess = index $.RepositoryAccessMap .Repository.ID}}
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						{{if $hasRepositoryAccess}}
 | 
											{{if $hasRepositoryAccess}}
 | 
				
			||||||
							{{$.i18n.Tr "packages.published_by_in" $timeStr .Creator.HomeLink (.Creator.GetDisplayName | Escape) .Repository.HTMLURL (.Repository.FullName | Escape) | Safe}}
 | 
												{{$.locale.Tr "packages.published_by_in" $timeStr .Creator.HomeLink (.Creator.GetDisplayName | Escape) .Repository.HTMLURL (.Repository.FullName | Escape) | Safe}}
 | 
				
			||||||
						{{else}}
 | 
											{{else}}
 | 
				
			||||||
							{{$.i18n.Tr "packages.published_by" $timeStr .Creator.HomeLink (.Creator.GetDisplayName | Escape) | Safe}}
 | 
												{{$.locale.Tr "packages.published_by" $timeStr .Creator.HomeLink (.Creator.GetDisplayName | Escape) | Safe}}
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
@@ -46,11 +46,11 @@
 | 
				
			|||||||
			{{if not .HasPackages}}
 | 
								{{if not .HasPackages}}
 | 
				
			||||||
				<div class="empty center">
 | 
									<div class="empty center">
 | 
				
			||||||
					{{svg "octicon-package" 32}}
 | 
										{{svg "octicon-package" 32}}
 | 
				
			||||||
					<h2>{{.i18n.Tr "packages.empty"}}</h2>
 | 
										<h2>{{.locale.Tr "packages.empty"}}</h2>
 | 
				
			||||||
					<p>{{.i18n.Tr "packages.empty.documentation" | Safe}}</p>
 | 
										<p>{{.locale.Tr "packages.empty.documentation" | Safe}}</p>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			{{else}}
 | 
								{{else}}
 | 
				
			||||||
				<p>{{.i18n.Tr "packages.filter.no_result"}}</p>
 | 
									<p>{{.locale.Tr "packages.filter.no_result"}}</p>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
		{{template "base/paginate" .}}
 | 
							{{template "base/paginate" .}}
 | 
				
			||||||
 
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user