Skip to content

Commit f644fe7

Browse files
resolved #111
1 parent a9e2ec1 commit f644fe7

File tree

7 files changed

+127
-87
lines changed

7 files changed

+127
-87
lines changed

config/datagrid_filters.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
return [
4+
5+
];
6+
7+
?>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?php
2+
3+
return [
4+
"activities" => [
5+
[
6+
'type' => 'pill',
7+
'key' => 'type',
8+
'condition' => 'eq',
9+
'values' => [
10+
[
11+
'name' => 'admin::app.leads.all',
12+
'isActive' => true,
13+
'key' => 'all',
14+
], [
15+
'name' => 'admin::app.leads.note',
16+
'isActive' => false,
17+
'key' => 'note',
18+
], [
19+
'name' => 'admin::app.leads.call',
20+
'isActive' => false,
21+
'key' => 'call',
22+
], [
23+
'name' => 'admin::app.leads.email',
24+
'isActive' => false,
25+
'key' => 'email',
26+
], [
27+
'name' => 'admin::app.leads.meeting',
28+
'isActive' => false,
29+
'key' => 'meeting',
30+
]
31+
]
32+
], [
33+
'type' => 'group',
34+
'key' => 'duration',
35+
'condition' => 'eq',
36+
'values' => [
37+
[
38+
'name' => 'admin::app.datagrid.filters.yesterday',
39+
'isActive' => false,
40+
'key' => 'yesterday',
41+
], [
42+
'name' => 'admin::app.datagrid.filters.today',
43+
'isActive' => false,
44+
'key' => 'today',
45+
], [
46+
'name' => 'admin::app.datagrid.filters.tomorrow',
47+
'isActive' => false,
48+
'key' => 'tomorrow',
49+
], [
50+
'name' => 'admin::app.datagrid.filters.this-week',
51+
'isActive' => false,
52+
'key' => 'this_week',
53+
], [
54+
'name' => 'admin::app.datagrid.filters.this-month',
55+
'isActive' => true,
56+
'key' => 'this_month',
57+
], [
58+
'name' => 'admin::app.datagrid.filters.custom',
59+
'isActive' => false,
60+
'key' => 'custom',
61+
]
62+
]
63+
],
64+
],
65+
66+
"leads" => [
67+
[
68+
'type' => 'pill',
69+
'key' => 'type',
70+
'condition' => 'eq',
71+
"value_type" => "lookup",
72+
"repositoryClass" => "\Webkul\Lead\Repositories\StageRepository",
73+
]
74+
]
75+
];
76+
77+
?>

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

Lines changed: 1 addition & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -20,67 +20,7 @@ class ActivityDataGrid extends DataGrid
2020
public function __construct()
2121
{
2222
// table tab filters
23-
$this->tabFilters = [
24-
[
25-
'type' => 'pill',
26-
'key' => 'type',
27-
'condition' => 'eq',
28-
'values' => [
29-
[
30-
'name' => trans('admin::app.leads.all'),
31-
'isActive' => true,
32-
'key' => 'all',
33-
], [
34-
'name' => trans('admin::app.leads.note'),
35-
'isActive' => false,
36-
'key' => 'note',
37-
], [
38-
'name' => trans('admin::app.leads.call'),
39-
'isActive' => false,
40-
'key' => 'call',
41-
], [
42-
'name' => trans('admin::app.leads.email'),
43-
'isActive' => false,
44-
'key' => 'email',
45-
], [
46-
'name' => trans('admin::app.leads.meeting'),
47-
'isActive' => false,
48-
'key' => 'meeting',
49-
]
50-
]
51-
], [
52-
'type' => 'group',
53-
'key' => 'duration',
54-
'condition' => 'eq',
55-
'values' => [
56-
[
57-
'name' => 'Yesterday',
58-
'isActive' => false,
59-
'key' => 'yesterday',
60-
], [
61-
'name' => 'Today',
62-
'isActive' => false,
63-
'key' => 'today',
64-
], [
65-
'name' => 'Tomorrow',
66-
'isActive' => false,
67-
'key' => 'tomorrow',
68-
], [
69-
'name' => 'This week',
70-
'isActive' => false,
71-
'key' => 'this_week',
72-
], [
73-
'name' => 'This month',
74-
'isActive' => true,
75-
'key' => 'this_month',
76-
], [
77-
'name' => 'Custom',
78-
'isActive' => false,
79-
'key' => 'custom',
80-
]
81-
]
82-
],
83-
];
23+
$this->tabFilters = $this->prepareTabFilters("activities");
8424

8525
parent::__construct();
8626
}

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

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,32 +19,7 @@ class LeadDataGrid extends DataGrid
1919
public function __construct()
2020
{
2121
// get all stages
22-
$stagesValues = [
23-
[
24-
'name' => trans('admin::app.leads.all'),
25-
'isActive' => true,
26-
'key' => 'all',
27-
]
28-
];
29-
30-
$stages = app('\Webkul\Lead\Repositories\StageRepository')
31-
->select('name', 'code as key')
32-
->get()
33-
->toArray();
34-
35-
foreach ($stages as $stage) {
36-
$stage['isActive'] = false;
37-
array_push($stagesValues, $stage);
38-
}
39-
40-
$this->tabFilters = [
41-
[
42-
'type' => 'pill',
43-
'key' => 'type',
44-
'condition' => 'eq',
45-
'values' => $stagesValues,
46-
],
47-
];
22+
$this->tabFilters = $this->prepareTabFilters("leads");
4823

4924
parent::__construct();
5025
}

