Compare commits
33 commits
feat/conta
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3d72b8a4aa | |||
| 8355692aef | |||
| 6f8de1836e | |||
| 8a4d86ade4 | |||
| 9b45750378 | |||
| 6566d085a6 | |||
| 2d232ae212 | |||
| 1451d97a40 | |||
| b6c0ed7a58 | |||
| 055eee34e0 | |||
| 9522700204 | |||
| 7e3ddb83d0 | |||
| c65a063124 | |||
| 28c72626b7 | |||
| ffbc59d362 | |||
| e2619bbe91 | |||
| 9847d7c527 | |||
| 744dd42c48 | |||
| 9e7e781c36 | |||
| ce0020b3ff | |||
| 1a40be3526 | |||
| d8c5d1d576 | |||
| a3c6e8893f | |||
| a64f91606a | |||
| e9dcacf319 | |||
| fc3a5eb9d1 | |||
| fa058dadbd | |||
| 40b2b2fcf7 | |||
| c47bd42d46 | |||
| f7c88f2a69 | |||
| e2b073704d | |||
|
|
aa404a10ff | ||
| 473a84cd3e |
9 changed files with 238 additions and 21 deletions
|
|
@ -1,6 +1,6 @@
|
|||
FROM docker.io/nginx:1.29-alpine
|
||||
|
||||
COPY index.html poster.html guide.html /usr/share/nginx/html
|
||||
COPY index.html poster.html guide.html contact.html /usr/share/nginx/html
|
||||
COPY assets /usr/share/nginx/html/assets
|
||||
COPY css /usr/share/nginx/html/css
|
||||
COPY js /usr/share/nginx/html/js
|
||||
|
|
|
|||
BIN
assets/Thunometre-participanxes.pdf
Executable file
BIN
assets/Thunometre-participanxes.pdf
Executable file
Binary file not shown.
39
assets/camp-interhack.ics
Normal file
39
assets/camp-interhack.ics
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
BEGIN:VCALENDAR
|
||||
X-LOTUS-CHARSET:UTF-8
|
||||
VERSION:2.0
|
||||
PRODID:ZMS-Berlin
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Europe/Berlin
|
||||
X-LIC-LOCATION:Europe/Berlin
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CEST
|
||||
DTSTART:19700329T020000
|
||||
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19701025T030000
|
||||
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
METHOD:REQUEST
|
||||
BEGIN:VEVENT
|
||||
UID:ics.terminsysteme.de1769434840
|
||||
DTSTAMP:20260126T144040
|
||||
CLASS:PUBLIC
|
||||
DTSTART;TZID=Europe/Berlin:20260702T100000
|
||||
DTEND;TZID=Europe/Berlin:20260705T230000
|
||||
LOCATION:15 route de Saint Dolay 44530 Sévérac | 47.5437595, -2.0916116
|
||||
SUMMARY:Camp Interhack
|
||||
DESCRIPTION: Le Camp Interhack 2026 est un événement festif de hacking ! Le hack c’est le détournement des machines, des pratiques et des systèmes (au sens large) qui nous entourent. De la musique à la couture en passant par l’informatique et l’éléctronique mais aussi les structure sociales, les institutions et les organisations politiques, venez hacker le monde avec nous. https://camp.interhacker.space \n\n
|
||||
BEGIN:VALARM
|
||||
ACTION:DISPLAY
|
||||
TRIGGER:-PT1440M
|
||||
DESCRIPTION:Erinnerung
|
||||
END:VALARM
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
30
css/base.css
30
css/base.css
|
|
@ -49,6 +49,7 @@ main h1, main h2, main h3 {
|
|||
|
||||
main h1 span, main h2 span, main h3 {
|
||||
background-color: #000000b8;
|
||||
padding: auto;
|
||||
}
|
||||
|
||||
main h1 {
|
||||
|
|
@ -86,7 +87,7 @@ main h3 {
|
|||
}
|
||||
|
||||
main section h3 {
|
||||
text-align: left;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
main h4 {
|
||||
|
|
@ -195,6 +196,19 @@ figcaption {
|
|||
margin-right: 10%;
|
||||
}
|
||||
|
||||
#progress {
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#gauge-bar {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#fundraising-bar {
|
||||
float: left;
|
||||
}
|
||||
|
||||
code {
|
||||
background: #ffffff1f;
|
||||
padding: 0.2em 0.4em;
|
||||
|
|
@ -208,9 +222,21 @@ code {
|
|||
margin-right: 0;
|
||||
}
|
||||
|
||||
div#maj-guide {
|
||||
text-align: center;
|
||||
margin: 2em 1em;
|
||||
}
|
||||
|
||||
.center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 500px) {
|
||||
/* Hide stickers on mobile */
|
||||
.randomStart {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
55
css/home.css
55
css/home.css
|
|
@ -17,6 +17,57 @@
|
|||
height: 200px;
|
||||
}
|
||||
|
||||
/* Section des dons */
|
||||
|
||||
#don > div {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
|
||||
#don button {
|
||||
flex-grow: 1;
|
||||
width: 3em;
|
||||
color: white;
|
||||
font-size: 2em;
|
||||
border: none;
|
||||
font-family: MonTrappist;
|
||||
margin: 0.2em;
|
||||
padding: 0.3em;
|
||||
background: var(--primary-bg-color);
|
||||
background: linear-gradient(0deg,rgba(136, 0, 255, 1) 0%, rgba(255, 191, 62, 1) 50%, rgba(255, 78, 0, 1) 100%);
|
||||
box-shadow: -5px 5px 0px var(--accent-yellow), -10px 10px 0px var(--accent-orange), -15px 15px 0px var(--accent-violet);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#don > hr {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
#don p {
|
||||
text-align: justify;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@keyframes bang {
|
||||
from {
|
||||
transform: translate3d(0,0,0);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-pop i {
|
||||
/* position: ; */
|
||||
display:run-in;
|
||||
left: 0px;
|
||||
top: 0px;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
background: red;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* Barre de progression */
|
||||
|
||||
.progression {
|
||||
|
|
@ -53,6 +104,6 @@ font-size : 1.5em;
|
|||
}
|
||||
|
||||
.morethanhalf {
|
||||
text-align : end;
|
||||
color:black;
|
||||
text-align : end;
|
||||
background: linear-gradient(90deg,rgba(136, 0, 255, 1) 0%, rgba(255, 78, 0, 1) 42%, rgba(255, 191, 62, 1) 100%);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,6 +56,10 @@ BISOUS
|
|||
<!-- EDGEDOC: A la place de ce commentaire, le contenu du Edgedoc https://md.lqdn.fr/H0gKhjbKTfeM41L9bG9zUA -->
|
||||
|
||||
</section>
|
||||
|
||||
<div id="maj-guide">
|
||||
Dernière mise à jour du guide: <!-- DATE: A la place de ce commentaire, la date et heure du jour -->
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
<div>
|
||||
|
|
@ -71,9 +75,6 @@ BISOUS
|
|||
<h2>Site Web</h2>
|
||||
<a href="https://git.interhacker.space/interhack/2026.camp.public.website">source</a>
|
||||
</div>
|
||||
<div>
|
||||
Dernière mise à jour du guide: <!-- DATE: A la place de ce commentaire, la date et heure du jour -->
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
87
index.html
87
index.html
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="stylesheet" href="css/drag.css">
|
||||
<script src="js/drag.js" defer></script>
|
||||
<script src="js/progress.js" defer></script>
|
||||
<script src="js/pop.js" defer></script>
|
||||
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
|
||||
<title>Camp Interhack</title>
|
||||
</head>
|
||||
|
|
@ -81,19 +82,87 @@
|
|||
collective.<br>
|
||||
Seule exigence, respecter toutes les marginalités, originalités, bizarreries et normaleries de
|
||||
chacun·es.</p>
|
||||
</section>
|
||||
<h3>
|
||||
<span>Où en est-on ?</span>
|
||||
</h3>
|
||||
|
||||
<p>
|
||||
<h3>
|
||||
<a class="btn-nice" href="https://grist.interhacker.space/o/camp/forms/jhWe1wCu16LGEu81RTn3Um/4">S'inscrire</a>
|
||||
</h3>
|
||||
</p>
|
||||
|
||||
<p class="center">
|
||||
<a href="assets/camp-interhack.ics">📅 Ajouter l'évènement à son calendrier (.ics)</a>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="progress">
|
||||
<h3>
|
||||
<span>Où en est-on ?</span>
|
||||
</h3>
|
||||
<p>Il y a</p>
|
||||
<div class="places"><span class="bar"><span id="gauge-bar" style="width:0" class="progression lessthanhalf"><span id="gauge-text">?/200</span></span></span></div>
|
||||
<p>places déjà réservées. Ouverture prochaine des inscriptions !</p>
|
||||
|
||||
<div class="places">
|
||||
<span class="bar">
|
||||
<span id="gauge-bar" style="width:0" class="progression lessthanhalf">
|
||||
<span id="gauge-text">?/200</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<p>places déjà réservées.</p>
|
||||
<br>
|
||||
<p>Et nous avons reçu</p>
|
||||
<div class="places"><span class="bar"><span id="fundraising-bar" style="width:0" class="progression lessthanhalf"><span id="fundraising-text">? %</span></span></span></div>
|
||||
<p>des dons dont nous avons besoin (voir le détail des comptes)</p>
|
||||
<div class="places">
|
||||
<span class="bar">
|
||||
<span id="fundraising-bar" style="width:0" class="progression lessthanhalf">
|
||||
<span id="fundraising-text">? %</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<p>des dons dont nous avons besoin.</p>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<section id="don">
|
||||
<h3>
|
||||
<span>Faire un don</span>
|
||||
</h3>
|
||||
<p>Nous avons besoin de sous avant le débût du Camp pour financer l'achat de fournitures, payer la réservation du lieu et monter la logistique.</p>
|
||||
<div>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09a8-c97f-784c-ab19-841c0700837d?resource_id=019c09a8-c976-797d-b213-4ac052e5d786"><button>5€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09a9-76e2-7086-9b69-436a09ff801d?resource_id=019c09a9-76db-7325-b239-f0f80d056b74"><button>1€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09a9-f4d1-7cf5-a1b0-eff390954dd0?resource_id=019c09a9-f4cb-7335-9fa4-6b599f072969"><button>10€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09aa-85db-7edd-9508-f6b7f03e1594?resource_id=019c09aa-85d4-7a19-889b-6c09cd7e4ae5"><button>20€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09ab-25d1-724a-9156-a8af734ddcc6?resource_id=019c09ab-25c8-7e9c-a0b0-72655c28b87e"><button>40€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09ab-9f99-72fa-8151-0722830429a8?resource_id=019c09ab-9f93-78cb-9825-11af0c12f080"><button>50€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c0ff1-9272-7c10-b8b0-22c0fdc9f080?resource_id=019c0ff1-926d-7146-a0c4-5056a719e7ea"><button>75€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09ac-a6b9-76e9-9988-fe53c940ff06?resource_id=019c09ac-a6b3-735a-a13b-11d1698ba31a"><button>100€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c9959-fa30-7eb5-add2-91ce73d6e5eb?resource_id=019c9959-fa31-7e72-b2c2-c5f5c9b7c398"><button>150€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995d-49cf-72c0-8197-0b279947316c?resource_id=019c995d-49cf-7a7b-aee0-8a2742135921"><button>200€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995e-92e1-77cf-a530-4212996c2e6d?resource_id=019c995e-92e1-7d2e-bb19-513b48ac4645"><button>250€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995f-4754-7924-b6db-805a35c6ab0b?resource_id=019c995f-4755-78e5-989c-964ada8e12a1"><button>310€</button></a>
|
||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995f-ecad-79c0-8c78-4144e9af77c8?resource_id=019c995f-ecae-7a72-82bb-6274f4a9d2e2"><button>550€</button></a>
|
||||
</div>
|
||||
<hr>
|
||||
<div>
|
||||
<p>Si vous préférez faire un virement, demandez-nous l'IBAN sur <code>orga [arobase] camp.interhacker.space</code>. Nous payons <a href="https://www.mollie.com/fr/pricing"></a>autour de ~2% de frais</a> lors des payements par carte bancaire.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div>
|
||||
<p>Nous estimons avoir un budget de 10 000 ~ 15 000€ et être autour de 200 personnes, et aurons donc besoin d'au moins autant pour que le camp soit à l'équilibre.</p>
|
||||
<a href="https://grist.interhacker.space/o/docs/pUsyFia9Papk/Untitled-document">Voir le détail des comptes</a>
|
||||
</div>
|
||||
<hr>
|
||||
<div>
|
||||
<p>Si tu ne sais pas quel prix libre donner, et/ou que tu veux de l'aide pour définir un prix libre juste et éclairé pour ta participation au camp, voici un thunomètre rapide qui peut répondre au besoin.</p>
|
||||
<a href="assets/Thunometre-participanxes.pdf">Thunomètre</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<h3>
|
||||
<span>Iels y participent</span>
|
||||
</h3>
|
||||
|
|
@ -131,5 +200,5 @@
|
|||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
|
||||
</html>
|
||||
|
|
|
|||
31
js/pop.js
Normal file
31
js/pop.js
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
document.querySelectorAll('button').forEach(function(button) {
|
||||
button.addEventListener('mouseenter', function() {
|
||||
function random(max) {
|
||||
return Math.random() * (max - 0) + 0;
|
||||
}
|
||||
|
||||
var c = document.createDocumentFragment();
|
||||
for (var i = 0; i < 100; i++) {
|
||||
var styles = 'position: absolute;' +
|
||||
'left: ' + (random(100)) + '30%;' + // Limit the position to within the button
|
||||
'top: ' + (random(60)) + '30%;' + // Limit the position to within the button
|
||||
'width: 3px; height: 6px; ' + // Increase size
|
||||
'transform: translate(-50%, -50%) rotate(' + random(360) + 'deg);' +
|
||||
'background: hsla(' + random(360) + ', 100%, 50%, 1);' +
|
||||
'animation: bang 2000ms ease-out forwards;' +
|
||||
'opacity: 0;' +
|
||||
'z-index: 10;'; // Set a high z-index
|
||||
|
||||
var e = document.createElement("i");
|
||||
e.style.cssText = styles;
|
||||
c.appendChild(e);
|
||||
}
|
||||
button.appendChild(c);
|
||||
setTimeout(() => {
|
||||
// Create an array of the <i> elements to remove
|
||||
let childrenToRemove = Array.from(button.querySelectorAll('i'));
|
||||
// Remove each <i> element
|
||||
childrenToRemove.forEach(child => button.removeChild(child));
|
||||
}, 3000);
|
||||
});
|
||||
});
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
const gauge_url = "https://api.camp.interhacker.space/api/gauge"
|
||||
const fundraising_url = "https://api.camp.interhacker.space/api/fundraising"
|
||||
const gaugeMax = 250;
|
||||
const gaugeMax = 200;
|
||||
const fundraisingTotalMax = 20000;
|
||||
|
||||
async function getGauge() {
|
||||
// REMOVE WHEN SIGNUP FORM IS OPEN
|
||||
return 0;
|
||||
// // REMOVE WHEN SIGNUP FORM IS OPEN
|
||||
// return 0;
|
||||
|
||||
try {
|
||||
const response = await fetch(gauge_url);
|
||||
|
|
@ -61,7 +61,7 @@ async function setGauge() {
|
|||
const gaugeRatio = gauge / gaugeMax;
|
||||
|
||||
gaugeBar.style.setProperty("width", percentRatio(gaugeRatio) + "%");
|
||||
gaugeText.innerText = gauge + "/" + gaugeMax;
|
||||
gaugeText.innerText = gauge + " / " + gaugeMax;
|
||||
|
||||
setAboveHalf(gaugeRatio, gaugeBar);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue