Improved errors logging
This commit is contained in:
parent
5faf356118
commit
4a50e61fd6
8 changed files with 237 additions and 68 deletions
|
@ -41,7 +41,10 @@ func (form *categoryForm) Validate(w http.ResponseWriter, r *http.Request, app *
|
|||
if err != nil {
|
||||
app.serverError(w, r, err)
|
||||
}
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building category form buffer : ", err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
return false
|
||||
|
@ -73,7 +76,10 @@ func (app *application) categories(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building categories list buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"categories/index.tmpl", "categories/list.tmpl", "categories/list_title.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -113,7 +119,10 @@ func (app *application) categoryCreate(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building category create form buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"categories/create_title.tmpl", "categories/form.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -171,7 +180,10 @@ func (app *application) categoryCreate(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"showMessage":""}`)
|
||||
w.Header().Add("HX-Replace-Url", fmt.Sprint("/type/update/", categoryId))
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building category update form buffer after post on create : ", err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
|
@ -211,7 +223,10 @@ func (app *application) categoryUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building category update form buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"categories/update_title.tmpl", "categories/form.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -258,8 +273,10 @@ func (app *application) categoryUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"showMessage":""}`)
|
||||
fullBuf.WriteTo(w)
|
||||
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building category update form buffer after post on update : ", err)
|
||||
}
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,3 +33,7 @@ func (app *application) notFound(w http.ResponseWriter, r *http.Request) {
|
|||
func (app *application) badRequest(w http.ResponseWriter, err error) {
|
||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||
}
|
||||
|
||||
func (app *application) logError(message string, err error) {
|
||||
app.logger.Error(message, err.Error())
|
||||
}
|
||||
|
|
|
@ -29,7 +29,10 @@ func (app *application) home(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
currentNotebookId = r.PostForm.Get("current_notebook_id")
|
||||
session.Values["current_notebook_id"] = currentNotebookId
|
||||
session.Save(r, w)
|
||||
err = session.Save(r, w)
|
||||
if err != nil {
|
||||
app.logError("Save session on home : ", err)
|
||||
}
|
||||
}
|
||||
|
||||
var fullBuf = new(bytes.Buffer)
|
||||
|
@ -76,7 +79,10 @@ func (app *application) home(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
}
|
||||
fullBuf.WriteTo(w)
|
||||
_, err := fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building home page buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"pages/home.tmpl", "pages/home_items.tmpl", "pages/home_title.tmpl"})
|
||||
if err != nil {
|
||||
|
|
|
@ -64,8 +64,10 @@ func (form *itemForm) Validate(w http.ResponseWriter, r *http.Request, app *appl
|
|||
if err != nil {
|
||||
app.serverError(w, r, err)
|
||||
}
|
||||
fullBuf.WriteTo(w)
|
||||
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item response buffer : ", err)
|
||||
}
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
return false
|
||||
}
|
||||
|
@ -91,8 +93,10 @@ func (form *itemShareForm) Validate(w http.ResponseWriter, r *http.Request, app
|
|||
if err != nil {
|
||||
app.serverError(w, r, err)
|
||||
}
|
||||
fullBuf.WriteTo(w)
|
||||
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item share validation response buffer : ", err)
|
||||
}
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
return false
|
||||
}
|
||||
|
@ -116,7 +120,10 @@ func (app *application) itemsRelationAdd(w http.ResponseWriter, r *http.Request)
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item relation add response buffer : ", err)
|
||||
}
|
||||
w.WriteHeader(http.StatusOK)
|
||||
}
|
||||
|
||||
|
@ -154,7 +161,10 @@ func (app *application) itemsSearch(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item search response buffer : ", err)
|
||||
}
|
||||
}
|
||||
w.WriteHeader(http.StatusOK)
|
||||
}
|
||||
|
@ -185,7 +195,10 @@ func (app *application) itemsSearchForRelations(w http.ResponseWriter, r *http.R
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item search for relations response buffer : ", err)
|
||||
}
|
||||
w.WriteHeader(http.StatusOK)
|
||||
}
|
||||
|
||||
|
@ -253,7 +266,10 @@ func (app *application) items(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err := fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building items list response buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"items/index_all.tmpl", "items/all_list.tmpl", "items/all_list_rows.tmpl", "items/add_to_dashboard.tmpl", "items/remove_from_dashboard.tmpl", "items/all_list_title.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -292,7 +308,10 @@ func (app *application) items(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building items list response buffer on post: ", err)
|
||||
}
|
||||
}
|
||||
w.WriteHeader(http.StatusOK)
|
||||
}
|
||||
|
@ -375,7 +394,10 @@ func (app *application) itemsType(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
}
|
||||
fullBuf.WriteTo(w)
|
||||
_, err := fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building items list by type response buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"items/index.tmpl", "items/list.tmpl", "items/list_rows.tmpl", "items/add_to_dashboard.tmpl", "items/remove_from_dashboard.tmpl", "items/list_title.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -410,7 +432,10 @@ func (app *application) itemsType(w http.ResponseWriter, r *http.Request) {
|
|||
if err != nil {
|
||||
app.serverError(w, r, err)
|
||||
}
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building items list by type response buffer on post : ", err)
|
||||
}
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusOK)
|
||||
|
@ -479,7 +504,10 @@ func (app *application) itemCreate(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"activateEasyMDE":"item-description"}`)
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item create form buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"items/create_title.tmpl", "items/relations.tmpl", "items/form.tmpl", "items/fields.tmpl", "items/form_jscode.tmpl", "items/shares.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -546,7 +574,10 @@ func (app *application) itemCreate(w http.ResponseWriter, r *http.Request) {
|
|||
relatedIdS, found := strings.CutPrefix(name, "ItemRelation-New-")
|
||||
if found && len(values) > 0 {
|
||||
relatedItemId, _ := strconv.ParseInt(relatedIdS, 10, 64)
|
||||
itemModel.AddRelation(item.Id, relatedItemId, values[0])
|
||||
err = itemModel.AddRelation(item.Id, relatedItemId, values[0])
|
||||
if err != nil {
|
||||
app.logError("Saving relation for item : ", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -556,8 +587,10 @@ func (app *application) itemCreate(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
item.TypeTitle = aType.Title
|
||||
fields, _, _ := fieldModel.ByType(typeId)
|
||||
itemModel.SaveKeywords(item, &fields, fieldsValues)
|
||||
|
||||
err = itemModel.SaveKeywords(item, &fields, fieldsValues)
|
||||
if err != nil {
|
||||
app.logError("Saving keywords for item : ", err)
|
||||
}
|
||||
data["formAction"] = fmt.Sprint("/item/update/", itemId)
|
||||
data["formTarget"] = "#message"
|
||||
|
||||
|
@ -605,7 +638,10 @@ func (app *application) itemCreate(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"activateEasyMDE":"item-description","showMessage":""}`)
|
||||
w.Header().Add("HX-Replace-Url", fmt.Sprint("/item/update/", itemId))
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item update form buffer after post on create : ", err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
|
@ -639,7 +675,10 @@ func (app *application) itemRead(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item read buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"items/read_title.tmpl", "items/relations_view.tmpl", "items/read.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -672,7 +711,8 @@ func (app *application) itemView(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"showModalDialog": ""}`)
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
app.logError("Building item view buffer : ", err)
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"items/read_title.tmpl", "items/relations_view.tmpl", "items/read.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -753,7 +793,10 @@ func (app *application) itemUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"activateEasyMDE":"item-description"}`)
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item update form buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"items/update_title.tmpl", "items/form.tmpl", "items/fields.tmpl", "items/relations.tmpl", "items/shares.tmpl", "items/form_jscode.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -818,7 +861,10 @@ func (app *application) itemUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
relatedIdS, found := strings.CutPrefix(name, "ItemRelation-New-")
|
||||
if found && len(values) > 0 {
|
||||
relatedItemId, _ := strconv.ParseInt(relatedIdS, 10, 64)
|
||||
itemModel.AddRelation(item.Id, relatedItemId, values[0])
|
||||
err = itemModel.AddRelation(item.Id, relatedItemId, values[0])
|
||||
if err != nil {
|
||||
app.logError("Saving relation for item : ", err)
|
||||
}
|
||||
}
|
||||
|
||||
idS, found = strings.CutPrefix(name, "ItemRelation-")
|
||||
|
@ -828,9 +874,15 @@ func (app *application) itemUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
relatedItemId, _ := strconv.ParseInt(ids[1], 10, 64)
|
||||
valuesRemove, isMapContainsKey := r.PostForm["ItemRelation-ToRemove-"+idS]
|
||||
if isMapContainsKey && valuesRemove[0] == "1" {
|
||||
itemModel.DeleteRelation(itemId, relatedItemId)
|
||||
err = itemModel.DeleteRelation(itemId, relatedItemId)
|
||||
if err != nil {
|
||||
app.logError("Delete relation from item : ", err)
|
||||
}
|
||||
} else {
|
||||
itemModel.UpdateRelation(itemId, relatedItemId, values[0])
|
||||
err = itemModel.UpdateRelation(itemId, relatedItemId, values[0])
|
||||
if err != nil {
|
||||
app.logError("Update relation for item : ", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
shareId, found := strings.CutPrefix(name, "ItemShare-ToRemove-")
|
||||
|
@ -838,7 +890,10 @@ func (app *application) itemUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
valuesRemove, isMapContainsKey := r.PostForm["ItemShare-ToRemove-"+shareId]
|
||||
if isMapContainsKey && valuesRemove[0] == "1" {
|
||||
shareIdInt, _ := strconv.ParseInt(shareId, 10, 64)
|
||||
itemModel.DeleteShare(shareIdInt)
|
||||
err = itemModel.DeleteShare(shareIdInt)
|
||||
if err != nil {
|
||||
app.logError("Deleting share for item : ", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -848,8 +903,10 @@ func (app *application) itemUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
fields, _, _ := fieldModel.ByType(item.TypeId)
|
||||
itemModel.SaveKeywords(item, &fields, fieldsValues)
|
||||
|
||||
err = itemModel.SaveKeywords(item, &fields, fieldsValues)
|
||||
if err != nil {
|
||||
app.logError("Saving keywords for item : ", err)
|
||||
}
|
||||
relations, _, _ := itemModel.GetRelations(item.Id)
|
||||
shares, _, _ := itemModel.GetShares(item.Id)
|
||||
|
||||
|
@ -905,7 +962,10 @@ func (app *application) itemUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
w.Header().Add("HX-Reswap", `beforeend`)
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"showMessage": ""}`)
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item update form buffer after post on update : ", err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
|
@ -943,7 +1003,10 @@ func (app *application) itemShare(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"showModalDialog": ""}`)
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item share form buffer : ", err)
|
||||
}
|
||||
case http.MethodPost:
|
||||
var itemShareFromForm itemShareForm
|
||||
|
||||
|
@ -984,7 +1047,10 @@ func (app *application) itemShare(w http.ResponseWriter, r *http.Request) {
|
|||
w.Header().Add("HX-Reswap", `beforeend`)
|
||||
w.Header().Add("HX-Trigger-After-Swap", `{"showMessage": "", "closeModalDialog": ""}`)
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item share form buffer on post : ", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1007,7 +1073,10 @@ func (app *application) itemShareEdit(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
w.Header().Add("HX-Trigger-After-Swap", `{"showModalDialog": ""}`)
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item share edit form buffer : ", err)
|
||||
}
|
||||
case http.MethodPost:
|
||||
var itemShareFromForm itemShareForm
|
||||
|
||||
|
@ -1047,7 +1116,10 @@ func (app *application) itemShareEdit(w http.ResponseWriter, r *http.Request) {
|
|||
w.Header().Add("HX-Reswap", `beforeend`)
|
||||
w.Header().Add("HX-Trigger-After-Swap", `{"showMessage": "", "closeModalDialog": ""}`)
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building item share form buffer on post : ", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1067,7 +1139,10 @@ func (app *application) itemAddToDashboard(w http.ResponseWriter, r *http.Reques
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building add item to the dashboard response: ", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (app *application) itemRemoveFromDashboard(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -1087,6 +1162,9 @@ func (app *application) itemRemoveFromDashboard(w http.ResponseWriter, r *http.R
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building remove item from the dashboard response: ", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,7 +59,12 @@ func run(logger *slog.Logger) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer db.Close()
|
||||
defer func(db *database.DB) {
|
||||
err := db.Close()
|
||||
if err != nil {
|
||||
logger.Error("Building category update form buffer after post on create : ", err)
|
||||
}
|
||||
}(db)
|
||||
|
||||
mailer, err := smtp.NewMailer(cfg.smtp.host, cfg.smtp.port, cfg.smtp.username, cfg.smtp.password, cfg.smtp.from)
|
||||
if err != nil {
|
||||
|
|
|
@ -45,7 +45,10 @@ func (form *notebookForm) Validate(w http.ResponseWriter, r *http.Request, app *
|
|||
if err != nil {
|
||||
app.serverError(w, r, err)
|
||||
}
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building notebook validation response buffer : ", err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
return false
|
||||
|
@ -74,7 +77,10 @@ func (app *application) notebooks(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building notebooks list response buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"notebooks/index.tmpl", "notebooks/list.tmpl", "notebooks/list_title.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -115,7 +121,10 @@ func (app *application) notebookCreate(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building notebook create form buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"notebooks/create_title.tmpl", "notebooks/form.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -183,7 +192,8 @@ func (app *application) notebookCreate(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
w.Header().Add("HX-Replace-Url", fmt.Sprint("/notebook/update/", notebookId))
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
app.logError("Building category update form buffer after post on create : ", err)
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
|
@ -223,7 +233,10 @@ func (app *application) notebookUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building notebook update form buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"notebooks/update_title.tmpl", "notebooks/form.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -281,7 +294,10 @@ func (app *application) notebookUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building notebook update form buffer on post : ", err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
|
|
|
@ -55,7 +55,10 @@ func (app *application) quickboxAll(w http.ResponseWriter, r *http.Request) {
|
|||
if err != nil {
|
||||
app.serverError(w, r, err)
|
||||
}
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building quickbox list buffer : ", err)
|
||||
}
|
||||
w.WriteHeader(http.StatusOK)
|
||||
}
|
||||
|
||||
|
@ -96,7 +99,10 @@ func (app *application) quickboxAdd(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
w.Header().Add("HX-Trigger", `{"quickboxNoteClear": ""}`)
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building quickbox add buffer : ", err)
|
||||
}
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
|
||||
|
@ -129,7 +135,10 @@ func (app *application) quickboxTransform(w http.ResponseWriter, r *http.Request
|
|||
}
|
||||
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"showModalDialog": ""}`)
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building quickbox transform form buffer : ", err)
|
||||
}
|
||||
|
||||
case http.MethodPost:
|
||||
itemModel := models.NewItemModel(app.db)
|
||||
|
@ -170,11 +179,9 @@ func (app *application) quickboxTransform(w http.ResponseWriter, r *http.Request
|
|||
var fields, _, _ = fieldModel.ByType(item.TypeId)
|
||||
fieldsValues := make(map[int64]map[int]string)
|
||||
|
||||
itemModel.SaveKeywords(item, &fields, fieldsValues)
|
||||
|
||||
err = itemModel.SaveKeywords(item, &fields, fieldsValues)
|
||||
if err != nil {
|
||||
app.badRequest(w, err)
|
||||
return
|
||||
app.logError("Quickbox save keywords : ", err)
|
||||
}
|
||||
|
||||
data["messageType"] = "success"
|
||||
|
@ -186,8 +193,10 @@ func (app *application) quickboxTransform(w http.ResponseWriter, r *http.Request
|
|||
|
||||
triggerResponse := fmt.Sprintf(`{"closeQuickboxTransformModal":{"quickNoteId": "%d", "keepQuickNote": "%d"}}`, quicknoteId, quicknoteTransformFromForm.KeepInQuickbox)
|
||||
w.Header().Add("HX-Trigger-After-Settle", triggerResponse)
|
||||
fullBuf.WriteTo(w)
|
||||
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building quickbox transform form buffer on post : ", err)
|
||||
}
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
}
|
||||
|
@ -230,7 +239,11 @@ func (app *application) quickboxUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
fullBuf.Write(buf.Bytes())
|
||||
fullBuf.WriteString("</div>")
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building quickbox update form buffer : ", err)
|
||||
}
|
||||
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"quicknotes/update_title.tmpl", "quicknotes/form.tmpl", "partials/message.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -284,7 +297,10 @@ func (app *application) quickboxUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
fullBuf.Write(buf.Bytes())
|
||||
fullBuf.WriteString("</div>")
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building quickbox update form buffer on post : ", err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
|
|
|
@ -47,7 +47,10 @@ func (form *typeForm) Validate(w http.ResponseWriter, r *http.Request, app *appl
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building type validation response buffer : ", err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
return false
|
||||
|
@ -77,7 +80,10 @@ func (app *application) types(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building types list response buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"types/index.tmpl", "types/list.tmpl", "types/list_title.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -129,7 +135,10 @@ func (app *application) typeCreate(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building type create form buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"types/create_title.tmpl", "types/fields.tmpl", "types/form.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -218,7 +227,10 @@ func (app *application) typeCreate(w http.ResponseWriter, r *http.Request) {
|
|||
w.Header().Add("HX-Replace-Url", fmt.Sprint("/type/update/", typeId))
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"showMessage":""}`)
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building notebook create form buffer on post : ", err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
|
@ -276,7 +288,10 @@ func (app *application) typeUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
app.serverError(w, r, err)
|
||||
}
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building type update form buffer : ", err)
|
||||
}
|
||||
} else {
|
||||
err := response.Page(w, http.StatusOK, data, []string{"types/update_title.tmpl", "types/form.tmpl", "types/fields.tmpl"})
|
||||
if err != nil {
|
||||
|
@ -354,9 +369,15 @@ func (app *application) typeUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
for id, field := range fieldsUpdate {
|
||||
if field.ToRemove > 0 {
|
||||
typeModel.RemoveField(id)
|
||||
err = typeModel.RemoveField(id)
|
||||
if err != nil {
|
||||
app.logError("Removing a field from a type : ", err)
|
||||
}
|
||||
} else {
|
||||
typeModel.SaveField(&field)
|
||||
err = typeModel.SaveField(&field)
|
||||
if err != nil {
|
||||
app.logError("Adding a field to a type : ", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -398,7 +419,10 @@ func (app *application) typeUpdate(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
w.Header().Add("HX-Trigger-After-Settle", `{"showMessage":""}`)
|
||||
|
||||
fullBuf.WriteTo(w)
|
||||
_, err = fullBuf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Building type update form buffer on post : ", err)
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
||||
}
|
||||
|
@ -421,7 +445,10 @@ func (app *application) typeFieldNew(w http.ResponseWriter, r *http.Request) {
|
|||
if err != nil {
|
||||
app.serverError(w, r, err)
|
||||
}
|
||||
buf.WriteTo(w)
|
||||
_, err = buf.WriteTo(w)
|
||||
if err != nil {
|
||||
app.logError("Adding new field to a type buffer : ", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (app *application) typeDelete(w http.ResponseWriter, r *http.Request) {
|
||||
|
|
Loading…
Add table
Reference in a new issue