Merge pull request #15367 from snipe/fixes/15344_added_freeform_to_country_select2

Fixed #15344 - make select2 for countries freeform-ish
This commit is contained in:
snipe 2024-08-22 11:06:13 +01:00 committed by GitHub
commit 9608414eae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 24 additions and 6 deletions

View file

@ -561,5 +561,6 @@ return [
'remaining_var' => ':count Remaining',
'label' => 'Label',
'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.',
'countries_manually_entered_help' => 'Values with an asterisk (*) were manually entered and do not match existing ISO 3166 dropdown values',
];

View file

@ -135,6 +135,7 @@ return [
'EC'=>'Ecuador',
'EE'=>'Estonia',
'EG'=>'Egypt',
'GB-ENG'=>'England',
'ER'=>'Eritrea',
'ES'=>'Spain',
'ET'=>'Ethiopia',
@ -233,6 +234,7 @@ return [
'NG'=>'Nigeria',
'NI'=>'Nicaragua',
'NL'=>'Netherlands',
'GB-NIR' => 'Northern Ireland',
'NO'=>'Norway',
'NP'=>'Nepal',
'NR'=>'Nauru',
@ -260,7 +262,7 @@ return [
'RU'=>'Russian Federation',
'RW'=>'Rwanda',
'SA'=>'Saudi Arabia',
'UK'=>'Scotland',
'GB-SCT'=>'Scotland',
'SB'=>'Solomon Islands',
'SC'=>'Seychelles',
'SS'=>'South Sudan',
@ -312,6 +314,7 @@ return [
'VI'=>'Virgin Islands (U.S.)',
'VN'=>'Viet Nam',
'VU'=>'Vanuatu',
'GB-WLS' =>'Wales',
'WF'=>'Wallis And Futuna Islands',
'WS'=>'Samoa',
'YE'=>'Yemen',

View file

@ -32,18 +32,27 @@ Form::macro('countries', function ($name = 'country', $selected = null, $class =
$idclause = (!is_null($id)) ? $id : '';
$select = '<select name="'.$name.'" class="'.$class.'" style="width:100%" '.$idclause.' aria-label="'.$name.'" data-placeholder="'.trans('localizations.select_country').'">';
// Pull the autoglossonym array from the localizations translation file
$countries_array = trans('localizations.countries');
$select = '<select name="'.$name.'" class="'.$class.'" style="width:100%" '.$idclause.' aria-label="'.$name.'" data-placeholder="'.trans('localizations.select_country').'" data-allow-clear="true" data-tags="true">';
$select .= '<option value="" role="option">'.trans('localizations.select_country').'</option>';
// Pull the autoglossonym array from the localizations translation file
foreach (trans('localizations.countries') as $abbr => $country) {
foreach ($countries_array as $abbr => $country) {
// We have to handle it this way to handle deprecication warnings since you can't strtoupper on null
if ($abbr!='') {
$abbr = strtoupper($abbr);
}
$select .= '<option value="'.$abbr.'"'.(($selected == $abbr) ? ' selected="selected" role="option" aria-selected="true"' : ' aria-selected="false"').'>'.$country.'</option> ';
// Loop through the countries configured in the localization file
$select .= '<option value="'.$abbr.'" selected="selected" role="option" '.(($selected == $abbr) ? ' selected="selected" role="option" aria-selected="true"' : ' aria-selected="false"').'>'.$country.'</option> ';
}
// If the country value doesn't exist in the array, add it as a new option and select it so we don't drop that data
if (!in_array($selected, $countries_array)) {
$select .= '<option value="' . $selected . '" selected="selected" role="option" aria-selected="true">' . $selected .' *</option> ';
}
$select .= '</select>';

View file

@ -35,6 +35,7 @@
{{ Form::label('country', trans('general.country'), array('class' => 'col-md-3 control-label')) }}
<div class="col-md-7">
{!! Form::countries('country', old('country', $item->country), 'select2') !!}
<p class="help-block">{{ trans('general.countries_manually_entered_help') }}</p>
{!! $errors->first('country', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
</div>
</div>

View file

@ -451,6 +451,8 @@
<label class="col-md-3 control-label" for="country">{{ trans('general.country') }}</label>
<div class="col-md-6">
{!! Form::countries('country', old('country', $user->country), 'col-md-12 select2') !!}
<p class="help-block">{{ trans('general.countries_manually_entered_help') }}</p>
{!! $errors->first('country', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
</div>

View file

@ -197,7 +197,9 @@
{{ trans('admin/users/general.print_assigned') }}
</a>
@else
<button style="width: 100%;" class="btn btn-sm btn-primary hidden-print" rel="noopener" disabled title="{{ trans('admin/users/message.user_has_no_assets_assigned') }}">{{ trans('admin/users/general.print_assigned') }}</button>
<button style="width: 100%;" class="btn btn-sm btn-primary btn-social hidden-print" rel="noopener" disabled title="{{ trans('admin/users/message.user_has_no_assets_assigned') }}">
<x-icon type="print" />
{{ trans('admin/users/general.print_assigned') }}</button>
@endif
</div>
@endcan