edited formating of templates

This commit is contained in:
Patryk Hegenberg 2024-02-15 16:17:58 +01:00
parent ff0f06c0b9
commit 2a47aa90a3
8 changed files with 793 additions and 818 deletions

View file

@ -3,51 +3,51 @@
<html lang="de"> <html lang="de">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Title}}</title> <title>{{.Title}}</title>
<script src="https://unpkg.com/htmx.org@1.9.9" <script src="https://unpkg.com/htmx.org@1.9.9"
integrity="sha384-QFjmbokDn2DjBjq+fM+8LUIVrAgqcNW2s0PjAxHETgRn9l4fvX31ZxDxvwQnyMOX" integrity="sha384-QFjmbokDn2DjBjq+fM+8LUIVrAgqcNW2s0PjAxHETgRn9l4fvX31ZxDxvwQnyMOX"
crossorigin="anonymous"></script> crossorigin="anonymous"></script>
<link id="customStylesheet" rel="stylesheet" href="/static/darkly_bulmawatch.css"> <link id="customStylesheet" rel="stylesheet" href="/static/darkly_bulmawatch.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head> </head>
<body> <body>
<div class="container is-widescreen"> <div class="container is-widescreen">
{{ template "header" . }} {{ template "header" . }}
</div> </div>
<div class="container is-widescreen" id="main-content"> <div class="container is-widescreen" id="main-content">
{{ template "main" . }} {{ template "main" . }}
</div> </div>
<div class="container is-widescreen"> <div class="container is-widescreen">
{{ template "footer" . }} {{ template "footer" . }}
</div> </div>
</body> </body>
<script> <script>
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
// Get all "navbar-burger" elements // Get all "navbar-burger" elements
const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0); const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);
// Add a click event on each of them // Add a click event on each of them
$navbarBurgers.forEach(el => { $navbarBurgers.forEach(el => {
el.addEventListener('click', () => { el.addEventListener('click', () => {
// Get the target from the "data-target" attribute // Get the target from the "data-target" attribute
const target = el.dataset.target; const target = el.dataset.target;
const $target = document.getElementById(target); const $target = document.getElementById(target);
// Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu" // Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu"
el.classList.toggle('is-active'); el.classList.toggle('is-active');
$target.classList.toggle('is-active'); $target.classList.toggle('is-active');
});
});
});
}); });
});
</script> </script>
</html> </html>

View file

@ -1,9 +1,9 @@
{{ define "footer" }} {{ define "footer" }}
<footer class="footer"> <footer class="footer">
<div class="content has-text-centered is-widescreen"> <div class="content has-text-centered is-widescreen">
<p> <p>
&copy; {{.Year}} Dungeons and Dragons Monster Generator. Alle Rechte vorbehalten. &copy; {{.Year}} Dungeons and Dragons Monster Generator. Alle Rechte vorbehalten.
</p> </p>
</div> </div>
</footer> </footer>
{{ end }} {{ end }}

View file

@ -1,82 +1,81 @@
{{ define "header" }} {{ define "header" }}
<header> <header>
<nav class="navbar" role="navigation" aria-label="main navigation"> <nav class="navbar" role="navigation" aria-label="main navigation">
<div class="navbar-brand"> <div class="navbar-brand">
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample">
data-target="navbarBasicExample"> <span aria-hidden="true"></span>
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
<span aria-hidden="true"></span> </a>
</a>
</div>
<div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-start">
<a href="/" class="navbar-item" hx-get="/main" hx-target="#main-content" hx-boost="true">
Dungeons & Dragons
</a>
<a href="/about" class="navbar-item" hx-get="/about" hx-target="#main-content" hx-boost="true">
About
</a>
<a href="/contact" class="navbar-item" hx-get="/contact" hx-target="#main-content" hx-boost="true">
Contact
</a>
</div>
<div class="navbar-end">
<div class="navbar-item">
<button id="switchButton" class="button is-light">
<span id="stylesheetIcon" class="icon">
<i class="fas fa-sun"></i>
</span>
</button>
</div>
</div>
</div>
</nav>
<div class="tile is-ancestor">
<div class="tile is-parent">
<section class="tile is-child hero box is-widescreen">
<div class="hero-body is-flex is-justify-content-center is-align-items-center">
<div class="container has-text-centered">
<div class="hero-background">
<img src="/images/images/banner.jpg" alt="Dungeons-and-Dragons-Banner">
</div>
<div class="hero-content is-overlay">
<p class="title is-size-5-mobile is-size-1-desktop"
style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
Dungeons and Dragons Monster Generator
</p>
</div>
</div>
</div>
</section>
</div>
</div> </div>
<script>
document.addEventListener('DOMContentLoaded', () => {
const switchButton = document.getElementById("switchButton");
const stylesheetIcon = document.getElementById("stylesheetIcon");
if (switchButton) { <div id="navbarBasicExample" class="navbar-menu">
switchButton.addEventListener('click', switchStylesheet); <div class="navbar-start">
} <a href="/" class="navbar-item" hx-get="/main" hx-target="#main-content" hx-boost="true">
Dungeons & Dragons
</a>
function switchStylesheet() { <a href="/about" class="navbar-item" hx-get="/about" hx-target="#main-content" hx-boost="true">
const link = document.getElementById("customStylesheet"); About
</a>
// Ändere das Icon basierend auf dem aktuellen Stylesheet <a href="/contact" class="navbar-item" hx-get="/contact" hx-target="#main-content" hx-boost="true">
if (link.getAttribute("href") === "/static/darkly_bulmawatch.css") { Contact
link.setAttribute("href", "https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css"); </a>
stylesheetIcon.innerHTML = '<i class="fas fa-moon"></i>'; // Zum Mond-Icon wechseln </div>
} else {
link.setAttribute("href", "/static/darkly_bulmawatch.css"); <div class="navbar-end">
stylesheetIcon.innerHTML = '<i class="fas fa-sun"></i>'; // Zum Sonnen-Icon wechseln <div class="navbar-item">
} <button id="switchButton" class="button is-light">
} <span id="stylesheetIcon" class="icon">
}); <i class="fas fa-sun"></i>
</script> </span>
</button>
</div>
</div>
</div>
</nav>
<div class="tile is-ancestor">
<div class="tile is-parent">
<section class="tile is-child hero box is-widescreen">
<div class="hero-body is-flex is-justify-content-center is-align-items-center">
<div class="container has-text-centered">
<div class="hero-background">
<img src="/images/images/banner.jpg" alt="Dungeons-and-Dragons-Banner">
</div>
<div class="hero-content is-overlay">
<p class="title is-size-5-mobile is-size-1-desktop"
style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
Dungeons and Dragons Monster Generator
</p>
</div>
</div>
</div>
</section>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', () => {
const switchButton = document.getElementById("switchButton");
const stylesheetIcon = document.getElementById("stylesheetIcon");
if (switchButton) {
switchButton.addEventListener('click', switchStylesheet);
}
function switchStylesheet() {
const link = document.getElementById("customStylesheet");
// Ändere das Icon basierend auf dem aktuellen Stylesheet
if (link.getAttribute("href") === "/static/darkly_bulmawatch.css") {
link.setAttribute("href", "https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css");
stylesheetIcon.innerHTML = '<i class="fas fa-moon"></i>'; // Zum Mond-Icon wechseln
} else {
link.setAttribute("href", "/static/darkly_bulmawatch.css");
stylesheetIcon.innerHTML = '<i class="fas fa-sun"></i>'; // Zum Sonnen-Icon wechseln
}
}
});
</script>
</header> </header>
{{ end }} {{ end }}

