From fbf33f3bc351e8e2990a38830638e686b4706bd5 Mon Sep 17 00:00:00 2001 From: marszayn Date: Tue, 12 Aug 2025 11:44:57 +0700 Subject: [PATCH] update: change url, scroll intoview --- .../SpjAdminController/SpjAdminController.cs | 2 +- .../Transport/SpjAdmin/Scan/Index.cshtml | 53 ++++++++++++++++--- .../Shared/Components/_Navigation.cshtml | 6 +-- 3 files changed, 49 insertions(+), 12 deletions(-) diff --git a/Controllers/SpjAdminController/SpjAdminController.cs b/Controllers/SpjAdminController/SpjAdminController.cs index b2bb538..554f989 100644 --- a/Controllers/SpjAdminController/SpjAdminController.cs +++ b/Controllers/SpjAdminController/SpjAdminController.cs @@ -4,7 +4,7 @@ using eSPJ.Models; namespace eSPJ.Controllers.SpjAdminController; -[Route("admin")] +[Route("transport/spj-admin")] public class SpjAdminController : Controller { private static readonly Guid DummySpjGuid = new Guid("9f5b8f3a-1c2d-4a5b-9a7c-1234567890ab"); diff --git a/Views/Admin/Transport/SpjAdmin/Scan/Index.cshtml b/Views/Admin/Transport/SpjAdmin/Scan/Index.cshtml index 90db7b3..da52ca4 100644 --- a/Views/Admin/Transport/SpjAdmin/Scan/Index.cshtml +++ b/Views/Admin/Transport/SpjAdmin/Scan/Index.cshtml @@ -328,6 +328,43 @@ return markup; } }); + + + $('#manual-barcode-select').on('select2:open', function (e) { + setTimeout(function() { + scrollToSelect2(); + }, 100); + }); + + + $(document).on('focus', '.select2-search__field', function() { + setTimeout(function() { + scrollToSelect2(); + }, 300); + }); + } + + function scrollToSelect2() { + const selectElement = document.getElementById('manual-barcode-select'); + const select2Container = selectElement?.nextElementSibling; + + if (select2Container) { + select2Container.scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'nearest' + }); + + if (window.innerWidth <= 768) { + const rect = select2Container.getBoundingClientRect(); + const scrollTop = window.pageYOffset + rect.top - (window.innerHeight / 3); + + window.scrollTo({ + top: scrollTop, + behavior: 'smooth' + }); + } + } } function formatSpjOption(spj) { @@ -341,12 +378,12 @@ return $( '
' + - '
' + spj.text + '
' + - '
' + + '
' + spj.platNomor + '|' + spj.nomorPintu + '
' + + @* '
' + '' + spj.driverName + '' + '' + spj.nomorPintu + '' + - '
' + - '
' + spj.platNomor + '
' + + '
' + *@ + '
' + spj.text + '
' + '
' ); } @@ -632,7 +669,7 @@ } processUrlFor(id) { - const basePath = '@Url.Content("~/admin/scan/process/")'; + const basePath = '@Url.Content("~/transport/spj-adminscan/process/")'; return basePath + encodeURIComponent(id); } @@ -646,7 +683,7 @@ } resolveSpj(code) { - const url = '@Url.Content("~/admin/scan/resolve")'; + const url = '@Url.Content("~/transport/spj-adminscan/resolve")'; return $.ajax({ url: url, type: 'POST', @@ -687,9 +724,9 @@ const waktu = now.toLocaleTimeString('id-ID', { hour: '2-digit', minute: '2-digit' }); this.showSuccessModal(trimmed, tanggal, waktu); } - else if (resp.data.status === "exits") { + else if (resp.data.status === "exists") { this.showModal('error', 'SPJ sudah di Scan', (resp && resp.message) ? resp.message : 'Kode SPJ sudah digunakan.', true); - }else + } else { this.showModal('error', 'SPJ Tidak Ditemukan', (resp && resp.message) ? resp.message : 'Kode SPJ tidak ditemukan dalam database.', true); } diff --git a/Views/Admin/Transport/SpjAdmin/Shared/Components/_Navigation.cshtml b/Views/Admin/Transport/SpjAdmin/Shared/Components/_Navigation.cshtml index fd777f0..5340fda 100644 --- a/Views/Admin/Transport/SpjAdmin/Shared/Components/_Navigation.cshtml +++ b/Views/Admin/Transport/SpjAdmin/Shared/Components/_Navigation.cshtml @@ -10,7 +10,7 @@
- +