1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-22 18:28:37 +00:00

Allow Gogs to run from a suburl behind a reverse proxy. e.g. http://mydomain.com/gogs/

Conflicts:
	modules/setting/setting.go

Conflicts:
	templates/repo/release/list.tmpl
	templates/user/dashboard/dashboard.tmpl

Conflicts:
	routers/repo/setting.go
This commit is contained in:
Martin van Beurden
2014-09-14 19:35:22 +02:00
parent 4f74b4e657
commit 0055cbd365
91 changed files with 322 additions and 300 deletions

View File

@@ -1,7 +1,7 @@
{{template "ng/base/head" .}}
{{template "ng/base/header" .}}
<div id="sign-wrapper">
<form class="form-align form panel sign-panel sign-form container panel-radius" id="sign-up-form" action="/user/activate" method="post">
<form class="form-align form panel sign-panel sign-form container panel-radius" id="sign-up-form" action="{{AppRootSubUrl}}/user/activate" method="post">
{{.CsrfTokenHtml}}
<div class="panel-header">
<h2>{{.i18n.Tr "auth.active_your_account"}}</h2>

View File

@@ -1,7 +1,7 @@
{{template "ng/base/head" .}}
{{template "ng/base/header" .}}
<div id="sign-wrapper">
<form class="form-align form panel sign-panel sign-form container panel-radius" id="sign-up-form" action="/user/forget_password" method="post">
<form class="form-align form panel sign-panel sign-form container panel-radius" id="sign-up-form" action="{{AppRootSubUrl}}/user/forget_password" method="post">
{{.CsrfTokenHtml}}
<div class="panel-header">
<h2>{{.i18n.Tr "auth.forgot_password"}}</h2>

View File

@@ -1,7 +1,7 @@
{{template "ng/base/head" .}}
{{template "ng/base/header" .}}
<div id="sign-wrapper">
<form class="form-align form panel sign-panel sign-form container panel-radius" id="sign-up-form" action="/user/reset_password?code={{.Code}}" method="post">
<form class="form-align form panel sign-panel sign-form container panel-radius" id="sign-up-form" action="{{AppRootSubUrl}}/user/reset_password?code={{.Code}}" method="post">
{{.CsrfTokenHtml}}
<div class="panel-header">
<h2>{{.i18n.Tr "auth.reset_password"}}</h2>

View File

@@ -1,7 +1,7 @@
{{template "ng/base/head" .}}
{{template "ng/base/header" .}}
<div id="sign-wrapper">
<form class="form-align form panel sign-panel sign-form container panel-radius" id="sign-up-form" action="/user/login" method="post">
<form class="form-align form panel sign-panel sign-form container panel-radius" id="sign-up-form" action="{{AppRootSubUrl}}/user/login" method="post">
<div class="panel-header">
<h2>{{if .IsSocialLogin}}{{.i18n.Tr "social_sign_in" | Str2html}}{{else}}{{.i18n.Tr "sign_in"}}{{end}}</h2>
</div>
@@ -24,12 +24,12 @@
<div class="field">
<span class="form-label"></span>
<button class="btn btn-green btn-large btn-radius">{{.i18n.Tr "sign_in"}}</button>&nbsp;&nbsp;&nbsp;&nbsp;
{{if not .IsSocialLogin}}<a href="/user/forget_password">{{.i18n.Tr "auth.forget_password"}}</a>{{end}}
{{if not .IsSocialLogin}}<a href="{{AppRootSubUrl}}/user/forget_password">{{.i18n.Tr "auth.forget_password"}}</a>{{end}}
</div>
{{if not .IsSocialLogin}}
<div class="field">
<label></label>
<a href="/user/sign_up">{{.i18n.Tr "auth.sign_up_now" | Str2html}}</a>
<a href="{{AppRootSubUrl}}/user/sign_up">{{.i18n.Tr "auth.sign_up_now" | Str2html}}</a>
</div>
{{if .OauthEnabled}}
<hr/>

View File