View file

@ -1,131 +1,131 @@
{{ define "main" }} {{ define "main" }}
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child card "> <div class="tile is-child card ">
<div class="card-content"> <div class="card-content">
<div class="media-content"> <div class="media-content">
<p class="title is-4">Monster Form</p> <p class="title is-4">Monster Form</p>
</div>
<div class="content">
<form hx-post="/loadFile" hx-encoding="multipart/form-data"
_='on htmx:xhr:progress(loaded, total) set #progress.value to (loaded/total)*100'>
<div class="file">
<label class="file-label">
<input class="file-input" type="file" name="uploadFile">
<span class="file-cta">
<span class="file-icon">
<i class="fas fa-upload"></i>
</span>
<span class="file-label">
Choose a file…
</span>
</span>
</label>
</div>
<div class="field">
<div class="control">
<button class="button" type="button" hx-post="/loadFile" hx-trigger="click" hx-target="#monster-table"
hx-swap="outerHTML">Press Me</button>
</div> </div>
<div class="content"> </div>
<form hx-post="/loadFile" hx-encoding="multipart/form-data" </form>
_='on htmx:xhr:progress(loaded, total) set #progress.value to (loaded/total)*100'> <form action="/submit" method="post" class="">
<div class="file"> <div class="field">
<label class="file-label"> <td><label for="filename">Filename:</label></td>
<input class="file-input" type="file" name="uploadFile"> <div class="control"><input type="text" name="filename" required placeholder="Dateiname"
<span class="file-cta"> class="input input-bordered w-full max-w-xs">
<span class="file-icon">
<i class="fas fa-upload"></i>
</span>
<span class="file-label">
Choose a file…
</span>
</span>
</label>
</div>
<div class="field">
<div class="control">
<button class="button" type="button" hx-post="/loadFile" hx-trigger="click"
hx-target="#monster-table" hx-swap="outerHTML">Press Me</button>
</div>
</div>
</form>
<form action="/submit" method="post" class="">
<div class="field">
<td><label for="filename">Filename:</label></td>
<div class="control"><input type="text" name="filename" required placeholder="Dateiname"
class="input input-bordered w-full max-w-xs">
</div>
</div>
{{ template "monsterform" . }}
<div class="field">
<div class="control">
<button type="button" hx-post="/addMonster" hx-trigger="click" hx-target="#monster-table"
hx-swap="outerHTML" class="button is-info" hx-boost="true">Add
Monster</button>
</div>
</div>
<input type="hidden" name="filename" value="{{.Filename}}">
<input type="submit" value="Submit" class="button is-primary">
</form>
</div> </div>
</div> </div>
{{ template "monsterform" . }}
<div class="field">
<div class="control">
<button type="button" hx-post="/addMonster" hx-trigger="click" hx-target="#monster-table"
hx-swap="outerHTML" class="button is-info" hx-boost="true">Add
Monster</button>
</div>
</div>
<input type="hidden" name="filename" value="{{.Filename}}">
<input type="submit" value="Submit" class="button is-primary">
</form>
</div>
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child card"> <div class="tile is-child card">
<div class="card-content"> <div class="card-content">
<div class="media-content"> <div class="media-content">
<p class="title is-4 is-centered">Existing Monsters</p> <p class="title is-4 is-centered">Existing Monsters</p>
</div> </div>
<div class="table-container"> <div class="table-container">
<table class="table"> <table class="table">
<colgroup> <colgroup>
<col style="width: 100px;"> <col style="width: 100px;">
<col style="width: 100px;"> <col style="width: 100px;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th>Name</th> <th>Name</th>
<th>Source</th> <th>Source</th>
<th>Size</th> <th>Size</th>
<th>Type</th> <th>Type</th>
<th>Alignment</th> <th>Alignment</th>
<th>AC</th> <th>AC</th>
<th>AC Form</th> <th>AC Form</th>
<th>HP Average</th> <th>HP Average</th>
<th>HP Formula</th> <th>HP Formula</th>
<th>Walk</th> <th>Walk</th>
<th>Swim</th> <th>Swim</th>
<th>Burrow</th> <th>Burrow</th>
<th>Climb</th> <th>Climb</th>
<th>Fly</th> <th>Fly</th>
<th>Str</th> <th>Str</th>
<th>Dex</th> <th>Dex</th>
<th>Con</th> <th>Con</th>
<th>Int</th> <th>Int</th>
<th>Wis</th> <th>Wis</th>
<th>Cha</th> <th>Cha</th>
<th>Save Dex</th> <th>Save Dex</th>
<th>Save Con</th> <th>Save Con</th>
<th>Save Wis</th> <th>Save Wis</th>
<th>Save Str</th> <th>Save Str</th>
<th>Save Int</th> <th>Save Int</th>
<th>Save Cha</th> <th>Save Cha</th>
<th>Perception</th> <th>Perception</th>
<th>Stealth</th> <th>Stealth</th>
<th>Acrobatics</th> <th>Acrobatics</th>
<th>AnimalHandling</th> <th>AnimalHandling</th>
<th>Arcana</th> <th>Arcana</th>
<th>Athletics</th> <th>Athletics</th>
<th>Deception</th> <th>Deception</th>
<th>History</th> <th>History</th>
<th>Insight</th> <th>Insight</th>
<th>Intimidation</th> <th>Intimidation</th>
<th>Investigation</th> <th>Investigation</th>
<th>Medicine</th> <th>Medicine</th>
<th>Nature</th> <th>Nature</th>
<th>Performance</th> <th>Performance</th>
<th>Persuasion</th> <th>Persuasion</th>
<th>SleightOfHand</th> <th>SleightOfHand</th>
<th>Survival</th> <th>Survival</th>
<th>Religion</th> <th>Religion</th>
<th>Damage Resistance</th> <th>Damage Resistance</th>
<th>Damage Immune</th> <th>Damage Immune</th>
<th>Vulnerable</th> <th>Vulnerable</th>
<th>Condition Immune</th> <th>Condition Immune</th>
<th>Senses</th> <th>Senses</th>
<th>Languages</th> <th>Languages</th>
<th>CR</th> <th>CR</th>
<th>Trait Name</th> <th>Trait Name</th>
<th>Trait Entry</th> <th>Trait Entry</th>
<th>Action Name</th> <th>Action Name</th>
<th>Action Entry</th> <th>Action Entry</th>
</tr> </tr>
</thead> </thead>
{{ template "monsterTable" }} {{ template "monsterTable" }}
</table> </table>
</div> </div>
</div>
</div> </div>
</div>
</div> </div>
</div> </div>
{{ end }} {{ end }}

