summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-03-15 05:30:59 -0400
committerUnknown <joe2010xtmf@163.com>2014-03-15 05:30:59 -0400
commit4b8e888437a9972459e73496d811ea30f105f06c (patch)
treec319bb015f1645b03979c74d6819fa0240f1275c
parent06deed820d9f48ecf972c8716b17ad58b91ab9b9 (diff)
downloadgitea-4b8e888437a9972459e73496d811ea30f105f06c.tar.gz
gitea-4b8e888437a9972459e73496d811ea30f105f06c.zip
Finish feeds
-rw-r--r--README.md2
-rw-r--r--models/action.go1
-rw-r--r--modules/auth/user.go2
-rw-r--r--routers/user/user.go47
-rw-r--r--templates/user/dashboard.tmpl12
-rw-r--r--templates/user/profile.tmpl4
6 files changed, 44 insertions, 24 deletions
diff --git a/README.md b/README.md
index 0e354a9d47..dd95e90d6f 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ Gogs - Go Git Service [![wercker status](https://app.wercker.com/status/ad0bdb0b
Gogs(Go Git Service) is a GitHub-like clone in the Go Programming Language, it currently supports Linux and Max OS X, but Windows has **NOT** supported yet due to installation problem with [libgit2](http://libgit2.github.com/) in Windows.
-##### Current version: 0.0.7 Alpha
+##### Current version: 0.0.8 Alpha
## Purpose
diff --git a/models/action.go b/models/action.go
index 8008d331cb..6a77d73003 100644
--- a/models/action.go
+++ b/models/action.go
@@ -56,6 +56,7 @@ func NewRepoAction(user *User, repo *Repository) error {
return err
}
+// GetFeeds returns action list of given user in given context.
func GetFeeds(userid, offset int64, isProfile bool) ([]Action, error) {
actions := make([]Action, 0, 20)
sess := orm.Limit(20, int(offset)).Desc("id").Where("user_id=?", userid)
diff --git a/modules/auth/user.go b/modules/auth/user.go
index d950b25002..e5f22a0915 100644
--- a/modules/auth/user.go
+++ b/modules/auth/user.go
@@ -97,7 +97,7 @@ func SignOutRequire() martini.Handler {
type FeedsForm struct {
UserId int64 `form:"userid" binding:"Required"`
- Offset int64 `form:"offset"`
+ Page int64 `form:"p"`
}
type UpdateProfileForm struct {
diff --git a/routers/user/user.go b/routers/user/user.go
index 680055f661..513767a30b 100644
--- a/routers/user/user.go
+++ b/routers/user/user.go
@@ -5,6 +5,7 @@
package user
import (
+ "fmt"
"net/http"
"github.com/codegangsta/martini"
@@ -26,10 +27,17 @@ func Dashboard(r render.Render, data base.TmplData, session sessions.Session) {
return
}
data["MyRepos"] = repos
+
+ feeds, err := models.GetFeeds(auth.SignedInId(session), 0, false)
+ if err != nil {
+ log.Handle(200, "user.Dashboard", data, r, err)
+ return
+ }
+ data["Feeds"] = feeds
r.HTML(200, "user/dashboard", data)
}
-func Profile(params martini.Params, r render.Render, req *http.Request, data base.TmplData, session sessions.Session) {
+func Profile(params martini.Params, req *http.Request, r render.Render, data base.TmplData, session sessions.Session) {
data["Title"] = "Profile"
// TODO: Need to check view self or others.
@@ -40,23 +48,13 @@ func Profile(params martini.Params, r render.Render, req *http.Request, data bas
}
data["Owner"] = user
-
- req.ParseForm()
- tab := req.Form.Get("tab")
- data["TabName"] = tab
-
- switch tab {
- case "activity":
- feeds, err := models.GetFeeds(user.Id, 0, true)
- if err != nil {
- log.Handle(200, "user.Profile", data, r, err)
- return
- }
- data["Feeds"] = feeds
- default:
-
+ data["TabName"] = req.FormValue("tab")
+ feeds, err := models.GetFeeds(user.Id, 0, true)
+ if err != nil {
+ log.Handle(200, "user.Profile", data, r, err)
+ return
}
-
+ data["Feeds"] = feeds
r.HTML(200, "user/profile", data)
}
@@ -172,10 +170,21 @@ func Delete(data base.TmplData, req *http.Request, session sessions.Session, r r
r.HTML(200, "user/delete", data)
}
+const (
+ feedTpl = `<i class="icon fa fa-%s"></i>
+ <div class="info"><span class="meta">%s</span><br>%s</div>`
+)
+
func Feeds(form auth.FeedsForm, r render.Render) {
- actions, err := models.GetFeeds(form.UserId, form.Offset, false)
+ actions, err := models.GetFeeds(form.UserId, form.Page*20, false)
if err != nil {
r.JSON(500, err)
}
- r.JSON(200, actions)
+
+ feeds := make([]string, len(actions))
+ for i := range actions {
+ feeds[i] = fmt.Sprintf(feedTpl, base.ActionIcon(actions[i].OpType),
+ base.TimeSince(actions[i].Created), base.ActionDesc(actions[i]))
+ }
+ r.JSON(200, &feeds)
}
diff --git a/templates/user/dashboard.tmpl b/templates/user/dashboard.tmpl
index 7768a7ee6d..14b3451562 100644
--- a/templates/user/dashboard.tmpl
+++ b/templates/user/dashboard.tmpl
@@ -14,7 +14,17 @@
<div id="gogs-body" class="container">
{{if .HasInfo}}<div class="alert alert-info">{{.InfoMsg}}</div>{{end}}
<div id="gogs-feed-left" class="col-md-8">
- Website is still in the progress of building...please come back later! <strong>{{.SignedUserName}}</strong> is logged!
+ <ul class="list-unstyled activity-list">
+ {{range .Feeds}}
+ <li>
+ <i class="icon fa fa-{{ActionIcon .OpType}}"></i>
+ <div class="info"><span class="meta">{{TimeSince .Created}}</span><br>{{ActionDesc . | str2html}}</div>
+ <span class="clearfix"></span>
+ </li>
+ {{else}}
+ <li>Not any activity yet.</li>
+ {{end}}
+ </ul>
</div>
<div id="gogs-feed-right" class="col-md-4">
<div class="panel panel-default repo-panel">
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index fd4313efdc..f2bb984b31 100644
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -39,12 +39,12 @@
<span class="clearfix"></span>
</li>
{{else}}
- <li>Not found any activity</li>
+ <li>Not any public activity yet.</li>
{{end}}
</ul>
</div>
{{else}}
- <div class="tab-pane active">repo</div>
+ <div class="tab-pane active">repo</div>
{{end}}
</div>
</div>