Skip to content

Commit 6b14ce8

Browse files
Merge pull request #115 from shubhwebkul/master
code improvements
2 parents a447d3b + 6cad9b6 commit 6b14ce8

File tree

12 files changed

+136
-43
lines changed

12 files changed

+136
-43
lines changed

packages/Webkul/Admin/src/Config/dashboard_cards.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,13 @@
7676
"data_class" => "column-grid-2",
7777
"label" => 'admin::app.dashboard.top_products',
7878
], [
79-
"sort" => 1,
79+
"sort" => 10,
80+
"selected" => true,
81+
"card_id" => "quotes",
82+
"card_type" => "line_chart",
83+
"label" => 'admin::app.dashboard.quotes',
84+
], [
85+
"sort" => 11,
8086
"card_type" => "custom_card",
8187
"card_border" => "dashed",
8288
"selected" => false,

packages/Webkul/Admin/src/DataGrids/Activity/ActivityDataGrid.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ public function prepareActions()
190190
'title' => trans('ui::app.datagrid.delete'),
191191
'method' => 'DELETE',
192192
'route' => 'admin.activities.delete',
193-
'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'user']),
193+
'confirm_text' => trans('ui::app.datagrid.massaction.delete'),
194194
'icon' => 'trash-icon',
195195
]);
196196
}

packages/Webkul/Admin/src/DataGrids/Lead/LeadDataGrid.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public function addColumns()
9595
'sortable' => true,
9696
'filterable_type' => 'add',
9797
'closure' => function ($row) {
98-
return round($row->lead_value, 2);
98+
return core()->formatBasePrice($row->lead_value, 2);
9999
},
100100
]);
101101

packages/Webkul/Admin/src/Http/Controllers/Setting/AttributeController.php

