Commit e440445a authored by Sarun Mungthanya's avatar Sarun Mungthanya
Browse files

issue send patch and delete multi pendding snkey

parent 33217108
......@@ -19,13 +19,14 @@ class SendPatchEdit extends Component
public $search = '';
public $server_lists;
public $selectedOwnerType = '';
public $showMessage= false;
public $message;
public $searchSelected = 'SNKEY';
public $keyword = '';
public $selectedPenddings = [];
public $serverkey = '', $showSearch = false, $searchInProgress = false, $resultsServerkey = [] ,$resultsServerkeyArr= [];
public $serverKeyWaitingSend = [], $serverKeySuccess = [];
protected $listeners = ['deletePatch', 'refreshComponent' => '$refresh' , 'sendPatch'];
protected $listeners = ['deletePatch', 'refreshComponent' => '$refresh' , 'sendPatch' ,'deleteSelected'];
public function mount($editPid)
{
// $this->setPage(1);
......@@ -191,16 +192,28 @@ class SendPatchEdit extends Component
static::logSendPatch($this->PID, $serverId, "Delete Patch");
}
public function deleteSelected($selectedPenddings)
public function deleteSelected()
{
// if (!\Auth::user()->hasPermissions(['delete-user'])) {
// $this->showNoPermissionModal = TRUE;
// return;
// }
ConfServerPendding::destroy($selectedPenddings);
$message = "Deleted ID : " . json_encode($selectedPenddings) . " Successfully";
if(isset($this->selectedPenddings)){
foreach($this->selectedPenddings as $serverId) {
$pendding = ConfServerPendding::where("ServerID", $serverId)->where("PatchID", $this->PID,)->delete();
static::logSendPatch($this->PID, $serverId, "Delete Patch");
}
}
$message = "Deleted Successfully";
$this->message = $message;
if ($this->message) {
$this->dispatchBrowserEvent('show-message', ['message' => $this->message]);
}
$this->selectedPenddings = [];
}
public static function logSendPatch($patchId, $serverId, $logDesc)
......
......@@ -22,8 +22,9 @@ class SendPatchIndex extends Component
public $action = 'list';
public $totalItems;
public $showMessage= false;
protected $listeners = ['showGroupList', 'deleteItem', 'deleteSelected'];
protected $listeners = ['showGroupList', 'deleteItem'];
public function mount()
{
$this->searchBy = [
......
......@@ -44,9 +44,9 @@ class ServerLicenseCreate extends Component
'serverKey' => 'required|string|max:255',
'teamId' => 'required|integer',
'customerSize' => 'required|integer',
'customerTypes' => 'required',
'customerType' => 'required|not_in:0',
'company' => 'required|string|max:255',
'branch' => 'nullable|string|max:255',
// 'branch' => 'nullable|string|max:255',
'status' => 'required|in:Y,N',
'licenseDate' => 'nullable|date',
'phpVersionId' => 'required|integer',
......@@ -55,10 +55,14 @@ class ServerLicenseCreate extends Component
'installVersion' => 'nullable|string|max:255',
'databaseType' => 'required',
'ownerType' => 'nullable',
// 'hscodeMethod' => 'required|integer|in:1,2',
'customerUrl' => 'nullable|string|max:255',
'contact' => 'nullable|string|max:255',
'contactCustomerName' => 'nullable|string|max:255',
// 'hscodeMethod' => 'required|integer|in:1,2',
];
protected $messages = [
'customerType.not_in' => 'Please select customer type.',
];
public function mount()
{
......@@ -91,7 +95,6 @@ class ServerLicenseCreate extends Component
public function save()
{
$this->validate();
// dd($this->teamId);
ConfServerLicense::create([
'SNKEY' => $this->serverKey,
'NBTEAM' => $this->teamId,
......@@ -100,17 +103,17 @@ class ServerLicenseCreate extends Component
'COMPANY' => $this->company,
'BRANCH' => $this->branch,
'STATUS' => $this->status,
'LICENSEDATE' => $this->licenseDate??' ',
'PHP_VERSION_ID' => $this->phpVersionId??' ',
'CUR_VERSION' => $this->currentVersion??' ',
'INSTALL_DATE' => $this->installDate??' ',
'INSTALL_VERSION' => $this->installVersion??' ',
'DATABASETYPE' => $this->databaseType??' ',
'OWNERTYPE' => $this->ownerType??' ',
'HSCODEMETHOD' => $this->hscodeMethod??' ',
'CUSTOMERURL' => $this->customerUrl??' ',
'CONTACT' => $this->contact??' ',
'CONTACTCUSTOMERNAME' => $this->contactCustomerName??' ',
'LICENSEDATE' => $this->licenseDate ?? ' ',
'PHP_VERSION_ID' => $this->phpVersionId ?? ' ',
'CUR_VERSION' => $this->currentVersion ?? ' ',
'INSTALL_DATE' => $this->installDate ?? ' ',
'INSTALL_VERSION' => $this->installVersion ?? ' ',
'DATABASETYPE' => $this->databaseType ?? ' ',
'OWNERTYPE' => $this->ownerType ?? ' ',
'HSCODEMETHOD' => $this->hscodeMethod ?? ' ',
'CUSTOMERURL' => $this->customerUrl ?? ' ',
'CONTACT' => $this->contact ?? ' ',
'CONTACTCUSTOMERNAME' => $this->contactCustomerName ?? ' ',
]);
return redirect()->route('server-license.index')->with('message', 'Server License saved successfully.');
......
......@@ -44,7 +44,7 @@ class ServerLicenseEdit extends Component
public $contactCustomerName;
public $licenseId;
public $message, $messages = [];
protected $listeners = ['gotoModal','setMessage'];
protected $listeners = ['gotoModal', 'setMessage'];
public $modalLoaded = false;
public $SNKEY;
public $selectDateOrg;
......@@ -64,23 +64,24 @@ class ServerLicenseEdit extends Component
'serverKey' => 'required|string|max:255',
'teamId' => 'required|integer',
'customerSize' => 'required|integer',
'customerTypes' => 'required',
'customerType' => 'required|not_in:0',
'company' => 'required|string|max:255',
'branch' => 'nullable|string|max:255',
// 'branch' => 'nullable|string|max:255',
'status' => 'required|in:Y,N',
'licenseDate' => 'nullable|date',
'licenseDate' => 'nullable',
'phpVersionId' => 'required|integer',
'currentVersion' => 'nullable|string|max:255',
'installDate' => 'nullable|date',
'installDate' => 'nullable',
'installVersion' => 'nullable|string|max:255',
'databaseType' => 'required',
'ownerType' => 'nullable',
// 'hscodeMethod' => 'required|integer|in:1,2',
'customerUrl' => 'nullable|string|max:255',
'contact' => 'nullable|string|max:255',
'contactCustomerName' => 'nullable|string|max:255',
];
// 'hscodeMethod' => 'required|integer|in:1,2',
];
public function loadModal()
{
$this->modalLoaded = true;
......@@ -125,7 +126,7 @@ class ServerLicenseEdit extends Component
eval('$this->info = ' . trim($compressedData) . ';');
}
}
$this->phpVersions = DB::table('master_php_ver')
->orderBy('id', 'asc')
->get();
......@@ -152,8 +153,10 @@ class ServerLicenseEdit extends Component
}
public function updateLicense()
{
// dd( $this->teamId);
$this->validate();
$customMessages = [
'customerType.not_in' => 'Please select customer type.',
];
$this->validate($this->rules,$customMessages);
$license = ConfServerLicense::find($this->licenseId);
if ($license) {
......@@ -372,7 +375,7 @@ class ServerLicenseEdit extends Component
$groupedData = [];
$globalTemp = $this->globalList;
if(!empty($globalTemp)) {
if (!empty($globalTemp)) {
foreach ($globalTemp['profilecode'] as $index => $profileCode) {
if (isset($globalTemp['name'][$index]) && isset($globalTemp['value'][$index])) {
if (!isset($groupedData[$profileCode])) {
......@@ -386,7 +389,7 @@ class ServerLicenseEdit extends Component
}
}
}
$this->globalListGroup = $groupedData;
}
......@@ -684,12 +687,14 @@ class ServerLicenseEdit extends Component
$textLog .= " {$filename} |";
}
$zip->close();
foreach ($tempFiles as $file) {
if (file_exists($file)) {
unlink($file);
if(isset($tempFiles)){
foreach ($tempFiles as $file) {
if (file_exists($file)) {
unlink($file);
}
}
}
if (file_exists($zipFilePath)) {
$textLog = rtrim($textLog, '|') . " ]";
......@@ -729,7 +734,6 @@ class ServerLicenseEdit extends Component
->where('cp.ServerID', $this->licenseId)
->orderBy($this->sortHistoryField, $this->sortHistoryDirection)
->paginate($this->perPage);
}
public function sortHistoryBy($field)
{
......
......@@ -70,12 +70,12 @@
<tr>
<th scope="col"
class="whitespace-nowrap rounded-tl-lg bg-slate-300 px-4 py-3 font-semibold uppercase text-black dark:bg-navy-800 dark:text-navy-100 lg:px-5">
#
Patch ID
</th>
<th scope="col"
{{-- <th scope="col"
class="whitespace-nowrap bg-slate-300 px-2 py-3 font-semibold uppercase text-black dark:bg-navy-800 dark:text-navy-100 lg:px-2">
Patch ID
</th>
</th> --}}
<th scope="col"
class="whitespace-nowrap bg-slate-300 px-2 py-3 font-semibold uppercase text-black dark:bg-navy-800 dark:text-navy-100 lg:px-2">
Patch Name
......@@ -111,7 +111,7 @@
@foreach ($results as $patch)
<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">
{{-- <td class="whitespace-nowrap px-4 py-3 sm:px-5">
<label for="selectedPatch-{{ $patch->id }}"
class="inline-flex items-center space-x-2">
<input id="selectedPatch-{{ $patch->id }}"
......@@ -119,8 +119,8 @@
type="checkbox" wire:model.defer="selectedPatch"
value="{{ $patch->id }}" />
</label>
</td>
<td class="whitespace-nowrap px-1 py-3 sm:px-2">{{ $patch->PID }}</td>
</td> --}}
<td class="whitespace-nowrap px-1 py-3 sm:px-2 text-center">{{ $patch->PID }}</td>
<td class="whitespace-nowrap px-1 py-3 sm:px-2">
{{ \Illuminate\Support\Str::limit($patch->PATCHNAME, 120) }}</td>
<td class="whitespace-nowrap px-1 py-3 sm:px-2">{{ $patch->PDATE }}</td>
......
......@@ -5,7 +5,7 @@
loading: false,
allKeys: @entangle('resultsServerkeyArr'),
serverKeySelectAll() {
console.log('test');
console.log('test');
this.allKeys.forEach(key => {
if (!this.serverKeyWaitingSend.some(item => item.id == key.ID)) {
this.serverKeyWaitingSend.push({ id: key.ID, value: key.SNKEY });
......@@ -82,8 +82,7 @@
<ul x-show="open" @click.away="open = false"
class="absolute left-0 right-0 border border-gray-200 rounded-md max-h-64 overflow-auto z-50 bg-white">
<li class="p-2 bg-gray-200 hover:bg-gray-300 cursor-pointer font-semibold"
{{-- wire:click="selectAllResults" --}}
@click="serverKeySelectAll()">
{{-- wire:click="selectAllResults" --}} @click="serverKeySelectAll()">
Select All
</li>
@forelse($resultsServerkey as $result)
......@@ -207,7 +206,7 @@
<div class="flex justify-between">
<div class="flex items-center justify-start mb-3">
<span class="cursor-pointer text-black p-2 rounded-lg hover:bg-primary hover:text-white mr-3"
wire:click="deleteSelected"><i class="fa fa-trash" aria-hidden="true"></i>
onclick="confirmDeleteSelected()"><i class="fa fa-trash" aria-hidden="true"></i>
Delete</span>
<span class="cursor-pointer text-black p-2 rounded-lg hover:bg-primary hover:text-white"
wire:click="export"><i class="fa fa-download" aria-hidden="true"></i> Export</span>
......@@ -278,11 +277,16 @@
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<label class="inline-flex items-center space-x-2">
<input
class="form-checkbox individual-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" @click="deleteSelectedPatch"
value="{{ $server->ServerID }}"
data-serverId = "{{ $server->ServerID }}" />
@if ($server->TaskStatus == '999')
@else
<input
class="form-checkbox individual-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="selectedPenddings"
value="{{ $server->ServerID }}"
data-serverId = "{{ $server->ServerID }}" />
@endif
</label>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
......
......@@ -8,17 +8,21 @@
</div>
</div>
<div class="m-2">
@if ($action === 'list')
@if ($message)
<div class="alert alert-success">
<div wire:ignore x-data="{ show: true }" x-init="setTimeout(() => show = false, 3000)"
x-show.transition.duration.500ms="show"
class="fixed top-5 right-5 z-50 bg-green-500 text-white py-2 px-4 rounded-md shadow-lg">
{{ $message }}
</div>
<div x-data="{ show: @entangle('showMessage'), message: '' }" x-init="window.addEventListener('show-message', event => {
show = true;
message = event.detail.message;
console.log(show, message);
setTimeout(() => { show = false, console.log(show, message); }, 3000);
});">
<div x-show.transition.duration.500ms="show"
class="fixed top-5 right-5 z-50 bg-green-500 text-white py-2 px-4 rounded-md shadow-lg">
{{ $message }}
</div>
@endif
</div>
<div class="my-5 flex h-8 place-content-center px-4 ">
<h2 class="text-xl text-slate-800">
Send Patch to Customer
......@@ -62,38 +66,38 @@
<div class="mx-3 mt-3 px-4">
<div class="is-scrollbar-hidden min-w-full table-responsive" x-data="pages.tables.initExample1">
<table aria-describedby="mydesc" class="is-hoverable table w-full text-left text-black">
<table aria-describedby="mydesc" class="is-hoverable table w-full text-left text-black">
<thead>
<tr>
<th scope="col"
<th scope="col"
class="whitespace-nowrap text-center rounded-tl-lg bg-slate-300 px-4 py-3 font-semibold uppercase text-black dark:bg-navy-800 dark:text-navy-100 lg:px-5">
Patch ID
</th>
<th scope="col"
<th scope="col"
class="whitespace-nowrap bg-slate-300 text-black px-2 py-3 font-semibold uppercase text-slate-800 dark:bg-navy-800 dark:text-navy-100 lg:px-2">
Patch Name
</th>
<th scope="col"
<th scope="col"
class="whitespace-nowrap bg-slate-300 text-black px-2 py-3 font-semibold uppercase text-slate-800 dark:bg-navy-800 dark:text-navy-100 lg:px-2">
Description
</th>
<th scope="col"
<th scope="col"
class="whitespace-nowrap bg-slate-300 text-black px-2 py-3 font-semibold uppercase text-slate-800 dark:bg-navy-800 dark:text-navy-100 lg:px-2">
Server
</th>
<th scope="col"
<th scope="col"
class="whitespace-nowrap bg-slate-300 text-black px-2 py-3 font-semibold uppercase text-slate-800 dark:bg-navy-800 dark:text-navy-100 lg:px-2">
Date
</th>
<th scope="col"
<th scope="col"
class="whitespace-nowrap bg-slate-300 text-black px-2 py-3 font-semibold uppercase text-slate-800 dark:bg-navy-800 dark:text-navy-100 lg:px-2">
Level
</th>
<th scope="col"
<th scope="col"
class="whitespace-nowrap bg-slate-300 text-black px-2 py-3 font-semibold uppercase text-slate-800 dark:bg-navy-800 dark:text-navy-100 lg:px-2">
Remark
</th>
<th scope="col"
<th scope="col"
class="whitespace-nowrap rounded-tr-lg bg-slate-300 text-black px-2 py-3 font-semibold uppercase text-slate-800 dark:bg-navy-800 dark:text-navy-100 lg:px-2">
Action
</th>
......@@ -105,7 +109,7 @@
<tr class="border-y border-transparent border-b-slate-200 dark:border-b-navy-500">
<td class="whitespace-nowrap px-1 py-3 sm:px-2 text-center">{{ $patch->PID }}
</td>
<td class="whitespace-nowrap px-1 py-3 sm:px-2">{{ $patch->PATCHNAME }}</td>
<td class="whitespace-nowrap px-1 py-3 sm:px-2">{{ $patch->PATCHNAME }}</td>
<td class="whitespace-nowrap px-1 py-3 sm:px-2">
{{ \Illuminate\Support\Str::limit($patch->PDESC, 40) }}</td>
<td class="whitespace-nowrap px-1 py-3 sm:px-2">{{ $patch->NUMSERVER }}</td>
......@@ -134,5 +138,5 @@
@elseif($action === 'edit')
<livewire:pages.send-patch.send-patch-edit :editPid="$editPid">
@endif
</main>
</div>
</main>
</div>
......@@ -24,28 +24,28 @@
@foreach ($mapToList['id'] as $index => $onload)
<tr class="border-b">
<td class="py-2 px-4 border w-24 text-center">{{ $index +1 }}</td>
<td class="py-2 px-4 border w-32">
{{-- <td class="py-2 px-4 border w-32">
<input type="text" class="w-full p-2 border border-gray-300 rounded-md" wire:model.defer="mapToList.step.{{ $index }}" />
</td>
<td class="py-2 px-4 border w-48">
<input type="text" class="w-full p-2 border border-gray-300 rounded-md" wire:model.defer="mapToList.level.{{ $index }}" />
</td>
--}}
<td class="py-2 px-4 border w-32">
<input type="text" class="w-full p-2 border border-gray-300 rounded-md" wire:model.defer="mapToList.name.{{ $index }}" />
</td>
<td class="py-2 px-4 border w-64">
{{-- <td class="py-2 px-4 border w-64">
<textarea class="w-full p-1 border rounded" wire:model.defer="mapToList.desc.{{ $index }}"></textarea>
</td>
</td> --}}
<td class="py-2 px-4 border w-64">
<textarea class="w-full p-1 border rounded" wire:model.defer="mapToList.validateCode.{{ $index }}"></textarea>
</td>
<td class="py-2 px-4 border w-48">
<input type="text" class="w-full p-2 border border-gray-300 rounded-md" wire:model.defer="mapToList.doctype.{{ $index }}" />
</td>
<td class="py-2 px-4 border w-24">
{{-- <td class="py-2 px-4 border w-24">
<input type="text" class="w-full p-2 border border-gray-300 rounded-md" wire:model.defer="mapToList.active.{{ $index }}" />
</td>
</td> --}}
</tr>
@endforeach
@endif
......
......@@ -57,18 +57,18 @@
@enderror
</div>
</div>
<!-- Customer Type -->
<div class="mt-3 flex items-center">
<label for="customerType" class="w-1/4 text-gray-700">Customer Type</label>
<div class="flex flex-col w-3/4">
<select id="customerType" wire:model.defer="customerType"
class=" p-2 border border-gray-300 rounded-md">
@foreach ($customerTypes as $type)
<option value="{{ $type->id }}">{{ $type->sizeTypeName }}</option>
@endforeach
</select>
@error('customerTypes')
@error('customerType')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
......
<div class="bg-main-container">
<div class="max-w-full mx-auto p-5 ">
<div x-data="{ messages: @entangle('messages') }">
<template x-for="(message, index) in messages" :key="index">
......@@ -79,7 +79,7 @@
class="inline-block py-2 px-4">File Download</a>
</li>
<li class="mr-2">
<a href="#" @click.prevent="activeTab = 'historyPatch'" wire:click="loadHistoryPatch"
<a href="#" @click.prevent="activeTab = 'historyPatch'" wire:click="loadHistoryPatch"
:class="{ 'border-b-2 border-blue-600 text-blue-600': activeTab === 'historyPatch' }"
class="inline-block py-2 px-4">History Patch</a>
</li>
......@@ -89,175 +89,293 @@
<div x-show="activeTab === 'form'" class="w-4/5 ">
<form>
<!-- Server Key -->
<div class="mb-4 flex items-center">
<div class=" flex items-center">
<label for="serverKey" class="w-1/4 text-gray-700">Server Key</label>
<input type="text" id="serverKey"
class="w-3/4 p-2 border border-gray-300 rounded-md" wire:model.defer="serverKey">
<div class="flex flex-col w-3/4">
<input type="text" id="serverKey" class=" p-2 border border-gray-300 rounded-md"
wire:model.defer="serverKey">
@error('serverKey')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<!-- Team -->
<div class="mb-4 flex items-center">
<div class="mt-3 flex items-center">
<label for="teamId" class="w-1/4 text-gray-700">Team</label>
<select id="teamId" wire:model.defer="teamId"
class="w-3/4 p-2 border border-gray-300 rounded-md">
@foreach ($teams as $team)
<option value="{{ is_object($team) ? $team->id : $team['id'] }}">
{{ is_object($team) ? $team->teamName : $team['teamName'] }}</option>
@endforeach
</select>
<div class="flex flex-col w-3/4">
<select id="teamId" wire:model.defer="teamId"
class=" p-2 border border-gray-300 rounded-md">
@foreach ($teams as $team)
<option value="{{ is_object($team) ? $team->id : $team['id'] }}">
{{ is_object($team) ? $team->teamName : $team['teamName'] }}</option>
@endforeach
</select>
@error('teamId')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<!-- Customer Sizing -->
<div class="mb-4 flex items-center">
<div class="mt-3 flex items-center">
<label for="customerSize" class="w-1/4 text-gray-700">Customer Sizing</label>
<select id="customerSize" wire:model.defer="customerSize"
class="w-3/4 p-2 border border-gray-300 rounded-md">
@foreach ($sizings as $size)
<option value="{{ is_object($size) ? $size->id : $size['id'] }}">
{{ is_object($size) ? $size->sizeName : $size['sizeName'] }}</option>
@endforeach
</select>
<div class="flex flex-col w-3/4">
<select id="customerSize" wire:model.defer="customerSize"
class=" p-2 border border-gray-300 rounded-md">
@foreach ($sizings as $size)
<option value="{{ is_object($size) ? $size->id : $size['id'] }}">
{{ is_object($size) ? $size->sizeName : $size['sizeName'] }}</option>
@endforeach
</select>
@error('customerSize')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<!-- Customer Type -->
<div class="mb-4 flex items-center">
<div class="mt-3 flex items-center">
<label for="customerType" class="w-1/4 text-gray-700">Customer Type</label>
<select id="customerType" wire:model.defer="customerType"
class="w-3/4 p-2 border border-gray-300 rounded-md">
@foreach ($customerTypes as $type)
<option value="{{ is_object($type) ? $type->id : $type['id'] }}">
{{ is_object($type) ? $type->sizeTypeName : $type['sizeTypeName'] }}
</option>
@endforeach
</select>
<div class="flex flex-col w-3/4">
<select id="customerType" wire:model.defer="customerType"
class=" p-2 border border-gray-300 rounded-md">
@foreach ($customerTypes as $type)
<option value="{{ is_object($type) ? $type->id : $type['id'] }}">
{{ is_object($type) ? $type->sizeTypeName : $type['sizeTypeName'] }}
</option>
@endforeach
</select>
@error('customerType')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<!-- Company -->
<div class="mb-4 flex items-center">
<div class="mt-3 flex items-center">
<label for="company" class="w-1/4 text-gray-700">Company</label>
<input type="text" id="company"
class="w-3/4 p-2 border border-gray-300 rounded-md" wire:model.defer="company">
<div class="flex flex-col w-3/4">
<input type="text" id="company"
class=" p-2 border border-gray-300 rounded-md" wire:model.defer="company">
@error('company')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<!-- Branch -->
<div class="mb-4 flex items-center">
<div class="mt-3 flex items-center">
<label for="branch" class="w-1/4 text-gray-700">Branch</label>
<input type="text" id="branch"
class="w-3/4 p-2 border border-gray-300 rounded-md" wire:model.defer="branch">
<div class="flex flex-col w-3/4">
<input type="text" id="branch"
class=" p-2 border border-gray-300 rounded-md" wire:model.defer="branch">
@error('branch')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<!-- Status -->
<div class="mb-4 flex items-center">
<div class="mt-3 flex items-center">
<label class="w-1/4 text-gray-700">Status</label>
<div class="flex items-center w-3/4">
<label class="mr-4">
<input type="radio" name="status" value="Y"
wire:model.defer="status">
Yes
</label>
<label>
<input type="radio" name="status" value="N"
wire:model.defer="status">
No
</label>
<div class="flex flex-col w-3/4">
<div class="flex items-center w-3/4">
<label class="mr-4">
<input type="radio" name="status" value="Y"
wire:model.defer="status"> Yes
</label>
<label>
<input type="radio" name="status" value="N"
wire:model.defer="status"> No
</label>
</div>
@error('status')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- Licensedate -->
<div class="mt-3 flex items-center">
<label for="licenseDate" class="w-1/4 text-gray-700">License Date</label>
<input type="date" id="licenseDate"
class="w-3/4 p-2 border border-gray-300 rounded-md"
wire:model.defer="licenseDate">
<div class="flex flex-col w-3/4">
<input type="date" id="licenseDate"
class=" p-2 border border-gray-300 rounded-md" wire:model.defer="licenseDate">
@error('licenseDate')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- PHP Version -->
<div class="mt-3 flex items-center">
<label for="phpVersionId" class="w-1/4 text-gray-700">PHP Version</label>
<select id="phpVersionId" wire:model.defer="phpVersionId"
class="w-3/4 p-2 border border-gray-300 rounded-md">
@foreach ($phpVersions as $version)
<option value="{{ is_object($version) ? $version->id : $version['id'] }}">
{{ is_object($version) ? $version->version : $version['version'] }}</option>
@endforeach
</select>
<div class="flex flex-col w-3/4">
<select id="phpVersionId" wire:model.defer="phpVersionId"
class=" p-2 border border-gray-300 rounded-md">
@foreach ($phpVersions as $version)
<option value="{{ is_object($version) ? $version->id : $version['id'] }}">
{{ is_object($version) ? $version->version : $version['version'] }}
</option>
@endforeach
</select>
@error('phpVersionId')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- Version ปัจจุบัน -->
<div class="mt-3 flex items-center">
<label for="currentVersion" class="w-1/4 text-gray-700">Version ปัจจุบัน</label>
<input type="text" id="currentVersion"
class="w-3/4 p-2 border border-gray-300 rounded-md"
wire:model.defer="currentVersion">
<div class="flex flex-col w-3/4">
<input type="text" id="currentVersion"
class=" p-2 border border-gray-300 rounded-md"
wire:model.defer="currentVersion">
@error('currentVersion')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- วันที่ไป Install -->
<div class="mt-3 flex items-center">
<label for="installDate" class="w-1/4 text-gray-700">วันที่ไป Install</label>
<input type="date" id="installDate"
class="w-3/4 p-2 border border-gray-300 rounded-md"
wire:model.defer="installDate">
<div class="flex flex-col w-3/4">
<input type="date" id="installDate"
class=" p-2 border border-gray-300 rounded-md" wire:model.defer="installDate">
@error('installDate')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- Version ที่ลงครั้งแรก -->
<div class="mt-3 flex items-center">
<label for="installVersion" class="w-1/4 text-gray-700">Version ที่ลงครั้งแรก</label>
<input type="text" id="installVersion"
class="w-3/4 p-2 border border-gray-300 rounded-md"
wire:model.defer="installVersion">
<div class="flex flex-col w-3/4">
<input type="text" id="installVersion"
class=" p-2 border border-gray-300 rounded-md"
wire:model.defer="installVersion">
@error('installVersion')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- Database Type -->
<div class="mt-3 flex items-center">
<label for="databaseType" class="w-1/4 text-gray-700">Database Type</label>
<select id="databaseType" wire:model.defer="databaseType"
class="w-3/4 p-2 border border-gray-300 rounded-md">
@foreach ($dbTypes as $db)
<option value="{{ is_object($db) ? $db->id : $db['id'] }}">
{{ is_object($db) ? $db->dbName : $db['dbName'] }}</option>
@endforeach
</select>
<div class="flex flex-col w-3/4">
<select id="databaseType" wire:model.defer="databaseType"
class=" p-2 border border-gray-300 rounded-md">
@foreach ($dbTypes as $db)
<option value="{{ is_object($db) ? $db->id : $db['id'] }}">
{{ is_object($db) ? $db->dbName : $db['dbName'] }}</option>
@endforeach
</select>
@error('databaseType')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- Server of -->
<div class="mt-3 flex items-center">
<label for="ownerType" class="w-1/4 text-gray-700">Server of</label>
<select id="ownerType" wire:model.defer="ownerType"
class="w-3/4 p-2 border border-gray-300 rounded-md">
@foreach ($ownerTypes as $owner)
<option
value="{{ is_object($owner) ? $owner->owntype_code : $owner['owntype_code'] }}">
{{ is_object($owner) ? $owner->owntype_description : $owner['owntype_description'] }}
</option>
@endforeach
</select>
<div class="flex flex-col w-3/4">
<select id="ownerType" wire:model.defer="ownerType"
class=" p-2 border border-gray-300 rounded-md">
@foreach ($ownerTypes as $owner)
<option
value="{{ is_object($owner) ? $owner->owntype_code : $owner['owntype_code'] }}">
{{ is_object($owner) ? $owner->owntype_description : $owner['owntype_description'] }}
</option>
@endforeach
</select>
@error('ownerType')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- HSCODE 2017 Method -->
<div class="mt-3 flex items-center">
<label for="hscodeMethod" class="w-1/4 text-gray-700">HSCODE 2017 Method</label>
<select id="hscodeMethod" wire:model.defer="hscodeMethod"
class="w-3/4 p-2 border border-gray-300 rounded-md">
<option value="1" {{ $hscodeMethod == '1' ? 'selected' : '' }}>Patch</option>
<option value="2" {{ $hscodeMethod == '2' ? 'selected' : '' }}>Run script
</option>
</select>
<div class="flex flex-col w-3/4">
<select id="hscodeMethod" wire:model.defer="hscodeMethod"
class=" p-2 border border-gray-300 rounded-md">
<option value="1" {{ $hscodeMethod == '1' ? 'selected' : '' }}>Patch
</option>
<option value="2" {{ $hscodeMethod == '2' ? 'selected' : '' }}>Run script
</option>
</select>
@error('hscodeMethod')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- URL / IP Address -->
<div class="mt-3 flex items-center">
<label for="customerUrl" class="w-1/4 text-gray-700">URL / IP Address</label>
<input type="text" id="customerUrl"
class="w-3/4 p-2 border border-gray-300 rounded-md"
wire:model.defer="customerUrl">
<div class="flex flex-col w-3/4">
<input type="text" id="customerUrl"
class=" p-2 border border-gray-300 rounded-md" wire:model.defer="customerUrl">
@error('customerUrl')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- Contact -->
<div class="mt-3 flex items-center">
<label for="contact" class="w-1/4 text-gray-700">Contact</label>
<input type="text" id="contact"
class="w-3/4 p-2 border border-gray-300 rounded-md" wire:model.defer="contact">
<div class="flex flex-col w-3/4">
<input type="text" id="contact"
class=" p-2 border border-gray-300 rounded-md" wire:model.defer="contact">
@error('contact')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="mb-4 flex items-center">
<!-- Contact Customer Name -->
<div class="mt-3 flex items-center">
<label for="contactCustomerName" class="w-1/4 text-gray-700">Contact Customer
Name</label>
<input type="text" id="contactCustomerName"
class="w-3/4 p-2 border border-gray-300 rounded-md"
wire:model.defer="contactCustomerName">
<div class="flex flex-col w-3/4">
<input type="text" id="contactCustomerName"
class=" p-2 border border-gray-300 rounded-md"
wire:model.defer="contactCustomerName">
@error('contactCustomerName')
<div class="text-red-500 text-sm ">
{{ $message }}</div>
@enderror
</div>
</div>
<div class="flex justify-center space-x-2">
<div class="flex justify-center space-x-2 mt-3">
<a type="button" href="/server-license"
class="bg-slate-700 text-white px-4 py-2 rounded-md hover:bg-slate-900">Back</a>
class="bg-slate-700 text-white px-4 py-2 rounded-md hover:bg-slate-900">Back</a>
<button type="button" wire:click="updateLicense"
class="bg-primary text-white px-4 py-2 rounded-md hover:bg-primary-focus">Save</button>
</div>
......@@ -321,7 +439,9 @@
</div>
<div x-show="activeTab === 'historyPatch'">
@if ($tab === 'historyPatch')
@include('livewire.pages.server-license.history-patch', ['historyPatchList' => $historyPatchList])
@include('livewire.pages.server-license.history-patch', [
'historyPatchList' => $historyPatchList,
])
@endif
</div>
</div>
......
......@@ -76,12 +76,12 @@
<table aria-describedby="mydesc" class="is-hoverable table w-full text-left border-b">
<thead>
<tr>
<th scope="col"
{{-- <th scope="col"
class="whitespace-nowrap rounded-tl-lg bg-slate-300 px-4 py-3 font-semibold uppercase text-black dark:bg-navy-800 dark:text-navy-100 lg:px-5">
#
</th>
</th> --}}
<th scope="col"
class="whitespace-nowrap bg-slate-300 px-2 py-3 font-semibold uppercase text-black dark:bg-navy-800 dark:text-navy-100 lg:px-2">
class="whitespace-nowrap rounded-tl-lg bg-slate-300 px-4 py-3 font-semibold uppercase text-black dark:bg-navy-800 dark:text-navy-100 lg:px-2">
Server Key
</th>
<th scope="col"
......@@ -115,14 +115,14 @@
@foreach ($results as $license)
<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">
{{-- <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 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="selectedLicense"
value="{{ $license->ID }}" />
</label>
</td>
</td> --}}
<td class="whitespace-nowrap px-1 py-3 sm:px-2">{{ $license->SNKEY }}</td>
<td class="whitespace-nowrap px-1 py-3 sm:px-2">
{{ \Illuminate\Support\Str::limit($license->COMPANY, 40) }}</td>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment