Skip to content

Commit f84eadb

Browse files
committed
refactor(admin/user): introduce dedicated user index and form views, update controller paths and translation keys, and remove unused helper.
1 parent 94f9a94 commit f84eadb

5 files changed

Lines changed: 114 additions & 39 deletions

File tree

helpers/helpers.php

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -169,24 +169,6 @@ function admin_url(?string $uri = null): string
169169
}
170170
}
171171

172-
if (! function_exists('network_url')) {
173-
/**
174-
* Generate an admin URL from the given URI.
175-
*
176-
* @param string $uri the URI to generate a URL for
177-
*
178-
* @return string the generated URL
179-
*/
180-
function network_url(?string $uri = null): string
181-
{
182-
return url(rtrim(
183-
'/network/'
184-
. ltrim($uri, '/'),
185-
'/'
186-
));
187-
}
188-
}
189-
190172
if (! function_exists('is_super_admin')) {
191173
/**
192174
* Check if user is super admin

src/Http/Controllers/Admin/UserController.php

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,26 @@ class UserController extends AdminController
2525
{
2626
public function index(UsersDataTable $dataTable)
2727
{
28-
Breadcrumb::add(__('admin::translation.users'));
28+
Breadcrumb::add(__('core::translation.users'));
2929

3030
return $dataTable->render(
31-
'admin::network.user.index',
31+
'core::admin.user.index',
3232
[]
3333
);
3434
}
3535

3636
public function create()
3737
{
38-
Breadcrumb::add(__('admin::translation.users'), admin_url('users'));
38+
Breadcrumb::add(__('core::translation.users'), admin_url('users'));
3939

40-
Breadcrumb::add(__('admin::translation.add_user'));
40+
Breadcrumb::add(__('core::translation.add_user'));
4141

4242
$model = new User();
4343
$action = action([static::class, 'store']);
4444
$roles = Role::get();
4545

4646
return view(
47-
'admin::network.user.form',
47+
'core::admin.user.form',
4848
compact('model', 'action', 'roles')
4949
);
5050
}
@@ -53,17 +53,17 @@ public function edit(string $id)
5353
{
5454
$model = User::where('is_super_admin', '!=', true)->find($id);
5555

56-
abort_if($model === null, 404, __('admin::translation.user_not_found'));
56+
abort_if($model === null, 404, __('core::translation.user_not_found'));
5757

58-
Breadcrumb::add(__('admin::translation.users'), admin_url('users'));
58+
Breadcrumb::add(__('core::translation.users'), admin_url('users'));
5959

60-
Breadcrumb::add(__('admin::translation.edit_user_name', ['name' => $model->name]));
60+
Breadcrumb::add(__('core::translation.edit_user_name', ['name' => $model->name]));
6161

6262
$action = action([static::class, 'update'], ['id' => $model->id]);
6363
$roles = Role::get();
6464

6565
return view(
66-
'admin::network.user.form',
66+
'core::admin.user.form',
6767
compact('model', 'action', 'roles')
6868
);
6969
}
@@ -81,15 +81,15 @@ public function store(UserRequest $request): JsonResponse|RedirectResponse
8181
$model = User::create($data);
8282

8383
return $this->success(
84-
__('admin::translation.user_name_created_successfully', ['name' => $model->name]),
84+
__('core::translation.user_name_created_successfully', ['name' => $model->name]),
8585
);
8686
}
8787

8888
public function update(UserRequest $request, string $id): JsonResponse|RedirectResponse
8989
{
9090
$model = User::where('is_super_admin', '!=', true)->find($id);
9191

92-
abort_if($model === null, 404, __('admin::translation.user_not_found'));
92+
abort_if($model === null, 404, __('core::translation.user_not_found'));
9393

9494
$data = $request->safe()->all();
9595

@@ -102,20 +102,20 @@ public function update(UserRequest $request, string $id): JsonResponse|RedirectR
102102
$model->update($data);
103103

104104
return $this->success(
105-
__('admin::translation.user_name_updated_successfully', ['name' => $model->name]),
105+
__('core::translation.user_name_updated_successfully', ['name' => $model->name]),
106106
);
107107
}
108108

109109
public function destroy(string $id): JsonResponse|RedirectResponse
110110
{
111111
$model = User::where('is_super_admin', '!=', true)->find($id);
112112

113-
abort_if($model === null, 404, __('admin::translation.user_not_found'));
113+
abort_if($model === null, 404, __('core::translation.user_not_found'));
114114

115115
$model->delete();
116116

117117
return $this->success(
118-
__('admin::translation.user_name_deleted_successfully', ['name' => $model->name]),
118+
__('core::translation.user_name_deleted_successfully', ['name' => $model->name]),
119119
);
120120
}
121121

@@ -127,21 +127,21 @@ public function bulk(BulkActionsRequest $request): JsonResponse|RedirectResponse
127127
switch ($action) {
128128
case 'delete':
129129
User::whereIn('id', $ids)->where('is_super_admin', '!=', true)->delete();
130-
return $this->success(__('admin::translation.selected_users_deleted_successfully'));
130+
return $this->success(__('core::translation.selected_users_deleted_successfully'));
131131
case 'activate':
132132
User::whereIn('id', $ids)->where('is_super_admin', '!=',
133133
true)->update(['status' => UserStatus::ACTIVE]);
134-
return $this->success(__('admin::translation.selected_users_activated_successfully'));
134+
return $this->success(__('core::translation.selected_users_activated_successfully'));
135135
case 'deactivate':
136136
User::whereIn('id', $ids)->where('is_super_admin', '!=',
137137
true)->update(['status' => UserStatus::INACTIVE]);
138-
return $this->success(__('admin::translation.selected_users_deactivated_successfully'));
138+
return $this->success(__('core::translation.selected_users_deactivated_successfully'));
139139
case 'banned':
140140
User::whereIn('id', $ids)->where('is_super_admin', '!=',
141141
true)->update(['status' => UserStatus::BANNED]);
142-
return $this->success(__('admin::translation.selected_users_banned_successfully'));
142+
return $this->success(__('core::translation.selected_users_banned_successfully'));
143143
default:
144-
return $this->error(__('admin::translation.invalid_action'));
144+
return $this->error(__('core::translation.invalid_action'));
145145
}
146146
}
147147
}

src/Http/DataTables/UsersDataTable.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public function getColumns(): array
3232
return [
3333
Column::checkbox(),
3434
Column::id(),
35-
Column::editLink('name', network_url('users/{id}/edit'), __('admin::translation.name')),
35+
Column::editLink('name', admin_url('users/{id}/edit'), __('core::translation.name')),
3636
Column::make('email'),
3737
Column::createdAt(),
3838
Column::actions(),
@@ -49,7 +49,7 @@ public function bulkActions(): array
4949
public function actions(Model $model): array
5050
{
5151
return [
52-
Action::edit(network_url("users/{$model->id}/edit"))
52+
Action::edit(admin_url("users/{$model->id}/edit"))
5353
->can('users.edit'),
5454
Action::delete()
5555
->disabled($model->isSuperAdmin())
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
@extends('core::layouts.admin')
2+
3+
@section('content')
4+
<form action="{{ $action }}" class="form-ajax" method="post">
5+
@if ($model->exists)
6+
@method('PUT')
7+
@endif
8+
9+
<div class="row">
10+
<div class="col-md-12">
11+
<a href="{{ back_form_url() }}" class="btn btn-warning">
12+
<i class="fas fa-arrow-left"></i> {{ __('core::translation.back') }}
13+
</a>
14+
15+
<button type="submit" class="btn btn-primary">
16+
<i class="fas fa-save"></i> {{ __('core::translation.save') }}
17+
</button>
18+
</div>
19+
</div>
20+
21+
<div class="row mt-3">
22+
<div class="col-md-12">
23+
<div class="card">
24+
<div class="card-header">
25+
<h3 class="card-title">{{ __('core::translation.users') }}</h3>
26+
</div>
27+
<div class="card-body">
28+
{!! Field::text($model, 'name') !!}
29+
30+
{!! Field::text($model, 'email') !!}
31+
32+
{{-- {{ Field::select($model, 'roles', [
33+
'label' => __('core::translation.roles'),
34+
'placeholder' => __('core::translation.select_a_role'),
35+
])->dropDownList($roles, 'id', 'name') }} --}}
36+
37+
<hr class="my-4">
38+
39+
{!! Field::password(__('core::translation.password'), 'password', ['autocomplete' => 'new-password']) !!}
40+
41+
{!! Field::password(__('core::translation.password_confirmation'), 'password_confirmation', [
42+
'autocomplete' => 'new-password',
43+
]) !!}
44+
</div>
45+
</div>
46+
</div>
47+
</div>
48+
</form>
49+
@endsection
50+
51+
@section('scripts')
52+
@endsection
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
@extends('core::layouts.admin')
2+
3+
@section('content')
4+
<div class="row">
5+
<div class="col-md-12">
6+
@can('users.create')
7+
<a href="{{ admin_url('users/create') }}" class="btn btn-primary">
8+
<i class="fas fa-plus"></i> {{ __('core::translation.add_user') }}
9+
</a>
10+
@endcan
11+
</div>
12+
</div>
13+
14+
<div class="row mt-3">
15+
<div class="col-md-12">
16+
@component('core::components.datatables.filters')
17+
<div class="col-md-3 jw-datatable_filters">
18+
{{ Field::select(__('core::translation.status'), 'status')->dropDownList([
19+
'' => __('core::translation.all'),
20+
...\Juzaweb\Modules\Admin\Enums\UserStatus::all(),
21+
])->selected(request('status')) }}
22+
</div>
23+
@endcomponent
24+
</div>
25+
26+
<div class="col-md-12">
27+
<div class="card">
28+
<div class="card-header">
29+
<h3 class="card-title">{{ __('core::translation.users') }}</h3>
30+
</div>
31+
<div class="card-body">
32+
{{ $dataTable->table() }}
33+
</div>
34+
</div>
35+
</div>
36+
</div>
37+
@endsection
38+
39+
@section('scripts')
40+
{{ $dataTable->scripts(null, ['nonce' => csp_script_nonce()]) }}
41+
@endsection

0 commit comments

Comments
 (0)