Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Walter Felipe
pad-upe
Commits
4d7dbd63
Commit
4d7dbd63
authored
Apr 24, 2024
by
alissonalbuquerque
Browse files
feat(user/search): add campós de consulta em cadastros de usuários em admin
parent
6c2ef404
Changes
5
Hide whitespace changes
Inline
Side-by-side
app/Http/Controllers/UserController.php
View file @
4d7dbd63
...
@@ -10,6 +10,7 @@ use App\Models\UserType;
...
@@ -10,6 +10,7 @@ use App\Models\UserType;
use
App\Models\Util\MaskHelper
;
use
App\Models\Util\MaskHelper
;
use
App\Models\Util\Menu
;
use
App\Models\Util\Menu
;
use
App\Models\Util\Status
;
use
App\Models\Util\Status
;
use
App\Search\UserSearch
;
use
Illuminate\Http\Request
;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Facades\Auth
;
use
Illuminate\Support\Facades\Auth
;
use
Illuminate\Support\Facades\Hash
;
use
Illuminate\Support\Facades\Hash
;
...
@@ -64,14 +65,13 @@ class UserController extends Controller
...
@@ -64,14 +65,13 @@ class UserController extends Controller
}
}
public
function
actionIndex
(
Request
$request
)
public
function
actionIndex
(
Request
$request
)
{
{
$users
=
$model_search
=
new
UserSearch
();
User
::
initQuery
();
$users
=
$model_search
->
search
(
$request
->
all
());
$users
=
$users
->
get
();
return
view
(
'users.index'
,
[
return
view
(
'users.index'
,
[
'users'
=>
$users
,
'model_search'
=>
$model_search
,
'users'
=>
$users
,
'menu'
=>
Menu
::
USERS
,
'menu'
=>
Menu
::
USERS
,
]);
]);
}
}
...
...
app/Search/UserSearch.php
0 → 100644
View file @
4d7dbd63
<?php
namespace
App\Search
;
use
App\Models\Campus
;
use
App\Models\Curso
;
use
App\Models\User
;
use
Illuminate\Database\Eloquent\Model
;
class
UserSearch
extends
Model
{
/** @var User */
public
$model_base
;
/** @var string */
public
$name
;
/** @var string */
public
$email
;
/** @var string|integer */
public
$campus_id
;
/** @var string|integer */
public
$curso_id
;
/** @var array */
public
$_attributes
=
[
'name'
,
'email'
,
'campus_id'
,
'curso_id'
];
/** @return void */
public
function
load
(
$params
=
[])
{
foreach
(
$this
->
_attributes
as
$_attribute
)
{
$this
->
$_attribute
=
isset
(
$params
[
$_attribute
])
?
$params
[
$_attribute
]
:
null
;
}
}
/** @return Illuminate\Database\Eloquent\Collection */
public
function
search
(
$params
=
[])
{
/** @var Illuminate\Database\Eloquent\Builder */
$query
=
User
::
where
([]);
$this
->
load
(
$params
);
if
(
$this
->
name
)
{
$name
=
$this
->
name
;
$query
->
where
(
"name"
,
"like"
,
"%
{
$name
}
%"
);
}
if
(
$this
->
email
)
{
$email
=
$this
->
email
;
$query
->
where
(
"email"
,
"like"
,
"%
{
$email
}
%"
);
}
if
(
$this
->
campus_id
)
{
$campus_id
=
$this
->
campus_id
;
$query
->
where
(
"campus_id"
,
'='
,
"
{
$campus_id
}
"
);
}
if
(
$this
->
curso_id
)
{
$curso_id
=
$this
->
curso_id
;
$query
->
where
(
"curso_id"
,
'='
,
"
{
$curso_id
}
"
);
}
return
$query
->
get
();
}
/** @return Illuminate\Database\Eloquent\Relations\BelongsTo */
public
function
campus
()
{
return
$this
->
belongsTo
(
Campus
::
class
);
}
/** @return Illuminate\Database\Eloquent\Relations\BelongsTo */
public
function
curso
()
{
return
$this
->
belongsTo
(
Curso
::
class
);
}
}
\ No newline at end of file
resources/views/users/_search.blade.php
0 → 100644
View file @
4d7dbd63
<?php
/**
* @var $model App\Models\UserSearch
*/
?>
<form
action=
"{{ route('user_index') }}"
method=
"get"
>
<div
class=
"row"
>
<div
class=
"mb-3 col-6"
>
<div
class=
"form-group"
>
<label
class=
"form-label"
for=
"name"
>
Nome
</label>
<input
type=
"text"
name=
"name"
id=
"name"
class=
"form-control"
placeholder=
"Nome"
value=
"{{ $model->name }}"
>
</div>
</div>
<div
class=
"mb-3 col-6"
>
<div
class=
"form-group"
>
<label
class=
"form-label"
for=
"email"
>
E-Mail
</label>
<input
type=
"email"
name=
"email"
id=
"email"
class=
"form-control"
placeholder=
"E-Mail"
value=
"{{ $model->email }}"
>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"mb-3 col-6"
>
<div
class=
"form-group"
>
<label
class=
"form-label"
for=
"campus_id"
>
Campus
</label>
<select
class=
"form-control"
name=
"campus_id"
id=
"campus_id"
>
@if($model->campus_id)
<option
value=
"{{$model->campus_id}}"
selected
>
{{$model->campus}}
</option>
@endif
</select>
</div>
</div>
<div
class=
"mb-3 col-6"
>
<div
class=
"form-group"
>
<label
class=
"form-label"
for=
"curso_id"
>
Curso
</label>
<select
class=
"form-control"
name=
"curso_id"
id=
"curso_id"
>
@if($model->curso_id)
<option
value=
"{{$model->curso_id}}"
selected
>
{{$model->curso}}
</option>
@endif
</select>
</div>
</div>
</div>
<button
type=
"submit"
class=
"btn btn-primary"
>
Buscar
</button>
</form>
<script>
//campus_id
$
(
'
#campus_id
'
).
select2
(
{
placeholder
:
'
Unidade - Campus
'
,
allowClear
:
true
,
ajax
:
{
url
:
'
{{ route("campus_search") }}
'
,
dataType
:
'
json
'
}
}).
on
(
'
change
'
,
()
=>
{
$
(
'
#curso_id
'
).
empty
()
});
//curso_id
$
(
'
#curso_id
'
).
select2
(
{
placeholder
:
'
Curso
'
,
allowClear
:
true
,
ajax
:
{
url
:
'
{{ route("curso_search") }}
'
,
dataType
:
'
json
'
,
data
:
function
(
params
)
{
return
{
q
:
params
.
terms
,
campus_id
:
$
(
'
#campus_id
'
).
val
(),
}
},
},
});
</script>
\ No newline at end of file
resources/views/users/index.blade.php
View file @
4d7dbd63
...
@@ -17,11 +17,16 @@
...
@@ -17,11 +17,16 @@
<
div
>
<
div
>
<
h3
class
=
"h3"
>
Usuários
</
h3
>
<
div
>
<
h3
class
=
"h3"
>
Usuários
</
h3
>
<
hr
>
</
div
>
<
div
>
<
div
>
@
include
(
'components.alerts'
)
@
include
(
'components.alerts'
)
@
include
(
'users\_search'
,
[
'model'
=>
$model_search
])
<
div
class
=
"d-flex justify-content-end mb-2"
>
<
div
class
=
"d-flex justify-content-end mb-2"
>
@
include
(
'components.buttons.btn-create'
,
[
@
include
(
'components.buttons.btn-create'
,
[
'id'
=>
'user_create'
,
'id'
=>
'user_create'
,
...
...
routes/users.php
View file @
4d7dbd63
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
use
App\Http\Controllers\UserController
;
use
App\Http\Controllers\UserController
;
use
Illuminate\Support\Facades\Route
;
use
Illuminate\Support\Facades\Route
;
Route
::
prefix
(
'/us
er
s'
)
->
group
(
function
()
{
Route
::
prefix
(
'/us
uario
s'
)
->
group
(
function
()
{
Route
::
get
(
'/index'
,
[
UserController
::
class
,
'actionIndex'
])
->
name
(
'user_index'
);
Route
::
get
(
'/index'
,
[
UserController
::
class
,
'actionIndex'
])
->
name
(
'user_index'
);
Route
::
get
(
'/create'
,
[
UserController
::
class
,
'actionCreate'
])
->
name
(
'user_create'
);
Route
::
get
(
'/create'
,
[
UserController
::
class
,
'actionCreate'
])
->
name
(
'user_create'
);
Route
::
post
(
'/store'
,
[
UserController
::
class
,
'actionStore'
])
->
name
(
'user_store'
);
Route
::
post
(
'/store'
,
[
UserController
::
class
,
'actionStore'
])
->
name
(
'user_store'
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment