Skip to content

Commit 6ce76cd

Browse files
committed
Fixed search
1 parent fd5353a commit 6ce76cd

15 files changed

+161
-106
lines changed

CHANGELOG.md

+10-4
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1212
- SMS
1313
- Payments
1414

15-
<!--- ## 1.0.0 - 2023-XX-XX
15+
<!--- ## 1.0.0 - 2024-XX-XX
1616
### Added
1717
### Changed
1818
### Fixed
1919
### Removed --->
2020

21-
## 1.2.1 - 2023-08-24
21+
## 1.2.2 - 2024-08-25
22+
### Fixed
23+
- Kanban board search
24+
- Search when not using encrypted fields
25+
- Bug when custom field has been deleted
26+
27+
## 1.2.1 - 24-08-24
2228
### Fixed
2329
- Force seed pipeline settings
2430

25-
## 1.2.0 - 2023-08-24
31+
## 1.2.0 - 2024-08-24
2632
### Added
2733
- Kanban boards
2834
- Custom Fields
@@ -38,7 +44,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3844
- But when added organization
3945
- Version check
4046

41-
## 1.1.0 - 2023-06-17
47+
## 1.1.0 - 2024-06-17
4248
### Added
4349
- Support for Laravel 11
4450
- Product barcode

config/package.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313
|
1414
*/
1515

16-
'version' => '1.2.1',
16+
'version' => '1.2.2',
1717

1818
];

resources/views/deals/partials/card-board.blade.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
@endcomponent
2323

2424
@component('laravel-crm::components.card-table')
25-
26-
<livewire:live-deal-board />
25+
26+
<livewire:live-deal-board :deals="$deals" />
2727

2828
@endcomponent
2929

resources/views/leads/partials/card-board.blade.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
@component('laravel-crm::components.card-table')
2525

26-
<livewire:live-lead-board />
26+
<livewire:live-lead-board :leads="$leads" />
2727

2828
@endcomponent
2929

resources/views/quotes/partials/card-board.blade.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
@endcomponent
2323

2424
@component('laravel-crm::components.card-table')
25-
26-
<livewire:live-quote-board />
25+
26+
<livewire:live-quote-board :quotes="$quotes" />
2727

2828
@endcomponent
2929

src/Http/Controllers/DealController.php

