diff --git a/assets/css/home.css b/assets/css/home.css new file mode 100644 index 0000000..dd0a918 --- /dev/null +++ b/assets/css/home.css @@ -0,0 +1,17 @@ +.my_table { + display: block; + max-width: 1280px; +} + +.my_table tr { + display: inline-block; + width: 100%; + border: 1px solid #eee; + border-collapse: collapse; +} + +.my_table tr td { + display: inline-block; + word-wrap: break-word; + padding: 2px 5px; +} \ No newline at end of file diff --git a/assets/js/home.js b/assets/js/home.js new file mode 100644 index 0000000..f11c0cc --- /dev/null +++ b/assets/js/home.js @@ -0,0 +1,22 @@ +$('.deleteShortUrl').click(function () { + let csrfToken = $('input[name="csrf_token"]').val() + let u = $(this).attr('data-short-url') + $.ajax({ + url: '/delete-short-url/' + u, + type: 'POST', + cache: false, + processData: false, + contentType: false, + headers: { + "X-CSRF-Token": csrfToken + }, + success: function (res) { + if (res.success) { + alert('删除成功'); + window.location.reload(); + } else { + alert('删除失败'); + } + } + }) +}); \ No newline at end of file diff --git a/go.mod b/go.mod index cff3f6e..6fcef4e 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/zhang2092/go-url-shortener -go 1.23.3 +go 1.23.4 require ( github.com/a-h/templ v0.2.793 diff --git a/internal/handler/account.go b/internal/handler/account.go index 1198cd4..15c028e 100644 --- a/internal/handler/account.go +++ b/internal/handler/account.go @@ -11,11 +11,11 @@ import ( "github.com/zhang2092/go-url-shortener/internal/pkg/cookie" pwd "github.com/zhang2092/go-url-shortener/internal/pkg/password" "github.com/zhang2092/go-url-shortener/internal/templ" - "github.com/zhang2092/go-url-shortener/internal/templ/model" + "github.com/zhang2092/go-url-shortener/internal/templ/models" ) func RegisterView(w http.ResponseWriter, r *http.Request) { - templ.Register(w, r, &model.RegisterPageData{}) + templ.Register(w, r, &models.RegisterPageData{}) } func Register(store db.Store) http.HandlerFunc { @@ -67,7 +67,7 @@ func Register(store db.Store) http.HandlerFunc { } func LoginView(w http.ResponseWriter, r *http.Request) { - templ.Login(w, r, &model.LoginPageData{}) + templ.Login(w, r, &models.LoginPageData{}) } func Login(store db.Store) http.HandlerFunc { @@ -75,7 +75,7 @@ func Login(store db.Store) http.HandlerFunc { defer r.Body.Close() if err := r.ParseForm(); err != nil { - templ.Login(w, r, &model.LoginPageData{Summary: "请求网络错误,请刷新重试"}) + templ.Login(w, r, &models.LoginPageData{Summary: "请求网络错误,请刷新重试"}) return } @@ -128,9 +128,9 @@ func Logout() http.HandlerFunc { } } -func viladatorRegister(email, username, password string) (*model.RegisterPageData, bool) { +func viladatorRegister(email, username, password string) (*models.RegisterPageData, bool) { ok := true - resp := &model.RegisterPageData{ + resp := &models.RegisterPageData{ Email: email, Username: username, Password: password, @@ -152,9 +152,9 @@ func viladatorRegister(email, username, password string) (*model.RegisterPageDat return resp, ok } -func viladatorLogin(email, password string) (*model.LoginPageData, bool) { +func viladatorLogin(email, password string) (*models.LoginPageData, bool) { ok := true - errs := &model.LoginPageData{ + errs := &models.LoginPageData{ Email: email, Password: password, } diff --git a/internal/templ/auth/login.templ b/internal/templ/auth/login.templ index b8c0bcc..65af545 100644 --- a/internal/templ/auth/login.templ +++ b/internal/templ/auth/login.templ @@ -2,19 +2,19 @@ package auth import ( "github.com/zhang2092/go-url-shortener/internal/templ/base" - "github.com/zhang2092/go-url-shortener/internal/templ/funcs" - "github.com/zhang2092/go-url-shortener/internal/templ/model" + "github.com/zhang2092/go-url-shortener/internal/templ/models" + "github.com/zhang2092/go-url-shortener/internal/templ/util" "net/http" ) -templ Login(r *http.Request, page string, form *model.LoginPageData) { - @base.Base(page) { +templ Login(r *http.Request, form *models.LoginPageData) { + @base.Base() {

登录

- @templ.Raw(funcs.CsrfField(r)) + @templ.Raw(util.CsrfField(r))
diff --git a/internal/templ/auth/login_templ.go b/internal/templ/auth/login_templ.go index 55d3ea5..1b5e1d3 100644 --- a/internal/templ/auth/login_templ.go +++ b/internal/templ/auth/login_templ.go @@ -10,12 +10,12 @@ import templruntime "github.com/a-h/templ/runtime" import ( "github.com/zhang2092/go-url-shortener/internal/templ/base" - "github.com/zhang2092/go-url-shortener/internal/templ/funcs" - "github.com/zhang2092/go-url-shortener/internal/templ/model" + "github.com/zhang2092/go-url-shortener/internal/templ/models" + "github.com/zhang2092/go-url-shortener/internal/templ/util" "net/http" ) -func Login(r *http.Request, page string, form *model.LoginPageData) templ.Component { +func Login(r *http.Request, form *models.LoginPageData) templ.Component { return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { @@ -52,7 +52,7 @@ func Login(r *http.Request, page string, form *model.LoginPageData) templ.Compon if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templ.Raw(funcs.CsrfField(r)).Render(ctx, templ_7745c5c3_Buffer) + templ_7745c5c3_Err = templ.Raw(util.CsrfField(r)).Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -157,7 +157,7 @@ func Login(r *http.Request, page string, form *model.LoginPageData) templ.Compon } return templ_7745c5c3_Err }) - templ_7745c5c3_Err = base.Base(page).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) + templ_7745c5c3_Err = base.Base().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/internal/templ/auth/register.templ b/internal/templ/auth/register.templ index d4c8f6f..ab4e4ab 100644 --- a/internal/templ/auth/register.templ +++ b/internal/templ/auth/register.templ @@ -2,19 +2,19 @@ package auth import ( "github.com/zhang2092/go-url-shortener/internal/templ/base" - "github.com/zhang2092/go-url-shortener/internal/templ/funcs" - "github.com/zhang2092/go-url-shortener/internal/templ/model" + "github.com/zhang2092/go-url-shortener/internal/templ/models" + "github.com/zhang2092/go-url-shortener/internal/templ/util" "net/http" ) -templ Register(r *http.Request, page string, form *model.RegisterPageData) { - @base.Base(page) { +templ Register(r *http.Request, form *models.RegisterPageData) { + @base.Base() {

注册

- @templ.Raw(funcs.CsrfField(r)) + @templ.Raw(util.CsrfField(r))
diff --git a/internal/templ/auth/register_templ.go b/internal/templ/auth/register_templ.go index 87b88a0..ab9a72b 100644 --- a/internal/templ/auth/register_templ.go +++ b/internal/templ/auth/register_templ.go @@ -10,12 +10,12 @@ import templruntime "github.com/a-h/templ/runtime" import ( "github.com/zhang2092/go-url-shortener/internal/templ/base" - "github.com/zhang2092/go-url-shortener/internal/templ/funcs" - "github.com/zhang2092/go-url-shortener/internal/templ/model" + "github.com/zhang2092/go-url-shortener/internal/templ/models" + "github.com/zhang2092/go-url-shortener/internal/templ/util" "net/http" ) -func Register(r *http.Request, page string, form *model.RegisterPageData) templ.Component { +func Register(r *http.Request, form *models.RegisterPageData) templ.Component { return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { @@ -52,7 +52,7 @@ func Register(r *http.Request, page string, form *model.RegisterPageData) templ. if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templ.Raw(funcs.CsrfField(r)).Render(ctx, templ_7745c5c3_Buffer) + templ_7745c5c3_Err = templ.Raw(util.CsrfField(r)).Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -193,7 +193,7 @@ func Register(r *http.Request, page string, form *model.RegisterPageData) templ. } return templ_7745c5c3_Err }) - templ_7745c5c3_Err = base.Base(page).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) + templ_7745c5c3_Err = base.Base().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/internal/templ/base/base.templ b/internal/templ/base/base.templ index 83dd20f..a3de598 100644 --- a/internal/templ/base/base.templ +++ b/internal/templ/base/base.templ @@ -1,12 +1,10 @@ package base -import ( - "github.com/zhang2092/go-url-shortener/internal/templ/css" - "github.com/zhang2092/go-url-shortener/internal/templ/funcs" - "github.com/zhang2092/go-url-shortener/internal/templ/js" -) +import "github.com/zhang2092/go-url-shortener/internal/templ/util" -templ Base(page string) { +templ Base(assets ...string) { + {{ csses := util.GetCssFile(assets...) }} + {{ jss := util.GetJsFile(assets...) }} @@ -15,9 +13,8 @@ templ Base(page string) { - switch page { - case "home": - @css.HomeCSS() + for _, cs := range csses { + } URL段地址服务 @@ -28,7 +25,7 @@ templ Base(page string) { URL段地址服务
    - {{ auth := funcs.GetAuthorize(ctx) }} + {{ auth := util.GetAuthorize(ctx) }} if auth != nil {
  • 欢迎您: { auth.Name } @@ -50,9 +47,8 @@ templ Base(page string) { { children... } - switch page { - case "home": - @js.HomeJS() + for _, js := range jss { + } diff --git a/internal/templ/base/base_templ.go b/internal/templ/base/base_templ.go index 05dc7da..3d42c57 100644 --- a/internal/templ/base/base_templ.go +++ b/internal/templ/base/base_templ.go @@ -8,13 +8,9 @@ package base import "github.com/a-h/templ" import templruntime "github.com/a-h/templ/runtime" -import ( - "github.com/zhang2092/go-url-shortener/internal/templ/css" - "github.com/zhang2092/go-url-shortener/internal/templ/funcs" - "github.com/zhang2092/go-url-shortener/internal/templ/js" -) +import "github.com/zhang2092/go-url-shortener/internal/templ/util" -func Base(page string) templ.Component { +func Base(assets ...string) templ.Component { return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { @@ -35,13 +31,27 @@ func Base(page string) templ.Component { templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) + csses := util.GetCssFile(assets...) + jss := util.GetJsFile(assets...) _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - switch page { - case "home": - templ_7745c5c3_Err = css.HomeCSS().Render(ctx, templ_7745c5c3_Buffer) + for _, cs := range csses { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -50,18 +60,18 @@ func Base(page string) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - auth := funcs.GetAuthorize(ctx) + auth := util.GetAuthorize(ctx) if auth != nil { _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
  • 欢迎您: ") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - var templ_7745c5c3_Var2 string - templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(auth.Name) + var templ_7745c5c3_Var3 string + templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(auth.Name) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/templ/base/base.templ`, Line: 34, Col: 30} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/templ/base/base.templ`, Line: 31, Col: 30} } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -87,9 +97,21 @@ func Base(page string) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - switch page { - case "home": - templ_7745c5c3_Err = js.HomeJS().Render(ctx, templ_7745c5c3_Buffer) + for _, js := range jss { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/internal/templ/css/home.templ b/internal/templ/css/home.templ deleted file mode 100644 index f7fffae..0000000 --- a/internal/templ/css/home.templ +++ /dev/null @@ -1,23 +0,0 @@ -package css - -templ HomeCSS() { - -} diff --git a/internal/templ/css/home_templ.go b/internal/templ/css/home_templ.go deleted file mode 100644 index 4a2ac72..0000000 --- a/internal/templ/css/home_templ.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.2.793 -package css - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func HomeCSS() templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return templ_7745c5c3_Err - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/internal/templ/err/404.templ b/internal/templ/err/404.templ index 0f5e7ca..8f0dbbc 100644 --- a/internal/templ/err/404.templ +++ b/internal/templ/err/404.templ @@ -3,7 +3,7 @@ package err import "github.com/zhang2092/go-url-shortener/internal/templ/base" templ Error404() { - @base.Base("404") { + @base.Base() {

    404

    当前短路径已经失效

    } diff --git a/internal/templ/err/404_templ.go b/internal/templ/err/404_templ.go index be5ff8b..fa44d77 100644 --- a/internal/templ/err/404_templ.go +++ b/internal/templ/err/404_templ.go @@ -49,7 +49,7 @@ func Error404() templ.Component { } return templ_7745c5c3_Err }) - templ_7745c5c3_Err = base.Base("404").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) + templ_7745c5c3_Err = base.Base().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/internal/templ/home/home.templ b/internal/templ/home/home.templ index 11a1034..ea6360e 100644 --- a/internal/templ/home/home.templ +++ b/internal/templ/home/home.templ @@ -3,12 +3,12 @@ package home import ( "github.com/zhang2092/go-url-shortener/internal/db" "github.com/zhang2092/go-url-shortener/internal/templ/base" - "github.com/zhang2092/go-url-shortener/internal/templ/funcs" + "github.com/zhang2092/go-url-shortener/internal/templ/util" "net/http" ) -templ Home(r *http.Request, page string, data []*db.UserRelateUrl) { - @base.Base(page) { +templ Home(r *http.Request, data []*db.UserRelateUrl, assets ...string) { + @base.Base(assets...) {

    @@ -44,7 +44,7 @@ templ Home(r *http.Request, page string, data []*db.UserRelateUrl) { } - @templ.Raw(funcs.CsrfField(r)) + @templ.Raw(util.CsrfField(r))

    } diff --git a/internal/templ/home/home_templ.go b/internal/templ/home/home_templ.go index 77f6fc4..b2a5aef 100644 --- a/internal/templ/home/home_templ.go +++ b/internal/templ/home/home_templ.go @@ -11,11 +11,11 @@ import templruntime "github.com/a-h/templ/runtime" import ( "github.com/zhang2092/go-url-shortener/internal/db" "github.com/zhang2092/go-url-shortener/internal/templ/base" - "github.com/zhang2092/go-url-shortener/internal/templ/funcs" + "github.com/zhang2092/go-url-shortener/internal/templ/util" "net/http" ) -func Home(r *http.Request, page string, data []*db.UserRelateUrl) templ.Component { +func Home(r *http.Request, data []*db.UserRelateUrl, assets ...string) templ.Component { return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { @@ -135,7 +135,7 @@ func Home(r *http.Request, page string, data []*db.UserRelateUrl) templ.Componen if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templ.Raw(funcs.CsrfField(r)).Render(ctx, templ_7745c5c3_Buffer) + templ_7745c5c3_Err = templ.Raw(util.CsrfField(r)).Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -145,7 +145,7 @@ func Home(r *http.Request, page string, data []*db.UserRelateUrl) templ.Componen } return templ_7745c5c3_Err }) - templ_7745c5c3_Err = base.Base(page).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) + templ_7745c5c3_Err = base.Base(assets...).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/internal/templ/js/home.templ b/internal/templ/js/home.templ deleted file mode 100644 index c3ba2db..0000000 --- a/internal/templ/js/home.templ +++ /dev/null @@ -1,28 +0,0 @@ -package js - -templ HomeJS() { - -} diff --git a/internal/templ/js/home_templ.go b/internal/templ/js/home_templ.go deleted file mode 100644 index 6a9c166..0000000 --- a/internal/templ/js/home_templ.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.2.793 -package js - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func HomeJS() templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return templ_7745c5c3_Err - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/internal/templ/model/auth.go b/internal/templ/models/auth.go similarity index 95% rename from internal/templ/model/auth.go rename to internal/templ/models/auth.go index 6438fcf..ace7603 100644 --- a/internal/templ/model/auth.go +++ b/internal/templ/models/auth.go @@ -1,4 +1,4 @@ -package model +package models type LoginPageData struct { Summary string diff --git a/internal/templ/templ.go b/internal/templ/templ.go index c1bd11b..6543ce5 100644 --- a/internal/templ/templ.go +++ b/internal/templ/templ.go @@ -7,24 +7,28 @@ import ( "github.com/zhang2092/go-url-shortener/internal/templ/auth" "github.com/zhang2092/go-url-shortener/internal/templ/err" "github.com/zhang2092/go-url-shortener/internal/templ/home" - "github.com/zhang2092/go-url-shortener/internal/templ/model" + "github.com/zhang2092/go-url-shortener/internal/templ/models" "github.com/zhang2092/go-url-shortener/internal/templ/url" ) -func Login(w http.ResponseWriter, r *http.Request, form *model.LoginPageData) { - checkErr(w, auth.Login(r, "login", form).Render(r.Context(), w)) +func Login(w http.ResponseWriter, r *http.Request, form *models.LoginPageData) { + checkErr(w, auth.Login(r, form).Render(r.Context(), w)) } -func Register(w http.ResponseWriter, r *http.Request, form *model.RegisterPageData) { - checkErr(w, auth.Register(r, "register", form).Render(r.Context(), w)) +func Register(w http.ResponseWriter, r *http.Request, form *models.RegisterPageData) { + checkErr(w, auth.Register(r, form).Render(r.Context(), w)) } func Home(w http.ResponseWriter, r *http.Request, data []*db.UserRelateUrl) { - checkErr(w, home.Home(r, "home", data).Render(r.Context(), w)) + assets := []string{ + "/assets/css/home.css", + "/assets/js/home.js", + } + checkErr(w, home.Home(r, data, assets...).Render(r.Context(), w)) } func CreateUrl(w http.ResponseWriter, r *http.Request, errorMsg string) { - checkErr(w, url.CreateUrl(r, "create_url", errorMsg).Render(r.Context(), w)) + checkErr(w, url.CreateUrl(r, errorMsg).Render(r.Context(), w)) } func Error404(w http.ResponseWriter, r *http.Request) { diff --git a/internal/templ/url/url.templ b/internal/templ/url/url.templ index 1d8c41d..47410c6 100644 --- a/internal/templ/url/url.templ +++ b/internal/templ/url/url.templ @@ -2,18 +2,18 @@ package url import ( "github.com/zhang2092/go-url-shortener/internal/templ/base" - "github.com/zhang2092/go-url-shortener/internal/templ/funcs" + "github.com/zhang2092/go-url-shortener/internal/templ/util" "net/http" ) -templ CreateUrl(r *http.Request, page string, errorMsg string) { - @base.Base(page) { +templ CreateUrl(r *http.Request, errorMsg string) { + @base.Base() {

    创建短路径

    - @templ.Raw(funcs.CsrfField(r)) + @templ.Raw(util.CsrfField(r))
    diff --git a/internal/templ/url/url_templ.go b/internal/templ/url/url_templ.go index d4e5a33..58942e5 100644 --- a/internal/templ/url/url_templ.go +++ b/internal/templ/url/url_templ.go @@ -10,11 +10,11 @@ import templruntime "github.com/a-h/templ/runtime" import ( "github.com/zhang2092/go-url-shortener/internal/templ/base" - "github.com/zhang2092/go-url-shortener/internal/templ/funcs" + "github.com/zhang2092/go-url-shortener/internal/templ/util" "net/http" ) -func CreateUrl(r *http.Request, page string, errorMsg string) templ.Component { +func CreateUrl(r *http.Request, errorMsg string) templ.Component { return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { @@ -51,7 +51,7 @@ func CreateUrl(r *http.Request, page string, errorMsg string) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templ.Raw(funcs.CsrfField(r)).Render(ctx, templ_7745c5c3_Buffer) + templ_7745c5c3_Err = templ.Raw(util.CsrfField(r)).Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -71,7 +71,7 @@ func CreateUrl(r *http.Request, page string, errorMsg string) templ.Component { } return templ_7745c5c3_Err }) - templ_7745c5c3_Err = base.Base(page).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) + templ_7745c5c3_Err = base.Base().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/internal/templ/funcs/authorize.go b/internal/templ/util/authorize.go similarity index 92% rename from internal/templ/funcs/authorize.go rename to internal/templ/util/authorize.go index c888b9c..90ae1e1 100644 --- a/internal/templ/funcs/authorize.go +++ b/internal/templ/util/authorize.go @@ -1,4 +1,4 @@ -package funcs +package util import ( "context" diff --git a/internal/templ/funcs/csrf.go b/internal/templ/util/csrf.go similarity index 91% rename from internal/templ/funcs/csrf.go rename to internal/templ/util/csrf.go index 47a4043..8d732f4 100644 --- a/internal/templ/funcs/csrf.go +++ b/internal/templ/util/csrf.go @@ -1,4 +1,4 @@ -package funcs +package util import ( "html/template" diff --git a/internal/templ/util/file.go b/internal/templ/util/file.go new file mode 100644 index 0000000..784ce9a --- /dev/null +++ b/internal/templ/util/file.go @@ -0,0 +1,29 @@ +package util + +import "strings" + +func GetCssFile(path ...string) []string { + var res []string + if len(path) > 0 { + for _, p := range path { + if strings.HasSuffix(p, ".css") { + res = append(res, p) + } + } + } + + return res +} + +func GetJsFile(path ...string) []string { + var res []string + if len(path) > 0 { + for _, p := range path { + if strings.HasSuffix(p, ".js") { + res = append(res, p) + } + } + } + + return res +}