diff --git a/cmd/web.go b/cmd/web.go index 2fdfe4332..b2521de96 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -96,7 +96,7 @@ func runWeb(*cli.Context) { r.Get("/stars", user.Stars) }, reqSignIn) - m.Group("/api", func(r martini.Router) { + m.Group("/api", func(_ martini.Router) { m.Group("/v1", func(r martini.Router) { // Miscellaneous. r.Post("/markdown", bindIgnErr(apiv1.MarkdownForm{}), v1.Markdown) @@ -190,6 +190,8 @@ func runWeb(*cli.Context) { m.Group("/o", func(r martini.Router) { r.Get("/:org", org.Organization) + r.Get("/:org/members", org.Members) + r.Get("/:org/teams", org.Teams) }) m.Group("/:username/:reponame", func(r martini.Router) { diff --git a/public/css/gogs.css b/public/css/gogs.css index 1e29eeba5..7fdde19cc 100755 --- a/public/css/gogs.css +++ b/public/css/gogs.css @@ -638,6 +638,47 @@ html, body { margin: 0 .5em; } +#dashboard-switch .btn { + height: 40px; +} + +#dashboard-switch { + margin-top: 14px; + margin-right: 18px; +} + +#dashboard-switch .dropdown-menu { + padding: 0; +} + +#dashboard-switch-menu { + width: 180px; + margin-bottom: 0; + padding-bottom: 0; +} + +#dashboard-switch-menu > li > a { + display: block; + padding: .8em 1.2em; +} + +#dashboard-switch-menu > li { + border-bottom: 1px solid #eaeaea; +} + +#dashboard-switch-menu > li .fa { + opacity: 0; + margin-right: 16px; +} + +#dashboard-switch-menu > li.checked .fa { + opacity: 1; +} + +#dashboard-switch-menu > li:last-child { + border-bottom: none; +} + /* gogits repo single page */ #body-nav.repo-nav { @@ -1823,16 +1864,44 @@ html, body { padding: 16px 0; } +#body-nav.org-nav.org-nav-auto { + height: auto; +} + +.org-nav > .container { + padding-left: 0; + padding-left: 0; +} + .org-nav .org-logo { margin-right: 16px; width: 100px; height: 100px; } +.org-nav .org-small-logo { + margin-right: 16px; + width: 50px; + height: 50px; +} + .org-nav .org-name { margin-top: 0; } +.org-nav-auto .org-name { + font-size: 1.4em; + line-height: 48px; +} + +#body-nav.org-nav-auto .nav { + margin-top: 6px; +} + +#body-nav.org-nav-auto .nav a:hover { + text-decoration: none; +} + .org-description { font-size: 16px; } @@ -1853,6 +1922,10 @@ html, body { margin-left: 0; } +.org-main { + padding-left: 0; +} + .org-sidebar { margin-top: -100px; } @@ -1906,4 +1979,72 @@ html, body { .org-team a:hover .org-team-name { color: #0079bc !important; +} + +#org-members { + margin-right: 30px; +} + +#org-members .member .avatar img { + width: 50px; + height: 50px; +} + +#org-members .member { + padding-bottom: 20px; + margin-bottom: 20px; + border-bottom: 1px solid #DDD; + height: 70px; +} + +#org-members .member .name { + padding-top: 4px; +} + +#org-members .member .nick { + display: block; + color: #888; +} + +#org-members .member .name a { + color: #444; +} + +#org-members .member .name strong { + font-size: 1.2em; +} + +#org-members .status, #org-members .role { + line-height: 48px; + text-align: right; +} + +#org-teams .org-team .panel-heading { + margin-top: 0; +} + +#org-teams .org-team .panel-heading a { + color: #444; +} + +#org-teams .org-team-members { + margin-top: 18px; +} + +#org-teams .org-team-members img { + width: 40px; + height: 40px; + margin-right: 12px; +} + +#org-teams .org-team-members a { + display: inline-block; +} + +#org-teams .org-team .panel-footer { + height: 60px; +} + +#org-teams .org-team { + border-bottom: none; } \ No newline at end of file diff --git a/routers/dashboard.go b/routers/dashboard.go index d65c403c5..4ef4e54f4 100644 --- a/routers/dashboard.go +++ b/routers/dashboard.go @@ -31,7 +31,7 @@ func Home(ctx *middleware.Context) { ctx.Data["PageIsHome"] = true - // Show recent updated repositoires for new visiters. + // Show recent updated repositories for new visitors. repos, err := models.GetRecentUpdatedRepositories() if err != nil { ctx.Handle(500, "dashboard.Home(GetRecentUpdatedRepositories)", err) diff --git a/routers/org/org.go b/routers/org/org.go index 1c02e7733..21f2a189c 100644 --- a/routers/org/org.go +++ b/routers/org/org.go @@ -6,6 +6,17 @@ import ( ) func Organization(ctx *middleware.Context, params martini.Params) { - ctx.Data["Title"] = "Organization Name" + params["org"] + ctx.Data["Title"] = "Organization " + params["org"] ctx.HTML(200, "org/org") } + +func Members(ctx *middleware.Context,params martini.Params){ + ctx.Data["Title"] = "Organization " + params["org"]+" Members" + ctx.HTML(200,"org/members") +} + +func Teams(ctx *middleware.Context,params martini.Params){ + ctx.Data["Title"] = "Organization " + params["org"]+" Teams" + ctx.HTML(200,"org/teams") +} + diff --git a/templates/org/members.tmpl b/templates/org/members.tmpl new file mode 100644 index 000000000..ba14cb4cc --- /dev/null +++ b/templates/org/members.tmpl @@ -0,0 +1,56 @@ +{{template "base/head" .}} +{{template "base/navbar" .}} +
+
+
+ + +
+

Organization Name

+
+
+ +
+
+
+
+
+
  +
+ +
+ +
+ Member +
+
+ Public +
+
+
  +
+ +
+ +
+ Owner +
+
+ Private +
+
+
+
+
+{{template "base/footer" .}} diff --git a/templates/org/teams.tmpl b/templates/org/teams.tmpl new file mode 100644 index 000000000..a8218812c --- /dev/null +++ b/templates/org/teams.tmpl @@ -0,0 +1,65 @@ +{{template "base/head" .}} +{{template "base/navbar" .}} +
+
+
+ + +
+

Organization Name

+
+
+
+
+
+
+
+
+
+

Team Name

+
+

4 members · 10 repositories

+

+ + + + + + +

+
+ +
+
+
+
+

Team Name

+
+

4 members · 10 repositories

+

+ + + + + + +

+
+ +
+
+
+
+
+{{template "base/footer" .}} diff --git a/templates/user/dashboard.tmpl b/templates/user/dashboard.tmpl index 5cda6722f..c44ba3627 100644 --- a/templates/user/dashboard.tmpl +++ b/templates/user/dashboard.tmpl @@ -2,6 +2,20 @@ {{template "base/navbar" .}}
+
+ + + +