mirror of
https://github.com/HDInnovations/UNIT3D-Community-Edition.git
synced 2026-05-03 08:50:22 -05:00
add: phonetic soundex email and username searching
This commit is contained in:
@@ -39,9 +39,15 @@ class UserSearch extends Component
|
||||
#[Url(history: true)]
|
||||
public string $username = '';
|
||||
|
||||
#[Url(history: true)]
|
||||
public string $soundexUsername = '';
|
||||
|
||||
#[Url(history: true)]
|
||||
public string $email = '';
|
||||
|
||||
#[Url(history: true)]
|
||||
public string $soundexEmail = '';
|
||||
|
||||
#[Url(history: true)]
|
||||
public string $rsskey = '';
|
||||
|
||||
@@ -81,7 +87,19 @@ class UserSearch extends Component
|
||||
return User::query()
|
||||
->with('group')
|
||||
->when($this->username !== '', fn ($query) => $query->where('username', 'LIKE', '%'.$this->username.'%'))
|
||||
->when(
|
||||
$this->soundexUsername !== '',
|
||||
fn ($query) => $query->whereRaw('SOUNDEX(username) = SOUNDEX(?)', [$this->soundexUsername]),
|
||||
)
|
||||
->when($this->email !== '', fn ($query) => $query->where('email', 'LIKE', '%'.$this->email.'%'))
|
||||
->when(
|
||||
$this->soundexEmail !== '',
|
||||
fn ($query) => $query->when(
|
||||
str_contains($this->soundexEmail, '@'),
|
||||
fn ($query) => $query->whereRaw('SOUNDEX(email) = SOUNDEX(?)', [$this->soundexEmail]),
|
||||
fn ($query) => $query->whereRaw("SOUNDEX(SUBSTRING_INDEX(email, '@', 1)) = SOUNDEX(SUBSTRING_INDEX(?, '@', 1))", [$this->soundexEmail])
|
||||
)
|
||||
)
|
||||
->when($this->rsskey !== '', fn ($query) => $query->where('rsskey', 'LIKE', '%'.$this->rsskey.'%'))
|
||||
->when($this->apikey !== '', fn ($query) => $query->where('api_token', 'LIKE', '%'.$this->apikey.'%'))
|
||||
->when($this->passkey !== '', fn ($query) => $query->where('passkey', 'LIKE', '%'.$this->passkey.'%'))
|
||||
|
||||
@@ -18,6 +18,18 @@
|
||||
{{ __('common.username') }}
|
||||
</label>
|
||||
</p>
|
||||
<p class="form__group">
|
||||
<input
|
||||
id="soundexUsername"
|
||||
class="form__text"
|
||||
type="text"
|
||||
wire:model.live="soundexUsername"
|
||||
placeholder=" "
|
||||
/>
|
||||
<label class="form__label form__label--floating" for="soundexUsername">
|
||||
Soundex {{ __('common.username') }}
|
||||
</label>
|
||||
</p>
|
||||
<p class="form__group">
|
||||
<input
|
||||
id="email"
|
||||
@@ -30,6 +42,18 @@
|
||||
{{ __('common.email') }}
|
||||
</label>
|
||||
</p>
|
||||
<p class="form__group">
|
||||
<input
|
||||
id="soundexEmail"
|
||||
class="form__text"
|
||||
type="text"
|
||||
wire:model.live="soundexEmail"
|
||||
placeholder=" "
|
||||
/>
|
||||
<label class="form__label form__label--floating" for="soundexEmail">
|
||||
Soundex {{ __('common.email') }}
|
||||
</label>
|
||||
</p>
|
||||
<p class="form__group">
|
||||
<input
|
||||
id="apikey"
|
||||
|
||||
Reference in New Issue
Block a user