Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor of link creation #15619

Merged
merged 3 commits into from
Apr 30, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion models/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ func (u *User) CanImportLocal() bool {
// DashboardLink returns the user dashboard page link.
func (u *User) DashboardLink() string {
if u.IsOrganization() {
return setting.AppSubURL + "/org/" + u.Name + "/dashboard/"
return u.OrganisationLink() + "/dashboard/"
}
return setting.AppSubURL + "/"
}
Expand All @@ -317,6 +317,11 @@ func (u *User) HTMLURL() string {
return setting.AppURL + u.Name
}

// OrganisationLink returns the organization sub page link.
func (u *User) OrganisationLink() string {
return setting.AppSubURL + "/org/" + u.Name
}

// GenerateEmailActivateCode generates an activate code based on user information and given e-mail.
func (u *User) GenerateEmailActivateCode(email string) string {
code := base.CreateTimeLimitCode(
Expand Down
5 changes: 2 additions & 3 deletions modules/context/org.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"strings"

"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/setting"
)

// Organization contains organization context
Expand Down Expand Up @@ -70,7 +69,7 @@ func HandleOrgAssignment(ctx *Context, args ...bool) {

// Force redirection when username is actually a user.
if !org.IsOrganization() {
ctx.Redirect(setting.AppSubURL + "/" + org.Name)
ctx.Redirect(org.HomeLink())
return
}

Expand Down Expand Up @@ -118,7 +117,7 @@ func HandleOrgAssignment(ctx *Context, args ...bool) {
ctx.Data["IsOrganizationMember"] = ctx.Org.IsMember
ctx.Data["CanCreateOrgRepo"] = ctx.Org.CanCreateOrgRepo

ctx.Org.OrgLink = setting.AppSubURL + "/org/" + org.Name
ctx.Org.OrgLink = org.OrganisationLink()
ctx.Data["OrgLink"] = ctx.Org.OrgLink

// Team.
Expand Down
2 changes: 1 addition & 1 deletion routers/org/org.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,5 +75,5 @@ func CreatePost(ctx *context.Context) {
}
log.Trace("Organization created: %s", org.Name)

ctx.Redirect(setting.AppSubURL + "/org/" + form.OrgName + "/dashboard")
ctx.Redirect(org.DashboardLink())
}
3 changes: 1 addition & 2 deletions routers/repo/issue_label.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/web"
"code.gitea.io/gitea/services/forms"
issue_service "code.gitea.io/gitea/services/issue"
Expand Down Expand Up @@ -88,7 +87,7 @@ func RetrieveLabels(ctx *context.Context) {
ctx.ServerError("org.IsOwnedBy", err)
return
}
ctx.Org.OrgLink = setting.AppSubURL + "/org/" + org.LowerName
ctx.Org.OrgLink = org.OrganisationLink()
ctx.Data["IsOrganizationOwner"] = ctx.Org.IsOwner
ctx.Data["OrganizationLink"] = ctx.Org.OrgLink
}
Expand Down
2 changes: 1 addition & 1 deletion routers/repo/migrate.go
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ func MigratePost(ctx *context.Context) {

err = task.MigrateRepository(ctx.User, ctxUser, opts)
if err == nil {
ctx.Redirect(setting.AppSubURL + "/" + ctxUser.Name + "/" + opts.RepoName)
ctx.Redirect(ctxUser.HomeLink() + "/" + opts.RepoName)
return
}

Expand Down
4 changes: 2 additions & 2 deletions routers/repo/pull.go
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ func ForkPost(ctx *context.Context) {
}
repo, has := models.HasForkedRepo(ctxUser.ID, traverseParentRepo.ID)
if has {
ctx.Redirect(setting.AppSubURL + "/" + ctxUser.Name + "/" + repo.Name)
ctx.Redirect(ctxUser.HomeLink() + "/" + repo.Name)
return
}
if !traverseParentRepo.IsFork {
Expand Down Expand Up @@ -243,7 +243,7 @@ func ForkPost(ctx *context.Context) {
}

log.Trace("Repository forked[%d]: %s/%s", forkRepo.ID, ctxUser.Name, repo.Name)
ctx.Redirect(setting.AppSubURL + "/" + ctxUser.Name + "/" + repo.Name)
ctx.Redirect(ctxUser.HomeLink() + "/" + repo.Name)
}

func checkPullInfo(ctx *context.Context) *models.Issue {
Expand Down
4 changes: 2 additions & 2 deletions routers/repo/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ func CreatePost(ctx *context.Context) {
repo, err = repo_service.GenerateRepository(ctx.User, ctxUser, templateRepo, opts)
if err == nil {
log.Trace("Repository generated [%d]: %s/%s", repo.ID, ctxUser.Name, repo.Name)
ctx.Redirect(setting.AppSubURL + "/" + ctxUser.Name + "/" + repo.Name)
ctx.Redirect(ctxUser.HomeLink() + "/" + repo.Name)
return
}
} else {
Expand All @@ -259,7 +259,7 @@ func CreatePost(ctx *context.Context) {
})
if err == nil {
log.Trace("Repository created [%d]: %s/%s", repo.ID, ctxUser.Name, repo.Name)
ctx.Redirect(setting.AppSubURL + "/" + ctxUser.Name + "/" + repo.Name)
ctx.Redirect(ctxUser.HomeLink() + "/" + repo.Name)
return
}
}
Expand Down
6 changes: 3 additions & 3 deletions routers/repo/setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ func SettingsPost(ctx *context.Context) {

log.Trace("Repository transfer process was started: %s/%s -> %s", ctx.Repo.Owner.Name, repo.Name, newOwner)
ctx.Flash.Success(ctx.Tr("repo.settings.transfer_started", newOwner.DisplayName()))
ctx.Redirect(setting.AppSubURL + "/" + ctx.Repo.Owner.Name + "/" + repo.Name + "/settings")
ctx.Redirect(ctx.Repo.Owner.HomeLink() + "/" + repo.Name + "/settings")

case "cancel_transfer":
if !ctx.Repo.IsOwner() {
Expand All @@ -512,7 +512,7 @@ func SettingsPost(ctx *context.Context) {
if err != nil {
if models.IsErrNoPendingTransfer(err) {
ctx.Flash.Error("repo.settings.transfer_abort_invalid")
ctx.Redirect(setting.AppSubURL + "/" + ctx.User.Name + "/" + repo.Name + "/settings")
ctx.Redirect(ctx.User.HomeLink() + "/" + repo.Name + "/settings")
} else {
ctx.ServerError("GetPendingRepositoryTransfer", err)
}
Expand All @@ -532,7 +532,7 @@ func SettingsPost(ctx *context.Context) {

log.Trace("Repository transfer process was cancelled: %s/%s ", ctx.Repo.Owner.Name, repo.Name)
ctx.Flash.Success(ctx.Tr("repo.settings.transfer_abort_success", repoTransfer.Recipient.Name))
ctx.Redirect(setting.AppSubURL + "/" + ctx.Repo.Owner.Name + "/" + repo.Name + "/settings")
ctx.Redirect(ctx.Repo.Owner.HomeLink() + "/" + repo.Name + "/settings")

case "delete":
if !ctx.Repo.IsOwner() {
Expand Down
2 changes: 1 addition & 1 deletion templates/admin/org/list.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
<td>{{.NumMembers}}</td>
<td>{{.NumRepos}}</td>
<td><span title="{{.CreatedUnix.FormatLong}}">{{.CreatedUnix.FormatShort}}</span></td>
<td><a href="{{AppSubUrl}}/org/{{.Name}}/settings">{{svg "octicon-pencil"}}</a></td>
<td><a href="{{.OrganisationLink}}/settings">{{svg "octicon-pencil"}}</a></td>
</tr>
{{end}}
</tbody>
Expand Down
14 changes: 7 additions & 7 deletions templates/user/dashboard/navbar.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<span class="truncated-item-name">{{.SignedUser.ShortName 40}}</span>
</a>
{{range .Orgs}}
<a class="{{if eq $.ContextUser.ID .ID}}active selected{{end}} item truncated-item-container" title="{{.Name}}" href="{{AppSubUrl}}/org/{{.Name}}/{{if $.PageIsIssues}}issues{{else if $.PageIsPulls}}pulls{{else if $.PageIsMilestonesDashboard}}milestones{{else}}dashboard{{end}}">
<a class="{{if eq $.ContextUser.ID .ID}}active selected{{end}} item truncated-item-container" title="{{.Name}}" href="{{.OrganisationLink}}/{{if $.PageIsIssues}}issues{{else if $.PageIsPulls}}pulls{{else if $.PageIsMilestonesDashboard}}milestones{{else}}dashboard{{end}}">
{{avatar .}}
<span class="truncated-item-name">{{.ShortName 40}}</span>
<span class="org-visibility">
Expand Down Expand Up @@ -58,12 +58,12 @@
{{.i18n.Tr "home.filter_by_team_repositories"}}
</div>
<div class="scrolling menu items">
<a class="{{if not $.Team}}active selected{{end}} item" title="{{.i18n.Tr "all"}}" href="{{AppSubUrl}}/org/{{$.Org.Name}}/{{if $.PageIsIssues}}issues{{else if $.PageIsPulls}}pulls{{else if $.PageIsMilestonesDashboard}}milestones{{else}}dashboard{{end}}">
<a class="{{if not $.Team}}active selected{{end}} item" title="{{.i18n.Tr "all"}}" href="{{$.Org.OrganisationLink}}/{{if $.PageIsIssues}}issues{{else if $.PageIsPulls}}pulls{{else if $.PageIsMilestonesDashboard}}milestones{{else}}dashboard{{end}}">
{{.i18n.Tr "all"}}
</a>
{{range .Org.Teams}}
{{if not .IncludesAllRepositories}}
<a class="{{if $.Team}}{{if eq $.Team.ID .ID}}active selected{{end}}{{end}} item" title="{{.Name}}" href="{{AppSubUrl}}/org/{{$.Org.Name}}/{{if $.PageIsIssues}}issues{{else if $.PageIsPulls}}pulls{{else if $.PageIsMilestonesDashboard}}milestones{{else}}dashboard{{end}}/{{.Name}}">
<a class="{{if $.Team}}{{if eq $.Team.ID .ID}}active selected{{end}}{{end}} item" title="{{.Name}}" href="{{$.Org.OrganisationLink}}/{{if $.PageIsIssues}}issues{{else if $.PageIsPulls}}pulls{{else if $.PageIsMilestonesDashboard}}milestones{{else}}dashboard{{end}}/{{.Name}}">
{{.Name}}
</a>
{{end}}
Expand All @@ -76,21 +76,21 @@

{{if .ContextUser.IsOrganization}}
<div class="right stackable menu">
<a class="{{if .PageIsNews}}active{{end}} item" style="margin-left: auto" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/dashboard{{if .Team}}/{{.Team.Name}}{{end}}">
<a class="{{if .PageIsNews}}active{{end}} item" style="margin-left: auto" href="{{.ContextUser.DashboardLink}}{{if .Team}}/{{.Team.Name}}{{end}}">
{{svg "octicon-rss"}}&nbsp;{{.i18n.Tr "activities"}}
</a>
{{if not .UnitIssuesGlobalDisabled}}
<a class="{{if .PageIsIssues}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/issues{{if .Team}}/{{.Team.Name}}{{end}}">
<a class="{{if .PageIsIssues}}active{{end}} item" href="{{.ContextUser.OrganisationLink}}/issues{{if .Team}}/{{.Team.Name}}{{end}}">
{{svg "octicon-issue-opened"}}&nbsp;{{.i18n.Tr "issues"}}
</a>
{{end}}
{{if not .UnitPullsGlobalDisabled}}
<a class="{{if .PageIsPulls}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/pulls{{if .Team}}/{{.Team.Name}}{{end}}">
<a class="{{if .PageIsPulls}}active{{end}} item" href="{{.ContextUser.OrganisationLink}}/pulls{{if .Team}}/{{.Team.Name}}{{end}}">
{{svg "octicon-git-pull-request"}}&nbsp;{{.i18n.Tr "pull_requests"}}
</a>
{{end}}
{{if and .ShowMilestonesDashboardPage (not (and .UnitIssuesGlobalDisabled .UnitPullsGlobalDisabled))}}
<a class="{{if .PageIsMilestonesDashboard}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/milestones{{if .Team}}/{{.Team.Name}}{{end}}">
<a class="{{if .PageIsMilestonesDashboard}}active{{end}} item" href="{{.ContextUser.OrganisationLink}}/milestones{{if .Team}}/{{.Team.Name}}{{end}}">
{{svg "octicon-milestone"}}&nbsp;{{.i18n.Tr "milestones"}}
</a>
{{end}}
Expand Down
2 changes: 1 addition & 1 deletion templates/user/settings/organization.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
{{range .Orgs}}
<div class="item">
<div class="right floated content">
<form method="post" action="{{AppSubUrl}}/org/{{.Name}}/members/action/leave">
<form method="post" action="{{.OrganisationLink}}/members/action/leave">
{{$.CsrfTokenHtml}}
<button type="submit" class="ui blue small button" name="uid" value="{{.ID}}">{{$.i18n.Tr "org.members.leave"}}</button>
</form>
Expand Down