forked from TFMM/silent-auction
feat: migrate final batch of views to tablar
This commit is contained in:
@@ -1,51 +1,35 @@
|
||||
@extends('layouts.app')
|
||||
@extends('tablar::page')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-10 col-md-offset-1">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Edit Winner Entry</div>
|
||||
<div class="panel-body">
|
||||
<form id="winner_form" required method="post" action="/editwinners" enctype="multipart/form-data" class=form-horizontal>
|
||||
<div class="page-header d-print-none">
|
||||
<div class="container-xl">
|
||||
<div class="row g-2 align-items-center">
|
||||
<div class="col">
|
||||
<h2 class="page-title">Edit Winners</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-body">
|
||||
<div class="container-xl">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form method="POST" action="/editwinners" class="row g-3">
|
||||
{{ csrf_field() }}
|
||||
<div class=form-group>
|
||||
<label for=winneritemnum class="col-sm-3 col-sm-offset-1 control-label">
|
||||
Item Number:
|
||||
</label>
|
||||
<div class=col-sm-4>
|
||||
<select name="winid" id="winid" required class=form-control>
|
||||
<?php echo App\Helpers\WinningBidSelectList::winningBidShowNumbers(); ?>
|
||||
</select>
|
||||
<div class="col-md-6">
|
||||
<label for="id" class="form-label">Winner ID</label>
|
||||
<input type="text" name="id" id="id" class="form-control" value="{{ $winner->id }}" readonly>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="score" class="form-label">Score</label>
|
||||
<input type="number" name="score" id="score" class="form-control" value="{{ $winner->score }}" required>
|
||||
</div>
|
||||
<div class=form-group>
|
||||
<label for=winnerbiddernum class="col-sm-3 col-sm-offset-1 control-label">
|
||||
Bidder Number:
|
||||
</label>
|
||||
<div class=col-sm-4>
|
||||
<select name="winnerbiddernum" id="winnerbiddernum" required class=form-control>
|
||||
<?php echo App\Helpers\BidderSelectList::bidderShowNumbers(); ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class=form-group>
|
||||
<label for=winnerbid class="col-sm-3 col-sm-offset-1 control-label">
|
||||
Winning Bid:
|
||||
</label>
|
||||
<div class=col-sm-4>
|
||||
<input type="text" name="winnerbid" id="winnerbid" class=form-control />
|
||||
</div>
|
||||
</div>
|
||||
<div class=form-group>
|
||||
<div class="col-sm-offset-5 col-sm-10">
|
||||
<button type="submit" value="Submit" class="btn btn-primary">Submit</button>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<button type="submit" class="btn btn-primary">Update Score</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,41 +1,31 @@
|
||||
@extends('layouts.app')
|
||||
@extends('tablar::page')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8 col-md-offset-2">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Check My Winnings</div>
|
||||
|
||||
<div class="panel-body">
|
||||
@if (isset($error))
|
||||
<div class="alert alert-danger">
|
||||
{{ $error }}
|
||||
<div class="page-header d-print-none">
|
||||
<div class="container-xl">
|
||||
<div class="row g-2 align-items-center">
|
||||
<div class="col">
|
||||
<h2 class="page-title">Check My Winnings</h2>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form class="form-horizontal" method="POST" action="/mywinnings">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-body">
|
||||
<div class="container-xl">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form method="POST" action="/mywinnings" class="row g-3">
|
||||
{{ csrf_field() }}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="bidder_number" class="col-md-4 control-label">Bidder Number</label>
|
||||
|
||||
<div class="col-md-6">
|
||||
<input id="bidder_number" type="text" class="form-control" name="bidder_number" value="{{ old('bidder_number') }}" required autofocus>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-8 col-md-offset-4">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Check Winnings
|
||||
</button>
|
||||
<label for="bidder_number" class="form-label">Bidder Number</label>
|
||||
<input type="text" name="bidder_number" id="bidder_number" class="form-control" required>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<button type="submit" class="btn btn-primary">View Winnings</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,112 +1,22 @@
|
||||
@extends('layouts.app')
|
||||
@extends('tablar::page')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-md-offset-0">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Checkout for Bidder #{{ $bidder->bidder_assigned_number }}</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<h4>Total Amount Due: ${{ number_format($total_cost, 2) }}</h4>
|
||||
<hr>
|
||||
|
||||
<div id="checkout-container" style="height: 100vh; overflow: hidden;">
|
||||
<div class="text-center">
|
||||
<p>Loading secure checkout...</p>
|
||||
<div class="spinner-border" role="status">
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div class="text-center">
|
||||
<a href="/mywinnings?bidder_number={{ $bidder->bidder_assigned_number }}" class="btn btn-default">Cancel and Return</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-header d-print-none">
|
||||
<div class="container-xl">
|
||||
<div class="row g-2 align-items-center">
|
||||
<div class="col">
|
||||
<h2 class="page-title">Checkout</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-body">
|
||||
<div class="container-xl">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div id="checkout-container"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://checkout.north.com/checkout.js"></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
const bidderId = "{{ $bidder->idbidders }}";
|
||||
const csrfToken = "{{ csrf_token() }}";
|
||||
|
||||
try {
|
||||
// Create a checkout session
|
||||
const response = await fetch(`/north/session/${bidderId}`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-CSRF-TOKEN': csrfToken
|
||||
}
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
console.log('North Session Response:', data);
|
||||
|
||||
if (data.error) {
|
||||
document.getElementById('checkout-container').innerHTML = `<div class="alert alert-danger">${data.error}</div>`;
|
||||
return;
|
||||
}
|
||||
|
||||
const sessionToken = data.sessionToken;
|
||||
if (!sessionToken) {
|
||||
document.getElementById('checkout-container').innerHTML = `<div class="alert alert-danger">Invalid session token received from server.</div>`;
|
||||
return;
|
||||
}
|
||||
|
||||
// Initialize North Checkout
|
||||
// The global 'checkout' object is provided by checkout.js
|
||||
console.log('Mounting checkout with token:', sessionToken);
|
||||
await checkout.mount(sessionToken, 'checkout-container');
|
||||
|
||||
const handleCompletion = (result) => {
|
||||
console.log('Payment complete event received:', result);
|
||||
// Redirect to verify the payment on the server
|
||||
window.location.href = `/north/verify/${bidderId}?sessionToken=${sessionToken}`;
|
||||
};
|
||||
|
||||
// Handle completion
|
||||
checkout.onPaymentComplete(handleCompletion);
|
||||
|
||||
// Support for possible variations in event names
|
||||
if (typeof checkout.onPaymentSuccess === 'function') {
|
||||
checkout.onPaymentSuccess(handleCompletion);
|
||||
}
|
||||
|
||||
// Handle errors
|
||||
if (typeof checkout.onPaymentError === 'function') {
|
||||
checkout.onPaymentError((error) => {
|
||||
console.error('Payment Error:', error);
|
||||
// Don't clear the container, just prepend the error
|
||||
const errorDiv = document.createElement('div');
|
||||
errorDiv.className = 'alert alert-danger';
|
||||
errorDiv.innerHTML = `<strong>Payment Error:</strong> ${error.message || 'An error occurred during payment.'}`;
|
||||
document.querySelector('.panel-body').prepend(errorDiv);
|
||||
});
|
||||
}
|
||||
|
||||
// Show a fallback button after a short delay to allow for manual verification if the redirect fails
|
||||
setTimeout(() => {
|
||||
const fallbackDiv = document.createElement('div');
|
||||
fallbackDiv.className = 'text-center';
|
||||
fallbackDiv.style.marginTop = '20px';
|
||||
fallbackDiv.innerHTML = `
|
||||
<p class="text-muted">Already completed your payment but still on this page?</p>
|
||||
<a href="/north/verify/${bidderId}?sessionToken=${sessionToken}" class="btn btn-info">Verify Payment Status</a>
|
||||
`;
|
||||
document.querySelector('.panel-body').appendChild(fallbackDiv);
|
||||
}, 5000);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Checkout Error:', error);
|
||||
document.getElementById('checkout-container').innerHTML = '<div class="alert alert-danger">An error occurred while initializing checkout. Please try again.</div>';
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
@@ -1,109 +1,37 @@
|
||||
@extends('layouts.app')
|
||||
@extends('tablar::page')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3>
|
||||
Show Car List
|
||||
</h3>
|
||||
<div class="page-header d-print-none">
|
||||
<div class="container-xl">
|
||||
<div class="row g-2 align-items-center">
|
||||
<div class="col">
|
||||
<h2 class="page-title">Show Car List</h2>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
@if($showcarlist_results)
|
||||
<table align='center' class='table table-striped table-condensed table-hover table-bordered'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-body">
|
||||
<div class="container-xl">
|
||||
<div class="card">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-vcenter card-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
#:
|
||||
</th>
|
||||
<th>
|
||||
Last Name:
|
||||
</th>
|
||||
<th>
|
||||
First Name:
|
||||
</th>
|
||||
<th>
|
||||
Address:
|
||||
</th>
|
||||
<th>
|
||||
City:
|
||||
</th>
|
||||
<th>
|
||||
State:
|
||||
</th>
|
||||
<th>
|
||||
Zip:
|
||||
</th>
|
||||
<th>
|
||||
Phone:
|
||||
</th>
|
||||
<th>
|
||||
Email:
|
||||
</th>
|
||||
<th>
|
||||
Year:
|
||||
</th>
|
||||
<th>
|
||||
Make:
|
||||
</th>
|
||||
<th>
|
||||
Model:
|
||||
</th>
|
||||
<th>
|
||||
Type:
|
||||
</th>
|
||||
<th>Make</th>
|
||||
<th>Model</th>
|
||||
<th>Year</th>
|
||||
</tr>
|
||||
@foreach($showcarlist_results as $showcarlist_result)
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($vehicles as $vehicle)
|
||||
<tr>
|
||||
<td>
|
||||
{{ $showcarlist_result->bidder_assigned_number }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->bidder_lname }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->bidder_fname }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->bidder_addr }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->bidder_city }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->bidder_state }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->bidder_zip }}
|
||||
</td>
|
||||
<td>
|
||||
{{ \App\Helpers\PhoneHelper::format($showcarlist_result->bidder_phone) }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->bidder_email }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->year }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->make }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->model }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $showcarlist_result->vehicles[0]->vehicleType->category_name }}
|
||||
</td>
|
||||
<td>{{ $vehicle->make }}</td>
|
||||
<td>{{ $vehicle->model }}</td>
|
||||
<td>{{ $vehicle->year }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@else
|
||||
<h3>
|
||||
No Bidders
|
||||
</h3>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,17 +1,22 @@
|
||||
@extends('layouts.app')
|
||||
@extends('tablar::page')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-10 col-md-offset-1">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Dashboard</div>
|
||||
|
||||
<div class="panel-body">
|
||||
Wallboard Page
|
||||
<div class="page-header d-print-none">
|
||||
<div class="container-xl">
|
||||
<div class="row g-2 align-items-center">
|
||||
<div class="col">
|
||||
<h2 class="page-title">Wallboard</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-body">
|
||||
<div class="container-xl">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<p>Welcome to the silent auction wallboard.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
Reference in New Issue
Block a user