@@ -1,7 +1,7 @@
{{template "ng/base/head" .}}
{{template "ng/base/header" .}}
<div id="sign-wrapper">
<form class="form-align form panel panel-radius sign-panel sign-form container" id="sign-up-form" action="/user/sign_up" method="post">
<form class="form-align form panel panel-radius sign-panel sign-form container" id="sign-up-form" action="{{AppRootSubUrl}}/user/sign_up" method="post">
<div class="panel-header">
<h2>{{if .IsSocialLogin}}{{.i18n.Tr "social_sign_in" | Str2html}}{{else}}{{.i18n.Tr "sign_up"}}{{end}}</h2>
</div>
@@ -40,7 +40,7 @@
</div>
<div class="field">
<span class="form-label"></span>
<a href="/user/login">{{if .IsSocialLogin}}{{.i18n.Tr "auth.social_register_hepler_msg"}}{{else}}{{.i18n.Tr "auth.register_hepler_msg"}}{{end}}</a>
<a href="{{AppRootSubUrl}}/user/login">{{if .IsSocialLogin}}{{.i18n.Tr "auth.social_register_hepler_msg"}}{{else}}{{.i18n.Tr "auth.register_hepler_msg"}}{{end}}</a>
</div>
{{end}}
</div>

View File

@@ -12,17 +12,17 @@
</div>
<div class="content left {{if eq .GetOpType 5}}push-news{{end}} grid-4-5">
<p class="text-bold">
<a href="/{{.GetActUserName}}">{{.GetActUserName}}</a>
<a href="{{AppRootSubUrl}}/{{.GetActUserName}}">{{.GetActUserName}}</a>
{{if eq .GetOpType 1}}
{{$.i18n.Tr "action.create_repo" .GetRepoLink .GetRepoLink | Str2html}}
{{$.i18n.Tr "action.create_repo" AppRootSubUrl .GetRepoLink .GetRepoLink | Str2html}}
{{else if eq .GetOpType 5}}
{{$.i18n.Tr "action.commit_repo" .GetRepoLink .GetBranch .GetBranch .GetRepoLink .GetRepoLink | Str2html}}
{{$.i18n.Tr "action.commit_repo" AppRootSubUrl .GetRepoLink .GetBranch .GetBranch AppRootSubUrl .GetRepoLink .GetRepoLink | Str2html}}
{{else if eq .GetOpType 6}}
{{ $index := index .GetIssueInfos 0}}
{{$.i18n.Tr "action.create_issue" .GetRepoLink $index .GetRepoLink $index | Str2html}}
{{$.i18n.Tr "action.create_issue" AppRootSubUrl .GetRepoLink $index .GetRepoLink $index | Str2html}}
{{else if eq .GetOpType 10}}
{{ $index := index .GetIssueInfos 0}}
{{$.i18n.Tr "action.comment_issue" .GetRepoLink $index .GetRepoLink $index | Str2html}}
{{$.i18n.Tr "action.comment_issue" AppRootSubUrl .GetRepoLink $index .GetRepoLink $index | Str2html}}
{{end}}
</p>
{{if eq .GetOpType 5}}
@@ -31,7 +31,7 @@
{{ $push := ActionContent2Commits .}}
{{ $repoLink := .GetRepoLink}}
{{range $push.Commits}}
<li><img class="avatar-16" src="{{AvatarLink .AuthorEmail}}?s=16"> <a href="/{{$repoLink}}/commit/{{.Sha1}}">{{ShortSha .Sha1}}</a> <span class="text-truncate grid-4-5">{{.Message}}</span></li>
<li><img class="avatar-16" src="{{AvatarLink .AuthorEmail}}?s=16"> <a href="{{AppRootSubUrl}}/{{$repoLink}}/commit/{{.Sha1}}">{{ShortSha .Sha1}}</a> <span class="text-truncate grid-4-5">{{.Message}}</span></li>
{{end}}
</ul>
</div>
@@ -58,9 +58,9 @@
<i class="octicon octicon-plus"></i>
</button>
<ul class="menu menu-vertical drop-down" id="dashboard-new-repo-menu">
<li><a href="/repo/create"><i class="octicon octicon-repo-create"></i>{{.i18n.Tr "new_repo"}}</a></li>
<li><a href="/repo/migrate"><i class="octicon octicon-repo-clone"></i>{{.i18n.Tr "new_migrate"}}</a></li>
<li><a href="/org/create"><i class="octicon octicon-organization"></i>{{.i18n.Tr "new_org"}}</a></li>
<li><a href="{{AppRootSubUrl}}/repo/create"><i class="octicon octicon-repo-create"></i>{{.i18n.Tr "new_repo"}}</a></li>
<li><a href="{{AppRootSubUrl}}/repo/migrate"><i class="octicon octicon-repo-clone"></i>{{.i18n.Tr "new_migrate"}}</a></li>
<li><a href="{{AppRootSubUrl}}/org/create"><i class="octicon octicon-organization"></i>{{.i18n.Tr "new_org"}}</a></li>
</ul>
</li>
</ul>
@@ -75,7 +75,7 @@
<ul class="list-no-style">
{{range .Repos}}
<li {{if .IsPrivate}}class="private"{{end}}>
<a href="/{{$.ContextUser.Name}}/{{.Name}}">
<a href="{{AppRootSubUrl}}/{{$.ContextUser.Name}}/{{.Name}}">
<i class="octicon octicon-{{if .IsPrivate}}lock{{else if .IsFork}}repo-forked{{else if .IsMirror}}repo-clone{{else}}repo{{end}}"></i>
<span class="repo-name">
<strong class="repo">{{.Name}}</strong>
@@ -125,7 +125,7 @@
<ul class="list-no-style">
{{range .ContextUser.Orgs}}
<li>
<a href="/{{.Name}}">
<a href="{{AppRootSubUrl}}/{{.Name}}">
<i class="octicon octicon-organization"></i>
<span class="repo-name">
<strong class="repo">{{.Name}}</strong>
@@ -150,7 +150,7 @@
<ul class="list-no-style">
{{range .Mirrors}}
<li {{if .IsPrivate}}class="private"{{end}}>
<a href="/{{$.ContextUser.Name}}/{{.Name}}">
<a href="{{AppRootSubUrl}}/{{$.ContextUser.Name}}/{{.Name}}">
<i class="octicon octicon-repo-clone"></i>
<span class="repo-name">
<strong class="repo">{{.Name}}</strong>

