From 4b912b9ae6e087271c0c98b6e444384555ea3e84 Mon Sep 17 00:00:00 2001 From: FuXiaoHei <fuxiaohei@hexiaz.com> Date: Thu, 6 Mar 2014 21:33:17 +0800 Subject: [PATCH] signed-in dashboard and navbar changes --- public/css/gogs.css | 12 ++++++------ routers/dashboard.go | 13 +++++++++---- routers/user/user.go | 21 +++++++++++++++++++++ templates/base/head.tmpl | 2 +- templates/base/navbar.tmpl | 7 +++---- templates/{dashboard.tmpl => home.tmpl} | 0 templates/user/dashboard.tmpl | 6 ++++++ web.go | 2 +- 8 files changed, 47 insertions(+), 16 deletions(-) rename templates/{dashboard.tmpl => home.tmpl} (100%) create mode 100644 templates/user/dashboard.tmpl diff --git a/public/css/gogs.css b/public/css/gogs.css index c08c1e3ba..471c796df 100755 --- a/public/css/gogs.css +++ b/public/css/gogs.css @@ -47,17 +47,17 @@ body { text-decoration: none; } +.gogs-nav-item.navbar-right { + margin-top: 3px; +} + .gogs-nav-item.navbar-btn { cursor: pointer; margin-top: 8px; padding: 5px 15px; } -.gogs-nav-item.navbar-right { - margin-top: 3px; -} - -.gogs-nav-item.navbar-right .fa{ +.gogs-nav-item.navbar-right .fa { margin: 0; } @@ -80,7 +80,7 @@ body { border-left: 5px solid transparent; } -.gogs-nav .tooltip{ +.gogs-nav .tooltip { border: none; } diff --git a/routers/dashboard.go b/routers/dashboard.go index 8c370027b..c15462382 100644 --- a/routers/dashboard.go +++ b/routers/dashboard.go @@ -5,11 +5,16 @@ package routers import ( + "github.com/gogits/gogs/modules/base" + "github.com/gogits/gogs/routers/user" "github.com/martini-contrib/render" + "github.com/martini-contrib/sessions" ) -func Dashboard(r render.Render) { - r.HTML(200, "dashboard", map[string]interface{}{ - "Title": "Dashboard", - }) +func Home(r render.Render, data base.TmplData, session sessions.Session) { + if user.IsSignedIn(session) { + user.Dashboard(r, data, session) + return + } + r.HTML(200, "home", nil) } diff --git a/routers/user/user.go b/routers/user/user.go index ccbbd01b4..9e4e30bbb 100644 --- a/routers/user/user.go +++ b/routers/user/user.go @@ -18,6 +18,20 @@ import ( "github.com/gogits/gogs/utils/log" ) +func Dashboard(r render.Render, data base.TmplData, session sessions.Session) { + if !IsSignedIn(session) { + // todo : direct to logout + r.Redirect("/") + return + } + data["IsSigned"] = true + data["SignedUserId"] = SignedInId(session) + data["SignedUserName"] = SignedInName(session) + + data["Title"] = "Dashboard" + r.HTML(200, "user/dashboard", data) +} + func Profile(r render.Render) { r.HTML(200, "user/profile", map[string]interface{}{ "Title": "Username", @@ -65,10 +79,16 @@ func SignedInUser(session sessions.Session) *models.User { } func SignIn(req *http.Request, r render.Render, session sessions.Session) { + // if logged, do not show login page + if IsSignedIn(session) { + r.Redirect("/") + return + } var ( errString string account string ) + // if post, do login action if req.Method == "POST" { account = req.FormValue("account") user, err := models.LoginUserPlain(account, req.FormValue("passwd")) @@ -82,6 +102,7 @@ func SignIn(req *http.Request, r render.Render, session sessions.Session) { // login fail errString = fmt.Sprintf("%v", err) } + // if get or error post, show login page r.HTML(200, "user/signin", map[string]interface{}{ "Title": "Log In", "Error": errString, diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index 0294ba49a..e881e7f56 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -16,7 +16,7 @@ <script src="/js/jquery-1.10.1.min.js"></script> <script src="/js/bootstrap.min.js"></script> <script src="/js/app.js"></script> - <title>{{.Title}} - {{AppName}}</title> + <title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title> </head> <body> <noscript>Please enable JavaScript in your browser!</noscript> \ No newline at end of file diff --git a/templates/base/navbar.tmpl b/templates/base/navbar.tmpl index 00112c03d..82fc3ae18 100644 --- a/templates/base/navbar.tmpl +++ b/templates/base/navbar.tmpl @@ -4,15 +4,14 @@ <a class="gogs-nav-item active" href="/"><img src="/img/favicon.png" alt="Gogs Logo" id="gogs-logo"></a> <a class="gogs-nav-item" href="#">Dashboard</a> <a class="gogs-nav-item" href="#">Explore</a> - <a class="gogs-nav-item" href="#">Help</a> - - <!--<a class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/login/">Sign in</a>--> + <a class="gogs-nav-item" href="#">Help</a>{{if .IsSigned}} <a id="gogs-nav-out" class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/user/login/"><i class="fa fa-power-off fa-lg"></i></a> - <a id="gogs-nav-avatar" class="gogs-nav-item navbar-right" href="/user/profile" data-toggle="tooltip" data-placement="bottom" title="Username"> + <a id="gogs-nav-avatar" class="gogs-nav-item navbar-right" href="/user/profile" data-toggle="tooltip" data-placement="bottom" title="{{.SignedUserName}}"> <img src="http://1.gravatar.com/avatar/x?s=28" alt="user-avatar" title="username"/> </a> <a class="navbar-right gogs-nav-item" href="/repo/create" data-toggle="tooltip" data-placement="bottom" title="New Repository"><i class="fa fa-plus fa-lg"></i></a> <a class="navbar-right gogs-nav-item" href="#" data-toggle="tooltip" data-placement="bottom" title="Setting"><i class="fa fa-cogs fa-lg"></i></a> + {{else}}<a id="gogs-nav-signin" class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/user/login/">Sign in</a>{{end}} </nav> </div> </div> diff --git a/templates/dashboard.tmpl b/templates/home.tmpl similarity index 100% rename from templates/dashboard.tmpl rename to templates/home.tmpl diff --git a/templates/user/dashboard.tmpl b/templates/user/dashboard.tmpl new file mode 100644 index 000000000..bde541a6a --- /dev/null +++ b/templates/user/dashboard.tmpl @@ -0,0 +1,6 @@ +{{template "base/head" .}} +{{template "base/navbar" .}} +<div id="gogs-body" class="container"> + Website is still in the progress of building...please come back later! <strong>{{.SignedUserName}}</strong> is logged! +</div> +{{template "base/footer" .}} \ No newline at end of file diff --git a/web.go b/web.go index 905515107..8f5c6c81b 100644 --- a/web.go +++ b/web.go @@ -57,7 +57,7 @@ func runWeb(*cli.Context) { m.Use(sessions.Sessions("my_session", store)) // Routers. - m.Get("/", routers.Dashboard) + m.Get("/", routers.Home) m.Any("/user/login", user.SignIn) m.Any("/user/sign_up", binding.BindIgnErr(auth.RegisterForm{}), user.SignUp)