Files
lis/htdocs/resources/views/dokter/mikro-expertise.blade.php
T
2026-07-19 21:23:09 +07:00

231 lines
9.5 KiB
PHP

<!--
@extends(Session::get('previlage') == 'developer' ? 'dokter.ppdsdeveloper' : 'dokter.ppds')
-->
@extends('dokter.ppdsdeveloper')
@push('script')
<script type="text/javascript">
$(function () {
var focusPeriksaId = @json((string) ($focusPeriksaId ?? ''));
var focusNoFoto = @json((string) ($focusNoFoto ?? ''));
var returnUrl = @json($expertiseReturnUrl ?? url('/'));
var shouldOpenOnLoad = @json((bool) ($openExpertiseOnLoad ?? false));
var initialListMode = @json($initialListMode ?? 'searchbydate');
var initialSearchValue = @json($initialSearchValue ?? '');
var initialStartDate = @json($initialStartDate ?? '');
var initialEndDate = @json($initialEndDate ?? '');
var autoOpenAttempts = 0;
var maxAutoOpenAttempts = 12;
var hasOpenedTarget = false;
var hasRequestedFilteredLoad = false;
console.log('[mikro-expertise] init', {
focusPeriksaId: focusPeriksaId,
focusNoFoto: focusNoFoto,
shouldOpenOnLoad: shouldOpenOnLoad,
initialListMode: initialListMode,
initialSearchValue: initialSearchValue,
initialStartDate: initialStartDate,
initialEndDate: initialEndDate
});
function setInitialFilters() {
console.log('[mikro-expertise] setInitialFilters:start');
if ($('#mulai').length) {
$('#mulai').val(initialStartDate);
}
if ($('#akhir').length) {
$('#akhir').val(initialEndDate);
}
if ($('#valjenis').length) {
$('#valjenis').val(initialListMode);
}
if ($('#master_set01').length) {
$('#master_set01').val(initialListMode);
}
if ($('#valcari').length) {
$('#valcari').val(initialSearchValue);
}
console.log('[mikro-expertise] setInitialFilters:done', {
mulai: $('#mulai').val(),
akhir: $('#akhir').val(),
valjenis: $('#valjenis').val(),
master_set01: $('#master_set01').val(),
valcari: $('#valcari').val()
});
}
function findExpertiseButton(boundIndex) {
var row = $('#gridpemeriksaan').find('[role="row"][boundindex="' + boundIndex + '"]').first();
if (!row.length) {
return $();
}
return row.find('button, input, .jqx-button').filter(function () {
var text = $.trim($(this).text());
var value = $.trim($(this).val());
return text === 'Expertise' || value === 'Expertise';
}).first();
}
function triggerExpertiseButton(boundIndex, rowData) {
console.log('[mikro-expertise] triggerExpertiseButton:start', {
boundIndex: boundIndex,
rowData: rowData
});
try {
var columns = $('#gridpemeriksaan').jqxGrid('columns');
var records = columns && columns.records ? columns.records : [];
console.log('[mikro-expertise] triggerExpertiseButton:columns', {
count: records.length
});
for (var i = 0; i < records.length; i++) {
var column = records[i];
if (column && typeof column.buttonclick === 'function') {
var renderedLabel = typeof column.cellsrenderer === 'function'
? column.cellsrenderer()
: '';
if (String(renderedLabel).indexOf('Expertise') !== -1) {
console.log('[mikro-expertise] triggerExpertiseButton:calling column.buttonclick', {
columnIndex: i,
renderedLabel: renderedLabel
});
column.buttonclick(rowData || boundIndex);
return true;
}
}
}
} catch (error) {
console.error('[mikro-expertise] triggerExpertiseButton:error', error);
}
var button = findExpertiseButton(boundIndex);
if (button.length) {
console.log('[mikro-expertise] triggerExpertiseButton:fallback DOM button click');
button.trigger('click');
return true;
}
console.warn('[mikro-expertise] triggerExpertiseButton:not found');
return false;
}
function openFocusedPeriksa() {
console.log('[mikro-expertise] openFocusedPeriksa:start', {
shouldOpenOnLoad: shouldOpenOnLoad,
hasOpenedTarget: hasOpenedTarget,
focusPeriksaId: focusPeriksaId,
focusNoFoto: focusNoFoto,
attempt: autoOpenAttempts + 1
});
if (!shouldOpenOnLoad || hasOpenedTarget || !focusPeriksaId) {
console.warn('[mikro-expertise] openFocusedPeriksa:skipped');
return;
}
var rows = $('#gridpemeriksaan').jqxGrid('getrows') || [];
console.log('[mikro-expertise] openFocusedPeriksa:grid rows', {
count: rows.length,
sample: rows.slice ? rows.slice(0, 3).map(function (row) {
return {
id: row.id,
nofoto: row.nofoto,
dlp: row.dlp,
status: row.status,
boundindex: row.boundindex
};
}) : []
});
var matchedRow = null;
var matchedRowBoundIndex = -1;
for (var i = 0; i < rows.length; i++) {
if (String(rows[i].id) === focusPeriksaId || (focusNoFoto !== '' && String(rows[i].nofoto) === focusNoFoto)) {
matchedRow = rows[i];
matchedRowBoundIndex = typeof rows[i].boundindex !== 'undefined'
? rows[i].boundindex
: i;
break;
}
}
if (!matchedRow) {
autoOpenAttempts++;
console.warn('[mikro-expertise] openFocusedPeriksa:not matched', {
attempt: autoOpenAttempts,
focusPeriksaId: focusPeriksaId,
focusNoFoto: focusNoFoto
});
if (autoOpenAttempts >= maxAutoOpenAttempts) {
console.error('[mikro-expertise] openFocusedPeriksa:max attempts, showing divawal');
$('#divawal').show();
}
return;
}
var triggerRowIndex = matchedRowBoundIndex >= 0 ? matchedRowBoundIndex : matchedRow.boundindex;
console.log('[mikro-expertise] openFocusedPeriksa:matched', {
triggerRowIndex: triggerRowIndex,
row: matchedRow
});
$('#gridpemeriksaan').jqxGrid('selectrow', triggerRowIndex);
$('#gridpemeriksaan').jqxGrid('ensurerowvisible', triggerRowIndex);
setTimeout(function () {
if (triggerExpertiseButton(triggerRowIndex, matchedRow)) {
hasOpenedTarget = true;
console.log('[mikro-expertise] openFocusedPeriksa:triggered');
return;
}
autoOpenAttempts++;
console.warn('[mikro-expertise] openFocusedPeriksa:trigger failed', {
attempt: autoOpenAttempts
});
if (autoOpenAttempts >= maxAutoOpenAttempts) {
console.error('[mikro-expertise] openFocusedPeriksa:max trigger attempts, showing divawal');
$('#divawal').show();
}
}, 150);
}
function requestFilteredLoad() {
console.log('[mikro-expertise] requestFilteredLoad:start', {
hasRequestedFilteredLoad: hasRequestedFilteredLoad,
openedpageType: typeof openedpage
});
if (hasRequestedFilteredLoad) {
console.warn('[mikro-expertise] requestFilteredLoad:skipped duplicate');
return;
}
hasRequestedFilteredLoad = true;
setInitialFilters();
if (typeof openedpage === 'function') {
console.log('[mikro-expertise] requestFilteredLoad:calling openedpage');
openedpage();
} else {
console.error('[mikro-expertise] requestFilteredLoad:openedpage missing, showing divawal');
$('#divawal').show();
}
}
$('#gridpemeriksaan').off('bindingcomplete.mikro-expertise').on('bindingcomplete.mikro-expertise', function () {
console.log('[mikro-expertise] grid bindingcomplete');
openFocusedPeriksa();
});
$(window).off('load.mikro-expertise').on('load.mikro-expertise', function () {
console.log('[mikro-expertise] window load');
requestFilteredLoad();
});
$('#btnkembali2').off('click.mikro-expertise').on('click.mikro-expertise', function () {
window.location.href = returnUrl;
});
});
</script>
@endpush