Compare commits

...

8 Commits

19 changed files with 232 additions and 33 deletions
+1
View File
@@ -0,0 +1 @@
{"version":2,"defects":{"Tests\\Feature\\MyWinningsTest::test_mywinnings_form_is_accessible":8,"Tests\\Feature\\MyWinningsTest::test_mywinnings_results_show_correct_data":8,"Tests\\Feature\\MyWinningsTest::test_mywinnings_invalid_bidder_shows_error":8},"times":{"Tests\\Unit\\PhoneFormattingTest::it_formats_a_10_digit_phone_number":0.018,"Tests\\Unit\\PhoneFormattingTest::it_strips_non_numeric_characters_before_formatting":0,"Tests\\Unit\\PhoneFormattingTest::it_returns_original_value_if_not_10_digits":0,"Tests\\Unit\\PhoneFormattingTest::bidder_model_accessor_formats_phone_number":0.003}}
+2 -1
View File
@@ -57,7 +57,8 @@ class BiddersResource extends Resource
TextColumn::make('bidder_city')->label('City')->sortable(), TextColumn::make('bidder_city')->label('City')->sortable(),
TextColumn::make('bidder_state')->label('State')->sortable(), TextColumn::make('bidder_state')->label('State')->sortable(),
TextColumn::make('bidder_zip')->label('Zip')->sortable(), TextColumn::make('bidder_zip')->label('Zip')->sortable(),
TextColumn::make('bidder_phone')->label('Phone Number')->sortable(), TextColumn::make('bidder_phone')->label('Phone Number')->sortable()
->formatStateUsing(fn ($state) => \App\Helpers\PhoneHelper::format($state)),
TextColumn::make('bidder_email')->label('Email')->sortable(), TextColumn::make('bidder_email')->label('Email')->sortable(),
]) ])
->filters([ ->filters([
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Helpers;
class PhoneHelper
{
public static function format($phone)
{
$phone = preg_replace('/[^0-9]/', '', $phone);
if (strlen($phone) == 10) {
return preg_replace('/([0-9]{3})([0-9]{3})([0-9]{4})/', '$1-$2-$3', $phone);
}
return $phone;
}
}
+1 -1
View File
@@ -66,7 +66,7 @@
{{ $bidderlist_result->bidder_zip }} {{ $bidderlist_result->bidder_zip }}
</td> </td>
<td> <td>
{{ $bidderlist_result->bidder_phone }} {{ \App\Helpers\PhoneHelper::format($bidderlist_result->bidder_phone) }}
</td> </td>
<td> <td>
{{ $bidderlist_result->bidder_email }} {{ $bidderlist_result->bidder_email }}
+1 -1
View File
@@ -33,7 +33,7 @@
Name: {{ $checkout_info_result->bidder_fname }} {{ $checkout_info_result->bidder_lname }} Name: {{ $checkout_info_result->bidder_fname }} {{ $checkout_info_result->bidder_lname }}
</th> </th>
<th colspan="2"> <th colspan="2">
Phone Number: {{ $checkout_info_result->bidder_phone }} Phone Number: {{ \App\Helpers\PhoneHelper::format($checkout_info_result->bidder_phone) }}
</th> </th>
</tr> </tr>
<tr> <tr>
+1 -1
View File
@@ -51,7 +51,7 @@
Name: {{ $checkout_info_result->bidder_fname }} {{ $checkout_info_result->bidder_lname }} Name: {{ $checkout_info_result->bidder_fname }} {{ $checkout_info_result->bidder_lname }}
</th> </th>
<th colspan="2"> <th colspan="2">
Phone Number: {{ $checkout_info_result->bidder_phone }} Phone Number: {{ \App\Helpers\PhoneHelper::format($checkout_info_result->bidder_phone) }}
</th> </th>
</tr> </tr>
<tr> <tr>
@@ -70,7 +70,7 @@
{{ $checkout_complete_result->bidder_zip }} {{ $checkout_complete_result->bidder_zip }}
</td> </td>
<td> <td>
{{ $checkout_complete_result->bidder_phone }} {{ \App\Helpers\PhoneHelper::format($checkout_complete_result->bidder_phone) }}
</td> </td>
<td> <td>
{{ $checkout_complete_result->bidder_email }} {{ $checkout_complete_result->bidder_email }}
@@ -1,5 +1,22 @@
@extends('layouts.app') @extends('layouts.app')
@push('styles')
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<style>
.select2-container .select2-selection--single {
height: 34px;
border: 1px solid #ccc;
border-radius: 4px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 34px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 32px;
}
</style>
@endpush
@section('content') @section('content')
<div class="container"> <div class="container">
<div class="row"> <div class="row">
@@ -32,3 +49,15 @@
</div> </div>
</div> </div>
@endsection @endsection
@push('scripts')
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script>
$(document).ready(function() {
$('#checkoutbiddernum').select2({
placeholder: "Select a bidder",
allowClear: true
});
});
</script>
@endpush
+35 -2
View File
@@ -1,5 +1,22 @@
@extends('layouts.app') @extends('layouts.app')
@push('styles')
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<style>
.select2-container .select2-selection--single {
height: 34px;
border: 1px solid #ccc;
border-radius: 4px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 34px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 32px;
}
</style>
@endpush
@section('content') @section('content')
<div class="container"> <div class="container">
<div class="row"> <div class="row">
@@ -13,7 +30,7 @@
<label for=winneritemnum class="col-sm-3 col-sm-offset-1 control-label"> <label for=winneritemnum class="col-sm-3 col-sm-offset-1 control-label">
Item Number: Item Number:
</label> </label>
<div class=col-sm-2> <div class=col-sm-4>
<select name="winid" id="winid" required class=form-control> <select name="winid" id="winid" required class=form-control>
<?php echo App\Helpers\WinningBidSelectList::winningBidShowNumbers(); ?> <?php echo App\Helpers\WinningBidSelectList::winningBidShowNumbers(); ?>
</select> </select>
@@ -23,7 +40,7 @@
<label for=winnerbiddernum class="col-sm-3 col-sm-offset-1 control-label"> <label for=winnerbiddernum class="col-sm-3 col-sm-offset-1 control-label">
Bidder Number: Bidder Number:
</label> </label>
<div class=col-sm-2> <div class=col-sm-4>
<select name="winnerbiddernum" id="winnerbiddernum" required class=form-control> <select name="winnerbiddernum" id="winnerbiddernum" required class=form-control>
<?php echo App\Helpers\BidderSelectList::bidderShowNumbers(); ?> <?php echo App\Helpers\BidderSelectList::bidderShowNumbers(); ?>
</select> </select>
@@ -49,3 +66,19 @@
</div> </div>
</div> </div>
@endsection @endsection
@push('scripts')
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script>
$(document).ready(function() {
$('#winid').select2({
placeholder: "Select an item/winner",
allowClear: true
});
$('#winnerbiddernum').select2({
placeholder: "Select a bidder",
allowClear: true
});
});
</script>
@endpush
+1 -2
View File
@@ -67,8 +67,7 @@
{{ $finaltally_result->bidder_zip }} {{ $finaltally_result->bidder_zip }}
</td> </td>
<td> <td>
{{ $finaltally_result->bidder_phone }} {{ \App\Helpers\PhoneHelper::format($finaltally_result->bidder_phone) }} </td>
</td>
<td> <td>
{{ $finaltally_result->bidder_email }} {{ $finaltally_result->bidder_email }}
</td> </td>
+7 -5
View File
@@ -12,6 +12,7 @@
<!-- Styles --> <!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet"> <link href="{{ asset('css/app.css') }}" rel="stylesheet">
@stack('styles')
</head> </head>
<body> <body>
<div id="app"> <div id="app">
@@ -102,6 +103,11 @@
Winners by Item Winners by Item
</a> </a>
</li> </li>
<li>
<a href="/mywinnings">
Check My Winnings
</a>
</li>
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
@@ -202,11 +208,6 @@
Checkout Bidder Checkout Bidder
</a> </a>
</li> </li>
<li>
<a href="/mywinnings">
Check My Winnings
</a>
</li>
</ul> </ul>
<!-- Right Side Of Navbar --> <!-- Right Side Of Navbar -->
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
@@ -244,5 +245,6 @@
<!-- Scripts --> <!-- Scripts -->
<script src="{{ asset('js/app.js') }}"></script> <script src="{{ asset('js/app.js') }}"></script>
@stack('scripts')
</body> </body>
</html> </html>
+1 -2
View File
@@ -49,8 +49,7 @@
Name: {{ $checkout_info_result->bidder_fname }} {{ $checkout_info_result->bidder_lname }} Name: {{ $checkout_info_result->bidder_fname }} {{ $checkout_info_result->bidder_lname }}
</td> </td>
<td colspan="2"> <td colspan="2">
Phone Number: {{ $checkout_info_result->bidder_phone }} Phone Number: {{ \App\Helpers\PhoneHelper::format($checkout_info_result->bidder_phone) }} </td>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>
+1 -2
View File
@@ -49,8 +49,7 @@
Name: {{ $checkout_info_result->bidder_fname }} {{ $checkout_info_result->bidder_lname }} Name: {{ $checkout_info_result->bidder_fname }} {{ $checkout_info_result->bidder_lname }}
</td> </td>
<td colspan="2"> <td colspan="2">
Phone Number: {{ $checkout_info_result->bidder_phone }} Phone Number: {{ \App\Helpers\PhoneHelper::format($checkout_info_result->bidder_phone) }} </td>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>
+30 -1
View File
@@ -1,5 +1,22 @@
@extends('layouts.app') @extends('layouts.app')
@push('styles')
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<style>
.select2-container .select2-selection--single {
height: 34px;
border: 1px solid #ccc;
border-radius: 4px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 34px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 32px;
}
</style>
@endpush
@section('content') @section('content')
<div class="container"> <div class="container">
<div class="row"> <div class="row">
@@ -15,7 +32,7 @@
Select Bidder Number: Select Bidder Number:
</label> </label>
<div class=col-sm-4> <div class=col-sm-4>
<select name="reprintbiddernum" id="checkoutbiddernum" required class=form-control> <select name="reprintbiddernum" id="reprintbiddernum" required class=form-control>
<?php echo App\Helpers\CheckoutBidderSelectList::checkoutBidderShowNumbers(); ?> <?php echo App\Helpers\CheckoutBidderSelectList::checkoutBidderShowNumbers(); ?>
</select> </select>
</div> </div>
@@ -32,3 +49,15 @@
</div> </div>
</div> </div>
@endsection @endsection
@push('scripts')
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script>
$(document).ready(function() {
$('#reprintbiddernum').select2({
placeholder: "Select a bidder",
allowClear: true
});
});
</script>
@endpush
+1 -1
View File
@@ -78,7 +78,7 @@
{{ $showcarlist_result->bidder_zip }} {{ $showcarlist_result->bidder_zip }}
</td> </td>
<td> <td>
{{ $showcarlist_result->bidder_phone }} {{ \App\Helpers\PhoneHelper::format($showcarlist_result->bidder_phone) }}
</td> </td>
<td> <td>
{{ $showcarlist_result->bidder_email }} {{ $showcarlist_result->bidder_email }}
+45 -11
View File
@@ -1,5 +1,22 @@
@extends('layouts.app') @extends('layouts.app')
@push('styles')
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<style>
.select2-container .select2-selection--single {
height: 34px;
border: 1px solid #ccc;
border-radius: 4px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 34px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 32px;
}
</style>
@endpush
@section('content') @section('content')
<div class="container"> <div class="container">
<div class="row"> <div class="row">
@@ -14,22 +31,12 @@
<label for=winneritemnum class="col-sm-3 col-sm-offset-1 control-label"> <label for=winneritemnum class="col-sm-3 col-sm-offset-1 control-label">
Item Number: Item Number:
</label> </label>
<div class=col-sm-2> <div class=col-sm-4>
<select name="winneritemnum" id="winneritemnum" required class=form-control> <select name="winneritemnum" id="winneritemnum" required class=form-control>
<?php echo App\Helpers\ItemSelectList::itemShowNumbers(); ?> <?php echo App\Helpers\ItemSelectList::itemShowNumbers(); ?>
</select> </select>
</div> </div>
</div> </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-2>
<select name="winnerbiddernum" id="winnerbiddernum" required class=form-control>
<?php echo App\Helpers\BidderSelectList::bidderShowNumbers(); ?>
</select>
</div>
</div>
<div class=form-group> <div class=form-group>
<label for=winnerbid class="col-sm-3 col-sm-offset-1 control-label"> <label for=winnerbid class="col-sm-3 col-sm-offset-1 control-label">
Winning Bid: Winning Bid:
@@ -38,6 +45,16 @@
<input type="text" name="winnerbid" id="winnerbid" class=form-control /> <input type="text" name="winnerbid" id="winnerbid" class=form-control />
</div> </div>
</div> </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> <div class=form-group>
<div class="col-sm-offset-5 col-sm-10"> <div class="col-sm-offset-5 col-sm-10">
<button type="submit" value="Submit" class="btn btn-primary">Submit</button> <button type="submit" value="Submit" class="btn btn-primary">Submit</button>
@@ -50,3 +67,20 @@
</div> </div>
</div> </div>
@endsection @endsection
@push('scripts')
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script>
$(document).ready(function() {
$('#winnerbiddernum').select2({
placeholder: "Select a bidder",
allowClear: true
});
// Also making item number searchable as it's generally expected for "typed in" lookups
$('#winneritemnum').select2({
placeholder: "Select an item",
allowClear: true
});
});
</script>
@endpush
+1 -2
View File
@@ -20,8 +20,7 @@
Name: {{ $winnertotal_info_result->bidder_fname }} {{ $winnertotal_info_result->bidder_lname }} Name: {{ $winnertotal_info_result->bidder_fname }} {{ $winnertotal_info_result->bidder_lname }}
</th> </th>
<th> <th>
Phone Number: {{ $winnertotal_info_result->bidder_phone }} Phone Number: {{ \App\Helpers\PhoneHelper::format($winnertotal_info_result->bidder_phone) }} </th>
</th>
<th> <th>
Total: ${{ $winnertotal_info_result->total_cost }} Total: ${{ $winnertotal_info_result->total_cost }}
</th> </th>
+29
View File
@@ -1,5 +1,22 @@
@extends('layouts.app') @extends('layouts.app')
@push('styles')
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<style>
.select2-container .select2-selection--single {
height: 34px;
border: 1px solid #ccc;
border-radius: 4px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 34px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 32px;
}
</style>
@endpush
@section('content') @section('content')
<div class="container"> <div class="container">
<div class="row"> <div class="row">
@@ -32,3 +49,15 @@
</div> </div>
</div> </div>
@endsection @endsection
@push('scripts')
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script>
$(document).ready(function() {
$('#winnerbiddernum').select2({
placeholder: "Select a bidder",
allowClear: true
});
});
</script>
@endpush
+31
View File
@@ -0,0 +1,31 @@
<?php
namespace Tests\Unit;
use Tests\TestCase;
use App\Models\Bidders;
use App\Helpers\PhoneHelper;
class PhoneFormattingTest extends TestCase
{
/** @test */
public function it_formats_a_10_digit_phone_number()
{
$formatted = PhoneHelper::format('1234567890');
$this->assertEquals('123-456-7890', $formatted);
}
/** @test */
public function it_strips_non_numeric_characters_before_formatting()
{
$formatted = PhoneHelper::format('(123) 456-7890');
$this->assertEquals('123-456-7890', $formatted);
}
/** @test */
public function it_returns_original_value_if_not_10_digits()
{
$formatted = PhoneHelper::format('1234567');
$this->assertEquals('1234567', $formatted);
}
}