1245 lines
96 KiB
HTML
1245 lines
96 KiB
HTML
<!doctype html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Settings XPORT</title>
|
|
<!-- tailwind cdn -->
|
|
<script src="https://unpkg.com/@tailwindcss/browser@4"></script>
|
|
<!-- alpine cdn -->
|
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.14.8/dist/cdn.min.js"></script>
|
|
<!-- material Symbols -->
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" />
|
|
</head>
|
|
|
|
<body class="bg-[#F2F9FF] h-screen flex flex-col">
|
|
<!-- Navbar -->
|
|
<div class="bg-white h-20 flex items-center justify-between px-6">
|
|
<!-- Logo -->
|
|
<a class="block text-teal-600" href="#">
|
|
<div class="flex items-center space-x-2">
|
|
<img src="../images/logoServer.png" class="mr-3 h-10" />
|
|
<p class="lg:text-lg xl:text-xl text-[#2196F3] font-normal">Port Server</p>
|
|
</div>
|
|
</a>
|
|
|
|
<!-- Navigasi (Desktop) -->
|
|
<nav class="hidden lg:flex items-center text-sm gap-6 ml-auto">
|
|
<ul class="flex items-center gap-6 text-sm">
|
|
<li class="bg-[#E3F2FD] rounded-sm p-3">
|
|
<a href="settings.html" class="text-[#2196F3] transition font-bold hover:text-black/87">SETTING</a>
|
|
</li>
|
|
<li>
|
|
<a href="assay_format.html" class="text-black/87 transition font-bold hover:text-[#2196F3]">ASSAY
|
|
FORMAT</a>
|
|
</li>
|
|
<li>
|
|
<a href="result.html" class="text-black/87 transition font-bold hover:text-[#2196F3]">RESULT</a>
|
|
</li>
|
|
<li>
|
|
<a href="order.html" class="text-black/87 transition font-bold hover:text-[#2196F3]">ORDER</a>
|
|
</li>
|
|
<li>
|
|
<a href="master_data.html" class="text-black/87 transition font-bold hover:text-[#2196F3]">MASTER
|
|
DATA</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" class="text-black/87 transition font-bold hover:text-[#2196F3]">ONLINE</a>
|
|
</li>
|
|
<li>
|
|
<img src="../images/avatar.png" class="mr-3" />
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
|
|
<!-- Hamburger Menu (Mobile) -->
|
|
<div x-data="{ open: false }">
|
|
<button @click="open = true" class="block lg:hidden text-[#2196F3] hover:text-gray-600/75">
|
|
<span class="material-symbols-outlined text-3xl">menu</span>
|
|
</button>
|
|
|
|
<!-- Bottom Sheet Menu (Mobile) -->
|
|
<div>
|
|
<!-- Overlay -->
|
|
<div x-show="open" class="fixed inset-0 bg-black/50 transition-opacity z-50" @click="open = false">
|
|
</div>
|
|
|
|
<!-- Modal -->
|
|
<div x-show="open" x-transition
|
|
class="fixed bottom-0 left-0 w-full bg-white p-6 rounded-t-[32px] shadow-lg transform transition-transform duration-300 ease-in-out z-50"
|
|
x-bind:class="open ? 'translate-y-0' : 'translate-y-full'">
|
|
<ul class="space-y-2">
|
|
<li class="bg-[#E3F2FD] p-2 rounded">
|
|
<a href="settings.html"
|
|
class="block px-4 py-2 hover:bg-gray-100 rounded-lg text-[#2196F3] font-medium text-lg">
|
|
<div class="flex items-center gap-2">
|
|
<span class="material-symbols-outlined text-[#2196F3]">settings</span>
|
|
Setting
|
|
</div>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="assay_format.html"
|
|
class="block px-4 py-2 hover:bg-gray-100 rounded-lg text-black/87 font-medium text-lg">
|
|
<div class="flex items-center gap-2">
|
|
<span class="material-symbols-outlined text-black/87">edit</span>
|
|
Assay Format
|
|
</div>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="result.html"
|
|
class="block px-4 py-2 hover:bg-gray-100 rounded-lg text-black/87 font-medium text-lg">
|
|
<div class="flex items-center gap-2">
|
|
<span class="material-symbols-outlined text-black/87">calculate</span>
|
|
Result
|
|
</div>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="order.html"
|
|
class="block px-4 py-2 hover:bg-gray-100 rounded-lg text-black/87 font-medium text-lg">
|
|
<div class="flex items-center gap-2">
|
|
<span class="material-symbols-outlined text-black/87">calculate</span>
|
|
Order
|
|
</div>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="master_data.html"
|
|
class="block px-4 py-2 hover:bg-gray-100 rounded-lg text-black/87 font-medium text-lg">
|
|
<div class="flex items-center gap-2">
|
|
<span class="material-symbols-outlined text-black/87">calculate</span>
|
|
Master Data
|
|
</div>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#"
|
|
class="block px-4 py-2 hover:bg-gray-100 rounded-lg text-black/87 font-medium text-lg">
|
|
<div class="flex items-center gap-2">
|
|
<span class="material-symbols-outlined text-black/87">online_prediction</span>
|
|
Status
|
|
</div>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="#"
|
|
class="block px-4 py-2 hover:bg-gray-100 rounded-lg text-black/87 font-medium text-lg">
|
|
<div class="flex items-center gap-2">
|
|
<span class="material-symbols-outlined text-black/87">person</span>
|
|
Akun
|
|
</div>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Konten utama -->
|
|
<div class="flex-1 flex flex-col lg:flex-row p-6 gap-5 overflow-hidden h-screen" x-data="settingsPage">
|
|
<!-- Bagian Kiri (Tabel) -->
|
|
<div class="hidden lg: bg-white w-full lg:w-1/2 rounded-lg p-5 lg:flex flex-col flex-1 overflow-hidden">
|
|
<div class="p-2 text-black font-medium text-lg rounded-lg">Setting</div>
|
|
|
|
<!-- Table Desktop -->
|
|
<div class="flex-1 overflow-auto h-full">
|
|
<table class="min-w-full divide-y-2 divide-gray-200 bg-white text-sm">
|
|
<thead>
|
|
<tr>
|
|
<th class="p-2 font-medium text-gray-900 w-[25%] text-left">Jenis</th>
|
|
<th class="p-2 font-medium text-gray-900 w-[40%] text-left">Info</th>
|
|
<th class="p-2 font-medium text-gray-900 w-[15%] text-left">Instrument</th>
|
|
<th class="p-2 font-medium text-gray-900 w-[15%] text-left">Interface</th>
|
|
<th class="p-2 font-medium text-gray-900 w-[5%] text-center">
|
|
<button @click="showDialogAdd = !showDialogAdd">
|
|
<span class="material-symbols-outlined">add</span>
|
|
</button>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="divide-y divide-gray-200">
|
|
<template x-for="item in dataSetting" :key="item.idSetting">
|
|
<tr>
|
|
<td class="text-wrap align-top text-left font-normal text-xs text-black/87 p-2"
|
|
x-text="item.namaJenis"></td>
|
|
<td class="text-wrap align-top text-left font-normal text-xs text-black/87 p-2"
|
|
x-text="item.info"></td>
|
|
<td class="text-wrap align-top text-left font-normal text-xs text-black/87 p-2"
|
|
x-text="item.namaInstrument"></td>
|
|
<td class="text-wrap align-top text-left font-normal text-xs text-black/87 p-2"
|
|
x-text="item.namaInterface"></td>
|
|
<td class="text-wrap align-top text-center font-normal text-xs text-[#2196F3] p-2">
|
|
<button @click="openModalEdit(item)"><span
|
|
class="material-symbols-outlined">edit</span></button>
|
|
</td>
|
|
</tr>
|
|
</template>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- modal add desktop -->
|
|
<div x-show="showDialogAdd" x-transition.duration.200ms class="fixed z-10 inset-0">
|
|
<div class="flex items-center justify-center min-h-screen bg-[#0F0F0F4D] transition-all">
|
|
<!-- box -->
|
|
<div class="flex flex-col bg-white rounded-lg w-2/3 min-h-[300px] max-h-[90vh] overflow-y-auto">
|
|
<!-- header -->
|
|
<div class="bg-[#2196F3] flex w-full h-10 rounded-tl-lg rounded-tr-lg">
|
|
<h3 class="text-xl font-bold uppercase text-white px-4 py-1">add</h3>
|
|
</div>
|
|
<!-- body -->
|
|
<div class="flex flex-1 bg-white px-6 py-5">
|
|
<div class="relative w-full">
|
|
<!-- <p x-text="selectedJenis.idJenis"></p><br /> -->
|
|
<!-- buka dropdown -->
|
|
<fieldset @click.outside="openJenis = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span x-text="selectedJenis.idJenis != -1 ? 'Jenis' : selectedJenis.namaJenis"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openJenis = !openJenis" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedJenis.namaJenis" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openJenis }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
|
|
<!-- list menu -->
|
|
<div x-show="openJenis"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataJenis.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataJenis" :key="item.idJenis">
|
|
<li :id="item.idJenis" @click="onChangeJenis(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaJenis"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- garis putus putus -->
|
|
<template x-if="selectedJenis.idJenis !== -1">
|
|
<div class="border-t border-dashed border-gray-400 mt-5 mb-5"></div>
|
|
</template>
|
|
|
|
|
|
<!-- namaJenis TCP Server -->
|
|
<template x-if="selectedJenis.idJenis === 1">
|
|
<div>
|
|
<!-- port -->
|
|
<label for="Port"
|
|
class="relative block rounded-md border border-gray-400 focus-within:border-blue-600 focus-within:ring-1 focus-within:ring-blue-600">
|
|
<input type="text" id="Port"
|
|
class="peer pl-2 border-none py-3 bg-transparent placeholder-transparent focus:border-transparent focus:ring-0 focus:outline-hidden"
|
|
placeholder="Port" />
|
|
|
|
<span
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
Port
|
|
</span>
|
|
</label>
|
|
<div class="mb-5"></div>
|
|
<!-- interface -->
|
|
<fieldset @click.outside="openInterface = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInterface.idInterface != -1 ? 'Interface' : selectedInterface.namaInterface"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInterface = !openInterface" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInterface.namaInterface" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInterface }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInterface"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInterface.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInterface" :key="item.idInterface">
|
|
<li :id="item.idInterface" @click="onChangeInterface(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInterface"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- instrument -->
|
|
<fieldset @click.outside="openInstrument = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInstrument.idInstrument != -1 ? 'Instrument' : selectedInstrument.namaInstrument"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInstrument = !openInstrument" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInstrument.namaInstrument" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInstrument }" fill="none"
|
|
viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInstrument"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInstrument.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInstrument" :key="item.idInstrument">
|
|
<li :id="item.idInstrument" @click="onChangeInstrument(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInstrument"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
</div>
|
|
</template>
|
|
<!-- namaJenis TCP Server -->
|
|
|
|
<!-- namaJenis TCP Client -->
|
|
<template x-if="selectedJenis.idJenis === 2">
|
|
<div>
|
|
<!-- server -->
|
|
<label for="Server"
|
|
class="relative block rounded-md border border-gray-400 focus-within:border-blue-600 focus-within:ring-1 focus-within:ring-blue-600">
|
|
<input type="text" id="Server"
|
|
class="peer pl-2 border-none py-3 bg-transparent placeholder-transparent focus:border-transparent focus:ring-0 focus:outline-hidden"
|
|
placeholder="Server" />
|
|
|
|
<span
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
Server
|
|
</span>
|
|
</label>
|
|
<div class="mb-5"></div>
|
|
<!-- port -->
|
|
<label for="Port"
|
|
class="relative block rounded-md border border-gray-400 focus-within:border-blue-600 focus-within:ring-1 focus-within:ring-blue-600">
|
|
<input type="text" id="Port"
|
|
class="peer pl-2 border-none py-3 bg-transparent placeholder-transparent focus:border-transparent focus:ring-0 focus:outline-hidden"
|
|
placeholder="Port" />
|
|
|
|
<span
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
Port
|
|
</span>
|
|
</label>
|
|
<div class="mb-5"></div>
|
|
<!-- interface -->
|
|
<fieldset @click.outside="openInterface = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInterface.idInterface != -1 ? 'Interface' : selectedInterface.namaInterface"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInterface = !openInterface" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInterface.namaInterface" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInterface }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInterface"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInterface.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInterface" :key="item.idInterface">
|
|
<li :id="item.idInterface" @click="onChangeInterface(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInterface"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- instrument -->
|
|
<fieldset @click.outside="openInstrument = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInstrument.idInstrument != -1 ? 'Instrument' : selectedInstrument.namaInstrument"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInstrument = !openInstrument" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInstrument.namaInstrument" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInstrument }" fill="none"
|
|
viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInstrument"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInstrument.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInstrument" :key="item.idInstrument">
|
|
<li :id="item.idInstrument" @click="onChangeInstrument(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInstrument"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
</div>
|
|
</template>
|
|
<!-- namaJenis TCP Client -->
|
|
|
|
<!-- namaJenis RS232 -->
|
|
<template x-if="selectedJenis.idJenis === 3">
|
|
<div>
|
|
<!-- serial -->
|
|
<fieldset @click.outside="openSerial = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedSerial.idSerial != -1 ? 'Serial' : selectedSerial.namaSerial"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openSerial = !openSerial" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedSerial.namaSerial" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openSerial }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openSerial"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataSerial.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataSerial" :key="item.idSerial">
|
|
<li :id="item.idSerial" @click="onChangeSerial(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaSerial"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- speed -->
|
|
<label for="Speed"
|
|
class="relative block rounded-md border border-gray-400 focus-within:border-blue-600 focus-within:ring-1 focus-within:ring-blue-600">
|
|
<input type="text" id="Speed"
|
|
class="peer pl-2 border-none py-3 bg-transparent placeholder-transparent focus:border-transparent focus:ring-0 focus:outline-hidden"
|
|
placeholder="Speed" />
|
|
|
|
<span
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
Speed
|
|
</span>
|
|
</label>
|
|
<div class="mb-5"></div>
|
|
<!-- parity -->
|
|
<fieldset @click.outside="openParity = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedParity.idParity != -1 ? 'DataBit' : selectedParity.namaParity"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openParity = !openParity" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedParity.namaParity" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openParity }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openParity"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataParity.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataParity" :key="item.idParity">
|
|
<li :id="item.idParity" @click="onChangeParity(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaParity"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- data bits -->
|
|
<fieldset @click.outside="openDataBit = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedDataBit.idDataBit != -1 ? 'DataBit' : selectedDataBit.namaDataBit"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openDataBit = !openDataBit" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedDataBit.namaDataBit" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openDataBit }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openDataBit"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataDataBit.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataDataBit" :key="item.idDataBit">
|
|
<li :id="item.idDataBit" @click="onChangeDataBit(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaDataBit"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- stop bit -->
|
|
<fieldset @click.outside="openStopBit = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedStopBit.idStopBit != -1 ? 'StopBit' : selectedStopBit.namaStopBit"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openStopBit = !openStopBit" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedStopBit.namaStopBit" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openStopBit }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openStopBit"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataStopBit.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataStopBit" :key="item.idStopBit">
|
|
<li :id="item.idStopBit" @click="onChangeStopBit(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaStopBit"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- interface -->
|
|
<fieldset @click.outside="openInterface = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInterface.idInterface != -1 ? 'Interface' : selectedInterface.namaInterface"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInterface = !openInterface" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInterface.namaInterface" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInterface }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInterface"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInterface.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInterface" :key="item.idInterface">
|
|
<li :id="item.idInterface" @click="onChangeInterface(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInterface"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- instrument -->
|
|
<fieldset @click.outside="openInstrument = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInstrument.idInstrument != -1 ? 'Instrument' : selectedInstrument.namaInstrument"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInstrument = !openInstrument" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInstrument.namaInstrument" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInstrument }" fill="none"
|
|
viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInstrument"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInstrument.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInstrument" :key="item.idInstrument">
|
|
<li :id="item.idInstrument" @click="onChangeInstrument(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInstrument"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
</div>
|
|
</template>
|
|
<!-- namaJenis RS232 -->
|
|
</div>
|
|
</div>
|
|
<!-- footer -->
|
|
<div class="h-10 px-4 py-2 mb-5">
|
|
<div class="flex items-end justify-end">
|
|
<button @click="closeDialog()" class="mr-3 text-[#FF5252] hover:text-white font-bold text-sm uppercase transition duration-200
|
|
hover:bg-[#FF5252] px-4 py-2 rounded-md">
|
|
Cancel
|
|
</button>
|
|
<button class="text-[#1976D2] font-bold text-sm uppercase px-4 py-2 rounded-md transition duration-200
|
|
hover:bg-[#1976D2] hover:text-white">
|
|
Save
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- modal add desktop -->
|
|
|
|
<!-- modal edit desktop -->
|
|
<div x-show="showDialogEdit" x-transition.duration.200ms class="fixed z-10 inset-0">
|
|
<div class="flex items-center justify-center min-h-screen bg-[#0F0F0F4D] transition-all">
|
|
<!-- box -->
|
|
<div class="flex flex-col bg-white rounded-lg w-2/3 min-h-[300px] max-h-[90vh] overflow-y-auto">
|
|
<!-- header -->
|
|
<div class="bg-[#2196F3] flex w-full h-10 rounded-tl-lg rounded-tr-lg">
|
|
<h3 class="text-xl font-bold uppercase text-white px-4 py-1">edit</h3>
|
|
</div>
|
|
<!-- body -->
|
|
<div class="flex flex-1 bg-white px-6 py-5">
|
|
<div class="relative w-full">
|
|
<fieldset @click.outside="openJenis = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span x-text="selectedJenis.idJenis != -1 ? 'Jenis' : selectedJenis.namaJenis"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openJenis = !openJenis" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedJenis.namaJenis" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openJenis }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
|
|
<!-- list menu -->
|
|
<div x-show="openJenis"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataJenis.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataJenis" :key="item.idJenis">
|
|
<li :id="item.idJenis" @click="onChangeJenis(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaJenis"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- garis putus putus -->
|
|
<template x-if="selectedJenis.idJenis !== -1">
|
|
<div class="border-t border-dashed border-gray-400 mt-5 mb-5"></div>
|
|
</template>
|
|
|
|
<!-- namaJenis TCP Server -->
|
|
<template x-if="selectedJenis.idJenis === 1">
|
|
<div>
|
|
<!-- port -->
|
|
<label for="Port"
|
|
class="relative block rounded-md border border-gray-400 focus-within:border-blue-600 focus-within:ring-1 focus-within:ring-blue-600">
|
|
<input type="text" id="Port" x-model="port"
|
|
class="peer pl-2 border-none py-3 bg-transparent placeholder-transparent focus:border-transparent focus:ring-0 focus:outline-hidden"
|
|
placeholder="Port" />
|
|
<span
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
Port
|
|
</span>
|
|
</label>
|
|
<div class="mb-5"></div>
|
|
<!-- interface -->
|
|
<fieldset @click.outside="openInterface = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInterface.idInterface != -1 ? 'Interface' : selectedInterface.namaInterface"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInterface = !openInterface" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInterface.namaInterface" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInterface }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInterface"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInterface.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInterface" :key="item.idInterface">
|
|
<li :id="item.idInterface" @click="onChangeInterface(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInterface"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- instrument -->
|
|
<fieldset @click.outside="openInstrument = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInstrument.idInstrument != -1 ? 'Instrument' : selectedInstrument.namaInstrument"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInstrument = !openInstrument" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInstrument.namaInstrument" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInstrument }" fill="none"
|
|
viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInstrument"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInstrument.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInstrument" :key="item.idInstrument">
|
|
<li :id="item.idInstrument" @click="onChangeInstrument(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInstrument"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
</div>
|
|
</template>
|
|
<!-- namaJenis TCP Server -->
|
|
|
|
<!-- namaJenis TCP Client -->
|
|
<template x-if="selectedJenis.idJenis === 2">
|
|
<div>
|
|
<!-- server -->
|
|
<label for="Server"
|
|
class="relative block rounded-md border border-gray-400 focus-within:border-blue-600 focus-within:ring-1 focus-within:ring-blue-600">
|
|
<input type="text" id="Server" x-model="server"
|
|
class="peer pl-2 border-none py-3 bg-transparent placeholder-transparent focus:border-transparent focus:ring-0 focus:outline-hidden"
|
|
placeholder="Server" />
|
|
|
|
<span
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
Server
|
|
</span>
|
|
</label>
|
|
<div class="mb-5"></div>
|
|
<!-- port -->
|
|
<label for="Port"
|
|
class="relative block rounded-md border border-gray-400 focus-within:border-blue-600 focus-within:ring-1 focus-within:ring-blue-600">
|
|
<input type="text" id="Port" x-model="port"
|
|
class="peer pl-2 border-none py-3 bg-transparent placeholder-transparent focus:border-transparent focus:ring-0 focus:outline-hidden"
|
|
placeholder="Port" />
|
|
|
|
<span
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
Port
|
|
</span>
|
|
</label>
|
|
<div class="mb-5"></div>
|
|
<!-- interface -->
|
|
<fieldset @click.outside="openInterface = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInterface.idInterface != -1 ? 'Interface' : selectedInterface.namaInterface"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInterface = !openInterface" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInterface.namaInterface" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInterface }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInterface"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInterface.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInterface" :key="item.idInterface">
|
|
<li :id="item.idInterface" @click="onChangeInterface(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInterface"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- instrument -->
|
|
<fieldset @click.outside="openInstrument = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInstrument.idInstrument != -1 ? 'Instrument' : selectedInstrument.namaInstrument"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInstrument = !openInstrument" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInstrument.namaInstrument" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInstrument }" fill="none"
|
|
viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInstrument"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInstrument.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInstrument" :key="item.idInstrument">
|
|
<li :id="item.idInstrument" @click="onChangeInstrument(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInstrument"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
</div>
|
|
</template>
|
|
<!-- namaJenis TCP Client -->
|
|
|
|
<!-- namaJenis RS232 -->
|
|
<template x-if="selectedJenis.idJenis === 3">
|
|
<div>
|
|
<!-- serial -->
|
|
<fieldset @click.outside="openSerial = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedSerial.idSerial != -1 ? 'Serial' : selectedSerial.namaSerial"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openSerial = !openSerial" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedSerial.namaSerial" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openSerial }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openSerial"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataSerial.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataSerial" :key="item.idSerial">
|
|
<li :id="item.idSerial" @click="onChangeSerial(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaSerial"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- speed -->
|
|
<label for="Speed"
|
|
class="relative block rounded-md border border-gray-400 focus-within:border-blue-600 focus-within:ring-1 focus-within:ring-blue-600">
|
|
<input type="text" id="Speed" x-model="speed"
|
|
class="peer pl-2 border-none py-3 bg-transparent placeholder-transparent focus:border-transparent focus:ring-0 focus:outline-hidden"
|
|
placeholder="Speed" />
|
|
|
|
<span
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
Speed
|
|
</span>
|
|
</label>
|
|
<div class="mb-5"></div>
|
|
<!-- parity -->
|
|
<fieldset @click.outside="openParity = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedParity.idParity != -1 ? 'DataBit' : selectedParity.namaParity"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openParity = !openParity" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedParity.namaParity" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openParity }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openParity"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataParity.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataParity" :key="item.idParity">
|
|
<li :id="item.idParity" @click="onChangeParity(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaParity"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- data bits -->
|
|
<fieldset @click.outside="openDataBit = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedDataBit.idDataBit != -1 ? 'DataBit' : selectedDataBit.namaDataBit"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openDataBit = !openDataBit" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedDataBit.namaDataBit" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openDataBit }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openDataBit"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataDataBit.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataDataBit" :key="item.idDataBit">
|
|
<li :id="item.idDataBit" @click="onChangeDataBit(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaDataBit"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- stop bit -->
|
|
<fieldset @click.outside="openStopBit = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedStopBit.idStopBit != -1 ? 'StopBit' : selectedStopBit.namaStopBit"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openStopBit = !openStopBit" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedStopBit.namaStopBit" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openStopBit }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openStopBit"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataStopBit.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataStopBit" :key="item.idStopBit">
|
|
<li :id="item.idStopBit" @click="onChangeStopBit(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaStopBit"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- interface -->
|
|
<fieldset @click.outside="openInterface = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInterface.idInterface != -1 ? 'Interface' : selectedInterface.namaInterface"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInterface = !openInterface" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInterface.namaInterface" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInterface }" fill="none" viewBox="0 0 24 24"
|
|
stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInterface"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInterface.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInterface" :key="item.idInterface">
|
|
<li :id="item.idInterface" @click="onChangeInterface(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInterface"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
<!-- instrument -->
|
|
<fieldset @click.outside="openInstrument = false"
|
|
class="relative border border-gray-400 rounded-md focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 px-3 pt-2 pb-2">
|
|
<span
|
|
x-text="selectedInstrument.idInstrument != -1 ? 'Instrument' : selectedInstrument.namaInstrument"
|
|
class="pointer-events-none absolute start-2.5 top-0 -translate-y-1/2 bg-white p-0.5 text-xs text-gray-700 transition-all peer-placeholder-shown:top-1/2 peer-placeholder-shown:text-sm peer-focus:top-0 peer-focus:text-xs">
|
|
</span>
|
|
<button @click="openInstrument = !openInstrument" type="button"
|
|
class="w-full flex items-center justify-between bg-transparent text-gray-900 py-0.5 focus:outline-none">
|
|
<span x-text="selectedInstrument.namaInstrument" class="text-left"></span>
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 transition-transform"
|
|
:class="{ 'rotate-180': openInstrument }" fill="none"
|
|
viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
</fieldset>
|
|
<div x-show="openInstrument"
|
|
class="absolute bg-white w-full border border-gray-300 rounded-md shadow-lg z-10 max-h-[200px] overflow-y-auto">
|
|
<ul>
|
|
<template x-if="dataInstrument.length === 0">
|
|
<li class="py-2 px-3 text-gray-500 text-center">Data tidak ada</li>
|
|
</template>
|
|
<template x-for="item in dataInstrument" :key="item.idInstrument">
|
|
<li :id="item.idInstrument" @click="onChangeInstrument(item)"
|
|
class="py-2 px-3 hover:bg-blue-100 cursor-pointer text-gray-700">
|
|
<button x-text="item.namaInstrument"></button>
|
|
</li>
|
|
</template>
|
|
</ul>
|
|
</div>
|
|
<div class="mb-5"></div>
|
|
</div>
|
|
</template>
|
|
<!-- namaJenis RS232 -->
|
|
</div>
|
|
</div>
|
|
<!-- footer -->
|
|
<div class="h-10 px-4 py-2 mb-5">
|
|
<div class="flex items-end justify-end">
|
|
<button @click="closeDialogEdit()" class="mr-3 text-[#FF5252] hover:text-white font-bold text-sm uppercase transition duration-200
|
|
hover:bg-[#FF5252] px-4 py-2 rounded-md">
|
|
Cancel
|
|
</button>
|
|
<button class="text-[#1976D2] font-bold text-sm uppercase px-4 py-2 rounded-md transition duration-200
|
|
hover:bg-[#1976D2] hover:text-white">
|
|
Save
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- modal edit desktop -->
|
|
|
|
<!-- Kiri Mobile -->
|
|
<div class="bg-[#F2F9FF] h-5 flex justify-between space-x-2 lg:hidden">
|
|
<h2 class="text-black/87 font-medium text-xl mb-4">Setting</h2>
|
|
<a href="settings_mobile_add.html">
|
|
<span class="material-symbols-outlined text-[#2196F3]">add</span>
|
|
</a>
|
|
</div>
|
|
|
|
<!-- Bagian Kanan (PORT STATUS) -->
|
|
<div class="w-full lg:w-1/2 rounded-lg flex flex-col flex-1 overflow-auto">
|
|
<!-- table become list in mobile -->
|
|
<div class="flex flex-row mb-6 lg:hidden lg:mb-0">
|
|
<div class="flex flex-col w-full lg:flex-row mb-5">
|
|
<template x-for="item in dataSetting" :key="item.idSetting">
|
|
<div class="bg-white mr-0 mb-5 rounded-md lg:mr-5 p-2 w-full lg:w-1/2 lg:mb-0 relative">
|
|
<div class="flex justify-between">
|
|
<h2 class="text-black/87 font-medium text-xl mb-4" x-text="item.namaJenis"></h2>
|
|
<div class="relative flex h-4 w-4">
|
|
<button @click="editMobilePage(item)"><span
|
|
class="material-symbols-outlined text-[#2196F3]">edit</span></button>
|
|
</div>
|
|
</div>
|
|
<div class="flex justify-between">
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Info</p>
|
|
<p class="text-black/87 font-normal text-sm mb-2" x-text="item.info"></p>
|
|
</div>
|
|
<div class="flex justify-between">
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Instrument</p>
|
|
<p class="text-black/87 font-normal text-sm mb-2" x-text="item.namaInstrument"></p>
|
|
</div>
|
|
<div class="flex justify-between">
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Interface</p>
|
|
<p class="text-black/87 font-normal text-sm mb-2" x-text="item.namaInterface"></p>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex flex-row">
|
|
<div class="flex flex-col w-full lg:flex-row mb-5">
|
|
<!-- 1 -->
|
|
<div class="bg-white mr-0 mb-5 rounded-md lg:mr-5 p-2 w-full lg:w-1/2 lg:mb-0 relative">
|
|
<div class="flex justify-between">
|
|
<h2 class="text-black/87 font-medium text-xl mb-4">PORT STATUS</h2>
|
|
<div class="relative flex h-4 w-4">
|
|
<span
|
|
class="absolute inline-flex h-full w-full animate-ping rounded-full bg-[#1CCFB1] opacity-75"></span>
|
|
<span class="relative inline-flex h-4 w-4 rounded-full bg-[#1CCFB1] "></span>
|
|
</div>
|
|
</div>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Port 0</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">TCP (192 168.0.1 : 2000)</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Offline</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">XN5000</p>
|
|
</div>
|
|
<!-- 2 -->
|
|
<div class="bg-white rounded-md p-2 w-full lg:w-1/2 relative">
|
|
<div class="flex justify-between">
|
|
<h2 class="text-black/87 font-medium text-xl mb-4">PORT STATUS</h2>
|
|
<div class="relative flex h-4 w-4">
|
|
<span
|
|
class="absolute inline-flex h-full w-full rounded-full bg-[#E10A0A] opacity-75"></span>
|
|
<span class="relative inline-flex h-4 w-4 rounded-full bg-[#E10A0A] "></span>
|
|
</div>
|
|
</div>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Port 1</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">TCP (192 168.0.1 : 2000)</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Offline</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">XN5000</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="flex flex-row">
|
|
<div class="flex flex-col w-full lg:flex-row mb-5">
|
|
<!-- 1 -->
|
|
<div class="bg-white mr-0 mb-5 rounded-md lg:mr-5 p-2 w-full lg:w-1/2 lg:mb-0 relative">
|
|
<div class="flex justify-between">
|
|
<h2 class="text-black/87 font-medium text-xl mb-4">PORT STATUS</h2>
|
|
<div class="relative flex h-4 w-4">
|
|
<span
|
|
class="absolute inline-flex h-full w-full animate-ping rounded-full bg-[#1CCFB1] opacity-75"></span>
|
|
<span class="relative inline-flex h-4 w-4 rounded-full bg-[#1CCFB1] "></span>
|
|
</div>
|
|
</div>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Port 0</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">TCP (192 168.0.1 : 2000)</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Offline</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">XN5000</p>
|
|
</div>
|
|
<!-- 2 -->
|
|
<div class="bg-white rounded-md p-2 w-full lg:w-1/2 relative">
|
|
<div class="flex justify-between">
|
|
<h2 class="text-black/87 font-medium text-xl mb-4">PORT STATUS</h2>
|
|
<div class="relative flex h-4 w-4">
|
|
<span
|
|
class="absolute inline-flex h-full w-full rounded-full bg-[#E10A0A] opacity-75"></span>
|
|
<span class="relative inline-flex h-4 w-4 rounded-full bg-[#E10A0A] "></span>
|
|
</div>
|
|
</div>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Port 1</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">TCP (192 168.0.1 : 2000)</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">Offline</p>
|
|
<p class="text-[#00000099] font-normal text-sm mb-2">XN5000</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="js/settings.js"></script>
|
|
</body>
|
|
|
|
</html> |