diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 2f22bbe4..18e3c571 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -163,17 +163,21 @@ class EmployeeController extends AdminController public function getClientWithPolicies() { - //echo $this->request->isAJAX();die(); - $result = $this->clientModel->clientsWithPolicies(); + try { + //echo $this->request->isAJAX();die(); + $result = $this->clientModel->clientsWithPolicies(); - // dd($result); + // dd($result); - // print_r($result);die(); - if (!count($result)) { - return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'no data found'], 200); - } else { - - return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $result], 200); + // print_r($result);die(); + if (!count($result)) { + return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'no data found'], 200); + } else { + + return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $result], 200); + } + } catch (\Throwable $th) { + return $this->respond(['dataStatus' => false, 'code' => 500, 'message' => $th->getMessage()], 500); } } diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php index 6a8f9d5e..fd736c2a 100644 --- a/app/Controllers/LeadsController.php +++ b/app/Controllers/LeadsController.php @@ -4615,6 +4615,8 @@ class LeadsController extends BaseController 'selected_lead_type' => $type, 'actual_lead_id' => $actual_lead_id, ]; + $data['tab_name'] = 'Opportunities'; + $data['page_name'] = 'Opportunities'; if ($actual_lead_id > 0) { diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php index c3d5e86e..3833e4e0 100644 --- a/app/Controllers/TicketController.php +++ b/app/Controllers/TicketController.php @@ -1027,7 +1027,8 @@ class TicketController extends BaseController $data['claim_status'] = $this->transFormClaimStatus($claim_status_id, $ticket_type); $data['client_for_motor'] = $this->clientModel->select('id,client_name,phone')->where('client_type', 2)->where('is_active', 1)->findAll(); } - + $data['tab_name'] = "Claims"; + $data['page_name'] = "Claims"; return $this->loadLayout('ticket_edit_onbording', $data); } diff --git a/app/Views/DashBoard.php b/app/Views/DashBoard.php index 0eff67a2..d09b90c7 100755 --- a/app/Views/DashBoard.php +++ b/app/Views/DashBoard.php @@ -185,7 +185,8 @@ -
+ +
diff --git a/app/Views/UserList.php b/app/Views/UserList.php index 919e7de1..9659eaf4 100755 --- a/app/Views/UserList.php +++ b/app/Views/UserList.php @@ -355,7 +355,7 @@ table.dataTable tbody td {
-
+
-
- - - - - - - - - - + -> + --> +
+
Insurer Name Insurer Branch Name CD Account Number Current Balance Action
+ + + + + + + + + - - - + + + + + - - - - - - - - - -
Insurer Name Insurer Branch Name CD Account Number Current Balance Action
insurer_name;?>insurer_branch_name;?>cd_master_account_no;?>insurer_name;?>insurer_branch_name;?>cd_master_account_no;?>₹ - insurer_id; - $cd_ac_pk = $value->cd_ac_pk; - // Check if the balance information exists for the insurer - if (isset($balances[$insurerId . '-'. $cd_ac_pk])) { - $balance = $balances[$insurerId . '-'. $cd_ac_pk]->balance; - echo $balance; - } else { - echo "N/A"; // Display "Not Available" if balance information is not present - } - ?> - - insurer_id}?client_id={$value->client_id}&cd_ac_pk={$value->cd_ac_pk}"); ?>"> - View Deposit - -
+ ₹ + insurer_id; + $cd_ac_pk = $value->cd_ac_pk; + // Check if the balance information exists for the insurer + if (isset($balances[$insurerId . '-'. $cd_ac_pk])) { + $balance = $balances[$insurerId . '-'. $cd_ac_pk]->balance; + echo $balance; + } else { + echo "N/A"; // Display "Not Available" if balance information is not present + } + ?> + + + insurer_id}?client_id={$value->client_id}&cd_ac_pk={$value->cd_ac_pk}"); ?>"> + View Deposit + + + + + + +
@@ -70,7 +75,7 @@ $(document).ready(function() { $('#tickets-table').DataTable({ // dom: "<'row'<'col-sm-0'f><'col-sm-9 text-right'B>>", - dom: "<'row'<'col-12 d-flex justify-content-between align-items-center'<'datatable-search dataTables_filter'f><'datatable-buttons dt-buttons'B>>>", + dom: "<'row'<'col-12 d-flex justify-content-between align-items-center'<'datatable-search dataTables_filter'f><'datatable-buttons dt-buttons'B>>>" + "<'row'<'col-sm-12'tr>>" + "<'row align-items-center'<'col-5 text-start'i><'col-7 d-flex justify-content-end align-items-center'<'me-2'l>p>>", lengthMenu: [[10, 20, 50, 100], [10, 20, 50, 100]], diff --git a/app/Views/client_onboarding.php b/app/Views/client_onboarding.php index 928836a0..e7af7f88 100755 --- a/app/Views/client_onboarding.php +++ b/app/Views/client_onboarding.php @@ -271,14 +271,18 @@
-
+ +
diff --git a/app/Views/dms_search.php b/app/Views/dms_search.php index f3e1bad0..ea953fff 100644 --- a/app/Views/dms_search.php +++ b/app/Views/dms_search.php @@ -25,83 +25,102 @@ .dataTables_length label {height: 21px !important;} + .filter-sidebar { + height: 100%; + width: 0; + position: fixed; + z-index: 1001; + top: 0; + right: 0; + background-color: #f8f9fa; + overflow-x: hidden; + transition: 0.5s; + box-shadow: -2px 0 5px rgba(0,0,0,0.1); + display: flex; + flex-direction: column; + } + + .filter-sidebar-header { + padding: 15px 20px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #dee2e6; + flex-shrink: 0; + } + + .filter-sidebar-header .closebtn { + font-size: 28px; + text-decoration: none; + color: #6c757d; + } + + .filter-sidebar .closebtn:hover { + color: #000; + } + + .filter-sidebar-content { + padding: 20px; + flex-grow: 1; + overflow-y: auto; + } + + .filter-sidebar-footer { + padding: 15px 20px; + display: flex; + justify-content: flex-end; + border-top: 1px solid #dee2e6; + flex-shrink: 0; + gap: 10px; + } + -
-
-
-
-
-

- Filter - - - -

-
-
-
-
" id='dms_search_form'> -
+
+
+

Filter

+ × +
+
+ " id='dms_search_form'> +
-
- - - - - - -
- -
- - - - -
-
- -
- OR -
-
- -
- - - - - - -
- -
- - - - -
- -
- - - -
- -
- -
-
-
+
+ + + +
-
-
+
+ + +
+
+ OR +
+
+ + + + +
+ +
+ + +
+
+ +
+
+
@@ -109,9 +128,7 @@

Files

-
-
@@ -131,18 +148,15 @@ - - - - + @@ -157,10 +171,15 @@ \ No newline at end of file diff --git a/app/Views/endorsement_list.php b/app/Views/endorsement_list.php index 76642e9a..66ef74c5 100755 --- a/app/Views/endorsement_list.php +++ b/app/Views/endorsement_list.php @@ -13,50 +13,88 @@ left: 79px; } .dataTables_length label {height: 21px !important;} + .filter-sidebar { + height: 100%; + width: 0; + position: fixed; + z-index: 1001; + top: 0; + right: 0; + background-color: #f8f9fa; + overflow-x: hidden; + transition: 0.5s; + box-shadow: -2px 0 5px rgba(0,0,0,0.1); + display: flex; + flex-direction: column; + } + .filter-sidebar-header { + padding: 15px 20px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #dee2e6; + flex-shrink: 0; + } + + .filter-sidebar-header .closebtn { + font-size: 28px; + text-decoration: none; + color: #6c757d; + } + + .filter-sidebar .closebtn:hover { + color: #000; + } + + .filter-sidebar-content { + padding: 20px; + flex-grow: 1; + overflow-y: auto; + } + + .filter-sidebar-footer { + padding: 15px 20px; + display: flex; + justify-content: flex-end; + border-top: 1px solid #dee2e6; + flex-shrink: 0; + gap: 10px; + }
-
-
-
-
-
-

- Filter - - - -

-
-
- -
-
-
- -
+
+
+

Filter

+ × +
+
+
+
+
+ + +
+
+ + +
-
-
- -
+
+ + +
-
-
- -
- -
-
+
+
-
- -
- - -
-
+ +
- +
+
@@ -87,12 +118,12 @@
-
+
- + href="">
@@ -212,11 +243,9 @@ function fetchClientPolicies() { - $('#loader').show(); var apiURL = '' + 'util/clients-with-policies'; console.log('fetchClientPolicies'); - // console.log(apiURL); $.ajax({ url: apiURL, method: 'GET', @@ -225,9 +254,7 @@ "X-Requested-With": "XMLHttpRequest" }, success: function(response) { - // console.log(response.code); - // console.log(response.dataStatus); - // console.log(response.data); + $('#loader').hide(); // ✅ hide AFTER data received if (response.code === 200 && response.dataStatus === true && response.data !== "") { try { clientPolicies = (response.data); @@ -280,13 +307,20 @@ } }, error: function(xhr, status, error) { + $('#loader').hide(); // ✅ hide on error too console.error('Error fetching data from API:', error); } }); - - $('#loader').hide(); + } + /* Modified by Gemini Code Assist */ + function openEndorsementListFilterNav() { + document.getElementById("filter-sidebar").style.width = "350px"; } + /* Modified by Gemini Code Assist */ + function closeFilterNav() { + document.getElementById("filter-sidebar").style.width = "0"; + } function appendClients(data) { @@ -432,11 +466,7 @@ } - document.getElementById('toggleIcon').addEventListener('click', function() { - var icon = document.getElementById('icon'); - icon.classList.toggle('mdi-chevron-down'); - icon.classList.toggle('mdi-chevron-up'); - }); + $('.emp_data_model').click(function() { @@ -611,6 +641,13 @@ // openTicket(); // } // }, + { + text: ' Filter ', + className: 'btn app-btn-primary mr-2', + action: function(e, dt, node, config) { + openEndorsementListFilterNav(); + } + }, { extend: 'collection', text: ' Export ', @@ -632,24 +669,6 @@ ] } ], - // buttons: [{ - // extend: 'csv', - // text: 'CSV', - // title: 'Endorsement-List', - // className: 'my_class', - // exportOptions: { - // columns: ':not(:last-child)', - // format: { - // body: function (data, row, column, node) { - // // Convert data to string to avoid scientific notation in CSV - // if (!isNaN(data) && parseFloat(data) > 1e20) { - // return `'${data}`; - // } - // return data.toString();// Ensures all data is treated as strings - // } - // } - // } - // }], initComplete: function(settings, json) { $('.my_class').css({ "position": "relative", diff --git a/app/Views/faq_list.php b/app/Views/faq_list.php index bc49cd41..3df7a4ae 100644 --- a/app/Views/faq_list.php +++ b/app/Views/faq_list.php @@ -36,7 +36,7 @@
-
+
diff --git a/app/Views/frontend_content_list.php b/app/Views/frontend_content_list.php index 71f8e0ed..2a2b5ee7 100644 --- a/app/Views/frontend_content_list.php +++ b/app/Views/frontend_content_list.php @@ -35,7 +35,7 @@
-
+
diff --git a/app/Views/import_export.php b/app/Views/import_export.php index 276b51fd..a21bb3ff 100755 --- a/app/Views/import_export.php +++ b/app/Views/import_export.php @@ -51,7 +51,7 @@ } -
+
diff --git a/app/Views/insurer_list.php b/app/Views/insurer_list.php index 05e0dc7e..57e04cbb 100755 --- a/app/Views/insurer_list.php +++ b/app/Views/insurer_list.php @@ -46,7 +46,7 @@
-
+
-
+
@@ -1815,15 +1772,23 @@ }); // Initialize DataTable + // Change Comment: Added dom and buttons properties to arrange search, switch, and upload button on a single line, similar to client_list.php. const table = $('#tickets-table').DataTable({ + dom: "<'row'<'col-12 d-flex justify-content-between align-items-center'<'datatable-search dataTables_filter'f><'datatable-buttons dt-buttons'B>>>" + + "<'row'<'col-sm-12'tr>>" + + "<'row align-items-center'<'col-5 text-start'i><'col-7 d-flex justify-content-end align-items-center'<'me-2'l>p>>", + buttons: [ + { + text: 'Upload ', + className: 'btn btn-primary waves-effect waves-light', + action: function(e, dt, node, config) { + showFileUploadModal(); + } + } + ], // Your existing DataTable options here "order": [], // Disable initial sorting if needed "pageLength": 10, - // "dom": '<"top"lf>rt<"bottom"ip><"clear">', // This places length and filter controls at top - // "language": { - // "lengthMenu": "Show _MENU_ entries", - // "search": "Search:" - // } language: { lengthMenu: "Show _MENU_ entries", search: ` @@ -1840,6 +1805,16 @@ emptyTable: '
No Data found
' } }); + + // Change Comment: Prepending the 'Failed Status' switch to the DataTable's button container to group it with other controls. + $(".datatable-buttons").prepend(` + + + + + + + `); // Add event listener for switch changes $('#statusSwitch').on('change', function() { diff --git a/app/Views/kyc_list.php b/app/Views/kyc_list.php index 342e24d3..7754f2a8 100755 --- a/app/Views/kyc_list.php +++ b/app/Views/kyc_list.php @@ -43,7 +43,7 @@
-
+
-
+
-
+
© NHANCE @@ -155,23 +155,68 @@ "closeButton": true, }; + + diff --git a/app/Views/layout/header.php b/app/Views/layout/header.php index 0086c4f5..2bc18794 100755 --- a/app/Views/layout/header.php +++ b/app/Views/layout/header.php @@ -118,7 +118,9 @@ * { font-family: 'Poppins' !important; } - + body { + background-color: #ffffff !important; /* ← ADD THIS */ + } .content { min-height: 70vh; } @@ -142,8 +144,17 @@ min-height: 100vh !important; } + /* REPLACE WITH THIS */ + body, + html, + #wrapper, + .content-page, body .content-page { - margin-top: 90px !important; + background-color: #ffffff !important; + } + + body .content-page { + margin-top: 50px !important; } @@ -154,7 +165,8 @@ z-index: 4; width: 90%; margin-left: 120px !important; - background: #fff; + background: #ffffff !important; + box-shadow: 0 2px 0 #ffffff !important; /* seals bottom edge */ } .top-navbar-div { @@ -164,6 +176,8 @@ justify-content: space-between; margin-top: 20px; margin-left: 15px; + /* height: 100%; + width: 100%; */ } @@ -1657,10 +1671,12 @@ .left-btn { left: 0; + border-radius : 10px !important; } .right-btn { right: 0; + border-radius : 10px !important; } input[type="search"]::-webkit-search-cancel-button { @@ -1669,9 +1685,166 @@ } + @@ -1686,7 +1859,7 @@ -
+
@@ -2117,7 +2290,7 @@ -->
  • - Sales Team Targets + Sales Team Targets
  • @@ -2180,44 +2353,52 @@
    Welcome first_name) ? get_session_userdata()->first_name : 'NOT SET') ?>
    diff --git a/app/Views/lead_filter.php b/app/Views/lead_filter.php index 620d4a08..58753443 100644 --- a/app/Views/lead_filter.php +++ b/app/Views/lead_filter.php @@ -2,140 +2,177 @@ .col-12 { max-width: 98% !important; } + .filter-sidebar { + height: 100%; + width: 0; + position: fixed; + z-index: 1001; + top: 0; + right: 0; + background-color: #f8f9fa; + overflow-x: hidden; + transition: 0.5s; + box-shadow: -2px 0 5px rgba(0,0,0,0.1); + display: flex; + flex-direction: column; + } + + .filter-sidebar-header { + padding: 15px 20px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #dee2e6; + flex-shrink: 0; + } + + .filter-sidebar-header .closebtn { + font-size: 28px; + text-decoration: none; + color: #6c757d; + } + + .filter-sidebar .closebtn:hover { + color: #000; + } + + .filter-sidebar-content { + padding: 20px; + flex-grow: 1; + overflow-y: auto; + } + + .filter-sidebar-footer { + padding: 15px 20px; + display: flex; + justify-content: flex-end; + border-top: 1px solid #dee2e6; + flex-shrink: 0; + gap: 10px; + }
    -
    -
    -
    -
    -
    -

    - Filter - - - -

    - -
    -
    -
    -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    -
    - - -
    - -
    - - -
    - -
    - - -
    - - - -
    - -
    -
    -
    -
    - -
    -
    - -
    -
    - +
    +
    +
    +

    Filter

    + × +
    +
    +
    +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    +
    + + +
    + +
    + + +
    + +
    + + +
    +
    +
    +
    + +
    + + @@ -167,7 +204,7 @@ //----- AJAX FUNCTIONS -------------------------------------------------------------------------------- function fetchTicketListData() { - + closeOpportunitiesListFilterNav(); var issuer_type = $('#filter_issuer_type').val(); var lead_type = $('#filter_lead_type').val(); var policy_type = $('#filter_policy_type').val(); diff --git a/app/Views/leads_form.php b/app/Views/leads_form.php index 089bff40..c45fc7bd 100644 --- a/app/Views/leads_form.php +++ b/app/Views/leads_form.php @@ -102,6 +102,10 @@ border-width: 1px !important; } +
    @@ -120,12 +124,12 @@ Back
    --> -

    +

    @@ -773,6 +777,8 @@ hide_list_show_add(); var page_title = 'Edit Opportunity'; + var pageSubTitle = 'Edit Opportunity'; + var pageBackButton = ''; $('#page_title').text(page_title); $('#leads_primarykey').val(res.data.id); diff --git a/app/Views/leads_list.php b/app/Views/leads_list.php index 0136b414..ba238b68 100644 --- a/app/Views/leads_list.php +++ b/app/Views/leads_list.php @@ -9,7 +9,7 @@ table.dataTable tbody td { } .col-12 { - max-width: 98% !important; + max-width: 100% !important; } .dataTables_filter { @@ -152,7 +152,9 @@ table.dataTable tbody td { } .dataTables_length label {height: 21px !important;} /* Modeal class */ - +.table-responsive { + overflow-x: auto !important; +} @@ -160,10 +162,10 @@ table.dataTable tbody td {
    -
    -
    -

    Opportunities List

    -
    +
    +
    @@ -701,19 +703,28 @@ table.dataTable tbody td { document.body.appendChild(customDropdown); - row.addEventListener("click", function(event) { + row.addEventListener("click", function(event) { + if (event.target.closest('.dropdown-toggle')) { + event.stopPropagation(); + const originalDropdown = event.target.closest('.btn-group').querySelector('.dropdown-menu'); + if (originalDropdown) { + if (activeDropdown) { + activeDropdown.style.display = 'none'; + } + const rect = event.target.getBoundingClientRect(); + customDropdown.style.display = 'block'; + customDropdown.style.position = 'fixed'; + customDropdown.style.left = `${rect.left}px`; + customDropdown.style.top = `${rect.bottom + 5}px`; + activeDropdown = customDropdown; + } + return; + } - // 1. CRITICAL CHECK: Stop propagation if the click came from the dropdown toggle itself. - if (event.target.closest('.dropdown-toggle')) { - event.stopPropagation(); - - // **IMPORTANT:** Since you're using a custom script, you need to - // manually trigger the logic for your custom detached dropdown here. - // The code below should run when the dropdown toggle is clicked: - const originalDropdown = event.target.closest('.btn-group').querySelector('.dropdown-menu'); - if (originalDropdown) { - - // This is the code that opens your custom dropdown + if (event.target.closest('td:last-child')) { + return; + } + if (activeDropdown) { activeDropdown.style.display = 'none'; } @@ -726,34 +737,9 @@ table.dataTable tbody td { customDropdown.style.top = `${rect.bottom + 5}px`; activeDropdown = customDropdown; - } + event.stopPropagation(); + }); - return; // Exit the row listener early - } - - // 2. Ignore clicks on the entire action column (your existing, good check) - if (event.target.closest('td:last-child')) { - return; - } - - // ... rest of your row logic for general row clicks ... - - if (activeDropdown) { - activeDropdown.style.display = 'none'; - } - - const rect = event.target.getBoundingClientRect(); - - customDropdown.style.display = 'block'; - customDropdown.style.position = 'fixed'; - customDropdown.style.left = `${rect.left}px`; - customDropdown.style.top = `${rect.bottom + 5}px`; - - activeDropdown = customDropdown; - event.stopPropagation(); // Only needed if there is a parent handler - }); - - // Handle clicks on dropdown items customDropdown.querySelectorAll('.dropdown-item').forEach(item => { item.addEventListener('click', function(e) { console.log("##############"); @@ -874,11 +860,18 @@ table.dataTable tbody td { lengthMenu: [[10, 20, 50, 100], [10, 20, 50, 100]], buttons: [ { - text: ' Add ', - className: 'btn app-btn-primary mr-2', - action: function(e, dt, node, config) { - openLeadTypeAskModal(); - } + text: ' Filter ', + className: 'btn app-btn-primary mr-2', + action: function(e, dt, node, config) { + openOpportunitiesListFilterNav(); + } + }, + { + text: ' Add ', + className: 'btn app-btn-primary mr-2', + action: function(e, dt, node, config) { + openLeadTypeAskModal(); + } }, { extend: 'collection', @@ -2103,5 +2096,11 @@ table.dataTable tbody td { this.closest('.radio-option').classList.add('selected'); }); }); - + + \ No newline at end of file diff --git a/app/Views/leads_non_eb.php b/app/Views/leads_non_eb.php index c4caca5f..5cc76583 100644 --- a/app/Views/leads_non_eb.php +++ b/app/Views/leads_non_eb.php @@ -47,7 +47,10 @@ border-width: 1px !important; } - +
    @@ -62,12 +65,12 @@ Back
    --> -

    +

    diff --git a/app/Views/nhance_branch_list.php b/app/Views/nhance_branch_list.php index 7dc6f819..7c304596 100644 --- a/app/Views/nhance_branch_list.php +++ b/app/Views/nhance_branch_list.php @@ -9,7 +9,7 @@
    -
    +
    diff --git a/app/Views/outstanding_report_list.php b/app/Views/outstanding_report_list.php index db7d0bb1..81fb5d32 100644 --- a/app/Views/outstanding_report_list.php +++ b/app/Views/outstanding_report_list.php @@ -34,79 +34,107 @@ padding-left: 15px !important; } .dataTables_length label {height: 21px !important;} + .filter-sidebar { + height: 100%; + width: 0; + position: fixed; + z-index: 1001; + top: 0; + right: 0; + background-color: #f8f9fa; + overflow-x: hidden; + transition: 0.5s; + box-shadow: -2px 0 5px rgba(0,0,0,0.1); + display: flex; + flex-direction: column; + } + + .filter-sidebar-header { + padding: 15px 20px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #dee2e6; + flex-shrink: 0; + } + + .filter-sidebar-header .closebtn { + font-size: 28px; + text-decoration: none; + color: #6c757d; + } + + .filter-sidebar .closebtn:hover { + color: #000; + } + + .filter-sidebar-content { + padding: 20px; + flex-grow: 1; + overflow-y: auto; + } + + .filter-sidebar-footer { + padding: 15px 20px; + display: flex; + justify-content: flex-end; + border-top: 1px solid #dee2e6; + flex-shrink: 0; + gap: 10px; + }
    -
    -
    -
    -
    -

    - Filter - - - -

    -
    -
    -
    -
    +
    +
    +

    Filter

    + × +
    +
    +
    +
    -
    - - -
    - -
    - - -
    - -
    - -
    - - -
    - - - -
    - -
    - - -
    -
    +
    + +
    + +
    + + +
    + +
    + +
    + + +
    + + +
    +
    +
    @@ -172,6 +200,14 @@ \ No newline at end of file diff --git a/app/Views/sales/branch_level_dashboard_view_mar.php b/app/Views/sales/branch_level_dashboard_view_mar.php new file mode 100644 index 00000000..efc8d3cb --- /dev/null +++ b/app/Views/sales/branch_level_dashboard_view_mar.php @@ -0,0 +1,294 @@ + + +
    + + +
    +
    +
    +
    Total Leads
    + +
    +
    +
    +
    Total Activities
    + +
    +
    +
    +
    Pending Activities
    + +
    +
    +
    +
    Completed Activities
    + +
    + +
    + +
    +
    +
    +

    Pending Activities - All Team

    + +
    +
    + + + + + + + + + + + + '📞', + 'Email' => '✉️', + 'Meeting' => '📅', + 'Visit' => '🚗', + 'Demo' => '🖥️', + 'Share Docs' => '📄', + 'To Do' => '✓' + ]; + $icon = $activityIcons[$a['activity_type']] ?? '📌'; + $statusClass = strtolower(str_replace(' ', '-', $a['status'])); + $formattedscheduledDate = date('M d, Y, h:i A', strtotime($a['scheduled_date'])); + ?> + + + + + + + + + + + + + +
    CompanyActivity & AssignedDateStatus
    +
    + +
    +
    + +
    + +
    +
    +
    No activities found +
    +
    +
    + +
    +
    + +

    Sales Team Performance

    + +
    {$firstLetter}
    +
    +
    {$fullName}
    +
    {$role}
    +
    +
    +
    {$totalActs} acts
    +
    {$doneActs} done
    +
    +
    "; + } ?> + + +
    +

    Activity Breakdown

    + + ['color' => '#ff6b35', 'icon' => '📞'], + 'Email' => ['color' => '#48bb78', 'icon' => '✉️'], + 'Meeting' => ['color' => '#4299e1', 'icon' => '📅'], + 'Visit' => ['color' => '#ecc94b', 'icon' => '🚗'], + 'Demo' => ['color' => '#9f7aea', 'icon' => '🖥️'], + 'Share Docs' => ['color' => '#ed8936', 'icon' => '📄'], + 'To Do' => ['color' => '#718096', 'icon' => '✓'], + ]; + ?> + + + + +
    + + + + + % +
    + + +
    +
    No activities found +
    + +
    +
    +
    + +
    +
    +

    All Leads Overview

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CompanyStatusAssigned ToActivitiesOpportunities
    +
    +
    👤
    No leads found +
    +
    +
    +
    \ No newline at end of file diff --git a/app/Views/sales/target_view.php b/app/Views/sales/target_view.php index a165ace6..abff15ad 100644 --- a/app/Views/sales/target_view.php +++ b/app/Views/sales/target_view.php @@ -110,8 +110,8 @@ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans- .table-wrap tbody tr:last-child td { border-bottom: none; } .table-wrap tbody tr:hover td { background: #fafafa; } /* Empty row fix for modal table */ -.table-wrap tbody tr.empty-row { display: table-row; } -.table-wrap tbody tr.empty-row td { padding: 0 !important; border: none !important; text-align: center;} +/* .table-wrap tbody tr.empty-row { display: table-row; } +.table-wrap tbody tr.empty-row td { padding: 0 !important; border: none !important; text-align: center;} */ /* ═══════════════════════════════════════════ BUTTONS @@ -298,7 +298,14 @@ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans- - No targets added yet. + + +
    +
    🎯
    +

    No targets added yet.

    +
    + +
    @@ -314,7 +321,7 @@ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans- ────────────────────────────────────────── */ const teamMembers = sales_manager.map(user => ({ id: user.id, - name: user.first_name + ' ' + user.last_name + name: user.first_name })); const API = ''; @@ -445,7 +452,7 @@ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans- ────────────────────────────────────────── */ async function renderDetailTable(userId) { const tbody = document.getElementById('detailTableBody'); - tbody.innerHTML = 'Loading...'; + tbody.innerHTML = `⏳ Loading targets...`; try { const res = await fetch(`${API}/targets/user/${userId}`); @@ -453,7 +460,7 @@ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans- const records = json.data || []; if (records.length === 0) { - tbody.innerHTML = 'No targets added yet.'; + tbody.innerHTML = '
    🎯

    No targets added yet.

    '; return; } // records.sort((a, b) => b.id - a.id); diff --git a/app/Views/thz_notes.php b/app/Views/thz_notes.php index 194ed82d..f6931370 100644 --- a/app/Views/thz_notes.php +++ b/app/Views/thz_notes.php @@ -133,15 +133,18 @@ hr{ background-color: #00999E !important; } - +
    -

    +
    diff --git a/app/Views/ticket_edit_onbording.php b/app/Views/ticket_edit_onbording.php index a84dcf12..2186b006 100644 --- a/app/Views/ticket_edit_onbording.php +++ b/app/Views/ticket_edit_onbording.php @@ -38,8 +38,13 @@
    + + -
    +
    diff --git a/app/Views/ticket_list.php b/app/Views/ticket_list.php index da6b20be..fbd40b94 100644 --- a/app/Views/ticket_list.php +++ b/app/Views/ticket_list.php @@ -52,13 +52,13 @@ table.dataTable tbody td {
    -
    -
    +
    +
    @@ -310,6 +310,13 @@ $(document).ready(function() { "<'row align-items-center'<'col-5 text-start'i><'col-7 d-flex justify-content-end align-items-center'<'me-2'l>p>>", lengthMenu: [[10, 20, 50, 100], [10, 20, 50, 100]], buttons: [ + { + text: ' Filter ', + className: 'btn app-btn-primary mr-2', + action: function(e, dt, node, config) { + openTicketFilterNav(); + } + }, { text: ' Add ', className: 'btn app-btn-primary mr-2', @@ -410,4 +417,11 @@ $(document).on('click', 'tbody tr', function (e) { }); + + \ No newline at end of file diff --git a/app/Views/ticket_search.php b/app/Views/ticket_search.php index ea470c39..9abd8e4e 100644 --- a/app/Views/ticket_search.php +++ b/app/Views/ticket_search.php @@ -3,174 +3,196 @@ max-width: 98% !important; } + .filter-sidebar { + height: 100%; + width: 0; + position: fixed; + z-index: 1001; + top: 0; + right: 0; + background-color: #f8f9fa; + overflow-x: hidden; + transition: 0.5s; + box-shadow: -2px 0 5px rgba(0,0,0,0.1); + display: flex; + flex-direction: column; +} + +.filter-sidebar-header { + padding: 15px 20px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #dee2e6; + flex-shrink: 0; +} + +.filter-sidebar-header .closebtn { + font-size: 28px; + text-decoration: none; + color: #6c757d; +} + +.filter-sidebar .closebtn:hover { + color: #000; +} + +.filter-sidebar-content { + padding: 20px; + flex-grow: 1; + overflow-y: auto; +} + +.filter-sidebar-footer { + padding: 15px 20px; + display: flex; + justify-content: flex-end; + border-top: 1px solid #dee2e6; + flex-shrink: 0; + gap: 10px; +} -
    -
    -
    -
    -
    -
    -

    - Filter - - - -

    -
    -
    -
    -
    +
    +
    +

    Filter

    + × +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    -
    - - -
    +
    + + +
    - +
    + + +
    +
    + + +
    +
    + + +
    -
    - - -
    +
    + + +
    -
    - - -
    +
    + + +
    -
    - - -
    - -
    - - -
    - -
    - - -
    - - - -
    - - -
    - -
    - - -
    - -
    - - -
    - - - -
    - Clear - Submit -
    - -
    - -
    -
    -
    +
    -
    -
    - +
    +
    + +
    + + +