Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Sarun Mungthanya
SpnPatch-Laravel
Commits
a11e8bc8
Commit
a11e8bc8
authored
Jul 15, 2024
by
Thidaporn Laisan
Browse files
update create parameter and delete
parent
6014fa9c
Changes
7
Hide whitespace changes
Inline
Side-by-side
app/Http/Livewire/Pages/Parameter/ParameterCreate.php
0 → 100644
View file @
a11e8bc8
<?php
namespace
App\Http\Livewire\Pages\Parameter
;
use
Livewire\Component
;
use
App\Models\ConfParameter
;
use
App\Models\TabParameterInfo
;
use
App\Models\TabSpnpage
;
class
ParameterCreate
extends
Component
{
public
$name
,
$message
,
$value
,
$description
,
$active
=
'Y'
,
$pageCode
;
public
$searchByPage
=
[];
public
function
mount
()
{
$this
->
searchByPage
=
TabSpnpage
::
select
(
'pagecode'
,
'pagename'
)
->
get
()
->
toArray
();
}
public
function
addParameter
()
{
$this
->
validate
([
'name'
=>
'required|string|max:30'
,
'value'
=>
'required|string|max:50'
,
'description'
=>
'required|string|max:100'
,
'active'
=>
'required'
,
'pageCode'
=>
'required'
,
]);
ConfParameter
::
create
([
'name'
=>
$this
->
name
,
'value'
=>
$this
->
value
,
'description'
=>
$this
->
description
,
'active'
=>
$this
->
active
,
]);
TabParameterInfo
::
create
([
'parameterName'
=>
$this
->
name
,
'pageCode'
=>
$this
->
pageCode
,
]);
$this
->
reset
([
'name'
,
'value'
,
'description'
,
'active'
,
'pageCode'
]);
$this
->
emit
(
'showparameterListForm'
);
session
()
->
flash
(
'message'
,
'Parameter added successfully!'
);
}
public
function
render
()
{
return
view
(
'livewire.pages.parameter.parameter-create'
);
}
}
app/Http/Livewire/Pages/Parameter/ParameterIndex.php
View file @
a11e8bc8
...
...
@@ -11,10 +11,11 @@ use App\Models\TabSpnpage;
class
ParameterIndex
extends
Component
{
use
WithPagination
;
public
$action
=
'list'
;
public
$searchBy
,
$searchByPage
,
$editPid
,
$message
,
$keyword
,
$perPage
=
1
0
,
$searchSelected
=
'name'
,
$searchSelectedPage
=
''
;
p
rotected
$listeners
=
[
'deleteItem'
,
'deleteSelected'
,
'showparameterListForm'
];
public
$action
=
'list'
;
public
$searchBy
,
$searchByPage
,
$editPid
,
$message
,
$keyword
,
$perPage
=
2
0
,
$searchSelected
=
'name'
,
$searchSelectedPage
=
''
;
p
ublic
$selectedParameters
=
[
];
protected
$listeners
=
[
'deleteItem'
,
'deleteSelected'
,
'showparameterListForm'
];
public
function
mount
()
{
...
...
@@ -23,35 +24,35 @@ class ParameterIndex extends Component
'value'
=>
'By Value'
,
'description'
=>
'By Description'
];
$this
->
searchByPage
=
TabSpnpage
::
select
(
'pagecode'
,
'pagename'
)
->
get
()
->
toArray
();
logger
(
$this
->
searchByPage
);
}
public
function
render
()
{
$query
=
ConfParameter
::
select
(
'conf_parameter.PID'
,
'conf_parameter.name'
,
'conf_parameter.value'
,
'conf_parameter.description'
,
'conf_parameter.active'
,
'tab_parameter_info.pageCode'
)
->
leftJoin
(
'tab_parameter_info'
,
'conf_parameter.name'
,
'='
,
'tab_parameter_info.parameterName'
);
if
(
$this
->
searchSelected
&&
$this
->
keyword
)
{
$query
->
where
(
$this
->
searchSelected
,
'LIKE'
,
'%'
.
$this
->
keyword
.
'%'
);
}
if
(
$this
->
searchSelectedPage
)
{
$query
->
where
(
'tab_parameter_info.pageCode'
,
$this
->
searchSelectedPage
);
}
$query
->
orderBy
(
'PID'
,
'DESC'
);
$results
=
$query
->
paginate
(
$this
->
perPage
);
return
view
(
'livewire.pages.parameter.parameter-index'
,
compact
(
'results'
));
}
public
function
search
()
{
$this
->
resetPage
();
}
public
function
showparameterListForm
()
{
$this
->
action
=
'list'
;
...
...
@@ -66,8 +67,37 @@ class ParameterIndex extends Component
{
$this
->
editPid
=
$pid
;
$this
->
action
=
'edit'
;
// $this->emit('showpatchEditForm');
}
public
function
showparameterDeleteForm
(
$pid
)
{
$this
->
deletePid
=
$pid
;
$this
->
action
=
'delete'
;
}
public
function
deleteParameter
(
$pid
)
{
$parameter
=
ConfParameter
::
where
(
'PID'
,
$pid
)
->
firstOrFail
();
$parameterName
=
$parameter
->
name
;
ConfParameter
::
where
(
'PID'
,
$pid
)
->
delete
();
TabParameterInfo
::
where
(
'parameterName'
,
$parameterName
)
->
delete
();
session
()
->
flash
(
'message'
,
'Parameter deleted successfully!'
);
$this
->
showparameterListForm
();
}
public
function
deleteSelectedParameters
()
{
$parameters
=
ConfParameter
::
whereIn
(
'PID'
,
$this
->
selectedParameters
)
->
get
();
foreach
(
$parameters
as
$parameter
)
{
$parameterName
=
$parameter
->
name
;
ConfParameter
::
where
(
'PID'
,
$parameter
->
PID
)
->
delete
();
TabParameterInfo
::
where
(
'parameterName'
,
$parameterName
)
->
delete
();
}
session
()
->
flash
(
'message'
,
'Selected parameters deleted successfully!'
);
$this
->
selectedParameters
=
[];
$this
->
showparameterListForm
();
}
}
app/Models/ConfParameter.php
View file @
a11e8bc8
...
...
@@ -6,7 +6,9 @@ use Illuminate\Database\Eloquent\Model;
class
ConfParameter
extends
Model
{
public
$timestamps
=
false
;
protected
$table
=
'conf_parameter'
;
protected
$fillable
=
[
'PID'
,
'name'
,
...
...
app/Models/TabParameterInfo.php
View file @
a11e8bc8
...
...
@@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Model;
class
TabParameterInfo
extends
Model
{
public
$timestamps
=
false
;
protected
$table
=
'tab_parameter_info'
;
protected
$fillable
=
[
'infoid'
,
...
...
bootstrap/cache/livewire-components.php
View file @
a11e8bc8
...
...
@@ -3,6 +3,7 @@
'delete-modal'
=>
'App\\Http\\Livewire\\DeleteModal'
,
'main-container'
=>
'App\\Http\\Livewire\\MainContainer'
,
'navbar'
=>
'App\\Http\\Livewire\\Navbar'
,
'pages.parameter.parameter-create'
=>
'App\\Http\\Livewire\\Pages\\Parameter\\ParameterCreate'
,
'pages.parameter.parameter-index'
=>
'App\\Http\\Livewire\\Pages\\Parameter\\ParameterIndex'
,
'pages.patch.modal-edit-code'
=>
'App\\Http\\Livewire\\Pages\\Patch\\ModalEditCode'
,
'pages.patch.patch-create'
=>
'App\\Http\\Livewire\\Pages\\Patch\\PatchCreate'
,
...
...
resources/views/livewire/pages/parameter/parameter-create.blade.php
0 → 100644
View file @
a11e8bc8
<div>
<button
type=
"button"
wire:click=
"loadPage('Parameter')"
class=
"btn mx-auto m-3 text-white bg-primary px-3 py-2"
>
Back
</button>
<div
class=
"max-w-full mx-auto p-6 bg-gray-100"
>
<div
class=
"w-full px-6 mb-12 flex justify-center"
>
<div
class=
"p-12 bg-white shadow-md rounded-lg w-1/2"
>
<h2
class=
"text-2xl font-bold mb-4"
>
Create Parameter
</h2>
<div
class=
"mx-auto p-4"
>
@if (session()->has('message'))
<div
class=
"alert alert-success"
>
{{ session('message') }}
</div>
@endif
<form
wire:submit.prevent=
"addParameter"
>
<div
class=
"mb-4"
>
<label
for=
"name"
class=
"block text-sm font-medium text-gray-700"
>
Name
</label>
<input
type=
"text"
wire:model.defer=
"name"
id=
"name"
class=
"w-full mt-1 p-2 border border-gray-300 rounded-md"
>
@error('name')
<span
class=
"text-red-500"
>
{{ $message }}
</span>
@enderror
</div>
<div
class=
"mb-4"
>
<label
for=
"value"
class=
"block text-sm font-medium text-gray-700"
>
Value
</label>
<input
type=
"text"
wire:model.defer=
"value"
id=
"value"
class=
"w-full mt-1 p-2 border border-gray-300 rounded-md"
>
@error('value')
<span
class=
"text-red-500"
>
{{ $message }}
</span>
@enderror
</div>
<div
class=
"mb-4"
>
<label
for=
"description"
class=
"block text-sm font-medium text-gray-700"
>
Description
</label>
<textarea
wire:model.defer=
"description"
id=
"description"
class=
"w-full mt-1 p-2 border border-gray-300 rounded-md"
></textarea>
@error('description')
<span
class=
"text-red-500"
>
{{ $message }}
</span>
@enderror
</div>
<div
class=
"mb-4"
>
<label
for=
"active"
class=
"block text-sm font-medium text-gray-700"
>
Active
</label>
<select
wire:model.defer=
"active"
id=
"active"
class=
"w-full mt-1 p-2 border border-gray-300 rounded-md"
>
<option
value=
"Y"
>
Yes
</option>
<option
value=
"N"
>
No
</option>
</select>
@error('active')
<span
class=
"text-red-500"
>
{{ $message }}
</span>
@enderror
</div>
<div
class=
"mb-4"
>
<label
for=
"pageCode"
class=
"block text-sm font-medium text-gray-700"
>
Page Code
</label>
<select
wire:model.defer=
"pageCode"
id=
"pageCode"
class=
"w-full mt-1 p-2 border border-gray-300 rounded-md"
>
@foreach ($searchByPage as $page)
<option
value=
""
>
Please Select
</option>
<option
value=
"{{ $page['pagecode'] }}"
>
{{ $page['pagename'] }}
</option>
@endforeach
</select>
@error('pageCode')
<span
class=
"text-red-500"
>
{{ $message }}
</span>
@enderror
</div>
<div
class=
"flex items-center justify-end"
>
<button
type=
"submit"
class=
"ml-3 inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
>
Save
</button>
</div>
</form>
</div>
</div>
</div>
</div>
resources/views/livewire/pages/parameter/parameter-index.blade.php
View file @
a11e8bc8
<div
wire:loading.remove
>
<div
wire:loading.remove
>
<style>
table
{
width
:
100%
;
...
...
@@ -11,12 +10,6 @@
}
</style>
<main
class=
"m-2"
>
{{--
<div
wire:loading.class=
"flex"
wire:loading.class.remove=
"hidden"
class=
"absolute inset-0 items-center justify-center z-50 bg-slate-50 dark:bg-navy-900 hidden"
>
<div
class=
"flex justify-center items-center "
>
<div
class=
"animate-spin rounded-full h-32 w-32 border-t-2 border-b-2 border-blue-500"
></div>
</div>
</div>
--}}
@if ($action === 'list')
@if ($message)
<div
class=
"alert alert-success"
>
...
...
@@ -27,19 +20,19 @@
</div>
</div>
@endif
<div
class=
"grid grid-cols-1 gap-4 sm:gap-5 lg:gap-6 "
>
<div
class=
"grid grid-cols-1 gap-4 sm:gap-5 lg:gap-6"
>
<div
class=
"pb-4"
>
<div
class=
"my-3 flex h-8 items-center justify-between px-4 sm:px-5"
>
<h2
class=
"font-medium tracking-wide text-slate-700 line-clamp-1 dark:text-navy-100 lg:text-base"
>
<h2
class=
"font-medium tracking-wide text-slate-700 line-clamp-1 dark:text-navy-100 lg:text-base"
>
SPN Parameter
</h2>
</div>
<div
class=
"flex justify-between"
>
<div
class=
"px-2 ml-4"
>
<button
type=
"button"
class=
"py-2 px-3 bg-stone-700 rounded-lg text-white"
wire:click=
"showparameterAddForm"
>
Add
</button>
<button
type=
"button"
class=
"py-2 px-3 bg-stone-700 rounded-lg text-white"
wire:click=
"showparameterAddForm"
>
Add
</button>
<button
type=
"button"
class=
"py-2 px-3 bg-stone-700 rounded-lg text-white"
wire:click=
"deleteSelectedParameters"
>
Delete
</button>
</div>
<div
class=
"inline-flex flex-initial"
>
<div
x-data=
"{ isInputActive: true }"
>
...
...
@@ -72,14 +65,10 @@
<select
wire:model.defer=
"searchSelectedPage"
class=
"form-select h-9 w-full rounded-lg border border-slate-300 bg-white px-3 py-2 hover:border-slate-400 focus:border-primary dark:border-navy-450 dark:bg-navy-700 dark:hover:border-navy-400 dark:focus:border-accent"
>
@foreach ($searchByPage as $page)
@if (isset($page['pagecode'])
&&
isset($page['pagename']))
<option
value=
""
>
Please Select
</option>
<option
value=
"{{ $page['pagecode'] }}"
>
{{ $page['pagename'] }}
</option>
@endif
<option
value=
"{{ $page['pagecode'] }}"
>
{{ $page['pagename'] }}
</option>
@endforeach
</select>
</span>
<button
type=
"button"
class=
"bg-stone-700 text-white px-4 py-2 rounded"
wire:click=
"search"
>
Search
</button>
</div>
...
...
@@ -95,7 +84,7 @@
<th
class=
"whitespace-nowrap rounded-tl-lg bg-slate-200 px-4 py-3 font-semibold uppercase text-slate-800 dark:bg-navy-800 dark:text-navy-100 lg:px-5"
>
#
</th>
</th>
<th
class=
"whitespace-nowrap bg-slate-200 px-2 py-3 font-semibold uppercase text-slate-800 dark:bg-navy-800 dark:text-navy-100 lg:px-2"
>
Name
...
...
@@ -123,32 +112,32 @@
</tr>
</thead>
<tbody>
@foreach ($results as $para)
<tr
class=
"border-y border-transparent border-b-slate-200 dark:border-b-navy-500"
>
<tr
class=
"border-y border-transparent border-b-slate-200 dark:border-b-navy-500"
>
<td
class=
"whitespace-nowrap px-4 py-3 sm:px-5"
>
<label
class=
"inline-flex items-center space-x-2"
>
<input
class=
"form-checkbox is-basic h-4 w-4 rounded
border-slate-400/70 checked:bg-primary checked:border-primary hover:border-primary focus:border-primary dark:bg-navy-900 dark:border-navy-500 dark:checked:bg-accent dark:checked:border-accent dark:hover:border-accent dark:focus:border-accent"
type=
"checkbox"
wire:model.defer=
"selectedParameter"
value=
"{{ $para->
id
}}"
/>
class=
"form-checkbox is-basic h-4 w-4 rounded border-slate-400/70 checked:bg-primary checked:border-primary hover:border-primary focus:border-primary dark:bg-navy-900 dark:border-navy-500 dark:checked:bg-accent dark:checked:border-accent dark:hover:border-accent dark:focus:border-accent"
type=
"checkbox"
wire:model.defer=
"selectedParameter
s
"
value=
"{{ $para->
PID
}}"
/>
</label>
</td>
<td
class=
"whitespace-nowrap px-1 py-3 sm:px-2"
>
{{ \Illuminate\Support\Str::limit($para->name, 40) }}
</td>
<td
class=
"whitespace-nowrap px-1 py-3 sm:px-2"
>
{{ $para->value }}
</td>
<td
class=
"whitespace-nowrap px-1 py-3 sm:px-2"
>
{{ $para->description }}
</td>
<td
class=
"whitespace-nowrap px-1 py-3 sm:px-2"
>
{{ $para->pageCode }}
<td
class=
"whitespace-nowrap px-1 py-3 sm:px-2"
>
{{ $para->active }}
</td>
<td
class=
"whitespace-nowrap px-1 py-3 sm:px-2"
>
{{ $para->pageCode }}
</td>
<td
class=
"whitespace-nowrap px-1 py-3 sm:px-2"
>
{{ $para->active }}
</td>
<td
class=
"whitespace-nowrap px-1 py-3 sm:px-2"
>
<div
class=
"flex justify-center space-x-2"
>
<a
wire:click=
"showparameterEditForm({{ $para->PID }})"
class=
"btn h-8 w-8 p-0 text-info hover:bg-info/20 focus:bg-info/20 active:bg-info/25"
>
<i
class=
"fa fa-edit"
></i>
</a>
<a
wire:click=
"deleteParameter({{ $para->PID }})"
class=
"btn h-8 w-8 p-0 text-danger hover:bg-danger/20 focus:bg-danger/20 active:bg-danger/25"
>
<i
class=
"fa fa-trash"
></i>
</a>
</div>
</td>
</tr>
...
...
@@ -156,17 +145,16 @@
</tbody>
</table>
</div>
<livewire:delete-modal
/>
{{ $results->links('livewire.paginate-custom') }}
</div>
</div>
</div>
@elseif($action === 'add')
<livewire:pages.parameter.parameter-create
>
<livewire:pages.parameter.parameter-create
/
>
@elseif($action === 'edit')
<livewire:pages.parameter.parameter-edit
:editPid=
"$editPid"
>
<livewire:pages.parameter.parameter-edit
:editPid=
"$editPid"
/
>
@endif
</main>
</div>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment