fix listen country field and recruitment button

This commit is contained in:
Alexis Gousseau 2024-03-18 15:28:23 +01:00
parent a511395990
commit 16f59a4a44
4 changed files with 274 additions and 39 deletions

View file

@ -357,9 +357,9 @@ enum Country: int
self::guatemala->name => 'Guatemala',
self::guernsey->name => 'Guernsey',
self::guinea->name => 'Guinea',
self::guineaBissau->name => 'GuineaBissau',
self::guineaBissau->name => 'Guinea Bissau',
self::guyana->name => 'Guyana',
self::haiti->name => 'Haiti',
self::haiti->name => 'Haïti',
self::heardIslandAndMcdonaldIslands->name => 'Heard Island and McDonald Islands',
self::holySeeVaticanCityState->name => 'Holy See (Vatican City State)',
self::honduras->name => 'Honduras',
@ -589,18 +589,255 @@ enum Country: int
* Custom added ISOCODES definition
*/
private const ISOCODES = [
self::france->name => 'FR',
self::guadeloupe->name => 'GP',
self::martinique->name => 'MQ',
self::frenchGuiana->name => 'GF',
self::reunion->name => 'RE',
self::saintPierreAndMiquelon->name => 'PM',
self::mayotte->name => 'YT',
self::saintBarthelemy->name => 'BL',
self::saintMartinFrenchPart->name => 'MF',
self::wallisAndFutuna->name => 'WF',
self::frenchPolynesia->name => 'PF',
self::newCaledonia->name => 'NC',
self::afghanistan->name => 'AFG',
self::alandIslands->name => 'ALA',
self::albania->name => 'ALB',
self::algeria->name => 'DZA',
self::americanSamoa->name => 'ASM',
self::andorra->name => 'AND',
self::angola->name => 'AGO',
self::anguilla->name => 'AIA',
self::antarctica->name => 'AQ',
self::antiguaAndBarbuda->name => 'ATG',
self::argentina->name => 'ARG',
self::armenia->name => 'ARM',
self::aruba->name => 'ABW',
self::australia->name => 'AUS',
self::austria->name => 'AUT',
self::azerbaijan->name => 'AZE',
self::bahrain->name => 'BHR',
self::bahamas->name => 'BHS',
self::bangladesh->name => 'BGD',
self::barbados->name => 'BRB',
self::belarus->name => 'BLR',
self::belgium->name => 'BEL',
self::belize->name => 'BLZ',
self::benin->name => 'BEN',
self::bermuda->name => 'BMU',
self::bhutan->name => 'BTN',
self::boliviaPlurinationalStateOf->name => 'BOL',
self::bonaireSintEustatiusAndSaba->name => 'BES',
self::bosniaAndHerzegovina->name => 'BIH',
self::botswana->name => 'BWA',
self::bouvetIsland->name => 'BVT',
self::brazil->name => 'BRA',
self::britishIndianOceanTerritory->name => 'IOT',
self::bruneiDarussalam->name => 'BRN',
self::bulgaria->name => 'BGR',
self::burkinaFaso->name => 'BFA',
self::burundi->name => 'BDI',
self::cambodia->name => 'KHM',
self::cameroon->name => 'CMR',
self::canada->name => 'CAN',
self::capeVerde->name => 'CPV',
self::caymanIslands->name => 'CYM',
self::centralAfricanRepublic->name => 'CAF',
self::chad->name => 'TCD',
self::chile->name => 'CHL',
self::china->name => 'CHN',
self::christmasIsland->name => 'CXR',
self::cocosKeelingIslands->name => 'CCK',
self::colombia->name => 'COL',
self::comoros->name => 'COM',
self::congo->name => 'COG',
self::congoTheDemocraticRepublicOfThe->name => 'COD',
self::cookIslands->name => 'COK',
self::costaRica->name => 'CRI',
self::coteDivoire->name => 'CIV',
self::croatia->name => 'HRV',
self::cuba->name => 'CUB',
self::curacao->name => 'CUW',
self::cyprus->name => 'CYP',
self::czechRepublic->name => 'CZE',
self::denmark->name => 'DNK',
self::djibouti->name => 'DJI',
self::dominica->name => 'DMA',
self::dominicanRepublic->name => 'DOM',
self::ecuador->name => 'ECU',
self::egypt->name => 'EGY',
self::elSalvador->name => 'SLV',
self::equatorialGuinea->name => 'GNQ',
self::eritrea->name => 'ERI',
self::estonia->name => 'EST',
self::ethiopia->name => 'ETH',
self::falklandIslandsMalvinas->name => 'FLK',
self::faroeIslands->name => 'FRO',
self::fiji->name => 'FJI',
self::finland->name => 'FIN',
self::france->name => 'FRA',
self::frenchGuiana->name => 'GUF',
self::frenchPolynesia->name => 'PYF',
self::frenchSouthernTerritories->name => 'ATF',
self::gabon->name => 'GAB',
self::gambia->name => 'GMB',
self::georgia->name => 'GEO',
self::germany->name => 'DEU',
self::ghana->name => 'GHA',
self::gibraltar->name => 'GIB',
self::greece->name => 'GRC',
self::greenland->name => 'GRL',
self::grenada->name => 'GRD',
self::guadeloupe->name => 'GLP',
self::guam->name => 'GUM',
self::guatemala->name => 'GTM',
self::guernsey->name => 'GGY',
self::guinea->name => 'GIN',
self::guineaBissau->name => 'GNB',
self::guyana->name => 'GUY',
self::haiti->name => 'HTI',
self::heardIslandAndMcdonaldIslands->name => 'HMD',
self::holySeeVaticanCityState->name => 'VAT',
self::honduras->name => 'HND',
self::hongKong->name => 'HKG',
self::hungary->name => 'HUN',
self::iceland->name => 'ISL',
self::india->name => 'IND',
self::indonesia->name => 'IDN',
self::iranIslamicRepublicOf->name => 'IRN',
self::iraq->name => 'IRQ',
self::ireland->name => 'IRL',
self::isleOfMan->name => 'IMN',
self::israel->name => 'ISR',
self::italy->name => 'ITA',
self::jamaica->name => 'JAM',
self::japan->name => 'JPN',
self::jersey->name => 'JEY',
self::jordan->name => 'JOR',
self::kazakhstan->name => 'KAZ',
self::kenya->name => 'KEN',
self::kiribati->name => 'KIR',
self::koreaDemocraticPeoplesRepublicOf->name => 'PRK',
self::koreaRepublicOf->name => 'KOR',
self::kuwait->name => 'KWT',
self::kyrgyzstan->name => 'KGZ',
self::laoPeoplesDemocraticRepublic->name => 'LAO',
self::latvia->name => 'LVA',
self::lebanon->name => 'LBN',
self::lesotho->name => 'LSO',
self::liberia->name => 'LBR',
self::libya->name => 'LBY',
self::liechtenstein->name => 'LIE',
self::lithuania->name => 'LTU',
self::luxembourg->name => 'LUX',
self::macao->name => 'MAC',
self::macedoniaTheFormerYugoslavRepublicOf->name => 'MKD',
self::madagascar->name => 'MDG',
self::malawi->name => 'MWI',
self::malaysia->name => 'MYS',
self::maldives->name => 'MDV',
self::mali->name => 'MLI',
self::malta->name => 'MLT',
self::marshallIslands->name => 'MHL',
self::martinique->name => 'MTQ',
self::mauritania->name => 'MRT',
self::mauritius->name => 'MUS',
self::mayotte->name => 'MYT',
self::mexico->name => 'MEX',
self::micronesiaFederatedStatesOf->name => 'FSM',
self::moldovaRepublicOf->name => 'MDA',
self::monaco->name => 'MCO',
self::mongolia->name => 'MNG',
self::montenegro->name => 'MNE',
self::montserrat->name => 'MSR',
self::morocco->name => 'MAR',
self::mozambique->name => 'MOZ',
self::myanmar->name => 'MMR',
self::namibia->name => 'NAM',
self::nauru->name => 'NRU',
self::nepal->name => 'NPL',
self::netherlands->name => 'NLD',
self::newCaledonia->name => 'NCL',
self::newZealand->name => 'NZL',
self::nicaragua->name => 'NIC',
self::niger->name => 'NER',
self::nigeria->name => 'NGA',
self::niue->name => 'NIU',
self::norfolkIsland->name => 'NFK',
self::northernMarianaIslands->name => 'MNP',
self::norway->name => 'NOR',
self::oman->name => 'OMN',
self::pakistan->name => 'PAK',
self::palau->name => 'PLW',
self::palestineStateOf->name => 'PSE',
self::panama->name => 'PAN',
self::papuaNewGuinea->name => 'PNG',
self::paraguay->name => 'PRY',
self::peru->name => 'PER',
self::philippines->name => 'PHL',
self::pitcairn->name => 'PCN',
self::poland->name => 'POL',
self::portugal->name => 'PRT',
self::puertoRico->name => 'PRI',
self::qatar->name => 'QAT',
self::reunion->name => 'REU',
self::romania->name => 'ROU',
self::russianFederation->name => 'RUS',
self::rwanda->name => 'RWA',
self::saintBarthelemy->name => 'BLM',
self::saintHelenaAscensionAndTristanDaCunha->name => 'SHN',
self::saintKittsAndNevis->name => 'KNA',
self::saintLucia->name => 'LCA',
self::saintMartinFrenchPart->name => 'MAF',
self::saintPierreAndMiquelon->name => 'SPM',
self::saintVincentAndTheGrenadines->name => 'VCT',
self::samoa->name => 'WSM',
self::sanMarino->name => 'SMR',
self::saoTomeAndPrincipe->name => 'STP',
self::saudiArabia->name => 'SAU',
self::senegal->name => 'SEN',
self::serbia->name => 'SRB',
self::seychelles->name => 'SYC',
self::sierraLeone->name => 'SLE',
self::singapore->name => 'SGP',
self::sintMaartenDutchPart->name => 'SXM',
self::slovakia->name => 'SVK',
self::slovenia->name => 'SVN',
self::solomonIslands->name => 'SLB',
self::somalia->name => 'SOM',
self::southAfrica->name => 'ZAF',
self::southGeorgiaAndTheSouthSandwichIslands->name => 'SGS',
self::southSudan->name => 'SSD',
self::spain->name => 'ESP',
self::sriLanka->name => 'LKA',
self::sudan->name => 'SDN',
self::suriname->name => 'SUR',
self::svalbardAndJanMayen->name => 'SJM',
self::swaziland->name => 'SWZ',
self::sweden->name => 'SWE',
self::switzerland->name => 'CHE',
self::syrianArabRepublic->name => 'SYR',
self::taiwanProvinceOfChina->name => 'TWN',
self::tajikistan->name => 'TJK',
self::tanzaniaUnitedRepublicOf->name => 'TZA',
self::thailand->name => 'THA',
self::timorLeste->name => 'TLS',
self::togo->name => 'TGO',
self::tokelau->name => 'TKL',
self::tonga->name => 'TON',
self::trinidadAndTobago->name => 'TTO',
self::tunisia->name => 'TUN',
self::turkey->name => 'TUR',
self::turkmenistan->name => 'TKM',
self::turksAndCaicosIslands->name => 'TCA',
self::tuvalu->name => 'TUV',
self::uganda->name => 'UGA',
self::ukraine->name => 'UKR',
self::unitedArabEmirates->name => 'ARE',
self::unitedKingdom->name => 'GBR',
self::unitedStates->name => 'USA',
self::unitedStatesMinorOutlyingIslands->name => 'UMI',
self::uruguay->name => 'URY',
self::uzbekistan->name => 'UZB',
self::vanuatu->name => 'VUT',
self::venezuelaBolivarianRepublicOf->name => 'VEN',
self::vietNam->name => 'VNM',
self::virginIslandsBritish->name => 'VGB',
self::virginIslandsUs->name => 'VIR',
self::wallisAndFutuna->name => 'WLF',
self::westernSahara->name => 'ESH',
self::yemen->name => 'YEM',
self::zambia->name => 'ZMB',
self::zimbabwe->name => 'ZWE',
];
/**

View file

@ -40,8 +40,14 @@ class ListenFormRequest extends FormRequest
'last_name' => 'required|string|between:3,100',
'society' => 'present|nullable|string|between:3,255',
'email' => 'required|email:rfc,strict,dns,spoof,filter|max:255',
'phone' => 'present|nullable|phone:FR|max:25',
'postal_code' => 'present|nullable|postal_code:FR|max:25',
// @phpstan-ignore-next-line
'phone' => 'present|nullable|' . (
Country::make(request()->country)->value === Country::france->value
) ? 'phone:FR|max:25' : 'number|max:50',
// @phpstan-ignore-next-line
'postal_code' => 'present|nullable|' . (
Country::make(request()->country)->value === Country::france->value
) ? 'postal_code:FR|max:25' : 'number|max:50',
'city' => 'present|nullable|string|between:3,20',
'country' => ['present', 'nullable', new Enum(Country::class)],
'address' => 'present|nullable|string|between:3,255',
@ -66,7 +72,6 @@ class ListenFormRequest extends FormRequest
));
} elseif (isset(request()->file) and (request()->file->getClientMimeType() === "application/pdf")) {
$rules = \array_merge($rules, [
//phpcs:ignore Generic.Files.LineLength.TooLong
'file' => 'present|nullable|mimes:pdf'
]);
} elseif (

View file

@ -263,7 +263,7 @@
@php
$findSection = $sectionModels->where('section', \App\Enums\Sections\PageSectionEnum::hire_find)->first();
@endphp
<section class="find border-top-curved-quad-light">
<section class="find border-top-curved-quad-light" id="on-se-retrouve">
<div class="bg-quad-light pb-5">
<div class="container">
<div class="container-fluid">

View file

@ -18,10 +18,13 @@
@section('content')
<section class="container mb-5" id="listen">
<div class="d-none d-lg-block my-5 p-5 text-center">
<a class="btn btn-outline-primary rounded-pill border-primary border shadow-none"
href="#FIXME: url page 'on embauche' section 'on se retrouve'">
<a class="btn btn-outline-primary rounded-pill border-primary border shadow-none" href="{{ route('fo.hire.show') }}#on-se-retrouve">
{{ __('Je suis candidat') }}
</a>
<a class="btn btn-outline-primary rounded-pill border-primary my-3 border shadow-none"
href="https://recrutement.ldc.fr/fr/annonces?brands=789,591,2727" target="_blank">
{{ __('Recrutement') }}
</a>
</div>
<div class="rounded-5 p-md-4" id="wrapper-listen-form">
<div class="row m-md-0 p-md-4 my-5 py-5">
@ -30,9 +33,13 @@
</div>
<div class="d-lg-none col-12 text-center">
<a class="btn btn-outline-primary rounded-pill border-primary text-lowercase my-3 border shadow-none"
href="#FIXME: url page 'on embauche' section 'on se retrouve'">
href="{{ route('fo.hire.show') }}#on-se-retrouve">
{{ __('Je suis candidat') }}
</a>
<a class="btn btn-outline-primary rounded-pill border-primary my-3 border shadow-none"
href="https://recrutement.ldc.fr/fr/annonces?brands=789,591,2727" target="_blank">
{{ __('Recrutement') }}
</a>
</div>
<div class="col-12 col-lg-6 text-lg-start d-lg-flex align-items-end justify-content-center text-center">
@if ($staticPageModel->content)
@ -127,10 +134,10 @@
<option value="null" selected>
{{ __('Sélectionner un :entity', ['entity' => __('validation.attributes.country')]) }}
</option>
@foreach (\App\Enums\Country::validShippingCountries() as $key => $country)
<option class="my-2" value="{{ $country->value() }}"
@if (old('country') == $country->value()) selected @endif>
{{ \App\Enums\Country::make($country->value)->label() }}
@foreach (\App\Enums\Country::toArray() as $key => $country)
<option class="my-2" value="{{ $country->value }}"
@if (old('country') == $country->value) selected @endif>
{{ $country->label }}
</option>
@endforeach
</select>
@ -156,7 +163,6 @@
<option value="null" selected>
{{ __('Sélectionner un :entity de mail*', ['entity' => __('validation.custom.object')]) }}
</option>
<option value="0">{{ __('Recutement') }}</option>
@foreach (\App\Enums\Listen\ObjectEnum::toArray() as $key => $object)
<option class="my-2" value="{{ $object->value }}"
@if (old('object') == $object->value) selected @endif>
@ -164,19 +170,6 @@
</option>
@endforeach
</select>
@push('scripts')
<script nonce="{{ $nonce }}">
document.addEventListener("DOMContentLoaded", () => {
const selectObject = document.getElementById('contactObject')
selectObject.addEventListener('change', (event) => {
if (selectObject.value == 0) {
window.open('https://www.odwebp.svc.ms/embed?smkt=fr-fr', '_blank');
selectObject.value = null;
}
})
});
</script>
@endpush
@foreach ($errors->get('object') as $message)
<div class="invalid-feedback d-block">{{ $message }}</div>
@endforeach