First screen access buttons
August 7, 2025 · AI Conversations
Reload Events
Scan result
×
No scans yet
Scan Next
or
Set Code Manually
<script>
</script>
<script>
</script>
<script>
</script>
<script>
</script>
I want first screen will be Button for Staff access and other is customer access
Here’s how you can modify your HTML to add the **first screen** with two buttons:
—
### ✅ Steps:
1. **Wrap your current content in a hidden container**.
2. **Add a new container** for the first screen with two buttons.
3. **Use jQuery or vanilla JS** to toggle views based on button clicks.
—
### 🔧 Updated HTML with Two Access Buttons on First Screen:
<body>
<!-- First Screen: Access Choice -->
<div class="access-choice-screen container-fluid text-center py-5">
<img src="img/logo.png" class="img-fluid mb-4" alt="logo" style="max-width: 250px;">
<h3 class="mb-4">Choose Access Type</h3>
<button class="btn btn-primary btn-lg btn-block mb-3" id="staff-access">Staff Access</button>
<button class="btn btn-secondary btn-lg btn-block" id="customer-access">Customer Access</button>
</div>
<!-- Main App Content (Initially Hidden) -->
<div class="app-screen container-fluid py-3 d-none">
<img src="img/logo.png" class="img-fluid px-5 mb-3" alt="logo">
<div class="reload-events btn btn-block btn-danger font-weight-bold mb-3">Reload Events</div>
<ul class="events list-group list-group-flush"></ul>
</div>
<!-- Modal and Scripts remain unchanged -->
<div class="modal fade" id="modal-scan-result" tabindex="-1" role="dialog" aria-labelledby="scan-result" aria-hidden="true">
...
</div>
<!-- Scripts -->
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.bundle.min.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<script>
$(document).ready(function () {
$('#staff-access, #customer-access').on('click', function () {
const accessType = $(this).attr('id') === 'staff-access' ? 'staff' : 'customer';
localStorage.setItem('access_type', accessType); // optionally store access type
$('.access-choice-screen').hide();
$('.app-screen').removeClass('d-none');
});
});
</script>
</body>
—
### 🧠 Notes:
– You can use `localStorage.getItem('access_type')` in your `index.js` file to detect whether it's a staff or customer and change behavior accordingly.
– The CSS class `d-none` (Bootstrap) is used to hide the app screen until one access type is selected.
Let me know if you want different views for customer vs. staff!
—
### ✅ Basic Bootstrap 4 Card Example:
<div class="card mb-3">
<div class="card-header bg-primary text-white">
Event Info
</div>
<div class="card-body">
<h5 class="card-title">Circus Show - London</h5>
<p class="card-text">Join us for an exciting night of entertainment and fun. Gates open at 6 PM.</p>
<a href="#" class="btn btn-danger">Book Ticket</a>
</div>
<div class="card-footer text-muted">
Date: 25 June 2025 | Time: 7:00 PM
</div>
</div>
—
### 🧩 Explanation:
– `card-header`: Top part of the card (optional).
– `card-body`: Main content, includes title, text, and button.
– `card-footer`: Bottom area for metadata or additional info.
—
### 💡 Add Multiple Cards in a Grid:
<div class="row">
<div class="col-md-4">
<!-- Card 1 -->
<div class="card mb-3">
<div class="card-body">
<h5 class="card-title">London Show</h5>
<p class="card-text">Starts at 7 PM</p>
<button class="btn btn-primary btn-sm">Details</button>
</div>
</div>
</div>
<div class="col-md-4">
<!-- Card 2 -->
<div class="card mb-3">
<div class="card-body">
<h5 class="card-title">Manchester Show</h5>
<p class="card-text">Starts at 6 PM</p>
<button class="btn btn-primary btn-sm">Details</button>
</div>
</div>
</div>
</div>
Let me know if you want the card design styled differently for customer or staff access.
—
### ✅ Updated HTML Snippet
Add this **below the access buttons** in your “:
<!-- Staff Login Form (Hidden Initially) -->
<div class="staff-login-screen container d-none py-5">
<h4 class="mb-4">Staff Login</h4>
<form id="staff-login-form">
<div class="form-group">
<label for="staff-email">Email address</label>
<input type="email" class="form-control" id="staff-email" placeholder="Enter email" required>
</div>
<div class="form-group">
<label for="staff-password">Password</label>
<input type="password" class="form-control" id="staff-password" placeholder="Password" required>
</div>
<button type="submit" class="btn btn-primary btn-block">Login</button>
<button type="button" class="btn btn-link btn-block text-danger mt-3" id="back-to-access">← Back</button>
</form>
</div>
—
### ✅ JavaScript Logic
Add this inside your “ tag at the bottom:
$(document).ready(function () {
// Handle Staff Access Click
$('#staff-access').on('click', function () {
$('.access-choice-screen').hide();
$('.staff-login-screen').removeClass('d-none');
});
// Handle Back Button
$('#back-to-access').on('click', function () {
$('.staff-login-screen').addClass('d-none');
$('.access-choice-screen').show();
});
// Optional: Handle Login Form Submit
$('#staff-login-form').on('submit', function (e) {
e.preventDefault();
const email = $('#staff-email').val();
const password = $('#staff-password').val();
// Add your real authentication logic here
if (email === 'staff@example.com' && password === '1234') {
alert('Login successful!');
$('.staff-login-screen').addClass('d-none');
$('.app-screen').removeClass('d-none');
} else {
alert('Invalid credentials');
}
});
});
—
### 🧠 Notes:
– Replace the alert and credential check with your real authentication.
– You can also add loader/validation messages as needed.
– Use `localStorage.setItem("access_type", "staff")` if needed later for access control.
Would you like to store login state or check it across app restarts too?
When the **Customer Access** button is clicked, we will:
– Hide the access choice screen.
– Show the `.app-screen` directly (which displays events).
When the **Staff Access** button is clicked:
– Show a login form with a Back button.
– On successful login, show the `.app-screen`.
—
### ✅ Updated Full Workflow JavaScript
Make sure this is at the bottom of your HTML before “:
<script>
$(document).ready(function () {
// Customer Access
$('#customer-access').on('click', function () {
$('.access-choice-screen').hide();
$('.app-screen').removeClass('d-none');
localStorage.setItem('access_type', 'customer');
});
// Staff Access (show login screen)
$('#staff-access').on('click', function () {
$('.access-choice-screen').hide();
$('.staff-login-screen').removeClass('d-none');
});
// Back Button from Staff Login
$('#back-to-access').on('click', function () {
$('.staff-login-screen').addClass('d-none');
$('.access-choice-screen').show();
});
// Staff Login Submit
$('#staff-login-form').on('submit', function (e) {
e.preventDefault();
const email = $('#staff-email').val();
const password = $('#staff-password').val();
// Dummy login check
if (email === 'staff@example.com' && password === '1234') {
alert('Login successful!');
$('.staff-login-screen').addClass('d-none');
$('.app-screen').removeClass('d-none');
localStorage.setItem('access_type', 'staff');
} else {
alert('Invalid credentials');
}
});
});
</script>
—
### ✅ Summary of What You Now Have:
| Button | Shows |
|——–|——-|
| **Staff Access** | Login form, then shows events on success |
| **Back** | Returns to main screen |
| **Customer Access** | Directly shows events screen (no login) |
—
Let me know if you want to:
– Add session persistence (auto-remember login).
– Customize views further for customer vs staff after login.
—
### ✅ Final Output:
Two cards side by side — one for **Door Staff**, one for **Customer**.
—
### 🔧 HTML:
<div class="container py-5 access-choice-screen">
<div class="row justify-content-center">
<!-- Staff Access Card -->
<div class="col-md-4 mb-4">
<div class="access-card text-center p-4 shadow-sm rounded">
<div class="icon mb-3">
<img src="img/ticket-icon.svg" alt="icon" width="40" />
</div>
<h5 class="font-weight-bold">Door Staff</h5>
<p class="text-muted mb-3">Check tickets and manage show entry</p>
<button class="btn btn-block btn-purple text-white" id="staff-access">
Access Door System
</button>
</div>
</div>
<!-- Customer Access Card -->
<div class="col-md-4 mb-4">
<div class="access-card text-center p-4 shadow-sm rounded">
<div class="icon mb-3">
<img src="img/customer-icon.svg" alt="icon" width="40" />
</div>
<h5 class="font-weight-bold">Customer</h5>
<p class="text-muted mb-3">Book tickets or view upcoming events</p>
<button class="btn btn-block btn-purple text-white" id="customer-access">
Continue as Customer
</button>
</div>
</div>
</div>
</div>
—
### 🎨 CSS (Add to your “ or CSS file):
.access-card {
background: #f9f9ff;
border: 1px solid #eee;
transition: box-shadow 0.3s ease;
}
.access-card:hover {
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
.btn-purple {
background-color: #5b28f2;
border: none;
}
.btn-purple:hover {
background-color: #4a1ed1;
}
—
### 🧠 Notes:
– Replace `img/ticket-icon.svg` and `img/customer-icon.svg` with your own icon files.
– Keep the same JavaScript logic (`#staff-access`, `#customer-access`) from earlier response — it will continue to work with this layout.
Would you like to animate the tab switch or add a fade-in effect on selection?