View File

@@ -9,7 +9,7 @@
<p class="panel-header"><strong>{{.i18n.Tr "home.switch_dashboard_context"}}</strong></p>
<ul class="menu menu-vertical switching-list" id="dashboard-switch-menu">
<li class="org {{if eq .ContextUser.Id .SignedUser.Id}}checked{{end}}">
<a href="/">
<a href="{{AppRootSubUrl}}/">
<i class="octicon octicon-check"></i>
<img class="avatar-24" src="{{.SignedUser.AvatarLink}}" alt="user-avatar" />
{{.SignedUser.Name}}
@@ -25,10 +25,10 @@
</li>
{{end}}
<!-- <li>
<a href="/user/settings/orgs"><i class="octicon octicon-organization"></i>{{.i18n.Tr "manage_org"}}</a>
<a href="{{AppRootSubUrl}}/user/settings/orgs"><i class="octicon octicon-organization"></i>{{.i18n.Tr "manage_org"}}</a>
</li> -->
<li>
<a href="/org/create"><i class="octicon octicon-plus"></i>{{.i18n.Tr "new_org"}}</a>
<a href="{{AppRootSubUrl}}/org/create"><i class="octicon octicon-plus"></i>{{.i18n.Tr "new_org"}}</a>
</li>
</ul>
</div>

View File

@@ -3,10 +3,10 @@
<div id="body-nav">
<div class="container">
<ul class="nav nav-pills pull-right">
<li><a href="/">News Feed</a></li>
<li class="active"><a href="/issues">Issues</a></li>
<!-- <li><a href="/pulls">Pull Requests</a></li>
<li><a href="/stars">Stars</a></li> -->
<li><a href="{{AppRootSubUrl}}/">News Feed</a></li>
<li class="active"><a href="{{AppRootSubUrl}}/issues">Issues</a></li>
<!-- <li><a href="{{AppRootSubUrl}}/pulls">Pull Requests</a></li>
<li><a href="{{AppRootSubUrl}}/stars">Stars</a></li> -->
</ul>
<h3>Your Issues</h3>
</div>
@@ -17,30 +17,30 @@
<div id="issue">
<div class="col-md-3 filter-list">
<ul class="list-unstyled">
<li><a href="/issues?state={{.State}}&repoid={{.RepoId}}"{{if eq .ViewType "all"}} class="active"{{end}}>In your repositories <strong class="pull-right">{{.IssueStats.AllCount}}</strong></a></li>
<li><a href="/issues?type=assigned&repoid={{.RepoId}}&state={{.State}}"{{if eq .ViewType "assigned"}} class="active"{{end}}>Assigned to you <strong class="pull-right">{{.IssueStats.AssignCount}}</strong></a></li>
<li><a href="/issues?type=created_by&repoid={{.RepoId}}&state={{.State}}"{{if eq .ViewType "created_by"}} class="active"{{end}}>Created by you <strong class="pull-right">{{.IssueStats.CreateCount}}</strong></a></li>
<li><a href="{{AppRootSubUrl}}/issues?state={{.State}}&repoid={{.RepoId}}"{{if eq .ViewType "all"}} class="active"{{end}}>In your repositories <strong class="pull-right">{{.IssueStats.AllCount}}</strong></a></li>
<li><a href="{{AppRootSubUrl}}/issues?type=assigned&repoid={{.RepoId}}&state={{.State}}"{{if eq .ViewType "assigned"}} class="active"{{end}}>Assigned to you <strong class="pull-right">{{.IssueStats.AssignCount}}</strong></a></li>
<li><a href="{{AppRootSubUrl}}/issues?type=created_by&repoid={{.RepoId}}&state={{.State}}"{{if eq .ViewType "created_by"}} class="active"{{end}}>Created by you <strong class="pull-right">{{.IssueStats.CreateCount}}</strong></a></li>
<li><hr/></li>
{{range .Repos}}
<li><a href="/issues?type={{$.ViewType}}{{if eq $.RepoId .Id}}{{else}}&repoid={{.Id}}{{end}}&state={{$.State}}" class="sm{{if eq $.RepoId .Id}} active{{end}}">{{$.SignedUser.Name}}/{{.Name}} <strong class="pull-right">{{if $.IsShowClosed}}{{.NumClosedIssues}}{{else}}{{.NumOpenIssues}}{{end}}</strong></a></li>
<li><a href="{{AppRootSubUrl}}/issues?type={{$.ViewType}}{{if eq $.RepoId .Id}}{{else}}&repoid={{.Id}}{{end}}&state={{$.State}}" class="sm{{if eq $.RepoId .Id}} active{{end}}">{{$.SignedUser.Name}}/{{.Name}} <strong class="pull-right">{{if $.IsShowClosed}}{{.NumClosedIssues}}{{else}}{{.NumOpenIssues}}{{end}}</strong></a></li>
{{end}}
</ul>
</div>
<div class="col-md-9">
<div class="filter-option">
<div class="btn-group">
<a class="btn btn-default issue-open{{if not .IsShowClosed}} active{{end}}" href="/issues?type={{.ViewType}}&repoid={{.RepoId}}">Open</a>
<a class="btn btn-default issue-close{{if .IsShowClosed}} active{{end}}" href="/issues?type={{.ViewType}}&repoid={{.RepoId}}&state=closed">Closed</a>
<a class="btn btn-default issue-open{{if not .IsShowClosed}} active{{end}}" href="{{AppRootSubUrl}}/issues?type={{.ViewType}}&repoid={{.RepoId}}">Open</a>
<a class="btn btn-default issue-close{{if .IsShowClosed}} active{{end}}" href="{{AppRootSubUrl}}/issues?type={{.ViewType}}&repoid={{.RepoId}}&state=closed">Closed</a>
</div>
</div>
<div class="issues list-group">
{{range .Issues}}{{if .}}
<div class="list-group-item issue-item" id="issue-{{.Id}}">
<span class="number pull-right">#{{.Index}}</span>
<h5 class="title"><a href="/{{.Repo.Owner.Name}}/{{.Repo.Name}}/issues/{{.Index}}">{{.Name}}</a></h5>
<h5 class="title"><a href="{{AppRootSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}/issues/{{.Index}}">{{.Name}}</a></h5>
<p class="info">
<span class="author"><img class="avatar" src="{{.Poster.AvatarLink}}" alt="" width="20"/>
<a href="/user/{{.Poster.Name}}">{{.Poster.Name}}</a></span>
<a href="{{AppRootSubUrl}}/user/{{.Poster.Name}}">{{.Poster.Name}}</a></span>
<span class="time">{{TimeSince .Created $.Lang}}</span>
<span class="comment"><i class="fa fa-comments"></i> {{.NumComments}}</span>
</p>

