2014-05-07 13:06:24 +08:00
|
|
|
package controllers
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/revel/revel"
|
|
|
|
// "encoding/json"
|
2014-09-02 15:45:44 +08:00
|
|
|
"gopkg.in/mgo.v2/bson"
|
2014-09-24 22:24:52 +08:00
|
|
|
// . "github.com/leanote/leanote/app/lea"
|
2014-05-07 13:06:24 +08:00
|
|
|
"github.com/leanote/leanote/app/info"
|
|
|
|
// "github.com/leanote/leanote/app/types"
|
|
|
|
// "io/ioutil"
|
|
|
|
// "math"
|
|
|
|
// "os"
|
|
|
|
// "path"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Blog struct {
|
|
|
|
BaseController
|
|
|
|
}
|
|
|
|
|
|
|
|
//---------------------------
|
|
|
|
// 后台 note<->blog
|
|
|
|
|
|
|
|
// 设置/取消Blog; 置顶
|
|
|
|
func (c Blog) SetNote2Blog(noteId string, isBlog, isTop bool) revel.Result {
|
|
|
|
if isTop {
|
|
|
|
isBlog = true
|
|
|
|
}
|
|
|
|
if !isBlog {
|
|
|
|
isTop = false
|
|
|
|
}
|
|
|
|
noteUpdate := bson.M{"IsBlog": isBlog, "IsTop": isTop}
|
|
|
|
re := noteService.UpdateNote(c.GetUserId(), c.GetUserId(),
|
|
|
|
noteId, noteUpdate)
|
|
|
|
return c.RenderJson(re)
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置notebook <-> blog
|
|
|
|
func (c Blog) SetNotebook2Blog(notebookId string, isBlog bool) revel.Result {
|
|
|
|
noteUpdate := bson.M{"IsBlog": isBlog}
|
|
|
|
re := notebookService.UpdateNotebook(c.GetUserId(),
|
|
|
|
notebookId, noteUpdate)
|
|
|
|
return c.RenderJson(re)
|
|
|
|
}
|
|
|
|
|
|
|
|
//-----------------------------
|
|
|
|
// 前台
|
|
|
|
|
2014-09-24 22:24:52 +08:00
|
|
|
|
|
|
|
// 进入某个用户的博客
|
2014-05-07 13:06:24 +08:00
|
|
|
var blogPageSize = 5
|
|
|
|
var searchBlogPageSize = 30
|
|
|
|
func (c Blog) Index(userId string, notebookId string) revel.Result {
|
2014-09-24 22:24:52 +08:00
|
|
|
// 用户id为空, 转至博客平台
|
2014-05-07 13:06:24 +08:00
|
|
|
if userId == "" {
|
2014-09-24 22:24:52 +08:00
|
|
|
userId = leanoteUserId;
|
2014-05-07 13:06:24 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
// userId可能是 username, email
|
|
|
|
userInfo := userService.GetUserInfoByAny(userId)
|
|
|
|
if userInfo.UserId == "" {
|
|
|
|
return c.E404()
|
|
|
|
}
|
|
|
|
|
|
|
|
userId = userInfo.UserId.Hex()
|
|
|
|
c.isMe(userId)
|
|
|
|
|
|
|
|
c.RenderArgs["userInfo"] = userInfo
|
|
|
|
|
|
|
|
// 得到博客设置信息
|
|
|
|
userBlog := blogService.GetUserBlog(userId)
|
|
|
|
c.RenderArgs["userBlog"] = userBlog
|
|
|
|
|
|
|
|
var notebook info.Notebook
|
|
|
|
if notebookId != "" {
|
|
|
|
notebook = notebookService.GetNotebook(notebookId, userId)
|
|
|
|
if !notebook.IsBlog {
|
|
|
|
return c.E404()
|
|
|
|
}
|
|
|
|
|
|
|
|
c.RenderArgs["title"] = userBlog.Title + " - 分类: " + notebook.Title
|
|
|
|
} else {
|
|
|
|
c.RenderArgs["title"] = userBlog.Title
|
|
|
|
}
|
|
|
|
// 分页的话, 需要分页信息, totalPage, curPage
|
|
|
|
page := c.GetPage()
|
|
|
|
count, blogs := blogService.ListBlogs(userId, notebookId, page, blogPageSize, "UpdatedTime", false)
|
|
|
|
|
|
|
|
c.RenderArgs["blogs"] = blogs
|
|
|
|
c.RenderArgs["page"] = page
|
|
|
|
c.RenderArgs["pageSize"] = blogPageSize
|
|
|
|
c.RenderArgs["count"] = count
|
2014-09-24 22:24:52 +08:00
|
|
|
|
2014-05-07 13:06:24 +08:00
|
|
|
// 当前notebook
|
|
|
|
c.RenderArgs["notebookId"] = notebookId
|
|
|
|
c.RenderArgs["notebook"] = notebook
|
|
|
|
|
|
|
|
c.RenderArgs["notebooks"] = blogService.ListBlogNotebooks(userId)
|
|
|
|
|
|
|
|
|
|
|
|
if notebookId == "" {
|
|
|
|
c.RenderArgs["index"] = true
|
|
|
|
}
|
|
|
|
|
|
|
|
c.getRecentBlogs(userId)
|
|
|
|
|
|
|
|
return c.RenderTemplate("blog/index.html")
|
|
|
|
}
|
|
|
|
|
|
|
|
// 详情
|
|
|
|
func (c Blog) View(noteId string) revel.Result {
|
|
|
|
blog := blogService.GetBlog(noteId)
|
|
|
|
c.RenderArgs["blog"] = blog
|
|
|
|
|
|
|
|
userInfo := userService.GetUserInfo(blog.UserId.Hex())
|
|
|
|
c.RenderArgs["userInfo"] = userInfo
|
|
|
|
|
|
|
|
c.RenderArgs["title"] = blog.Title + " - " + userInfo.Email
|
|
|
|
|
|
|
|
userId := userInfo.UserId.Hex()
|
|
|
|
c.isMe(userId)
|
|
|
|
|
|
|
|
c.RenderArgs["notebooks"] = blogService.ListBlogNotebooks(userId)
|
|
|
|
|
|
|
|
// 得到博客设置信息
|
|
|
|
c.RenderArgs["userBlog"] = blogService.GetUserBlog(userId)
|
|
|
|
|
|
|
|
c.getRecentBlogs(userId)
|
|
|
|
|
|
|
|
return c.RenderTemplate("blog/view.html")
|
|
|
|
}
|
|
|
|
|
|
|
|
// 搜索
|
|
|
|
func (c Blog) SearchBlog(userId, key string) revel.Result {
|
|
|
|
c.RenderArgs["title"] = "搜索 " + key
|
|
|
|
c.RenderArgs["key"] = key
|
|
|
|
|
|
|
|
userInfo := userService.GetUserInfoByAny(userId)
|
|
|
|
c.RenderArgs["userInfo"] = userInfo
|
|
|
|
|
|
|
|
userId = userInfo.UserId.Hex()
|
|
|
|
|
|
|
|
page := c.GetPage()
|
|
|
|
_, blogs := blogService.SearchBlog(key, userId, page, searchBlogPageSize, "UpdatedTime", false)
|
|
|
|
|
|
|
|
c.RenderArgs["blogs"] = blogs
|
|
|
|
c.RenderArgs["key"] = key
|
|
|
|
|
|
|
|
c.RenderArgs["notebooks"] = blogService.ListBlogNotebooks(userId)
|
|
|
|
// 得到博客设置信息
|
|
|
|
c.RenderArgs["userBlog"] = blogService.GetUserBlog(userId)
|
|
|
|
|
|
|
|
c.getRecentBlogs(userId)
|
|
|
|
|
|
|
|
c.isMe(userId)
|
|
|
|
|
|
|
|
return c.RenderTemplate("blog/search.html")
|
|
|
|
}
|
|
|
|
|
|
|
|
// 博客设置
|
|
|
|
func (c Blog) Set() revel.Result {
|
|
|
|
userId := c.GetUserId()
|
|
|
|
userInfo := userService.GetUserInfo(userId)
|
|
|
|
c.RenderArgs["userInfo"] = userInfo
|
|
|
|
|
|
|
|
c.RenderArgs["notebooks"] = blogService.ListBlogNotebooks(userId)
|
|
|
|
|
|
|
|
// 得到博客设置信息
|
|
|
|
c.RenderArgs["userBlog"] = blogService.GetUserBlog(userId)
|
|
|
|
c.RenderArgs["title"] = "博客设置"
|
|
|
|
c.RenderArgs["isMe"] = true
|
|
|
|
c.RenderArgs["set"] = true
|
|
|
|
|
|
|
|
c.getRecentBlogs(userId)
|
|
|
|
|
2014-06-24 21:14:17 +08:00
|
|
|
c.SetLocale();
|
|
|
|
|
2014-05-07 13:06:24 +08:00
|
|
|
return c.RenderTemplate("blog/set.html")
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c Blog) SetUserBlogBase(userBlog info.UserBlogBase) revel.Result {
|
|
|
|
re := info.NewRe()
|
|
|
|
re.Ok = blogService.UpdateUserBlogBase(c.GetUserId(), userBlog)
|
|
|
|
return c.RenderJson(re)
|
|
|
|
}
|
|
|
|
func (c Blog) SetUserBlogComment(userBlog info.UserBlogComment) revel.Result {
|
|
|
|
re := info.NewRe()
|
|
|
|
re.Ok = blogService.UpdateUserBlogComment(c.GetUserId(), userBlog)
|
|
|
|
return c.RenderJson(re)
|
|
|
|
}
|
|
|
|
func (c Blog) SetUserBlogStyle(userBlog info.UserBlogStyle) revel.Result {
|
|
|
|
re := info.NewRe()
|
|
|
|
re.Ok = blogService.UpdateUserBlogStyle(c.GetUserId(), userBlog)
|
|
|
|
return c.RenderJson(re)
|
|
|
|
}
|
|
|
|
|
|
|
|
// userId可能是其它的
|
|
|
|
func (c Blog) AboutMe(userId string) revel.Result {
|
|
|
|
userInfo := userService.GetUserInfoByAny(userId)
|
|
|
|
if userInfo.UserId == "" {
|
|
|
|
return c.E404()
|
|
|
|
}
|
|
|
|
userId = userInfo.UserId.Hex()
|
|
|
|
|
|
|
|
c.RenderArgs["userInfo"] = userInfo
|
|
|
|
|
|
|
|
c.RenderArgs["notebooks"] = blogService.ListBlogNotebooks(userId)
|
|
|
|
|
|
|
|
c.RenderArgs["userBlog"] = blogService.GetUserBlog(userId)
|
|
|
|
c.RenderArgs["aboutMe"] = true
|
|
|
|
|
|
|
|
c.RenderArgs["title"] = "关于我"
|
|
|
|
|
|
|
|
c.isMe(userId)
|
|
|
|
|
|
|
|
c.getRecentBlogs(userId)
|
|
|
|
|
|
|
|
return c.RenderTemplate("blog/about_me.html")
|
|
|
|
}
|
|
|
|
|
|
|
|
// 当前的博客是否是我的
|
|
|
|
func (c Blog) isMe(userId string) {
|
|
|
|
c.RenderArgs["isMe"] = userId == c.GetUserId()
|
|
|
|
}
|
|
|
|
|
|
|
|
// 优化, 这里不要得到count
|
|
|
|
func (c Blog) getRecentBlogs(userId string) {
|
|
|
|
_, c.RenderArgs["recentBlogs"] = blogService.ListBlogs(userId, "", 1, 5, "UpdatedTime", false)
|
|
|
|
}
|
|
|
|
|
|
|
|
// 可以不要, 因为注册的时候已经把username设为email了
|
|
|
|
func (c Blog) setRenderUserInfo(userInfo info.User) {
|
|
|
|
if userInfo.Username == "" {
|
|
|
|
userInfo.Username = userInfo.Email
|
|
|
|
}
|
|
|
|
c.RenderArgs["userInfo"] = userInfo
|
|
|
|
}
|