all most ready to go
This commit is contained in:
parent
a0243b86a5
commit
033b788e93
|
|
@ -4,6 +4,7 @@
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<title>Admin — Bossier City Phone Directory</title>
|
<title>Admin — Bossier City Phone Directory</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="icon" type="image/svg+xml" href="favicon.svg">
|
||||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||||
<style>
|
<style>
|
||||||
@import url('https://fonts.googleapis.com/css?family=PT+Serif');
|
@import url('https://fonts.googleapis.com/css?family=PT+Serif');
|
||||||
|
|
@ -135,10 +136,57 @@
|
||||||
@media (max-width: 480px) {
|
@media (max-width: 480px) {
|
||||||
.dept-btn { font-size: 0.8rem; padding: 0.25rem 0.7rem; }
|
.dept-btn { font-size: 0.8rem; padding: 0.25rem 0.7rem; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Login overlay */
|
||||||
|
#loginOverlay {
|
||||||
|
position: fixed; inset: 0; z-index: 9999;
|
||||||
|
background: #1a1a2e;
|
||||||
|
display: flex; align-items: center; justify-content: center;
|
||||||
|
}
|
||||||
|
#loginOverlay.hidden { display: none; }
|
||||||
|
.login-box {
|
||||||
|
background: #fff; border-radius: 0.75rem;
|
||||||
|
padding: 2.5rem 2rem; width: 100%; max-width: 360px;
|
||||||
|
box-shadow: 0 8px 32px rgba(0,0,0,0.35);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.login-box h2 {
|
||||||
|
font-size: 1.35rem; font-weight: 700; color: #1a1a2e; margin-bottom: 0.25rem;
|
||||||
|
}
|
||||||
|
.login-box p { font-size: 0.88rem; color: #666; margin-bottom: 1.5rem; }
|
||||||
|
.login-box .form-control {
|
||||||
|
font-family: 'PT Serif', serif; font-size: 1rem;
|
||||||
|
border: 1.5px solid #aaccfa; border-radius: 0.4rem;
|
||||||
|
padding: 0.55rem 0.75rem; text-align: center; letter-spacing: 0.1em;
|
||||||
|
}
|
||||||
|
.login-box .form-control:focus {
|
||||||
|
border-color: #5599e8; box-shadow: 0 0 0 3px rgba(85,153,232,0.2);
|
||||||
|
}
|
||||||
|
.login-box .btn-login {
|
||||||
|
width: 100%; padding: 0.6rem; font-size: 1rem;
|
||||||
|
background: #aaccfa; border: none; border-radius: 0.4rem;
|
||||||
|
font-family: 'PT Serif', serif; font-weight: 700; color: #1a1a2e;
|
||||||
|
margin-top: 0.75rem; cursor: pointer; transition: background 0.15s;
|
||||||
|
}
|
||||||
|
.login-box .btn-login:hover { background: #7aacf0; }
|
||||||
|
#loginError {
|
||||||
|
color: #c0392b; font-size: 0.85rem; margin-top: 0.6rem; min-height: 1.2em;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
<!-- ── Login overlay ── -->
|
||||||
|
<div id="loginOverlay">
|
||||||
|
<div class="login-box">
|
||||||
|
<h2>Bossier City Phone Directory</h2>
|
||||||
|
<p>Admin access required</p>
|
||||||
|
<input type="password" id="loginPassword" class="form-control" placeholder="Password" autocomplete="current-password">
|
||||||
|
<button class="btn-login" onclick="submitLogin()">Sign In</button>
|
||||||
|
<div id="loginError"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- ── Folder access modal (shown only when permission is needed) ── -->
|
<!-- ── Folder access modal (shown only when permission is needed) ── -->
|
||||||
<div class="modal fade" id="accessModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1">
|
<div class="modal fade" id="accessModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
|
@ -218,6 +266,38 @@
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
|
||||||
<script>
|
<script>
|
||||||
|
// ── Login gate ────────────────────────────────────────────────────────────
|
||||||
|
const ADMIN_HASH = '7a9c4e2b1f8d3e6a0c5b9d2f4e7a1c3b8d0f2e5a9c6b4d1f7e0a3c8b5d2f9e4a';
|
||||||
|
|
||||||
|
async function hashPassword(pw) {
|
||||||
|
const buf = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(pw));
|
||||||
|
return Array.from(new Uint8Array(buf)).map(b => b.toString(16).padStart(2,'0')).join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
async function submitLogin() {
|
||||||
|
const pw = document.getElementById('loginPassword').value;
|
||||||
|
const hash = await hashPassword(pw);
|
||||||
|
// Compare against stored hash of P@rr0tvi11e
|
||||||
|
const target = await hashPassword('P@rr0tvi11e');
|
||||||
|
if (hash === target) {
|
||||||
|
sessionStorage.setItem('admin-auth', '1');
|
||||||
|
document.getElementById('loginOverlay').classList.add('hidden');
|
||||||
|
} else {
|
||||||
|
document.getElementById('loginError').textContent = 'Incorrect password. Please try again.';
|
||||||
|
document.getElementById('loginPassword').value = '';
|
||||||
|
document.getElementById('loginPassword').focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
if (sessionStorage.getItem('admin-auth') === '1') {
|
||||||
|
document.getElementById('loginOverlay').classList.add('hidden');
|
||||||
|
}
|
||||||
|
document.getElementById('loginPassword').addEventListener('keydown', e => {
|
||||||
|
if (e.key === 'Enter') submitLogin();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// ── Department manifest ───────────────────────────────────────────────────
|
// ── Department manifest ───────────────────────────────────────────────────
|
||||||
const DEPARTMENTS = {
|
const DEPARTMENTS = {
|
||||||
btbc: [
|
btbc: [
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
||||||
|
<!-- Background -->
|
||||||
|
<rect width="32" height="32" rx="5" fill="#1a1a2e"/>
|
||||||
|
|
||||||
|
<!-- Book pages -->
|
||||||
|
<rect x="7" y="3" width="18" height="26" rx="2" fill="#dbeafe"/>
|
||||||
|
|
||||||
|
<!-- Spine -->
|
||||||
|
<rect x="7" y="3" width="5" height="26" rx="2" fill="#3b82f6"/>
|
||||||
|
<!-- Spine inner shadow -->
|
||||||
|
<rect x="11" y="3" width="1.5" height="26" fill="#2563eb"/>
|
||||||
|
|
||||||
|
<!-- Directory entry lines -->
|
||||||
|
<rect x="14.5" y="8" width="8" height="1.8" rx="0.9" fill="#93c5fd"/>
|
||||||
|
<rect x="14.5" y="12" width="8" height="1.8" rx="0.9" fill="#93c5fd"/>
|
||||||
|
<rect x="14.5" y="16" width="8" height="1.8" rx="0.9" fill="#93c5fd"/>
|
||||||
|
<rect x="14.5" y="20" width="5" height="1.8" rx="0.9" fill="#93c5fd"/>
|
||||||
|
|
||||||
|
<!-- Phone handset on cover -->
|
||||||
|
<!-- earpiece -->
|
||||||
|
<ellipse cx="14.5" cy="26.5" rx="2.2" ry="1.5" fill="#2563eb"/>
|
||||||
|
<!-- mouthpiece -->
|
||||||
|
<ellipse cx="20.5" cy="24" rx="2.2" ry="1.5" fill="#2563eb"/>
|
||||||
|
<!-- handle connecting them (angled) -->
|
||||||
|
<line x1="14.5" y1="26.5" x2="20.5" y2="24" stroke="#2563eb" stroke-width="3" stroke-linecap="round"/>
|
||||||
|
<!-- highlight on earpiece -->
|
||||||
|
<ellipse cx="14.5" cy="26.5" rx="1.4" ry="0.9" fill="#60a5fa"/>
|
||||||
|
<!-- highlight on mouthpiece -->
|
||||||
|
<ellipse cx="20.5" cy="24" rx="1.4" ry="0.9" fill="#60a5fa"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
|
|
@ -4,6 +4,7 @@
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<title>Bossier City Phone Directory</title>
|
<title>Bossier City Phone Directory</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="icon" type="image/svg+xml" href="favicon.svg">
|
||||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||||
<style>
|
<style>
|
||||||
@import url('https://fonts.googleapis.com/css?family=PT+Serif');
|
@import url('https://fonts.googleapis.com/css?family=PT+Serif');
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "",
|
"name": "",
|
||||||
"title": "Shift Manger Table Games",
|
"title": "Shift Manger Table Games",
|
||||||
"extension": "3808",
|
"extension": "3808",
|
||||||
"exterior": ""
|
"exterior": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
@ -1,27 +1,27 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Dan Ihm",
|
"name": "Dan Ihm",
|
||||||
"title": "Senoir Vice President & General Manager",
|
"title": "Senoir Vice President & General Manager",
|
||||||
"extension": "7171",
|
"extension": "7171",
|
||||||
"exterior":"717-926-7615"
|
"exterior":"717-926-7615"
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
"name": "Michael Gallagher",
|
"name": "Michael Gallagher",
|
||||||
"title": "Assistant General Manager & Chief Financial Officer",
|
"title": "Assistant General Manager & Chief Financial Officer",
|
||||||
"extension": "3817",
|
"extension": "3817",
|
||||||
"exterior":"318-364-9753"
|
"exterior":"318-364-9753"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"name": "Ashley Henning",
|
"name": "Ashley Henning",
|
||||||
"title": "Executive Asst / Community Relations",
|
"title": "Executive Asst / Community Relations",
|
||||||
"extension": "7192",
|
"extension": "7192",
|
||||||
"exterior":"318-464-7424"
|
"exterior":"318-464-7424"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<<<<<<< HEAD
|
<<<<<<< HEAD
|
||||||
[]
|
[]
|
||||||
=======
|
=======
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "",
|
"name": "",
|
||||||
"title": "Pilot House",
|
"title": "Pilot House",
|
||||||
"extension": "3833",
|
"extension": "3833",
|
||||||
"exterior":""
|
"exterior":""
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
>>>>>>> 0372ba2188bd2871972f16a8a4f572982e315af3
|
>>>>>>> 0372ba2188bd2871972f16a8a4f572982e315af3
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<<<<<<< HEAD
|
<<<<<<< HEAD
|
||||||
[]
|
[]
|
||||||
=======
|
=======
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "",
|
"name": "",
|
||||||
"title": "5oClock 1 Somewhere",
|
"title": "5oClock 1 Somewhere",
|
||||||
"extension": "3820",
|
"extension": "3820",
|
||||||
"exterior":""
|
"exterior":""
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
>>>>>>> 0372ba2188bd2871972f16a8a4f572982e315af3
|
>>>>>>> 0372ba2188bd2871972f16a8a4f572982e315af3
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<<<<<<< HEAD
|
<<<<<<< HEAD
|
||||||
[]
|
[]
|
||||||
=======
|
=======
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Natalie Ogle",
|
"name": "Natalie Ogle",
|
||||||
"title": " Need ",
|
"title": " Need ",
|
||||||
"extension": "3837",
|
"extension": "3837",
|
||||||
"exterior":""
|
"exterior":""
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
>>>>>>> 0372ba2188bd2871972f16a8a4f572982e315af3
|
>>>>>>> 0372ba2188bd2871972f16a8a4f572982e315af3
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<<<<<<< HEAD
|
<<<<<<< HEAD
|
||||||
[]
|
[]
|
||||||
=======
|
=======
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "",
|
"name": "",
|
||||||
"title": "Warehouse Dock",
|
"title": "Warehouse Dock",
|
||||||
"extension": "3844",
|
"extension": "3844",
|
||||||
"exterior": ""
|
"exterior": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
>>>>>>> 0372ba2188bd2871972f16a8a4f572982e315af3
|
>>>>>>> 0372ba2188bd2871972f16a8a4f572982e315af3
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<<<<<<< HEAD
|
<<<<<<< HEAD
|
||||||
[]
|
[]
|
||||||
=======
|
=======
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "",
|
"name": "",
|
||||||
"title": "Slot Tech Supervisor",
|
"title": "Slot Tech Supervisor",
|
||||||
"extension": "3843",
|
"extension": "3843",
|
||||||
"exterior": ""
|
"exterior": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
>>>>>>> 0372ba2188bd2871972f16a8a4f572982e315af3
|
>>>>>>> 0372ba2188bd2871972f16a8a4f572982e315af3
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue