This commit adds comprehensive audit logging for specimen requests and sample collection activities across all roles. Changes Summary: New Features: - Added AUDIT_EVENTS table schema for tracking validation and sample collection events - Created ApiRequestsAuditController with /api/requests/(:any)/audit endpoint to retrieve audit history - Added dialog_audit.php view component for displaying audit trails in UI - Integrated audit logging into validation workflow (VAL1, VAL2, UNVAL events) Database: - Created AUDIT_EVENTS table with columns: ACCESSNUMBER, EVENT_TYPE, USERID, EVENT_AT, REASON - Supports tracking validation events and sample collection actions Controllers: - RequestsController: Now inserts audit records for all validation operations - ApiRequestsAuditController: New API controller returning validation and sample collection history Routes: - Added GET /api/requests/(:any)/audit endpoint for retrieving audit trail - Removed DELETE /api/samples/collect/(:any) endpoint (uncollect functionality) Views Refactoring: - Consolidated dashboard layouts into shared components: - layout.php (from layout_dashboard.php) - script_requests.php (from script_dashboard.php) - script_validation.php (from script_validate.php) - content_requests.php (from dashboard_table.php) - content_validation.php (from dashboard_validate.php) - Added content_validation_new.php for enhanced validation interface
23 lines
1.0 KiB
PHP
23 lines
1.0 KiB
PHP
<dialog class="modal" :open="isDialogUnvalOpen">
|
|
<template x-if="unvalAccessnumber">
|
|
<div class="modal-box w-96">
|
|
<h3 class="font-bold text-lg mb-4 text-warning">
|
|
<i class="fa fa-exclamation-triangle mr-2"></i>Unvalidate Request
|
|
</h3>
|
|
<p class="text-sm mb-3" x-text="'Access Number: ' + unvalAccessnumber"></p>
|
|
<textarea class="textarea textarea-bordered w-full" rows="4"
|
|
x-model="unvalReason" placeholder="Enter reason for unvalidation..."></textarea>
|
|
<p class='text-right mt-3'>
|
|
<button class="btn btn-sm btn-ghost" @click="closeUnvalDialog()">Cancel</button>
|
|
<?php if (session()->get('userlevel') <= 1): ?>
|
|
<button id="unvalidate-btn" class="btn btn-sm btn-warning"
|
|
@click="unvalidate(unvalAccessnumber, '<?=session('userid');?>')"
|
|
:disabled="!unvalReason.trim()">
|
|
<span class="text-error font-bold">UnVal</span>
|
|
</button>
|
|
<?php endif; ?>
|
|
</p>
|
|
</div>
|
|
</template>
|
|
</dialog>
|