WIP: bolsa V 1.1 horaires bourses dans footer

This commit is contained in:
2026-07-12 10:41:08 +00:00
parent 39e5ae87ff
commit 85a858d3b8
5 changed files with 398 additions and 335 deletions
+30 -27
View File
@@ -33,7 +33,9 @@ html {
} }
body { body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; font-family:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
Arial, sans-serif;
background-color: var(--bg-primary); background-color: var(--bg-primary);
color: var(--text-primary); color: var(--text-primary);
line-height: 1.6; line-height: 1.6;
@@ -156,28 +158,6 @@ main {
color: #ffffff; color: #ffffff;
} }
.footer {
position: relative;
padding: 8px 20px;
text-align: center;
font-size: 0.85rem;
line-height: 1.3;
min-height: 38px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(18, 24, 42, 0.98);
border-top: 1px solid rgba(255, 255, 255, 0.06);
flex-shrink: 0;
}
.footer-logout {
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
}
.logo-img { .logo-img {
height: 50px; height: 50px;
width: auto; width: auto;
@@ -415,13 +395,36 @@ main {
============================================ */ ============================================ */
.footer { .footer {
display: flex;
align-items: center;
padding: 10px 20px;
background-color: var(--bg-secondary); background-color: var(--bg-secondary);
border-top: 1px solid var(--border-color); border-top: 1px solid var(--border-color);
padding: 20px;
text-align: center;
color: var(--text-secondary); color: var(--text-secondary);
font-size: 13px; font-size: 0.85rem;
margin-top: auto; width: 100%;
}
/* On donne une largeur fixe aux conteneurs latéraux pour forcer le centrage */
#market-clocks,
.logout-container {
flex: 0 0 200px; /* Largeur fixe de 200px pour les deux côtés */
}
#market-clocks {
display: flex;
flex-direction: column;
text-align: left;
}
.footer p {
flex: 1; /* Le texte prend tout l'espace restant */
text-align: center; /* Centre le texte dans cet espace */
}
.footer-logout {
display: block;
text-align: right; /* Aligne le bouton à droite dans son bloc */
} }
/* ============================================ /* ============================================
+47
View File
@@ -0,0 +1,47 @@
document.addEventListener("DOMContentLoaded", function () {
function updateClocks() {
const now = new Date();
const formatTime = (date) => date.toLocaleTimeString("fr-FR");
// --- PARIS ---
const parisTime = new Date(
now.toLocaleString("en-US", { timeZone: "Europe/Paris" }),
);
const pDay = parisTime.getDay();
const pHour = parisTime.getHours();
const pMin = parisTime.getMinutes();
const isParisOpen =
pDay >= 1 &&
pDay <= 5 &&
pHour >= 9 &&
(pHour < 17 || (pHour === 17 && pMin < 30));
const pEl = document.getElementById("paris-clock");
if (pEl) {
pEl.innerText = "Paris : " + formatTime(parisTime);
pEl.style.color = isParisOpen ? "#28a745" : "#dc3545";
}
// --- NEW-YORK ---
const nyTime = new Date(
now.toLocaleString("en-US", { timeZone: "America/New_York" }),
);
const nyDay = nyTime.getDay();
const nyHour = nyTime.getHours();
const nyMin = nyTime.getMinutes();
const isNyOpen =
nyDay >= 1 &&
nyDay <= 5 &&
nyHour >= 9 &&
(nyHour < 16 || (nyHour === 9 && nyMin >= 30));
const nyEl = document.getElementById("ny-clock");
if (nyEl) {
nyEl.innerText = "New-York : " + formatTime(nyTime);
nyEl.style.color = isNyOpen ? "#28a745" : "#dc3545";
}
}
setInterval(updateClocks, 1000);
updateClocks();
});
+14 -1
View File
@@ -1,9 +1,22 @@
</main> </main>
<footer class="footer"> <footer class="footer">
<!-- 1. Les horloges en premier (elles seront à gauche) -->
<div id="market-clocks">
<div id="paris-clock">Paris : --:--:--</div>
<div id="ny-clock">New-York : --:--:--</div>
</div>
<!-- 2. Le texte au milieu -->
<p>&copy; 2026 - Jean-François GIRAUD - Positions en bourse - Tous droits réservés</p>
<!-- 3. Le bouton tout à droite (grâce à la classe footer-logout) -->
<?php if (isset($_SESSION['user_id'])): ?> <?php if (isset($_SESSION['user_id'])): ?>
<a class="logout-button footer-logout" href="/php/logout.php">Se déconnecter</a> <a class="logout-button footer-logout" href="/php/logout.php">Se déconnecter</a>
<?php endif; ?> <?php endif; ?>
<p>&copy; 2026 - Jean-François GIRAUD - Positions en bourse - Tous droits réservés</p>
<!-- Appel du script JS (placé à la fin) -->
<script src="/js/footer.js"></script>
</footer> </footer>
</body> </body>
</html> </html>
+8 -8
View File
@@ -273,14 +273,14 @@ require_once __DIR__ . '/header.php';
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Prix Brut :</label> <label>Prix Brut :</label>
<input type="number" step="0.001" name="Prix_brut" required> <input type="number" step="0.0001" name="Prix_brut" required>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Frais</label> <label>Frais</label>
<div class="triple"> <div class="triple">
<input type="number" step="0.01" name="Frais_brocker" placeholder="Broker"> <input type="number" step="0.0001" name="Frais_brocker" placeholder="Broker">
<input type="number" step="0.01" name="Frais_etat" placeholder="État"> <input type="number" step="0.0001" name="Frais_etat" placeholder="État">
<input type="number" step="0.01" name="Frais_autre" placeholder="Autre"> <input type="number" step="0.0001" name="Frais_autre" placeholder="Autre">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@@ -326,14 +326,14 @@ require_once __DIR__ . '/header.php';
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Prix Brut :</label> <label>Prix Brut :</label>
<input type="number" step="0.001" name="Prix_brut" id="edit_prix" required> <input type="number" step="0.0001" name="Prix_brut" id="edit_prix" required>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Frais</label> <label>Frais</label>
<div class="triple"> <div class="triple">
<input type="number" step="0.01" name="Frais_brocker" id="edit_frais_broker" placeholder="Broker"> <input type="number" step="0.0001" name="Frais_brocker" id="edit_frais_broker" placeholder="Broker">
<input type="number" step="0.01" name="Frais_etat" id="edit_frais_etat" placeholder="État"> <input type="number" step="0.0001" name="Frais_etat" id="edit_frais_etat" placeholder="État">
<input type="number" step="0.01" name="Frais_autre" id="edit_frais_autre" placeholder="Autre"> <input type="number" step="0.0001" name="Frais_autre" id="edit_frais_autre" placeholder="Autre">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
+8 -8
View File
@@ -241,14 +241,14 @@ require_once __DIR__ . '/header.php';
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Prix Brut :</label> <label>Prix Brut :</label>
<input type="number" step="0.001" name="Prix_brut" required> <input type="number" step="0.0001" name="Prix_brut" required>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Frais</label> <label>Frais</label>
<div class="triple"> <div class="triple">
<input type="number" step="0.01" name="Frais_brocker" placeholder="Broker"> <input type="number" step="0.0001" name="Frais_brocker" placeholder="Broker">
<input type="number" step="0.01" name="Frais_etat" placeholder="État"> <input type="number" step="0.0001" name="Frais_etat" placeholder="État">
<input type="number" step="0.01" name="Frais_autre" placeholder="Autre"> <input type="number" step="0.0001" name="Frais_autre" placeholder="Autre">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@@ -294,14 +294,14 @@ require_once __DIR__ . '/header.php';
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Prix Brut :</label> <label>Prix Brut :</label>
<input type="number" step="0.001" name="Prix_brut" id="edit_prix" required> <input type="number" step="0.0001" name="Prix_brut" id="edit_prix" required>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Frais</label> <label>Frais</label>
<div class="triple"> <div class="triple">
<input type="number" step="0.01" name="Frais_brocker" id="edit_frais_broker" placeholder="Broker"> <input type="number" step="0.0001" name="Frais_brocker" id="edit_frais_broker" placeholder="Broker">
<input type="number" step="0.01" name="Frais_etat" id="edit_frais_etat" placeholder="État"> <input type="number" step="0.0001" name="Frais_etat" id="edit_frais_etat" placeholder="État">
<input type="number" step="0.01" name="Frais_autre" id="edit_frais_autre" placeholder="Autre"> <input type="number" step="0.0001" name="Frais_autre" id="edit_frais_autre" placeholder="Autre">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">