diff --git a/app/Controllers/AppContentManagementController.php b/app/Controllers/AppContentManagementController.php index a3db36ec..15a95f49 100755 --- a/app/Controllers/AppContentManagementController.php +++ b/app/Controllers/AppContentManagementController.php @@ -73,11 +73,11 @@ class AppContentManagementController extends AdminController ] ], 'client_id' => [ - 'rules' => 'required|integer|is_natural_no_zero', + 'rules' => 'required|integer|is_natural', 'errors' => [ - 'required' => 'Client is required', - 'integer' => 'Invalid client selected', - 'is_natural_no_zero' => 'Invalid client selected' + 'required' => 'Client is required', + 'integer' => 'Invalid client selected', + 'is_natural' => 'Invalid client selected', ] ], 'advertise_image' => [ @@ -85,15 +85,13 @@ class AppContentManagementController extends AdminController . 'is_image[advertise_image]' . '|mime_in[advertise_image,image/jpg,image/jpeg,image/png]' . '|max_size[advertise_image,200]' - . '|min_dims[advertise_image,1640,664]' . '|max_dims[advertise_image,1640,664]', 'errors' => [ 'uploaded' => 'Image is required', 'is_image' => 'File must be an image', 'mime_in' => 'Only JPG, JPEG, PNG allowed', 'max_size' => 'Image size must not exceed 200 KB', - 'min_dims' => 'Image dimensions must be exactly 1640x664 pixels', - 'max_dims' => 'Image dimensions must be exactly 1640x664 pixels', + 'max_dims' => 'Image dimensions must not exceed 1640x664 pixels', ] ], ]; @@ -110,9 +108,11 @@ class AppContentManagementController extends AdminController $file = $this->request->getFile('advertise_image'); $client_id = (int)($sanitized_post_data['client_id'] ?? 0); - $clientExists = $this->clientModel->where('id', $client_id)->where('is_active', 1)->first(); - if (!$clientExists) { - return $this->respond(['status' => false, 'message' => 'Invalid client selected.'], 400); + if ($client_id !== 0) { + $clientExists = $this->clientModel->where('id', $client_id)->where('is_active', 1)->first(); + if (!$clientExists) { + return $this->respond(['status' => false, 'message' => 'Invalid client selected.'], 400); + } } if (!$file || !$file->isValid()) { @@ -123,6 +123,11 @@ class AppContentManagementController extends AdminController return $this->respond(['status' => false, 'message' => 'Only JPG, JPEG, PNG files are allowed.'], 400); } + $dimInfo = @getimagesize($file->getTempName()); + if ($dimInfo === false || (int) $dimInfo[0] !== 1640 || (int) $dimInfo[1] !== 664) { + return $this->respond(['status' => false, 'message' => 'Image dimensions must be exactly 1640x664 pixels.'], 400); + } + $fileName = sanitize_upload_filename($file->getClientName()); $existing = $this->addImgModel->where('name', $fileName)->where('client_id', $client_id)->where('is_active', 1)->first(); if($existing){ return $this->respond(['status' => false, 'message' => 'This file has already been uploaded in active state.'], 400); } diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 8db53a2f..6019a866 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -497,6 +497,7 @@ class EmployeeController extends AdminController batch_files.is_active, batch_files.amount, batch_files.status, + batch_files.icici_status_flag, batch_files.client_branch_id, insurers.short_name as insurer_short_name, tpa.short_name as tpa_short_name, diff --git a/app/Views/batch_list.php b/app/Views/batch_list.php index a610e38a..e63140ef 100755 --- a/app/Views/batch_list.php +++ b/app/Views/batch_list.php @@ -61,6 +61,11 @@ for ($i = 0; $i < $batch_col_count; $i++) { cursor: pointer; } +/* Allow line breaks in tooltip titles using \n */ +.tooltip-inner { + white-space: pre-line; +} + /* Column widths from max data length (see PHP above). Avoid table-layout:fixed + identical max-width on TH — it fights DataTables col sizing and skews TH vs TD. Do not max-width THEAD cells (sort icons use position:absolute; narrow max clips them). */ @@ -289,15 +294,32 @@ for ($i = 0; $i < $batch_col_count; $i++) { - - - - + + + + + + + + + + + + + + - diff --git a/app/Views/claims_dash.php b/app/Views/claims_dash.php index 804b2621..5e812ab3 100644 --- a/app/Views/claims_dash.php +++ b/app/Views/claims_dash.php @@ -151,10 +151,7 @@ } - -
+
diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php index c348cfae..9e654e80 100755 --- a/app/Views/client_policy.php +++ b/app/Views/client_policy.php @@ -251,7 +251,7 @@ input:checked + .slider_blue::before {
diff --git a/app/Views/endorsement_dash.php b/app/Views/endorsement_dash.php index 1994460a..afb18db6 100755 --- a/app/Views/endorsement_dash.php +++ b/app/Views/endorsement_dash.php @@ -193,7 +193,7 @@ -
+
diff --git a/app/Views/errors/404.php b/app/Views/errors/404.php index 7bb7897f..1cb33cf5 100755 --- a/app/Views/errors/404.php +++ b/app/Views/errors/404.php @@ -41,11 +41,19 @@ text-align: center; } + .error-illustration-frame { + display: inline-block; + max-width: 100%; + line-height: 0; + margin: 0 auto; + } + .error-image { - width: min(100%, 560px); - height: auto; display: block; - margin: 0 auto 10px auto; + width: auto !important; + height: auto !important; + max-width: 100% !important; + object-fit: contain; } .error-title { @@ -98,7 +106,7 @@ background-image: radial-gradient(circle at 0 0, rgba(87, 233, 255, 0.12) 0, rgba(87, 233, 255, 0.12) 120px, transparent 120px), radial-gradient(circle at 100% 100%, rgba(87, 233, 255, 0.12) 0, rgba(87, 233, 255, 0.12) 140px, transparent 140px); } - .error-image { + .error-illustration-frame { margin-bottom: 20px; } @@ -113,7 +121,13 @@
- /assets/images/errors/404_illustration.jpg" alt="404 page not found illustration"> +
+ /assets/images/errors/404_illustration.png" + decoding="async" + fetchpriority="high" + alt="404 page not found"> +

PAGE NOT FOUND

diff --git a/app/Views/errors/html/error_404.php b/app/Views/errors/html/error_404.php index e506f083..711159eb 100755 --- a/app/Views/errors/html/error_404.php +++ b/app/Views/errors/html/error_404.php @@ -1,84 +1,23 @@ - - - - - <?= lang('Errors.pageNotFound') ?> + - div.logo { - height: 200px; - width: 155px; - display: inline-block; - opacity: 0.08; - position: absolute; - top: 2rem; - left: 50%; - margin-left: -73px; - } - body { - height: 100%; - background: #fafafa; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - color: #777; - font-weight: 300; - } - h1 { - font-weight: lighter; - letter-spacing: normal; - font-size: 3rem; - margin-top: 0; - margin-bottom: 0; - color: #222; - } - .wrap { - max-width: 1024px; - margin: 5rem auto; - padding: 2rem; - background: #fff; - text-align: center; - border: 1px solid #efefef; - border-radius: 0.5rem; - position: relative; - } - pre { - white-space: normal; - margin-top: 1.5rem; - } - code { - background: #fafafa; - border: 1px solid #efefef; - padding: 0.5rem 1rem; - border-radius: 5px; - display: block; - } - p { - margin-top: 1.5rem; - } - .footer { - margin-top: 2rem; - border-top: 1px solid #efefef; - padding: 1em 2em 0 2em; - font-size: 85%; - color: #999; - } - a:active, - a:link, - a:visited { - color: #dd4814; - } - - - -

-

404

+declare(strict_types=1); -

- - - - - -

-
- - +/** + * CodeIgniter resolves PageNotFoundException to this file (see ExceptionHandler::determineView). + * Delegate to the NHance branded page at Views/errors/404.php. + */ + +$page_name = $page_name ?? 'NHance'; + +if (ENVIRONMENT === 'production') { + $displayMessage = lang('Errors.sorryCannotFind'); + if ($displayMessage === '') { + $displayMessage = "Sorry, the page you're looking for doesn't exist or has been moved."; + } +} else { + $displayMessage = nl2br(esc($message ?? '')); +} + +$message = $displayMessage; + +include dirname(__DIR__) . DIRECTORY_SEPARATOR . '404.php'; diff --git a/app/Views/leads_dash.php b/app/Views/leads_dash.php index 7fb07fb6..9a0cec9a 100644 --- a/app/Views/leads_dash.php +++ b/app/Views/leads_dash.php @@ -156,10 +156,7 @@ - -
+
diff --git a/public/assets/images/errors/404_illustration.png b/public/assets/images/errors/404_illustration.png new file mode 100644 index 00000000..762e311c Binary files /dev/null and b/public/assets/images/errors/404_illustration.png differ diff --git a/public/assets/images/errors/404_illustration_old.jpg b/public/assets/images/errors/404_illustration_old.jpg new file mode 100644 index 00000000..e69197a6 Binary files /dev/null and b/public/assets/images/errors/404_illustration_old.jpg differ