Big refactor
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
{{template "base" .}}
|
||||
|
||||
{{define "title"}}Appunti • PHC{{end}}
|
||||
|
||||
{{define "body"}}
|
||||
<section>
|
||||
<h1>
|
||||
<i class="fas fa-book"></i>
|
||||
Raccolta degli Appunti
|
||||
</h1>
|
||||
<p>
|
||||
Questa è la raccolta degli appunti presenti su Poisson. Cerca il titolo della dispensa, il nome e cognome o l'username dell'autore oppure scrivi il nome del corso rispetto a cui filtrare. Altrimenti in cima compariranno gli appunti più "gettonati".
|
||||
</p>
|
||||
<p>
|
||||
Puoi aggiungere le tue dispense dalla <a href="/appunti/condivisi">pagina personale di condivisione</a>.
|
||||
</p>
|
||||
<div class="search">
|
||||
<div class="compound">
|
||||
<input type="text" id="search-field" placeholder="Prova con "Geometria 1" o "Mezzedimi"..." autocomplete="off" {{ if .Query }}value="{{ .Query }}"{{ end }}>
|
||||
<button class="icon">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="appunti-list">
|
||||
<code>TODO: Lista work in progress</code>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// Aggiorna automaticamente la barra dell'URL con la query corrente
|
||||
document.querySelector('#search-field').addEventListener('input', function() {
|
||||
const q = this.value.trim();
|
||||
history.replaceState({}, 'Appunti',
|
||||
q.length === 0 ? '/appunti' : '/appunti?q=' + encodeURIComponent(q)
|
||||
);
|
||||
});
|
||||
</script>
|
||||
</section>
|
||||
<script>
|
||||
|
||||
</script>
|
||||
|
||||
{{end}}
|
||||
@@ -0,0 +1,78 @@
|
||||
{{define "base"}}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ template "title" . }}</title>
|
||||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css"
|
||||
integrity="sha384-AfEj0r4/OFrOo5t7NnNe46zW/tFgW6x/bCJG8FqQCEo3+Aro6EYUG4+cU+KJWu/X" crossorigin="anonymous">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.js"
|
||||
integrity="sha384-g7c+Jr9ZivxKLnZTDUhnkOnsh30B4H0rpLUpJ4jAIKs4fnJI+sEnkvrMWph2EDg4"
|
||||
crossorigin="anonymous"></script>
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/auto-render.min.js"
|
||||
integrity="sha384-mll67QQFJfxn0IYznZYonOWZ644AWYC+Pt2cHqMaRhXVrursRwvLnLaebdGIlYNa"
|
||||
crossorigin="anonymous"></script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
renderMathInElement(document.body, {
|
||||
delimiters: [
|
||||
{ left: "$", right: "$", display: false },
|
||||
{ left: "$$", right: "$$", display: true },
|
||||
{ left: "\\(", right: "\\)", display: false },
|
||||
{ left: "\\[", right: "\\]", display: true }
|
||||
]
|
||||
});
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const $toggle = document.querySelector('#toggle-dark-mode');
|
||||
const $toggleIcon = document.querySelector('#toggle-dark-mode i');
|
||||
|
||||
// Loads prefered dark from from localStorage or defaults to media query.
|
||||
let prefersDarkMode = localStorage.getItem('theme') !== undefined ? localStorage.getItem('theme') === 'dark' : window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
|
||||
function storePrefersDarkMode(mode) {
|
||||
prefersDarkMode = mode;
|
||||
localStorage.setItem('theme', mode ? 'dark' : 'light');
|
||||
}
|
||||
|
||||
function displayToggle() {
|
||||
document.body.classList.toggle('dark-mode', prefersDarkMode);
|
||||
$toggleIcon.classList.toggle('fa-moon', prefersDarkMode);
|
||||
$toggleIcon.classList.toggle('fa-sun', !prefersDarkMode);
|
||||
}
|
||||
|
||||
$toggle.addEventListener('click', () => {
|
||||
storePrefersDarkMode(!prefersDarkMode);
|
||||
displayToggle();
|
||||
});
|
||||
|
||||
displayToggle();
|
||||
});
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" href="/public/style.css">
|
||||
<link rel="stylesheet" href="/public/theme-dark.css">
|
||||
</head>
|
||||
|
||||
<body {{ if .Page.Name }}class="page-{{ .Page.Name }}"{{ end }}>
|
||||
{{ template "navbar" . }}
|
||||
|
||||
<div class="main">
|
||||
{{ template "body" . }}
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<div class="footer-item">
|
||||
<a href="mailto:{{ .Config.Email }}">{{ .Config.Email }}</a>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
{{end}}
|
||||
@@ -0,0 +1,107 @@
|
||||
{{template "base" .}}
|
||||
|
||||
{{define "title"}}Home • PHC{{end}}
|
||||
|
||||
{{define "body"}}
|
||||
<canvas id="circuit-pattern"></canvas>
|
||||
|
||||
<!-- Non avevo molta fantasia per il nome di questa classe -->
|
||||
<section class="super">
|
||||
<div class="block image">
|
||||
<img src="/public/images/logo-circuit-board.svg" alt="phc-logo">
|
||||
</div>
|
||||
<div class="block text">
|
||||
<h1>
|
||||
Cos'è il PHC?
|
||||
</h1>
|
||||
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum vel maiores dolorum dicta, repellat nulla repellendus amet fuga voluptas molestiae, magni</p>
|
||||
<p>Voluptatibus sequi praesentium similique, quos ex illo autem quidem!</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Notizie Importanti</h2>
|
||||
<div class="card-list">
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="/news/notizia-super-wow-1">News 1</a>
|
||||
</div>
|
||||
<div class="date">yyyy-mm-dd</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
much doge, ipsum dolor sit amet consectetur adipisicing elit. Quis nemo aperiam, voluptas quam alias esse sed natus tempore suscipit fugiat sit delectus exercitationem numquam ipsum assumenda recusandae consequatur...
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="/news/notizia-super-wow-2">News 2</a>
|
||||
</div>
|
||||
<div class="date">yyyy-mm-dd</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis nemo aperiam, voluptas quam alias esse sed natus tempore suscipit fugiat sit delectus exercitationem numquam ipsum assumenda recusandae consequatur...
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="/news/notizia-super-wow-3">News 3</a>
|
||||
</div>
|
||||
<div class="date">yyyy-mm-dd</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis nemo aperiam, voluptas quam alias esse sed natus tempore suscipit fugiat sit delectus exercitationem numquam ipsum assumenda recusandae consequatur...
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<!-- TODO: Progetti/Servizi/Cose fornite -->
|
||||
<h2>Progetti</h2>
|
||||
<div class="card-list">
|
||||
<div class="card">
|
||||
<div class="title">Project title</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Dolorem assumenda voluptatum harum quo nisi alias ab cupiditate corrupti est, illum culpa, excepturi, fugiat dolore doloribus minima placeat facilis enim quaerat!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="title">Project title</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Dolorem assumenda voluptatum harum quo nisi alias ab cupiditate corrupti est, illum culpa, excepturi, fugiat dolore doloribus minima placeat facilis enim quaerat!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="title">Project title</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Dolorem assumenda voluptatum harum quo nisi alias ab cupiditate corrupti est, illum culpa, excepturi, fugiat dolore doloribus minima placeat facilis enim quaerat!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<hr>
|
||||
<section>
|
||||
<!-- <h2>Altro...</h2> -->
|
||||
<div class="card">
|
||||
<div class="title">Vuoi diventare un macchinista?</div>
|
||||
<!-- <h3 style="font-weight: 500;">Vuoi diventare un macchinista?</h3> -->
|
||||
<div class="description">
|
||||
<p>
|
||||
Ti interessa (o interesserebbe) smanettare al PC, montare e smontare i cose? Stai spesso in dipartimento? Allora
|
||||
puoi venire a parlare con noi per diventare un apprendista macchinista per poi entrare nel PHC.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script src="/public/home.js"></script>
|
||||
{{end}}
|
||||
@@ -0,0 +1,89 @@
|
||||
{{template "base" .}}
|
||||
|
||||
{{define "title"}}Link Utili • PHC{{end}}
|
||||
|
||||
{{define "body"}}
|
||||
<section>
|
||||
<h1>
|
||||
<i class="fas fa-link"></i>
|
||||
Link Utili
|
||||
</h1>
|
||||
<p class="center">
|
||||
Questo è un elenco di alcuni indirizzi potenzialmente utili
|
||||
</p>
|
||||
<ul>
|
||||
<div class="card-list">
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="https://linktr.ee/aulastudenti">Aula Studenti</a>
|
||||
<i class="fas fa-external-link-alt"></i>
|
||||
</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
Lista di link relativi alle attività dell'aula studenti del Dipartimento di Matematica
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="https://credenziali.phc.dm.unipi.it/">Credenziali Poisson</a>
|
||||
<i class="fas fa-external-link-alt"></i>
|
||||
</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
Sito per chiedere il recupero/reset delle proprie credenziali Poisson; le matricole possono inserire direttamente le loro credenziali di Alice ed ottenere quelle del loro account su Poisson.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="http://detexify.kirelabs.org/classify.html">Non trovi un simbolo Latex?</a>
|
||||
<i class="fas fa-external-link-alt"></i>
|
||||
</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
Questo sito ti permette di disegnare "a mano" il simbolo che cerchi e trovare il suo corrispondente comando in LaTex.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="https://git.phc.dm.unipi.it/phc/dm-scripts/src/branch/main/printa4">Script per stampare in dipartimento dal proprio PC</a>
|
||||
<i class="fas fa-external-link-alt"></i>
|
||||
</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
Un semplice shell script che permette di stampare un file in una stampante del Dipartimento di Matematica da una qualsiasi shell Unix (Linux, MacOS, BSD...). Funziona anche da remoto!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="https://github.com/SuzanneSoy/WiTeX">Wikipedia+LaTex??</a>
|
||||
<i class="fas fa-external-link-alt"></i>
|
||||
</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
Sei stanco del pessimo font di Wikipedia? Finalmente potrai leggere i <a href="https://en.wikipedia.org/wiki/Abstract_nonsense">tuoi</a> <a href="https://en.wikipedia.org/wiki/New_Math">articoli</a> <a href="https://en.wikipedia.org/wiki/%C3%89variste_Galois#Final_days">preferiti</a> di Wikipedia con un typesetting in stile LaTex!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="https://www.dm.unipi.it">CdS Matematica</a>
|
||||
<i class="fas fa-external-link-alt"></i>
|
||||
</div>
|
||||
<div class="description">
|
||||
<p>
|
||||
La homepage del corso di studi all'interno del sito ufficiale del Dipartimento di Matematica
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
</section>
|
||||
<script>
|
||||
|
||||
</script>
|
||||
|
||||
{{end}}
|
||||
@@ -0,0 +1,55 @@
|
||||
{{template "base" .}}
|
||||
|
||||
{{define "title"}}Accedi • PHC{{end}}
|
||||
|
||||
{{define "body"}}
|
||||
<section>
|
||||
<h1>
|
||||
<i class="fas fa-user"></i>
|
||||
Account di Poisson
|
||||
</h1>
|
||||
<div class="card-list">
|
||||
<form class="card" action="/login" method="POST">
|
||||
<div class="title">
|
||||
<i class="fas fa-sign-in-alt"></i>
|
||||
Accedi
|
||||
</div>
|
||||
<p>
|
||||
Inserisci le tue credenziali di Poisson per accedere
|
||||
</p>
|
||||
|
||||
<div class="field-set">
|
||||
<!-- <label for="login-provider">Provider:</label> -->
|
||||
<input type="hidden" name="provider" id="login-provider" value="poisson-ldap">
|
||||
|
||||
<label for="login-username">Username:</label>
|
||||
<input type="text" name="username" id="login-username">
|
||||
|
||||
<label for="login-password">Password:</label>
|
||||
<input type="password" name="password" id="login-password">
|
||||
</div>
|
||||
<div class="field">
|
||||
<button class="primary">Accedi</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Ottenere un account</h2>
|
||||
<p>
|
||||
Dal 2022 in nuovi utenti hanno bisogno di compilare un modulo se vogliono ottenere un account<sup>1</sup>, scarica il <a href="#">modulo di richiesta</a> e portacelo in PHC o inviacelo via email all'indirizzo <a href="mailto:{{ .Config.Email }}">{{ .Config.Email }}</a>.
|
||||
</p>
|
||||
<p>
|
||||
1: In realtà il modulo ancora non esiste
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Recupero credenziali</h2>
|
||||
<p>
|
||||
Per il recupero credenziali vieni direttamente al PHC a parlarne con calma con noi altrimenti puoi inviaci una
|
||||
email all'indirizzo <a href="mailto:{{ .Config.Email }}">{{ .Config.Email }}</a> e poi recuperare le nuove credenziali sul sito <a href="https://credenziali.phc.dm.unipi.it/">credenziali.phc.dm.unipi.it</a>.
|
||||
</p>
|
||||
</section>
|
||||
{{end}}
|
||||
@@ -0,0 +1,18 @@
|
||||
{{template "base" .}}
|
||||
|
||||
{{define "title"}}{{ .Article.Title }} • News • PHC{{end}}
|
||||
|
||||
{{define "body"}}
|
||||
<section class="news-content">
|
||||
<h1>{{ .Article.Title }}</h1>
|
||||
<div class="date">
|
||||
{{ .Article.PublishDate.Format "2006/01/02" }}
|
||||
</div>
|
||||
<div class="tags">
|
||||
{{ range .Article.Tags }}
|
||||
<span class="tag">{{ . }}</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ .ContentHTML }}
|
||||
</section>
|
||||
{{end}}
|
||||
@@ -0,0 +1,63 @@
|
||||
{{template "base" .}}
|
||||
|
||||
{{define "title"}}News • PHC{{end}}
|
||||
|
||||
{{define "body"}}
|
||||
<section>
|
||||
<h1>
|
||||
<i class="far fa-newspaper"></i>
|
||||
Notizie Importanti
|
||||
</h1>
|
||||
<div class="card-list">
|
||||
{{ range .Articles }}
|
||||
{{ if .HasTag "important" }}
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="/news/{{ .Id }}">
|
||||
{{ .Title }}
|
||||
</a>
|
||||
</div>
|
||||
<div class="date">{{ .PublishDate.Format "2006/01/02" }}</div>
|
||||
<div class="description">
|
||||
<p>{{ .Description }}</p>
|
||||
</div>
|
||||
<div class="tags">
|
||||
{{ range .Tags }}
|
||||
<span class="tag">{{ . }}</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>
|
||||
<i class="fas fa-history"></i>
|
||||
Archivio notizie
|
||||
</h2>
|
||||
<div class="card-list">
|
||||
{{ range .Articles }}
|
||||
{{ if not (.HasTag "important") }}
|
||||
<div class="card">
|
||||
<div class="title">
|
||||
<a href="/news/{{ .Id }}">
|
||||
{{ .Title }}
|
||||
</a>
|
||||
</div>
|
||||
<div class="date">{{ .PublishDate.Format "2006/01/02" }}</div>
|
||||
<div class="description">
|
||||
<p>{{ .Description }}</p>
|
||||
</div>
|
||||
<div class="tags">
|
||||
{{ range .Tags }}
|
||||
<span class="tag">{{ . }}</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</section>
|
||||
{{end}}
|
||||
@@ -0,0 +1,88 @@
|
||||
{{ define "navbar" }}
|
||||
<nav>
|
||||
<!-- Site -->
|
||||
<div class="nav-logo">
|
||||
<a class="nav-element" href="/">
|
||||
<img src="/public/images/logo-circuit-board.svg" alt="phc-logo">
|
||||
</a>
|
||||
</div>
|
||||
<div class="nav-main">
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="/utenti">Utenti</a>
|
||||
</div>
|
||||
<div class="nav-item dropdown">
|
||||
<div class="name">
|
||||
<a class="nav-element" href="/progetti">
|
||||
<div class="icon">
|
||||
<i class="fas fa-chevron-down"></i>
|
||||
</div>
|
||||
<div class="label">
|
||||
Progetti
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="nav-items">
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="{{ .Config.GitUrl }}">Gitea</a>
|
||||
</div>
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="{{ .Config.ChatUrl }}">Zulip</a>
|
||||
</div>
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="/seminari">Seminari</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nav-item dropdown">
|
||||
<div class="name">
|
||||
<a class="nav-element" href="/risorse">
|
||||
<div class="icon">
|
||||
<i class="fas fa-chevron-down"></i>
|
||||
</div>
|
||||
<div class="label">
|
||||
Risorse
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="nav-items">
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="/news">News</a>
|
||||
</div>
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="/appunti">Appunti</a>
|
||||
</div>
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="/guide">Guide</a>
|
||||
</div>
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="/link">Link Utili</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="/storia">Storia</a>
|
||||
</div>
|
||||
<!-- <div class="nav-item">
|
||||
<a class="nav-element" href="/about">About</a>
|
||||
</div> -->
|
||||
|
||||
<div class="nav-item filler"></div>
|
||||
|
||||
<!-- User Related -->
|
||||
<div class="nav-item">
|
||||
<div id="toggle-dark-mode" class="nav-button">
|
||||
<i class="fas fa-moon"></i>
|
||||
</div>
|
||||
</div>
|
||||
{{if .User}}
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="/profilo">@{{ .User.Username }}</a>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="nav-item">
|
||||
<a class="nav-element" href="/login">Accedi</a>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</nav>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,105 @@
|
||||
{{template "base" .}}
|
||||
{{define "title"}}Profilo di @{{ .User.Username }} • PHC{{end}}
|
||||
{{define "body"}}
|
||||
<script src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||
<script src="/public/js/profilo.min.js"></script>
|
||||
<section x-data="profilo">
|
||||
<h1>Profilo di @{{ .User.Username }}</h1>
|
||||
<p class="center">
|
||||
<a class="button" href="/logout">Logout</a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Appunti e Dispense</h2>
|
||||
<p>
|
||||
Per gestire i tuoi appunti e le tue dispense caricate nella sezione <a href="/appunti">Appunti</a> del sito vai
|
||||
<a href="/appunti/condivisi">alla pagina appunti condivisi</a>.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Impostazioni</h2>
|
||||
<div class="card-list">
|
||||
<form class="card" action="/profile/impostazioni" method="POST">
|
||||
<div class="title">
|
||||
Sito PHC
|
||||
</div>
|
||||
<p>
|
||||
Aggiorna i campi relativi al sito del PHC, l'immagine del profilo verrà visualizzata sulla tua pagina utente <a href="#">phc.dm.unipi.it/u/{{ .User.Username }}</a> e nella lista di <a href="/utenti">tutti gli utenti</a>.
|
||||
</p>
|
||||
<div class="field-set">
|
||||
<label for="website-nickname">Nickname</label>
|
||||
<input type="text" name="nickname" id="website-nickname" placeholder="{{ .User.Username }}">
|
||||
<label for="website-profile-picture">Immagine Profilo</label>
|
||||
<input type="file" name="picture" id="website-profile-picture">
|
||||
</div>
|
||||
<p>
|
||||
Puoi anche aggiungere link ad altri tuoi profili su siti esterni (quando riempi l'ultimo campo se ne crea uno nuovo sotto)
|
||||
</p>
|
||||
<div class="field-set">
|
||||
<label for="website-link-1">Link 1</label>
|
||||
<input type="text" name="link" id="website-link-1"
|
||||
placeholder="https://github.com/...">
|
||||
<label for="website-link-2">Link 2</label>
|
||||
<input type="text" name="link" id="website-link-2"
|
||||
placeholder="https://twitter.com/...">
|
||||
<label for="website-link-3">Link 3</label>
|
||||
<input type="text" name="link" id="website-link-3"
|
||||
placeholder="https://news.ycombinator.com/user?id=...">
|
||||
</div>
|
||||
<div class="field">
|
||||
<button class="primary">Aggiorna</button>
|
||||
</div>
|
||||
</form>
|
||||
<form class="card" action="/profile/impostazioni" method="POST">
|
||||
<div class="title">
|
||||
Informazioni Utente
|
||||
</div>
|
||||
<p>
|
||||
Aggiorna i campi modificabili dell'account Poisson
|
||||
</p>
|
||||
<div class="field-set">
|
||||
<label for="user-username">Username</label>
|
||||
<input type="text" readonly name="username" id="user-username" value="{{ .User.Username }}">
|
||||
<label for="user-name">Nome</label>
|
||||
<input type="text" readonly name="name" id="user-name" value="{{ .User.Name }}">
|
||||
<label for="user-surname">Cognome</label>
|
||||
<input type="text" readonly name="surname" id="user-surname" value="{{ .User.Surname }}">
|
||||
<label for="user-email">Email</label>
|
||||
<input type="text" readonly name="email" id="user-email" value="{{ .User.Email }}">
|
||||
</div>
|
||||
<div class="field">
|
||||
<button class="primary">Aggiorna</button>
|
||||
</div>
|
||||
</form>
|
||||
<form x-data="passwordForm" class="card" action="/profile/impostazioni" method="POST">
|
||||
<div class="title">
|
||||
Modifica Password
|
||||
</div>
|
||||
<p>
|
||||
Aggiorna la password di Poisson
|
||||
</p>
|
||||
<div class="field-set">
|
||||
<label for="pass-username">Username</label>
|
||||
<input type="text" readonly name="username" id="pass-username" value="{{ .User.Username }}">
|
||||
<label for="pass-password">Password</label>
|
||||
<input type="password" name="password" id="pass-password" :class="!passwordSame ? 'error' : ''"
|
||||
x-model="password" @input="onUpdate" placeholder="In realtà anche questo non funge...">
|
||||
<label for="pass-password-2">Ripeti Password</label>
|
||||
<input type="password" name="password-2" id="pass-password-2" :class="!passwordSame ? 'error' : ''"
|
||||
x-model="passwordAgain" @input="onUpdate" placeholder="In realtà anche questo non funge...">
|
||||
</div>
|
||||
<div class="field">
|
||||
<button class="primary">Aggiorna Password</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Recupero Credenziali Poisson</h2>
|
||||
<p>
|
||||
Per il recupero credenziali vieni direttamente al PHC a parlarne con calma con noi altrimenti puoi inviaci una email
|
||||
all'indirizzo <a href="mailto:{{ .Config.Email }}">{{ .Config.Email }}</a> e poi recuperare le nuove credenziali sul
|
||||
sito <a href="https://credenziali.phc.dm.unipi.it/">credenziali.phc.dm.unipi.it</a>.
|
||||
</p>
|
||||
</section>
|
||||
{{end}}
|
||||
@@ -0,0 +1,51 @@
|
||||
{{template "base" .}}
|
||||
{{define "title"}}Utenti • PHC{{end}}
|
||||
{{define "body"}}
|
||||
<section>
|
||||
<h1>
|
||||
<i class="fas fa-clock"></i>
|
||||
Storia del PHC
|
||||
</h1>
|
||||
<p>
|
||||
In questa pagina è raccontata la storia del PHC con alcuni degli eventi principali. Al momento è <i>work in progress</i> ma pianifichiamo di aggiungere almeno le date di ingresso di tutti i macchinisti.
|
||||
</p>
|
||||
<div class="history-container">
|
||||
<div class="timeline-bar"></div>
|
||||
<div class="events">
|
||||
{{ range .Storia }}
|
||||
{{ if eq .Type "simple" }}
|
||||
<div class="event">
|
||||
<div class="title">
|
||||
{{ .Title }}
|
||||
</div>
|
||||
<div class="date">{{ .Date }}</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if eq .Type "entry-macchinista" }}
|
||||
<div class="event">
|
||||
<div class="title">
|
||||
Ingresso di
|
||||
<i class="fa-solid fa-sign-in"></i>
|
||||
<a href="{{ $.Config.UserPagesBaseUrl }}{{ .Uid }}">{{ .FullName }}</a>
|
||||
</div>
|
||||
<div class="date">{{ .Date }}</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if eq .Type "exit-macchinista" }}
|
||||
<div class="event">
|
||||
<div class="title">
|
||||
Uscita di
|
||||
<i class="fa-solid fa-sign-out"></i>
|
||||
<a href="{{ $.Config.UserPagesBaseUrl }}{{ .Uid }}">{{ .FullName }}</a>
|
||||
</div>
|
||||
<div class="date">{{ .Date }}</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if eq .Type "spacer" }}
|
||||
<div class="spacer" style="--size: {{ .Size }}"></div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{end}}
|
||||
@@ -0,0 +1,59 @@
|
||||
{{template "base" .}}
|
||||
{{define "title"}}Utenti • PHC{{end}}
|
||||
{{define "body"}}
|
||||
<script src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/fuse.js/dist/fuse.js"></script>
|
||||
<script src="/public/js/utenti.min.js"></script>
|
||||
<section x-data="utenti">
|
||||
<h1>
|
||||
<i class="fas fa-users"></i>
|
||||
Lista degli Utenti
|
||||
</h1>
|
||||
<p>
|
||||
Questa è la lista di tutti gli utenti con un account su Poisson. Scrivi nome, cognome o
|
||||
username di un utente per filtrare la lista in tempo reale. Altrimenti di base in cima
|
||||
compariranno gli utenti con più "follower".
|
||||
</p>
|
||||
<div class="search">
|
||||
<div class="compound padded">
|
||||
<div class="icon" title="Ordina per">
|
||||
<i class="fas fa-sort"></i>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
<select x-model="sortMode" @click="updateSortMode()">
|
||||
<option value="chronological">Cronologico</option>
|
||||
<option value="name">Nome</option>
|
||||
<option value="surname">Cognome</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="compound">
|
||||
<input type="text" x-model="searchField" @input="updateSearch()" placeholder="Cerca..." autocomplete="off" />
|
||||
<button class="icon" title="In realtà questo tasto è finto">
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-list card-list">
|
||||
<template x-for="entry in searchResults" :key="entry.item.uid">
|
||||
<div class="user-item card">
|
||||
<a class="full-name" :href="'{{ $.Config.UserPagesBaseUrl }}' + entry.item.uid" x-text="
|
||||
sortMode === 'surname' ?
|
||||
entry.item.cognome + ' ' + entry.item.nome :
|
||||
entry.item.nome + ' ' + entry.item.cognome
|
||||
"></a>
|
||||
<template x-if="entry.item.macchinista">
|
||||
<div class="icon" title="Macchinista">
|
||||
<i class="fas fa-wrench"></i>
|
||||
</div>
|
||||
</template>
|
||||
<!-- <template x-if="entry.score">
|
||||
<span x-text="entry.score"></span>
|
||||
</template> -->
|
||||
</div>
|
||||
</template>
|
||||
<div class="spinner" x-ref="spinner" x-show="searchResults.length < searchResultsBuffer.length">
|
||||
<i class="fas fa-hourglass"></i>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user