Skip to content

Commit

Permalink
fix: fix name order selection and result (#5255)
Browse files Browse the repository at this point in the history
  • Loading branch information
asbiin authored Jun 6, 2021
1 parent b5a3b8d commit d3217c0
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 31 deletions.
9 changes: 2 additions & 7 deletions app/Helpers/FormHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,13 @@ class FormHelper
*/
public static function getNameOrderForForms(User $user): string
{
$nameOrder = '';
$nameOrder = 'firstname';

switch ($user->name_order) {
case 'firstname_lastname':
case 'firstname_lastname_nickname':
case 'firstname_nickname_lastname':
case 'nickname':
$nameOrder = 'firstname';
break;
case 'lastname_firstname':
case 'lastname_firstname_nickname':
case 'lastname_nickname_firstname':
case 'nickname_lastname_firstname':
$nameOrder = 'lastname';
break;
}
Expand Down
15 changes: 1 addition & 14 deletions app/Http/Controllers/SettingsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,19 +48,6 @@ public function __construct()
*/
public function index()
{
// names order
$namesOrder = [
'firstname_lastname',
'lastname_firstname',
'firstname_lastname_nickname',
'firstname_nickname_lastname',
'lastname_firstname_nickname',
'lastname_nickname_firstname',
'nickname_firstname_lastname',
'nickname_lastname_firstname',
'nickname',
];

$meContact = null;

$search = auth()->user()->first_name.' '.
Expand All @@ -83,7 +70,7 @@ public function index()
->withAccountHasLimitations($accountHasLimitations)
->withMeContact($meContact ? new ContactResource($meContact) : null)
->withExistingContacts(ContactResource::collection($existingContacts))
->withNamesOrder($namesOrder)
->withNamesOrder(User::NAMES_ORDER)
->withLocales(LocaleHelper::getLocaleList()->sortByCollator('name-orig'))
->withHours(DateHelper::getListOfHours())
->withSelectedTimezone(TimezoneHelper::adjustEquivalentTimezone(DateHelper::getTimezone()))
Expand Down
26 changes: 21 additions & 5 deletions app/Http/Requests/SettingsRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

namespace App\Http\Requests;

use App\Models\User\User;
use Illuminate\Validation\Rule;

class SettingsRequest extends AuthorizedRequest
{
/**
Expand All @@ -15,11 +18,24 @@ public function rules()
'first_name' => 'required|max:255',
'last_name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users,email,'.$this->id,
'timezone' => '',
'layout' => '',
'temperature_scale' => '',
'locale' => '',
'currency_id' => '',
'timezone' => 'required|string',
'layout' => 'required|bool',
'temperature_scale' => [
'required',
'string',
Rule::in(['fahrenheit', 'celsius']),
],
'locale' => [
'required',
'string',
Rule::In(config('lang-detector.languages')),
],
'currency_id' => 'required|int|exists:currencies,id',
'name_order' => [
'required',
'string',
Rule::In(User::NAMES_ORDER),
],
];
}
}
20 changes: 19 additions & 1 deletion app/Models/User/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace App\Models\User;

use Carbon\Carbon;
use App\Helpers\FormHelper;
use App\Jobs\SendVerifyEmail;
use App\Models\Settings\Term;
use App\Models\Account\Account;
Expand Down Expand Up @@ -66,6 +67,23 @@ class User extends Authenticatable implements MustVerifyEmail, HasLocalePreferen
'admin' => 'boolean',
];

/**
* Available names order.
*
* @var array
*/
public const NAMES_ORDER = [
'firstname_lastname',
'lastname_firstname',
'firstname_lastname_nickname',
'firstname_nickname_lastname',
'lastname_firstname_nickname',
'lastname_nickname_firstname',
'nickname_firstname_lastname',
'nickname_lastname_firstname',
'nickname',
];

/**
* Get the account record associated with the user.
*
Expand Down Expand Up @@ -151,7 +169,7 @@ public function getNameAttribute(): string
{
$completeName = '';

if ($this->name_order == 'firstname_lastname' || $this->name_order == 'firstname_lastname_nickname') {
if (FormHelper::getNameOrderForForms($this) === 'firstname') {
$completeName = $this->first_name;

if ($this->last_name !== '') {
Expand Down
3 changes: 2 additions & 1 deletion app/Services/VCard/ImportVCard.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use function Safe\substr;
use Sabre\VObject\Reader;
use App\Helpers\DateHelper;
use App\Helpers\FormHelper;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use App\Helpers\VCardHelper;
Expand Down Expand Up @@ -626,7 +627,7 @@ private function importFromFN(Contact $contact, VCard $entry): void
$user = User::where('account_id', $this->accountId)
->findOrFail($this->userId);

if ($user->name_order == 'firstname_lastname' || $user->name_order == 'firstname_lastname_nickname') {
if (FormHelper::getNameOrderForForms($user) === 'firstname') {
$contact->first_name = $this->formatValue($fullnameParts[0]);
if (count($fullnameParts) > 1) {
$contact->last_name = $this->formatValue($fullnameParts[1]);
Expand Down
2 changes: 1 addition & 1 deletion resources/lang/en/settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
'name_order_lastname_firstname_nickname' => '<Last name> <First name> (<Nickname>) – Doe John (Rambo)',
'name_order_lastname_nickname_firstname' => '<Last name> (<Nickname>) <First name> – Doe (Rambo) John',
'name_order_nickname_firstname_lastname' => '<Nickname> (<First name> <Last name>) – Rambo (John Doe)',
'name_order_nickname_firstname_lastname' => '<Nickname> (<Last name> <First name>) – Rambo (Doe John)',
'name_order_nickname_lastname_firstname' => '<Nickname> (<Last name> <First name>) – Rambo (Doe John)',
'name_order_nickname' => '<Nickname> – Rambo',
'currency' => 'Currency',
'name' => 'Your name: :name',
Expand Down
4 changes: 2 additions & 2 deletions resources/views/settings/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@
<div class="form-group">
<label for="layout" class="mb2 b">{{ trans('settings.layout') }}</label>
<select class="form-control" name="layout" id="layout">
<option value='false' {{ (auth()->user()->fluid_container == 'false')?'selected':'' }}>{{ trans('settings.layout_small') }}</option>
<option value='true' {{ (auth()->user()->fluid_container == 'true')?'selected':'' }}>{{ trans('settings.layout_big') }}</option>
<option value='0' {{ (auth()->user()->fluid_container == 'false')?'selected':'' }}>{{ trans('settings.layout_small') }}</option>
<option value='1' {{ (auth()->user()->fluid_container == 'true')?'selected':'' }}>{{ trans('settings.layout_big') }}</option>
</select>
</div>
</div>
Expand Down

0 comments on commit d3217c0

Please sign in to comment.