packages/Webkul/Admin/src/Providers/AdminServiceProvider.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ protected function registerConfig()
9999
$this->mergeConfigFrom(dirname(__DIR__) . '/Config/menu.php', 'menu.admin');
100100
$this->mergeConfigFrom(dirname(__DIR__) . '/Config/core_config.php', 'core_config');
101101
$this->mergeConfigFrom(dirname(__DIR__) . '/Config/dashboard_cards.php', 'dashboard_cards');
102+
$this->mergeConfigFrom(dirname(__DIR__) . '/Config/datagrid_filters.php', 'datagrid_filters');
102103
$this->mergeConfigFrom(dirname(__DIR__) . '/Config/attribute_lookups.php', 'attribute_lookups');
103104
$this->mergeConfigFrom(dirname(__DIR__) . '/Config/attribute_entity_types.php', 'attribute_entity_types');
104105
}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,7 @@
510510
'comment' => 'Comment',
511511
'is_done' => 'Is Done',
512512
'type' => 'Type',
513+
'all' => 'All',
513514
'user' => 'User',
514515
'sales-person' => 'Sales Person',
515516
'person' => 'Person',
@@ -533,6 +534,14 @@
533534
'update-success' => ':resource updated successfully.',
534535
'destroy-success' => ':resource deleted successfully.',
535536
'destroy-failed' => ':resource can not be deleted.',
537+
'filters' => [
538+
'yesterday' => 'Yesterday',
539+
'today' => 'Today',
540+
'tomorrow' => 'Tomorrow',
541+
'this-week' => 'This week',
542+
'this-month' => 'This month',
543+
'custom' => 'Custom',
544+
]
536545
],
537546

538547
'response' => [

packages/Webkul/UI/src/DataGrid/Traits/DatagridHelper.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,35 @@ public function attachColumnValues($columnName, $info)
112112

113113
return $this->completeColumnDetails;
114114
}
115+
116+
/**
117+
* Prepare tab filters.
118+
*
119+
* @return array
120+
*/
121+
public function prepareTabFilters($key)
122+
{
123+
$tabFilters = config("datagrid_filters")[$key] ?? [];
124+
125+
foreach ($tabFilters as $tabIndex => $filter) {
126+
if (($filter['value_type'] ?? false) == "lookup") {
127+
$values = app($filter['repositoryClass'])
128+
->get(['name', 'code as key', \DB::raw("false as isActive")])
129+
->prepend([
130+
'isActive' => true,
131+
'key' => 'all',
132+
'name' => trans('admin::app.datagrid.all'),
133+
])
134+
->toArray();
135+
136+
$tabFilters[$tabIndex]['values'] = $values;
137+
} else {
138+
foreach ($filter['values'] as $valueIndex => $value) {
139+
$tabFilters[$tabIndex]['values'][$valueIndex]['name'] = trans($tabFilters[$tabIndex]['values'][$valueIndex]['name']);
140+
}
141+
}
142+
}
143+
144+
return $tabFilters;
145+
}
115146
}

0 commit comments

Comments
 (0)