From 96828654545683a09fe41b2ce4553036b9a42ea1 Mon Sep 17 00:00:00 2001 From: venba-Inspriron-3558 Date: Wed, 3 Sep 2025 14:53:25 +0530 Subject: [PATCH 1/2] FIX_UI support --- app/Views/UserList.php | 4 +- app/Views/cd_master_add_modal.php | 26 ++- app/Views/insurer_branch.php | 282 +++++++++++++++-------- app/Views/insurer_export_templete.php | 10 +- app/Views/insurer_onboarding.php | 2 +- app/Views/kyc_docs.php | 6 +- app/Views/kyc_entity_type_basic_info.php | 4 +- app/Views/kyc_onboarding.php | 2 +- app/Views/layout/header.php | 13 +- app/Views/policy_type_basic_info.php | 4 +- app/Views/policy_type_onboarding.php | 2 +- app/Views/thz_list.php | 10 +- app/Views/thz_notes.php | 2 +- app/Views/tpa_basic_info.php | 14 +- app/Views/tpa_branch.php | 216 ++++++++++++----- app/Views/tpa_onboarding.php | 2 +- app/Views/vehicle_master_list.php | 4 +- 17 files changed, 403 insertions(+), 200 deletions(-) diff --git a/app/Views/UserList.php b/app/Views/UserList.php index baa63298..ea8a21ae 100755 --- a/app/Views/UserList.php +++ b/app/Views/UserList.php @@ -377,8 +377,8 @@ table.dataTable tbody td {
- - + +
diff --git a/app/Views/cd_master_add_modal.php b/app/Views/cd_master_add_modal.php index b5d4cf66..9be62e94 100644 --- a/app/Views/cd_master_add_modal.php +++ b/app/Views/cd_master_add_modal.php @@ -1,3 +1,25 @@ + --> -
+

diff --git a/app/Views/kyc_docs.php b/app/Views/kyc_docs.php index 623087d3..8b9a703c 100755 --- a/app/Views/kyc_docs.php +++ b/app/Views/kyc_docs.php @@ -1,4 +1,4 @@ -
+
@@ -89,10 +89,10 @@
- -
diff --git a/app/Views/kyc_entity_type_basic_info.php b/app/Views/kyc_entity_type_basic_info.php index 84a58bc8..9998f144 100755 --- a/app/Views/kyc_entity_type_basic_info.php +++ b/app/Views/kyc_entity_type_basic_info.php @@ -1,7 +1,7 @@
-
+
@@ -21,7 +21,7 @@
- diff --git a/app/Views/kyc_onboarding.php b/app/Views/kyc_onboarding.php index 4e1ffd8d..d13612f1 100755 --- a/app/Views/kyc_onboarding.php +++ b/app/Views/kyc_onboarding.php @@ -34,7 +34,7 @@ body {
-
+

diff --git a/app/Views/layout/header.php b/app/Views/layout/header.php index 0008aa61..cd666884 100755 --- a/app/Views/layout/header.php +++ b/app/Views/layout/header.php @@ -520,8 +520,6 @@ a.app-text-success:hover, a.app-text-success:focus { box-shadow: 0 0 0 0.15rem rgba(226, 103, 40, 0.5); } -.app-btn-border-radius{ border-radius: 10px !important; } - .app-badge-primary { color: #ffffff; background-color: #00999E; } @@ -1093,9 +1091,9 @@ a.app-badge-secondary:focus, a.app-badge-secondary.focus { } .custom-form .form-control { background-color: #F5FFFF !important; - border: 1px solid #ccc; /* optional */ + border: none !important; /* color: #000; keep text readable */ - box-shadow: none !important; + box-shadow: 0px 1px 1px 0px #00000040; } .custom-form .form-control:focus { background-color: #F5FFFF !important; @@ -1103,7 +1101,7 @@ a.app-badge-secondary:focus, a.app-badge-secondary.focus { } .custom-form .select2-container--default .select2-selection--multiple { background-color: #F5FFFF !important; - border: 1px solid #ccc; + border: none !important; } .custom-form .select2-container .select2-selection--single { background-color: #F5FFFF !important; @@ -1121,6 +1119,11 @@ a.app-badge-secondary:focus, a.app-badge-secondary.focus { margin-top:0 !important; padding-top: 0 !important; } + + .subcard{ + padding-top: 0px; + padding-left: 5px; + } diff --git a/app/Views/policy_type_basic_info.php b/app/Views/policy_type_basic_info.php index 3ef7a288..1bfb3fe3 100755 --- a/app/Views/policy_type_basic_info.php +++ b/app/Views/policy_type_basic_info.php @@ -1,7 +1,7 @@
-
+
@@ -76,7 +76,7 @@
- diff --git a/app/Views/policy_type_onboarding.php b/app/Views/policy_type_onboarding.php index c219583c..d14db3e2 100755 --- a/app/Views/policy_type_onboarding.php +++ b/app/Views/policy_type_onboarding.php @@ -42,7 +42,7 @@ body { ">
--> -
+

diff --git a/app/Views/thz_list.php b/app/Views/thz_list.php index 73e1641f..0590810a 100644 --- a/app/Views/thz_list.php +++ b/app/Views/thz_list.php @@ -281,8 +281,8 @@ table.dataTable td.wrap {

@@ -314,7 +314,7 @@ table.dataTable td.wrap {

@@ -610,7 +610,7 @@ $(document).ready(function() { buttons: [ { text: ' Create New Ticket ', - className: 'btn app-btn-primary app-btn-border-radius mr-2', + className: 'btn app-btn-primary mr-2', action: function(e, dt, node, config) { openTicket(); } @@ -618,7 +618,7 @@ $(document).ready(function() { { extend: 'collection', text: ' Export ', - className: 'btn app-btn-secondary app-btn-border-radius', + className: 'btn app-btn-secondary ', buttons: [ { extend: 'csv', diff --git a/app/Views/thz_notes.php b/app/Views/thz_notes.php index 0446f52f..c7a23bb8 100644 --- a/app/Views/thz_notes.php +++ b/app/Views/thz_notes.php @@ -386,7 +386,7 @@ hr{
diff --git a/app/Views/tpa_basic_info.php b/app/Views/tpa_basic_info.php index 6294d4d2..9830c520 100755 --- a/app/Views/tpa_basic_info.php +++ b/app/Views/tpa_basic_info.php @@ -28,7 +28,7 @@ font-size: 14px; } -.delete-btn { +/* .delete-btn { background-color: #e5f7f6; color: #00999E; border: none; @@ -36,7 +36,7 @@ padding: 6px 20px; cursor: pointer; font-size: 14px; -} +} */ .helper-text { font-size: 12px; @@ -58,7 +58,7 @@
-
+
@@ -144,7 +144,7 @@
- +
@@ -177,7 +177,7 @@
- +
@@ -210,7 +210,7 @@
- +
@@ -230,7 +230,7 @@
- +
diff --git a/app/Views/tpa_branch.php b/app/Views/tpa_branch.php index 0ca3769e..00683a57 100755 --- a/app/Views/tpa_branch.php +++ b/app/Views/tpa_branch.php @@ -29,10 +29,10 @@ max-height: 80vh; } -
+
@@ -241,8 +241,8 @@
- - + +
@@ -250,13 +250,11 @@
- -
+
-
@@ -264,26 +262,30 @@
- - + +
- - + +
- - + +
- - + +
+
+ +
+
@@ -451,7 +453,7 @@ $(document).ready(function () { myModal.hide(); // $('#add_branch').hide(); // $('#branch_table').show(); - $('.btnBack').hide(); + // $('.btnBack').hide(); // $('#btnBranchAdd').show(); }, error: function (xhr, status, error) { @@ -587,75 +589,163 @@ $(document).ready(function () { -function appendContactHtml(contact = false, reset = false) { +// function appendContactHtml(contact = false, reset = false) { - console.log('appendContactHtml function called ') - contactCount++; +// console.log('appendContactHtml function called ') +// contactCount++; + +// var container = document.getElementById('container'); +// var uniqueId = Date.now().toString(); + +// var html = ` +//
+//
+//
Contact ${contactCount}
+//
+//
+//
+// +// +//
+//
+//
+//
+// +// +//
+//
+//
+//
+// +// +//
+//
+//
+//
+// +// +//
+//
+//
+// +//
+//
+// `; + +// if(reset == false){ +// console.log(reset) +// container.insertAdjacentHTML('beforeend', html); +// storeButtonId(uniqueId + '_add'); + +// if (contactCount >= 3) { +// hideStoredAddButtons(); +// } +// } + +// } + +function renumberContacts() { + var contacts = document.querySelectorAll('.contact-block'); + + contacts.forEach(function(contact, index) { + let title = contact.querySelector('.modal-subtitle'); + if (title) { + title.textContent = "Contact " + (index + 1); // auto numbering + } + }); + + contactCount = contacts.length; // keep global in sync +} + + + function appendContactHtml(contact = false, reset = false) { + console.log('appendContactHtml function called '); var container = document.getElementById('container'); var uniqueId = Date.now().toString(); var html = ` -
-
-
Contact ${contactCount}
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
- - +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
`; - if(reset == false){ - console.log(reset) + if(!reset){ container.insertAdjacentHTML('beforeend', html); - storeButtonId(uniqueId + '_add'); - - if (contactCount >= 3) { - hideStoredAddButtons(); - } + renumberContacts(); // ✅ fix numbering + toggleAddButton(); } - } - + function removeContact(button) { var uniqueId = button.id.split("_")[0]; var contactSection = document.getElementById(uniqueId); if (contactSection) { contactSection.parentNode.removeChild(contactSection); - contactCount --; - - if (contactCount < 3) { - var addButton = document.querySelector('.ac'); - if (addButton) { - addButton.style.display = 'block'; - } - } + renumberContacts(); // ✅ renumber after removal + toggleAddButton(); } } +function toggleAddButton() { + var totalContacts = document.querySelectorAll('.contact-block, #contact_1_wrapper').length; + var addButton = document.querySelector('.ac'); + + if (totalContacts >= 3) { + addButton.style.display = 'none'; + } else { + addButton.style.display = 'block'; + } +} + +// function removeContact(button) { +// var uniqueId = button.id.split("_")[0]; +// var contactSection = document.getElementById(uniqueId); + +// if (contactSection) { +// contactSection.parentNode.removeChild(contactSection); +// contactCount --; + +// if (contactCount < 3) { +// var addButton = document.querySelector('.ac'); +// if (addButton) { +// addButton.style.display = 'block'; +// } +// } +// } +// } + function storeButtonId(id) { var buttonIds = JSON.parse(localStorage.getItem('buttonIds')) || []; diff --git a/app/Views/tpa_onboarding.php b/app/Views/tpa_onboarding.php index f674e048..9faf50c0 100755 --- a/app/Views/tpa_onboarding.php +++ b/app/Views/tpa_onboarding.php @@ -34,7 +34,7 @@ body {
-
+

diff --git a/app/Views/vehicle_master_list.php b/app/Views/vehicle_master_list.php index a64b0646..4456b5f1 100644 --- a/app/Views/vehicle_master_list.php +++ b/app/Views/vehicle_master_list.php @@ -218,8 +218,8 @@ table.dataTable tbody td {

- - + +
From 33581a37a5158dc5a714f2cb49334fca7890d7fc Mon Sep 17 00:00:00 2001 From: venba-Inspriron-3558 Date: Thu, 4 Sep 2025 18:41:09 +0530 Subject: [PATCH 2/2] CHANGE_User + Nhance Partner --- app/Config/Routes.php | 3 + app/Controllers/UserController.php | 213 +++++ .../PartnerManagerIncentiveFileModel.php | 56 ++ app/Models/PartnerStaffModel.php | 50 + app/Views/UserList.php | 903 +++++++++++++++++- app/Views/cd_master_add_modal.php | 21 - app/Views/insurer_basic_info.php | 35 +- app/Views/layout/header.php | 52 + app/Views/thz_list.php | 15 - 9 files changed, 1251 insertions(+), 97 deletions(-) create mode 100755 app/Models/PartnerManagerIncentiveFileModel.php create mode 100755 app/Models/PartnerStaffModel.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index d74d1d3f..0e25537d 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -73,6 +73,9 @@ $routes->group("/user", ["filter" => "authMVC"], function ($routes) { $routes->get("deactive/(:hash)", "UserController::deactive/$1"); $routes->get("rolesandteams", "UserController::getRolesAndTeams"); $routes->get("getUserActivityHistory", "UserController::getUserActivityHistory"); + $routes->match(['get','post','put'], 'partner', 'UserController::partner'); + $routes->match(['get','post','put'], 'partnerIncentive', 'UserController::partnerIncentive'); + $routes->get("download-incentive-file/(:any)", "UserController::downloadIncentivesFile/$1"); }); $routes->group("/dashboard", ["filter" => "authMVC"], function ($routes) { diff --git a/app/Controllers/UserController.php b/app/Controllers/UserController.php index 78d3a6c0..2ce2e529 100755 --- a/app/Controllers/UserController.php +++ b/app/Controllers/UserController.php @@ -18,6 +18,8 @@ use App\Models\UserTeamsModel; use App\Helpers\BookStackUserHelper; use App\Models\AuthHistoryModel; use App\Models\UserActivityHistoryModel; +use App\Models\PartnerStaffModel; +use App\Models\PartnerManagerIncentiveFileModel; class UserController extends AdminController @@ -32,6 +34,8 @@ class UserController extends AdminController protected $bookStack; protected $authHistoryModel; protected $userActivityHistoryModel; + protected $partnerStaffModel; + protected $partnerManagerIncentiveFileModel; public function __construct() { @@ -45,6 +49,8 @@ class UserController extends AdminController $this->bookStack = new BookStackUserHelper(); $this->authHistoryModel = new AuthHistoryModel(); $this->userActivityHistoryModel = new UserActivityHistoryModel(); + $this->partnerStaffModel = new PartnerStaffModel(); + $this->partnerManagerIncentiveFileModel = new PartnerManagerIncentiveFileModel(); } public function list() @@ -563,4 +569,211 @@ class UserController extends AdminController } } + public function partner() + { + $method = $this->request->getMethod(); // get, post + try{ + // Listing + if ($method === 'get') { + $types = $this->partnerStaffModel->findAll(); + if (empty($types)) { + return $this->response->setJSON(['status' => 'error','message' => 'No Staff found'])->setStatusCode(404); + } + return $this->response->setJSON(['status' => 'success','data' => $types])->setStatusCode(200); + } + + // add/update + if ($method === 'post') { + + $data = $this->request->getPost(); + if (!empty($data['id'])) { + $text = "update"; + $result = $this->partnerStaffModel->update($data['id'], $data); + $updateID = $data['id']; + } else { + $text = "create"; + $data['role_id'] = 1; + $data['created_by'] = get_session_userid(); + $insertID = $this->partnerStaffModel->insert($data); + $result = true; + } + + $id = isset($insertID) && !empty($insertID) ? $insertID : ($updateID ?? null); + + return $this->response->setJSON([ + 'status' => $id ? 'success' : 'error', + 'message' => $id ? "Staff {$text}d successfully" : "Unable to {$text} staff. Please try again.", + 'id' => $id + ])->setStatusCode($id ? 200 : 400); + } + + // delete + if ($method === 'put') { + $data = $this->request->getRawInput(); + $id = $data['id'] ?? null; + + if (!$id) { + return $this->response->setJSON(['status' => 'error', 'message' => 'ID is required'])->setStatusCode(400); + } + + $staff = $this->partnerStaffModel->find($id); + if (!$staff) { + return $this->response->setJSON(['status' => 'error','message' => 'Staff not found'])->setStatusCode(404); + } + + if ($staff['is_active'] == 1) { + $result = $this->partnerStaffModel->update($id, ['is_active' => 0]); + $message = "Staff deleted successfully"; + } else { + return $this->response->setJSON(['status' => 'error','message' => 'Staff already deleted'])->setStatusCode(400); + } + + return $this->response->setJSON([ + 'status' => $result ? 'success' : 'error', + 'message' => $result ? $message : "Unable to delete staff. Please try again.", + 'id' => $id + ])->setStatusCode($result ? 200 : 400); + } + return $this->response->setJSON([ 'status' => 'error', 'message' => 'Invalid request method' ])->setStatusCode(405); + } + catch (\Throwable $e) { + $code = ($e->getCode() && $e->getCode() >= 100 && $e->getCode() < 600) ? $e->getCode() : 500; + + $isDbError = $e instanceof \CodeIgniter\Database\Exceptions\DatabaseException + || $e instanceof \mysqli_sql_exception + || $e instanceof \PDOException; + + $context = ['title' => get_class($e),'type' => get_class($e),'code' => $code,'message' => $e->getMessage(),'file' => $e->getFile(),'line' => $e->getLine()]; + + $this->myLogger->logme('error', "Exception: {message} in {file} on line {line}", $context, 0); + + return $this->response->setJSON([ 'status' => 'error', 'message' => $isDbError ? 'Data Access Error' : $e->getMessage(), + 'ref' => $isDbError ? 'database - ' : 'application - ' . $code . ' - ' . $e->getLine() + ])->setStatusCode($code); + } + } + + public function partnerIncentive() + { + $method = $this->request->getMethod(); // get, post + try{ + // Listing + if ($method === 'get') { + $manager_id = $this->request->getGet('manager_id'); + $files = $this->partnerManagerIncentiveFileModel->where('manager_id', $manager_id)->findAll(); + if (empty($files)) { + return $this->response->setJSON(['status' => 'error','message' => 'No Records found'])->setStatusCode(404); + } + return $this->response->setJSON(['status' => 'success','data' => $files])->setStatusCode(200); + } + + // add/update + if ($method === 'post') { + + $file = $this->request->getFile('incentive_file_name'); + $month = $this->request->getPost('incentive_month'); + $managerId = $this->request->getPost('manager_id'); + $fileId = $this->request->getPost('id'); + + if ($file && $file->isValid() && !$file->hasMoved()) { + $fileName = $file->getName(); + $path = WRITEPATH.'uploads/incentives'; + $file->move($path, $fileName); + $data = [ + 'manager_id' => $managerId, + 'incentive_month' => date('Y-m-d', strtotime($month)), + 'incentive_file_name' => $fileName, + 'created_by' => get_session_userid() + ]; + + if ($fileId) { + $text = "update"; + $this->partnerManagerIncentiveFileModel->update($fileId, $data); + $updateID = $data['id']; + } else { + $text = "create"; + $insertID = $this->partnerManagerIncentiveFileModel->insert($data); + $result = true; + } + + $id = isset($insertID) && !empty($insertID) ? $insertID : ($updateID ?? null); + + return $this->response->setJSON([ + 'status' => $id ? 'success' : 'error', + 'message' => $id ? "File {$text}d successfully" : "Unable to {$text} file. Please try again.", + 'id' => $id + ])->setStatusCode($id ? 200 : 400); + } + return $this->response->setJSON([ + 'status' => 'error', + 'message' => "Unable to Upload file. Please try again.", + 'id' => '' + ])->setStatusCode(400); + } + + // delete + if ($method === 'put') { + $data = $this->request->getRawInput(); + $id = $data['id'] ?? null; + + if (!$id) { + return $this->response->setJSON(['status' => 'error', 'message' => 'ID is required'])->setStatusCode(400); + } + + $files = $this->partnerManagerIncentiveFileModel->find($id); + if (!$files) { + return $this->response->setJSON(['status' => 'error','message' => 'No Records found'])->setStatusCode(404); + } + + if ($files['is_active'] == 1) { + $result = $this->partnerManagerIncentiveFileModel->update($id, ['is_active' => 0]); + $message = "Files deleted successfully"; + } else { + return $this->response->setJSON(['status' => 'error','message' => 'files already deleted'])->setStatusCode(400); + } + + return $this->response->setJSON([ + 'status' => $result ? 'success' : 'error', + 'message' => $result ? $message : "Unable to delete staff. Please try again.", + 'id' => $id + ])->setStatusCode($result ? 200 : 400); + } + return $this->response->setJSON([ 'status' => 'error', 'message' => 'Invalid request method' ])->setStatusCode(405); + } + catch (\Throwable $e) { + $code = ($e->getCode() && $e->getCode() >= 100 && $e->getCode() < 600) ? $e->getCode() : 500; + + $isDbError = $e instanceof \CodeIgniter\Database\Exceptions\DatabaseException + || $e instanceof \mysqli_sql_exception + || $e instanceof \PDOException; + + $context = ['title' => get_class($e),'type' => get_class($e),'code' => $code,'message' => $e->getMessage(),'file' => $e->getFile(),'line' => $e->getLine()]; + + $this->myLogger->logme('error', "Exception: {message} in {file} on line {line}", $context, 0); + + return $this->response->setJSON([ 'status' => 'error', 'message' => $isDbError ? 'Data Access Error' : $e->getMessage(), + 'ref' => $isDbError ? 'database - ' : 'application - ' . $code . ' - ' . $e->getLine() + ])->setStatusCode($code); + } + } + + public function downloadIncentivesFile($file_name) + { + $file_name = basename($file_name); + $filePath = WRITEPATH . 'uploads/incentives/' . $file_name; + try { + if (file_exists($filePath)) { + return $this->response->download($filePath, null); + } else { + $data['message'] = 'File Not Found'; + echo view('errors/404', $data); + } + } catch (\Exception $e) { + // Handle any exceptions + $errorMessage = $e->getMessage(); + $this->myLogger->logme('error', $errorMessage); + // You can return an error response here + echo $errorMessage; + } + } } \ No newline at end of file diff --git a/app/Models/PartnerManagerIncentiveFileModel.php b/app/Models/PartnerManagerIncentiveFileModel.php new file mode 100755 index 00000000..32e59444 --- /dev/null +++ b/app/Models/PartnerManagerIncentiveFileModel.php @@ -0,0 +1,56 @@ + 'required|integer', + // 'incentive_month' => 'required|valid_date', + // 'incentive_file_name'=> 'required|string|max_length[150]', + // ]; + + // protected $validationMessages = [ + // 'manager_id' => [ + // 'required' => 'Manager ID is required', + // 'integer' => 'Manager ID must be a number', + // ], + // 'incentive_month' => [ + // 'required' => 'Incentive Month is required', + // 'valid_date' => 'Incentive Month must be a valid date (Y-m-d)', + // ], + // 'incentive_file_name' => [ + // 'required' => 'File name is required', + // 'max_length' => 'File name cannot exceed 150 characters', + // ], + // ]; + + // protected $skipValidation = false; +} diff --git a/app/Models/PartnerStaffModel.php b/app/Models/PartnerStaffModel.php new file mode 100755 index 00000000..474f14d1 --- /dev/null +++ b/app/Models/PartnerStaffModel.php @@ -0,0 +1,50 @@ + 'required|min_length[2]|max_length[150]', + // 'email' => 'permit_empty|valid_email|max_length[150]', + // 'mobile' => 'permit_empty|regex_match[/^[0-9]{10,20}$/]', + // ]; + + // protected $validationMessages = [ + // 'name' => [ + // 'required' => 'Name is required', + // 'min_length' => 'Name must have at least 2 characters', + // 'max_length' => 'Name cannot exceed 150 characters' + // ], + // 'email' => [ + // 'valid_email' => 'Please provide a valid email address', + // 'max_length' => 'Email cannot exceed 150 characters' + // ], + // 'mobile' => [ + // 'regex_match' => 'Mobile number must be 10–20 digits only' + // ] + // ]; + + // protected $skipValidation = false; +} diff --git a/app/Views/UserList.php b/app/Views/UserList.php index ea8a21ae..3e83907b 100755 --- a/app/Views/UserList.php +++ b/app/Views/UserList.php @@ -42,7 +42,8 @@ table.dataTable tbody td { padding: 20px; } - #mobile::placeholder { + #mobile::placeholder, + #mobile_no::placeholder { font-size: 13px; } @@ -246,9 +247,102 @@ table.dataTable tbody td { border:1px solid rgba(41, 139, 142, 1); } + .dt-buttons.btn-group{ + display: grid; + grid-template-columns: 1fr .4fr .5fr .2fr; + } + + #user-table_filter input{ width:100%; } + + button.dt-button, + button.dt-button:focus, + button.dt-button:active, + button.dt-button:hover { + background: none !important; + border: none !important; + box-shadow: none !important; + padding: 0 !important; + margin: 0 !important; + } + + + /* main button wrapper */ + .tab-button { + width: 201px; + height: 37px; + border-radius: 10px !important; + font-weight: 700; + font-size: 14px; + line-height: 100%; + border: 1px solid #BAF1F3; + background: #F5FFFF; + cursor: pointer; + transition: all 0.2s ease-in-out; + display: flex; + justify-content: center; + align-items: center; + gap: 6px; + } + + /* divider style */ + .divider-line { + color: #DBDBDB; + font-weight: 400; + } + + /* active state */ + .highlight-link.active { + color: #00999E; + } + + /* inactive state */ + .highlight-link:not(.active) { + color: #707070; + } + + .no-files-message { + width: 900px; + height: 300px; + background: #ECECEC; + opacity: 1; + + display: flex; + align-items: center; + justify-content: center; + + font-weight: 500; /* Medium */ + font-size: 18px; + line-height: 100%; + letter-spacing: 0; + color: #333; /* Adjust text color if needed */ + text-align: center; + + border-radius: 8px; /* optional for smooth edges */ + margin: 13px; /* center horizontally */ + } + + #container { + max-height: 400px; /* set fixed height */ + overflow-y: auto; /* enable vertical scroll */ + overflow-x: hidden; /* prevent horizontal scroll */ + } + + + .file-icon-box { + /* width: 40px; + height: 50px; + display: flex; + align-items: center; + justify-content: center; */ + border-radius: 10px; + background: #F4F6F8; + border: 1px solid #ddd; /* matches border-width:1px */ + padding: 3px; + } +
@@ -259,7 +353,7 @@ table.dataTable tbody td {

Users

- +
@@ -278,7 +372,7 @@ table.dataTable tbody td { @@ -296,6 +390,67 @@ table.dataTable tbody td {
Namemobile; ?> user_role; ?> - + is_active == 1){ echo 'Active'; }else{ echo 'In-Active'; } ?>
+ +
@@ -387,6 +542,119 @@ table.dataTable tbody td {
+ + +
@@ -523,44 +791,130 @@ table.dataTable tbody td {
\ No newline at end of file diff --git a/app/Views/cd_master_add_modal.php b/app/Views/cd_master_add_modal.php index 9be62e94..c57936c5 100644 --- a/app/Views/cd_master_add_modal.php +++ b/app/Views/cd_master_add_modal.php @@ -1,25 +1,4 @@ -