Skip to content

Commit

Permalink
Merge pull request #148 from Power-Components/tests
Browse files Browse the repository at this point in the history
add disabled input text
  • Loading branch information
luanfreitasdev authored Nov 24, 2021
2 parents 23c651f + f5dc0ec commit e6a7064
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 17 deletions.
48 changes: 34 additions & 14 deletions resources/views/components/filters/input-text.blade.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
@props([
'theme' => '',
'enabledFilters' => [],
'column' => null,
'inline' => null,
'inputText' => null
Expand All @@ -16,34 +17,53 @@
<select id="input_text_options"
class="power_grid {{ $theme->selectClass }} {{ data_get($column, 'headerClass') }}"
style="{{ data_get($column, 'headerStyle') }}"
wire:model.debounce.800ms="filters.input_option_text.{{ data_get($inputText, 'field') }}"
wire:model.debounce.800ms="filters.input_option_text.{{ data_get($inputText, 'field') }}"
wire:input.debounce.300ms="filterInputTextOptions('{{ data_get($inputText, 'field') }}', $event.target.value, '{{ data_get($inputText, 'label') }}')">
<option value="contains">{{ trans('livewire-powergrid::datatable.input_text_options.contains') }}</option>
<option value="contains_not">{{ trans('livewire-powergrid::datatable.input_text_options.contains_not') }}</option>
<option value="is">{{ trans('livewire-powergrid::datatable.input_text_options.is') }}</option>
<option value="is_not">{{ trans('livewire-powergrid::datatable.input_text_options.is_not') }}</option>
<option value="starts_with">{{ trans('livewire-powergrid::datatable.input_text_options.starts_with') }}</option>
<option value="ends_with">{{ trans('livewire-powergrid::datatable.input_text_options.ends_with') }}</option>
<option value="is_null">{{ trans('livewire-powergrid::datatable.input_text_options.is_null') }}</option>
<option value="is_not_null">{{ trans('livewire-powergrid::datatable.input_text_options.is_not_null') }}</option>
<option value="is_blank">{{ trans('livewire-powergrid::datatable.input_text_options.is_blank') }}</option>
<option value="is_not_blank">{{ trans('livewire-powergrid::datatable.input_text_options.is_not_blank') }}</option>
<option value="is_empty">{{ trans('livewire-powergrid::datatable.input_text_options.is_empty') }}</option>
<option value="is_not_empty">{{ trans('livewire-powergrid::datatable.input_text_options.is_not_empty') }}</option>
<option
value="contains">{{ trans('livewire-powergrid::datatable.input_text_options.contains') }}</option>
<option
value="contains_not">{{ trans('livewire-powergrid::datatable.input_text_options.contains_not') }}</option>
<option
value="is">{{ trans('livewire-powergrid::datatable.input_text_options.is') }}</option>
<option
value="is_not">{{ trans('livewire-powergrid::datatable.input_text_options.is_not') }}</option>
<option
value="starts_with">{{ trans('livewire-powergrid::datatable.input_text_options.starts_with') }}</option>
<option
value="ends_with">{{ trans('livewire-powergrid::datatable.input_text_options.ends_with') }}</option>
<option
value="is_null">{{ trans('livewire-powergrid::datatable.input_text_options.is_null') }}</option>
<option
value="is_not_null">{{ trans('livewire-powergrid::datatable.input_text_options.is_not_null') }}</option>
<option
value="is_blank">{{ trans('livewire-powergrid::datatable.input_text_options.is_blank') }}</option>
<option
value="is_not_blank">{{ trans('livewire-powergrid::datatable.input_text_options.is_not_blank') }}</option>
<option
value="is_empty">{{ trans('livewire-powergrid::datatable.input_text_options.is_empty') }}</option>
<option
value="is_not_empty">{{ trans('livewire-powergrid::datatable.input_text_options.is_not_empty') }}</option>
</select>
<div class="{{ $theme->relativeDivClass }}">
<x-livewire-powergrid::icons.down class="w-4 h-4"/>
</div>
</div>
</div>
<div class="mt-1">
<input
@if(isset($enabledFilters[data_get($inputText, 'field')]))
<input @if($enabledFilters[data_get($inputText, 'field')]['disabled']) disabled @endif
type="text"
class="power_grid {{ $theme->inputClass }}"
placeholder="{{ empty($column)?data_get($inputText, 'label'):($column->placeholder?:$column->title) }}">
@else
<input
data-id="{{ data_get($inputText, 'field') }}"
wire:model.debounce.800ms="filters.input_text.{{ data_get($inputText, 'field') }}"
wire:input.debounce.800ms="filterInputText('{{ data_get($inputText, 'field') }}', $event.target.value, '{{ data_get($inputText, 'label') }}')"
type="text"
class="power_grid {{ $theme->inputClass }}"
placeholder="{{ empty($column)?data_get($inputText, 'label'):($column->placeholder?:$column->title) }}">
@endif
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
'checkbox' => null,
'columns' => null,
'actions' => null,
'theme' => null
'theme' => null,
'enabledFilters' => null,
])
<div class="w-full my-3 dark:bg-gray-800">
<div x-data={show:true} class="rounded-sm">
Expand Down Expand Up @@ -54,6 +55,7 @@ classAttr="w-full"
@foreach(data_get($makeFilters, 'input_text', []) as $field => $inputText)
<div class="flex flex-col mb-2 md:w-1/2 lg:w-1/4">
<x-livewire-powergrid::filters.input-text
:enabledFilters="$enabledFilters"
:inputText="$inputText"
:inline="false"
:theme="$theme->filterInputText"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<div>
<x-livewire-powergrid::frameworks.tailwind.filter
:makeFilters="$makeFilters"
:filters="$filters"
:theme="$theme"
/>
</div>
Expand Down
4 changes: 3 additions & 1 deletion resources/views/components/inline-filters.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
'checkbox' => null,
'columns' => null,
'actions' => null,
'theme' => null
'theme' => null,
'enabledFilters' => null,
])
<div>
@if(config('livewire-powergrid.filter') === 'inline')
Expand Down Expand Up @@ -62,6 +63,7 @@
@if(data_get($inputText, 'field') === $column->field)
<x-livewire-powergrid::filters.input-text
:inputText="$inputText"
:enabledFilters="$enabledFilters"
:column="$column"
:inline="true"
:theme="$theme->filterInputText"/>
Expand Down
1 change: 1 addition & 0 deletions resources/views/components/table.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
:actions="$actions"
:columns="$columns"
:theme="$theme"
:enabledFilters="$enabledFilters"
/>
@if(is_null($data) || count($data) === 0)
<th>
Expand Down
9 changes: 8 additions & 1 deletion src/Traits/Filter.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace PowerComponents\LivewirePowerGrid\Traits;

use Illuminate\Support\Collection;
use Illuminate\Support\{Arr, Collection};
use PowerComponents\LivewirePowerGrid\Column;

trait Filter
Expand Down Expand Up @@ -194,6 +194,13 @@ public function filterInputTextOptions(string $field, string $value, string $lab

$this->resetPage();

if (in_array($value, ['is_empty', 'is_not_empty', 'is_null', 'is_not_null', 'is_blank', 'is_not_blank'])) {
$this->enabledFilters[$field]['disabled'] = true;
$this->filters['input_text'][$field] = null;
} else {
$this->enabledFilters[$field]['disabled'] = false;
}

if ($value == '') {
$this->clearFilter($field);
}
Expand Down

0 comments on commit e6a7064

Please sign in to comment.