From 4a6381bf5d32f9f72061251d812a17a0d678984d Mon Sep 17 00:00:00 2001 From: life Date: Wed, 7 May 2014 20:31:30 +0800 Subject: [PATCH] register open option --- app/controllers/AuthController.go | 13 +- app/controllers/IndexController.go | 5 +- app/controllers/NoteController.go | 2 + app/controllers/init.go | 3 + app/routes/routes.go | 342 ++++++++++++++--------------- app/service/AuthService.go | 28 ++- app/tmp/main.go | 248 ++++++++++----------- app/views/Errors/404.html | 5 - app/views/Home/header.html | 4 +- app/views/Home/index.html | 2 + app/views/Home/login.html | 12 +- app/views/Note/note-dev.html | 11 +- app/views/Note/note.html | 11 +- conf/app-default.conf | 9 + public/js/all.js | 2 +- public/js/common-min.js | 2 +- public/js/common.js | 2 +- 17 files changed, 370 insertions(+), 331 deletions(-) diff --git a/app/controllers/AuthController.go b/app/controllers/AuthController.go index 1ed046f..7b8c946 100644 --- a/app/controllers/AuthController.go +++ b/app/controllers/AuthController.go @@ -18,6 +18,8 @@ func (c Auth) Login(email string) revel.Result { c.RenderArgs["title"] = c.Message("login") c.RenderArgs["subTitle"] = c.Message("login") c.RenderArgs["email"] = email + c.RenderArgs["openRegister"] = openRegister + if c.Has("demo") { c.RenderArgs["demo"] = true c.RenderArgs["email"] = "demo@leanote.com" @@ -38,8 +40,9 @@ func (c Auth) DoLogin(email, pwd string) revel.Result { // 注销 func (c Auth) Logout() revel.Result { c.ClearSession() - return c.Redirect("login") + return c.Redirect("/login") } + // 体验一下 func (c Auth) Demo() revel.Result { c.DoLogin("demo@leanote.com", "demo@leanote.com") @@ -49,11 +52,19 @@ func (c Auth) Demo() revel.Result { //-------- // 注册 func (c Auth) Register() revel.Result { + if !openRegister { + return c.Redirect("/index") + } + c.RenderArgs["title"] = c.Message("register") c.RenderArgs["subTitle"] = c.Message("register") return c.RenderTemplate("home/register.html") } func (c Auth) DoRegister(email, pwd string) revel.Result { + if !openRegister { + return c.Redirect("/index") + } + re := info.NewRe(); if email == "" { diff --git a/app/controllers/IndexController.go b/app/controllers/IndexController.go index e41f024..27836b6 100644 --- a/app/controllers/IndexController.go +++ b/app/controllers/IndexController.go @@ -14,8 +14,9 @@ type Index struct { // leanote展示页, 没有登录的, 或已登录明确要进该页的 func (c Index) Index() revel.Result { - c.SetUserInfo(); - c.RenderArgs["title"] = "leanote"; + c.SetUserInfo() + c.RenderArgs["title"] = "leanote" + c.RenderArgs["openRegister"] = openRegister c.SetLocale() return c.RenderTemplate("home/index.html"); diff --git a/app/controllers/NoteController.go b/app/controllers/NoteController.go index 8d253df..947bdc4 100644 --- a/app/controllers/NoteController.go +++ b/app/controllers/NoteController.go @@ -32,6 +32,8 @@ func (c Note) Index() revel.Result { return c.Redirect("/login") } + c.RenderArgs["openRegister"] = openRegister + // 已登录了, 那么得到所有信息 notebooks := notebookService.GetNotebooks(userId) shareNotebooks, sharedUserInfos := shareService.GetShareNotebooks(userId) diff --git a/app/controllers/init.go b/app/controllers/init.go index abacb57..bfc69a5 100644 --- a/app/controllers/init.go +++ b/app/controllers/init.go @@ -27,6 +27,7 @@ var pageSize = 1000 var defaultSortField = "UpdatedTime" var leanoteUserId = "52d26b4e99c37b609a000001" var siteUrl = "http://leanote.com" +var openRegister = true // 拦截器 // 不需要拦截的url @@ -72,6 +73,7 @@ func AuthInterceptor(c *revel.Controller) revel.Result { var controller = strings.Title(c.Name) var method = strings.Title(c.MethodName) + // 是否需要验证? if !needValidate(controller, method) { return nil @@ -122,5 +124,6 @@ func init() { revel.OnAppStart(func() { leanoteUserId, _ = revel.Config.String("adminUsername") siteUrl, _ = revel.Config.String("site.url") + openRegister, _ = revel.Config.Bool("register.open") }) } \ No newline at end of file diff --git a/app/routes/routes.go b/app/routes/routes.go index 14350ae..54bcc9d 100644 --- a/app/routes/routes.go +++ b/app/routes/routes.go @@ -75,129 +75,82 @@ func (_ tStatic) ServeModule( } -type tBlog struct {} -var Blog tBlog +type tFile struct {} +var File tFile -func (_ tBlog) SetNote2Blog( - noteId string, - isBlog bool, - isTop bool, +func (_ tFile) UploadImage( + renderHtml string, ) string { args := make(map[string]string) - revel.Unbind(args, "noteId", noteId) - revel.Unbind(args, "isBlog", isBlog) - revel.Unbind(args, "isTop", isTop) - return revel.MainRouter.Reverse("Blog.SetNote2Blog", args).Url + revel.Unbind(args, "renderHtml", renderHtml) + return revel.MainRouter.Reverse("File.UploadImage", args).Url } -func (_ tBlog) SetNotebook2Blog( - notebookId string, - isBlog bool, +func (_ tFile) UploadBlogLogo( ) string { args := make(map[string]string) - revel.Unbind(args, "notebookId", notebookId) - revel.Unbind(args, "isBlog", isBlog) - return revel.MainRouter.Reverse("Blog.SetNotebook2Blog", args).Url + return revel.MainRouter.Reverse("File.UploadBlogLogo", args).Url } -func (_ tBlog) Index( - userId string, +func (_ tFile) UploadImageJson( + renderHtml string, + ) string { + args := make(map[string]string) + + revel.Unbind(args, "renderHtml", renderHtml) + return revel.MainRouter.Reverse("File.UploadImageJson", args).Url +} + + +type tNotebook struct {} +var Notebook tNotebook + + +func (_ tNotebook) Index( + notebook interface{}, + i int, + name string, + ) string { + args := make(map[string]string) + + revel.Unbind(args, "notebook", notebook) + revel.Unbind(args, "i", i) + revel.Unbind(args, "name", name) + return revel.MainRouter.Reverse("Notebook.Index", args).Url +} + +func (_ tNotebook) DeleteNotebook( notebookId string, ) string { args := make(map[string]string) - revel.Unbind(args, "userId", userId) revel.Unbind(args, "notebookId", notebookId) - return revel.MainRouter.Reverse("Blog.Index", args).Url + return revel.MainRouter.Reverse("Notebook.DeleteNotebook", args).Url } -func (_ tBlog) View( - noteId string, +func (_ tNotebook) AddNotebook( + notebookId string, + title string, ) string { args := make(map[string]string) - revel.Unbind(args, "noteId", noteId) - return revel.MainRouter.Reverse("Blog.View", args).Url + revel.Unbind(args, "notebookId", notebookId) + revel.Unbind(args, "title", title) + return revel.MainRouter.Reverse("Notebook.AddNotebook", args).Url } -func (_ tBlog) SearchBlog( - userId string, - key string, +func (_ tNotebook) UpdateNotebookTitle( + notebookId string, + title string, ) string { args := make(map[string]string) - revel.Unbind(args, "userId", userId) - revel.Unbind(args, "key", key) - return revel.MainRouter.Reverse("Blog.SearchBlog", args).Url -} - -func (_ tBlog) Set( - ) string { - args := make(map[string]string) - - return revel.MainRouter.Reverse("Blog.Set", args).Url -} - -func (_ tBlog) SetUserBlogBase( - userBlog interface{}, - ) string { - args := make(map[string]string) - - revel.Unbind(args, "userBlog", userBlog) - return revel.MainRouter.Reverse("Blog.SetUserBlogBase", args).Url -} - -func (_ tBlog) SetUserBlogComment( - userBlog interface{}, - ) string { - args := make(map[string]string) - - revel.Unbind(args, "userBlog", userBlog) - return revel.MainRouter.Reverse("Blog.SetUserBlogComment", args).Url -} - -func (_ tBlog) SetUserBlogStyle( - userBlog interface{}, - ) string { - args := make(map[string]string) - - revel.Unbind(args, "userBlog", userBlog) - return revel.MainRouter.Reverse("Blog.SetUserBlogStyle", args).Url -} - -func (_ tBlog) AboutMe( - userId string, - ) string { - args := make(map[string]string) - - revel.Unbind(args, "userId", userId) - return revel.MainRouter.Reverse("Blog.AboutMe", args).Url -} - - -type tIndex struct {} -var Index tIndex - - -func (_ tIndex) Index( - ) string { - args := make(map[string]string) - - return revel.MainRouter.Reverse("Index.Index", args).Url -} - -func (_ tIndex) Suggestion( - addr string, - suggestion string, - ) string { - args := make(map[string]string) - - revel.Unbind(args, "addr", addr) - revel.Unbind(args, "suggestion", suggestion) - return revel.MainRouter.Reverse("Index.Suggestion", args).Url + revel.Unbind(args, "notebookId", notebookId) + revel.Unbind(args, "title", title) + return revel.MainRouter.Reverse("Notebook.UpdateNotebookTitle", args).Url } @@ -331,20 +284,6 @@ func (_ tNote) Html2Image( } -type tOauth struct {} -var Oauth tOauth - - -func (_ tOauth) GithubCallback( - code string, - ) string { - args := make(map[string]string) - - revel.Unbind(args, "code", code) - return revel.MainRouter.Reverse("Oauth.GithubCallback", args).Url -} - - type tShare struct {} var Share tShare @@ -698,33 +637,129 @@ func (_ tAuth) FindPasswordUpdate( } -type tFile struct {} -var File tFile +type tBlog struct {} +var Blog tBlog -func (_ tFile) UploadImage( - renderHtml string, +func (_ tBlog) SetNote2Blog( + noteId string, + isBlog bool, + isTop bool, ) string { args := make(map[string]string) - revel.Unbind(args, "renderHtml", renderHtml) - return revel.MainRouter.Reverse("File.UploadImage", args).Url + revel.Unbind(args, "noteId", noteId) + revel.Unbind(args, "isBlog", isBlog) + revel.Unbind(args, "isTop", isTop) + return revel.MainRouter.Reverse("Blog.SetNote2Blog", args).Url } -func (_ tFile) UploadBlogLogo( +func (_ tBlog) SetNotebook2Blog( + notebookId string, + isBlog bool, ) string { args := make(map[string]string) - return revel.MainRouter.Reverse("File.UploadBlogLogo", args).Url + revel.Unbind(args, "notebookId", notebookId) + revel.Unbind(args, "isBlog", isBlog) + return revel.MainRouter.Reverse("Blog.SetNotebook2Blog", args).Url } -func (_ tFile) UploadImageJson( - renderHtml string, +func (_ tBlog) Index( + userId string, + notebookId string, ) string { args := make(map[string]string) - revel.Unbind(args, "renderHtml", renderHtml) - return revel.MainRouter.Reverse("File.UploadImageJson", args).Url + revel.Unbind(args, "userId", userId) + revel.Unbind(args, "notebookId", notebookId) + return revel.MainRouter.Reverse("Blog.Index", args).Url +} + +func (_ tBlog) View( + noteId string, + ) string { + args := make(map[string]string) + + revel.Unbind(args, "noteId", noteId) + return revel.MainRouter.Reverse("Blog.View", args).Url +} + +func (_ tBlog) SearchBlog( + userId string, + key string, + ) string { + args := make(map[string]string) + + revel.Unbind(args, "userId", userId) + revel.Unbind(args, "key", key) + return revel.MainRouter.Reverse("Blog.SearchBlog", args).Url +} + +func (_ tBlog) Set( + ) string { + args := make(map[string]string) + + return revel.MainRouter.Reverse("Blog.Set", args).Url +} + +func (_ tBlog) SetUserBlogBase( + userBlog interface{}, + ) string { + args := make(map[string]string) + + revel.Unbind(args, "userBlog", userBlog) + return revel.MainRouter.Reverse("Blog.SetUserBlogBase", args).Url +} + +func (_ tBlog) SetUserBlogComment( + userBlog interface{}, + ) string { + args := make(map[string]string) + + revel.Unbind(args, "userBlog", userBlog) + return revel.MainRouter.Reverse("Blog.SetUserBlogComment", args).Url +} + +func (_ tBlog) SetUserBlogStyle( + userBlog interface{}, + ) string { + args := make(map[string]string) + + revel.Unbind(args, "userBlog", userBlog) + return revel.MainRouter.Reverse("Blog.SetUserBlogStyle", args).Url +} + +func (_ tBlog) AboutMe( + userId string, + ) string { + args := make(map[string]string) + + revel.Unbind(args, "userId", userId) + return revel.MainRouter.Reverse("Blog.AboutMe", args).Url +} + + +type tIndex struct {} +var Index tIndex + + +func (_ tIndex) Index( + ) string { + args := make(map[string]string) + + return revel.MainRouter.Reverse("Index.Index", args).Url +} + +func (_ tIndex) Suggestion( + addr string, + suggestion string, + ) string { + args := make(map[string]string) + + revel.Unbind(args, "addr", addr) + revel.Unbind(args, "suggestion", suggestion) + return revel.MainRouter.Reverse("Index.Suggestion", args).Url } @@ -747,55 +782,6 @@ func (_ tMobile) Logout( } -type tNotebook struct {} -var Notebook tNotebook - - -func (_ tNotebook) Index( - notebook interface{}, - i int, - name string, - ) string { - args := make(map[string]string) - - revel.Unbind(args, "notebook", notebook) - revel.Unbind(args, "i", i) - revel.Unbind(args, "name", name) - return revel.MainRouter.Reverse("Notebook.Index", args).Url -} - -func (_ tNotebook) DeleteNotebook( - notebookId string, - ) string { - args := make(map[string]string) - - revel.Unbind(args, "notebookId", notebookId) - return revel.MainRouter.Reverse("Notebook.DeleteNotebook", args).Url -} - -func (_ tNotebook) AddNotebook( - notebookId string, - title string, - ) string { - args := make(map[string]string) - - revel.Unbind(args, "notebookId", notebookId) - revel.Unbind(args, "title", title) - return revel.MainRouter.Reverse("Notebook.AddNotebook", args).Url -} - -func (_ tNotebook) UpdateNotebookTitle( - notebookId string, - title string, - ) string { - args := make(map[string]string) - - revel.Unbind(args, "notebookId", notebookId) - revel.Unbind(args, "title", title) - return revel.MainRouter.Reverse("Notebook.UpdateNotebookTitle", args).Url -} - - type tNoteContentHistory struct {} var NoteContentHistory tNoteContentHistory @@ -810,3 +796,17 @@ func (_ tNoteContentHistory) ListHistories( } +type tOauth struct {} +var Oauth tOauth + + +func (_ tOauth) GithubCallback( + code string, + ) string { + args := make(map[string]string) + + revel.Unbind(args, "code", code) + return revel.MainRouter.Reverse("Oauth.GithubCallback", args).Url +} + + diff --git a/app/service/AuthService.go b/app/service/AuthService.go index 72b3c8e..9493fcf 100644 --- a/app/service/AuthService.go +++ b/app/service/AuthService.go @@ -4,6 +4,7 @@ import ( "labix.org/v2/mgo/bson" // "github.com/leanote/leanote/app/db" "github.com/leanote/leanote/app/info" + "github.com/revel/revel" . "github.com/leanote/leanote/app/lea" "fmt" ) @@ -53,20 +54,23 @@ func (this *AuthService) register(user info.User) (bool, string) { } email := user.Email + // 添加leanote -> 该用户的共享 - leanoteUserId := "5368c1aa99c37b029d000001"; - nk1 := "5368c1aa99c37b029d000002" // leanote - welcomeNoteId := "5368c1b919807a6f95000000" // 欢迎来到leanote + leanoteUserId, _ := revel.Config.String("register.sharedUserId"); // "5368c1aa99c37b029d000001"; + nk1, _ := revel.Config.String("register.sharedUserShareNotebookId"); // 5368c1aa99c37b029d000002" // leanote + welcomeNoteId, _ := revel.Config.String("register.welcomeNoteId") // "5368c1b919807a6f95000000" // 欢迎来到leanote - shareService.AddShareNotebook(nk1, 0, leanoteUserId, email); - shareService.AddShareNote(welcomeNoteId, 0, leanoteUserId, email); - - // 将welcome copy给我 - note := noteService.CopySharedNote(welcomeNoteId, title2Id["life"].Hex(), leanoteUserId, user.UserId.Hex()); - - // 公开为博客 - noteUpdate := bson.M{"IsBlog": true} - noteService.UpdateNote(user.UserId.Hex(), user.UserId.Hex(), note.NoteId.Hex(), noteUpdate) + if leanoteUserId != "" && nk1 != "" && welcomeNoteId != "" { + shareService.AddShareNotebook(nk1, 0, leanoteUserId, email); + shareService.AddShareNote(welcomeNoteId, 0, leanoteUserId, email); + + // 将welcome copy给我 + note := noteService.CopySharedNote(welcomeNoteId, title2Id["life"].Hex(), leanoteUserId, user.UserId.Hex()); + + // 公开为博客 + noteUpdate := bson.M{"IsBlog": true} + noteService.UpdateNote(user.UserId.Hex(), user.UserId.Hex(), note.NoteId.Hex(), noteUpdate) + } //--------------- // 添加一条userBlog diff --git a/app/tmp/main.go b/app/tmp/main.go index 1ca9306..353c7c4 100644 --- a/app/tmp/main.go +++ b/app/tmp/main.go @@ -102,88 +102,27 @@ func main() { }) - revel.RegisterController((*controllers.Blog)(nil), + revel.RegisterController((*controllers.File)(nil), []*revel.MethodType{ &revel.MethodType{ - Name: "SetNote2Blog", + Name: "UploadImage", Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "noteId", Type: reflect.TypeOf((*string)(nil)) }, - &revel.MethodArg{Name: "isBlog", Type: reflect.TypeOf((*bool)(nil)) }, - &revel.MethodArg{Name: "isTop", Type: reflect.TypeOf((*bool)(nil)) }, + &revel.MethodArg{Name: "renderHtml", Type: reflect.TypeOf((*string)(nil)) }, }, RenderArgNames: map[int][]string{ }, }, &revel.MethodType{ - Name: "SetNotebook2Blog", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "notebookId", Type: reflect.TypeOf((*string)(nil)) }, - &revel.MethodArg{Name: "isBlog", Type: reflect.TypeOf((*bool)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - &revel.MethodType{ - Name: "Index", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "userId", Type: reflect.TypeOf((*string)(nil)) }, - &revel.MethodArg{Name: "notebookId", Type: reflect.TypeOf((*string)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - &revel.MethodType{ - Name: "View", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "noteId", Type: reflect.TypeOf((*string)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - &revel.MethodType{ - Name: "SearchBlog", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "userId", Type: reflect.TypeOf((*string)(nil)) }, - &revel.MethodArg{Name: "key", Type: reflect.TypeOf((*string)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - &revel.MethodType{ - Name: "Set", + Name: "UploadBlogLogo", Args: []*revel.MethodArg{ }, RenderArgNames: map[int][]string{ }, }, &revel.MethodType{ - Name: "SetUserBlogBase", + Name: "UploadImageJson", Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "userBlog", Type: reflect.TypeOf((*info.UserBlogBase)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - &revel.MethodType{ - Name: "SetUserBlogComment", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "userBlog", Type: reflect.TypeOf((*info.UserBlogComment)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - &revel.MethodType{ - Name: "SetUserBlogStyle", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "userBlog", Type: reflect.TypeOf((*info.UserBlogStyle)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - &revel.MethodType{ - Name: "AboutMe", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "userId", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "renderHtml", Type: reflect.TypeOf((*string)(nil)) }, }, RenderArgNames: map[int][]string{ }, @@ -191,20 +130,40 @@ func main() { }) - revel.RegisterController((*controllers.Index)(nil), + revel.RegisterController((*controllers.Notebook)(nil), []*revel.MethodType{ &revel.MethodType{ Name: "Index", Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "notebook", Type: reflect.TypeOf((*info.Notebook)(nil)) }, + &revel.MethodArg{Name: "i", Type: reflect.TypeOf((*int)(nil)) }, + &revel.MethodArg{Name: "name", Type: reflect.TypeOf((*string)(nil)) }, }, RenderArgNames: map[int][]string{ }, }, &revel.MethodType{ - Name: "Suggestion", + Name: "DeleteNotebook", Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "addr", Type: reflect.TypeOf((*string)(nil)) }, - &revel.MethodArg{Name: "suggestion", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "notebookId", Type: reflect.TypeOf((*string)(nil)) }, + }, + RenderArgNames: map[int][]string{ + }, + }, + &revel.MethodType{ + Name: "AddNotebook", + Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "notebookId", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "title", Type: reflect.TypeOf((*string)(nil)) }, + }, + RenderArgNames: map[int][]string{ + }, + }, + &revel.MethodType{ + Name: "UpdateNotebookTitle", + Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "notebookId", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "title", Type: reflect.TypeOf((*string)(nil)) }, }, RenderArgNames: map[int][]string{ }, @@ -325,19 +284,6 @@ func main() { }) - revel.RegisterController((*controllers.Oauth)(nil), - []*revel.MethodType{ - &revel.MethodType{ - Name: "GithubCallback", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "code", Type: reflect.TypeOf((*string)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - - }) - revel.RegisterController((*controllers.Share)(nil), []*revel.MethodType{ &revel.MethodType{ @@ -641,27 +587,109 @@ func main() { }) - revel.RegisterController((*controllers.File)(nil), + revel.RegisterController((*controllers.Blog)(nil), []*revel.MethodType{ &revel.MethodType{ - Name: "UploadImage", + Name: "SetNote2Blog", Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "renderHtml", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "noteId", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "isBlog", Type: reflect.TypeOf((*bool)(nil)) }, + &revel.MethodArg{Name: "isTop", Type: reflect.TypeOf((*bool)(nil)) }, }, RenderArgNames: map[int][]string{ }, }, &revel.MethodType{ - Name: "UploadBlogLogo", + Name: "SetNotebook2Blog", + Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "notebookId", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "isBlog", Type: reflect.TypeOf((*bool)(nil)) }, + }, + RenderArgNames: map[int][]string{ + }, + }, + &revel.MethodType{ + Name: "Index", + Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "userId", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "notebookId", Type: reflect.TypeOf((*string)(nil)) }, + }, + RenderArgNames: map[int][]string{ + }, + }, + &revel.MethodType{ + Name: "View", + Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "noteId", Type: reflect.TypeOf((*string)(nil)) }, + }, + RenderArgNames: map[int][]string{ + }, + }, + &revel.MethodType{ + Name: "SearchBlog", + Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "userId", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "key", Type: reflect.TypeOf((*string)(nil)) }, + }, + RenderArgNames: map[int][]string{ + }, + }, + &revel.MethodType{ + Name: "Set", Args: []*revel.MethodArg{ }, RenderArgNames: map[int][]string{ }, }, &revel.MethodType{ - Name: "UploadImageJson", + Name: "SetUserBlogBase", Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "renderHtml", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "userBlog", Type: reflect.TypeOf((*info.UserBlogBase)(nil)) }, + }, + RenderArgNames: map[int][]string{ + }, + }, + &revel.MethodType{ + Name: "SetUserBlogComment", + Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "userBlog", Type: reflect.TypeOf((*info.UserBlogComment)(nil)) }, + }, + RenderArgNames: map[int][]string{ + }, + }, + &revel.MethodType{ + Name: "SetUserBlogStyle", + Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "userBlog", Type: reflect.TypeOf((*info.UserBlogStyle)(nil)) }, + }, + RenderArgNames: map[int][]string{ + }, + }, + &revel.MethodType{ + Name: "AboutMe", + Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "userId", Type: reflect.TypeOf((*string)(nil)) }, + }, + RenderArgNames: map[int][]string{ + }, + }, + + }) + + revel.RegisterController((*controllers.Index)(nil), + []*revel.MethodType{ + &revel.MethodType{ + Name: "Index", + Args: []*revel.MethodArg{ + }, + RenderArgNames: map[int][]string{ + }, + }, + &revel.MethodType{ + Name: "Suggestion", + Args: []*revel.MethodArg{ + &revel.MethodArg{Name: "addr", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "suggestion", Type: reflect.TypeOf((*string)(nil)) }, }, RenderArgNames: map[int][]string{ }, @@ -688,40 +716,12 @@ func main() { }) - revel.RegisterController((*controllers.Notebook)(nil), + revel.RegisterController((*controllers.NoteContentHistory)(nil), []*revel.MethodType{ &revel.MethodType{ - Name: "Index", + Name: "ListHistories", Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "notebook", Type: reflect.TypeOf((*info.Notebook)(nil)) }, - &revel.MethodArg{Name: "i", Type: reflect.TypeOf((*int)(nil)) }, - &revel.MethodArg{Name: "name", Type: reflect.TypeOf((*string)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - &revel.MethodType{ - Name: "DeleteNotebook", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "notebookId", Type: reflect.TypeOf((*string)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - &revel.MethodType{ - Name: "AddNotebook", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "notebookId", Type: reflect.TypeOf((*string)(nil)) }, - &revel.MethodArg{Name: "title", Type: reflect.TypeOf((*string)(nil)) }, - }, - RenderArgNames: map[int][]string{ - }, - }, - &revel.MethodType{ - Name: "UpdateNotebookTitle", - Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "notebookId", Type: reflect.TypeOf((*string)(nil)) }, - &revel.MethodArg{Name: "title", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "noteId", Type: reflect.TypeOf((*string)(nil)) }, }, RenderArgNames: map[int][]string{ }, @@ -729,12 +729,12 @@ func main() { }) - revel.RegisterController((*controllers.NoteContentHistory)(nil), + revel.RegisterController((*controllers.Oauth)(nil), []*revel.MethodType{ &revel.MethodType{ - Name: "ListHistories", + Name: "GithubCallback", Args: []*revel.MethodArg{ - &revel.MethodArg{Name: "noteId", Type: reflect.TypeOf((*string)(nil)) }, + &revel.MethodArg{Name: "code", Type: reflect.TypeOf((*string)(nil)) }, }, RenderArgNames: map[int][]string{ }, diff --git a/app/views/Errors/404.html b/app/views/Errors/404.html index 746e922..a0af392 100644 --- a/app/views/Errors/404.html +++ b/app/views/Errors/404.html @@ -3,11 +3,6 @@ {{else}} {{template "home/header_box.html" .}} -

error-404

diff --git a/app/views/Home/header.html b/app/views/Home/header.html index fcadf39..c2c6d1d 100644 --- a/app/views/Home/header.html +++ b/app/views/Home/header.html @@ -39,7 +39,9 @@ function log(o) { {{msg . "logout"}} {{else}} {{msg . "login"}} - {{msg . "register"}} + {{if .openRegister}} + {{msg . "register"}} + {{end}} {{end}}
diff --git a/app/views/Home/index.html b/app/views/Home/index.html index d534967..c24ae27 100644 --- a/app/views/Home/index.html +++ b/app/views/Home/index.html @@ -12,12 +12,14 @@     Try it + {{if .openRegister}}     OR     {{msg . "register"}} + {{end}} diff --git a/app/views/Home/login.html b/app/views/Home/login.html index 970ded9..1ffea5d 100644 --- a/app/views/Home/login.html +++ b/app/views/Home/login.html @@ -25,13 +25,17 @@
{{msg . "forgetPassword"}} + {{if .openRegister}}
- {{msg . "register"}} {{msg . "or"}} - {{msg . "try"}} -
+ {{msg . "register"}} + {{msg . "or"}} + {{msg . "try"}} +
{{msg . "3th"}}: github -
+
+ {{end}} + diff --git a/app/views/Note/note-dev.html b/app/views/Note/note-dev.html index e67e157..d057b8a 100644 --- a/app/views/Note/note-dev.html +++ b/app/views/Note/note-dev.html @@ -97,10 +97,13 @@ function log(o) {
- {{if eq .userInfo.Email "demo@leanote.com"}} - - {{msg . "demoRegister"}} - + + {{if .openRegister}} + {{if eq .userInfo.Email "demo@leanote.com"}} + + {{msg . "demoRegister"}} + + {{end}} {{end}}
diff --git a/app/views/Note/note.html b/app/views/Note/note.html index 3b33b73..cc9587b 100755 --- a/app/views/Note/note.html +++ b/app/views/Note/note.html @@ -97,10 +97,13 @@ function log(o) {
- {{if eq .userInfo.Email "demo@leanote.com"}} - - {{msg . "demoRegister"}} - + + {{if .openRegister}} + {{if eq .userInfo.Email "demo@leanote.com"}} + + {{msg . "demoRegister"}} + + {{end}} {{end}}
diff --git a/conf/app-default.conf b/conf/app-default.conf index 2001071..3cf7f7b 100644 --- a/conf/app-default.conf +++ b/conf/app-default.conf @@ -4,6 +4,9 @@ http.port=80 +# open for register? +open=true + site.url=http://localhost # the administrator username @@ -25,6 +28,12 @@ email.port=25 email.username= email.password= +# open for register? +register.open=true +register.sharedUserId=5368c1aa99c37b029d000001 +register.sharedUserShareNotebookId=5368c1aa99c37b029d000002 +register.welcomeNoteId=5368c1b919807a6f95000000 + #-------------------------------- # revel config # for dev diff --git a/public/js/all.js b/public/js/all.js index 1bea847..757ca02 100644 --- a/public/js/all.js +++ b/public/js/all.js @@ -1,2 +1,2 @@ (function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else{factory(jQuery)}})(function($){var pluses=/\+/g;function encode(s){return config.raw?s:encodeURIComponent(s)}function decode(s){return config.raw?s:decodeURIComponent(s)}function stringifyCookieValue(value){return encode(config.json?JSON.stringify(value):String(value))}function parseCookieValue(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\")}try{s=decodeURIComponent(s.replace(pluses," "));return config.json?JSON.parse(s):s}catch(e){}}function read(s,converter){var value=config.raw?s:parseCookieValue(s);return $.isFunction(converter)?converter(value):value}var config=$.cookie=function(key,value,options){if(value!==undefined&&!$.isFunction(value)){options=$.extend({},config.defaults,options);if(typeof options.expires==="number"){var days=options.expires,t=options.expires=new Date;t.setTime(+t+days*864e5)}return document.cookie=[encode(key),"=",stringifyCookieValue(value),options.expires?"; expires="+options.expires.toUTCString():"",options.path?"; path="+options.path:"",options.domain?"; domain="+options.domain:"",options.secure?"; secure":""].join("")}var result=key?undefined:{};var cookies=document.cookie?document.cookie.split("; "):[];for(var i=0,l=cookies.length;ithis.$items.length-1||pos<0)return;if(this.sliding)return this.$element.one("slid",function(){that.to(pos)});if(activeIndex==pos)return this.pause().cycle();return this.slide(pos>activeIndex?"next":"prev",$(this.$items[pos]))};Carousel.prototype.pause=function(e){e||(this.paused=true);if(this.$element.find(".next, .prev").length&&$.support.transition.end){this.$element.trigger($.support.transition.end);this.cycle(true)}this.interval=clearInterval(this.interval);return this};Carousel.prototype.next=function(){if(this.sliding)return;return this.slide("next")};Carousel.prototype.prev=function(){if(this.sliding)return;return this.slide("prev")};Carousel.prototype.slide=function(type,next){var $active=this.$element.find(".item.active");var $next=next||$active[type]();var isCycling=this.interval;var direction=type=="next"?"left":"right";var fallback=type=="next"?"first":"last";var that=this;if(!$next.length){if(!this.options.wrap)return;$next=this.$element.find(".item")[fallback]()}this.sliding=true;isCycling&&this.pause();var e=$.Event("slide.bs.carousel",{relatedTarget:$next[0],direction:direction});if($next.hasClass("active"))return;if(this.$indicators.length){this.$indicators.find(".active").removeClass("active");this.$element.one("slid",function(){var $nextIndicator=$(that.$indicators.children()[that.getActiveIndex()]);$nextIndicator&&$nextIndicator.addClass("active")})}if($.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(e);if(e.isDefaultPrevented())return;$next.addClass(type);$next[0].offsetWidth;$active.addClass(direction);$next.addClass(direction);$active.one($.support.transition.end,function(){$next.removeClass([type,direction].join(" ")).addClass("active");$active.removeClass(["active",direction].join(" "));that.sliding=false;setTimeout(function(){that.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{this.$element.trigger(e);if(e.isDefaultPrevented())return;$active.removeClass("active");$next.addClass("active");this.sliding=false;this.$element.trigger("slid")}isCycling&&this.cycle();return this};var old=$.fn.carousel;$.fn.carousel=function(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.carousel");var options=$.extend({},Carousel.DEFAULTS,$this.data(),typeof option=="object"&&option);var action=typeof option=="string"?option:options.slide;if(!data)$this.data("bs.carousel",data=new Carousel(this,options));if(typeof option=="number")data.to(option);else if(action)data[action]();else if(options.interval)data.pause().cycle()})};$.fn.carousel.Constructor=Carousel;$.fn.carousel.noConflict=function(){$.fn.carousel=old;return this};$(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(e){var $this=$(this),href;var $target=$($this.attr("data-target")||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,""));var options=$.extend({},$target.data(),$this.data());var slideIndex=$this.attr("data-slide-to");if(slideIndex)options.interval=false;$target.carousel(options);if(slideIndex=$this.attr("data-slide-to")){$target.data("bs.carousel").to(slideIndex)}e.preventDefault()});$(window).on("load",function(){$('[data-ride="carousel"]').each(function(){var $carousel=$(this);$carousel.carousel($carousel.data())})})}(jQuery);+function($){"use strict";var Collapse=function(element,options){this.$element=$(element);this.options=$.extend({},Collapse.DEFAULTS,options);this.transitioning=null;if(this.options.parent)this.$parent=$(this.options.parent);if(this.options.toggle)this.toggle()};Collapse.DEFAULTS={toggle:true};Collapse.prototype.dimension=function(){var hasWidth=this.$element.hasClass("width");return hasWidth?"width":"height"};Collapse.prototype.show=function(){if(this.transitioning||this.$element.hasClass("in"))return;var startEvent=$.Event("show.bs.collapse");this.$element.trigger(startEvent);if(startEvent.isDefaultPrevented())return;var actives=this.$parent&&this.$parent.find("> .panel > .in");if(actives&&actives.length){var hasData=actives.data("bs.collapse");if(hasData&&hasData.transitioning)return;actives.collapse("hide");hasData||actives.data("bs.collapse",null)}var dimension=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[dimension](0);this.transitioning=1;var complete=function(){this.$element.removeClass("collapsing").addClass("in")[dimension]("auto");this.transitioning=0;this.$element.trigger("shown.bs.collapse")};if(!$.support.transition)return complete.call(this);var scrollSize=$.camelCase(["scroll",dimension].join("-"));this.$element.one($.support.transition.end,$.proxy(complete,this)).emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])};Collapse.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass("in"))return;var startEvent=$.Event("hide.bs.collapse");this.$element.trigger(startEvent);if(startEvent.isDefaultPrevented())return;var dimension=this.dimension();this.$element[dimension](this.$element[dimension]())[0].offsetHeight;this.$element.addClass("collapsing").removeClass("collapse").removeClass("in");this.transitioning=1;var complete=function(){this.transitioning=0;this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};if(!$.support.transition)return complete.call(this);this.$element[dimension](0).one($.support.transition.end,$.proxy(complete,this)).emulateTransitionEnd(350)};Collapse.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var old=$.fn.collapse;$.fn.collapse=function(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.collapse");var options=$.extend({},Collapse.DEFAULTS,$this.data(),typeof option=="object"&&option);if(!data)$this.data("bs.collapse",data=new Collapse(this,options));if(typeof option=="string")data[option]()})};$.fn.collapse.Constructor=Collapse;$.fn.collapse.noConflict=function(){$.fn.collapse=old;return this};$(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(e){var $this=$(this),href;var target=$this.attr("data-target")||e.preventDefault()||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,"");var $target=$(target);var data=$target.data("bs.collapse");var option=data?"toggle":$this.data();var parent=$this.attr("data-parent");var $parent=parent&&$(parent);if(!data||!data.transitioning){if($parent)$parent.find('[data-toggle=collapse][data-parent="'+parent+'"]').not($this).addClass("collapsed");$this[$target.hasClass("in")?"addClass":"removeClass"]("collapsed")}$target.collapse(option)})}(jQuery);+function($){"use strict";var backdrop=".dropdown-backdrop";var toggle="[data-toggle=dropdown]";var Dropdown=function(element){var $el=$(element).on("click.bs.dropdown",this.toggle)};Dropdown.prototype.toggle=function(e){var $this=$(this);if($this.is(".disabled, :disabled"))return;var $parent=getParent($this);var isActive=$parent.hasClass("open");clearMenus();if(!isActive){if("ontouchstart"in document.documentElement&&!$parent.closest(".navbar-nav").length){$('");MarkdownEditor.refreshPreview()}else{setTimeout(function(){setEditorContent(content,true,preview)},200)}}}}function previewIsEmpty(preview){if(!preview||preview.substr(0,previewToken.length)==previewToken){return true}return false}function getEditorContent(isMarkdown){if(!isMarkdown){var editor=tinymce.activeEditor;if(editor){var content=$(editor.getBody());content.find("pinit").remove();content.find(".thunderpin").remove();content.find(".pin").parent().remove();content=$(content).html();if(content){while(true){var lastEndScriptPos=content.lastIndexOf("");if(lastEndScriptPos==-1){return content}var length=content.length;if(length-9==lastEndScriptPos){var lastScriptPos=content.lastIndexOf("");if(lastEndScriptPos==-1){return content}var length=content.length;if(length-9==lastEndScriptPos){var lastScriptPos=content.lastIndexOf("");if(lastEndScriptPos==-1){return content}var length=content.length;if(length-9==lastEndScriptPos){var lastScriptPos=content.lastIndexOf("");if(lastEndScriptPos==-1){return content}var length=content.length;if(length-9==lastEndScriptPos){var lastScriptPos=content.lastIndexOf("