Skip to content

Commit

Permalink
Add tooltips on homepage
Browse files Browse the repository at this point in the history
  • Loading branch information
vojta001 committed Sep 23, 2021
1 parent 46ccc87 commit 08c6afe
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 1 deletion.
41 changes: 40 additions & 1 deletion ui/html/home.page.tmpl.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,18 @@ <h1>Připojit se ke hře</h1>
<input type="submit" value="Připojit do hry">
</form>
{{- end }}
<button class="help" aria-label="Zobrazit nápovědu"></button>
<div class="message">
<p>
Takto se připojíte k již založené (i probíhající) hře.
</p>
<p>
<strong>Kód hry</strong> získáte od jejího organizátora (vidíte-li na sdílený monitor, je napsán v závorkách za názvem kvízu).
</p>
<p>
<strong>Jméno hráče</strong> se zobrazuje ostatním hráčům při hře i následně na výsledkovce. Doporučuje se volit jej s ohledem na dobré mravy a případné nároky na svou anonymitu, ochranu osobních údajů apod.
</p>
</div>
</section>
<section>
<h1>Zorganizovat novou hru</h1>
Expand All @@ -49,6 +61,18 @@ <h1>Zorganizovat novou hru</h1>
<input type="submit" value="Začit hrát">
</form>
{{- end }}
<button class="help" aria-label="Zobrazit nápovědu"></button>
<div class="message">
<p>
Takto se stanete organizátorem hry. Sami nemůžete odpovídat, ale získáte kód pro připojení ostatních hráčů.
</p>
<p>
<strong>Kód kvízu</strong> získáte od jeho autora, který jej získal při vytvoření.
</p>
<p>
<strong>Jméno organizátora</strong> se zobrazuje ostatním hráčům při hře. Doporučuje se volit jej s ohledem na případné nároky na svou anonymitu, ochranu osobních údajů apod.
</p>
</div>
</section>
<section>
{{- with .Form.NewGame }}
Expand All @@ -59,13 +83,28 @@ <h1>Zorganizovat novou hru</h1>
{{- end }}
<h1>Vytvořit nový kvíz</h1>
<p><a href="/template" download>Šablona nového kvízu</a>.</p>
<p><a href="/help">Nápověda</a></p>
<p><a href="/help">Popis formátu</a></p>
<form id="new" enctype="multipart/form-data" method="post" action="/game">
<label>Jméno kvízu: <input type="text" name="name" placeholder="Jméno kvízu" required value="{{ .Title }}"></label>
<label>Jméno autora: <input type="text" name="author" placeholder="Jméno" required value="{{ .Name }}"></label>
<label>Kvíz: <input type="file" name="game" accept="text/csv" required></label>
<input type="submit" value="Vytvořit">
</form>
{{- end }}
<button class="help" aria-label="Zobrazit nápovědu"></button>
<div class="message">
<p>
Takto vytvoříte nový kvíz (sadu otázek a odpovědí), který následně můžete použít při zakládání hry.
</p>
<p>
<strong>Jméno kvízu</strong> se zobrazí organizátorům i hráčům při hře.
</p>
<p>
<strong>Jméno autora</strong> je doplňkový údaj na podrobnostech kvízu; při následné hře vidět není. Přesto se doporučuje volit jej s ohledem na případné nároky na svou anonymitu, ochranu osobních údajů apod.
</p>
<p>
<strong>Kvíz</strong> je CSV soubor formátu popsaného na samostatné stránce. Nejpohodlnější je vyjít z dodané šablony.
</p>
</div>
</section>
{{ end -}}
38 changes: 38 additions & 0 deletions ui/static/home.css
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ section {
border: 2px solid black;
margin: 2rem;
padding: 1rem;
position: relative;
}

#join, #play, #new {
Expand All @@ -21,3 +22,40 @@ section {
color: red;
font-weight: bold;
}

.help::after {
content: "?";
font-weight: bold;
line-height: 1.5rem;
}

.help {
border: 2px solid;
border-radius: 50%;
display: flex;
justify-content: center;
width: 1.5rem;
height: 1.5rem;
position: absolute;
right: 0;
top: 0;
padding: 0;
background: none;
cursor: pointer;
}

.message {
position: absolute;
right: 1.5rem;
top: 0;
display: none;
z-index: 1;
}

.message.show {
display: block;
background-color: white;
border: 2px dotted black;
width: 50vw;
max-width: 20rem;
}
13 changes: 13 additions & 0 deletions ui/static/home.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,17 @@ document.addEventListener("DOMContentLoaded", () => {
const code = joinForm.querySelector("input[name=\"code\"]").value;
joinForm.action = "/play/" + encodeURIComponent(code);
});
document.body.addEventListener("click", () => {
for (const help of document.querySelectorAll(".message.show")) {
help.classList.remove("show");
}
});
const helps = document.getElementsByClassName("help");
for (const help of helps) {
help.addEventListener("click", (e) => {
e.stopPropagation();
console.log(e.target);
e.target.parentElement.querySelector(".message").classList.toggle("show");
})
}
});

0 comments on commit 08c6afe

Please sign in to comment.