diff --git a/handler/tracker.go b/handler/tracker.go index 7edf721..cda8631 100644 --- a/handler/tracker.go +++ b/handler/tracker.go @@ -146,7 +146,7 @@ func TrackerDamage(c fiber.Ctx) error { heal := c.FormValue("heal") savingThrow := c.FormValue("savingthrow") - if savingThrow == "on" || heal == "false" { + if savingThrow == "on" && heal != "true" { damageFloat := float64(damage) * 0.33333 damage -= int(math.Round(damageFloat)) } diff --git a/main.go b/main.go index f5f2cd0..56b63e6 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "github.com/gofiber/fiber/v3" "github.com/gofiber/fiber/v3/middleware/compress" + "github.com/gofiber/fiber/v3/middleware/logger" "github.com/itsig0/tallytome/handler" ) @@ -22,6 +23,7 @@ func main() { // compression baby app.Use(compress.New()) + app.Use(logger.New()) app.Static("/", "./public") diff --git a/public/scripts/tallytome.js b/public/scripts/tallytome.js new file mode 100644 index 0000000..939343f --- /dev/null +++ b/public/scripts/tallytome.js @@ -0,0 +1,41 @@ +// HTMX event listener +document.addEventListener("DOMContentLoaded", (event) => { + document.body.addEventListener("htmx:beforeSwap", function (evt) { + if (evt.detail.xhr.status === 422) { + evt.detail.shouldSwap = true; + evt.detail.isError = false; + } + }); + + document.body.addEventListener("HPUpdated", function () { + var input = document.getElementById("damageInput"); + input.value = ""; + input.removeAttribute("aria-invalid"); + + var errorMessage = document.getElementById("damageError"); + if (errorMessage) { + errorMessage.parentNode.removeChild(errorMessage); + } + + var savingthrow = document.getElementById("savingthrow"); + savingthrow.checked = false; + }); + + document.body.addEventListener("ManaUpdated", function () { + var input = document.getElementById("manaInput"); + input.value = ""; + input.removeAttribute("aria-invalid"); + + var errorMessage = document.getElementById("manaError"); + if (errorMessage) { + errorMessage.parentNode.removeChild(errorMessage); + } + }); + + document.body.addEventListener("BaseUpdated", function () { + var errorMessage = document.getElementById("baseError"); + if (errorMessage) { + errorMessage.parentNode.removeChild(errorMessage); + } + }); +}); diff --git a/view/hptracker/tracker.templ b/view/hptracker/tracker.templ index 3479389..2018b1a 100644 --- a/view/hptracker/tracker.templ +++ b/view/hptracker/tracker.templ @@ -4,289 +4,203 @@ import "github.com/itsig0/tallytome/view/layout" import "fmt" type TrackerData struct { - HP string - HPBase string - HPStartPercentage string - HPPercentage string - Mana string - ManaBase string - ManaStartPercentage string - ManaPercentage string - ManaRegen string - Round string + HP string + HPBase string + HPStartPercentage string + HPPercentage string + Mana string + ManaBase string + ManaStartPercentage string + ManaPercentage string + ManaRegen string + Round string } type DamageData struct { - Values string - SavingThrow string - Errors string + Values string + SavingThrow string + Errors string } type ManaData struct { - Values string - Errors string + Values string + Errors string } type BaseData struct { - HP string - Mana string - ManaRegen string - Errors string + HP string + Mana string + ManaRegen string + Errors string } -var dd = DamageData { - Values: "", - SavingThrow: "", - Errors: "", +var dd = DamageData{ + Values: "", + SavingThrow: "", + Errors: "", } -var md = ManaData { - Values: "", - Errors: "", +var md = ManaData{ + Values: "", + Errors: "", } -var bd = BaseData { - HP: "", - Mana: "", - ManaRegen: "", - Errors: "", +var bd = BaseData{ + HP: "", + Mana: "", + ManaRegen: "", + Errors: "", } -templ Show(hx bool, td TrackerData){ - @layout.Base(hx){ -
- -
- @TrackerHeader(td) -
- - // base stats go here - @BaseStats(td, bd) - -
-
-

TP

- @Hp(dd) -
- -
-

Mana

- @Mana(md) -
-
- -
- - } +templ Show(hx bool, td TrackerData) { + @layout.Base(hx) { +
+
+ @TrackerHeader(td) +
+ // base stats go here + @BaseStats(td, bd) +
+
+

TP

+ @Hp(dd) +
+
+

Mana

+ @Mana(md) +
+
+ +
+ } } -templ TrackerHeader(td TrackerData){ -
-

Kampfrunde: {td.Round}

-
- -
- - @TrackerColumn(td) - -
- -
- -
+templ TrackerHeader(td TrackerData) { +
+

Kampfrunde: { td.Round }

+
+
+ @TrackerColumn(td) +
+
+ +
} -templ TrackerColumn(td TrackerData){ - -
- @HPTracker(td) -
- -
- @ManaTracker(td) -
- +templ TrackerColumn(td TrackerData) { +
+ @HPTracker(td) +
+
+ @ManaTracker(td) +
} -templ HPTracker(td TrackerData){ - TP: {td.HP}/{td.HPBase} -
+templ HPTracker(td TrackerData) { + TP: { td.HP }/{ td.HPBase } +
} -templ ManaTracker(td TrackerData){ - Mana: {td.Mana}/{td.ManaBase} -
+templ ManaTracker(td TrackerData) { + Mana: { td.Mana }/{ td.ManaBase } +
} css hpAnimation(from, to string) { - --hp-from-width:{ fmt.Sprintf("%s%%", from) }; - --hp-to-width:{ fmt.Sprintf("%s%%", to) }; + --hp-from-width: { fmt.Sprintf("%s%%", from) }; + --hp-to-width: { fmt.Sprintf("%s%%", to) }; } css manaAnimation(from, to string) { - --mana-from-width:{ fmt.Sprintf("%s%%", from) }; - --mana-to-width:{ fmt.Sprintf("%s%%", to) }; + --mana-from-width: { fmt.Sprintf("%s%%", from) }; + --mana-to-width: { fmt.Sprintf("%s%%", to) }; } -templ BaseStats(td TrackerData, bd BaseData){ -
- Standard Werte -
- - - - - - - -
- -
-
- if bd.Errors != "" { - {bd.Errors} - } -
+templ BaseStats(td TrackerData, bd BaseData) { +
+ Standard Werte +
+ + + +
+ +
+
+ if bd.Errors != "" { + { bd.Errors } + } +
} -templ Hp(dd DamageData){ - -
- -
- - - - - - - - -
- if dd.Errors != "" { - {dd.Errors} - } - - -
- -
-
+templ Hp(dd DamageData) { +
+
+ + + +
+ if dd.Errors != "" { + { dd.Errors } + } +
+ +
+
} -templ Mana(md ManaData){ -
-
- - - - - - - -
- if md.Errors != "" { - {md.Errors} - } - -
- -} \ No newline at end of file +templ Mana(md ManaData) { +
+
+ + + +
+ if md.Errors != "" { + { md.Errors } + } +
+} diff --git a/view/layout/base.templ b/view/layout/base.templ index 9c40126..2bb9390 100644 --- a/view/layout/base.templ +++ b/view/layout/base.templ @@ -1,39 +1,30 @@ package layout -templ Base(hx bool){ - -if hx == false { - - - - - - - - - - // - - Tallytome - - - -
- @header() -
- -
- { children... } -
- - // - - - -}else{ - { children... } +templ Base(hx bool) { + if hx == false { + + + + + + + + + Tallytome + + +
+ @header() +
+
+ { children... } +
+ // + + + } else { + { children... } + } } - -} \ No newline at end of file