{{range .OAuth2Providers}}{{if .CustomURLSettings}} | {{range .OAuth2Providers}}{{if .CustomURLSettings}} | ||||
<input id="{{.Name}}_customURLSettings" type="hidden" data-required="{{.CustomURLSettings.Required}}" data-available="true"> | <input id="{{.Name}}_customURLSettings" type="hidden" data-required="{{.CustomURLSettings.Required}}" data-available="true"> | ||||
<input id="{{.Name}}_token_url" value="{{.CustomURLSettings.TokenURL.Value}}" data-available="{{.CustomURLSettings.TokenURL.Available}}" data-required="{{.CustomURLSettings.TokenURL.Required}}" type="hidden" /> | |||||
<input id="{{.Name}}_auth_url" value="{{.CustomURLSettings.AuthURL.Value}}" data-available="{{.CustomURLSettings.AuthURL.Available}}" data-required="{{.CustomURLSettings.AuthURL.Required}}" type="hidden" /> | |||||
<input id="{{.Name}}_profile_url" value="{{.CustomURLSettings.ProfileURL.Value}}" data-available="{{.CustomURLSettings.ProfileURL.Available}}" data-required="{{.CustomURLSettings.ProfileURL.Required}}" type="hidden" /> | |||||
<input id="{{.Name}}_email_url" value="{{.CustomURLSettings.EmailURL.Value}}" data-available="{{.CustomURLSettings.EmailURL.Available}}" data-required="{{.CustomURLSettings.EmailURL.Required}}" type="hidden" /> | |||||
<input id="{{.Name}}_tenant" value="{{.CustomURLSettings.Tenant.Value}}" data-available="{{.CustomURLSettings.Tenant.Available}}" data-required="{{.CustomURLSettings.Tenant.Required}}" type="hidden" /> | |||||
<input id="{{.Name}}_token_url" value="{{.CustomURLSettings.TokenURL.Value}}" data-available="{{.CustomURLSettings.TokenURL.Available}}" data-required="{{.CustomURLSettings.TokenURL.Required}}" type="hidden"> | |||||
<input id="{{.Name}}_auth_url" value="{{.CustomURLSettings.AuthURL.Value}}" data-available="{{.CustomURLSettings.AuthURL.Available}}" data-required="{{.CustomURLSettings.AuthURL.Required}}" type="hidden"> | |||||
<input id="{{.Name}}_profile_url" value="{{.CustomURLSettings.ProfileURL.Value}}" data-available="{{.CustomURLSettings.ProfileURL.Available}}" data-required="{{.CustomURLSettings.ProfileURL.Required}}" type="hidden"> | |||||
<input id="{{.Name}}_email_url" value="{{.CustomURLSettings.EmailURL.Value}}" data-available="{{.CustomURLSettings.EmailURL.Available}}" data-required="{{.CustomURLSettings.EmailURL.Required}}" type="hidden"> | |||||
<input id="{{.Name}}_tenant" value="{{.CustomURLSettings.Tenant.Value}}" data-available="{{.CustomURLSettings.Tenant.Available}}" data-required="{{.CustomURLSettings.Tenant.Required}}" type="hidden"> | |||||
{{end}}{{end}} | {{end}}{{end}} | ||||
<div class="field"> | <div class="field"> |
<!-- PAM --> | <!-- PAM --> | ||||
<div class="pam required field {{if not (eq .type 4)}}gt-hidden{{end}}"> | <div class="pam required field {{if not (eq .type 4)}}gt-hidden{{end}}"> | ||||
<label for="pam_service_name">{{.locale.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">{{.locale.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> |
{{range .OAuth2Providers}}{{if .CustomURLSettings}} | {{range .OAuth2Providers}}{{if .CustomURLSettings}} | ||||
<input id="{{.Name}}_customURLSettings" type="hidden" data-required="{{.CustomURLSettings.Required}}" data-available="true"> | <input id="{{.Name}}_customURLSettings" type="hidden" data-required="{{.CustomURLSettings.Required}}" data-available="true"> | ||||
<input id="{{.Name}}_token_url" value="{{.CustomURLSettings.TokenURL.Value}}" data-available="{{.CustomURLSettings.TokenURL.Available}}" data-required="{{.CustomURLSettings.TokenURL.Required}}" type="hidden" /> | |||||
<input id="{{.Name}}_auth_url" value="{{.CustomURLSettings.AuthURL.Value}}" data-available="{{.CustomURLSettings.AuthURL.Available}}" data-required="{{.CustomURLSettings.AuthURL.Required}}" type="hidden" /> | |||||
<input id="{{.Name}}_profile_url" value="{{.CustomURLSettings.ProfileURL.Value}}" data-available="{{.CustomURLSettings.ProfileURL.Available}}" data-required="{{.CustomURLSettings.ProfileURL.Required}}" type="hidden" /> | |||||
<input id="{{.Name}}_email_url" value="{{.CustomURLSettings.EmailURL.Value}}" data-available="{{.CustomURLSettings.EmailURL.Available}}" data-required="{{.CustomURLSettings.EmailURL.Required}}" type="hidden" /> | |||||
<input id="{{.Name}}_tenant" value="{{.CustomURLSettings.Tenant.Value}}" data-available="{{.CustomURLSettings.Tenant.Available}}" data-required="{{.CustomURLSettings.Tenant.Required}}" type="hidden" /> | |||||
<input id="{{.Name}}_token_url" value="{{.CustomURLSettings.TokenURL.Value}}" data-available="{{.CustomURLSettings.TokenURL.Available}}" data-required="{{.CustomURLSettings.TokenURL.Required}}" type="hidden"> | |||||
<input id="{{.Name}}_auth_url" value="{{.CustomURLSettings.AuthURL.Value}}" data-available="{{.CustomURLSettings.AuthURL.Available}}" data-required="{{.CustomURLSettings.AuthURL.Required}}" type="hidden"> | |||||
<input id="{{.Name}}_profile_url" value="{{.CustomURLSettings.ProfileURL.Value}}" data-available="{{.CustomURLSettings.ProfileURL.Available}}" data-required="{{.CustomURLSettings.ProfileURL.Required}}" type="hidden"> | |||||
<input id="{{.Name}}_email_url" value="{{.CustomURLSettings.EmailURL.Value}}" data-available="{{.CustomURLSettings.EmailURL.Available}}" data-required="{{.CustomURLSettings.EmailURL.Required}}" type="hidden"> | |||||
<input id="{{.Name}}_tenant" value="{{.CustomURLSettings.Tenant.Value}}" data-available="{{.CustomURLSettings.Tenant.Available}}" data-required="{{.CustomURLSettings.Tenant.Required}}" type="hidden"> | |||||
{{end}}{{end}} | {{end}}{{end}} | ||||
<div class="field"> | <div class="field"> |
{{end}} | {{end}} | ||||
</tbody> | </tbody> | ||||
</table> | </table> | ||||
<input type="hidden" name="from" value="monitor"/> | |||||
<input type="hidden" name="from" value="monitor"> | |||||
{{.CsrfTokenHtml}} | {{.CsrfTokenHtml}} | ||||
</form> | </form> | ||||
</div> | </div> |
</tr> | </tr> | ||||
{{if and (not .SSH.Disabled) (not .SSH.StartBuiltinServer)}} | {{if and (not .SSH.Disabled) (not .SSH.StartBuiltinServer)}} | ||||
<tr> | <tr> | ||||
<td>{{.locale.Tr "admin.dashboard.resync_all_sshkeys"}}<br/> | |||||
<td>{{.locale.Tr "admin.dashboard.resync_all_sshkeys"}}<br> | |||||
{{.locale.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"}} {{.locale.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>{{.locale.Tr "admin.dashboard.resync_all_sshprincipals"}}<br/> | |||||
<td>{{.locale.Tr "admin.dashboard.resync_all_sshprincipals"}}<br> | |||||
{{.locale.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}} {{.locale.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> |
</div> | </div> | ||||
<div class="field {{if .Err_Gravatar}}error{{end}}"> | <div class="field {{if .Err_Gravatar}}error{{end}}"> | ||||
<label for="gravatar">Avatar {{.locale.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}} | ||||
{{range .PackageDescriptors}} | {{range .PackageDescriptors}} | ||||
{{$p := .}} | {{$p := .}} | ||||
{{range .Files}} | {{range .Files}} | ||||
<a href="{{$.RegistryURL}}/files/{{$p.Package.LowerName}}/{{$p.Version.Version}}/{{.File.Name}}#sha256-{{.Blob.HashSHA256}}"{{if $p.Metadata.RequiresPython}} data-requires-python="{{$p.Metadata.RequiresPython}}"{{end}}>{{.File.Name}}</a><br/> | |||||
<a href="{{$.RegistryURL}}/files/{{$p.Package.LowerName}}/{{$p.Version.Version}}/{{.File.Name}}#sha256-{{.Blob.HashSHA256}}"{{if $p.Metadata.RequiresPython}} data-requires-python="{{$p.Metadata.RequiresPython}}"{{end}}>{{.File.Name}}</a><br> | |||||
{{end}} | {{end}} | ||||
{{end}} | {{end}} | ||||
</body> | </body> |
<div class="ui stackable middle very relaxed page grid"> | <div class="ui stackable middle very relaxed page grid"> | ||||
<div class="sixteen wide center aligned centered column"> | <div class="sixteen wide center aligned centered column"> | ||||
<div> | <div> | ||||
<img class="logo" width="220" height="220" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{.locale.Tr "logo"}}"/> | |||||
<img class="logo" width="220" height="220" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{.locale.Tr "logo"}}"> | |||||
</div> | </div> | ||||
<div class="hero"> | <div class="hero"> | ||||
<h1 class="ui icon header title"> | <h1 class="ui icon header title"> |
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<img class="gt-hidden" src="{{AssetUrlPrefix}}/img/loading.png"/> | |||||
<img class="gt-hidden" src="{{AssetUrlPrefix}}/img/loading.png"> | |||||
{{template "base/footer" .}} | {{template "base/footer" .}} |
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<html> | <html> | ||||
<head> | <head> | ||||
<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 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"> | |||||
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title> | <title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title> | ||||
</head> | </head> | ||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<html> | <html> | ||||
<head> | <head> | ||||
<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 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"> | |||||
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title> | <title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title> | ||||
</head> | </head> | ||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<html> | <html> | ||||
<head> | <head> | ||||
<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 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"> | |||||
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title> | <title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title> | ||||
</head> | </head> | ||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<html> | <html> | ||||
<head> | <head> | ||||
<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 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"> | |||||
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title> | <title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title> | ||||
</head> | </head> | ||||
<style> | <style> | ||||
.footer { font-size:small; color:#666;} | .footer { font-size:small; color:#666;} | ||||
</style> | </style> | ||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |||||
<title>{{.Subject}}</title> | <title>{{.Subject}}</title> | ||||
</head> | </head> | ||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<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"> | |||||
<title>{{.Subject}}</title> | <title>{{.Subject}}</title> | ||||
<style> | <style> |
<style> | <style> | ||||
.footer { font-size:small; color:#666;} | .footer { font-size:small; color:#666;} | ||||
</style> | </style> | ||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |||||
<title>{{.Subject}}</title> | <title>{{.Subject}}</title> | ||||
</head> | </head> | ||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<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"> | |||||
<title>{{.Subject}}</title> | <title>{{.Subject}}</title> | ||||
</head> | </head> | ||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<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"> | |||||
<title>{{.Subject}}</title> | <title>{{.Subject}}</title> | ||||
<style> | <style> |
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<html> | <html> | ||||
<head> | <head> | ||||
<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 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"> | |||||
</head> | </head> | ||||
{{$invite_url := printf "%sorg/invite/%s" AppUrl (QueryEscape .Invite.Token)}} | {{$invite_url := printf "%sorg/invite/%s" AppUrl (QueryEscape .Invite.Token)}} | ||||
<body> | <body> |
<span class="inline required field"><label for="visibility">{{.locale.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="enable-system-radio" tabindex="0" name="visibility" type="radio" value="0" {{if .DefaultOrgVisibilityMode.IsPublic}}checked{{end}}/> | |||||
<input class="enable-system-radio" tabindex="0" name="visibility" type="radio" value="0" {{if .DefaultOrgVisibilityMode.IsPublic}}checked{{end}}> | |||||
<label>{{.locale.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="enable-system-radio" tabindex="0" name="visibility" type="radio" value="1" {{if .DefaultOrgVisibilityMode.IsLimited}}checked{{end}}/> | |||||
<input class="enable-system-radio" tabindex="0" name="visibility" type="radio" value="1" {{if .DefaultOrgVisibilityMode.IsLimited}}checked{{end}}> | |||||
<label>{{.locale.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="enable-system-radio" tabindex="0" name="visibility" type="radio" value="2" {{if .DefaultOrgVisibilityMode.IsPrivate}}checked{{end}}/> | |||||
<input class="enable-system-radio" tabindex="0" name="visibility" type="radio" value="2" {{if .DefaultOrgVisibilityMode.IsPrivate}}checked{{end}}> | |||||
<label>{{.locale.Tr "org.settings.visibility.private"}}</label> | <label>{{.locale.Tr "org.settings.visibility.private"}}</label> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<label>{{.locale.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 type="checkbox" name="repo_admin_change_team_access" checked/> | |||||
<input type="checkbox" name="repo_admin_change_team_access" checked> | |||||
<label>{{.locale.Tr "org.settings.repoadminchangeteam"}}</label> | <label>{{.locale.Tr "org.settings.repoadminchangeteam"}}</label> | ||||
</div> | </div> | ||||
</div> | </div> |
<label for="visibility">{{.locale.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="enable-system-radio" tabindex="0" name="visibility" type="radio" value="0" {{if eq .CurrentVisibility 0}}checked{{end}}/> | |||||
<input class="enable-system-radio" tabindex="0" name="visibility" type="radio" value="0" {{if eq .CurrentVisibility 0}}checked{{end}}> | |||||
<label>{{.locale.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="enable-system-radio" tabindex="0" name="visibility" type="radio" value="1" {{if eq .CurrentVisibility 1}}checked{{end}}/> | |||||
<input class="enable-system-radio" tabindex="0" name="visibility" type="radio" value="1" {{if eq .CurrentVisibility 1}}checked{{end}}> | |||||
<label>{{.locale.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="enable-system-radio" tabindex="0" name="visibility" type="radio" value="2" {{if eq .CurrentVisibility 2}}checked{{end}}/> | |||||
<input class="enable-system-radio" tabindex="0" name="visibility" type="radio" value="2" {{if eq .CurrentVisibility 2}}checked{{end}}> | |||||
<label>{{.locale.Tr "org.settings.visibility.private"}}</label> | <label>{{.locale.Tr "org.settings.visibility.private"}}</label> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<label>{{.locale.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 type="checkbox" name="repo_admin_change_team_access" {{if .RepoAdminChangeTeamAccess}}checked{{end}}/> | |||||
<input type="checkbox" name="repo_admin_change_team_access" {{if .RepoAdminChangeTeamAccess}}checked{{end}}> | |||||
<label>{{.locale.Tr "org.settings.repoadminchangeteam"}}</label> | <label>{{.locale.Tr "org.settings.repoadminchangeteam"}}</label> | ||||
</div> | </div> | ||||
</div> | </div> |
<div class="item"> | <div class="item"> | ||||
<form action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/remove_invite" method="post"> | <form action="{{$.OrgLink}}/teams/{{$.Team.LowerName | PathEscape}}/action/remove_invite" method="post"> | ||||
{{$.CsrfTokenHtml}} | {{$.CsrfTokenHtml}} | ||||
<input type="hidden" name="iid" value="{{.ID}}" /> | |||||
<input type="hidden" name="iid" value="{{.ID}}"> | |||||
<button class="ui red button right">{{$.locale.Tr "org.members.remove"}}</button> | <button class="ui red button right">{{$.locale.Tr "org.members.remove"}}</button> | ||||
</form> | </form> | ||||
{{.Email}} | {{.Email}} |
{{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}}">{{$.locale.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 class="ui stackable middle very relaxed page grid"> | <div class="ui stackable middle very relaxed page grid"> | ||||
<div id="repo_migrating" class="sixteen wide center aligned centered column"> | <div id="repo_migrating" class="sixteen wide center aligned centered column"> | ||||
<div> | <div> | ||||
<img src="{{AssetUrlPrefix}}/img/loading.png"/> | |||||
<img src="{{AssetUrlPrefix}}/img/loading.png"> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> |
<form method="GET" action="{{$.RepoLink}}/_cherrypick/{{.CommitID}}/{{if $.BranchName}}{{PathEscapeSegments $.BranchName}}{{else}}{{PathEscapeSegments $.Repository.DefaultBranch}}{{end}}" id="branch-dropdown-form"> | <form method="GET" action="{{$.RepoLink}}/_cherrypick/{{.CommitID}}/{{if $.BranchName}}{{PathEscapeSegments $.BranchName}}{{else}}{{PathEscapeSegments $.Repository.DefaultBranch}}{{end}}" id="branch-dropdown-form"> | ||||
<input type="hidden" name="ref" value="{{if $.BranchName}}{{$.BranchName}}{{else}}{{$.Repository.DefaultBranch}}{{end}}"> | <input type="hidden" name="ref" value="{{if $.BranchName}}{{$.BranchName}}{{else}}{{$.Repository.DefaultBranch}}{{end}}"> | ||||
<input type="hidden" name="refType" value="branch"> | <input type="hidden" name="refType" value="branch"> | ||||
<input type="hidden" id="cherry-pick-type" name="cherry-pick-type"><br/> | |||||
<input type="hidden" id="cherry-pick-type" name="cherry-pick-type"><br> | |||||
<button type="submit" id="cherry-pick-submit" class="ui green button"></button> | <button type="submit" id="cherry-pick-submit" class="ui green button"></button> | ||||
</form> | </form> | ||||
</div> | </div> |
<div class="menu"> | <div class="menu"> | ||||
<div class="item" data-value="">{{.locale.Tr "repo.issue_labels_helper"}}</div> | <div class="item" data-value="">{{.locale.Tr "repo.issue_labels_helper"}}</div> | ||||
{{range $template, $labels := .LabelTemplates}} | {{range $template, $labels := .LabelTemplates}} | ||||
<div class="item" data-value="{{$template}}">{{$template}}<br/><i>({{$labels}})</i></div> | |||||
<div class="item" data-value="{{$template}}">{{$template}}<br><i>({{$labels}})</i></div> | |||||
{{end}} | {{end}} | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<br/> | |||||
<br> | |||||
<div class="inline field"> | <div class="inline field"> | ||||
<label></label> | <label></label> | ||||
<button class="ui green button{{if not .CanCreateRepo}} disabled{{end}}"> | <button class="ui green button{{if not .CanCreateRepo}} disabled{{end}}"> |
<form class="ui form {{if $.hidden}}gt-hidden comment-form{{end}}" action="{{$.root.Issue.Link}}/files/reviews/comments" method="post"> | <form class="ui form {{if $.hidden}}gt-hidden comment-form{{end}}" action="{{$.root.Issue.Link}}/files/reviews/comments" method="post"> | ||||
{{$.root.CsrfTokenHtml}} | {{$.root.CsrfTokenHtml}} | ||||
<input type="hidden" name="origin" value="{{if $.root.PageIsPullFiles}}diff{{else}}timeline{{end}}"> | <input type="hidden" name="origin" value="{{if $.root.PageIsPullFiles}}diff{{else}}timeline{{end}}"> | ||||
<input type="hidden" name="latest_commit_id" value="{{$.root.AfterCommitID}}"/> | |||||
<input type="hidden" name="latest_commit_id" value="{{$.root.AfterCommitID}}"> | |||||
<input type="hidden" name="side" value="{{if $.Side}}{{$.Side}}{{end}}"> | <input type="hidden" name="side" value="{{if $.Side}}{{$.Side}}{{end}}"> | ||||
<input type="hidden" name="line" value="{{if $.Line}}{{$.Line}}{{end}}"> | <input type="hidden" name="line" value="{{if $.Line}}{{$.Line}}{{end}}"> | ||||
<input type="hidden" name="path" value="{{if $.File}}{{$.File}}{{end}}"> | <input type="hidden" name="path" value="{{if $.File}}{{$.File}}{{end}}"> |
{{if .blobBase}} | {{if .blobBase}} | ||||
<span class="side"> | <span class="side"> | ||||
<p class="side-header">{{.root.locale.Tr "repo.diff.file_before"}}</p> | <p class="side-header">{{.root.locale.Tr "repo.diff.file_before"}}</p> | ||||
<span class="before-container"><img class="image-before" /></span> | |||||
<span class="before-container"><img class="image-before"></span> | |||||
<p> | <p> | ||||
<span class="bounds-info-before"> | <span class="bounds-info-before"> | ||||
{{.root.locale.Tr "repo.diff.file_image_width"}}: <span class="text bounds-info-width"></span> | {{.root.locale.Tr "repo.diff.file_image_width"}}: <span class="text bounds-info-width"></span> | ||||
{{if .blobHead}} | {{if .blobHead}} | ||||
<span class="side"> | <span class="side"> | ||||
<p class="side-header">{{.root.locale.Tr "repo.diff.file_after"}}</p> | <p class="side-header">{{.root.locale.Tr "repo.diff.file_after"}}</p> | ||||
<span class="after-container"><img class="image-after" /></span> | |||||
<span class="after-container"><img class="image-after"></span> | |||||
<p> | <p> | ||||
<span class="bounds-info-after"> | <span class="bounds-info-after"> | ||||
{{.root.locale.Tr "repo.diff.file_image_width"}}: <span class="text bounds-info-width"></span> | {{.root.locale.Tr "repo.diff.file_image_width"}}: <span class="text bounds-info-width"></span> | ||||
<div class="ui bottom attached tab image-diff-container" data-tab="diff-swipe-{{.file.Index}}"> | <div class="ui bottom attached tab image-diff-container" data-tab="diff-swipe-{{.file.Index}}"> | ||||
<div class="diff-swipe"> | <div class="diff-swipe"> | ||||
<div class="swipe-frame"> | <div class="swipe-frame"> | ||||
<span class="before-container"><img class="image-before" /></span> | |||||
<span class="before-container"><img class="image-before"></span> | |||||
<span class="swipe-container"> | <span class="swipe-container"> | ||||
<span class="after-container"><img class="image-after" /></span> | |||||
<span class="after-container"><img class="image-after"></span> | |||||
</span> | </span> | ||||
<span class="swipe-bar"> | <span class="swipe-bar"> | ||||
<span class="handle top-handle"></span> | <span class="handle top-handle"></span> | ||||
<div class="diff-overlay"> | <div class="diff-overlay"> | ||||
<div class="overlay-frame"> | <div class="overlay-frame"> | ||||
<div class="ui centered"> | <div class="ui centered"> | ||||
<input type="range" min="0" max="100" value="50" /> | |||||
<input type="range" min="0" max="100" value="50"> | |||||
</div> | </div> | ||||
<span class="before-container"><img class="image-before"/></span> | |||||
<span class="after-container"><img class="image-after" /></span> | |||||
<span class="before-container"><img class="image-before"></span> | |||||
<span class="after-container"><img class="image-after"></span> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> |
<div class="ui segment"> | <div class="ui segment"> | ||||
<form class="ui form" action="{{.Link}}/reviews/submit" method="post"> | <form class="ui form" action="{{.Link}}/reviews/submit" method="post"> | ||||
{{.CsrfTokenHtml}} | {{.CsrfTokenHtml}} | ||||
<input type="hidden" name="commit_id" value="{{.AfterCommitID}}"/> | |||||
<input type="hidden" name="commit_id" value="{{.AfterCommitID}}"> | |||||
<div class="header gt-df gt-ac gt-pb-3"> | <div class="header gt-df gt-ac gt-pb-3"> | ||||
<div class="gt-f1">{{$.locale.Tr "repo.diff.review.header"}}</div> | <div class="gt-f1">{{$.locale.Tr "repo.diff.review.header"}}</div> | ||||
<a class="muted close gt-px-3">{{svg "octicon-x" 16}}</a> | <a class="muted close gt-px-3">{{svg "octicon-x" 16}}</a> |
{{- else if eq $glyph.Glyph '_' -}} | {{- else if eq $glyph.Glyph '_' -}} | ||||
M {{Add (Mul $glyph.Column 5) 0}} {{Add (Mul $glyph.Row 12) 12}} h 10 {{/* */ -}} | M {{Add (Mul $glyph.Column 5) 0}} {{Add (Mul $glyph.Row 12) 12}} h 10 {{/* */ -}} | ||||
{{- end -}} | {{- end -}} | ||||
{{- end}}" stroke-width="1" fill="none" id="flow-{{$flow.ID}}-path" stroke-linecap="round"/> | |||||
{{- end}}" stroke-width="1" fill="none" id="flow-{{$flow.ID}}-path" stroke-linecap="round"> | |||||
{{range $flow.Commits}} | {{range $flow.Commits}} | ||||
<circle class="flow-commit" cx="{{Add (Mul .Column 5) 5}}" cy="{{Add (Mul .Row 12) 6}}" r="2.5" stroke="none" id="flow-commit-{{.Rev}}" data-rev="{{.Rev}}"/> | |||||
<circle class="flow-commit" cx="{{Add (Mul .Column 5) 5}}" cy="{{Add (Mul .Row 12) 6}}" r="2.5" stroke="none" id="flow-commit-{{.Rev}}" data-rev="{{.Rev}}"> | |||||
{{end}} | {{end}} | ||||
</g> | </g> | ||||
{{end}} | {{end}} |
<div class="ui two column grid"> | <div class="ui two column grid"> | ||||
<div class="column left aligned"> | <div class="column left aligned"> | ||||
<strong>{{.Name | RenderEmojiPlain}}</strong> | <strong>{{.Name | RenderEmojiPlain}}</strong> | ||||
<br/>{{.About | RenderEmojiPlain}} | |||||
<br>{{.About | RenderEmojiPlain}} | |||||
</div> | </div> | ||||
<div class="column right aligned"> | <div class="column right aligned"> | ||||
<a href="{{$.RepoLink}}/issues/new?template={{.FileName}}{{if $.milestone}}&milestone={{$.milestone}}{{end}}{{if $.project}}&project={{$.project}}{{end}}" class="ui green button">{{$.locale.Tr "repo.issues.choose.get_started"}}</a> | <a href="{{$.RepoLink}}/issues/new?template={{.FileName}}{{if $.milestone}}&milestone={{$.milestone}}{{end}}{{if $.project}}&project={{$.project}}{{end}}" class="ui green button">{{$.locale.Tr "repo.issues.choose.get_started"}}</a> | ||||
<div class="ui two column grid"> | <div class="ui two column grid"> | ||||
<div class="column left aligned"> | <div class="column left aligned"> | ||||
<strong>{{.locale.Tr "repo.issues.choose.blank"}}</strong> | <strong>{{.locale.Tr "repo.issues.choose.blank"}}</strong> | ||||
<br/>{{.locale.Tr "repo.issues.choose.blank_about"}} | |||||
<br>{{.locale.Tr "repo.issues.choose.blank_about"}} | |||||
</div> | </div> | ||||
<div class="column right aligned"> | <div class="column right aligned"> | ||||
<a href="{{.RepoLink}}/issues/new?{{if .milestone}}&milestone={{.milestone}}{{end}}{{if $.project}}&project={{$.project}}{{end}}" class="ui green button">{{$.locale.Tr "repo.issues.choose.get_started"}}</a> | <a href="{{.RepoLink}}/issues/new?{{if .milestone}}&milestone={{.milestone}}{{end}}{{if $.project}}&project={{$.project}}{{end}}" class="ui green button">{{$.locale.Tr "repo.issues.choose.get_started"}}</a> |
<input class="label-exclusive-input" name="exclusive" type="checkbox"> | <input class="label-exclusive-input" name="exclusive" type="checkbox"> | ||||
<label>{{.locale.Tr "repo.issues.label_exclusive"}}</label> | <label>{{.locale.Tr "repo.issues.label_exclusive"}}</label> | ||||
</div> | </div> | ||||
<br/> | |||||
<br> | |||||
<small class="desc">{{.locale.Tr "repo.issues.label_exclusive_desc" | Safe}}</small> | <small class="desc">{{.locale.Tr "repo.issues.label_exclusive_desc" | Safe}}</small> | ||||
<div class="desc gt-ml-2 gt-mt-3 gt-hidden label-exclusive-warning"> | <div class="desc gt-ml-2 gt-mt-3 gt-hidden label-exclusive-warning"> | ||||
{{svg "octicon-alert"}} {{.locale.Tr "repo.issues.label_exclusive_warning" | Safe}} | {{svg "octicon-alert"}} {{.locale.Tr "repo.issues.label_exclusive_warning" | Safe}} |
<div class="twelve wide computer column"> | <div class="twelve wide computer column"> | ||||
<div class="ui attached left aligned segment"> | <div class="ui attached left aligned segment"> | ||||
<p>{{.locale.Tr "repo.issues.label_templates.info"}}</p> | <p>{{.locale.Tr "repo.issues.label_templates.info"}}</p> | ||||
<br/> | |||||
<br> | |||||
<form class="ui form center" action="{{.Link}}/initialize" method="post"> | <form class="ui form center" action="{{.Link}}/initialize" method="post"> | ||||
{{.CsrfTokenHtml}} | {{.CsrfTokenHtml}} | ||||
<div class="field"> | <div class="field"> | ||||
<div class="default text">{{.locale.Tr "repo.issues.label_templates.helper"}}</div> | <div class="default text">{{.locale.Tr "repo.issues.label_templates.helper"}}</div> | ||||
<div class="menu"> | <div class="menu"> | ||||
{{range $template, $labels := .LabelTemplates}} | {{range $template, $labels := .LabelTemplates}} | ||||
<div class="item" data-value="{{$template}}">{{$template}}<br/><i>({{$labels}})</i></div> | |||||
<div class="item" data-value="{{$template}}">{{$template}}<br><i>({{$labels}})</i></div> | |||||
{{end}} | {{end}} | ||||
</div> | </div> | ||||
{{svg "octicon-triangle-down" 18 "dropdown icon"}} | {{svg "octicon-triangle-down" 18 "dropdown icon"}} |
<input class="label-exclusive-input" name="exclusive" type="checkbox"> | <input class="label-exclusive-input" name="exclusive" type="checkbox"> | ||||
<label>{{.locale.Tr "repo.issues.label_exclusive"}}</label> | <label>{{.locale.Tr "repo.issues.label_exclusive"}}</label> | ||||
</div> | </div> | ||||
<br/> | |||||
<br> | |||||
<small class="desc">{{.locale.Tr "repo.issues.label_exclusive_desc" | Safe}}</small> | <small class="desc">{{.locale.Tr "repo.issues.label_exclusive_desc" | Safe}}</small> | ||||
</div> | </div> | ||||
<div class="field"> | <div class="field"> |
<div class="column center aligned"> | <div class="column center aligned"> | ||||
<form class="ui form ignore-dirty"> | <form class="ui form ignore-dirty"> | ||||
<div class="ui search fluid action input"> | <div class="ui search fluid action input"> | ||||
<input type="hidden" name="state" value="{{$.State}}"/> | |||||
<input type="hidden" name="state" value="{{$.State}}"> | |||||
<input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..."> | <input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..."> | ||||
<button class="ui primary button" type="submit">{{.locale.Tr "explore.search"}}</button> | <button class="ui primary button" type="submit">{{.locale.Tr "explore.search"}}</button> | ||||
</div> | </div> |
<form class="ui form ignore-dirty"> | <form class="ui form ignore-dirty"> | ||||
<div class="ui search fluid action input"> | <div class="ui search fluid action input"> | ||||
<input type="hidden" name="type" value="{{$.ViewType}}"/> | |||||
<input type="hidden" name="state" value="{{$.State}}"/> | |||||
<input type="hidden" name="labels" value="{{.SelectLabels}}"/> | |||||
<input type="hidden" name="milestone" value="{{$.MilestoneID}}"/> | |||||
<input type="hidden" name="project" value="{{$.ProjectID}}"/> | |||||
<input type="hidden" name="assignee" value="{{$.AssigneeID}}"/> | |||||
<input type="hidden" name="poster" value="{{$.PosterID}}"/> | |||||
<input type="hidden" name="type" value="{{$.ViewType}}"> | |||||
<input type="hidden" name="state" value="{{$.State}}"> | |||||
<input type="hidden" name="labels" value="{{.SelectLabels}}"> | |||||
<input type="hidden" name="milestone" value="{{$.MilestoneID}}"> | |||||
<input type="hidden" name="project" value="{{$.ProjectID}}"> | |||||
<input type="hidden" name="assignee" value="{{$.AssigneeID}}"> | |||||
<input type="hidden" name="poster" value="{{$.PosterID}}"> | |||||
<input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..."> | <input name="q" value="{{.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..."> | ||||
<button class="ui primary button" type="submit">{{.locale.Tr "explore.search"}}</button> | <button class="ui primary button" type="submit">{{.locale.Tr "explore.search"}}</button> | ||||
</div> | </div> |
<!-- Agree, there should be a better way, eg: introduce window.config.pageData (original author: wxiaoguang @ 2021-09-05) --> | <!-- Agree, there should be a better way, eg: introduce window.config.pageData (original author: wxiaoguang @ 2021-09-05) --> | ||||
<input type="hidden" id="repolink" value="{{$.RepoRelPath}}"> | <input type="hidden" id="repolink" value="{{$.RepoRelPath}}"> | ||||
<input type="hidden" id="repoId" value="{{.Repository.ID}}"> | <input type="hidden" id="repoId" value="{{.Repository.ID}}"> | ||||
<input type="hidden" id="issueIndex" value="{{.Issue.Index}}"/> | |||||
<input type="hidden" id="issueIndex" value="{{.Issue.Index}}"> | |||||
<input type="hidden" id="type" value="{{.IssueType}}"> | <input type="hidden" id="type" value="{{.IssueType}}"> | ||||
{{$createdStr:= TimeSinceUnix .Issue.CreatedUnix $.locale}} | {{$createdStr:= TimeSinceUnix .Issue.CreatedUnix $.locale}} |
<span class="text"><strong>{{.locale.Tr "notification.notifications"}}</strong></span> | <span class="text"><strong>{{.locale.Tr "notification.notifications"}}</strong></span> | ||||
<div class="gt-mt-3"> | <div class="gt-mt-3"> | ||||
<form method="POST" action="{{.Issue.Link}}/watch"> | <form method="POST" action="{{.Issue.Link}}/watch"> | ||||
<input type="hidden" name="watch" value="{{if $.IssueWatch.IsWatching}}0{{else}}1{{end}}" /> | |||||
<input type="hidden" name="watch" value="{{if $.IssueWatch.IsWatching}}0{{else}}1{{end}}"> | |||||
{{$.CsrfTokenHtml}} | {{$.CsrfTokenHtml}} | ||||
<button class="fluid ui button gt-df gt-jc"> | <button class="fluid ui button gt-df gt-jc"> | ||||
{{if $.IssueWatch.IsWatching}} | {{if $.IssueWatch.IsWatching}} | ||||
<div class="content"> | <div class="content"> | ||||
<form method="POST" action="{{.Issue.Link}}/dependency/delete" id="removeDependencyForm"> | <form method="POST" action="{{.Issue.Link}}/dependency/delete" id="removeDependencyForm"> | ||||
{{$.CsrfTokenHtml}} | {{$.CsrfTokenHtml}} | ||||
<input type="hidden" value="" name="removeDependencyID" id="removeDependencyID"/> | |||||
<input type="hidden" value="" name="dependencyType" id="dependencyType"/> | |||||
<input type="hidden" value="" name="removeDependencyID" id="removeDependencyID"> | |||||
<input type="hidden" value="" name="dependencyType" id="dependencyType"> | |||||
</form> | </form> | ||||
<p>{{if .Issue.IsPull}} | <p>{{if .Issue.IsPull}} | ||||
{{.locale.Tr "repo.issues.dependency.pr_remove_text"}} | {{.locale.Tr "repo.issues.dependency.pr_remove_text"}} |
<div class="ui stackable middle very relaxed page grid"> | <div class="ui stackable middle very relaxed page grid"> | ||||
<div id="repo_migrating" class="sixteen wide center aligned centered column" task="{{.MigrateTask.ID}}"> | <div id="repo_migrating" class="sixteen wide center aligned centered column" task="{{.MigrateTask.ID}}"> | ||||
<div> | <div> | ||||
<img src="{{AssetUrlPrefix}}/img/loading.png"/> | |||||
<img src="{{AssetUrlPrefix}}/img/loading.png"> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div id="repo_migrating_failed_image" class="sixteen wide center aligned centered column gt-hidden"> | <div id="repo_migrating_failed_image" class="sixteen wide center aligned centered column gt-hidden"> | ||||
<div> | <div> | ||||
<img src="{{AssetUrlPrefix}}/img/failed.png"/> | |||||
<img src="{{AssetUrlPrefix}}/img/failed.png"> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> |
{{if eq $.Project.CardType 1}}{{/* Images and Text*/}} | {{if eq $.Project.CardType 1}}{{/* Images and Text*/}} | ||||
<div class="card-attachment-images"> | <div class="card-attachment-images"> | ||||
{{range (index $.issuesAttachmentMap .ID)}} | {{range (index $.issuesAttachmentMap .ID)}} | ||||
<img src="{{.DownloadURL}}" alt="{{.Name}}" /> | |||||
<img src="{{.DownloadURL}}" alt="{{.Name}}"> | |||||
{{end}} | {{end}} | ||||
</div> | </div> | ||||
{{end}} | {{end}} |
{{template "base/head" .}} | {{template "base/head" .}} | ||||
<input type="hidden" id="repolink" value="{{$.RepoRelPath}}"> | <input type="hidden" id="repolink" value="{{$.RepoRelPath}}"> | ||||
<input type="hidden" id="issueIndex" value="{{.Issue.Index}}"/> | |||||
<input type="hidden" id="issueIndex" value="{{.Issue.Index}}"> | |||||
<div role="main" aria-label="{{.Title}}" class="page-content repository view issue pull files diff"> | <div role="main" aria-label="{{.Title}}" class="page-content repository view issue pull files diff"> | ||||
{{template "repo/header" .}} | {{template "repo/header" .}} |
<b>{{.tag_name}}</b><span class="at">@</span><strong>{{.tag_target}}</strong> | <b>{{.tag_name}}</b><span class="at">@</span><strong>{{.tag_target}}</strong> | ||||
{{else}} | {{else}} | ||||
<input id="tag-name" name="tag_name" value="{{.tag_name}}" placeholder="{{.locale.Tr "repo.release.tag_name"}}" autofocus required maxlength="255"> | <input id="tag-name" name="tag_name" value="{{.tag_name}}" placeholder="{{.locale.Tr "repo.release.tag_name"}}" autofocus required maxlength="255"> | ||||
<input id="tag-name-editor" type="hidden" data-existing-tags={{Json .Tags}} data-tag-helper={{.locale.Tr "repo.release.tag_helper"}} data-tag-helper-new={{.locale.Tr "repo.release.tag_helper_new"}} data-tag-helper-existing={{.locale.Tr "repo.release.tag_helper_existing"}} /> | |||||
<input id="tag-name-editor" type="hidden" data-existing-tags={{Json .Tags}} data-tag-helper={{.locale.Tr "repo.release.tag_helper"}} data-tag-helper-new={{.locale.Tr "repo.release.tag_helper_new"}} data-tag-helper-existing={{.locale.Tr "repo.release.tag_helper_existing"}}> | |||||
<div id="tag-target-selector" class="gt-dib"> | <div id="tag-target-selector" class="gt-dib"> | ||||
<span class="at">@</span> | <span class="at">@</span> | ||||
<div class="ui selection dropdown"> | <div class="ui selection dropdown"> | ||||
<input type="hidden" name="tag_target" value="{{.tag_target}}"/> | |||||
<input type="hidden" name="tag_target" value="{{.tag_target}}"> | |||||
{{svg "octicon-git-branch"}} | {{svg "octicon-git-branch"}} | ||||
<div class="text"> | <div class="text"> | ||||
{{.locale.Tr "repo.release.target"}} : | {{.locale.Tr "repo.release.target"}} : | ||||
</a> | </a> | ||||
</div> | </div> | ||||
<div class="gt-df gt-ac"> | <div class="gt-df gt-ac"> | ||||
<input name="attachment-edit-{{.UUID}}" class="gt-mr-3 attachment_edit" required value="{{.Name}}"/> | |||||
<input name="attachment-del-{{.UUID}}" type="hidden" value="false"/> | |||||
<input name="attachment-edit-{{.UUID}}" class="gt-mr-3 attachment_edit" required value="{{.Name}}"> | |||||
<input name="attachment-del-{{.UUID}}" type="hidden" value="false"> | |||||
<span class="ui text grey gt-mr-3">{{.Size | FileSize}}</span> | <span class="ui text grey gt-mr-3">{{.Size | FileSize}}</span> | ||||
<span data-tooltip-content="{{$.locale.Tr "repo.release.download_count" (.DownloadCount | PrettyNumber)}}"> | <span data-tooltip-content="{{$.locale.Tr "repo.release.download_count" (.DownloadCount | PrettyNumber)}}"> | ||||
{{svg "octicon-info"}} | {{svg "octicon-info"}} |
{{.CsrfTokenHtml}} | {{.CsrfTokenHtml}} | ||||
{{range .Pointers}} | {{range .Pointers}} | ||||
{{if .Associatable}} | {{if .Associatable}} | ||||
<input type="hidden" name="oid" value="{{.Oid}} {{.Size}}"/> | |||||
<input type="hidden" name="oid" value="{{.Oid}} {{.Size}}"> | |||||
{{end}} | {{end}} | ||||
{{end}} | {{end}} | ||||
<button class="ui green button">{{$.locale.Tr "repo.settings.lfs_pointers.associateAccessible" $.NumAssociatable}}</button> | <button class="ui green button">{{$.locale.Tr "repo.settings.lfs_pointers.associateAccessible" $.NumAssociatable}}</button> |
{{else}} | {{else}} | ||||
<div class="ui radio checkbox"> | <div class="ui radio checkbox"> | ||||
{{end}} | {{end}} | ||||
<input class="enable-system-radio" tabindex="0" name="enable_external_wiki" type="radio" value="false" data-target="#external_wiki_box" {{if not (.Repository.UnitEnabled $.Context $.UnitTypeExternalWiki)}}checked{{end}}/> | |||||
<input class="enable-system-radio" tabindex="0" name="enable_external_wiki" type="radio" value="false" data-target="#external_wiki_box" {{if not (.Repository.UnitEnabled $.Context $.UnitTypeExternalWiki)}}checked{{end}}> | |||||
<label>{{.locale.Tr "repo.settings.use_internal_wiki"}}</label> | <label>{{.locale.Tr "repo.settings.use_internal_wiki"}}</label> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
{{else}} | {{else}} | ||||
<div class="ui radio checkbox"> | <div class="ui radio checkbox"> | ||||
{{end}} | {{end}} | ||||
<input class="enable-system-radio" tabindex="0" name="enable_external_wiki" type="radio" value="true" data-target="#external_wiki_box" {{if .Repository.UnitEnabled $.Context $.UnitTypeExternalWiki}}checked{{end}}/> | |||||
<input class="enable-system-radio" tabindex="0" name="enable_external_wiki" type="radio" value="true" data-target="#external_wiki_box" {{if .Repository.UnitEnabled $.Context $.UnitTypeExternalWiki}}checked{{end}}> | |||||
<label>{{.locale.Tr "repo.settings.use_external_wiki"}}</label> | <label>{{.locale.Tr "repo.settings.use_external_wiki"}}</label> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
{{else}} | {{else}} | ||||
<div class="ui radio checkbox"> | <div class="ui radio checkbox"> | ||||
{{end}} | {{end}} | ||||
<input class="enable-system-radio" tabindex="0" name="enable_external_tracker" type="radio" value="false" data-context="#internal_issue_box" data-target="#external_issue_box" {{if not (.Repository.UnitEnabled $.Context $.UnitTypeExternalTracker)}}checked{{end}}/> | |||||
<input class="enable-system-radio" tabindex="0" name="enable_external_tracker" type="radio" value="false" data-context="#internal_issue_box" data-target="#external_issue_box" {{if not (.Repository.UnitEnabled $.Context $.UnitTypeExternalTracker)}}checked{{end}}> | |||||
<label>{{.locale.Tr "repo.settings.use_internal_issue_tracker"}}</label> | <label>{{.locale.Tr "repo.settings.use_internal_issue_tracker"}}</label> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
{{else}} | {{else}} | ||||
<div class="ui radio checkbox"> | <div class="ui radio checkbox"> | ||||
{{end}} | {{end}} | ||||
<input class="enable-system-radio" tabindex="0" name="enable_external_tracker" type="radio" value="true" data-context="#internal_issue_box" data-target="#external_issue_box" {{if .Repository.UnitEnabled $.Context $.UnitTypeExternalTracker}}checked{{end}}/> | |||||
<input class="enable-system-radio" tabindex="0" name="enable_external_tracker" type="radio" value="true" data-context="#internal_issue_box" data-target="#external_issue_box" {{if .Repository.UnitEnabled $.Context $.UnitTypeExternalTracker}}checked{{end}}> | |||||
<label>{{.locale.Tr "repo.settings.use_external_issue_tracker"}}</label> | <label>{{.locale.Tr "repo.settings.use_external_issue_tracker"}}</label> | ||||
</div> | </div> | ||||
</div> | </div> |
<a class="ui tiny primary button" href="{{$.RepoLink}}/settings/tags/{{.ID}}">{{$.locale.Tr "edit"}}</a> | <a class="ui tiny primary button" href="{{$.RepoLink}}/settings/tags/{{.ID}}">{{$.locale.Tr "edit"}}</a> | ||||
<form class="gt-dib" action="{{$.RepoLink}}/settings/tags/delete" method="post"> | <form class="gt-dib" action="{{$.RepoLink}}/settings/tags/delete" method="post"> | ||||
{{$.CsrfTokenHtml}} | {{$.CsrfTokenHtml}} | ||||
<input type="hidden" name="id" value="{{.ID}}" /> | |||||
<input type="hidden" name="id" value="{{.ID}}"> | |||||
<button class="ui tiny red button">{{$.locale.Tr "remove"}}</button> | <button class="ui tiny red button">{{$.locale.Tr "remove"}}</button> | ||||
</form> | </form> | ||||
</td> | </td> |
<div role="main" aria-label="{{.Title}}" class="page-content ui container center gt-full-screen-width {{if .IsRepo}}repository{{end}}"> | <div role="main" aria-label="{{.Title}}" class="page-content ui container center gt-full-screen-width {{if .IsRepo}}repository{{end}}"> | ||||
{{if .IsRepo}}{{template "repo/header" .}}{{end}} | {{if .IsRepo}}{{template "repo/header" .}}{{end}} | ||||
<div class="ui container center"> | <div class="ui container center"> | ||||
<p style="margin-top: 100px"><img src="{{AssetUrlPrefix}}/img/404.png" alt="404"/></p> | |||||
<p style="margin-top: 100px"><img src="{{AssetUrlPrefix}}/img/404.png" alt="404"></p> | |||||
<div class="ui divider"></div> | <div class="ui divider"></div> | ||||
<br> | <br> | ||||
<p>{{.locale.Tr "error404" | Safe}} | <p>{{.locale.Tr "error404" | Safe}} |
{{template "base/head" .}} | {{template "base/head" .}} | ||||
<div role="main" aria-label="{{.Title}}" class="page-content ui container gt-full-screen-width center"> | <div role="main" aria-label="{{.Title}}" class="page-content ui container gt-full-screen-width center"> | ||||
<p style="margin-top: 100px"><img src="{{AssetUrlPrefix}}/img/500.png" alt="500"/></p> | |||||
<p style="margin-top: 100px"><img src="{{AssetUrlPrefix}}/img/500.png" alt="500"></p> | |||||
<div class="ui divider"></div> | <div class="ui divider"></div> | ||||
<br> | <br> | ||||
{{if .ErrorMsg}} | {{if .ErrorMsg}} |
<div class="ui attached segment"> | <div class="ui attached segment"> | ||||
{{template "base/alert" .}} | {{template "base/alert" .}} | ||||
<p> | <p> | ||||
<b>{{.locale.Tr "auth.authorize_application_description"}}</b><br/> | |||||
<b>{{.locale.Tr "auth.authorize_application_description"}}</b><br> | |||||
{{.locale.Tr "auth.authorize_application_created_by" .ApplicationCreatorLinkHTML | Str2html}} | {{.locale.Tr "auth.authorize_application_created_by" .ApplicationCreatorLinkHTML | Str2html}} | ||||
</p> | </p> | ||||
</div> | </div> |
<div class="column center aligned"> | <div class="column center aligned"> | ||||
<form class="ui form ignore-dirty"> | <form class="ui form ignore-dirty"> | ||||
<div class="ui search fluid action input"> | <div class="ui search fluid action input"> | ||||
<input type="hidden" name="type" value="{{$.ViewType}}"/> | |||||
<input type="hidden" name="repos" value="[{{range $.RepoIDs}}{{.}}%2C{{end}}]"/> | |||||
<input type="hidden" name="sort" value="{{$.SortType}}"/> | |||||
<input type="hidden" name="state" value="{{$.State}}"/> | |||||
<input type="hidden" name="type" value="{{$.ViewType}}"> | |||||
<input type="hidden" name="repos" value="[{{range $.RepoIDs}}{{.}}%2C{{end}}]"> | |||||
<input type="hidden" name="sort" value="{{$.SortType}}"> | |||||
<input type="hidden" name="state" value="{{$.State}}"> | |||||
<input name="q" value="{{$.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..."> | <input name="q" value="{{$.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..."> | ||||
<button class="ui primary button" type="submit">{{.locale.Tr "explore.search"}}</button> | <button class="ui primary button" type="submit">{{.locale.Tr "explore.search"}}</button> | ||||
</div> | </div> |
<div class="column center aligned"> | <div class="column center aligned"> | ||||
<form class="ui form ignore-dirty"> | <form class="ui form ignore-dirty"> | ||||
<div class="ui search fluid action input"> | <div class="ui search fluid action input"> | ||||
<input type="hidden" name="type" value="{{$.ViewType}}"/> | |||||
<input type="hidden" name="repos" value="[{{range $.RepoIDs}}{{.}},{{end}}]"/> | |||||
<input type="hidden" name="sort" value="{{$.SortType}}"/> | |||||
<input type="hidden" name="state" value="{{$.State}}"/> | |||||
<input type="hidden" name="type" value="{{$.ViewType}}"> | |||||
<input type="hidden" name="repos" value="[{{range $.RepoIDs}}{{.}},{{end}}]"> | |||||
<input type="hidden" name="sort" value="{{$.SortType}}"> | |||||
<input type="hidden" name="state" value="{{$.State}}"> | |||||
<input name="q" value="{{$.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..."> | <input name="q" value="{{$.Keyword}}" placeholder="{{.locale.Tr "explore.search"}}..."> | ||||
<button class="ui primary button" type="submit">{{.locale.Tr "explore.search"}}</button> | <button class="ui primary button" type="submit">{{.locale.Tr "explore.search"}}</button> | ||||
</div> | </div> |
{{if ne .Status 3}} | {{if ne .Status 3}} | ||||
<form action="{{AppSubUrl}}/notifications/status" method="POST"> | <form action="{{AppSubUrl}}/notifications/status" method="POST"> | ||||
{{$.CsrfTokenHtml}} | {{$.CsrfTokenHtml}} | ||||
<input type="hidden" name="notification_id" value="{{.ID}}" /> | |||||
<input type="hidden" name="status" value="pinned" /> | |||||
<input type="hidden" name="notification_id" value="{{.ID}}"> | |||||
<input type="hidden" name="status" value="pinned"> | |||||
<button class="ui mini button" title='{{$.locale.Tr "notification.pin"}}' | <button class="ui mini button" title='{{$.locale.Tr "notification.pin"}}' | ||||
data-url="{{AppSubUrl}}/notifications/status" | data-url="{{AppSubUrl}}/notifications/status" | ||||
data-status="pinned" | data-status="pinned" | ||||
{{if or (eq .Status 1) (eq .Status 3)}} | {{if or (eq .Status 1) (eq .Status 3)}} | ||||
<form action="{{AppSubUrl}}/notifications/status" method="POST"> | <form action="{{AppSubUrl}}/notifications/status" method="POST"> | ||||
{{$.CsrfTokenHtml}} | {{$.CsrfTokenHtml}} | ||||
<input type="hidden" name="notification_id" value="{{.ID}}" /> | |||||
<input type="hidden" name="status" value="read" /> | |||||
<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}" /> | |||||
<input type="hidden" name="notification_id" value="{{.ID}}"> | |||||
<input type="hidden" name="status" value="read"> | |||||
<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}"> | |||||
<button class="ui mini button" title='{{$.locale.Tr "notification.mark_as_read"}}' | <button class="ui mini button" title='{{$.locale.Tr "notification.mark_as_read"}}' | ||||
data-url="{{AppSubUrl}}/notifications/status" | data-url="{{AppSubUrl}}/notifications/status" | ||||
data-status="read" | data-status="read" | ||||
{{else if eq .Status 2}} | {{else if eq .Status 2}} | ||||
<form action="{{AppSubUrl}}/notifications/status" method="POST"> | <form action="{{AppSubUrl}}/notifications/status" method="POST"> | ||||
{{$.CsrfTokenHtml}} | {{$.CsrfTokenHtml}} | ||||
<input type="hidden" name="notification_id" value="{{.ID}}" /> | |||||
<input type="hidden" name="status" value="unread" /> | |||||
<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}" /> | |||||
<input type="hidden" name="notification_id" value="{{.ID}}"> | |||||
<input type="hidden" name="status" value="unread"> | |||||
<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}"> | |||||
<button class="ui mini button" title='{{$.locale.Tr "notification.mark_as_unread"}}' | <button class="ui mini button" title='{{$.locale.Tr "notification.mark_as_unread"}}' | ||||
data-url="{{AppSubUrl}}/notifications/status" | data-url="{{AppSubUrl}}/notifications/status" | ||||
data-status="unread" | data-status="unread" |
<div class="ui stackable grid"> | <div class="ui stackable grid"> | ||||
<div class="ui five wide column"> | <div class="ui five wide column"> | ||||
<div class="ui card"> | <div class="ui card"> | ||||
<div id="profile-avatar" class="content gt-df"/> | |||||
<div id="profile-avatar" class="content gt-df"> | |||||
{{if eq .SignedUserName .Owner.Name}} | {{if eq .SignedUserName .Owner.Name}} | ||||
<a class="image" href="{{AppSubUrl}}/user/settings" data-tooltip-content="{{.locale.Tr "user.change_avatar"}}"> | <a class="image" href="{{AppSubUrl}}/user/settings" data-tooltip-content="{{.locale.Tr "user.change_avatar"}}"> | ||||
{{avatar $.Context .Owner 290}} | {{avatar $.Context .Owner 290}} |
</div> | </div> | ||||
<div class="field {{if .Err_Gravatar}}error{{end}}"> | <div class="field {{if .Err_Gravatar}}error{{end}}"> | ||||
<label for="gravatar">Avatar {{.locale.Tr "email"}}</label> | <label for="gravatar">Avatar {{.locale.Tr "email"}}</label> | ||||
<input id="gravatar" name="gravatar" value="{{.SignedUser.AvatarEmail}}" /> | |||||
<input id="gravatar" name="gravatar" value="{{.SignedUser.AvatarEmail}}"> | |||||
</div> | </div> | ||||
{{end}} | {{end}} | ||||