+23-17
Original file line numberDiff line numberDiff line change
@@ -285,15 +285,6 @@ public function search(Request $request)
285285
{
286286
$viewSetting = auth()->user()->crmSettings()->where('name', 'view_deals')->first();
287287

288-
if(! $viewSetting) {
289-
auth()->user()->crmSettings()->create([
290-
'name' => 'view_deals',
291-
'value' => 'list',
292-
]);
293-
} elseif($viewSetting->value == 'board') {
294-
return redirect(route('laravel-crm.deals.board'));
295-
}
296-
297288
$searchValue = Deal::searchValue($request);
298289

299290
if (! $searchValue || trim($searchValue) == '') {
@@ -318,8 +309,15 @@ public function search(Request $request)
318309
foreach ($record->getSearchable() as $field) {
319310
if (Str::contains($field, '.')) {
320311
$field = explode('.', $field);
321-
if ($record->{$field[1]} && $descryptedField = decrypt($record->{$field[1]})) {
322-
if (Str::contains(strtolower($descryptedField), strtolower($searchValue))) {
312+
313+
if(config('laravel-crm.encrypt_db_fields')) {
314+
$relatedField = decrypt($record->{$field[1]});
315+
} else {
316+
$relatedField = $record->{$field[1]};
317+
}
318+
319+
if ($record->{$field[1]} && $relatedField) {
320+
if (Str::contains(strtolower($relatedField), strtolower($searchValue))) {
323321
return $record;
324322
}
325323
}
@@ -331,12 +329,20 @@ public function search(Request $request)
331329
}
332330
});
333331

334-
return view('laravel-crm::deals.index', [
335-
'deals' => $deals,
336-
'searchValue' => $searchValue ?? null,
337-
'viewSetting' => $viewSetting->value ?? null,
338-
'pipeline' => Pipeline::where('model', get_class(new Deal()))->first(),
339-
]);
332+
if($viewSetting->value === 'board') {
333+
return view('laravel-crm::deals.board', [
334+
'deals' => $deals,
335+
'searchValue' => $searchValue ?? null,
336+
'viewSetting' => $viewSetting->value ?? null
337+
]);
338+
} else {
339+
return view('laravel-crm::deals.index', [
340+
'deals' => $deals,
341+
'searchValue' => $searchValue ?? null,
342+
'viewSetting' => $viewSetting->value ?? null,
343+
'pipeline' => Pipeline::where('model', get_class(new Deal()))->first(),
344+
]);
345+
}
340346
}
341347

342348
/**

src/Http/Controllers/DeliveryController.php

+9-2
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,15 @@ public function search(Request $request)
240240
foreach ($record->getSearchable() as $field) {
241241
if (Str::contains($field, '.')) {
242242
$field = explode('.', $field);
243-
if ($record->{$field[1]} && $descryptedField = decrypt($record->{$field[1]})) {
244-
if (Str::contains(strtolower($descryptedField), strtolower($searchValue))) {
243+
244+
if(config('laravel-crm.encrypt_db_fields')) {
245+
$relatedField = decrypt($record->{$field[1]});
246+
} else {
247+
$relatedField = $record->{$field[1]};
248+
}
249+
250+
if ($record->{$field[1]} && $relatedField) {
251+
if (Str::contains(strtolower($relatedField), strtolower($searchValue))) {
245252
return $record;
246253
}
247254
}

src/Http/Controllers/InvoiceController.php

+9-2
Original file line numberDiff line numberDiff line change
@@ -254,8 +254,15 @@ public function search(Request $request)
254254
foreach ($record->getSearchable() as $field) {
255255
if (Str::contains($field, '.')) {
256256
$field = explode('.', $field);
257-
if ($record->{$field[1]} && $descryptedField = decrypt($record->{$field[1]})) {
258-
if (Str::contains(strtolower($descryptedField), strtolower($searchValue))) {
257+
258+
if(config('laravel-crm.encrypt_db_fields')) {
259+
$relatedField = decrypt($record->{$field[1]});
260+
} else {
261+
$relatedField = $record->{$field[1]};
262+
}
263+
264+
if ($record->{$field[1]} && $relatedField) {
265+
if (Str::contains(strtolower($relatedField), strtolower($searchValue))) {
259266
return $record;
260267
}
261268
}

src/Http/Controllers/LeadController.php

+23-18
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ public function index(Request $request)
7474
$leads = Lead::filter($params)->whereNull('converted_at')->latest()->paginate(30);
7575
}
7676

77-
7877
return view('laravel-crm::leads.index', [
7978
'leads' => $leads,
8079
'viewSetting' => $viewSetting->value ?? null,
@@ -280,15 +279,6 @@ public function search(Request $request)
280279
{
281280
$viewSetting = auth()->user()->crmSettings()->where('name', 'view_leads')->first();
282281

283-
if(! $viewSetting) {
284-
auth()->user()->crmSettings()->create([
285-
'name' => 'view_leads',
286-
'value' => 'list',
287-
]);
288-
} elseif($viewSetting->value == 'board') {
289-
return redirect(route('laravel-crm.leads.board'));
290-
}
291-
292282
$searchValue = Lead::searchValue($request);
293283

294284
if (! $searchValue || trim($searchValue) == '') {
@@ -314,8 +304,15 @@ public function search(Request $request)
314304
foreach ($record->getSearchable() as $field) {
315305
if (Str::contains($field, '.')) {
316306
$field = explode('.', $field);
317-
if ($record->{$field[1]} && $descryptedField = decrypt($record->{$field[1]})) {
318-
if (Str::contains(strtolower($descryptedField), strtolower($searchValue))) {
307+
308+
if(config('laravel-crm.encrypt_db_fields')) {
309+
$relatedField = decrypt($record->{$field[1]});
310+
} else {
311+
$relatedField = $record->{$field[1]};
312+
}
313+
314+
if ($record->{$field[1]} && $relatedField) {
315+
if (Str::contains(strtolower($relatedField), strtolower($searchValue))) {
319316
return $record;
320317
}
321318
}
@@ -327,12 +324,20 @@ public function search(Request $request)
327324
}
328325
});
329326

330-
return view('laravel-crm::leads.index', [
331-
'leads' => $leads,
332-
'searchValue' => $searchValue ?? null,
333-
'viewSetting' => $viewSetting->value ?? null,
334-
'pipeline' => Pipeline::where('model', get_class(new Lead()))->first(),
335-
]);
327+
if($viewSetting->value === 'board') {
328+
return view('laravel-crm::leads.board', [
329+
'leads' => $leads,
330+
'searchValue' => $searchValue ?? null,
331+
'viewSetting' => $viewSetting->value ?? null
332+
]);
333+
} else {
334+
return view('laravel-crm::leads.index', [
335+
'leads' => $leads,
336+
'searchValue' => $searchValue ?? null,
337+
'viewSetting' => $viewSetting->value ?? null,
338+
'pipeline' => Pipeline::where('model', get_class(new Lead()))->first(),
339+
]);
340+
}
336341
}
337342

338343
/**

src/Http/Controllers/OrderController.php

+9-2
Original file line numberDiff line numberDiff line change
@@ -344,8 +344,15 @@ public function search(Request $request)
344344
foreach ($record->getSearchable() as $field) {
345345
if (Str::contains($field, '.')) {
346346
$field = explode('.', $field);
347-
if ($record->{$field[1]} && $descryptedField = decrypt($record->{$field[1]})) {
348-
if (Str::contains(strtolower($descryptedField), strtolower($searchValue))) {
347+
348+
if(config('laravel-crm.encrypt_db_fields')) {
349+
$relatedField = decrypt($record->{$field[1]});
350+
} else {
351+
$relatedField = $record->{$field[1]};
352+
}
353+
354+
if ($record->{$field[1]} && $relatedField) {
355+
if (Str::contains(strtolower($relatedField), strtolower($searchValue))) {
349356
return $record;
350357
}
351358
}

src/Http/Controllers/PurchaseOrderController.php

+9-2
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,15 @@ public function search(Request $request)
316316
foreach ($record->getSearchable() as $field) {
317317
if (Str::contains($field, '.')) {
318318
$field = explode('.', $field);
319-
if ($record->{$field[1]} && $descryptedField = decrypt($record->{$field[1]})) {
320-
if (Str::contains(strtolower($descryptedField), strtolower($searchValue))) {
319+
320+
if(config('laravel-crm.encrypt_db_fields')) {
321+
$relatedField = decrypt($record->{$field[1]});
322+
} else {
323+
$relatedField = $record->{$field[1]};
324+
}
325+
326+
if ($record->{$field[1]} && $relatedField) {
327+
if (Str::contains(strtolower($relatedField), strtolower($searchValue))) {
321328
return $record;
322329
}
323330
}

src/Http/Controllers/QuoteController.php

+23-17
Original file line numberDiff line numberDiff line change
@@ -305,15 +305,6 @@ public function search(Request $request)
305305
{
306306
$viewSetting = auth()->user()->crmSettings()->where('name', 'view_quotes')->first();
307307

308-
if(! $viewSetting) {
309-
auth()->user()->crmSettings()->create([
310-
'name' => 'view_quotes',
311-
'value' => 'list',
312-
]);
313-
} elseif($viewSetting->value == 'board') {
314-
return redirect(route('laravel-crm.quotes.board'));
315-
}
316-
317308
$searchValue = Quote::searchValue($request);
318309

319310
if (! $searchValue || trim($searchValue) == '') {
@@ -339,8 +330,15 @@ public function search(Request $request)
339330
foreach ($record->getSearchable() as $field) {
340331
if (Str::contains($field, '.')) {
341332
$field = explode('.', $field);
342-
if ($record->{$field[1]} && $descryptedField = decrypt($record->{$field[1]})) {
343-
if (Str::contains(strtolower($descryptedField), strtolower($searchValue))) {
333+
334+
if(config('laravel-crm.encrypt_db_fields')) {
335+
$relatedField = decrypt($record->{$field[1]});
336+
} else {
337+
$relatedField = $record->{$field[1]};
338+
}
339+
340+
if ($record->{$field[1]} && $relatedField) {
341+
if (Str::contains(strtolower($relatedField), strtolower($searchValue))) {
344342
return $record;
345343
}
346344
}
@@ -352,12 +350,20 @@ public function search(Request $request)
352350
}
353351
});
354352

355-
return view('laravel-crm::quotes.index', [
356-
'quotes' => $quotes,
357-
'searchValue' => $searchValue ?? null,
358-
'viewSetting' => $viewSetting->value ?? null,
359-
'pipeline' => Pipeline::where('model', get_class(new Quote()))->first(),
360-
]);
353+
if($viewSetting->value === 'board') {
354+
return view('laravel-crm::quotes.board', [
355+
'quotes' => $quotes,
356+
'searchValue' => $searchValue ?? null,
357+
'viewSetting' => $viewSetting->value ?? null
358+
]);
359+
} else {
360+
return view('laravel-crm::quotes.index', [
361+
'quotes' => $quotes,
362+
'searchValue' => $searchValue ?? null,
363+
'viewSetting' => $viewSetting->value ?? null,
364+
'pipeline' => Pipeline::where('model', get_class(new Quote()))->first(),
365+
]);
366+
}
361367
}
362368

363369
/**

src/Http/Livewire/LiveDealBoard.php

+13-12
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ class LiveDealBoard extends KanbanBoard
1111
{
1212
public $model = 'deal';
1313

14+
public $deals;
15+
1416
public function stages(): Collection
1517
{
1618
if($pipeline = Pipeline::where('model', get_class(new Deal()))->first()) {
@@ -30,17 +32,16 @@ public function onStageChanged($recordId, $stageId, $fromOrderedIds, $toOrderedI
3032

3133
public function records(): Collection
3234
{
33-
return Deal::get()
34-
->map(function (Deal $deal) {
35-
return [
36-
'id' => $deal->id,
37-
'title' => $deal->title,
38-
'labels' => $deal->labels,
39-
'stage' => $deal->pipelineStage->id ?? $this->firstStageId(),
40-
'number' => $deal->deal_id,
41-
'amount' => $deal->amount,
42-
'currency' => $deal->currency,
43-
];
44-
});
35+
return $this->deals->map(function (Deal $deal) {
36+
return [
37+
'id' => $deal->id,
38+
'title' => $deal->title,
39+
'labels' => $deal->labels,
40+
'stage' => $deal->pipelineStage->id ?? $this->firstStageId(),
41+
'number' => $deal->deal_id,
42+
'amount' => $deal->amount,
43+
'currency' => $deal->currency,
44+
];
45+
});
4546
}
4647
}

0 commit comments

Comments
 (0)