View file

@ -1,59 +1,59 @@
{{ define "monster" }} {{ define "monster" }}
<tr> <tr>
<td>{{.Name}}</td> <td>{{.Name}}</td>
<td>{{.Source}}</td> <td>{{.Source}}</td>
<td>{{range .Size}}{{.}}{{end}}</td> <td>{{range .Size}}{{.}}{{end}}</td>
<td>{{.Type}}</td> <td>{{.Type}}</td>
<td>{{range .Alignment}}{{.}}{{end}}</td> <td>{{range .Alignment}}{{.}}{{end}}</td>
<td>{{range .AC}}{{.AC}}{{end}}</td> <td>{{range .AC}}{{.AC}}{{end}}</td>
<td>{{range .AC}}{{.From}}{{end}}</td> <td>{{range .AC}}{{.From}}{{end}}</td>
<td>{{.HP.Average}}</td> <td>{{.HP.Average}}</td>
<td>{{.HP.Formula}}</td> <td>{{.HP.Formula}}</td>
<td>{{.Speed.Walk}}</td> <td>{{.Speed.Walk}}</td>
<td>{{.Speed.Swim}}</td> <td>{{.Speed.Swim}}</td>
<td>{{.Speed.Burrow}}</td> <td>{{.Speed.Burrow}}</td>
<td>{{.Speed.Climb}}</td> <td>{{.Speed.Climb}}</td>
<td>{{.Speed.Fly}}</td> <td>{{.Speed.Fly}}</td>
<td>{{.Str}}</td> <td>{{.Str}}</td>
<td>{{.Dex}}</td> <td>{{.Dex}}</td>
<td>{{.Con}}</td> <td>{{.Con}}</td>
<td>{{.Int}}</td> <td>{{.Int}}</td>
<td>{{.Wis}}</td> <td>{{.Wis}}</td>
<td>{{.Cha}}</td> <td>{{.Cha}}</td>
<td>{{.Save.Dex}}</td> <td>{{.Save.Dex}}</td>
<td>{{.Save.Con}}</td> <td>{{.Save.Con}}</td>
<td>{{.Save.Wis}}</td> <td>{{.Save.Wis}}</td>
<td>{{.Save.Str}}</td> <td>{{.Save.Str}}</td>
<td>{{.Save.Int}}</td> <td>{{.Save.Int}}</td>
<td>{{.Save.Cha}}</td> <td>{{.Save.Cha}}</td>
<td>{{.Skill.Perception}}</td> <td>{{.Skill.Perception}}</td>
<td>{{.Skill.Stealth}}</td> <td>{{.Skill.Stealth}}</td>
<td>{{.Skill.Acrobatics}}</td> <td>{{.Skill.Acrobatics}}</td>
<td>{{.Skill.AnimalHandling}}</td> <td>{{.Skill.AnimalHandling}}</td>
<td>{{.Skill.Arcana}}</td> <td>{{.Skill.Arcana}}</td>
<td>{{.Skill.Athletics}}</td> <td>{{.Skill.Athletics}}</td>
<td>{{.Skill.Deception}}</td> <td>{{.Skill.Deception}}</td>
<td>{{.Skill.History}}</td> <td>{{.Skill.History}}</td>
<td>{{.Skill.Insight}}</td> <td>{{.Skill.Insight}}</td>
<td>{{.Skill.Intimidation}}</td> <td>{{.Skill.Intimidation}}</td>
<td>{{.Skill.Investigation}}</td> <td>{{.Skill.Investigation}}</td>
<td>{{.Skill.Medicine}}</td> <td>{{.Skill.Medicine}}</td>
<td>{{.Skill.Nature}}</td> <td>{{.Skill.Nature}}</td>
<td>{{.Skill.Performance}}</td> <td>{{.Skill.Performance}}</td>
<td>{{.Skill.Persuasion}}</td> <td>{{.Skill.Persuasion}}</td>
<td>{{.Skill.SleightOfHand}}</td> <td>{{.Skill.SleightOfHand}}</td>
<td>{{.Skill.Survival}}</td> <td>{{.Skill.Survival}}</td>
<td>{{.Skill.Religion}}</td> <td>{{.Skill.Religion}}</td>
<td>{{range .Resist}}{{.}}{{end}}</td> <td>{{range .Resist}}{{.}}{{end}}</td>
<td>{{range .Immune}}{{.}}{{end}}</td> <td>{{range .Immune}}{{.}}{{end}}</td>
<td>{{range .Vulnerable}}{{.}}{{end}}</td> <td>{{range .Vulnerable}}{{.}}{{end}}</td>
<td>{{range .ConditionImmune}}{{.}}{{end}}</td> <td>{{range .ConditionImmune}}{{.}}{{end}}</td>
<td>{{range .Senses}}{{.}}{{end}}</td> <td>{{range .Senses}}{{.}}{{end}}</td>
<td>{{range .Languages}}{{.}}{{end}}</td> <td>{{range .Languages}}{{.}}{{end}}</td>
<td>{{.CR}}</td> <td>{{.CR}}</td>
<td>{{range .Traits}}{{.Name}}{{end}}</td> <td>{{range .Traits}}{{.Name}}{{end}}</td>
<td>{{range .Traits}}{{range .Entries}}{{.}}{{end}}{{end}}</td> <td>{{range .Traits}}{{range .Entries}}{{.}}{{end}}{{end}}</td>
<td>{{range .Actions}}{{.Name}}{{end}}</td> <td>{{range .Actions}}{{.Name}}{{end}}</td>
<td>{{range .Actions}}{{range .Entries}}{{.}}{{end}}{{end}}</td> <td>{{range .Actions}}{{range .Entries}}{{.}}{{end}}{{end}}</td>
</tr> </tr>
{{ end }} {{ end }}

