Browse Source

signed-in dashboard and navbar changes

FuXiaoHei 11 years ago
parent
commit
4b912b9ae6

+ 6 - 6
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;
 }
 

+ 9 - 4
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)
 }

+ 21 - 0
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,

+ 1 - 1
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>

+ 3 - 4
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>

+ 0 - 0
templates/dashboard.tmpl → templates/home.tmpl


+ 6 - 0
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" .}}

+ 1 - 1
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)