View File

@@ -66,7 +66,7 @@
<li>
<div class="meta pull-right"><!-- <i class="fa fa-star"></i> {{.NumStars}} --> <i class="fa fa-code-fork"></i> {{.NumForks}}</div>
<h4>
<a href="/{{$.Owner.Name}}/{{.Name}}">{{.Name}}{{if .IsPrivate}} <span class="label label-default">Private</span>{{end}}</a>
<a href="{{AppRootSubUrl}}/{{$.Owner.Name}}/{{.Name}}">{{.Name}}{{if .IsPrivate}} <span class="label label-default">Private</span>{{end}}</a>
</h4>
<p class="desc">{{.Description}}</p>
<div class="info">Last updated {{TimeSince .Updated $.Lang}}</div>

View File

@@ -11,7 +11,7 @@
<p class="panel-header"><strong>{{.i18n.Tr "settings.delete_account"}}</strong></p>
<div class="panel-body panel-content">
<span class="alert alert-red alert-radius block"><i class="octicon octicon-alert"></i>{{.i18n.Tr "settings.delete_prompt" | Str2html}}</span>
<form action="/user/settings/delete" method="post">
<form action="{{AppRootSubUrl}}/user/settings/delete" method="post">
{{.CsrfTokenHtml}}
<p class="field">
<span class="form-label"></span>

View File

@@ -2,11 +2,11 @@
<p class="panel-header"><strong>{{.i18n.Tr "settings"}}</strong></p>
<div class="panel-body">
<ul class="menu menu-vertical switching-list grid-1-5 left">
<li {{if .PageIsSettingsProfile}}class="current"{{end}}><a href="/user/settings">{{.i18n.Tr "settings.profile"}}</a></li>
<li {{if .PageIsSettingsPassword}}class="current"{{end}}><a href="/user/settings/password">{{.i18n.Tr "settings.password"}}</a></li>
<li {{if .PageIsSettingsSSHKeys}}class="current"{{end}}><a href="/user/settings/ssh">{{.i18n.Tr "settings.ssh_keys"}}</a></li>
<li {{if .PageIsSettingsSocial}}class="current"{{end}}><a href="/user/settings/social">{{.i18n.Tr "settings.social"}}</a></li>
<li {{if .PageIsSettingsDelete}}class="current"{{end}}><a href="/user/settings/delete">{{.i18n.Tr "settings.delete"}}</a></li>
<li {{if .PageIsSettingsProfile}}class="current"{{end}}><a href="{{AppRootSubUrl}}/user/settings">{{.i18n.Tr "settings.profile"}}</a></li>
<li {{if .PageIsSettingsPassword}}class="current"{{end}}><a href="{{AppRootSubUrl}}/user/settings/password">{{.i18n.Tr "settings.password"}}</a></li>
<li {{if .PageIsSettingsSSHKeys}}class="current"{{end}}><a href="{{AppRootSubUrl}}/user/settings/ssh">{{.i18n.Tr "settings.ssh_keys"}}</a></li>
<li {{if .PageIsSettingsSocial}}class="current"{{end}}><a href="{{AppRootSubUrl}}/user/settings/social">{{.i18n.Tr "settings.social"}}</a></li>
<li {{if .PageIsSettingsDelete}}class="current"{{end}}><a href="{{AppRootSubUrl}}/user/settings/delete">{{.i18n.Tr "settings.delete"}}</a></li>
</ul>
</div>
</div>