View file

@ -1,313 +1,306 @@
{{ define "monsterform" }} {{ define "monsterform" }}
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="name">Monster Name:</label> <label for="name">Monster Name:</label>
<div class="control"> <div class="control">
<input type="text" name="name" required placeholder="Type here" <input type="text" name="name" required placeholder="Type here" class="input input-bordered w-full max-w-xs">
class="input input-bordered w-full max-w-xs"> </div>
</div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="source">Monster Source:</label> <div class="tile is-child field">
<div class="control"> <label for="source">Monster Source:</label>
<input type="text" name="source" required class="input input-bordered w-full max-w-xs"> <div class="control">
</div> <input type="text" name="source" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="size">Size:</label> <div class="tile is-child field">
<div class="control"> <label for="size">Size:</label>
<div class="select"> <div class="control">
<select name="size"> <div class="select">
<option>H</option> <select name="size">
<option>T</option> <option>H</option>
<option>S</option> <option>T</option>
<option>L</option> <option>S</option>
<option>G</option> <option>L</option>
</select> <option>G</option>
</div> </select>
</div>
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="type">Type:</label> <div class="tile is-child field">
<div class="control"> <label for="type">Type:</label>
<input type="text" name="type" required class="input input-bordered w-full max-w-xs"> <div class="control">
</div> <input type="text" name="type" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div> </div>
</div>
</div> </div>
<div class="tile is-vertical is-ancestor"> <div class="tile is-vertical is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="alignment">Alignment:</label> <label for="alignment">Alignment:</label>
<div class="control"> <div class="control">
<input type="text" name="alignment" required class="input input-bordered w-full max-w-xs"> <input type="text" name="alignment" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div>
</div> </div>
</div>
</div> </div>
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="ac">AC:</label> <label for="ac">AC:</label>
<div class="control"> <div class="control">
<input type="number" name="ac" required class="input input-bordered w-full max-w-xs"> <input type="number" name="ac" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="acFrom">AC From:</label> <div class="tile is-child field">
<div class="control"> <label for="acFrom">AC From:</label>
<input type="text" name="acFrom" required class="input input-bordered w-full max-w-xs"> <div class="control">
</div> <input type="text" name="acFrom" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div> </div>
</div>
</div> </div>
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="hpAverage">HP Average:</label> <label for="hpAverage">HP Average:</label>
<div class="control"> <div class="control">
<input type="number" name="hpAverage" required class="input input-bordered w-full max-w-xs"> <input type="number" name="hpAverage" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="hpFormula">HP Formula:</label> <div class="tile is-child field">
<div class="control"> <label for="hpFormula">HP Formula:</label>
<input type="text" name="hpFormula" required class="input input-bordered w-full max-w-xs"> <div class="control">
</div> <input type="text" name="hpFormula" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div> </div>
</div>
</div> </div>
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="str">Str:</label> <label for="str">Str:</label>
<div class="control"> <div class="control">
<input type="number" name="str" required class="input input-bordered w-full max-w-xs" <input type="number" name="str" required class="input input-bordered w-full max-w-xs"
hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" hx-swap="innerHTML">
hx-swap="innerHTML"> </div>
</div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="dex">Dex:</label> <div class="tile is-child field">
<div class="control"> <label for="dex">Dex:</label>
<input type="number" name="dex" required class="input input-bordered w-full max-w-xs" <div class="control">
hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" <input type="number" name="dex" required class="input input-bordered w-full max-w-xs"
hx-swap="innerHTML"> hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" hx-swap="innerHTML">
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="con">Con:</label> <div class="tile is-child field">
<div class="control"> <label for="con">Con:</label>
<input type="number" name="con" required class="input input-bordered w-full max-w-xs" <div class="control">
hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" <input type="number" name="con" required class="input input-bordered w-full max-w-xs"
hx-swap="innerHTML"> hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" hx-swap="innerHTML">
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="cr">CR:</label> <div class="tile is-child field">
<div class="control"> <label for="cr">CR:</label>
<input type="text" name="cr" required class="input input-bordered w-full max-w-xs" <div class="control">
hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" <input type="text" name="cr" required class="input input-bordered w-full max-w-xs" hx-post="/calculate-skills"
hx-swap="innerHTML" hx-target="#skills" hx-swap="outerHTML"> hx-trigger="keyup changed delay:100ms" hx-target="#skills" hx-swap="innerHTML" hx-target="#skills"
</div> hx-swap="outerHTML">
</div> </div>
</div> </div>
</div>
</div> </div>
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="int">Int:</label> <label for="int">Int:</label>
<div class="control"> <div class="control">
<input type="number" name="int" required class="input input-bordered w-full max-w-xs" <input type="number" name="int" required class="input input-bordered w-full max-w-xs"
hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" hx-swap="innerHTML">
hx-swap="innerHTML"> </div>
</div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="wis">Wis:</label> <div class="tile is-child field">
<div class="control"> <label for="wis">Wis:</label>
<input type="number" name="wis" required class="input input-bordered w-full max-w-xs" <div class="control">
hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" <input type="number" name="wis" required class="input input-bordered w-full max-w-xs"
hx-swap="innerHTML"> hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" hx-swap="innerHTML">
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="cha">Cha:</label> <div class="tile is-child field">
<div class="control"> <label for="cha">Cha:</label>
<input type="number" name="cha" required class="input input-bordered w-full max-w-xs" <div class="control">
hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" <input type="number" name="cha" required class="input input-bordered w-full max-w-xs"
hx-swap="innerHTML"> hx-post="/calculate-skills" hx-trigger="keyup changed delay:100ms" hx-target="#skills" hx-swap="innerHTML">
</div> </div>
</div>
</div> </div>
</div>
</div> </div>
<div id="skills" class="tile is-ancestor is-vertical"> <div id="skills" class="tile is-ancestor is-vertical">
{{ template "skills" }} {{ template "skills" }}
</div> </div>
<div class="card tile is-ancestor is-vertical"> <div class="card tile is-ancestor is-vertical">
<header class="card-header"> <header class="card-header">
<p class="card-header-title"> <p class="card-header-title">
Speed Speed
</p> </p>
</header> </header>
<div class="card-content"> <div class="card-content">
<div class="content"> <div class="content">
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent gap"> <div class="tile is-parent gap">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="walk">Walk:</label> <label for="walk">Walk:</label>
<div class="control"> <div class="control">
<input type="number" name="walk" required class="input input-bordered w-full max-w-xs"> <input type="number" name="walk" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="burrow">Burrow:</label>
<div class="control">
<input type="number" name="burrow" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="climb">Climb:</label>
<div class="control">
<input type="number" name="climb" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="fly">Fly:</label>
<div class="control">
<input type="number" name="fly" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="swim">Swim:</label>
<div class="control">
<input type="number" name="swim" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
</div> </div>
</div>
</div> </div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="burrow">Burrow:</label>
<div class="control">
<input type="number" name="burrow" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="climb">Climb:</label>
<div class="control">
<input type="number" name="climb" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="fly">Fly:</label>
<div class="control">
<input type="number" name="fly" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label for="swim">Swim:</label>
<div class="control">
<input type="number" name="swim" required class="input input-bordered w-full max-w-xs">
</div>
</div>
</div>
</div>
</div> </div>
</div>
</div> </div>
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="resist">Damage Resistances:</label> <label for="resist">Damage Resistances:</label>
<div class="control"> <div class="control">
<input type="text" name="resist" required class="input input-bordered w-full max-w-xs"> <input type="text" name="resist" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="immune">Damage Immunity:</label> <div class="tile is-child field">
<div class="control"> <label for="immune">Damage Immunity:</label>
<input type="text" name="immune" required class="input input-bordered w-full max-w-xs"> <div class="control">
</div> <input type="text" name="immune" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="vulnerable">Vulnerability:</label> <div class="tile is-child field">
<div class="control"> <label for="vulnerable">Vulnerability:</label>
<input type="text" name="vulnerable" required class="input input-bordered w-full max-w-xs"> <div class="control">
</div> <input type="text" name="vulnerable" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="conditionImmune">Condition Immunity:</label> <div class="tile is-child field">
<div class="control"> <label for="conditionImmune">Condition Immunity:</label>
<input type="text" name="conditionImmune" required class="input input-bordered w-full max-w-xs"> <div class="control">
</div> <input type="text" name="conditionImmune" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div> </div>
</div>
</div> </div>
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="senses">Senses:</label> <label for="senses">Senses:</label>
<div class="control"> <div class="control">
<input type="text" name="senses" required class="input input-bordered w-full max-w-xs"> <input type="text" name="senses" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div>
</div> </div>
</div>
</div> </div>
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="languages">Languages:</label> <label for="languages">Languages:</label>
<div class="control"> <div class="control">
<input type="text" name="languages" required class="input input-bordered w-full max-w-xs"> <input type="text" name="languages" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div>
</div> </div>
</div>
</div> </div>
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="traitName">Trait Name:</label> <label for="traitName">Trait Name:</label>
<div class="control"> <div class="control">
<input type="text" name="traitName" required class="input input-bordered w-full max-w-xs"> <input type="text" name="traitName" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="traitEntry">Trait Entry:</label> <div class="tile is-child field">
<div class="control"> <label for="traitEntry">Trait Entry:</label>
<input type="text" name="traitEntry" required class="input input-bordered w-full max-w-xs"> <div class="control">
</div> <input type="text" name="traitEntry" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div> </div>
</div>
</div> </div>
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label for="actionName">Action Name:</label> <label for="actionName">Action Name:</label>
<div class="control"> <div class="control">
<input type="text" name="actionName" required class="input input-bordered w-full max-w-xs"> <input type="text" name="actionName" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> </div>
<div class="tile is-child field"> <div class="tile is-parent">
<label for="actionEntry">Action Entry:</label> <div class="tile is-child field">
<div class="control"> <label for="actionEntry">Action Entry:</label>
<input type="text" name="actionEntry" required class="input input-bordered w-full max-w-xs"> <div class="control">
</div> <input type="text" name="actionEntry" required class="input input-bordered w-full max-w-xs">
</div> </div>
</div> </div>
</div>
</div> </div>
{{end}} {{end}}

