Explorar el Código

add repo list of dashboard

Lunny Xiao hace 11 años
padre
commit
b5cc4078a9
Se han modificado 4 ficheros con 24 adiciones y 5 borrados
  1. 4 0
      models/repo.go
  2. 4 2
      models/user.go
  3. 11 2
      routers/user/user.go
  4. 5 1
      templates/user/dashboard.tmpl

+ 4 - 0
models/repo.go

@@ -223,6 +223,10 @@ func GetRepositories(user *User) ([]Repository, error) {
 	return repos, err
 }
 
+func GetRepositoryCount(user *User) (int64, error) {
+	return orm.Count(&Repository{OwnerId: user.Id})
+}
+
 func StarReposiory(user *User, repoName string) error {
 	return nil
 }

+ 4 - 2
models/user.go

@@ -142,13 +142,15 @@ func UpdateUser(user *User) (err error) {
 
 // DeleteUser completely deletes everything of the user.
 func DeleteUser(user *User) error {
-	repos, err := GetRepositories(user)
+	cnt, err := GetRepositoryCount(user)
 	if err != nil {
 		return errors.New("modesl.GetRepositories: " + err.Error())
-	} else if len(repos) > 0 {
+	} else if cnt > 0 {
 		return ErrUserOwnRepos
 	}
 
+	// TODO: check issues, other repos' commits
+
 	_, err = orm.Delete(user)
 	// TODO: delete and update follower information.
 	return err

+ 11 - 2
routers/user/user.go

@@ -20,6 +20,14 @@ import (
 func Dashboard(r render.Render, data base.TmplData, session sessions.Session) {
 	data["Title"] = "Dashboard"
 	data["PageIsUserDashboard"] = true
+	repos, err := models.GetRepositories(&models.User{Id: auth.SignedInId(session)})
+	if err != nil {
+		data["ErrorMsg"] = err
+		log.Error("dashboard: %v", err)
+		r.HTML(200, "base/error", data)
+		return
+	}
+	data["MyRepos"] = repos
 	r.HTML(200, "user/dashboard", data)
 }
 
@@ -133,7 +141,7 @@ func SignUp(form auth.RegisterForm, data base.TmplData, req *http.Request, r ren
 }
 
 // TODO: unfinished
-func Delete(data base.TmplData, req *http.Request, r render.Render) {
+func Delete(data base.TmplData, req *http.Request, session sessions.Session, r render.Render) {
 	data["Title"] = "Delete Account"
 
 	if req.Method == "GET" {
@@ -141,7 +149,8 @@ func Delete(data base.TmplData, req *http.Request, r render.Render) {
 		return
 	}
 
-	u := &models.User{}
+	id := auth.SignedInId(session)
+	u := &models.User{Id: id}
 	err := models.DeleteUser(u)
 	data["ErrorMsg"] = err
 	log.Error("user.Delete: %v", data)

+ 5 - 1
templates/user/dashboard.tmpl

@@ -21,7 +21,11 @@
                 <a class="btn btn-success pull-right btn-sm" href="/repo/create/"><i class="fa fa-plus-square"></i>New Repo</a>
             </div>
             <div class="panel-body">
-                repo-list
+                <ul>
+                {{range .MyRepos}}
+                <li><a href="#">{{.Name}}</a></li>
+                {{end}}
+                </ul>
             </div>
         </div>
     </div>