+4-1
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,10 @@ public function massDestroy()
174174
{
175175
$data = request()->all();
176176

177-
$this->attributeRepository->destroy($data['rows']);
177+
$this->attributeRepository
178+
->where('is_user_defined', 1)
179+
->whereIn('id', $data['rows'])
180+
->delete();
178181

179182
return response()->json([
180183
'status' => true,

packages/Webkul/Admin/src/Http/Controllers/Setting/RoleController.php

+27-20
Original file line numberDiff line numberDiff line change
@@ -133,45 +133,52 @@ public function update($id)
133133
*/
134134
public function destroy($id)
135135
{
136+
$response = [
137+
'status' => false,
138+
'responseCode' => 400,
139+
];
140+
136141
$role = $this->roleRepository->findOrFail($id);
137142

138143
if ($role->admins && $role->admins->count() >= 1) {
139-
$status = false;
140-
$responseCode = 400;
141-
$message = trans('admin::app.settings.roles.being-used');
144+
$response['message'] = trans('admin::app.settings.roles.being-used');
142145

143146
session()->flash('error', $message);
144147
} else if ($this->roleRepository->count() == 1) {
145-
$status = false;
146-
$responseCode = 400;
147-
$message = trans('admin::app.settings.roles.last-delete-error');
148+
$response['message'] = trans('admin::app.settings.roles.last-delete-error');
148149

149150
session()->flash('error', $message);
150151
} else {
151152
try {
152153
Event::dispatch('settings.role.delete.before', $id);
153154

154-
$this->roleRepository->delete($id);
155-
156-
Event::dispatch('settings.role.delete.after', $id);
155+
if (auth()->guard('user')->user()->role_id == $id) {
156+
$response['message'] = trans('admin::app.settings.roles.current-role-delete-error');
157+
} else {
158+
$this->roleRepository->delete($id);
159+
160+
Event::dispatch('settings.role.delete.after', $id);
161+
162+
$message = trans('admin::app.settings.roles.delete-success');
163+
164+
$response = [
165+
'status' => true,
166+
'responseCode' => 200,
167+
'message' => $message,
168+
];
169+
170+
session()->flash('success', $message);
171+
}
157172

158-
$status = false;
159-
$responseCode = 200;
160-
$message = trans('admin::app.settings.roles.delete-success');
161-
162-
session()->flash('success', $message);
163173
} catch(\Exception $exception) {
164-
$status = false;
165-
$responseCode = 400;
166174
$message = $exception->getMessage();
167175

176+
$response['message'] = $message;
177+
168178
session()->flash('error', $message);
169179
}
170180
}
171181

172-
return response()->json([
173-
'status' => $status,
174-
'message' => $message,
175-
], $responseCode);
182+
return response()->json($response, $response['responseCode']);
176183
}
177184
}

packages/Webkul/Admin/src/Http/Controllers/Setting/UserController.php

+6
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,12 @@ public function massDestroy()
258258
{
259259
$data = request()->all();
260260

261+
$currentUserId = auth()->guard('user')->user()->id;
262+
263+
if ($index = array_search($currentUserId, $data['rows'])) {
264+
unset($data['rows'][$index]);
265+
}
266+
261267
$this->userRepository->destroy($data['rows']);
262268

263269
return response()->json([

packages/Webkul/Admin/src/Resources/lang/en/app.php

+19-17
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
'activities' => 'Activities',
1010
'top_leads' => 'Top Leads',
1111
'stages' => 'Stages',
12+
'quotes' => 'Quotes',
1213
'emails' => 'Emails',
1314
'custom_card' => 'Custom Card',
1415
'customers' => 'Customers',
@@ -363,23 +364,24 @@
363364
],
364365

365366
'roles' => [
366-
'title' => 'Roles',
367-
'role' => 'Role',
368-
'edit-title' => 'Edit Role',
369-
'description' => 'Description',
370-
'add-title' => 'Create Role',
371-
'permission_type' => 'Permission type',
372-
'custom' => 'Custom',
373-
'all' => 'All',
374-
'save-btn-title' => 'Save as Role',
375-
'update-btn-title' => 'Update Role',
376-
'create-success' => 'Role created successfully.',
377-
'update-success' => 'Role updated successfully.',
378-
'delete-success' => 'Role deleted successfully.',
379-
'delete-failed' => 'Role can not be deleted.',
380-
'user-define-error' => 'Can not delete system role.',
381-
'being-used' => 'Role can not be deleted, as this is being used in admin user.',
382-
'last-delete-error' => 'At least one role is required.'
367+
'title' => 'Roles',
368+
'role' => 'Role',
369+
'edit-title' => 'Edit Role',
370+
'description' => 'Description',
371+
'add-title' => 'Create Role',
372+
'permission_type' => 'Permission type',
373+
'custom' => 'Custom',
374+
'all' => 'All',
375+
'save-btn-title' => 'Save as Role',
376+
'update-btn-title' => 'Update Role',
377+
'create-success' => 'Role created successfully.',
378+
'update-success' => 'Role updated successfully.',
379+
'delete-success' => 'Role deleted successfully.',
380+
'delete-failed' => 'Role can not be deleted.',
381+
'user-define-error' => 'Can not delete system role.',
382+
'last-delete-error' => 'At least one role is required.',
383+
'current-role-delete-error' => 'Can not delete role assigned to the current user.',
384+
'being-used' => 'Role can not be deleted, as this is being used in admin user.',
383385
],
384386

385387
'users' => [

packages/Webkul/Admin/src/Traits/Dashboard/DataRetrival.php

+53
Original file line numberDiff line numberDiff line change
@@ -421,4 +421,57 @@ private function getTopProducts($startDateFilter, $endDateFilter, $totalWeeks)
421421

422422
return $cardData;
423423
}
424+
425+
/**
426+
* Collect quotes card data.
427+
*/
428+
private function getQuotes($startDateFilter, $endDateFilter, $totalWeeks)
429+
{
430+
$labels = $quotes = [];
431+
432+
$quotesRepository = app('Webkul\Quote\Repositories\QuoteRepository');
433+
434+
if ($totalWeeks) {
435+
for ($index = $totalWeeks; $index >= 1; $index--) {
436+
list(
437+
'startDate' => $startDate,
438+
'endDate' => $endDate,
439+
'labels' => $labels,
440+
) = $this->getFormattedDateRange([
441+
"start_date" => $startDateFilter,
442+
"end_date" => $endDateFilter,
443+
"index" => $index,
444+
"labels" => $labels,
445+
"total_weeks" => $totalWeeks,
446+
]);
447+
448+
// get quotes count
449+
array_push($quotes, $quotesRepository->getQuotesCount("all", $startDate, $endDate));
450+
}
451+
} else {
452+
$labels = [__("admin::app.dashboard.week") . "1"];
453+
454+
$quotes = [$quotesRepository->getQuotesCount("Won", $startDateFilter, $endDateFilter)];
455+
}
456+
457+
if (! empty(array_filter($quotes))) {
458+
$cardData = [
459+
"data" => [
460+
"labels" => $labels,
461+
"datasets" => [
462+
[
463+
"fill" => true,
464+
"tension" => 0.6,
465+
"backgroundColor" => "#4BC0C0",
466+
"borderColor" => '#2f7373',
467+
"data" => $quotes,
468+
"label" => __("admin::app.dashboard.leads_started"),
469+
],
470+
]
471+
]
472+
];
473+
}
474+
475+
return $cardData ?? false;
476+
}
424477
}

packages/Webkul/Quote/src/Repositories/QuoteRepository.php

+13
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,17 @@ public function update(array $data, $id, $attribute = "id")
109109

110110
return $quote;
111111
}
112+
113+
/**
114+
* Retreives customers count based on date
115+
*
116+
* @return number
117+
*/
118+
public function getQuotesCount($startDate, $endDate)
119+
{
120+
return $this
121+
->whereBetween('created_at', [$startDate, $endDate])
122+
->get()
123+
->count();
124+
}
112125
}

packages/Webkul/UI/publishable/assets/css/ui.css

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/Webkul/UI/publishable/assets/mix-manifest.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"/js/ui.js": "/js/ui.js?id=925202de58f991c86c6c",
3-
"/css/ui.css": "/css/ui.css?id=b82e866167fb8ee7c926",
3+
"/css/ui.css": "/css/ui.css?id=fa35801a61df535b796f",
44
"/images/add-icon.svg": "/images/add-icon.svg?id=9135b4e0e1c239c36981",
55
"/images/align-justify-icon.svg": "/images/align-justify-icon.svg?id=ee8d48e636b80417a884",
66
"/images/arrow-down-icon.svg": "/images/arrow-down-icon.svg?id=7b5c03f96be72c9a0bef",

packages/Webkul/UI/src/Resources/assets/sass/app.scss

+3
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,7 @@ h5 {
416416

417417
&.actions {
418418
width: 100px;
419+
text-align: right;
419420

420421
.action {
421422
display: inline-flex;
@@ -459,6 +460,8 @@ h5 {
459460
}
460461

461462
&.action {
463+
text-align: right;
464+
462465
a {
463466
cursor: pointer;
464467
margin-right: 5px;

0 commit comments

Comments
 (0)