View file

@ -1,7 +1,7 @@
{{ define "monsterTable" }} {{ define "monsterTable" }}
<tbody id="monster-table"> <tbody id="monster-table">
{{ range .Monsters }} {{ range .Monsters }}
{{ template "monster" . }} {{ template "monster" . }}
</tbody> </tbody>
{{ end }} {{ end }}
{{ end }} {{ end }}

View file

@ -1,282 +1,265 @@
{{ define "skills" }} {{ define "skills" }}
<div class="tile is-parent"> <div class="tile is-parent">
<div class="card tile is-child is-ancestor is-vertical"> <div class="card tile is-child is-ancestor is-vertical">
<header class="card-header"> <header class="card-header">
<p class="card-header-title"> <p class="card-header-title">
Save Save
</p> </p>
</header> </header>
<div class="card-content"> <div class="card-content">
<div class="content"> <div class="content">
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent gap"> <div class="tile is-parent gap">
<div class="tile is-child field"> <div class="tile is-child field">
<label class="checkbox" for="savedex"><input type="checkbox" <label class="checkbox" for="savedex"><input type="checkbox" name="checkSavedex">Dex:</label>
name="checkSavedex">Dex:</label> <div class="control">
<div class="control"> <input type="text" name="savedex" required class="input input-bordered w-full max-w-xs"
<input type="text" name="savedex" required class="input input-bordered w-full max-w-xs" value="{{.saveDex}}" readonly>
value="{{.saveDex}}" readonly> </div>
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label class="checkbox" for="savecon"><input type="checkbox"
name="checkSavecon">Con:</label>
<div class="control">
<input type="text" name="savecon" required class="input input-bordered w-full max-w-xs"
value="{{.saveCon}}" readonly>
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label class="checkbox" for="savewis"><input type="checkbox"
name="checkSavewis">Wis:</label>
<div class="control">
<input type="text" name="savewis" required class="input input-bordered w-full max-w-xs"
value="{{.saveWis}}" readonly>
</div>
</div>
</div>
</div>
</div> </div>
<div class="tile is-ancestor"> </div>
<div class="tile is-parent gap"> <div class="tile is-parent gap">
<div class="tile is-child field"> <div class="tile is-child field">
<label class="checkbox" for="savecha"><input type="checkbox" name="checkSavecha">Cha:</label> <label class="checkbox" for="savecon"><input type="checkbox" name="checkSavecon">Con:</label>
<div class="control"> <div class="control">
<input type="text" name="savecha" required class="input input-bordered w-full max-w-xs" <input type="text" name="savecon" required class="input input-bordered w-full max-w-xs"
value="{{.saveCha}}" readonly> value="{{.saveCon}}" readonly>
</div> </div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label class="checkbox" for="saveint"><input type="checkbox" name="checkSaveint">Int:</label>
<div class="control">
<input type="text" name="saveint" required class="input input-bordered w-full max-w-xs"
value="{{.saveInt}}" readonly>
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label class="checkbox" for="savestr"><input type="checkbox" name="checkSavestr">Str:</label>
<div class="control">
<input type="text" name="savestr" required class="input input-bordered w-full max-w-xs"
value="{{.saveStr}}" readonly>
</div>
</div>
</div>
</div> </div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label class="checkbox" for="savewis"><input type="checkbox" name="checkSavewis">Wis:</label>
<div class="control">
<input type="text" name="savewis" required class="input input-bordered w-full max-w-xs"
value="{{.saveWis}}" readonly>
</div>
</div>
</div>
</div> </div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent gap">
<div class="tile is-child field">
<label class="checkbox" for="savecha"><input type="checkbox" name="checkSavecha">Cha:</label>
<div class="control">
<input type="text" name="savecha" required class="input input-bordered w-full max-w-xs"
value="{{.saveCha}}" readonly>
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label class="checkbox" for="saveint"><input type="checkbox" name="checkSaveint">Int:</label>
<div class="control">
<input type="text" name="saveint" required class="input input-bordered w-full max-w-xs"
value="{{.saveInt}}" readonly>
</div>
</div>
</div>
<div class="tile is-parent gap">
<div class="tile is-child field">
<label class="checkbox" for="savestr"><input type="checkbox" name="checkSavestr">Str:</label>
<div class="control">
<input type="text" name="savestr" required class="input input-bordered w-full max-w-xs"
value="{{.saveStr}}" readonly>
</div>
</div>
</div>
</div>
</div> </div>
</div>
</div> </div>
<div class="tile is-parent"> <div class="tile is-parent">
<div class="card tile is-child is-ancestor is-vertical"> <div class="card tile is-child is-ancestor is-vertical">
<header class="card-header"> <header class="card-header">
<p class="card-header-title"> <p class="card-header-title">
Skill Skill
</p> </p>
</header> </header>
<div class="card-content"> <div class="card-content">
<div class="content"> <div class="content">
<div class="tile is-ancestor"> <div class="tile is-ancestor">
<div class="tile is-parent"> <div class="tile is-parent">
<div class="tile is-child field"> <div class="tile is-child field">
<label class="checkbox" for="acrobatics"><input type="checkbox" <label class="checkbox" for="acrobatics"><input type="checkbox" name="checkAcrobatics">Acrobatics:</label>
name="checkAcrobatics">Acrobatics:</label> <div class="control">
<div class="control"> <input type="text" name="acrobatics" required class="input input-bordered w-full max-w-xs" value="{{
<input type="text" name="acrobatics" required
class="input input-bordered w-full max-w-xs" value="{{
.acrobatics }}" readonly> .acrobatics }}" readonly>
</div> </div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="animalhandling" class="checkbox"><input type="checkbox"
name="checkAnimalhandling">Animal Handling:</label>
<div class="control">
<input type="text" name="animalhandling" required
class="input input-bordered w-full max-w-xs" value="{{ .animalHandling }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="arcana" class="ceckbox"><input type="checkbox"
name="checkArcana">Arcana:</label>
<div class="control">
<input type="text" name="arcana" required class="input input-bordered w-full max-w-xs"
value="{{ .arcana }}" readonly>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="athletics" class="checkbox"><input type="checkbox"
name="checkAthletics">Athletics:</label>
<div class="control">
<input type="text" name="athletics" required
class="input input-bordered w-full max-w-xs" value="{{ .athletics }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="deception" class="checkbox"><input type="checkbox"
name="checkDeception">Deception:</label>
<div class="control">
<input type="text" name="deception" required
class="input input-bordered w-full max-w-xs" value="{{ .deception }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="history" class="checkbox"><input type="checkbox"
name="checkHistory">History:</label>
<div class="control">
<input type="text" name="history" required class="input input-bordered w-full max-w-xs"
value="{{ .history }}" readonly>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="insight" class="checkbox"><input type="checkbox"
name="checkInsight">Insight:</label>
<div class="control">
<input type="text" name="insight" required class="input input-bordered w-full max-w-xs"
value="{{ .insight }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="intimidation" class="checkbox"><input type="checkbox"
name="checkIntimidation">Intimidation:</label>
<div class="control">
<input type="text" name="intimidation" required
class="input input-bordered w-full max-w-xs" value="{{ .intimidation }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="investigation" class="checkbox"><input type="checkbox"
name="checkInvestigation">Investigation:</label>
<div class="control">
<input type="text" name="investigation" required
class="input input-bordered w-full max-w-xs" value="{{ .investigation }}" readonly>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="medicine" class="checkbox"><input type="checkbox"
name="checkMedicine">Medicine:</label>
<div class="control">
<input type="text" name="medicine" required class="input input-bordered w-full max-w-xs"
value="{{ .medicine }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="nature" class="checkbox"><input type="checkbox"
name="checkNature">Nature:</label>
<div class="control">
<input type="text" name="nature" required class="input input-bordered w-full max-w-xs"
value="{{ .nature }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="performance" class="checkbox"><input type="checkbox"
name="checkPerformance">Performance:</label>
<div class="control">
<input type="text" name="performance" required
class="input input-bordered w-full max-w-xs" value="{{ .performance }}" readonly>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="perception" class="checkbox"><input type="checkbox"
name="checkPerception">Perception:</label>
<div class="control">
<input type="text" name="perception" required
class="input input-bordered w-full max-w-xs" value="{{ .perception }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="stealth" class="checkbox"><input type="checkbox"
name="checkStealth">Stealth:</label>
<div class="control">
<input type="text" name="stealth" required class="input input-bordered w-full max-w-xs"
value="{{ .stealth }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="persuasion" class="checkbox"><input type="checkbox"
name="checkPersuasion">Persuasion:</label>
<div class="control">
<input type="text" name="persuasion" required
class="input input-bordered w-full max-w-xs" value="{{ .persuasion }}" readonly>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="sleightofhand" class="checkbox"><input type="checkbox"
name="checkSleightofhand">Sleight of Hand:</label>
<div class="control">
<input type="text" name="sleightofhand" required
class="input input-bordered w-full max-w-xs" value="{{.sleightOfHand }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="religion" class="checkbox"><input type="checkbox"
name="checkReligion">Religion:</label>
<div class="control">
<input type="text" name="religion" required class="input input-bordered w-full max-w-xs"
value="{{ .religion }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="survival" class="checkbox"><input type="checkbox"
name="checkSurvival">Survival:</label>
<div class="control">
<input type="text" name="survival" required class="input input-bordered w-full max-w-xs"
value="{{ .survival }}" readonly>
</div>
</div>
</div>
</div>
</div> </div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="animalhandling" class="checkbox"><input type="checkbox" name="checkAnimalhandling">Animal
Handling:</label>
<div class="control">
<input type="text" name="animalhandling" required class="input input-bordered w-full max-w-xs"
value="{{ .animalHandling }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="arcana" class="ceckbox"><input type="checkbox" name="checkArcana">Arcana:</label>
<div class="control">
<input type="text" name="arcana" required class="input input-bordered w-full max-w-xs"
value="{{ .arcana }}" readonly>
</div>
</div>
</div>
</div> </div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="athletics" class="checkbox"><input type="checkbox" name="checkAthletics">Athletics:</label>
<div class="control">
<input type="text" name="athletics" required class="input input-bordered w-full max-w-xs"
value="{{ .athletics }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="deception" class="checkbox"><input type="checkbox" name="checkDeception">Deception:</label>
<div class="control">
<input type="text" name="deception" required class="input input-bordered w-full max-w-xs"
value="{{ .deception }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="history" class="checkbox"><input type="checkbox" name="checkHistory">History:</label>
<div class="control">
<input type="text" name="history" required class="input input-bordered w-full max-w-xs"
value="{{ .history }}" readonly>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="insight" class="checkbox"><input type="checkbox" name="checkInsight">Insight:</label>
<div class="control">
<input type="text" name="insight" required class="input input-bordered w-full max-w-xs"
value="{{ .insight }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="intimidation" class="checkbox"><input type="checkbox"
name="checkIntimidation">Intimidation:</label>
<div class="control">
<input type="text" name="intimidation" required class="input input-bordered w-full max-w-xs"
value="{{ .intimidation }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="investigation" class="checkbox"><input type="checkbox"
name="checkInvestigation">Investigation:</label>
<div class="control">
<input type="text" name="investigation" required class="input input-bordered w-full max-w-xs"
value="{{ .investigation }}" readonly>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="medicine" class="checkbox"><input type="checkbox" name="checkMedicine">Medicine:</label>
<div class="control">
<input type="text" name="medicine" required class="input input-bordered w-full max-w-xs"
value="{{ .medicine }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="nature" class="checkbox"><input type="checkbox" name="checkNature">Nature:</label>
<div class="control">
<input type="text" name="nature" required class="input input-bordered w-full max-w-xs"
value="{{ .nature }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="performance" class="checkbox"><input type="checkbox"
name="checkPerformance">Performance:</label>
<div class="control">
<input type="text" name="performance" required class="input input-bordered w-full max-w-xs"
value="{{ .performance }}" readonly>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="perception" class="checkbox"><input type="checkbox" name="checkPerception">Perception:</label>
<div class="control">
<input type="text" name="perception" required class="input input-bordered w-full max-w-xs"
value="{{ .perception }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="stealth" class="checkbox"><input type="checkbox" name="checkStealth">Stealth:</label>
<div class="control">
<input type="text" name="stealth" required class="input input-bordered w-full max-w-xs"
value="{{ .stealth }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="persuasion" class="checkbox"><input type="checkbox" name="checkPersuasion">Persuasion:</label>
<div class="control">
<input type="text" name="persuasion" required class="input input-bordered w-full max-w-xs"
value="{{ .persuasion }}" readonly>
</div>
</div>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<div class="tile is-child field">
<label for="sleightofhand" class="checkbox"><input type="checkbox" name="checkSleightofhand">Sleight of
Hand:</label>
<div class="control">
<input type="text" name="sleightofhand" required class="input input-bordered w-full max-w-xs"
value="{{.sleightOfHand }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="religion" class="checkbox"><input type="checkbox" name="checkReligion">Religion:</label>
<div class="control">
<input type="text" name="religion" required class="input input-bordered w-full max-w-xs"
value="{{ .religion }}" readonly>
</div>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child field">
<label for="survival" class="checkbox"><input type="checkbox" name="checkSurvival">Survival:</label>
<div class="control">
<input type="text" name="survival" required class="input input-bordered w-full max-w-xs"
value="{{ .survival }}" readonly>
</div>
</div>
</div>
</div>
</div>
</div> </div>
</div>
</div> </div>
{{ end }} {{ end }}