View File

@@ -9,7 +9,7 @@
<div id="setting-content">
<div id="user-profile-setting-content" class="panel panel-radius">
<p class="panel-header"><strong>{{.i18n.Tr "settings.change_password"}}</strong></p>
<form class="form form-align panel-body" id="user-profile-form" action="/user/settings/password" method="post">
<form class="form form-align panel-body" id="user-profile-form" action="{{AppRootSubUrl}}/user/settings/password" method="post">
{{.CsrfTokenHtml}}
<p class="field">
<label class="req" for="old-password">{{.i18n.Tr "settings.old_password"}}</label>

View File

@@ -11,7 +11,7 @@
<div class="panel-header">
<strong>{{.i18n.Tr "settings.public_profile"}}</strong>
</div>
<form class="form form-align panel-body" id="user-profile-form" action="/user/settings" method="post">
<form class="form form-align panel-body" id="user-profile-form" action="{{AppRootSubUrl}}/user/settings" method="post">
{{.CsrfTokenHtml}}
<div class="text-center panel-desc">{{.i18n.Tr "settings.profile_desc"}}</div>
<div class="field">

View File

@@ -20,7 +20,7 @@
<p class="print">{{.Identity}}</p>
<p class="activity"><i>{{$.i18n.Tr "settings.add_on"}} {{DateFormat .Created "M d, Y"}} — <i class="octicon octicon-info"></i>{{$.i18n.Tr "settings.last_used"}} {{DateFormat .Updated "M d, Y"}}</i></p>
</div>
<a class="right btn btn-small btn-red btn-header btn-radius" href="/user/settings/social?remove={{.Id}}">{{$.i18n.Tr "settings.unbind"}}</a>
<a class="right btn btn-small btn-red btn-header btn-radius" href="{{AppRootSubUrl}}/user/settings/social?remove={{.Id}}">{{$.i18n.Tr "settings.unbind"}}</a>
</li>
{{end}}
</ul>

View File

@@ -23,7 +23,7 @@
<p class="print">{{.Fingerprint}}</p>
<p class="activity"><i>{{$.i18n.Tr "settings.add_on"}} {{DateFormat .Created "M d, Y"}} — <i class="octicon octicon-info"></i>{{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} {{DateFormat .Updated "M d, Y"}}{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i></p>
</div>
<form action="/user/settings/ssh" method="post">
<form action="{{AppRootSubUrl}}/user/settings/ssh" method="post">
{{$.CsrfTokenHtml}}
<input name="_method" type="hidden" value="DELETE">
<input name="id" type="hidden" value="{{.Id}}">
@@ -35,7 +35,7 @@
</div>
<p>{{.i18n.Tr "settings.ssh_helper" | Str2html}}</p>
<br>
<form class="panel panel-radius form form-align hide" id="user-ssh-add-form" action="/user/settings/ssh" method="post">
<form class="panel panel-radius form form-align hide" id="user-ssh-add-form" action="{{AppRootSubUrl}}/user/settings/ssh" method="post">
{{.CsrfTokenHtml}}
<p class="panel-header"><strong>{{.i18n.Tr "settings.add_new_key"}}</strong></p>
<div class="panel-body">