Compare commits

...

1713 Commits

Author SHA1 Message Date
12b632f087 added new api for list of org 2025-10-11 18:06:51 +05:30
6ee4fb6d04 Updated TeamEmployeeList to fetch employees using useOrganizationEmployees during search. 2025-10-11 17:48:25 +05:30
67bb685d4b added new api for orgaization dropdown 2025-10-11 16:55:22 +05:30
8fd4e7f3f1 added space between first and last name 2025-10-11 16:30:27 +05:30
aca2decb00 clear fully cache after remove session 2025-10-11 16:26:04 +05:30
f7f4b68997 changed reimburse data during transaction to current date 2025-10-11 15:09:04 +05:30
f839613066 Merge pull request 'Fix: Ensure orgData can be cleared when opening Organization Modal' (#474) from HotChanges_11_10_25 into main
Reviewed-on: #474
Merged
2025-10-11 08:42:26 +00:00
b58bd33774 added requested b and requested at column inside rgularization 2025-10-11 14:08:27 +05:30
136bc94c5b removed dbugger and add new classes 2025-10-11 13:12:23 +05:30
281a956ac8 fixed directory header layout 2025-10-11 12:43:37 +05:30
31882c3d12 REMOVED UNNEEDED CARD CLASS 2025-10-11 11:13:38 +05:30
a64635cd37 Fix: Ensure orgData can be cleared when opening Organization Modal 2025-10-11 10:29:40 +05:30
9b8c8c34ab Merge pull request 'HotChanges_10_10_25' (#472) from HotChanges_10_10_25 into main
Reviewed-on: #472
Merged
2025-10-10 14:50:04 +00:00
704ba79289 prevent to select future date 2025-10-10 20:17:06 +05:30
3440467107 wapped header content into separated div 2025-10-10 18:25:19 +05:30
f4edcfd2f3 changed prod url 2025-10-10 18:18:20 +05:30
62e5c6899a profile icon should display always at end 2025-10-10 18:17:24 +05:30
00a23b3de9 changed class for table responsive 2025-10-10 18:11:43 +05:30
79161a8ede prevent to pick future date 2025-10-10 18:09:35 +05:30
860779d096 fixed service list show in Dialy Task 2025-10-10 18:08:21 +05:30
a2067e150d fixed service list show 2025-10-10 17:51:12 +05:30
edce5ef614 added newhook that return only organization employee for employee list (Active or Inactive) 2025-10-10 16:48:22 +05:30
dd944b3414 datepicker should not take future date 2025-10-10 16:46:34 +05:30
13d3572cf6 fixed datepicke ui 2025-10-10 16:45:43 +05:30
0dd7c19457 added navigation hook to replace path 2025-10-10 15:37:59 +05:30
3cc4f0b416 mismatch service api fixed 2025-10-10 14:15:30 +05:30
f8095ac9bf upgraded progress 2025-10-10 10:55:51 +05:30
6280abf95e added marging between fltes input box 2025-10-09 17:32:39 +05:30
1200937097 Merge pull request 'HotChanges_09_10_25 : Added Daily Task Filter' (#467) from HotChanges_09_10_25 into main
Reviewed-on: #467
Merged
2025-10-09 12:00:21 +00:00
5d1ccb9572 changed buttons size 2025-10-09 17:25:03 +05:30
91ffc5a0e0 added filter for DailyTask Report 2025-10-09 17:23:04 +05:30
1c4804fed2 added for serviceI dropdown list 2025-10-09 16:48:15 +05:30
0e5e716df2 removed debuggger 2025-10-09 16:20:43 +05:30
aecaee7116 addded project when project goin to update state 2025-10-09 15:38:59 +05:30
97dca1a10b removed unused code 2025-10-07 14:53:48 +05:30
c35eacca5a addded filter added inside api 2025-10-07 14:02:25 +05:30
5e27ed36fa Merge pull request 'HotChanges_06-10-25 : Image Gallery and Attendanc CheckIn check-Out' (#459) from HotChanges_06-10-25 into main
Reviewed-on: #459
Merged
2025-10-07 07:12:49 +00:00
8bcfcc5718 fixed attendance - check In -out and persisted date range from Redux store for attendance logs 2025-10-07 07:12:49 +00:00
ad1bef4f7b added gallery and gallery filter 2025-10-07 07:12:49 +00:00
9886fac03e employee attendance display sorted by date, 2025-10-06 17:20:36 +05:30
a28a7fb444 checked-Out Time should be greather than or equal to checked In time 2025-10-06 16:07:31 +05:30
470421b730 added two date and service-name column inside ProjectAssignedOrgslist and fixed inactive fn in project team 2025-10-06 10:58:07 +05:30
7505b790a7 added trim fn to avoid extra spacing 2025-10-06 10:06:31 +05:30
8fd13247c7 Merge pull request 'HotChanges_04_10_25' (#450) from HotChanges_04_10_25 into main
Reviewed-on: #450
Merged
2025-10-05 04:28:55 +00:00
0fec257354 make removeSession flexible to clear local, session, or both 2025-10-05 00:21:19 +05:30
638c033705 fixed employee name show whenever update expense - for paid by 2025-10-05 00:14:39 +05:30
7872e21477 changed date utils and added search employee inside manage expense 2025-10-04 19:50:26 +05:30
6928bbd309 Changes in ProjectRepository api for getProjectInfraByProject 2025-10-04 17:50:54 +05:30
3693af3d00 added missing projects at ManageContact (Edit&Crate) 2025-10-04 16:36:11 +05:30
d5df200ede Merge pull request 'Organization_Management : Organization Hierarchy' (#443) from Organization_Management into main
Reviewed-on: #443
Merged
2025-09-30 09:07:30 +00:00
9c6450496e added closed fun after create project and changed label name 2025-09-30 14:22:01 +05:30
cfd3986479 fixed small changed like heading, font change 2025-09-30 11:59:16 +05:30
764b145ad9 empty select activity, planne work fields after successfully created task 2025-09-29 18:31:56 +05:30
20c7cf7f37 added right path for organization info show 2025-09-29 18:00:48 +05:30
6d74940c0c added optional chain at view org details 2025-09-29 17:55:56 +05:30
02dcd8611f user could not create subtask completed equal to approve task and fixd error imported subTask component 2025-09-29 17:29:11 +05:30
02600308e8 rmoved unused and console 2025-09-29 16:53:24 +05:30
d1c72291a3 update date utility for localtoUtc fn 2025-09-29 15:20:54 +05:30
fdbd81c5e7 removed console 2025-09-29 15:13:36 +05:30
28d5ef653d added optional chain for manage project to prevent run time error 2025-09-29 15:10:49 +05:30
550b142d74 fixed run time date error 2025-09-29 15:03:52 +05:30
68335f0695 added temp. placeholder for image gallary 2025-09-29 14:38:23 +05:30
4ea20981fc Merge pull request 'Changes in Directory edit' (#407) from Kartik_Bug#1180 into Organization_Management
Reviewed-on: #407
Merged
2025-09-29 09:00:27 +00:00
965e1e4808 Correction in Edit Bucket in Directory. 2025-09-29 09:00:27 +00:00
1c376fe91f Changes in Directory edit 2025-09-29 09:00:27 +00:00
61835cb189 added clear filter 2025-09-29 12:55:31 +05:30
375c482b61 renamed Inactive to Includes Inactive 2025-09-29 12:04:33 +05:30
72424eee53 added updation for fllter 2025-09-29 11:52:11 +05:30
22514b1fa0 Merge pull request 'ProjectUpdationForOrganizaion : added Two fields inside Project create and update form - Promoter and PMC and added Remember me' (#442) from ProjectUpdationForOrganizaion into Organization_Management
Reviewed-on: #442
Merged
2025-09-28 18:44:30 +00:00
61b209a082 addded remember me functionality 2025-09-29 00:13:52 +05:30
198e31290c updated project files 2025-09-28 22:15:07 +05:30
482f8a9bcb added organization api in repo. and removed unuse files 2025-09-27 23:54:44 +05:30
2489095b0b Merge pull request 'Date picker in Document Filter shows pre-filled date instead of blank' (#422) from Kartik_Bug#1250 into Organization_Management
Reviewed-on: #422
Merged
2025-09-27 09:41:15 +00:00
eb8d269662 Date picker in Document Filter shows pre-filled date instead of blank 2025-09-27 09:41:15 +00:00
bbd8ed12f6 Merge pull request 'Date field not cleared in Tenant filter after clicking Clear button' (#432) from Kartik_Bug#1306 into Organization_Management
Reviewed-on: #432
Merged
2025-09-27 09:40:05 +00:00
1e7b4ba21e Date field not cleared in Tenant filter after clicking Clear button 2025-09-27 09:40:05 +00:00
4de3987a37 Merge pull request 'Add extra spacing in Infra Work details.' (#434) from Kartik_Bug#1359 into Organization_Management
Reviewed-on: #434
Merged
2025-09-27 09:38:34 +00:00
7455d8a221 Add extra spacing in Infra Work details. 2025-09-27 09:38:34 +00:00
3f4b7d08d4 Merge pull request 'Add an info (ℹ️) icon to the Daily Progress Report’s Total Pending Task' (#435) from Kartik_Task#1361 into Organization_Management
Reviewed-on: #435
Merged
2025-09-27 09:37:36 +00:00
7ac3268514 Add an info (ℹ️) icon to the Daily Progress Report’s Total Pending Task 2025-09-27 09:37:36 +00:00
f8740472de Merge pull request 'Scrollbar Behavior in "Choose Organization" (Projects → Organization Tab)' (#436) from Kartik_Task#1374 into Organization_Management
Reviewed-on: #436
Merged
2025-09-27 09:36:27 +00:00
be72ca9a58 Scrollbar Behavior in "Choose Organization" (Projects → Organization Tab) 2025-09-27 09:36:27 +00:00
c71c00c0f7 Merge pull request 'Selected Building and Floor Should Persist While Creating Work Area and Activity (Project Infrastructure)' (#438) from Kartik_Bug#1372 into Organization_Management
Reviewed-on: #438
Merged
2025-09-27 09:35:27 +00:00
112e0ff798 Selected Building and Floor Should Persist While Creating Work Area and Activity (Project Infrastructure) 2025-09-27 09:35:27 +00:00
96eb030457 Merge pull request 'Tenant Creation – Error banner for plan selection/currency should not be shown' (#439) from Kartik_Bug#1370 into Organization_Management
Reviewed-on: #439
Merged
2025-09-27 09:34:48 +00:00
a873ace109 Tenant Creation – Error banner for plan selection/currency should not be shown 2025-09-27 09:34:48 +00:00
fb164bd2f2 Merge pull request 'Switch Tenant & Goto workspace option label should be “Switch Workspace' (#440) from Kartik_Bug#1366 into Organization_Management
Reviewed-on: #440
Merged
2025-09-27 09:34:07 +00:00
0d6708619f Switch Tenant & Goto workspace option label should be “Switch Workspace 2025-09-27 09:34:07 +00:00
edba191a2e Merge pull request 'Tenant Creation – Logo removed when navigating back from second page' (#441) from Kartik_Bug#1369 into Organization_Management
Reviewed-on: #441
Merged
2025-09-27 09:33:46 +00:00
ddfe09b570 Tenant Creation – Logo removed when navigating back from second page 2025-09-27 09:33:46 +00:00
acb899dd2e Merge pull request 'Change the label in Assign Organization.' (#433) from Kartik_Bug#1353 into Organization_Management
Reviewed-on: #433
Merged
2025-09-27 09:31:52 +00:00
ae66cb3705 Change the label in Assign Organization. 2025-09-27 09:31:52 +00:00
d52fa00de0 Merge pull request 'Team Assign ToProject : With other Organization employees' (#437) from TeamAssignToProject into Organization_Management
Reviewed-on: #437
Merged
2025-09-27 09:29:59 +00:00
ca8a41bb63 added style classes for footer 2025-09-27 09:29:59 +00:00
265c74f079 added filter and sorted employee list - Team 2025-09-27 09:29:59 +00:00
2ef1fcfd1d successfullly assigned employe to project 2025-09-27 09:29:59 +00:00
3233043cf2 initial setup for assign emp to project 2025-09-27 09:29:59 +00:00
3fddb686d3 change get employee at assign task to employee 2025-09-27 14:58:39 +05:30
4fd6e5cc1a Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management 2025-09-27 10:33:40 +05:30
1fb8eb9ef1 Create Task popup will open at all the time while submitting. 2025-09-26 16:21:37 +05:30
1a3890e837 Removing Create and Activity from MasterModal.jsx file. 2025-09-26 15:34:08 +05:30
2dbf08e330 Removing create and Edit activity component. 2025-09-26 15:02:03 +05:30
b044b88c49 Adding border in Group and Activities popup and Removing mandatory field in Tenant. 2025-09-26 14:56:19 +05:30
db815ba038 Rmoving Refresh icon and Label in Tenant. 2025-09-26 11:51:55 +05:30
53fa013c39 split projectList component 2025-09-26 11:47:03 +05:30
22a1ad45e7 Change the name of Switch Tenant to Workspace 2025-09-26 11:37:31 +05:30
91dcd7c132 The images on the Forgot page and Request Demo page should be centered after the update. 2025-09-26 10:53:31 +05:30
7d18edfa9b added tenant selection path within otp sign in way 2025-09-26 10:01:09 +05:30
fb08e48edd added iniial state of daly progress filte panel 2025-09-25 19:30:55 +05:30
69c225ac72 Adding Services dropdown in Organization Creation dropdown. 2025-09-25 16:09:36 +05:30
182280e91d Merge pull request 'Correction of Delete Employee Popup Texts' (#424) from Kartik_Bug#1261 into Organization_Management
Reviewed-on: #424
Mereged
2025-09-25 09:21:54 +00:00
38bd8d36c0 Correction of Delete Employee Popup Texts 2025-09-25 09:21:54 +00:00
a4bccc9bf6 Merge pull request 'Verify mandatory indicator (*) for Reference field while creating a Tenant' (#427) from Kartik_Bug#1295 into Organization_Management
Reviewed-on: #427
Merged
2025-09-25 09:20:48 +00:00
0e6dd93260 Verify mandatory indicator (*) for Reference field while creating a Tenant 2025-09-25 09:20:48 +00:00
245219ad71 Merge pull request 'Inconsistent search bar height in Tenant module' (#429) from Kartik_Bug#1300 into Organization_Management
Reviewed-on: #429
Merged
2025-09-25 09:19:07 +00:00
978a497f28 Inconsistent search bar height in Tenant module 2025-09-25 09:19:07 +00:00
451d0a785f Merge pull request 'Change all create button UI.' (#430) from Kartik_Task#1345 into Organization_Management
Reviewed-on: #430
Merged
2025-09-25 09:17:56 +00:00
84f9cb2e29 Change all create button UI. 2025-09-25 09:17:56 +00:00
9d9ca28bad Merge pull request 'Incorrect button sequence in Tenant Edit form' (#428) from Kartik_Bug#1301 into Organization_Management
Reviewed-on: #428
Merged
2025-09-25 09:17:16 +00:00
1d218056ac Incorrect button sequence in Tenant Edit form 2025-09-25 09:17:16 +00:00
58837cef0c Merge pull request 'Adding Activity-Group in Create Task popup.' (#431) from Kartik_Task_InfraMask#1266 into Organization_Management
Reviewed-on: #431
merged
2025-09-25 09:00:46 +00:00
1cd3bf6c7f updated assigned services poject whenver assigned new service 2025-09-25 09:00:46 +00:00
d2b10495bd Added Services Column in Edit activity modal 2025-09-25 09:00:46 +00:00
ae9c4833b3 Added Activity Group, and implemented sorting for Service, Activity Group, and Activities. 2025-09-25 09:00:46 +00:00
e69efe61cb Adding Activity-Group in Create Task popup. 2025-09-25 09:00:46 +00:00
92b1531b75 daily task planning filtering according to service 2025-09-25 14:11:04 +05:30
57edd92dce fixed blocking of dailyprogress by using pagination 2025-09-25 12:36:55 +05:30
49eaf857ad In Choose Orgainzation popup Find Organization and Search box show in one line. 2025-09-25 11:46:12 +05:30
ccdfc193c6 Change the position of setting and Organization in Project nav. 2025-09-25 09:52:13 +05:30
817b31379e Switch Tenant button move to top in User Profile. 2025-09-24 17:33:55 +05:30
b36120f73d Merge pull request 'In ExpensePanel add new Toggle button.' (#421) from Kartik_Task#1303 into Organization_Management
Reviewed-on: #421
2025-09-24 11:14:01 +00:00
e2ae2e5fbd change labels as per guidance 2025-09-24 16:43:36 +05:30
521e6690cb uncommit important stuff 2025-09-24 15:09:34 +05:30
1f4a7e5e9c forgot uncomment important stuff- tenant 2025-09-24 15:08:42 +05:30
1d3fcff859 Merge pull request 'Activities redirection issue – Redirects to “Marco Secure Solution Pvt Ltd” project by default' (#423) from Kartik_Bug#1292 into Organization_Management
Reviewed-on: #423
Merged
2025-09-24 07:20:45 +00:00
1286184e1f Activities redirection issue – Redirects to “Marco Secure Solution Pvt Ltd” project by default 2025-09-24 07:20:45 +00:00
4e315aafcf added small ui changed like table b-padding, button size and fixd delete activity and group 2025-09-24 12:49:00 +05:30
52e12426af Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management 2025-09-23 17:49:01 +05:30
d975664023 integrated service group wise activity operation delete,edit and create 2025-09-23 17:48:56 +05:30
d87dae4799 In ExpensePanel add new Toggle button. 2025-09-23 16:35:48 +05:30
4683eff749 In the ProjectList view, when we select 'View Details', the project is automatically set to 'marcosecure' instead of the selected project. 2025-09-23 11:06:16 +05:30
772a3e2829 Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management 2025-09-22 18:44:13 +05:30
ca7b0cda13 initially setup of service management 2025-09-22 18:44:05 +05:30
a380a7ab29 Changes in Choose Organization1 popup increase the space. 2025-09-22 16:25:02 +05:30
c609387924 Changes in Organization popup 2025-09-22 16:00:24 +05:30
69cc3b9383 Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management 2025-09-22 13:13:22 +05:30
6ebbc853bc optimized logout fun and intergrated inside Tenant selection page 2025-09-22 13:13:13 +05:30
71dd35adc2 Changes in Services Dropdown. 2025-09-22 12:40:00 +05:30
533b40d1bf Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management 2025-09-22 10:31:06 +05:30
42a80bbd68 removed unused code 2025-09-22 10:30:57 +05:30
397020ccb4 Merge pull request 'Creating a Services in Master Compoenents.' (#408) from Master_Services into Organization_Management
Reviewed-on: #408
2025-09-22 05:00:06 +00:00
71932ea6dc Merge pull request 'Integrate the API for Work Area and fetch data filtered by serviceId.' (#419) from Kartik_Task_Infra#1265 into Organization_Management
Reviewed-on: #419
2025-09-22 04:07:58 +00:00
693cabf63d Merge pull request 'Calling api for Attendance component for Organization.' (#420) from Kartik_Task_Att#1236 into Organization_Management
Reviewed-on: #420
2025-09-22 04:07:09 +00:00
4afe43d116 handle one tenant have , directly move to dashboard once logged 2025-09-22 00:09:34 +05:30
b9b3788dda configured tenant level login 2025-09-21 18:59:34 +05:30
5e1ccc9b05 Calling api for Attendance component for Organization. 2025-09-21 18:17:47 +05:30
aee510f527 revert pramod changed - (tenant login mistake 2025-09-21 16:58:29 +05:30
7e6020e3db Merge branch 'organization_management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management 2025-09-21 16:42:26 +05:30
cf78d17cf5 Merge pull request 'Add an Organization column in the Attendance grid across all tabs.' (#414) from Kartik_Task_OrgCol_att#1238 into Organization_Management
Reviewed-on: #414
2025-09-21 11:11:21 +00:00
72dbdb0fe0 Changes in Attendance 2025-09-21 16:40:23 +05:30
afcd1934f9 Integrate the API for Work Area and fetch data filtered by serviceId. 2025-09-21 15:10:31 +05:30
Pramod
3e5afe0bc6 revertlogin initial steup in organization_management brnach 2025-09-21 10:13:12 +05:30
Pramod
070fa93fca initially setup login 2025-09-21 10:06:38 +05:30
53a9cbc30b Merge pull request 'Changes in the Teams Services dropdown will reflect the Services data.' (#418) from Kartik_Task_TeamGrid#1259 into Organization_Management
Reviewed-on: #418
2025-09-20 15:01:16 +00:00
70acf57266 Remove message from Services dropdwon. 2025-09-20 20:05:25 +05:30
b2d7349fc9 Adding search funcionality in Teams for Organization and Services. 2025-09-20 19:37:47 +05:30
a0f7e5c57b Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Kartik_Task_TeamGrid#1259 2025-09-20 19:32:41 +05:30
fa7dc2860c Changes in the Teams Services dropdown will reflect the Services data. 2025-09-20 19:30:47 +05:30
a1a935b0d5 Merge pull request 'changed Uii for org. or project assigned' (#417) from organization_level_login into Organization_Management
Reviewed-on: #417
2025-09-20 13:27:30 +00:00
Pramod
e610cc08c1 changed Uii for org. or project assigned 2025-09-20 18:47:09 +05:30
9711144236 Adding a new Grid in Teams Grid. 2025-09-20 15:40:17 +05:30
1a88f5fec5 chenages msg 2025-09-20 14:02:57 +05:30
ce73cfad21 Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management 2025-09-20 13:59:24 +05:30
7dafd4a45f fetched assigned organozation to project 2025-09-20 13:59:20 +05:30
2e3e3aa6ca Merge pull request 'Adding Filter Icon in Attendance tab and add functionality in all Attendance component.' (#416) from Kartik_Task_AttFilter#1235 into Organization_Management
Reviewed-on: #416
2025-09-20 06:45:11 +00:00
158c934a9f Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management 2025-09-20 12:14:40 +05:30
f6d864d42e assign to project and Tenant flow is integrated with api 2025-09-20 12:14:34 +05:30
90b96864be Changes in Attendance filter 2025-09-20 12:13:49 +05:30
5a048f7066 Merge pull request 'Adding Dropdown and API call in Daily Progress Report.' (#413) from Kartik_Task_DailyProgress#1232 into Organization_Management
Reviewed-on: #413
2025-09-20 06:22:43 +00:00
731d2dbed7 Changes in Infrastructure. 2025-09-20 11:51:32 +05:30
25de45b31b Merge pull request 'Adding Dropdown in Daily Task Planning and call api.' (#412) from Kartik_Task_DailyTask#1231 into Organization_Management
Reviewed-on: #412
2025-09-20 06:09:58 +00:00
58b5da1793 Changes in Daily Task planning 2025-09-20 11:39:14 +05:30
0746e5c349 Merge pull request 'Adding Dropdown in Create Task Popup.' (#411) from Kartik_Task#1230 into Organization_Management
Reviewed-on: #411
2025-09-20 06:03:55 +00:00
83143dff0a Merge pull request 'Adding Services Dropdown in Infrastructure.' (#410) from Kartik_Task#1229 into Organization_Management
Reviewed-on: #410
2025-09-20 06:00:05 +00:00
994f22e8c0 Changes in Infrastructure service dropdown. 2025-09-20 11:29:29 +05:30
84a5be52f8 Merge pull request 'Adding Dropdown and Organization Column in Teams' (#409) from Kartik_Task#1227 into Organization_Management
Reviewed-on: #409
2025-09-20 05:52:30 +00:00
b39df5f665 Changes in Teams dropdown. 2025-09-20 11:21:56 +05:30
9bdcc74486 Adding Filter Icon in Attendance tab and add functionality in all Attendance component. 2025-09-20 10:28:18 +05:30
005fdb3490 added assigned org to project 2025-09-19 23:46:06 +05:30
9223f7a176 Adding Card in Daily Progress Report. 2025-09-19 20:03:36 +05:30
27b62c858d Change the position of Datepicker and Dropdown box. 2025-09-19 19:50:50 +05:30
00d6774e06 Change the position of Services in Create Task popup in Infrastructure. 2025-09-19 19:26:46 +05:30
1ef82ad0b2 Only 1 project or no project is assigned then dropdown will be hide. 2025-09-19 19:20:01 +05:30
1da587d010 Adding condition if single or no project assigned then dropdown is not shown 2025-09-19 19:13:02 +05:30
164b82e1c7 Add an Organization column in the Attendance grid across all tabs. 2025-09-19 17:00:02 +05:30
e9d8b6daea Adding Dropdown and API call in Daily Progress Report. 2025-09-19 16:43:44 +05:30
9b37288901 Adding Dropdown in Daily Task Planning and call api. 2025-09-19 16:32:34 +05:30
54e609883d Adding Dropdown in Create Task Popup. 2025-09-19 16:13:09 +05:30
7d17422681 Calling Api for Services dropdown. 2025-09-19 16:02:36 +05:30
d67121c150 Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Kartik_Task#1227 2025-09-19 15:55:25 +05:30
e154bac64a Calling api for services dropdwon. 2025-09-19 15:54:29 +05:30
ea350db98b Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Kartik_Task#1229 2025-09-19 15:27:16 +05:30
133024bc5c setup assigned org to project and integrated projectservice 2025-09-19 15:25:58 +05:30
ea219b7176 Adding Services Dropdown in Infrastructure. 2025-09-19 15:03:25 +05:30
af5519fd60 Adding Dropdown and Organization Column in Teams 2025-09-19 14:53:40 +05:30
08194dd8ef Creating a Services in Master Compoenents. 2025-09-19 14:18:56 +05:30
1452e77bc5 initially setup service provider form 2025-09-18 19:23:24 +05:30
7fa2ca9227 Merge branch 'Organization_Management' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management 2025-09-18 15:25:02 +05:30
0d9ef7f248 integrated fetch organization list api and display with search filter 2025-09-18 15:23:48 +05:30
9a3488c92b convert inline style css class into class name 2025-09-18 15:23:48 +05:30
1b144aab8a organization created successfully 2025-09-18 15:23:48 +05:30
2e65007f26 fixed Modal provider component and setup organization creation 2025-09-18 15:23:48 +05:30
3c4c25b449 refactore SelectMult Tag for label display is required or optional 2025-09-18 15:23:23 +05:30
979293ad90 setup organization modal, it seprated form another becuase this modal can open anywhere at one hook 2025-09-18 15:21:23 +05:30
99eaf92e3f initially setup 2025-09-18 15:18:51 +05:30
28b0541894 organization created successfully 2025-09-18 15:18:04 +05:30
a48fc1d989 fixed Modal provider component and setup organization creation 2025-09-18 15:18:04 +05:30
78a0ecebf1 resolved conflict during came rebase 2025-09-18 15:18:04 +05:30
8eb8e27f89 refactore SelectMult Tag for label display is required or optional 2025-09-18 15:18:04 +05:30
012a89b3ea setup organization modal, it seprated form another becuase this modal can open anywhere at one hook 2025-09-18 15:18:04 +05:30
18698a67e3 removed unused files 2025-09-18 15:18:04 +05:30
701d1adc0b initially setup 2025-09-18 15:18:03 +05:30
b2c68824dd fixed refresh existen permission 2025-09-18 12:57:37 +05:30
b3b7297bc3 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web 2025-09-18 12:40:06 +05:30
9311f41f56 fixed high level changes 2025-09-18 12:38:39 +05:30
9ba2ecfb1f Merge pull request 'Intefrating_API_Dashboard Changes in UI of Dashboard and Login form password field.' (#406) from Intefrating_API_Dashboard into main
Reviewed-on: #406
2025-09-18 07:05:38 +00:00
a27b8571b5 cosmatic changes 2025-09-18 12:35:04 +05:30
fd36298543 Changes in UI of Landing Page subscription and add skeleton 2025-09-18 12:07:46 +05:30
09bb58e50e fixed project level permission bug 2025-09-18 11:30:38 +05:30
01a5766074 organization created successfully 2025-09-18 10:01:39 +05:30
0348f6da8e fixed Modal provider component and setup organization creation 2025-09-17 19:45:42 +05:30
1c0e8655c4 Changes in Login-form hide/unhide button add secondary. 2025-09-17 17:09:56 +05:30
6211f52e3a Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Intefrating_API_Dashboard 2025-09-17 16:51:56 +05:30
df9107f0d8 Changes in UI of Subscription-plan. 2025-09-17 16:49:52 +05:30
eea7252b96 Changes in UI of Dashboard getplans. 2025-09-17 16:10:49 +05:30
442ecff926 Merge pull request 'Refactor_Directory And Project Level Permsssion' (#404) from Refactor_Directory into main
Reviewed-on: #404
Merged
2025-09-17 10:24:45 +00:00
0abd77dab7 Merge pull request 'Calling API for Dashboard paln show.' (#405) from Intefrating_API_Dashboard into Refactor_Directory
Reviewed-on: #405
Merged
2025-09-17 10:23:13 +00:00
4b0ea3a0db Merge branch 'Refactor_Directory' of https://git.marcoaiot.com/admin/marco.pms.web into Refactor_Directory 2025-09-17 15:50:49 +05:30
d3218eb77a handle project set null at employee details page 2025-09-17 15:50:44 +05:30
4ad87af7f4 Add FAQ Answers on landing page 2025-09-17 15:22:25 +05:30
7b15309dbf Calling API for Dashboard paln show. 2025-09-17 14:38:57 +05:30
834ce62e67 Merge branch 'Refactor_Directory' of https://git.marcoaiot.com/admin/marco.pms.web into Organization_Management 2025-09-17 14:26:35 +05:30
889b477dd0 removed subMenu of Project setting 2025-09-17 14:24:45 +05:30
19f8189fc3 resolved conflict during came rebase 2025-09-17 14:19:02 +05:30
970c195ca5 refactore SelectMult Tag for label display is required or optional 2025-09-17 14:15:29 +05:30
d944d3a389 setup organization modal, it seprated form another becuase this modal can open anywhere at one hook 2025-09-17 14:15:29 +05:30
e0c7eee1fd removed unused files 2025-09-17 14:14:56 +05:30
6baa2896c2 initially setup 2025-09-17 14:14:56 +05:30
a835e75f66 fixed view project 2025-09-17 13:15:00 +05:30
cc7ef47055 fixed validation msg set bottom of select box 2025-09-17 12:54:40 +05:30
95fbac4760 fixed prevent removed existen permission whenever add new one 2025-09-17 12:41:00 +05:30
a86c815ca2 Asthetic Changes
- Margin on all sides for grid
- Margin for card content
2025-09-16 18:33:48 +05:30
daa1a29e8a added option chain for handle error 2025-09-16 18:11:47 +05:30
794429821b Merge branch 'Refactor_Directory' of https://git.marcoaiot.com/admin/marco.pms.web into Refactor_Directory 2025-09-16 17:57:11 +05:30
7d94c17c71 modified ui of header directory 2025-09-16 17:57:06 +05:30
fb6a8255c9 Changes in DocumentManager popup change the sequence. 2025-09-16 17:08:36 +05:30
7ef10e3e5b Merge pull request 'Handled Global and Project level permissions' (#403) from hotchanges_projectPermission into Refactor_Directory
Reviewed-on: #403
Merged
2025-09-16 10:43:30 +00:00
0a489be675 added proper global and project level permission 2025-09-16 16:08:47 +05:30
c014d6c929 handle delete bucket 2025-09-16 12:07:42 +05:30
2c378745fa changed label class of directory filter 2025-09-16 10:59:25 +05:30
080d2307ca removed unused code 2025-09-16 10:49:44 +05:30
d2288ea967 Merge pull request 'Issues_Sep_1W_V2' (#402) from Issues_Sep_1W_V2 into Refactor_Directory
Reviewed-on: #402
Merged
2025-09-16 05:11:27 +00:00
42086d7f3a Merge branch 'Refactor_Directory' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_Sep_1W_V2 2025-09-16 10:40:27 +05:30
020020056e Changes in Activities DateRangePicket. 2025-09-15 18:19:11 +05:30
9b3ffdb33d changed input of search input text- search at Contact 2025-09-15 17:32:31 +05:30
d70c8e5995 Merge pull request 'Filter dropdown in Assign Task popup does not close on outside click' (#396) from Kartik_Bug#1123 into Issues_Sep_1W_V2
Reviewed-on: #396
Merged
2025-09-15 11:52:15 +00:00
e6e90c7d4e Filter dropdown in Assign Task popup does not close on outside click 2025-09-15 11:52:15 +00:00
19241cc556 Merge pull request 'Remove Extra Line Below "No Contact Found" Message in Directory' (#400) from Kartik_Bug#1115 into Refactor_Directory
Reviewed-on: #400
Merged
2025-09-15 11:51:46 +00:00
7c2744058d Remove Extra Line Below "No Contact Found" Message in Directory 2025-09-15 11:51:46 +00:00
a963176c95 Merge pull request 'Message should be inside card' (#399) from Kartik_Bug#1080 into Refactor_Directory
Reviewed-on: #399
Merged
2025-09-15 11:48:52 +00:00
6bc8c65c81 Message should be inside card 2025-09-15 11:48:52 +00:00
45bd5a7f66 Merge pull request 'Directory - Contacts Exported to Excel does not format properly' (#397) from Kartik_Bug#1064 into Refactor_Directory
Reviewed-on: #397
Merged
2025-09-15 11:47:56 +00:00
e179a267aa Directory - Contacts Exported to Excel does not format properly 2025-09-15 11:47:56 +00:00
9c51378963 Merge pull request 'Employee Profile Page Not Updating without refresh page ,After Edit' (#398) from Kartik_Bug#909 into Issues_Sep_1W_V2
Reviewed-on: #398
Merged
2025-09-15 11:37:17 +00:00
4927680fe3 fixed going wrong request for Expense payload - Transaction 2025-09-15 17:00:36 +05:30
9af7a5ceb2 Employee Profile Page Not Updating without refresh page ,After Edit 2025-09-15 15:19:40 +05:30
94eb283b2d added permission for managr task 2025-09-13 19:01:08 +05:30
0e3a634205 fixed permission add and remove updation 2025-09-13 18:16:56 +05:30
2ef56e7f83 added correct msg for contact person 2025-09-13 16:10:17 +05:30
d80fa27906 Merge pull request 'Remove Required Indicator from Tags Field in Document Upload' (#392) from Kartik_Bug#1104 into Issues_Sep_1W_V2
Reviewed-on: #392
Merged
2025-09-13 10:13:18 +00:00
70110192f4 Remove Required Indicator from Tags Field in Document Upload 2025-09-13 10:13:18 +00:00
548597ed4f Merge pull request 'Display Only "Re-activate" Button for Inactive Employees in Action Column' (#394) from Kartik_Bug#1113 into Issues_Sep_1W_V2
Reviewed-on: #394
Merged
2025-09-13 10:11:25 +00:00
75ca3d1504 Display Only "Re-activate" Button for Inactive Employees in Action Column 2025-09-13 10:11:25 +00:00
f20ff7eb73 Merge pull request 'Created bucket card is visible in middle of Manage Buckets popup & after refresh page it displayed at left corner.' (#393) from Kartik_Bug#976 into Issues_Sep_1W_V2
Reviewed-on: #393
Merged
2025-09-13 10:10:32 +00:00
ce59869827 Created bucket card is visible in middle of Manage Buckets popup & after refresh page it displayed at left corner. 2025-09-13 10:10:32 +00:00
d77e3c5f03 Merge pull request 'Standardize All Buttons in Expenses Module to Match Website-Wide Button Style' (#391) from Kartik_Bug#830 into Issues_Sep_1W_V2
Reviewed-on: #391
Merged
2025-09-13 10:06:14 +00:00
2f2ddb0576 Standardize All Buttons in Expenses Module to Match Website-Wide Button Style 2025-09-13 10:06:14 +00:00
2e14fc862d Merge pull request 'Forgot Password – Reset link not sent, error shown for all valid emails' (#389) from Kartik_Bug#962 into Issues_Sep_1W_V2
Reviewed-on: #389
Merged
2025-09-13 10:05:34 +00:00
84500f6913 Forgot Password – Reset link not sent, error shown for all valid emails 2025-09-13 10:05:34 +00:00
2790f50275 Merge pull request 'Password Field UI Not Proper – White Background Not Covering Full Field' (#386) from Kartik_Bug#1015 into Issues_Sep_1W_V2
Reviewed-on: #386
Merged
2025-09-13 10:04:39 +00:00
8c48b83581 Password Field UI Not Proper – White Background Not Covering Full Field 2025-09-13 10:04:39 +00:00
f992dbeaf1 Merge pull request 'Username and Password Fields Should Auto-Trim Spaces on Login' (#385) from Kartik_Bug#1016 into Issues_Sep_1W_V2
Reviewed-on: #385
Merged
2025-09-13 10:03:31 +00:00
d1098e64a7 Username and Password Fields Should Auto-Trim Spaces on Login 2025-09-13 10:03:31 +00:00
212e969258 Merge pull request 'New Password Field on Reset Password Page Should Be Empty' (#384) from Kartik_Bug#1071 into Issues_Sep_1W_V2
Reviewed-on: #384
Merged
2025-09-13 10:02:45 +00:00
9de1613bd9 New Password Field on Reset Password Page Should Be Empty 2025-09-13 10:02:45 +00:00
9676d45710 When the clear button hit api for full response. 2025-09-12 17:16:34 +05:30
7e5b6952f5 Apply functionality for Both Notes and Contact filter 2025-09-12 17:09:48 +05:30
0484de498c Changes in UI of Directory Notes Tabs and all the popups. 2025-09-12 16:11:31 +05:30
a7ccaa2812 changed position of text- Active and In-Active 2025-09-12 13:08:07 +05:30
5fb7e89cb2 changed sequence of contact form buttons 2025-09-12 12:58:01 +05:30
2027bd3d17 all images path changed 2025-09-12 12:37:31 +05:30
ee9698f665 changed images path for landing page 2025-09-12 12:29:54 +05:30
25ec5a354c changed path of logo 2025-09-12 12:21:40 +05:30
8335c42935 added direct bucket permission 2025-09-12 12:04:24 +05:30
3963002a2d Merge branch 'landing_page_1' into Refactor_Directory
# Conflicts:
#	src/pages/Home/LandingPage.css
2025-09-11 18:14:31 +05:30
717264c9f9 fixed update and creation for contacts 2025-09-11 17:34:56 +05:30
1a04dd51fc Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Refactor_Directory 2025-09-11 16:25:49 +05:30
c83de16466 added missed outed confirm modal inside employee for suspend emp 2025-09-11 11:09:46 +05:30
b51b3db9ec added missing assset 2025-09-11 10:51:46 +05:30
79553cab4e Merge pull request 'Added new page - Landing Page' (#390) from landing_page_1 into Refactor_Directory
Reviewed-on: #390
Merged
2025-09-11 05:01:19 +00:00
7a74084841 rearrange images in folder 2025-09-11 05:01:19 +00:00
7638f8bdaa Add blog content 2025-09-11 05:01:19 +00:00
78f304a490 add blog container 2025-09-11 05:01:19 +00:00
0b38436dfe handle animations 2025-09-11 05:01:19 +00:00
15581f3f26 landing page modifications 2025-09-11 05:01:19 +00:00
8dc064340b removed unused component 2025-09-10 21:01:28 +05:30
285b853026 removed alreday declare component 2025-09-10 20:39:48 +05:30
81e5456e1d Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Refactor_Directory 2025-09-10 20:36:54 +05:30
4741025dcb set Directory page for project 2025-09-10 20:35:48 +05:30
aec6bd64ff Merge pull request 'Added Document Managment feature' (#388) from Document_Manag into main
Reviewed-on: #388
Merged
2025-09-10 14:34:35 +00:00
eea36a2722 handle delete master modal 2025-09-10 20:01:06 +05:30
1a7e77c814 structured code 2025-09-10 19:09:55 +05:30
b1a2250c48 imported missing routes during merged 2025-09-10 19:03:29 +05:30
f20c3a64f6 added proper modal size for Master Modal - Application Role 2025-09-10 19:00:07 +05:30
ebab03dc9f updated method for update contact category 2025-09-10 18:52:09 +05:30
d6de8cbfc1 completely refactored directory module 2025-09-10 18:13:36 +05:30
44cc6c6e81 rearrange images in folder 2025-09-10 13:44:50 +05:30
6604a4db13 Add blog content 2025-09-10 12:49:30 +05:30
b66106c301 Merge branch 'Document_Manag' of https://git.marcoaiot.com/admin/marco.pms.web into Refactor_Directory 2025-09-10 12:46:38 +05:30
691fd9208f fixed alignment address value at emplt about 2025-09-10 12:28:07 +05:30
45b21d3e73 restric open modal when came at admisitrator page 2025-09-10 11:33:44 +05:30
3db6cc2100 added modal, that was missing during merged 2025-09-10 11:29:01 +05:30
b934527cf5 added manually changed 2025-09-10 10:41:26 +05:30
bac62e1fa7 Merge branch 'Document_Manag' of https://git.marcoaiot.com/admin/marco.pms.web into Document_Manag
# Conflicts:
#	src/components/Employee/EmpOverview.jsx
2025-09-10 10:38:13 +05:30
5ec5218dd6 Merge branch 'Issues_Sep_1W' into Document_Manag
# Conflicts:
#	src/pages/Activities/DailyTask.jsx
#	src/pages/master/MasterPage.jsx
2025-09-10 10:37:38 +05:30
47d0e332f1 add blog container 2025-09-10 10:35:36 +05:30
b02893fd98 Merge pull request 'Meaningful Message Required When No Reports Found in Selected Date Range' (#379) from Kartik_Bug#1045 into Issues_Sep_1W
Reviewed-on: #379
Merged
2025-09-10 04:45:29 +00:00
c9ccd46385 Meaningful Message Required When No Reports Found in Selected Date Range 2025-09-10 04:45:29 +00:00
aa45731d8c Merge pull request 'Invalid Date Displayed Instead of "NA" in Employee List' (#380) from Kartik_Bug#1039 into Issues_Sep_1W
Reviewed-on: #380
Merged
2025-09-10 04:43:23 +00:00
614d61e6e9 Invalid Date Displayed Instead of "NA" in Employee List 2025-09-10 04:43:23 +00:00
0e35194a82 Merge pull request 'Master Page - Grid alignment' (#381) from Kartik_Bug#1081 into Issues_Sep_1W
Reviewed-on: #381
Merged
2025-09-10 04:42:46 +00:00
20077a137f Master Page - Grid alignment 2025-09-10 04:42:46 +00:00
1ff1bc9269 Merge pull request 'Address field label is breaking into multiple lines in Employee Profile tab' (#382) from Kartik_Bug#1096 into Issues_Sep_1W
Reviewed-on: #382
Merged
2025-09-10 04:42:12 +00:00
b50b6bc454 Address field label is breaking into multiple lines in Employee Profile tab 2025-09-10 04:42:12 +00:00
d87defbf9a Merge pull request 'Contact Number Field Accepts More Than 10 Digits in Create/Update Contact' (#378) from Kartik_Bug#1090 into Issues_Sep_1W
Reviewed-on: #378
Merged
2025-09-10 04:41:43 +00:00
e454917763 refactored notes list 2025-09-10 02:41:59 +05:30
b113675cc2 contact Active and InActive refactored 2025-09-10 00:07:34 +05:30
025b13ea64 reafctor contact list with filter 2025-09-09 20:04:48 +05:30
755eb94ae3 added padding and marging at project feature permission card 2025-09-09 15:41:27 +05:30
1138bdf009 display properly version list 2025-09-09 15:06:25 +05:30
2642532b60 handle animations 2025-09-09 15:02:59 +05:30
67d399e3d3 set proerly alignment for label and value 2025-09-09 14:44:38 +05:30
fdc377cc3a employee joing date display regular local format 2025-09-09 14:30:08 +05:30
1bd951636a added proper msg showing whenver user did opertion for delete and restore 2025-09-09 14:27:26 +05:30
13a517f998 show msg once restored document 2025-09-09 14:13:39 +05:30
d5b3c25b45 added flag for pick future date or not 2025-09-09 13:31:30 +05:30
f8466e5f4a changed text font of SelectMulti tag value scondaru to semibold 2025-09-09 13:17:47 +05:30
6998714fea Contact Number Field Accepts More Than 10 Digits in Create/Update Contact 2025-09-09 12:51:19 +05:30
98546afc1a Merge branch 'Document_Manag' of https://git.marcoaiot.com/admin/marco.pms.web into Document_Manag 2025-09-09 12:49:35 +05:30
49b89f74ff added view, upload,update and delete permissions 2025-09-09 12:49:21 +05:30
7a5fc509fb Merge branch 'Document_Manag' of https://git.marcoaiot.com/admin/marco.pms.web into Document_Manag 2025-09-09 12:38:14 +05:30
8d44606b0b Changes In Popup of Document. 2025-09-09 12:38:11 +05:30
b91487712d initially contactfilter added 2025-09-09 12:09:03 +05:30
6ca6ec31f7 landing page modifications 2025-09-09 12:06:10 +05:30
849709ad05 Merge pull request 'Toggle Button Functionality for Deleted Notes Not Working Correctly' (#375) from Kartik_Bug#1056 into Document_Manag
Reviewed-on: #375
2025-09-09 05:33:50 +00:00
1abed1de3a managebucket component is split 2025-09-09 01:49:31 +05:30
1b98c60120 Merge branch 'Document_Manag' of https://git.marcoaiot.com/admin/marco.pms.web into Document_Manag 2025-09-08 16:04:16 +05:30
4295e7d8d6 UI Changes in Document Details popup. 2025-09-08 16:04:13 +05:30
f72b7c62c8 add RootRedirect for "/" path to handle login and dashboard routing 2025-09-08 15:55:50 +05:30
01a3f5809a login Opt will be expire in % min 2025-09-08 15:17:43 +05:30
bb7e488bb0 Merge branch 'Document_Manag' of https://git.marcoaiot.com/admin/marco.pms.web into Document_Manag 2025-09-08 15:06:29 +05:30
da8d63ce62 changed msg whenenver emp not found- "No team members assigned yet" 2025-09-08 15:06:24 +05:30
ef0eff98f8 Remove unwanted icon 2025-09-08 14:55:33 +05:30
2a833196f8 Merge branch 'Document_Manag' of https://git.marcoaiot.com/admin/marco.pms.web into Document_Manag 2025-09-08 14:54:20 +05:30
97a4a4593e Changes In Popup of Document Manager popup. 2025-09-08 14:54:15 +05:30
a112886897 Merge pull request 'Date Picker in Employee Attendance & Activity Tab Should Default to Last 7 Days' (#374) from Kartik_Bug#1052 into Issues_Sep_1W
Reviewed-on: #374
2025-09-08 09:11:24 +00:00
db38c5fefa Merge branch 'Issues_Sep_1W' into Kartik_Bug#1052 2025-09-08 09:11:06 +00:00
c6f16249fd Merge pull request 'Filter icon should not be displayed when no records are found in Daily Progress Report' (#373) from Kartik_Bug#1042 into Issues_Sep_1W
Reviewed-on: #373
2025-09-08 09:09:36 +00:00
63a5f7b902 normalize projectId from localStorage to avoid "null" string 2025-09-08 14:22:23 +05:30
ace507232a changed dashboard route "/" to "/dashboard" 2025-09-08 12:48:19 +05:30
f9876c6d52 spell correction 2025-09-08 12:40:14 +05:30
6d86362e9e Merge branch 'Landing_pages' into Document_Manag
# Conflicts:
#	src/pages/authentication/LoginPage.jsx
#	src/pages/employee/EmployeeList.jsx
#	src/router/AppRoutes.jsx
2025-09-08 12:34:18 +05:30
698c1b7b16 add new images
replase class= with className=
2025-09-08 12:32:16 +05:30
e216ac16ef Merge pull request 'Change the UI of all components and add stars for all mandatory fields.' (#370) from UI_Changes_PMS into Document_Manag
Reviewed-on: #370
2025-09-08 06:30:57 +00:00
0194c4427a Merge branch 'UI_Changes_PMS' of https://git.marcoaiot.com/admin/marco.pms.web into UI_Changes_PMS 2025-09-08 11:57:30 +05:30
ea022d37c8 Merge branch 'Document_Manag' of https://git.marcoaiot.com/admin/marco.pms.web into UI_Changes_PMS 2025-09-08 11:50:58 +05:30
957f790fce initially created ManageBucket 2025-09-08 11:40:03 +05:30
6a472b39ef initialli refactoring directory 2025-09-08 10:14:18 +05:30
768f810465 All symbols will be same in all components. 2025-09-05 17:17:15 +05:30
7ed6a7e5b9 UI Changes in Assign Employee popup, Attendance tabs, Dashboard heading will be same. 2025-09-05 16:53:48 +05:30
5c59ac3115 Create Employee Change the date box into DatePicker. 2025-09-05 13:07:58 +05:30
7e81649841 Toggle Button Functionality for Deleted Notes Not Working Correctly 2025-09-05 12:45:28 +05:30
c568dc9108 Date Picker in Employee Attendance & Activity Tab Should Default to Last 7 Days 2025-09-05 12:33:43 +05:30
dcb2f59f5b Filter icon should not be displayed when no records are found in Daily Progress Report 2025-09-05 12:26:57 +05:30
e39355c6fd Changes in UI for Masters component. 2025-09-05 12:00:26 +05:30
f9fe987a94 changed useproject hook name 2025-09-05 11:58:36 +05:30
87221965de Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Document_Manag 2025-09-05 11:52:50 +05:30
6caad7850d clear and structured code 2025-09-05 11:45:04 +05:30
8f8cbf27ef Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into UI_Changes_PMS 2025-09-05 11:44:27 +05:30
0db0edec1a Masters Popup all heading show in Center align. 2025-09-05 11:19:35 +05:30
42b6802419 Merge pull request 'Issues_Aug_2W' (#371) from Issues_Aug_2W into main
Reviewed-on: #371
Merged
2025-09-05 05:45:32 +00:00
cabb1b01c9 don't changed project when move to one page to another page 2025-09-05 11:14:02 +05:30
f56fd23cbf In Create Project popup change the noraml date selection to DatePicker. 2025-09-05 11:12:31 +05:30
6dfdaf3316 changed name useSelectedproject to useSelectedProject 2025-09-05 11:06:38 +05:30
4369705a2d Merge branch 'Issues_Aug_2W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_Aug_2W 2025-09-05 10:53:35 +05:30
34654aae0a : rename component from checkoutcheckou to checkInCheckOut and useSelectedproject to useSelectedProject 2025-09-05 10:53:05 +05:30
2b5fc9aaac added project level feature 2025-09-04 18:06:58 +05:30
1eaf4a080c fixed confirm modal close button 2025-09-04 14:18:57 +05:30
fe3d356c2e Ui changed for document version list 2025-09-04 14:16:15 +05:30
f3913c2824 Change the UI of all components and add stars for all mandatory fields. 2025-09-03 17:19:29 +05:30
e66ce11cd5 changes tage reponse and changed confirm modal format 2025-09-03 16:40:20 +05:30
a8239d5c31 document version list display 10 version at per page 2025-09-03 15:49:12 +05:30
97a32b8f42 display suggestion for tags when create or update documen form 2025-09-03 15:45:50 +05:30
a52cf0bc39 allow to delete document category and type and edit type 2025-09-03 15:16:37 +05:30
e007c0e8da allow to add and update document category inside master 2025-09-03 12:56:39 +05:30
e2de5eba40 added document permissions 2025-09-03 11:52:49 +05:30
fd14328562 enable activating or deactivating existing documents 2025-09-03 11:18:12 +05:30
e8459d3671 convert fileSize to KB before sending request 2025-09-03 11:16:40 +05:30
528d3b756c InActiving documents 2025-09-02 20:28:23 +05:30
11be36b67a login user can be verify documents 2025-09-02 20:00:18 +05:30
ef00f83c44 document can inside open in browser 2025-09-02 19:34:42 +05:30
809f2ef726 dynamicallu show Document Id it required ? or not base document Type 2025-09-02 16:43:04 +05:30
a95e365087 removed static page size of Expense list 2025-09-02 16:42:06 +05:30
2ee9c8ecbd prevent to stay outside if have logged 2025-09-02 16:40:51 +05:30
7eb22bb785 added pagination 2025-09-02 16:40:04 +05:30
cd32f743ce changed segment button radio 2025-09-02 16:39:44 +05:30
acd642c935 display document details and document meta data and added skeleton 2025-09-02 16:39:06 +05:30
06503ac4d3 completd updation of documents 2025-09-01 22:06:13 +05:30
ee1887de8f fixed reduant api calling 2025-09-01 18:51:23 +05:30
2f24d4a7ff initially setup update document 2025-09-01 18:15:30 +05:30
f96a363a57 Merge pull request 'Notes in Project Directory showing global notes instead of project-specific contact notes.' (#358) from Kartik_Bug#974 into Issues_Aug_2W
Reviewed-on: #358
2025-09-01 09:29:07 +00:00
e81a97cd52 Notes in Project Directory showing global notes instead of project-specific contact notes. 2025-09-01 09:29:07 +00:00
f97c75dde7 Merge pull request 'When the employee is in an inactive state, the Edit button will be disabled.' (#359) from Kartik_Bug#972 into Issues_Aug_2W
Reviewed-on: #359
Merged
2025-09-01 09:27:54 +00:00
d25c51db58 When the employee is in an inactive state, the Edit button will be disabled. 2025-09-01 09:27:54 +00:00
29c5d38bef Merge pull request 'Employee Module – Unnecessary space between contact icons and contact number' (#360) from Kartik_Bug#956 into Issues_Aug_2W
Reviewed-on: #360
Merged
2025-09-01 09:26:21 +00:00
b62cbd1a75 Employee Module – Unnecessary space between contact icons and contact number 2025-09-01 09:26:21 +00:00
b1f6306f23 Merge pull request 'Office Number, Domain Name, and Tax ID fields should be nullable but are mandatory.' (#361) from Kartik_Bug#978 into Issues_Aug_2W
Reviewed-on: #361
Merged
2025-09-01 09:25:20 +00:00
3c9dd1595a Office Number, Domain Name, and Tax ID fields should be nullable but are mandatory. 2025-09-01 09:25:20 +00:00
d9456db01e Merge pull request 'Cancel button not closing All fields popup in masters' (#362) from Kartik_Bug#979 into Issues_Aug_2W
Reviewed-on: #362
Merged
2025-09-01 09:23:29 +00:00
79e23fef24 The bottom border of the Master dropdown is not visible. 2025-09-01 09:23:29 +00:00
f569ed635c Cancel button not closing All fields popup in masters 2025-09-01 09:23:29 +00:00
dca4691032 Merge pull request 'The calendar icon should display correctly when we increase the zoom.' (#363) from Kartik_Bug#973 into Issues_Aug_2W
Reviewed-on: #363
Merged
2025-09-01 09:22:42 +00:00
fa878642b6 The calendar icon should display correctly when we increase the zoom. 2025-09-01 09:22:42 +00:00
a1c3af9073 Merge pull request 'Attendance Record Popup Shows Wrong Date Format' (#364) from Kartik_Bug#1024 into Issues_Aug_2W
Reviewed-on: #364
Merged
2025-09-01 09:19:03 +00:00
f433e55a96 Changes in date format in Attendance logs and attendance. 2025-09-01 09:19:03 +00:00
833a54e57a Attendance Record Popup Shows Wrong Date Format 2025-09-01 09:19:03 +00:00
8bce930028 Merge pull request 'Expense Module – Default date range filter hides all records on page load' (#365) from Kartik_Bug#955 into Issues_Aug_2W
Reviewed-on: #365
Merged
2025-09-01 09:11:17 +00:00
047d0241bd Expense Module – Default date range filter hides all records on page load 2025-09-01 09:11:17 +00:00
e71debe932 Merge pull request 'The Tenant filter does not close when navigating to another component.' (#366) from Kartik_Bug#1028 into Issues_Aug_2W
Reviewed-on: #366
Merged
2025-09-01 09:10:38 +00:00
1a77cc809a The Tenant filter does not close when navigating to another component. 2025-09-01 09:10:38 +00:00
73c6ccc0d6 Merge pull request 'Filter Applied Without Clicking on "Apply" Button in Daily Progress Report' (#367) from Kartik_Bug#1037 into Issues_Aug_2W
Reviewed-on: #367
Merged
2025-09-01 08:56:20 +00:00
fc5f47536f Filter Applied Without Clicking on "Apply" Button in Daily Progress Report 2025-09-01 08:56:20 +00:00
aaa97532a4 Merge pull request 'Pagination Displayed Even When Records Are greater Than 20' (#368) from Kartik_Bug#1041 into Issues_Aug_2W
Reviewed-on: #368
Merged
2025-09-01 06:46:37 +00:00
f847e5f07f Remove hardcoded 20 and add ITEMS_PER_PAGE 2025-09-01 12:11:55 +05:30
8c465db8d4 Pagination Displayed Even When Records Are greater Than 20 2025-09-01 10:49:40 +05:30
518928e439 adedd fillter sidepanel and handle filter object on api level 2025-08-30 17:31:36 +05:30
cec16ded3e added skeleton for document list 2025-08-29 20:52:36 +05:30
b70d03af8a Search , Refresh featured added and initial setup for filter 2025-08-29 20:34:37 +05:30
daf7f11310 Upload new document api integrated and use can upload document at employee 2025-08-29 16:05:54 +05:30
b93eaf6b95 initial setuo new document 2025-08-28 20:22:17 +05:30
d42790628c successfully master fetched of documentType and documentCategor 2025-08-28 15:19:15 +05:30
1c9df57c74 Merge pull request 'MasterModalRefactor : Changed Master Modal' (#357) from MasterModalRefactor into Document_Manag
Reviewed-on: #357
Merged
2025-08-28 06:48:43 +00:00
d4804e4c3f updated Master modal 2025-08-28 06:48:43 +00:00
386b61d978 fixed overridding of backgound color of app 2025-08-28 12:01:47 +05:30
14fba75d19 setup routes 2025-08-28 11:31:01 +05:30
65b90bc9ac initial setup document page 2025-08-28 11:17:54 +05:30
9dddba4e30 Merge pull request 'Tenant_Manag : Feature #901 : Tenant Management' (#334) from Tenant_Manag into main
Reviewed-on: #334
Merged
2025-08-26 10:05:29 +00:00
d52c4e6ec0 rename of menu item nane 2025-08-26 14:53:06 +05:30
7268971275 after form submit or failed form will be reset 2025-08-26 12:26:40 +05:30
1ad9b782a4 added lodering status when making request for demo 2025-08-26 12:24:56 +05:30
5dfaa6d44c render properly after login 2025-08-26 12:07:56 +05:30
4b988109f9 set image path at deployed state 2025-08-26 11:59:45 +05:30
83c2f7fb0c set legal-info page css 2025-08-26 11:41:07 +05:30
ead8901d1e set logo position according screen size 2025-08-26 11:19:46 +05:30
8b2529013f fixed layout of registration page 2025-08-26 09:51:57 +05:30
bbd137a334 fixed login , forgot page 2025-08-25 20:31:53 +05:30
8b11bd952d Merge branch 'Landing_pages' of https://git.marcoaiot.com/admin/marco.pms.web into Landing_pages 2025-08-25 20:20:21 +05:30
d729054065 added public route page 2025-08-25 20:15:51 +05:30
585199a2a1 fixed layout properly of login , reset, forgot, login-with-otp and forgot -pages 2025-08-25 20:15:51 +05:30
ac0d17ca6d implement landing page UI 2025-08-25 20:15:26 +05:30
61fb797db4 change label 2025-08-25 20:14:48 +05:30
86187eaf8a changes in otp page. 2025-08-25 20:13:56 +05:30
67bf293bef add landing page 2025-08-25 20:13:56 +05:30
25945366d6 change the design of login page, otp page and request for demo page. 2025-08-25 20:13:33 +05:30
176801c014 fixed frquency range to 0 to 3 2025-08-25 14:54:22 +05:30
275d984ecc fixed cancel button on edit tenant form 2025-08-25 12:57:47 +05:30
ed1e0cd428 updated bill ans plan page 2025-08-25 12:46:48 +05:30
207c2820bf update Ui 2025-08-25 11:58:50 +05:30
fe87ebc859 added valiadtion for Team Size whenever going to upgrade or purchase plan 2025-08-25 11:30:42 +05:30
84837bbe45 removed bg color 2025-08-25 11:26:58 +05:30
3e2d601739 removed unused and added child id 2025-08-24 16:11:20 +05:30
2377a1b869 removed unused code 2025-08-24 16:10:25 +05:30
e1ecaf7a31 added default range set or not flag 2025-08-24 16:09:51 +05:30
33c8b690ef added dynamically master menu 2025-08-24 14:56:50 +05:30
75c81ecc0c added regular date formate and prevent to call api without param. 2025-08-24 14:26:32 +05:30
3fa6e19114 removed console 2025-08-24 13:11:00 +05:30
1aa6016a01 changed appmenu url 2025-08-23 17:55:39 +05:30
b00fc04a82 Merge pull request 'AppMenu : Dynamic Menus' (#356) from AppMenu into Tenant_Manag
Reviewed-on: #356
Merged
2025-08-23 11:57:43 +00:00
d1ff7321e9 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Tenant_Manag 2025-08-23 17:25:50 +05:30
fc4715cdd8 Merge branch 'AppMenu' of https://git.marcoaiot.com/admin/marco.pms.web into AppMenu 2025-08-23 17:08:12 +05:30
50ec338d8a handle run time error 2025-08-23 17:06:38 +05:30
f00e3a1a24 initial setup sidebar menus from backend 2025-08-23 17:06:38 +05:30
18390e9368 Merge pull request 'Issues_Aug_1W' (#355) from Issues_Aug_1W into main
Reviewed-on: #355
merged
2025-08-23 11:09:24 +00:00
380effd2f0 changed project source 2025-08-23 14:58:22 +05:30
a01e2deee7 Changes in Regularizationaction. 2025-08-23 13:19:41 +05:30
57eb2ab405 Changes in projectId for attendance, employee.
Dropdown of project has been hide in expense.
2025-08-23 12:55:35 +05:30
a76cbe8615 handle error msg 2025-08-23 11:21:02 +05:30
006a68f2fe added new loader 2025-08-23 10:33:26 +05:30
49cf94546a changed position of autorenew input field 2025-08-23 10:23:05 +05:30
0cc65fdcfa Merge pull request 'Display Only "Re-activate" Button for Inactive Employees in Action Column' (#348) from Kartik_Bug#944 into Issues_Aug_1W
Reviewed-on: #348
Merged
2025-08-23 04:37:20 +00:00
f1bc6bd57d Updation in Employee Suspend and Reactivate employee. 2025-08-23 04:37:20 +00:00
00b73b3d34 Display Only "Re-activate" Button for Inactive Employees in Action Column 2025-08-23 04:37:20 +00:00
d542c26a17 Merge pull request 'Filter Popup from Expense Module Persists When Switching to Attendance Module' (#349) from Kartik_Bug#906 into Issues_Aug_1W
Reviewed-on: #349
Merged
2025-08-23 04:36:58 +00:00
6cbab5949c Filter Popup from Expense Module Persists When Switching to Attendance Module 2025-08-23 04:36:58 +00:00
6fe6d0ea40 Merge pull request 'Selected Project Resets to "All Projects" After Page Refresh in Daily Task Planning' (#350) from Kartik_Bug#920 into Issues_Aug_1W
Reviewed-on: #350
Merged
2025-08-23 04:36:31 +00:00
9f9bfbe922 Selected Project Resets to "All Projects" After Page Refresh in Daily Task Planning 2025-08-23 04:36:31 +00:00
52b0b9b2da Merge pull request 'Implementing a search functionality within the Attendance component to enable search across all tabs.' (#351) from Kartik_Enhancement#948 into Issues_Aug_1W
Reviewed-on: #351
Merged
2025-08-23 04:35:39 +00:00
9272783388 Implementing a search functionality within the Attendance component to enable search across all tabs. 2025-08-23 04:35:39 +00:00
fd5bd1966d Merge pull request 'Missing Employee Search Box in Assign Task Popup' (#352) from Kartik_Bug#915 into Issues_Aug_1W
Reviewed-on: #352
merged
2025-08-23 04:35:07 +00:00
b2f5213f7d restric to enter aph, symbol character 2025-08-22 15:48:43 +05:30
4ab33fd5fd added self Tenant Profile 2025-08-22 15:16:51 +05:30
735e766215 removed max user label from subscription card 2025-08-22 11:56:53 +05:30
1bf7ccbaad Missing Employee Search Box in Assign Task Popup 2025-08-20 16:28:15 +05:30
4a98c3d5e8 se default freq. 3 2025-08-19 13:39:03 +05:30
7808a39aa0 prevent to view list of tenant if haven't permission. 2025-08-19 12:06:52 +05:30
b645aec55f sorting plans history using date 2025-08-19 11:50:05 +05:30
56e4c86c7f handle empty field showing 2025-08-19 11:19:12 +05:30
5a90088a28 added tenant releated permission id's 2025-08-19 10:48:46 +05:30
e7a0d41278 restrict firstName and lastName fields to accept only alphabets 2025-08-19 10:11:47 +05:30
00904ffa86 update contact number field to support valid and also international format 2025-08-19 09:54:58 +05:30
19d7e35d8a corrected spelling mistake in "Quarterly" plan type (Bills & Plan History 2025-08-18 23:38:07 +05:30
0a82e0af42 handle run time error 2025-08-18 23:27:52 +05:30
0df19cb78e initial setup sidebar menus from backend 2025-08-18 18:21:16 +05:30
4349f19c30 Merge pull request 'Border line missing in multiple fields on Add New Employee form' (#344) from Kartik_Bug#932 into Issues_Aug_1W
Reviewed-on: #344
2025-08-18 11:08:37 +00:00
3bdd7218bb Merge pull request 'IN Create New Expense popup change the label TransactionId to Transaction ID.' (#343) from Kartik_Bug#895 into Issues_Aug_1W
Reviewed-on: #343
2025-08-18 11:07:29 +00:00
4a7fb67cd4 Merge pull request 'Inconsistent Filter Icon in Daily Progress Report section.' (#342) from Kartik_Bug#919 into Issues_Aug_1W
Reviewed-on: #342
2025-08-18 11:06:43 +00:00
30092e51bf Merge pull request 'Username & Password field should auto-trim spaces in Login page.' (#341) from Kartik_Bug#929 into Issues_Aug_1W
Reviewed-on: #341
2025-08-18 11:05:29 +00:00
db5c8fbe48 Merge pull request 'In Contact View, empty Description and Notes section should be hidden and its needs to be fixed the UI of this pop-up' (#340) from Kartik_Bug#886 into Issues_Aug_1W
Reviewed-on: #340
2025-08-18 11:03:53 +00:00
8c5c802f72 Merge pull request 'In AttendanceLog When we select a date range picker then api is not call after updation now its working properly.' (#346) from Kartik_Bug#907 into Issues_Aug_1W
Reviewed-on: #346
2025-08-18 11:02:25 +00:00
b45a4eb553 In AttendanceLog When we select a date range picker then api is not call after updation now its working properly. 2025-08-18 16:11:02 +05:30
2208cc66b1 Border line missing in multiple fields on Add New Employee form 2025-08-18 13:27:14 +05:30
6d504bf16b IN Create New Expense popup change the label TransactionId to Transaction ID. 2025-08-18 12:38:24 +05:30
f25289f7fa adde permission keys 2025-08-18 12:15:08 +05:30
9720206150 Inconsistent Filter Icon in Daily Progress Report section. 2025-08-18 12:07:05 +05:30
438ee4417f Username & Password field should auto-trim spaces in Login page. 2025-08-18 11:46:38 +05:30
2b5df10137 In Contact View, empty Description and Notes section should be hidden and its needs to be fixed the UI of this pop-up 2025-08-18 11:29:38 +05:30
7283140a3a Merge branch 'Issues_Aug_1W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_Aug_1W 2025-08-18 10:23:03 +05:30
d8f5485bec missing changes from PR : Add Search Bar in Assigned Employee Popup under Project > Teams #324
#324
2025-08-18 10:22:32 +05:30
967d176a09 change table header Official Designation to Designation 2025-08-18 10:22:32 +05:30
b97ac8e680 Special Characters Shoulsd not Allowed in Name Fields 2025-08-18 10:22:32 +05:30
745938a11f Unnecessary Calendar Icon Displayed in Attandance Employee Profile Page 2025-08-18 10:22:32 +05:30
0bd8ed1035 UI Enhancement Request – Highlight Key Employee Profile Information 2025-08-18 10:22:31 +05:30
0722f52619 Deleted Employee Still Visible Until Manual Refresh. 2025-08-18 10:22:31 +05:30
ab7de32744 Removing extra space in list view. 2025-08-18 10:21:47 +05:30
9b0d19f961 Contact list grid columns not displayed when no contact is available 2025-08-18 10:21:46 +05:30
e62663af69 Change the icons on AttendanceChart.jsx 2025-08-18 10:20:08 +05:30
a602bebc5e implement landing page UI 2025-08-16 17:09:20 +05:30
1e9db47144 missing changes from PR : Add Search Bar in Assigned Employee Popup under Project > Teams #324
#324
2025-08-16 13:34:54 +05:30
dd0c7e95bf change table header Official Designation to Designation 2025-08-16 12:59:07 +05:30
ee2c973d01 change label 2025-08-16 12:57:47 +05:30
a862500fd7 Merge pull request 'Special Characters Shoulsd not Allowed in Name Fields' (#339) from Kartik_Bug#910 into Issues_Aug_1W
Reviewed-on: #339
2025-08-16 07:09:45 +00:00
d5f6dbbfae Merge pull request 'Unnecessary Calendar Icon Displayed in Attandance Employee Profile Page' (#337) from Kartik_Bug#908 into Issues_Aug_1W
Reviewed-on: #337
2025-08-16 07:04:16 +00:00
3fdbae5cf5 Merge pull request 'UI Enhancement Request – Highlight Key Employee Profile Information' (#336) from Kartik_Bug#891 into Issues_Aug_1W
Reviewed-on: #336
2025-08-16 07:00:37 +00:00
1305ac855d Merge branch 'Kartik_Bug#798' into Issues_Aug_1W
# Conflicts:
#	src/hooks/useEmployees.js
2025-08-16 12:27:21 +05:30
9366a131e6 handle subscription tab according to tenant existent 2025-08-16 12:23:10 +05:30
30e9f49eb1 corrected Congratulation import path in TenantForm.jsx to match file name 2025-08-16 10:22:43 +05:30
340919c6fb corrected Profile import path in TenantDetails.jsx to match case-sensitive file name 2025-08-16 10:17:29 +05:30
a537da6eff Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Tenant_Manag 2025-08-16 10:12:47 +05:30
241217e7cc changed folder name for Tenant 2025-08-16 10:11:19 +05:30
4af5ba8a6d added upgraded subscription functionality 2025-08-16 09:43:11 +05:30
6e300389e3 added table for history plans 2025-08-14 18:34:06 +05:30
0acd733710 handle upgrad plan 2025-08-14 17:45:01 +05:30
b9bd4e7e18 removed extra validation errors 2025-08-14 17:40:29 +05:30
051fc3903d Special Characters Shoulsd not Allowed in Name Fields 2025-08-14 13:42:10 +05:30
841ffdf133 Unnecessary Calendar Icon Displayed in Attandance Employee Profile Page 2025-08-14 12:46:14 +05:30
cbfce2e4e2 UI Enhancement Request – Highlight Key Employee Profile Information 2025-08-14 11:10:25 +05:30
9669e725a4 Merge branch 'Issues_Aug_1W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_Aug_1W 2025-08-14 10:14:04 +05:30
8df47c1530 In Masters cancel button now cancel or close the form as excepted. 2025-08-14 10:13:17 +05:30
ef06c69a3b When the data is not loaded then the filter show "No Filter found" message. 2025-08-14 10:13:16 +05:30
5940f86815 Show Single "No Bucket Found" Message and Improve Popup Design 2025-08-14 10:13:16 +05:30
cae6d52a33 Removing extra space in list view. 2025-08-14 10:13:16 +05:30
ad9295a6b3 Contact list grid columns not displayed when no contact is available 2025-08-14 10:13:16 +05:30
af69f3f97b Font size and button styling mismatch in Contact Profile (Web Directory) 2025-08-14 10:13:16 +05:30
31f152db65 added updated functionality 2025-08-13 17:09:18 +05:30
1772a2fcd1 Merge pull request 'profile_page : Modify Employee Profile Page' (#335) from profile_page into main
Reviewed-on: #335
merged
2025-08-13 04:44:31 +00:00
af544861d2 Merge branch 'profile_page' of https://git.marcoaiot.com/admin/marco.pms.web into profile_page 2025-08-13 10:13:25 +05:30
f387a56d7b optimized EmpDashBoard , EmployeeNav and EmployeeProfile 2025-08-13 10:13:15 +05:30
8e12528e3a Add api to fetch employee project allocation 2025-08-13 10:03:44 +05:30
874f123d4c Merge branch 'profile_page' of https://git.marcoaiot.com/admin/marco.pms.web into profile_page 2025-08-12 17:48:47 +05:30
926594c0a5 optimized EmpDashBoard , EmployeeNav and EmployeeProfile 2025-08-12 17:48:36 +05:30
fb2dcf073c Add api to fetch employee project allocation 2025-08-12 17:44:04 +05:30
f946c38aae Created new layout for employee profile page 2025-08-12 17:39:09 +05:30
c211f407e8 Merge branch 'profile_page' of https://git.marcoaiot.com/admin/marco.pms.web into profile_page 2025-08-12 16:27:58 +05:30
8117e60bff optimized EmpDashBoard , EmployeeNav and EmployeeProfile 2025-08-12 16:27:26 +05:30
80ede060cb fixed column size base dvice size 2025-08-12 16:27:26 +05:30
e39a69ab8b handle error due to data loading 2025-08-12 16:27:25 +05:30
fa3ff291c8 display employee tasks in emp profile 2025-08-12 16:27:25 +05:30
beefe6396c - Add date format hook
- add Ui for Activities
2025-08-12 16:27:25 +05:30
210d16c765 Handle null variable 2025-08-12 16:24:59 +05:30
cb23a5b051 Add api to fetch employee project allocation 2025-08-12 16:24:59 +05:30
f52b68dc46 ui improvements - dashbord attendance report toggle icons change 2025-08-12 16:24:59 +05:30
ab013c29f0 change favicon 2025-08-12 16:24:59 +05:30
c350574171 - Add project list on emplyee profile
- Add image as per gender
2025-08-12 16:24:59 +05:30
90d8b82c69 - Remove consoe log
- Handle projects dropdown hidden on profile page
2025-08-12 16:24:59 +05:30
1c0a6d8a89 Created new layout for employee profile page 2025-08-12 16:24:59 +05:30
16f70067e7 optimized EmpDashBoard , EmployeeNav and EmployeeProfile 2025-08-12 16:22:34 +05:30
bda0fe636e Merge pull request 'In Masters cancel button now cancel or close the form as excepted.' (#327) from Kartik_Bug#869 into Issues_Aug_1W
Reviewed-on: #327
Merged
2025-08-12 09:43:53 +00:00
426c9c07e2 In Masters cancel button now cancel or close the form as excepted. 2025-08-12 09:43:53 +00:00
85b8abbea3 Merge pull request 'When the data is not loaded then the filter show "No Filter found" message.' (#329) from Kartik_Bug#889 into Issues_Aug_1W
Reviewed-on: #329
Merged
2025-08-12 09:42:32 +00:00
9551152eeb When the data is not loaded then the filter show "No Filter found" message. 2025-08-12 09:42:32 +00:00
9ee309bf48 Merge pull request 'Show Single "No Bucket Found" Message and Improve Popup Design' (#330) from Kartik_Bug#884 into Issues_Aug_1W
Reviewed-on: #330
Merged
2025-08-12 09:41:28 +00:00
3d2c057428 Show Single "No Bucket Found" Message and Improve Popup Design 2025-08-12 09:41:28 +00:00
2943d9d67a Merge pull request 'Contact list grid columns not displayed when no contact is available' (#331) from Kartik_Bug#888 into Issues_Aug_1W
Reviewed-on: #331
Merged
2025-08-12 09:40:27 +00:00
e9eb378b74 Removing extra space in list view. 2025-08-12 09:40:27 +00:00
310281db0c Contact list grid columns not displayed when no contact is available 2025-08-12 09:40:27 +00:00
b9c486fd4e Merge pull request 'Font size and button styling mismatch in Contact Profile (Web Directory)' (#332) from Kartik_Bug#887 into Issues_Aug_1W
Reviewed-on: #332
Merged
2025-08-12 09:36:20 +00:00
ffa622b203 Font size and button styling mismatch in Contact Profile (Web Directory) 2025-08-12 09:36:20 +00:00
6096e52684 Merge pull request 'Change the icons on AttendanceChart.jsx' (#333) from Kartik_Bug#862 into Issues_Aug_1W
Reviewed-on: #333
Merged
2025-08-12 09:30:04 +00:00
f581b0e311 resolved filter issues 2025-08-12 14:53:48 +05:30
c231f12439 Change the icons on AttendanceChart.jsx 2025-08-12 12:26:17 +05:30
56b5633c51 handle error if features missing 2025-08-12 12:13:04 +05:30
e466fd27be prevent to display description if data not have 2025-08-12 11:13:16 +05:30
d25cc3531e added Tenant Profile 2025-08-11 20:24:04 +05:30
2d7adbac14 initial setup for tenant profile 2025-08-09 17:36:14 +05:30
25f5ff27b1 added skeleton and refresh button 2025-08-09 13:01:32 +05:30
4bff065153 added pagination and partially added filter 2025-08-09 10:30:06 +05:30
fb3b55c694 added spinkit loader and integrated inside projectDeatils and InfraPlanning 2025-08-08 14:11:22 +05:30
412c2118c9 Merge branch 'Tenant_Manag' of https://git.marcoaiot.com/admin/marco.pms.web into Tenant_Manag 2025-08-08 11:27:20 +05:30
4ff01d0e60 success fully created tenant with subscription 2025-08-08 11:26:17 +05:30
fbc53e9ea1 integrated tenant creation and addsubscription 2025-08-08 11:26:16 +05:30
34b429c28c tenant and subscript form full setup 2025-08-08 11:25:18 +05:30
1dc038c965 tenant creating layout setup properly 2025-08-08 11:21:46 +05:30
12cbf576e1 create new tenant app 2025-08-08 11:21:46 +05:30
5e28f9e372 initially setup tenant manag. setup wizard-form and properly manage data. handle two sperate form with on wizard 2025-08-08 11:21:46 +05:30
f093b5f532 fixed column size base dvice size 2025-08-08 10:40:09 +05:30
edf1bb9601 handle error due to data loading 2025-08-08 10:39:00 +05:30
f9e9e2b326 Merge pull request 'Expense_Manangement_Feature' (#328) from Expense_Manangement_Feature into main
Reviewed-on: #328
2025-08-07 12:31:37 +00:00
6113bc66c6 Merge branch 'Expense_Manangement_Feature' of https://git.marcoaiot.com/admin/marco.pms.web into Expense_Manangement_Feature 2025-08-07 17:57:55 +05:30
acfa254718 correct date picker 2025-08-07 17:57:46 +05:30
6a3f9e57d9 added proper date 2025-08-07 17:57:22 +05:30
952dfefddc resolved taking incorrect date range 2025-08-07 17:57:22 +05:30
7333869c2c Merge branch 'Expense_Manangement_Feature' of https://git.marcoaiot.com/admin/marco.pms.web into Expense_Manangement_Feature 2025-08-07 17:47:57 +05:30
4167fd0a4d added margin for reimburment sectin 2025-08-07 17:47:45 +05:30
11ef1932b4 view expense if have any one permission of - viewself, upload, viewALl 2025-08-07 17:47:45 +05:30
bbe9c829f3 correct date picker 2025-08-07 17:47:44 +05:30
1a77c26d6b added proper date 2025-08-07 17:47:44 +05:30
597baede57 resolved taking incorrect date range 2025-08-07 17:47:44 +05:30
27bbdae433 added margin for reimburment sectin 2025-08-07 17:38:01 +05:30
248254ba3b view expense if have any one permission of - viewself, upload, viewALl 2025-08-07 17:36:25 +05:30
cb38f9bf98 Merge branch 'Expense_Manangement_Feature' of https://git.marcoaiot.com/admin/marco.pms.web into Expense_Manangement_Feature 2025-08-07 17:18:41 +05:30
4e059e13c7 correct date picker 2025-08-07 17:18:15 +05:30
afd147c7e3 handle expense view permission 2025-08-07 17:18:15 +05:30
da12099ba1 added proper date 2025-08-07 17:18:15 +05:30
7d7549e902 resolved taking incorrect date range 2025-08-07 17:18:15 +05:30
5188db2c8f handle condition if project haven't selected 2025-08-07 17:18:15 +05:30
69f3516656 handler run time error 2025-08-07 17:18:15 +05:30
eb17ec208c mis out remove expense id from action function 2025-08-07 17:18:14 +05:30
a0762c3f0f correct date picker 2025-08-07 16:55:52 +05:30
11b1cf22b5 handle expense view permission 2025-08-07 16:09:47 +05:30
f3e60bf8bc added proper date 2025-08-07 15:50:33 +05:30
6963e8ca8c resolved taking incorrect date range 2025-08-07 15:24:13 +05:30
466f362221 handle condition if project haven't selected 2025-08-07 14:39:55 +05:30
bd5c2206dd handler run time error 2025-08-07 14:27:19 +05:30
eab4dd94e9 display employee tasks in emp profile 2025-08-07 12:57:22 +05:30
ed5ff3be4b success fully created tenant with subscription 2025-08-07 11:26:23 +05:30
04580a3f28 integrated tenant creation and addsubscription 2025-08-07 01:10:59 +05:30
6f2ddacfd1 tenant and subscript form full setup 2025-08-06 19:42:40 +05:30
6883d87bdc - Add date format hook
- add Ui for Activities
2025-08-06 18:32:43 +05:30
b85b812981 Handle null variable 2025-08-06 17:07:22 +05:30
eb735f443d Add api to fetch employee project allocation 2025-08-06 17:01:40 +05:30
9112f9f673 mis out remove expense id from action function 2025-08-06 16:56:45 +05:30
199d7ab8ff Merge pull request 'Highlight Separator Line Between Expense Details and History Section adding border-2 for the thikness of the line.' (#326) from Expense_Bugs into Expense_Manangement_Feature
Reviewed-on: #326
merged
2025-08-06 09:41:42 +00:00
0e8691f6d0 ui improvements - dashbord attendance report toggle icons change 2025-08-06 15:03:46 +05:30
bc3b543015 Resloved the delay in expense action. 2025-08-06 14:39:36 +05:30
e4058a9cb4 Insufficient Bottom Spacing in All Dropdown in Expenses Filter 2025-08-06 12:42:34 +05:30
381019dcaa Missing Bottom Border in Masters Dropdown Menu. 2025-08-06 12:38:03 +05:30
495f38db99 change favicon 2025-08-06 12:33:32 +05:30
a208bb9a17 Highlight Separator Line Between Expense Details and History Section adding border-2 for the thikness of the line. 2025-08-06 11:58:40 +05:30
bae7cb4890 - Add project list on emplyee profile
- Add image as per gender
2025-08-06 11:55:12 +05:30
195af8317a set padding horizontically for Emp table 2025-08-06 11:33:19 +05:30
e249c1f64d sorted group by options 2025-08-06 11:32:47 +05:30
db65526f6f added GST number filed 2025-08-06 11:14:48 +05:30
3d7a8a1c94 attachement display horizontically 2025-08-06 10:22:47 +05:30
a87d3fb20a changed column paidby to submitted by 2025-08-06 01:16:13 +05:30
1d2cb7b1f7 added expense path in side bar menu 2025-08-06 00:38:29 +05:30
0c8c954b9c created skeleton css file 2025-08-06 00:17:13 +05:30
627a3eb6e5 added rigth side bar tiggle in context 2025-08-06 00:13:35 +05:30
4d32d1de16 copy expense feature from Refactore_Expense 2025-08-06 00:04:26 +05:30
1bafecf0ff created new custome pagination component 2025-08-06 00:03:11 +05:30
f430e4dc46 created expense masters pages 2025-08-06 00:02:36 +05:30
317f99e2a4 added new endpoint for employee list that return basic info of employee 2025-08-06 00:01:25 +05:30
71376c7706 handle modals of expense 2025-08-06 00:00:43 +05:30
ba4cf6ad86 set up right side bar for filter globally 2025-08-05 23:59:27 +05:30
d580ca0a15 added expense releated master - Expense Type, status and paymentModa 2025-08-05 23:58:31 +05:30
b9a75efd5c created Expense route 2025-08-05 23:57:30 +05:30
549f11818b added Expense key 2025-08-05 23:57:09 +05:30
a8d5b74157 created app utils 2025-08-05 23:56:52 +05:30
eac8bd685c handle properly refresh token calls 2025-08-05 23:56:07 +05:30
8a77a609c6 added Expense releated permissions id 2025-08-05 23:55:05 +05:30
cb009c77a4 customize date picker, flexible can set max and min date and also handle react-hook-form 2025-08-05 23:54:22 +05:30
c85d21ad0c set data format - dd-mm-yy 2025-08-05 23:53:06 +05:30
c1d3b831cc tenant creating layout setup properly 2025-08-05 19:10:29 +05:30
dd81d873f1 - Remove consoe log
- Handle projects dropdown hidden on profile page
2025-08-05 19:00:59 +05:30
e76284598e Created new layout for employee profile page 2025-08-05 18:31:59 +05:30
918a5ee9be create new tenant app 2025-08-05 14:23:30 +05:30
4d66ebeb50 changes in otp page. 2025-08-05 11:48:10 +05:30
d48b4c4ef3 initially setup tenant manag. setup wizard-form and properly manage data. handle two sperate form with on wizard 2025-08-05 02:13:38 +05:30
38332c0a0d add landing page 2025-08-04 19:08:24 +05:30
7ad65ece78 Merge pull request 'change the design of login page, otp page and request for demo page.' (#323) from Kartik_Task857 into Landing_pages
Reviewed-on: #323
2025-08-04 11:57:07 +00:00
34cf3a0913 change the design of login page, otp page and request for demo page. 2025-08-04 14:37:34 +05:30
5a209ae24e Merge pull request 'HofixedIssues_July_4W' (#322) from HofixedIssues_July_4W into main
Reviewed-on: #322
Merged
2025-08-02 16:17:38 +00:00
99418e4870 prevent to open windo altert when geolocation not allow 2025-08-02 19:04:14 +05:30
aece14d013 added callBack hook 2025-08-02 17:22:49 +05:30
03fb762f24 prevent to select checkout before check in time 2025-08-02 17:12:22 +05:30
543b1bf94b revert changes fo July_4W 2025-08-02 17:01:17 +05:30
01ce4c92b6 revert changed from July_4W 2025-08-02 16:43:57 +05:30
74f532799a Merge pull request 'Issues_July_4W' (#316) from Issues_July_4W into main
Reviewed-on: #316
THis branch is deployed on prodution
2025-07-31 05:53:28 +00:00
b0e359e428 Change in Team and InfraStructure component when select a project. 2025-07-30 17:32:49 +05:30
43ed77cfc6 Deleted Employee Still Visible Until Manual Refresh. 2025-07-30 16:56:27 +05:30
b410ec71cc All Projects is shown on Unknown Projects Place. 2025-07-30 16:36:30 +05:30
c3835a3856 Some changes in Header and aboutproject component. 2025-07-30 15:34:04 +05:30
811392448d Merge pull request 'When a project is selected, the last selected project will be displayed.' (#313) from Kartik_Task_#832_ProjectSelection into Issues_July_4W
Reviewed-on: #313
merged
2025-07-30 09:26:35 +00:00
5399fa1f17 When a project is selected, the last selected project will be displayed. 2025-07-30 14:39:43 +05:30
4512c11a60 Merge pull request 'Modify Application role popup to look better' (#309) from Kartik_Bug#793 into Issues_July_4W
Reviewed-on: #309
Merged
2025-07-30 09:04:05 +00:00
14be5aadda UI Changes in Aboutproject.jsx. 2025-07-30 09:04:05 +00:00
fa3ccd28fa Responsive grid changes in Create Role and EditRole. 2025-07-30 09:04:05 +00:00
4d4037ed71 Changes in Application Role popup. 2025-07-30 09:04:05 +00:00
91fabf929c Modify Application role popup to look better 2025-07-30 09:04:05 +00:00
95bfacf5f1 Merge pull request 'Hide Project Dropdown and All Projects Data for Users Assigned to Only One Project.' (#306) from Kartik_Bug#797 into Issues_July_4W
Reviewed-on: #306
Merged
2025-07-30 07:54:06 +00:00
76e290fe79 Hide Project Dropdown and All Projects Data for Users Assigned to Only One Project. 2025-07-30 07:54:06 +00:00
a1682c8a62 Merge pull request 'In directory List view when only single email and phone number in list view but user can add multiple phone number and email ids.' (#307) from Kartik_Enhancement#807 into Issues_July_4W
Reviewed-on: #307
Merged
2025-07-29 13:44:47 +00:00
ac8815d674 In directory List view when only single email and phone number in list view but user can add multiple phone number and email ids. 2025-07-29 13:44:47 +00:00
697c9acfa6 Merge pull request 'Date Format Not Consistent – Should Always Display DD‑MM‑YYYY' (#308) from Kartik_Bug#717 into Issues_July_4W
Reviewed-on: #308
Merged
2025-07-29 13:33:08 +00:00
a763ec4412 Date Format Not Consistent – Should Always Display DD‑MM‑YYYY 2025-07-29 13:33:08 +00:00
cc05dbad20 In Contact profile popup Include Delete functionality add. 2025-07-29 16:23:19 +05:30
528d02a703 Changes in Directory card view design. 2025-07-28 13:21:20 +05:30
66f2d4bff6 In Project List page change Filter icon. 2025-07-28 13:10:55 +05:30
ffb1bd742a Merge pull request 'Project List Dropdown will be remove in Projects.' (#302) from Kartik_ProjectList#628 into Issues_July_4W
Reviewed-on: #302
Merged
2025-07-28 06:02:02 +00:00
f28a1a9d4e Project List Dropdown will be remove in Projects. 2025-07-28 06:02:02 +00:00
8b2aef8a52 All the changes of Search functionality in Attendance page. 2025-07-28 11:21:37 +05:30
254aaf1977 Merge branch 'Issues_July_4W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_4W 2025-07-26 16:55:11 +05:30
bb224ea3e7 Change all filter icon in Directory ,imageGallery and Project List. 2025-07-26 16:50:24 +05:30
536f4d4e3a Directory Implementation in Contact profile popup. 2025-07-26 16:50:24 +05:30
d7986e4af4 Changes in during a merge 2025-07-26 16:50:24 +05:30
527e052786 changes 2025-07-26 16:43:51 +05:30
52ef65cce0 Search input works for both name and job role filtering. Dropdown correctly shows checkboxes and supports multi-selection. Updated icon appears, and filtering updates the employee list as expected. 2025-07-26 16:43:28 +05:30
32434da93f Attendance page search functionality and Attendance Log Page Resets to First Page After Performing Action on Other Pages. 2025-07-26 16:42:26 +05:30
276a2ca9f4 Attendance Log Page Resets to First Page After Performing Action on Other Pages. 2025-07-26 16:39:42 +05:30
aa43dd4540 Changes in AboutProject.jsx file Change Status where "In Active" show like but we want "InActive" 2025-07-26 16:39:16 +05:30
a001875a56 UI changes in Employee Profile and Project Profile. 2025-07-26 16:39:16 +05:30
f565e83413 Adding Search functionality in Assigned Task popup when user search by employee name and jobroles. 2025-07-26 16:38:38 +05:30
55625246ce Adding Search functionality in Assign Task popup when user can search employee by its name and jobroles. 2025-07-26 16:38:38 +05:30
9f1b8f7090 revert f6d3c6b2abf3324205113d83d1c4bd9dcdda4820
revert When user is Assign to single project then dropdown and All Projects is not seen.
2025-07-26 16:38:38 +05:30
c35b7954fc When user is Assign to single project then dropdown and All Projects is not seen. 2025-07-26 16:38:38 +05:30
3848130cde Chnages in Header.js wihile user is assigned to single project. 2025-07-26 16:38:38 +05:30
74c2906527 Removing Console.log. 2025-07-26 16:38:38 +05:30
7535028b44 Project dropdown should only include active ,On Hold and In Progress Projects only show in Projects page. 2025-07-26 16:38:37 +05:30
3925926084 Adding In-built scrollbar in Select Teams dropdown and Employees. 2025-07-26 16:37:52 +05:30
3709346d42 Enhancement implemented in the Attendance component to include search functionality. 2025-07-26 16:35:43 +05:30
eec208db89 Merge pull request 'Change all filter icon in Directory ,imageGallery and Project List.' (#301) from Kartik_Filter_Changes#800 into Issues_July_4W
Reviewed-on: #301
merged
2025-07-26 09:37:03 +00:00
0357596ea3 Change all filter icon in Directory ,imageGallery and Project List. 2025-07-26 09:37:03 +00:00
53628f0bf0 Merge pull request 'Directory Implementation in Contact profile popup.' (#300) from Kartik_Directory_Changes#805 into Issues_July_4W
Reviewed-on: #300
Merged
2025-07-26 09:24:29 +00:00
3be282d99d Directory Implementation in Contact profile popup. 2025-07-26 14:50:55 +05:30
699c349ba5 Changes in during a merge 2025-07-26 13:28:47 +05:30
aa5998bc11 changes 2025-07-26 12:59:12 +05:30
7e5f5807f6 Merge branch 'Issues_July_4W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_4W 2025-07-26 12:56:54 +05:30
75d4ca176d Search input works for both name and job role filtering. Dropdown correctly shows checkboxes and supports multi-selection. Updated icon appears, and filtering updates the employee list as expected. 2025-07-26 12:56:09 +05:30
1f3438e3a9 Attendance page search functionality and Attendance Log Page Resets to First Page After Performing Action on Other Pages. 2025-07-26 12:55:14 +05:30
30b567d020 Attendance Log Page Resets to First Page After Performing Action on Other Pages. 2025-07-26 12:54:09 +05:30
1df2d50aba Changes in AboutProject.jsx file Change Status where "In Active" show like but we want "InActive" 2025-07-26 12:51:44 +05:30
92d3f91950 UI changes in Employee Profile and Project Profile. 2025-07-26 12:51:44 +05:30
ad6937b02e Adding Search functionality in Assigned Task popup when user search by employee name and jobroles. 2025-07-26 12:51:25 +05:30
ac101e1e81 Adding Search functionality in Assign Task popup when user can search employee by its name and jobroles. 2025-07-26 12:50:42 +05:30
f040528821 revert f6d3c6b2abf3324205113d83d1c4bd9dcdda4820
revert When user is Assign to single project then dropdown and All Projects is not seen.
2025-07-26 12:45:15 +05:30
72c9472643 When user is Assign to single project then dropdown and All Projects is not seen. 2025-07-26 12:45:15 +05:30
248f14b8d2 Chnages in Header.js wihile user is assigned to single project. 2025-07-26 12:45:15 +05:30
9b7d808f58 Project dropdown should only include active ,On Hold and In Progress Projects only show in Projects page. 2025-07-26 12:44:53 +05:30
23e484774d Adding In-built scrollbar in Select Teams dropdown and Employees. 2025-07-26 12:43:30 +05:30
ae973bf1a1 Enhancement implemented in the Attendance component to include search functionality. 2025-07-26 12:41:42 +05:30
5956e64492 Merge branch 'Issues_July_4W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_4W 2025-07-26 12:05:42 +05:30
f68f589a5e Search input works for both name and job role filtering. Dropdown correctly shows checkboxes and supports multi-selection. Updated icon appears, and filtering updates the employee list as expected. 2025-07-26 12:04:36 +05:30
1e8c836e4d Attendance page search functionality and Attendance Log Page Resets to First Page After Performing Action on Other Pages. 2025-07-26 12:04:18 +05:30
9afee2934a Attendance Log Page Resets to First Page After Performing Action on Other Pages. 2025-07-26 12:04:18 +05:30
aa550ed030 In Projects = > Select Project = > Teams = > Clicks on particular employee when user click on profile then it will direclty show documents instead of Attendance. 2025-07-26 12:04:18 +05:30
774f287615 Changes in AboutProject.jsx file Change Status where "In Active" show like but we want "InActive" 2025-07-26 12:04:18 +05:30
1d9de3dbca UI changes in Employee Profile and Project Profile. 2025-07-26 12:04:18 +05:30
bccd8a7bdd Adding Search functionality in Assigned Task popup when user search by employee name and jobroles. 2025-07-26 12:04:17 +05:30
7b0cc6cdbe Adding Search functionality in Assign Task popup when user can search employee by its name and jobroles. 2025-07-26 12:04:17 +05:30
464c32c3ba revert f6d3c6b2abf3324205113d83d1c4bd9dcdda4820
revert When user is Assign to single project then dropdown and All Projects is not seen.
2025-07-26 12:04:17 +05:30
18fb3a0f09 When user is Assign to single project then dropdown and All Projects is not seen. 2025-07-26 12:04:17 +05:30
2bc0939d64 Chnages in Header.js wihile user is assigned to single project. 2025-07-26 12:04:17 +05:30
a23220fb66 Removing Console.log. 2025-07-26 12:04:17 +05:30
6ce2860457 Project dropdown should only include active ,On Hold and In Progress Projects only show in Projects page. 2025-07-26 12:04:17 +05:30
3bd2a17c97 Adding In-built scrollbar in Select Teams dropdown and Employees. 2025-07-26 12:04:17 +05:30
cdcc9b90e4 Enhancement implemented in the Attendance component to include search functionality. 2025-07-26 12:04:16 +05:30
d8f892e9f4 Added new field in contact create and update form 2025-07-26 12:03:38 +05:30
587029a766 Changes in Employee list and Update and Create pupup of employee change "Role" to "Official designation". 2025-07-26 12:03:38 +05:30
2d1cddb2e0 At the time of Regularize status code 400 were shown now solved we add error message in popup "Checkout time must be later than check-in time". 2025-07-26 12:03:38 +05:30
a02c72859f Blue Highlight Under “Contacts” Tab Disappears When Switching View now its appear. 2025-07-26 12:02:32 +05:30
d3f21f33b6 added background color property for table row - 'tr-group'- that grouping entities 2025-07-25 18:17:18 +05:30
f209b7cb86 Merge pull request 'Search input works for both name and job role filtering. Dropdown correctly shows checkboxes and supports multi-selection. Updated icon appears, and filtering updates the employee list as expected.' (#291) from Kartik_Task#808 into Issues_July_4W
Reviewed-on: #291
2025-07-25 09:45:43 +00:00
c2fe727bec Merge pull request 'Attendance Log Page Resets to First Page After Performing Action on Other Pages.' (#288) from Kartik_Bug#757 into Issues_July_4W
Reviewed-on: #288
2025-07-25 09:39:48 +00:00
0cb661687a Search input works for both name and job role filtering. Dropdown correctly shows checkboxes and supports multi-selection. Updated icon appears, and filtering updates the employee list as expected. 2025-07-25 11:52:30 +05:30
85bdc270ac Attendance page search functionality and Attendance Log Page Resets to First Page After Performing Action on Other Pages. 2025-07-24 17:40:03 +05:30
678e6bccf6 Merge branch 'Kartik_Bug#757' of https://git.marcoaiot.com/admin/marco.pms.web into Kartik_Bug#757 2025-07-24 17:10:25 +05:30
4f64a23089 Attendance Log Page Resets to First Page After Performing Action on Other Pages. 2025-07-24 17:10:22 +05:30
da434ff649 Merge pull request 'In Projects = > Select Project = > Teams = > Clicks on particular employee when user click on profile then it will direclty show documents instead of Attendance.' (#287) from Kartik_Bug#542 into Issues_July_4W
Reviewed-on: #287
2025-07-24 10:41:55 +00:00
3de7ce30c4 Merge pull request 'Kartik_Bug#787 UI correction in Project Profile and Employee profile page.' (#285) from Kartik_Bug#787 into Issues_July_4W
Reviewed-on: #285
2025-07-24 10:38:48 +00:00
1e509501da Merge branch 'Kartik_Bug#799' into Issues_July_4W
# Conflicts:
#	src/components/Project/AssignTask.jsx
2025-07-24 16:04:30 +05:30
ba1864a9ff Merge pull request 'Project dropdown should only include active ,On Hold and In Progress Projects only show in Projects page.' (#281) from Kartik_Bug#792 into Issues_July_4W
Reviewed-on: #281
2025-07-24 10:29:29 +00:00
95dde88d7a Merge pull request 'Adding In-built scrollbar in Select Teams dropdown and Employees.' (#278) from Kartik_Bug795 into Issues_July_4W
Reviewed-on: #278
2025-07-24 10:14:09 +00:00
2c3c4087c8 Merge pull request 'Enhancement implemented in the Attendance component to include search functionality.' (#277) from Kartik_Enhancement#759 into Issues_July_4W
Reviewed-on: #277
2025-07-24 10:10:56 +00:00
bc18cf9cc3 Merge pull request 'Added new field in contact create and update form' (#263) from Ashutosh_Enhancement_#632 into Issues_July_4W
Reviewed-on: #263
2025-07-24 10:05:41 +00:00
d42bb413e8 Merge pull request 'react-query-v2 : react-query intergrated inside attendance and gallery module' (#270) from react-query-v2 into main
Reviewed-on: #270
2025-07-24 09:41:19 +00:00
a6f5c131a3 Attendance Log Page Resets to First Page After Performing Action on Other Pages. 2025-07-24 12:03:38 +05:30
0a890bf88a In Projects = > Select Project = > Teams = > Clicks on particular employee when user click on profile then it will direclty show documents instead of Attendance. 2025-07-24 10:59:13 +05:30
89674dd771 Changes in AboutProject.jsx file Change Status where "In Active" show like but we want "InActive" 2025-07-23 18:22:13 +05:30
d4c4454eb1 UI changes in Employee Profile and Project Profile. 2025-07-23 17:08:50 +05:30
8fd8f395c9 Adding Search functionality in Assigned Task popup when user search by employee name and jobroles. 2025-07-23 15:47:41 +05:30
e485066bd1 Adding Search functionality in Assign Task popup when user can search employee by its name and jobroles. 2025-07-23 15:45:02 +05:30
d3822c3590 revert f6d3c6b2abf3324205113d83d1c4bd9dcdda4820
revert When user is Assign to single project then dropdown and All Projects is not seen.
2025-07-23 06:21:27 +00:00
f6d3c6b2ab When user is Assign to single project then dropdown and All Projects is not seen. 2025-07-23 11:47:11 +05:30
df15367397 Chnages in Header.js wihile user is assigned to single project. 2025-07-23 11:10:34 +05:30
2f2acb7df3 Removing Console.log. 2025-07-23 10:55:30 +05:30
9dbec1e137 Project dropdown should only include active ,On Hold and In Progress Projects only show in Projects page. 2025-07-23 10:52:30 +05:30
a021a7b7b2 Adding In-built scrollbar in Select Teams dropdown and Employees. 2025-07-22 17:13:45 +05:30
e96187cfa1 Enhancement implemented in the Attendance component to include search functionality. 2025-07-22 16:47:26 +05:30
820f80562f Merge pull request 'Kartik_Bug#785' (#274) from Kartik_Bug#785 into Issues_July_4W
Reviewed-on: #274
Merged
2025-07-22 09:29:12 +00:00
b5cf52ba49 Changes in Employee list and Update and Create pupup of employee change "Role" to "Official designation". 2025-07-22 09:29:12 +00:00
633e60d141 At the time of Regularize status code 400 were shown now solved we add error message in popup "Checkout time must be later than check-in time". 2025-07-22 09:29:12 +00:00
59c36d099b Merge pull request 'Blue Highlight Under “Contacts” Tab Disappears When Switching View now its appear.' (#275) from Kartik_Bug#789 into Issues_July_4W
Reviewed-on: #275
Merged
2025-07-22 09:27:01 +00:00
e207310f0e Blue Highlight Under “Contacts” Tab Disappears When Switching View now its appear. 2025-07-22 12:53:54 +05:30
43e173d0ef Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into react-query-v2 2025-07-21 09:47:09 +05:30
c58d4d684b Merge pull request 'FixedInfra Planning issue' (#266) from taskPlanningIssue into main
Reviewed-on: #266
Merged
2025-07-19 05:49:31 +00:00
f0e007fe89 FixedInfra Planning issue 2025-07-19 11:18:21 +05:30
56540f7521 changed project selection routing 2025-07-18 19:20:31 +05:30
632119cfb9 removed unused code 2025-07-18 18:38:35 +05:30
b84275a7a3 fixed: employee fetching inside assign task 2025-07-18 17:09:49 +05:30
07373f6180 Merge pull request 'Integrated React-query in Gallery for handling api calling' (#264) from query-Gallary into react-query-v2
Reviewed-on: #264
merged
2025-07-18 09:58:51 +00:00
89085d5069 prevent IntersectionObserver error on unobserve with null ref 2025-07-18 15:01:44 +05:30
425c32750c integrated query in gallary 2025-07-18 14:56:40 +05:30
cd23e43a82 removed unused code 2025-07-18 11:57:07 +05:30
0ad8c72aa9 fixed singlar 2025-07-18 11:32:32 +05:30
d176221c13 Corrected regex to accurately detect / and dashboard 2025-07-18 11:19:29 +05:30
1c68e3a3d5 fixed signalr issue due to occured integrated query 2025-07-18 10:54:44 +05:30
0c95882e7f changed employeeAttendance record modal 2025-07-18 00:09:45 +05:30
92568039eb sync data within regularize request and appove or reject between 2025-07-18 00:01:16 +05:30
07885d3ed4 intergrated react-query 2025-07-17 20:41:57 +05:30
6e5e206bc8 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into react-query-v2 2025-07-17 17:30:16 +05:30
23998d8735 Merge pull request 'Issues_July_3W' (#262) from Issues_July_3W into main
Reviewed-on: #262
2025-07-17 11:50:24 +00:00
839dfa3dc3 removed unused code 2025-07-17 15:42:33 +05:30
b9c240261c selectProject was missing to defined in - useSuspendEmployee - therefor getting this - selected Project is not defined but actually employee is suspended properly, but show just extrap error msg 2025-07-17 13:07:36 +05:30
6bf33b27a0 Fixed: Prevent brief display of "No activities available" before task data loads
- Improved conditional rendering logic in WorkArea component
- Ensured "No activities" message only shows after data is loaded and empty
- Avoided flicker caused by initial undefined or empty task list state
2025-07-17 11:47:23 +05:30
59196b3cf0 added query hook for fetching and posting data 2025-07-17 09:52:14 +05:30
2a74333870 added middlerware for project selection 2025-07-16 18:40:35 +05:30
359a9114b4 Merge pull request 'Attendance_Weidget_feature' (#261) from Attendance_Weidget_feature into Issues_July_3W
Reviewed-on: #261
meregd
2025-07-16 13:08:25 +00:00
d2f761bd48 Changes in EmployeePage. 2025-07-16 13:08:25 +00:00
4a49bbd68d In table remove all Capitals letters and show small letters. 2025-07-16 13:08:25 +00:00
78909e2275 Adding Color at the time of tables where value is greater then 0 and all the table times to left align. 2025-07-16 13:08:25 +00:00
c1fb50c667 Creating a new weidget Attendance Overview and accroding to project selection data will seen. 2025-07-16 13:08:25 +00:00
b502b6b31e removed debugger 2025-07-16 18:35:43 +05:30
69c9f748f5 project properly moved on project details , on correct project where choosed project 2025-07-16 18:35:33 +05:30
2425387d8e display correctly activie,incative and all employee according user action 2025-07-16 18:30:06 +05:30
ea6d03ef75 fiex pagination in regularization issue 2025-07-16 18:15:46 +05:30
1978460169 added query fetching techniq in attendances 2025-07-16 16:17:49 +05:30
d6d98c7515 configure perfect scroll bar 2025-07-16 09:50:37 +05:30
c18b3529b2 removed unsed scroll bar css 2025-07-16 09:50:11 +05:30
c704982f3c Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web 2025-07-15 18:14:46 +05:30
e9fb15697a changes employee list api 2025-07-15 18:14:41 +05:30
712001a559 Merge pull request 'Issues_July_2W: Project overview widgets' (#256) from Issues_July_2W into main
Reviewed-on: #256
2025-07-15 12:28:46 +00:00
0126d38b57 removed scrollbar on dashbord graph 2025-07-15 17:52:56 +05:30
47e458fe7c added choose all project option at dashboard 2025-07-15 17:06:47 +05:30
99f3ec19d3 Merge pull request 'Add an "All Projects" selection option in the global project dropdown.' (#253) from Kartik_Task#734 into Issues_July_2W
Reviewed-on: #253
Merged
2025-07-15 09:41:07 +00:00
3368403188 Changes in Dashboard dropdown adding All Projects Selection. 2025-07-15 09:41:07 +00:00
6ca72c7e5c added needed closed tag 2025-07-15 09:41:07 +00:00
5f8e5d16f8 Changes in Project Selection. 2025-07-15 09:41:07 +00:00
0ef60621fb Add an "All Projects" selection option in the global project dropdown. 2025-07-15 09:41:07 +00:00
8748193069 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_2W 2025-07-15 14:45:30 +05:30
983d8d6091 Truncate long project short names to prevent overflow in project card 2025-07-15 13:13:29 +05:30
2d7c7ada96 Merge pull request 'Issues_July_2W' (#255) from Issues_July_2W into main
Reviewed-on: #255
Merged
2025-07-15 07:32:29 +00:00
f55cf309a4 added permission rights in daily task report 2025-07-15 07:32:29 +00:00
e4638139f5 added view team memeber and all employee 2025-07-15 07:32:29 +00:00
6afe1e6700 dynamically updated completed planned work at project lis and workarea when going to create new sub task 2025-07-15 07:32:29 +00:00
1c2b6eaac8 add utility to calculate and format completion percentage from planned and completed work 2025-07-15 07:32:29 +00:00
d7d759732b dynamically update planned and completed work in ProjectInfra and project list card on Task reported 2025-07-15 07:32:29 +00:00
4fc6a5c9f3 dynamically update planned and completed work in ProjectInfra and project list card on activity create/edit/delete 2025-07-15 07:32:29 +00:00
6a7eb0ee91 fixed card width in core.css 2025-07-15 07:32:29 +00:00
dce29422f4 fixed css bug 2025-07-15 07:32:29 +00:00
999b8bfb99 added permission rights in daily task report 2025-07-15 10:34:35 +05:30
5ec982778d added view team memeber and all employee 2025-07-15 10:21:17 +05:30
679d5d167f dynamically updated completed planned work at project lis and workarea when going to create new sub task 2025-07-14 23:41:51 +05:30
01ccd2e758 add utility to calculate and format completion percentage from planned and completed work 2025-07-14 20:30:53 +05:30
d2b80b4f02 dynamically update planned and completed work in ProjectInfra and project list card on Task reported 2025-07-14 20:19:25 +05:30
788f0baee4 dynamically update planned and completed work in ProjectInfra and project list card on activity create/edit/delete 2025-07-14 20:18:36 +05:30
1718638a4b fixed card width in core.css 2025-07-14 18:17:07 +05:30
19e2fe377d Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_2W 2025-07-14 17:35:46 +05:30
918300c64c fixed css bug 2025-07-14 16:59:31 +05:30
11dc196ae8 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Kartik_Task#734 2025-07-14 16:16:13 +05:30
3493445b19 Merge pull request 'Issues_July_2W' (#252) from Issues_July_2W into main
Reviewed-on: #252
2025-07-14 10:40:18 +00:00
0ccd00d3f7 error fixed during occured rebase 2025-07-14 14:30:49 +05:30
c0e9c1e2b9 Merge branch 'Issues_July_2W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_2W 2025-07-14 14:21:44 +05:30
39f0908fc0 fixed error during rebase 2025-07-14 14:21:36 +05:30
50585e1fbd rebase from main 2025-07-14 14:21:35 +05:30
85d10e3b17 Creating a custom hook for ImageGallery to call an API. 2025-07-14 14:21:05 +05:30
94358c7aa2 Changes in Date picker . 2025-07-14 14:21:04 +05:30
6f6e688249 In the Image Gallery, the filter drawer's date picker should default to the last 7 days (today minus 7 days). 2025-07-14 14:20:28 +05:30
b8949b3b71 In filter DatePicker should not display dates in Image Gallery. 2025-07-14 14:20:28 +05:30
f8abcc8aa8 In ProjectNav.jsx and AttendancePage.jsx, remove inline CSS font-size styles and replace them with Bootstrap classes. 2025-07-14 14:19:56 +05:30
e3d7d6005b Nevigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-14 14:19:56 +05:30
a6f55f31f3 Navigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-14 14:19:55 +05:30
41f9d4d39a Ensure all pages maintain a consistent size, even when there's less data to display. 2025-07-14 14:17:59 +05:30
0793dc28fb Page Height Should Be Minimized with "No Reports Found" Message in Daily Progress Report. 2025-07-14 14:17:41 +05:30
98767fc6af Increase the size of table in Projects Directory and show text in center and add 200 px height. 2025-07-14 14:17:05 +05:30
2dc37e04c6 Sizing for the projects directory has been corrected. 2025-07-14 14:17:04 +05:30
718fb73c5d UI Misaligned on Toggling 'Show Inactive Contact' When No Inactive Contacts Exist in Directory at projects. 2025-07-14 14:16:08 +05:30
a381b58851 Increase the size of Tabs text in Attendance and Projects. 2025-07-14 14:14:13 +05:30
367290a3fb rebase from main 2025-07-14 14:10:25 +05:30
94947c7c05 Merge branch 'Issues_July_2W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_2W 2025-07-14 13:25:37 +05:30
88857c3255 Creating a custom hook for ImageGallery to call an API. 2025-07-14 13:25:31 +05:30
fab4499746 Changes in Date picker . 2025-07-14 13:25:31 +05:30
1b011dfe7d In the Image Gallery, the filter drawer's date picker should default to the last 7 days (today minus 7 days). 2025-07-14 13:25:13 +05:30
03b918b8e7 In filter DatePicker should not display dates in Image Gallery. 2025-07-14 13:25:13 +05:30
26d2e82116 In ProjectNav.jsx and AttendancePage.jsx, remove inline CSS font-size styles and replace them with Bootstrap classes. 2025-07-14 13:24:54 +05:30
b4fa62549d Nevigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-14 13:24:54 +05:30
32757c6796 Navigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-14 13:24:40 +05:30
cefc475c0a Ensure all pages maintain a consistent size, even when there's less data to display. 2025-07-14 13:24:13 +05:30
10cf207677 Page Height Should Be Minimized with "No Reports Found" Message in Daily Progress Report. 2025-07-14 13:24:13 +05:30
331a60a899 Increase the size of table in Projects Directory and show text in center and add 200 px height. 2025-07-14 13:24:00 +05:30
62c178bd18 UI Misaligned on Toggling 'Show Inactive Contact' When No Inactive Contacts Exist in Directory at projects. 2025-07-14 13:24:00 +05:30
45d60b76a0 Increase the size of Tabs text in Attendance and Projects. 2025-07-14 13:23:38 +05:30
c0566f8281 Merge branch 'Issues_July_2W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_2W 2025-07-14 12:58:48 +05:30
7343e733ea Creating a custom hook for ImageGallery to call an API. 2025-07-14 12:58:41 +05:30
4201326e27 Changes in Date picker . 2025-07-14 12:58:41 +05:30
08d8f0b651 In the Image Gallery, the filter drawer's date picker should default to the last 7 days (today minus 7 days). 2025-07-14 12:58:24 +05:30
ae46350c51 In filter DatePicker should not display dates in Image Gallery. 2025-07-14 12:58:24 +05:30
1d32632be7 In ProjectNav.jsx and AttendancePage.jsx, remove inline CSS font-size styles and replace them with Bootstrap classes. 2025-07-14 12:58:00 +05:30
3f245bf62b Nevigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-14 12:58:00 +05:30
f7e66ce28f Navigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-14 12:57:39 +05:30
b1c0773c33 Ensure all pages maintain a consistent size, even when there's less data to display. 2025-07-14 12:57:12 +05:30
770c8e3e91 Page Height Should Be Minimized with "No Reports Found" Message in Daily Progress Report. 2025-07-14 12:56:59 +05:30
ec79e93cf2 Increase the size of table in Projects Directory and show text in center and add 200 px height. 2025-07-14 12:56:35 +05:30
d539bd67f1 UI Misaligned on Toggling 'Show Inactive Contact' When No Inactive Contacts Exist in Directory at projects. 2025-07-14 12:56:35 +05:30
a1f232d65b Increase the size of Tabs text in Attendance and Projects. 2025-07-14 12:56:16 +05:30
42bceef654 Merge branch 'Issues_July_2W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_2W 2025-07-14 12:52:19 +05:30
b9281a3955 Creating a custom hook for ImageGallery to call an API. 2025-07-14 12:51:48 +05:30
47bd782cdf Changes in Date picker . 2025-07-14 12:51:48 +05:30
89cabd73dd In the Image Gallery, the filter drawer's date picker should default to the last 7 days (today minus 7 days). 2025-07-14 12:51:25 +05:30
a3db40a86a In filter DatePicker should not display dates in Image Gallery. 2025-07-14 12:51:25 +05:30
17271f1900 In ProjectNav.jsx and AttendancePage.jsx, remove inline CSS font-size styles and replace them with Bootstrap classes. 2025-07-14 12:50:36 +05:30
70d6684bbe Nevigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-14 12:50:35 +05:30
d4c4fa7304 Navigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-14 12:50:17 +05:30
73b07904d2 Ensure all pages maintain a consistent size, even when there's less data to display. 2025-07-14 12:48:48 +05:30
ded2f73cc0 Page Height Should Be Minimized with "No Reports Found" Message in Daily Progress Report. 2025-07-14 12:47:14 +05:30
c8166114c4 Increase the size of table in Projects Directory and show text in center and add 200 px height. 2025-07-14 12:46:56 +05:30
eae0669be1 UI Misaligned on Toggling 'Show Inactive Contact' When No Inactive Contacts Exist in Directory at projects. 2025-07-14 12:46:56 +05:30
db8ecec49e Increase the size of Tabs text in Attendance and Projects. 2025-07-14 12:45:46 +05:30
bca930fb3c Merge branch 'Issues_July_2W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_2W 2025-07-14 12:39:07 +05:30
6125d48119 In the Date Range Picker, users should not be able to select any date in the future; future dates must be disabled. 2025-07-14 12:29:59 +05:30
4350a1f1aa Creating a custom hook for ImageGallery to call an API. 2025-07-14 12:29:58 +05:30
7558cbf8c4 Implementing a paste functionality in OTP login where the user can directly paste the OTP. 2025-07-14 12:29:58 +05:30
3fa5a2ba45 Changes in Date picker . 2025-07-14 12:29:58 +05:30
2f37dba1a2 In the Image Gallery, the filter drawer's date picker should default to the last 7 days (today minus 7 days). 2025-07-14 12:29:58 +05:30
db60da45d9 In filter DatePicker should not display dates in Image Gallery. 2025-07-14 12:29:58 +05:30
a3f24af524 In ProjectNav.jsx and AttendancePage.jsx, remove inline CSS font-size styles and replace them with Bootstrap classes. 2025-07-14 12:29:58 +05:30
75dfe1f6aa Nevigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-14 12:29:58 +05:30
25ff406b87 Navigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-14 12:29:58 +05:30
e26fafeba3 Ensure all pages maintain a consistent size, even when there's less data to display. 2025-07-14 12:29:27 +05:30
e2eaced0ea Page Height Should Be Minimized with "No Reports Found" Message in Daily Progress Report. 2025-07-14 12:29:27 +05:30
386c98bdc3 Increase the size of table in Projects Directory and show text in center and add 200 px height. 2025-07-14 12:29:27 +05:30
b659dbd9ea Sizing for the projects directory has been corrected. 2025-07-14 12:29:27 +05:30
117dae81e4 UI Misaligned on Toggling 'Show Inactive Contact' When No Inactive Contacts Exist in Directory at projects. 2025-07-14 12:28:21 +05:30
63c6d74434 On Change Password popup cross button is now working on click on it. 2025-07-14 12:28:21 +05:30
f0ab6efb36 Increase the size of Tabs text in Attendance and Projects. 2025-07-14 12:28:21 +05:30
fc8a3ce109 There's an issue: Today's Attendance, when I went to page 2 and then changed the project, all the data was lost." 2025-07-14 12:28:21 +05:30
bb32c3925d Assigned Task Should Be Visible to Normal User Without Showing Assign Button. 2025-07-14 12:28:21 +05:30
f7ea1aa60a Saved Username and Password Not Visible on Login Page Load 2025-07-14 12:27:53 +05:30
59190cf086 Adding pagination 20 in Profile Attendance page and adding condtion to show more then 20 records to show paging. 2025-07-14 12:27:53 +05:30
09e7ba3695 Image Popup Expands Page Width when add lengthy comment on Click in Image Gallery. 2025-07-14 12:27:53 +05:30
c12efe3061 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_2W 2025-07-11 17:47:19 +05:30
58fe364821 Merge pull request 'React Query Integration for Server State Sync in Clinet' (#245) from react-query into main
Reviewed-on: #245
2025-07-11 11:32:18 +00:00
a14f2b0738 Merge pull request 'In the Date Range Picker, users should not be able to select any date in the future; future dates must be disabled.' (#250) from Kartik_Bug#730 into Issues_July_2W
Reviewed-on: #250
Merged
2025-07-11 11:06:53 +00:00
a73ac284bd In the Date Range Picker, users should not be able to select any date in the future; future dates must be disabled. 2025-07-11 16:25:03 +05:30
6dc6ee6f3c Merge pull request 'Creating a custom hook for ImageGallery to call an API.' (#249) from Kartik_Task#728 into Issues_July_2W
Reviewed-on: #249
Merged
2025-07-11 07:46:07 +00:00
f8fb095896 Creating a custom hook for ImageGallery to call an API. 2025-07-11 13:13:44 +05:30
b389839b94 Merge pull request 'Implementing a paste functionality in OTP login where the user can directly paste the OTP.' (#248) from Kartik_Bug#727 into Issues_July_2W
Reviewed-on: #248
Merged
2025-07-11 07:20:12 +00:00
a288f5f9de Implementing a paste functionality in OTP login where the user can directly paste the OTP. 2025-07-11 07:20:12 +00:00
9a9ff4460f Merge pull request 'In filter DatePicker should not display dates in Image Gallery.' (#238) from Kartik_Bug#679 into Issues_July_2W
Reviewed-on: #238
Merged
2025-07-11 07:13:52 +00:00
f5c6382952 Changes in Date picker . 2025-07-11 07:13:52 +00:00
b36986d1c2 In the Image Gallery, the filter drawer's date picker should default to the last 7 days (today minus 7 days). 2025-07-11 07:13:52 +00:00
788a096f00 In filter DatePicker should not display dates in Image Gallery. 2025-07-11 07:13:52 +00:00
0a0f0046cc Merge pull request 'In ProjectNav.jsx and AttendancePage.jsx, remove inline CSS font-size styles and replace them with Bootstrap classes.' (#247) from Kartik_Bug#725 into Issues_July_2W
Reviewed-on: #247
Merged
2025-07-11 05:36:37 +00:00
Pramod Mahajan
5f54f5e29a added project status label that was missing, during changed structure of project details 2025-07-10 18:12:45 +05:30
722b85752a In ProjectNav.jsx and AttendancePage.jsx, remove inline CSS font-size styles and replace them with Bootstrap classes. 2025-07-10 16:58:25 +05:30
Pramod Mahajan
c018ffa455 if assigned employee to project, that employees should display instantly inside Assigned task view and employee list 2025-07-10 13:18:04 +05:30
200888ff99 Merge pull request 'Navigate to "Projects" Page Should Display Only Message When No Projects Are Assigned.' (#237) from Kartik_Bug#650 into Issues_July_2W
Reviewed-on: #237
2025-07-10 05:22:26 +00:00
ab75fcf20c Merge pull request 'Page Height Should Be Minimized with "No Reports Found" Message in Daily Progress Report.' (#244) from Kartik_Bug#640 into Issues_July_2W
Reviewed-on: #244
2025-07-10 05:20:53 +00:00
fc8f6375c1 Merge pull request 'UI Misaligned on Toggling 'Show Inactive Contact' When No Inactive Contacts Exist in Directory at projects.' (#236) from Kartik_bug#649 into Issues_July_2W
Reviewed-on: #236
2025-07-10 05:18:09 +00:00
Pramod Mahajan
fe4426af9e fixed project updation in project about 2025-07-09 16:59:36 +05:30
Pramod Mahajan
01591c429e added generic modal for edit profile 2025-07-09 16:37:09 +05:30
Pramod Mahajan
bba4315a8e clear button class changed primary to secondary in manage employee form 2025-07-09 16:28:14 +05:30
Pramod Mahajan
2d33eede45 changed class to clasName 2025-07-09 16:26:40 +05:30
bae48be2b5 Increase the size of table in Projects Directory and show text in center and add 200 px height. 2025-07-09 16:06:30 +05:30
Pramod Mahajan
710af87db1 removed custome hook for loading state, becuase react-hook provide own state 2025-07-09 16:04:39 +05:30
588104a9dd Nevigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-09 15:15:53 +05:30
Pramod Mahajan
fca3f03a44 fixed searching for employee 2025-07-09 14:33:21 +05:30
7bab8b7551 Ensure all pages maintain a consistent size, even when there's less data to display. 2025-07-09 13:32:12 +05:30
f53b88f946 Merge pull request 'On Change Password popup cross button is now working on click on it.' (#243) from Kartik_Bug#713 into Issues_July_2W
Reviewed-on: #243
2025-07-09 07:32:11 +00:00
9b99be6c0d Merge pull request 'Increase the size of Tabs text in Attendance and Projects.' (#242) from Kartik_Bug#712 into Issues_July_2W
Reviewed-on: #242
2025-07-09 07:32:02 +00:00
3f43f56020 Merge pull request 'There's an issue: Today's Attendance, when I went to page 2 and then changed the project, all the data was lost."' (#241) from Kartik_Bug#681 into Issues_July_2W
Reviewed-on: #241
2025-07-09 07:27:48 +00:00
cbfaf3cf35 Merge pull request 'Assigned Task Should Be Visible to Normal User Without Showing Assign Button.' (#240) from Kartik_Bug#648 into Issues_July_2W
Reviewed-on: #240
2025-07-09 07:18:15 +00:00
2e66372f54 Merge pull request 'Saved Username and Password Not Visible on Login Page Load' (#239) from Kartik_Bug#678 into Issues_July_2W
Reviewed-on: #239
2025-07-09 07:16:12 +00:00
235106b9db Merge pull request 'Adding pagination 20 in Profile Attendance page and adding condtion to show more then 20 records to show paging.' (#235) from kartik_Bug#540 into Issues_July_2W
Reviewed-on: #235
2025-07-09 07:08:57 +00:00
31e5b48a4b Merge pull request 'Image Popup Expands Page Width when add lengthy comment on Click in Image Gallery.' (#233) from Kartik_Bug#667 into Issues_July_2W
Reviewed-on: #233
2025-07-09 07:06:18 +00:00
f8192ae1ca Page Height Should Be Minimized with "No Reports Found" Message in Daily Progress Report. 2025-07-09 12:18:41 +05:30
Pramod Mahajan
d818ea9265 vissible data after updated inside projecr details page 2025-07-09 11:48:42 +05:30
0d5ac23df9 On Change Password popup cross button is now working on click on it. 2025-07-09 11:39:29 +05:30
cefd4e7319 Increase the size of Tabs text in Attendance and Projects. 2025-07-09 11:24:46 +05:30
ce011c4f14 There's an issue: Today's Attendance, when I went to page 2 and then changed the project, all the data was lost." 2025-07-09 10:45:46 +05:30
Pramod Mahajan
87edce4c3d added signalr events 2025-07-09 10:42:04 +05:30
e3417287d3 Sizing for the projects directory has been corrected. 2025-07-09 10:20:32 +05:30
Pramod Mahajan
cb7df469c2 added aspect ratio for image view in task comment 2025-07-08 15:24:18 +05:30
b2376bbad4 Assigned Task Should Be Visible to Normal User Without Showing Assign Button. 2025-07-08 15:23:56 +05:30
Pramod Mahajan
3968a47d98 fixed : project updation issue 2025-07-08 15:11:03 +05:30
012c8faca8 Saved Username and Password Not Visible on Login Page Load 2025-07-08 13:34:30 +05:30
Pramod Mahajan
ae07e9629b reset default correct activity for edit Task 2025-07-08 13:33:43 +05:30
Pramod Mahajan
16c7e971b1 updateed payload for createdTask fun , for getting workAreaId 2025-07-08 13:32:37 +05:30
Pramod Mahajan
f7f9c4044b cache invalidation for calling fro workItem after assign task for today planne 2025-07-08 13:31:21 +05:30
Pramod Mahajan
2c4ad2ba4a optimized to prevented for maximum deep rendering 2025-07-08 13:30:11 +05:30
Pramod Mahajan
ce37d5f447 added date util fun for UTC to Local zone 2025-07-08 13:29:09 +05:30
e1e4ba2b54 Navigate to "Projects" Page Should Display Only Message When No Projects Are Assigned. 2025-07-08 12:45:48 +05:30
3d8247a27b UI Misaligned on Toggling 'Show Inactive Contact' When No Inactive Contacts Exist in Directory at projects. 2025-07-08 12:38:08 +05:30
9b63b2000e Adding pagination 20 in Profile Attendance page and adding condtion to show more then 20 records to show paging. 2025-07-08 12:35:02 +05:30
Pramod Mahajan
a146d4d15e Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into react-query 2025-07-08 12:28:52 +05:30
c4fd04dbac Merge pull request 'Images_gallery_filter' (#234) from Images_gallery_filter into main
Reviewed-on: #234

deployed feature to production
2025-07-08 06:47:12 +00:00
Pramod Mahajan
1226006afd added local time zone util fun 2025-07-08 10:18:50 +05:30
Pramod Mahajan
4e1891efdb added projectrepository and toast that was missing. 2025-07-08 09:53:08 +05:30
Pramod Mahajan
5192ce2fc6 rename class to className 2025-07-07 17:02:02 +05:30
Pramod Mahajan
f24b66ae1c set default activity initially 2025-07-07 17:01:02 +05:30
Pramod Mahajan
61b41c3aa4 added utils method that convert UTC TO Local 2025-07-07 15:25:13 +05:30
ad1db0f366 Image Popup Expands Page Width when add lengthy comment on Click in Image Gallery. 2025-07-07 15:07:43 +05:30
Pramod Mahajan
76aa9200f7 added Breadcrumb for image gallary 2025-07-07 13:25:44 +05:30
Pramod Mahajan
287d116609 added cosmetic changes 2025-07-07 12:52:43 +05:30
Pramod Mahajan
4f45a805e1 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Images_gallery_filter 2025-07-07 12:43:24 +05:30
Pramod Mahajan
04ffa0f645 fixed filter button of image galllary 2025-07-07 12:42:19 +05:30
c88af2441f Added condition to check if number of images uploaded is greater than 0 2025-07-07 11:25:41 +05:30
Pramod Mahajan
58187db80a added default active status at create new project 2025-07-07 11:09:18 +05:30
Pramod Mahajan
9447178985 added format number 2025-07-07 10:59:51 +05:30
e97031c0e1 Merge pull request 'Changes in Image gallery and integrating singnalR.' (#231) from Kartik_Task#661 into Images_gallery_filter
Reviewed-on: #231
2025-07-07 04:35:50 +00:00
Pramod Mahajan
035ef6c099 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into react-query 2025-07-06 22:18:54 +05:30
Pramod Mahajan
10ee3796d3 Optimized to avoid unnecessary API calls 2025-07-06 22:10:13 +05:30
Pramod Mahajan
8676ff24a5 handle to prevent unwanted api calling 2025-07-06 15:51:46 +05:30
9eb8418330 Change the design of Filter drower. 2025-07-06 13:37:42 +05:30
Pramod Mahajan
b5b1f9d31f added completedWork , plannedWork for progrss line with formatnumber util 2025-07-06 13:11:15 +05:30
Pramod Mahajan
485c7f2347 format number 2025-07-06 12:39:39 +05:30
52eeede904 Merge branch 'Issues_July_1W' 2025-07-06 11:21:24 +05:30
3be9f7aadb Change brand log and remove some demo css 2025-07-06 11:15:25 +05:30
4adfbc8e8e Adding next and previous button hide and correction in filter logic. 2025-07-05 21:59:18 +05:30
aebae577df Changes in Image gallery and integrating singnalR. 2025-07-05 18:09:06 +05:30
eb1f048059 Merge pull request 'Project Not Visible When Created with "In Progress" Status Selected from Filter' (#230) from Kartik_Bug#641 into Issues_July_1W
Reviewed-on: #230
2025-07-05 11:15:39 +00:00
0af211a218 Merge pull request 'Image_Gallery' (#229) from Image_Gallery into main
Reviewed-on: #229
2025-07-05 11:14:41 +00:00
6914b1cd90 Merge pull request 'Reduce the checkbox size and remove unnecessary spacing within the Directory Notes and Contact filters.' (#228) from Kartik_Bug#612 into Issues_July_1W
Reviewed-on: #228
2025-07-05 11:13:57 +00:00
981a7b121e Project Not Visible When Created with "In Progress" Status Selected from Filter 2025-07-05 11:45:13 +05:30
87a7b49948 Changes in Image Gallery creating changing the filter icon adding box at the time of Work Category. 2025-07-04 15:21:18 +05:30
1f9dcbbc82 Merge branch 'Issues_July_1W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_July_1W
# Conflicts:
#	src/pages/authentication/ChangePassword.jsx
2025-07-04 14:14:37 +05:30
8f9f0091ea modify change password UI 2025-07-04 14:13:19 +05:30
115740c4dc modify change password UI 2025-07-04 13:24:47 +05:30
Pramod Mahajan
28c226904e closed modal after update activity and format number of plannedwork and completed work at project overview 2025-07-04 12:39:10 +05:30
Pramod Mahajan
eb1c4fc765 show denied msg on Daily Task planning page if don't have manage infra and assign task 2025-07-04 12:37:55 +05:30
Pramod Mahajan
afac84dc9b now displayed cancel and submit button at initially - bug643 2025-07-04 11:47:02 +05:30
a6169c106f Changes in Filter drower increase its size. 2025-07-04 11:31:35 +05:30
Pramod Mahajan
20c9dca759 added formatNumber at globally for reusable 2025-07-04 11:29:24 +05:30
Pramod Mahajan
5949e7c277 improved empty state UI when no projects are found 2025-07-04 11:10:22 +05:30
Pramod Mahajan
a107041153 chnanged status color, becuase Active status is hold success color, therefor chnages success to primary for In-progress status 2025-07-04 10:53:53 +05:30
Pramod Mahajan
ca476d6f6e removed unused code 2025-07-04 10:52:07 +05:30
Pramod Mahajan
2e54ed1dd9 display project Name at header when location have project details 2025-07-04 10:51:41 +05:30
Pramod Mahajan
4c6e0b5c9e added project status - 'In-Progress' 2025-07-04 10:50:57 +05:30
Pramod Mahajan
9961b4aba7 removed unused code 2025-07-04 10:49:35 +05:30
09906420a6 Adding Date Range picker in filter dropdown. 2025-07-04 10:18:18 +05:30
Pramod Mahajan
b39a3d7e97 fixed: visible sub task without refresh page 2025-07-03 19:10:49 +05:30
Pramod Mahajan
094811a8ec floor Name field clear clear after complete edit or create operation 2025-07-03 17:09:31 +05:30
a94facb062 Changes in Directory filter adding clear and apply button and calling api at the time apply filter. 2025-07-03 14:49:18 +05:30
Pramod Mahajan
e6d6f0ac30 Handle undefined 'variables' in employee assignment toast logic 2025-07-03 13:16:01 +05:30
Pramod Mahajan
e24b873677 added projectId , project id was missed 2025-07-03 12:16:35 +05:30
Pramod Mahajan
25b2f6973c fixed format planned vs remaining work values to avoid float precision issues in task UI 2025-07-02 20:07:35 +05:30
Pramod Mahajan
80083aa5db updated some queries and mutation for prevent to duplicates calls 2025-07-02 19:42:43 +05:30
99601095b5 To show ImageGallery in our project. 2025-07-02 18:28:08 +05:30
5bb27b6106 Modify project landing page 2025-07-02 15:11:31 +05:30
fb1dec6c93 Added new field in contact create and update form 2025-07-02 15:06:01 +05:30
Pramod Mahajan
52c5e3d2d2 integrated reactquery for project infra 2025-07-02 13:20:17 +05:30
Pramod Mahajan
2f110b7ead Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into react-query 2025-07-02 09:49:20 +05:30
Pramod Mahajan
0c8ff7b28c partially integrated react-query in project infra 2025-07-02 01:57:02 +05:30
475f7b564e Merge pull request 'In Attendance Log Tab date Range show set to today -1 to past 7 days.' (#227) from Kartik_Bug#629 into Issues_July_1W
Reviewed-on: #227
2025-07-01 12:24:53 +00:00
b74c863794 Reduce the checkbox size and remove unnecessary spacing within the Directory Notes and Contact filters. 2025-07-01 17:14:03 +05:30
e85dfb3922 In Attendance Log Tab date Range show set to today -1 to past 7 days. 2025-07-01 16:47:03 +05:30
c1a31e6b3e Merge pull request 'Issues_Jun_3W' (#226) from Issues_Jun_3W into main
Reviewed-on: #226
2025-07-01 10:24:37 +00:00
73b693f826 Merge pull request 'Missing Error Message When Required Fields Are Not Selected in Infrastructure > Create Task' (#225) from Kartik_Bug#521 into Issues_Jun_3W
Reviewed-on: #225
2025-07-01 09:36:03 +00:00
50f941aef6 Merge pull request '"OTP Sent Successfully" Message Displayed After Sending OTP' (#224) from Kartik_Bug#625 into Issues_Jun_3W
Reviewed-on: #224
2025-07-01 09:34:14 +00:00
520a0e679e Merge pull request 'Correction in Login Password text box design.' (#223) from Kartik_Bug#627 into Issues_Jun_3W
Reviewed-on: #223
2025-07-01 09:33:32 +00:00
85d8434c5f Merge pull request '401 Unauthorized Error on Attendance Menu.' (#222) from KartikBug#623 into Issues_Jun_3W
Reviewed-on: #222
2025-07-01 09:32:19 +00:00
Pramod Mahajan
a02a33a247 partially implementation of masters in react query hooks 2025-07-01 13:23:16 +05:30
2226d54f24 Missing Error Message When Required Fields Are Not Selected in Infrastructure > Create Task 2025-07-01 12:37:22 +05:30
5d99f11297 "OTP Sent Successfully" Message Displayed After Sending OTP 2025-07-01 12:33:57 +05:30
390a0b2b67 Correction in Login Password text box design. 2025-07-01 12:29:39 +05:30
2c0800f0e3 Unnecessary Blank Space Appears Below Employees in Regularization Tab. 2025-07-01 12:21:49 +05:30
e09413b23a 401 Unauthorized Error on Attendance Menu. 2025-07-01 12:19:25 +05:30
Pramod Mahajan
8dbce6dd49 Fixed issue where query remained disabled and cache was undefined 2025-06-30 21:36:54 +05:30
Pramod Mahajan
f848f97d87 implement partial react-query in task assignment flow 2025-06-30 20:20:52 +05:30
bb9c351189 Changes in Search text. 2025-06-30 18:29:03 +05:30
fb4275fb05 Merge branch 'Issues_Jun_3W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_Jun_3W 2025-06-30 17:12:28 +05:30
be0577e6d8 Changing link of ProjectNames to Projects. 2025-06-30 17:12:05 +05:30
5861288a9d Merge branch 'Issues_Jun_3W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_Jun_3W 2025-06-30 17:03:56 +05:30
7615bb9c24 Added line after each module 2025-06-30 17:03:52 +05:30
7dffae8957 Merge pull request 'Changes in the employee popup size.' (#221) from Kartik_Bug#524 into Issues_Jun_3W
Reviewed-on: #221
2025-06-30 11:16:51 +00:00
84563812b7 Adding cross button in Employee popup. 2025-06-30 16:42:58 +05:30
562a4ca46d "Changes in the employee popup size." 2025-06-30 16:27:12 +05:30
Pramod Mahajan
7fbbe98373 fixed syntax mistak 2025-06-30 16:20:42 +05:30
9c2b2d0b0e Merge pull request 'Changes in Directory in Filter, removing unnessary gaps and changing color of HideEditor.' (#220) from Kartik_Enhancement#624 into Issues_Jun_3W
Reviewed-on: #220
2025-06-30 10:49:47 +00:00
0b54e0b5f1 Changes in Directory Notes Filter. 2025-06-30 10:49:47 +00:00
9554caf25f Changes in Directory in Filter, removing unnessary gaps and changing color of HideEditor. 2025-06-30 10:49:47 +00:00
a96d3696bb Changed the Ids of view infra and manage infra 2025-06-30 13:15:30 +05:30
d86c8a2c0b Merge pull request '"Pagination overlaps on '+' (Add) button in Directory – bottom right corner"' (#218) from Kartik_Bug#611 into Issues_Jun_3W
Reviewed-on: #218
2025-06-30 06:43:00 +00:00
111325968d "Adding margin-bottom to the pagination section in Directory Notes." 2025-06-30 06:41:44 +00:00
baf6a4cf54 "Pagination overlaps on '+' (Add) button in Directory – bottom right corner" 2025-06-30 06:41:44 +00:00
a1b45c341a Merge pull request '"Directory filter popup closes on 'Clear' button click – it should remain open"' (#219) from Kartik_Bug#613 into Issues_Jun_3W
Reviewed-on: #219
2025-06-30 06:38:51 +00:00
da69ae6fec "In the Directory Notes, applying a filter changes the Clear button's state and color." 2025-06-30 06:38:51 +00:00
48d1592b8c "Directory filter popup closes on 'Clear' button click – it should remain open" 2025-06-30 06:38:51 +00:00
4700ba38cd Merge pull request '"Search field height mismatch in Directory – should match Card and List view height"' (#217) from Kartik_Bug#608 into Issues_Jun_3W
Reviewed-on: #217
2025-06-30 05:18:47 +00:00
Pramod Mahajan
467d5d4b13 integrate React Query for project details and real-time updates 2025-06-29 00:55:02 +05:30
67b694c697 "Search field height mismatch in Directory – should match Card and List view height" 2025-06-28 15:06:54 +05:30
Pramod Mahajan
22e65c167e prevent unnwanted api calling 2025-06-28 10:38:01 +05:30
2bdaed1d83 Merge pull request 'Enhanced the Directory module by adding Notes and Contacts tabs, with view-specific controls, export options, and search functionality for Notes.' (#215) from Kartik_Task#513 into Issues_Jun_3W
Reviewed-on: #215
2025-06-27 11:43:30 +00:00
af22b95316 Merge branch 'Kartik_Task#513' of https://git.marcoaiot.com/admin/marco.pms.web into Kartik_Task#513 2025-06-27 17:13:06 +05:30
58c17ffe37 remove divider line. 2025-06-27 17:13:02 +05:30
c7cd96f509 upadating directory filter in design. 2025-06-27 17:13:02 +05:30
92ad8485f6 Clear button is working at filter. 2025-06-27 17:13:02 +05:30
9396caea57 In Directory changing filter logic and adding popup. 2025-06-27 17:13:02 +05:30
d646711637 In Directory Inhance Filter in Notes add Clear button and space between checkbox and name. 2025-06-27 17:13:02 +05:30
a2761bdd4c Chnages in Directory for fetching data. 2025-06-27 17:13:02 +05:30
2df8187ade Changes in Directory. 2025-06-27 17:13:02 +05:30
35d5310cee Some Changes in Directory in Search functionality and Filter by Names. 2025-06-27 17:13:02 +05:30
52b796700d Adding filteration according to names. 2025-06-27 17:13:01 +05:30
3e0b4edf4a In directory Creating a tab view and add notes view. 2025-06-27 17:12:06 +05:30
b39aa2302d remove divider line. 2025-06-27 16:59:24 +05:30
45dadc88a2 upadating directory filter in design. 2025-06-27 16:57:57 +05:30
77cd8357cd Clear button is working at filter. 2025-06-27 16:04:15 +05:30
Pramod Mahajan
cfa1c6366d added props type of emp for call api purpose 2025-06-27 15:56:23 +05:30
Pramod Mahajan
c86065f224 added queryClient obj inside authlayout for reuse 2025-06-27 15:54:36 +05:30
Pramod Mahajan
7afea8e52a added type of employees, for calling api 2025-06-27 15:53:20 +05:30
Pramod Mahajan
3802be1673 seprated moda querClient obj inside AuthLayout ,because we can reuse queryClient 2025-06-27 15:52:29 +05:30
deb7100899 In Directory changing filter logic and adding popup. 2025-06-27 15:47:36 +05:30
Pramod Mahajan
f932a4c5a4 added condition for directory, for hide project dropdown 2025-06-27 11:45:29 +05:30
Pramod Mahajan
d1250739f9 fixed vertical scrolling layout 2025-06-27 10:59:41 +05:30
Pramod Mahajan
c0aa178af7 fixed vertical layout 2025-06-27 10:20:32 +05:30
abc8bd8629 In Directory Inhance Filter in Notes add Clear button and space between checkbox and name. 2025-06-26 17:11:54 +05:30
Pramod Mahajan
fa32913e34 Replaced normal hooks to react-query Hook - Employee 2025-06-26 12:28:02 +05:30
Pramod Mahajan
1b5fa173f0 return one more params 2025-06-26 12:26:51 +05:30
Pramod Mahajan
664fe2473f added optional chain 2025-06-26 12:21:19 +05:30
d6d0fd9d14 Chnages in Directory for fetching data. 2025-06-26 11:30:07 +05:30
0a6d5746ed Changes in Directory. 2025-06-26 10:32:43 +05:30
7898d1ad81 Some Changes in Directory in Search functionality and Filter by Names. 2025-06-26 10:09:24 +05:30
8916e25940 Adding filteration according to names. 2025-06-25 17:58:11 +05:30
5e9e4a7bbf In directory Creating a tab view and add notes view. 2025-06-25 12:28:58 +05:30
Pramod Mahajan
237fea186b Merge branch 'Issues_Jun_3W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_Jun_3W 2025-06-24 16:45:05 +05:30
Pramod Mahajan
22c6072c32 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_Jun_3W 2025-06-24 16:31:54 +05:30
Pramod Mahajan
e0047378d1 updated reported btn after reported once. 2025-06-24 12:21:25 +05:30
Pramod Mahajan
3b933d513f fiexed: check-in allowing in logs 2025-06-24 12:07:34 +05:30
Pramod Mahajan
928a50432d fixed restore selected project when toggling off "Show All Employees" 2025-06-23 21:30:36 +05:30
8f919436aa Merge pull request 'Ensured all table headers and cells are left-aligned for consistent layout and better readability.' (#214) from Kartik_Enhancement#517 into Issues_Jun_3W
Reviewed-on: #214
2025-06-23 12:30:16 +00:00
d8269cfbe8 Changes in search employee when double error message is shown. 2025-06-23 12:30:16 +00:00
589ba569f6 Correction in search function in Employees. 2025-06-23 12:30:16 +00:00
9f6d7580e3 Ensured all table headers and cells are left-aligned for consistent layout and better readability. 2025-06-23 12:30:16 +00:00
a682f20f81 Merge pull request 'Adding Export button in Directory.' (#213) from Kartik_Task#512_Exportbutton into Issues_Jun_3W
Reviewed-on: #213
2025-06-23 12:28:45 +00:00
Pramod Mahajan
c8707fe7b1 changed input size 2025-06-23 17:43:11 +05:30
Pramod Mahajan
5c492fc932 changed modal , added global model 2025-06-23 17:40:30 +05:30
Pramod Mahajan
8e3a6bf1d1 handled default choosed activity and disabled 2025-06-23 17:15:37 +05:30
Pramod Mahajan
cd5e9291ae replace old modal to GlobalModal 2025-06-23 16:39:35 +05:30
Pramod Mahajan
891cbc9620 give relveant name for modal props 2025-06-23 16:13:25 +05:30
Pramod Mahajan
4643ba5c80 Correct disabled logic in submit button and added toast for confrimation operation success or not done 2025-06-23 16:12:34 +05:30
Pramod Mahajan
79d6cd2f49 changed class for container "container-xxl" to "container-fluid" 2025-06-23 15:41:23 +05:30
056bd63869 Adding Export button in Directory. 2025-06-20 17:12:50 +05:30
089bfecfd3 Merge branch 'Issues_Jun_3W' of https://git.marcoaiot.com/admin/marco.pms.web into Issues_Jun_3W 2025-06-20 16:01:19 +05:30
6accbb3500 Add the weekday name (e.g., Monday) when hovering over a data point in the Project. 2025-06-20 15:55:17 +05:30
290b2d37d1 Remove the border from the 'Category' column in the list view of the directory. 2025-06-20 15:55:16 +05:30
882e3dd414 Project Address Text Overflow. 2025-06-20 15:55:16 +05:30
41af98e340 The current behavior is that when the "All Employees" filter is off, the system should display employees only for the globally selected project, not all employees. 2025-06-20 15:55:16 +05:30
c4c3e8d885 The search functionality in the Employees section does not work correctly after applying a filter. 2025-06-20 15:55:16 +05:30
Pramod Mahajan
5a13313bbd refactor: update axios client and auth repository for public/private route handling 2025-06-20 15:55:16 +05:30
38374caab3 Add cards in project list and diectory list views 2025-06-20 15:53:30 +05:30
246784c18a Merge pull request 'Add the weekday name (e.g., Monday) when hovering over a data point in the Project.' (#211) from Kartik_Task#511 into Issues_Jun_3W
Reviewed-on: #211
2025-06-20 09:13:07 +00:00
a6d3d2656b Add the weekday name (e.g., Monday) when hovering over a data point in the Project. 2025-06-20 09:13:07 +00:00
cffa683b20 Merge pull request 'Remove the border from the 'Category' column in the list view of the directory.' (#210) from Kartik_Bug#510 into Issues_Jun_3W
Reviewed-on: #210
2025-06-20 09:11:25 +00:00
4c1934518d Remove the border from the 'Category' column in the list view of the directory. 2025-06-20 09:11:25 +00:00
33b14208ec Merge pull request 'Project Address Text Overflow in the project card.' (#209) from Kartik_Bug#509 into Issues_Jun_3W
Reviewed-on: #209
2025-06-20 09:10:37 +00:00
a5161756c3 Project Address Text Overflow. 2025-06-20 09:10:37 +00:00
0131dfaa29 Merge pull request 'The search functionality in the Employees section does not work correctly after applying a filter.' (#208) from Kartik_Bug#508 into Issues_Jun_3W
Reviewed-on: #208
2025-06-20 09:09:18 +00:00
a2a8e90350 The current behavior is that when the "All Employees" filter is off, the system should display employees only for the globally selected project, not all employees. 2025-06-20 09:09:18 +00:00
33c3bb1282 The search functionality in the Employees section does not work correctly after applying a filter. 2025-06-20 09:09:18 +00:00
8e3ac744c0 Merge pull request 'pramod_Bug#494 : update axios client and auth repository for public/private route handling' (#207) from pramod_Bug#494 into Issues_Jun_3W
Reviewed-on: #207
2025-06-20 09:08:07 +00:00
Pramod Mahajan
39ee2d58ce refactor: update axios client and auth repository for public/private route handling 2025-06-20 09:08:07 +00:00
8ac9c64bf4 Add cards in project list and diectory list views 2025-06-20 14:33:51 +05:30
Pramod Mahajan
f84d04efd5 hide unusefull header for masters 2025-06-20 12:45:10 +05:30
Pramod Mahajan
0dc79f8dfa added loading behaviour for submitting form 2025-06-20 12:37:21 +05:30
Pramod Mahajan
0fad5a0276 missing assign task api integration during updation, It Added. 2025-06-20 12:36:49 +05:30
Pramod Mahajan
6e570ee411 align "Add a Note" button to right and switch to left consistently 2025-06-20 11:25:14 +05:30
c3d172ea8e Added base url in constants.jsx 2025-06-19 18:36:50 +05:30
Pramod Mahajan
52a578972e Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into pramod_Task#505 2025-06-19 16:48:47 +05:30
Pramod Mahajan
4cda7fdcfd added approve task feature 2025-06-19 16:44:41 +05:30
21e7ca2157 Showing proper name of project in global project dropdown when assigning project for first time 2025-06-19 14:51:10 +05:30
77f5632506 Added new project status 2025-06-19 11:42:35 +05:30
f7d0a35b3a improve singalR functionlity in assign task pop to add or remove employee if assigned or removed from project 2025-06-19 11:21:26 +05:30
ec75858f7e Resolves an issue where projects assigned to a user for the first time were not appearing in the global project selection dropdown. 2025-06-19 11:01:11 +05:30
ade3401d02 Persist project changes on multiple create/update operations.Ensures that project information changes (creation or updates) are correctly persisted when performed consecutively in the project list 2025-06-19 10:42:43 +05:30
ad25c4610e Implemented signalR in project Infrastructure management modules 2025-06-19 09:56:41 +05:30
Pramod Mahajan
edcc4438a2 Added new field comment 2025-06-18 18:13:12 +05:30
9e4c67984c Implemented signalR in project wiget in dashboard 2025-06-18 12:26:05 +05:30
200ef5ae0a Implemented signalR in Employee module 2025-06-18 11:57:55 +05:30
Pramod Mahajan
60d232f5be changed name 2025-06-17 20:47:08 +05:30
Pramod Mahajan
f58aa8cb18 added new modal for create sub task 2025-06-17 20:46:46 +05:30
Pramod Mahajan
eccbb8c609 changed name AssignRole to AssignTask 2025-06-17 20:44:43 +05:30
Pramod Mahajan
6a337ec808 created new comp. for create sub task 2025-06-17 20:43:56 +05:30
Pramod Mahajan
5ac9022be0 added new condition for audit base calling api 2025-06-17 20:42:19 +05:30
Pramod Mahajan
c722117108 added params for refetch data 2025-06-17 20:40:51 +05:30
6f247fb0e9 Merge branch 'SingalR_Integration' of https://git.marcoaiot.com/admin/marco.pms.web into SingalR_Integration 2025-06-17 17:19:02 +05:30
8431e856aa Added signalR functionality in Project Infrastructure 2025-06-17 17:18:59 +05:30
782ace9d1c refreshing globle project is created new project and user have manage project permission 2025-06-17 17:18:59 +05:30
fdff7f7b41 Fixed rebase conflicts 2025-06-17 17:18:59 +05:30
8832ff1c51 Implemented signalr for action assigning employee to project 2025-06-17 17:18:59 +05:30
24dc481169 Implemented signalR for create and update project 2025-06-17 17:18:28 +05:30
351e5a2b0d Implemented attendance funcationality in attendance module 2025-06-17 17:14:25 +05:30
2848177908 Change ../services/signalRService from ../services/SignalRService 2025-06-17 17:11:30 +05:30
b767641643 Avoided API calls 2025-06-17 17:11:30 +05:30
b24edba8f7 Implmeneted signalR in today's attendance 2025-06-17 17:11:29 +05:30
8217308db9 Implemented signalr for action assigning employee to project 2025-06-17 17:07:54 +05:30
ab5a598562 Implemented signalr in assign team tab in project details 2025-06-17 17:07:54 +05:30
9530f9ca87 Implemented attendance funcationality in attendance module 2025-06-17 17:07:54 +05:30
9b6fa84d0d Change ../services/signalRService from ../services/SignalRService 2025-06-17 17:07:54 +05:30
5567928c7f Avoided API calls 2025-06-17 17:07:53 +05:30
88efbf5542 Implmeneted signalR in today's attendance 2025-06-17 17:07:53 +05:30
ed2fa2d5b0 Implemented signalR for create and update project 2025-06-17 17:07:53 +05:30
a0e4b1c5ed Changed some functionallity in attendance 2025-06-17 17:07:53 +05:30
90a77d357f Implemented attendance funcationality in attendance module 2025-06-17 17:07:53 +05:30
8ad375ede4 Added lognpolling in signalR request 2025-06-17 17:07:53 +05:30
6f3a8bd7c9 Added base url in signalrServies 2025-06-17 17:07:53 +05:30
2fbf0f98ef Change ../services/signalRService from ../services/SignalRService 2025-06-17 17:07:53 +05:30
36d70b3850 Avoided API calls 2025-06-17 17:07:53 +05:30
a3381bb2e6 Implmeneted signalR in today's attendance 2025-06-17 17:07:53 +05:30
5de4953760 Added signalR functionality in Project Infrastructure 2025-06-17 17:05:33 +05:30
Pramod Mahajan
b18e0e4dd7 approve condition handle 2025-06-17 12:12:27 +05:30
Pramod Mahajan
1b4001fadf created temp work-status hook 2025-06-16 19:43:22 +05:30
Pramod Mahajan
3b826342ba modified comment state for handle audit and comment form 2025-06-16 19:42:43 +05:30
Pramod Mahajan
407680fa9b added logic for audit activity as well as comment 2025-06-16 19:41:35 +05:30
Pramod Mahajan
e1037c8322 added new api for get list of work status 2025-06-16 18:43:38 +05:30
Pramod Mahajan
4cb2bec73a added audit task api in task repo 2025-06-16 18:42:41 +05:30
Pramod Mahajan
6f88980986 Fix DOM nesting warning by replacing <p> with <div> in comment note section 2025-06-14 11:11:07 +05:30
Pramod Mahajan
6d2c2c5e0b changed preview reported images 2025-06-14 11:05:42 +05:30
Pramod Mahajan
f48d05ecee changed hook name , replaced properly related logic name 2025-06-14 10:46:33 +05:30
Pramod Mahajan
dee44c63aa handled loading properly 2025-06-14 10:45:43 +05:30
Pramod Mahajan
b76ca68059 changed class to className 2025-06-14 10:21:24 +05:30
Pramod Mahajan
7c9607cb78 resolved localCompare error 2025-06-13 18:06:09 +05:30
Pramod Mahajan
cbf376d5b6 added pending filter for attendaces using toggle buttons 2025-06-13 17:52:22 +05:30
Pramod Mahajan
00902fff9f fixed togger for active and inactive employee 2025-06-13 13:27:34 +05:30
Pramod Mahajan
c254b98405 Fixed image scaling inside preview container to fully fill the space 2025-06-13 13:03:27 +05:30
4b95234141 refreshing globle project is created new project and user have manage project permission 2025-06-13 12:01:36 +05:30
dde953fa08 Fixed rebase conflicts 2025-06-13 10:56:37 +05:30
967e5b4a3d Merge branch 'SingalR_Integration' of https://git.marcoaiot.com/admin/marco.pms.web into SingalR_Integration 2025-06-13 10:53:12 +05:30
d834aeddce Implemented signalr for action assigning employee to project 2025-06-13 10:53:09 +05:30
ec81377c07 Implemented signalr in assign team tab in project details 2025-06-13 10:53:08 +05:30
5611a46b95 Implemented attendance funcationality in attendance module 2025-06-13 10:50:13 +05:30
c7df297c8f Change ../services/signalRService from ../services/SignalRService 2025-06-13 10:47:21 +05:30
31ca0be50d Avoided API calls 2025-06-13 10:47:21 +05:30
b1385d2f2f Implmeneted signalR in today's attendance 2025-06-13 10:47:21 +05:30
72b7a19b69 Implemented signalr for action assigning employee to project 2025-06-13 10:43:42 +05:30
41f3628d45 For project progress widget set default selection 15W 2025-06-13 09:39:27 +05:30
31a9f55b63 - Add shot name in project lobal selection
- Sort jobrole in edit employee
2025-06-13 00:56:02 +05:30
70ac3e0344 Changes in Employee form allow searching form all the fields. 2025-06-13 00:22:23 +05:30
409d98f923 Merge branch 'activity_image' of https://git.marcoaiot.com/admin/marco.pms.web into activity_image 2025-06-13 00:02:29 +05:30
Pramod Mahajan
1f0255bc55 Merge branch 'activity_image' of https://git.marcoaiot.com/admin/marco.pms.web into activity_image 2025-06-12 23:57:59 +05:30
edf092e85e Creating a toggle button in Project Progress. 2025-06-12 23:56:43 +05:30
Pramod Mahajan
9043cfd49e prevent to set first project from project-list at component mount 2025-06-12 23:56:36 +05:30
da440060e8 - Some cosmatic changes on Activity Details popup
- Header Global project filter hite set to ax 300px a
- header global project list sorted by name
2025-06-12 23:06:51 +05:30
Pramod Mahajan
3ed5999f29 added attachment views 2025-06-12 22:54:08 +05:30
e6a461c2ab Implemented signalr in assign team tab in project details 2025-06-12 22:12:32 +05:30
250c1bf2e1 Merge branch 'SingalR_Integration' of https://git.marcoaiot.com/admin/marco.pms.web into SingalR_Integration 2025-06-12 20:47:34 +05:30
909a1f72d9 Implemented signalR for create and update project 2025-06-12 20:45:32 +05:30
73e5254fbb Changed some functionallity in attendance 2025-06-12 20:45:32 +05:30
1c0be858e9 Implemented attendance funcationality in attendance module 2025-06-12 20:45:32 +05:30
a03358dd14 Added lognpolling in signalR request 2025-06-12 20:45:32 +05:30
732a6901ee Added base url in signalrServies 2025-06-12 20:45:32 +05:30
053dfaf197 Change ../services/signalRService from ../services/SignalRService 2025-06-12 20:45:32 +05:30
b0fd14d0bb Avoided API calls 2025-06-12 20:45:32 +05:30
e349d2622c Implmeneted signalR in today's attendance 2025-06-12 20:45:31 +05:30
164f3cc02f Implemented signalR for create and update project 2025-06-12 19:39:56 +05:30
6b9670b942 Add more cosmatic changes for notes editor 2025-06-12 18:48:30 +05:30
3305c0b0d9 Add cosmatic changes to quill editor on contact notes page 2025-06-12 18:12:25 +05:30
8e7d99d111 Call API on Header for project selection. 2025-06-12 18:07:33 +05:30
32fdc39e5c Changes in Manage Buckets popup and Employess component Checkbox add. 2025-06-12 17:03:35 +05:30
f8ee3d3a86 Changed some functionallity in attendance 2025-06-12 11:05:10 +05:30
792529776c Implemented attendance funcationality in attendance module 2025-06-11 23:23:14 +05:30
Pramod Mahajan
deaf10c302 handled wrong uel for Breadcrumb 2025-06-11 19:34:28 +05:30
Pramod Mahajan
e5b34eb1ba show validation msg prperly at contact form 2025-06-11 19:30:46 +05:30
Pramod Mahajan
573d7828ae handle pagination - hide if record have less than 20 2025-06-11 19:02:20 +05:30
Pramod Mahajan
7932f847f6 changed validation msg for bucket label to bucket 2025-06-11 18:54:03 +05:30
Pramod Mahajan
f14644b3b4 handle poject selector when there are 0 or 1 projects 2025-06-11 18:47:18 +05:30
Pramod Mahajan
23bd307a37 imported missing components 2025-06-11 18:08:04 +05:30
Pramod Mahajan
e404b5bc50 hide project slection when path have = project/projectId 2025-06-11 18:06:10 +05:30
Pramod Mahajan
38960e9132 prevent looping for refresh token calling 2025-06-11 17:52:18 +05:30
Pramod Mahajan
4bb4f8fc17 added icon for select project 2025-06-11 17:31:28 +05:30
369343f1d5 Added lognpolling in signalR request 2025-06-11 15:05:27 +05:30
Pramod Mahajan
ce1bdc3df7 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into GlobalSelectProject 2025-06-11 14:15:42 +05:30
Pramod Mahajan
cf75f3c1fb handle server error 2025-06-11 13:01:15 +05:30
Pramod Mahajan
195ebd4f9b handled option chain error 2025-06-11 12:54:35 +05:30
Pramod Mahajan
ad0dfdda55 handle set default project initially 2025-06-11 12:53:42 +05:30
4cf3b391db Added base url in signalrServies 2025-06-11 12:23:39 +05:30
8682edb1d7 Change ../services/signalRService from ../services/SignalRService 2025-06-11 12:05:09 +05:30
72f0266462 Avoided API calls 2025-06-11 10:59:23 +05:30
9c8575a653 Implmeneted signalR in today's attendance 2025-06-11 10:20:53 +05:30
Pramod Mahajan
def2a9b6f3 changed font size of select button 2025-06-10 23:38:16 +05:30
500006c1ef Merge branch 'newFeature_Directory' 2025-06-10 20:18:25 +05:30
93d807cca8 Merge pull request 'Adding Change Password button on Employee Profile Page.' (#198) from Kartik_Task#491 into main
Reviewed-on: #198
2025-06-10 14:40:21 +00:00
a77f7cecbb change password label change 2025-06-10 14:40:21 +00:00
9b40317eb2 show change password button to self only 2025-06-10 14:40:21 +00:00
a480c3b111 Adding Change Password button on Employee Profile Page. 2025-06-10 14:40:21 +00:00
c2c9fd01fc Merge pull request 'Updation In Daily Progress Report filter icon.' (#197) from Kartik_Task#486 into main
Reviewed-on: #197
2025-06-10 14:26:57 +00:00
d3524c40f3 Updation In Daily Progress Report filter icon. 2025-06-10 14:26:57 +00:00
7eff9d8c3a Merge pull request 'Adds the shortName field to be displayed in:' (#200) from Ashutosh_Enhancement#496_ShortName into main
Reviewed-on: #200
2025-06-10 14:19:14 +00:00
Pramod Mahajan
18d6916fb8 first building expanded by default 2025-06-10 18:20:15 +05:30
Pramod Mahajan
78894918c0 first building by default expanded 2025-06-10 18:11:36 +05:30
Pramod Mahajan
49f15f574c handled globale select project 2025-06-10 17:55:22 +05:30
ad1ad667b1 Adds the shortName field to be displayed in:
- Project Card Component
- Project List Component
- Project Profile Component
2025-06-10 16:31:49 +05:30
Pramod Mahajan
558b663f6b hide project selection at local level at - project progress widget 2025-06-10 16:31:35 +05:30
Pramod Mahajan
1e51fabaa1 initialized projectId with empty string to avoid undefined state 2025-06-10 16:10:24 +05:30
Pramod Mahajan
488a92e5d1 handled local project selection independently to avoid mutating global state 2025-06-10 16:08:30 +05:30
Pramod Mahajan
c1da916ca7 hide select at local level - AttendancePage 2025-06-10 15:35:30 +05:30
Pramod Mahajan
28c995bbc0 hide select at local level - Task planning 2025-06-10 15:34:05 +05:30
Pramod Mahajan
2b8764b402 hide select at local level - DailyTask 2025-06-10 15:31:43 +05:30
Pramod Mahajan
7f1ce2b863 removed unwannted code 2025-06-10 15:29:53 +05:30
Pramod Mahajan
4df293488e added select at Global level 2025-06-10 15:29:09 +05:30
435fa730b6 conmatic changes in avatar header menu drop down
- add link for settings
- remove billing
2025-06-10 13:45:30 +05:30
ff8fca72fa Add cosmatc changes for font sizes 2025-06-10 13:16:44 +05:30
c3a52c46eb Add cosmatic changes 2025-06-10 12:46:53 +05:30
Pramod Mahajan
9573daa8b0 changed toggle nutton position for well UI 2025-06-10 11:19:59 +05:30
Pramod Mahajan
117ac31d12 Merge branch 'Feature_Directory' of https://git.marcoaiot.com/admin/marco.pms.web into newFeature_Directory 2025-06-10 09:47:56 +05:30
bab312b9ee Merge pull request 'Incorrect Old Password Shows Improper Error Message on Change Password Screen' (#196) from Kartik_Bug#490 into Issue_Jun_1W_2
Reviewed-on: #196
2025-06-09 12:31:31 +00:00
e079be39db Incorrect Old Password Shows Improper Error Message on Change Password Screen 2025-06-09 17:53:17 +05:30
69a907860b Merge pull request 'Employee Details Page Showing "NA" for All Fields.' (#195) from Kartik_Bug#485 into Issue_Jun_1W_2
Reviewed-on: #195
2025-06-09 11:56:48 +00:00
63980db512 Employee Details Page Showing "NA" for All Fields. 2025-06-09 11:56:48 +00:00
1390c655b4 Merge pull request 'Implement a spinner in the Daily Progress Report to indicate when data is being loaded.' (#194) from Kartik_Bug#487 into Issue_Jun_1W_2
Reviewed-on: #194
2025-06-09 11:54:49 +00:00
19f58345d9 add cosmati changes 2025-06-09 11:54:49 +00:00
e2f3814934 Implement a spinner in the Daily Progress Report to indicate when data is being loaded. 2025-06-09 11:54:49 +00:00
9da151ca9a Merge pull request 'Creating a Change Password popup.' (#189) from Kartik_Task#460 into Issue_Jun_1W_2
Reviewed-on: #189
2025-06-09 11:38:35 +00:00
3857fec32e add cosmatic changes 2025-06-09 11:38:35 +00:00
3a45f80f36 Changes in Change Password Popup improve its layout and functionality. 2025-06-09 11:38:35 +00:00
b4b64c4c91 Creating a Change Password page. 2025-06-09 11:38:35 +00:00
Pramod Mahajan
7dea047536 Cancel button disabled is on when processing form 2025-06-09 15:33:21 +05:30
Pramod Mahajan
3256a68d1c added getcontacts api 2025-06-09 15:27:56 +05:30
Pramod Mahajan
d4f0662f57 resolved conflict 2025-06-09 15:06:04 +05:30
Pramod Mahajan
93c1fb1844 Merge branch 'Feature_Directory' of https://git.marcoaiot.com/admin/marco.pms.web into Feature_Directory 2025-06-09 13:21:03 +05:30
Pramod Mahajan
0886990f9d if have't any bucket user can't create contacts 2025-06-09 13:18:34 +05:30
Pramod Mahajan
c7b93006d8 changed class to className 2025-06-09 13:18:34 +05:30
Pramod Mahajan
b71ca1c7fb resolve React key duplication warning in Breadcrumb component 2025-06-09 13:18:34 +05:30
Pramod Mahajan
1d43470783 changed icon 2025-06-09 13:18:33 +05:30
Pramod Mahajan
33f5bb3517 Updated to make sure the client sends the correct request. Unnecessary requests are no longer sent. 2025-06-09 13:18:33 +05:30
Pramod Mahajan
e3731cab5f added refetch function for recall after takng any assign or unassign project for update 2025-06-09 13:18:33 +05:30
Pramod Mahajan
71631fa68d added update assign project api 2025-06-09 13:18:33 +05:30
Pramod Mahajan
0b99238fa8 added api's for fetching projects by employee and update project assigning for employee 2025-06-09 13:18:33 +05:30
Pramod Mahajan
376ead7967 added modal for AssignToProject 2025-06-09 13:18:33 +05:30
Pramod Mahajan
51c02c7156 created component for assign and unassign projects for employee 2025-06-09 13:18:33 +05:30
Pramod Mahajan
977397d31f added new hook for fetching projects associated by perticular employee 2025-06-09 13:18:32 +05:30
Pramod Mahajan
b77389284c enhance UX for loading and empty states in contact table 2025-06-09 13:18:32 +05:30
Pramod Mahajan
29ef1e4016 enhance UX for loading and empty states in contact table 2025-06-09 13:18:32 +05:30
Pramod Mahajan
8d966fc5c0 enable contact name click to open contact profile 2025-06-09 13:18:32 +05:30
Pramod Mahajan
901f633177 handled error , if does'nt have category 2025-06-09 13:16:25 +05:30
Pramod Mahajan
d23a090cd5 show "NA" for missing email in contact list view 2025-06-09 13:16:25 +05:30
Pramod Mahajan
456fa6d385 show "NA" in phone number columns when contact is created without a phone number 2025-06-09 13:16:25 +05:30
Pramod Mahajan
7bf3d69174 recall usebucket hook after delete and create contact. 2025-06-09 13:16:25 +05:30
Pramod Mahajan
d5d5ecafa9 Update modal size from lg to xl for improved layout on larger screens 2025-06-09 13:16:25 +05:30
Pramod Mahajan
49dfc084c0 Replaced inline styles with Bootstrap utility classes 2025-06-09 13:16:25 +05:30
Pramod Mahajan
0026de943b fixed width 100 % for editor 2025-06-09 13:16:24 +05:30
Pramod Mahajan
3e61a9959e it able t taking tag from any device 2025-06-09 13:16:24 +05:30
Pramod Mahajan
bc657eebca Fixed conditional rendering logic for Directory project nav item 2025-06-09 13:16:24 +05:30
c4288fe35a Comments popup submit button issue. 2025-06-09 13:16:24 +05:30
f6634eb527 Correction in Comment popup from Daily Progress Report. 2025-06-09 13:16:24 +05:30
Pramod Mahajan
763d81e3b1 added restrict access to Project > Directory tab to authorized users only 2025-06-09 13:14:06 +05:30
Pramod Mahajan
c78c136467 added directory feature 2025-06-09 13:14:06 +05:30
Pramod Mahajan
360f3b2352 Added props to hide component based on role; identifies if it's a page or component 2025-06-09 13:14:06 +05:30
Pramod Mahajan
0eaea6a232 added more option for sorting contact list - projectId 2025-06-09 13:14:05 +05:30
Pramod Mahajan
08ace9b5ba changed directory menu icon 2025-06-09 13:14:05 +05:30
Pramod Mahajan
7de4de9b32 loader, not found text moved in centered area 2025-06-09 13:14:05 +05:30
Pramod Mahajan
cd7422c991 changed restore icon 2025-06-09 13:14:05 +05:30
Pramod Mahajan
e739a380f7 chnaged badge type 2025-06-09 13:14:05 +05:30
Pramod Mahajan
2eee4a1f6a removed unused props 2025-06-09 13:14:05 +05:30
Pramod Mahajan
b0e3b767d3 display contact profile data 2025-06-09 13:14:05 +05:30
Pramod Mahajan
49a3bec527 Added id check before calling fetchContactNotes function 2025-06-09 13:14:05 +05:30
Pramod Mahajan
289f4063f9 Add restore feature for deleted notes 2025-06-09 13:14:04 +05:30
Pramod Mahajan
ffd23dc11c aded validation for tags and rename label to bucket 2025-06-09 13:14:04 +05:30
Pramod Mahajan
941e74fcbb removed new contact button form header 2025-06-09 13:14:04 +05:30
Pramod Mahajan
94daa0d4c2 changed table column email to role 2025-06-09 13:14:04 +05:30
Pramod Mahajan
755ea1b0ee added restore feature for contacts 2025-06-09 13:14:04 +05:30
Pramod Mahajan
0082a60e02 fixed console warning 2025-06-09 13:14:04 +05:30
Pramod Mahajan
7d3a7adf95 added wrapped DirProver for context 2025-06-09 13:14:04 +05:30
Pramod Mahajan
6d02511847 Support tag creation on spacebar key 2025-06-09 13:14:04 +05:30
Pramod Mahajan
1f8ba16447 changed useDirectory hook calling format 2025-06-09 13:14:04 +05:30
Pramod Mahajan
bae8b130de changed delete contact Url 2025-06-09 13:14:04 +05:30
Pramod Mahajan
a35e8b645b changed navigation tab layout 2025-06-09 13:14:03 +05:30
Pramod Mahajan
875ba214dd changed font size 2025-06-09 13:14:03 +05:30
Pramod Mahajan
bc220180c4 corrected state name, mismatched 2025-06-09 13:14:03 +05:30
Pramod Mahajan
8a57d3e978 added margin btwn bucket name in filter dropdwon 2025-06-09 13:14:03 +05:30
Pramod Mahajan
c9960a1273 Fixed case mismatch in error rendering (BucketIds ➝ bucketIds) 2025-06-09 13:14:03 +05:30
Pramod Mahajan
ddaba97c8f Prevent error by safely accessing bucket creator with optional chaining 2025-06-09 13:14:03 +05:30
Pramod Mahajan
14698e92fe added directory permission Ids 2025-06-09 13:14:03 +05:30
Pramod Mahajan
ec32d9160c added manager permission for directory 2025-06-09 13:14:03 +05:30
Pramod Mahajan
6346f132bd removed eaxtra gap between avatra and name 2025-06-09 13:14:03 +05:30
Pramod Mahajan
3dd901a81f modified not url 2025-06-09 13:14:02 +05:30
Pramod Mahajan
f9ad47ef54 user can update and assign bucket to emp 2025-06-09 13:14:02 +05:30
Pramod Mahajan
62a044261a modified table layout 2025-06-09 13:14:02 +05:30
Pramod Mahajan
3c75222dd7 added classAvatar for other classes 2025-06-09 13:14:02 +05:30
Pramod Mahajan
77e3082000 add auto suggestion field for orgnaization 2025-06-09 13:14:02 +05:30
Pramod Mahajan
db75cec8e7 modifled column size 2025-06-09 13:14:02 +05:30
Pramod Mahajan
a9f3b27cb3 added assign-bucket api 2025-06-09 13:14:02 +05:30
Pramod Mahajan
813032ead2 buckets can assign employee 2025-06-09 13:14:02 +05:30
Pramod Mahajan
eb6d4e413d added float button 2025-06-09 13:14:01 +05:30
Pramod Mahajan
16389bf102 modified useBucket for refetch data 2025-06-09 13:14:01 +05:30
Pramod Mahajan
a87d2c9143 added bucket fdisplay field in contact profile 2025-06-09 13:14:01 +05:30
Pramod Mahajan
2d1d32ee16 added refresh button 2025-06-09 13:14:01 +05:30
Pramod Mahajan
c77dc76079 rename method post to delete 2025-06-09 13:14:01 +05:30
Pramod Mahajan
04d64e57c9 wrapped in context FabContext 2025-06-09 13:14:01 +05:30
Pramod Mahajan
39ef265b56 added float contaxt , action can take form any component 2025-06-09 13:14:01 +05:30
Pramod Mahajan
cd487dee49 intergated delete api 2025-06-09 13:14:01 +05:30
Pramod Mahajan
fba983f41d added validation for bucket at least one bucket required 2025-06-09 13:14:00 +05:30
Pramod Mahajan
5ef8bed2b8 created new float button component 2025-06-09 13:14:00 +05:30
Pramod Mahajan
201a8881a5 added delete bucket api 2025-06-09 13:14:00 +05:30
Pramod Mahajan
ed489842c6 center empty state messages in employee table with spacing 2025-06-09 13:14:00 +05:30
Pramod Mahajan
24ffb82616 removed fixed height from select label field 2025-06-09 13:14:00 +05:30
Pramod Mahajan
0695fb6737 add card-minHeight class for consistent card sizing 2025-06-09 13:14:00 +05:30
Pramod Mahajan
45a300e540 added .card-minHeight class with 430px min-height 2025-06-09 13:14:00 +05:30
Pramod Mahajan
b4157354f7 added sorting button to table header 2025-06-09 13:13:59 +05:30
Pramod Mahajan
8f9bfcae6b created new hook for sorting table data 2025-06-09 13:13:59 +05:30
Pramod Mahajan
47ecbcdafd increased padding for suggestion menu 2025-06-09 13:13:59 +05:30
Pramod Mahajan
41d9db6fcc created new hook useOrganization 2025-06-09 13:13:59 +05:30
Pramod Mahajan
330ac0ff62 replaced standard input with custom InputSuggestions component for organization field 2025-06-09 13:13:59 +05:30
Pramod Mahajan
1b399c1ebf added marign for select item 2025-06-09 13:13:59 +05:30
Pramod Mahajan
360bfc5650 added mirgin form bottom for select badge 2025-06-09 13:13:59 +05:30
Pramod Mahajan
1d1f82feb6 created new component for organization sugger field 2025-06-09 13:13:59 +05:30
Pramod Mahajan
195adbeb72 removed table header icons 2025-06-09 13:13:59 +05:30
Pramod Mahajan
d32b954d94 removed table header icons 2025-06-09 13:13:58 +05:30
Pramod Mahajan
c7e308586a incresed modal width for manage buckets 2025-06-09 13:13:58 +05:30
Pramod Mahajan
df1838dbba added background color, backdrop 2025-06-09 13:13:58 +05:30
Pramod Mahajan
276c97a734 removed fix height 2025-06-09 13:13:58 +05:30
Pramod Mahajan
449debc0cf changed font size 2025-06-09 13:13:58 +05:30
Pramod Mahajan
560ee8fe27 removed project select validation, it no longer required 2025-06-09 13:13:58 +05:30
Pramod Mahajan
dd0ec9d018 changed font-size 2025-06-09 13:13:58 +05:30
Pramod Mahajan
30b27ed2bb added filter action while apply filter 2025-06-09 13:13:58 +05:30
Pramod Mahajan
ee9c80749f added API methods for creating and updating directory buckets 2025-06-09 13:13:58 +05:30
Pramod Mahajan
2fc4db1f87 splited Directory component into smaller components 2025-06-09 13:13:57 +05:30
Pramod Mahajan
7a8bbaf561 added new modal for bucket management and splited code 2025-06-09 13:13:57 +05:30
Pramod Mahajan
3ff8066803 created new component for bucket managment 2025-06-09 13:13:57 +05:30
Pramod Mahajan
a965116aa5 added schema for bucket form validation 2025-06-09 13:13:57 +05:30
Pramod Mahajan
5a701ca9d7 added EditcontactCatgorry component in modal for update 2025-06-09 13:13:57 +05:30
Pramod Mahajan
ded8ab7752 created new component for update contact category 2025-06-09 13:13:33 +05:30
Pramod Mahajan
6a8332b606 modified url endpoint 2025-06-09 13:13:33 +05:30
Pramod Mahajan
51e48e632a modified url for delete and update contact tag 2025-06-09 13:13:02 +05:30
Pramod Mahajan
8999d7bb47 added new modal for edit contact tag and delete contact tag 2025-06-09 13:13:02 +05:30
Pramod Mahajan
5e3c833ca6 added new component for Edit contact Tag 2025-06-09 13:13:02 +05:30
Pramod Mahajan
3f5b79dc5c no more need 2025-06-09 13:13:02 +05:30
Pramod Mahajan
f748eecf14 added feature active and inactive not displays 2025-06-09 13:13:02 +05:30
Pramod Mahajan
df5c2e4397 modified table column, if inactive contacts hide action column 2025-06-09 13:13:01 +05:30
Pramod Mahajan
0d09bfda04 added in List view active or inactive contacts 2025-06-09 13:13:01 +05:30
Pramod Mahajan
1b575a7d5f added on more params - active 2025-06-09 13:13:01 +05:30
Pramod Mahajan
17cceeb97c modified display active as well as inactives contact 2025-06-09 13:13:01 +05:30
Pramod Mahajan
eb8140ebac modified GetContact method of taking parma active or inactive 2025-06-09 13:13:01 +05:30
Pramod Mahajan
c089ee47cf modified enable option only active contact 2025-06-09 13:13:01 +05:30
Pramod Mahajan
6010e630e8 modified hook, for taking active or incative params 2025-06-09 13:13:01 +05:30
Pramod Mahajan
0d249c7cdb display not found msg if data is empty 2025-06-09 13:13:01 +05:30
Pramod Mahajan
5fd6f26653 correct note added time 2025-06-09 13:13:01 +05:30
Pramod Mahajan
2643bbbe59 split common use fun in util file 2025-06-09 13:13:00 +05:30
Pramod Mahajan
d40d4c59f2 created separet util. fun file for directory components 2025-06-09 13:13:00 +05:30
Pramod Mahajan
bfba4133f4 pin bucket name on card 2025-06-09 13:13:00 +05:30
Pramod Mahajan
31ca02fcd8 modified filter functionality- added apply call function button 2025-06-09 13:13:00 +05:30
Pramod Mahajan
105b5c6dcc changed filter name 2025-06-09 13:13:00 +05:30
Pramod Mahajan
2607f852fb implement contact deletion with confirmation and toast feedback 2025-06-09 13:13:00 +05:30
Pramod Mahajan
54de8df956 added delete contact api 2025-06-09 13:13:00 +05:30
Pramod Mahajan
4e19c2a547 add side-by-side filtering UI for Buckets and Categories with flex layout 2025-06-09 13:13:00 +05:30
Pramod Mahajan
43b1b1ffe2 added filtering by category and buckets 2025-06-09 13:13:00 +05:30
Pramod Mahajan
c784d18427 updated cache 2025-06-09 13:12:59 +05:30
Pramod Mahajan
0e38709435 removed tab 2025-06-09 13:12:59 +05:30
Pramod Mahajan
4f70d8cb17 changed toolbar position bottom to top 2025-06-09 13:12:59 +05:30
Pramod Mahajan
24d8688069 unneeded margin removed 2025-06-09 13:12:59 +05:30
Pramod Mahajan
5a3dbe466f added delete not method inside driectoryrepository 2025-06-09 13:12:59 +05:30
Pramod Mahajan
76bbfee4fc adjust modal close button appearance and position 2025-06-09 13:12:59 +05:30
Pramod Mahajan
3e251b3d47 edit, delete option to dropdown icon size changed -sm 2025-06-09 13:12:58 +05:30
Pramod Mahajan
dcc17dea0c apply loading for card view 2025-06-09 13:12:58 +05:30
Pramod Mahajan
37066904e3 set text-primary color for add email icon 2025-06-09 13:12:58 +05:30
Pramod Mahajan
0c44ae76f8 removed phone and emaill required validation 2025-06-09 13:12:58 +05:30
Pramod Mahajan
2688c95f47 installed react-quill package and customize using new component Editor 2025-06-09 13:12:58 +05:30
Pramod Mahajan
8f6c4b0814 chanages class to className 2025-06-09 13:12:58 +05:30
Pramod Mahajan
7d489d177d repaced class to className 2025-06-09 13:12:58 +05:30
Pramod Mahajan
d9053837a6 set up triggle for open contact profile modal 2025-06-09 13:12:58 +05:30
Pramod Mahajan
7feaac1a94 Replaced buttons with icon-only UI for cleaner layout and smaller size 2025-06-09 13:12:58 +05:30
Pramod Mahajan
e3cfc1c073 addded new component for profile contact , that open in modal for adding notes 2025-06-09 13:12:57 +05:30
Pramod Mahajan
1a7636ad82 Replaced buttons with icon-only UI for cleaner layout and smaller size 2025-06-09 13:12:57 +05:30
Pramod Mahajan
96d1fd648f created separated editor component for customize react-quill 2025-06-09 13:12:57 +05:30
Pramod Mahajan
f9c3c136b3 created useContactNote hook 2025-06-09 13:12:57 +05:30
Pramod Mahajan
93c0961751 added GetNot,CreateNote,UpdateNote inside DirectoryRepository 2025-06-09 13:12:57 +05:30
Pramod Mahajan
0fc460b38f set up props variable close button display or not 2025-06-09 13:12:57 +05:30
Pramod Mahajan
7514e73d0c created new method for directoryRepository - CreateNote 2025-06-09 13:12:57 +05:30
Pramod Mahajan
038ff416e1 added new method for DirectoryRepository- GetContactProfile 2025-06-09 13:12:57 +05:30
Pramod Mahajan
69abe1bd42 added new hook - useContactProfile 2025-06-09 13:12:57 +05:30
Pramod Mahajan
3a6be65a48 replace add phone & email button with icon-only element for cleaner UI 2025-06-09 13:12:57 +05:30
Pramod Mahajan
597fa279ea chnaged checkbox color 2025-06-09 13:12:56 +05:30
Pramod Mahajan
61f0703096 text-wrap for organization column value 2025-06-09 13:12:56 +05:30
Pramod Mahajan
a9a5206062 use ITEM_PER_PAGE constant to standardize pagination 2025-06-09 13:12:56 +05:30
Pramod Mahajan
75897a2ab4 added key for listviewdirectory 2025-06-09 13:11:00 +05:30
Pramod Mahajan
1300ea33b6 removed selected 2025-06-09 13:11:00 +05:30
Pramod Mahajan
6cad6ac6e8 removed selected 2025-06-09 13:11:00 +05:30
Pramod Mahajan
2d84b489f5 removed key attribute 2025-06-09 13:11:00 +05:30
Pramod Mahajan
7b2a94b5a4 passes props inside CardViewDirectory for open edit modal 2025-06-09 13:11:00 +05:30
Pramod Mahajan
a6a4435a77 chanaged icons 2025-06-09 13:11:00 +05:30
Pramod Mahajan
bc50e58150 added fun as props to open edit modal 2025-06-09 13:10:59 +05:30
Pramod Mahajan
f8f43b62c6 restore page scroll after modal is closed 2025-06-09 13:10:59 +05:30
Pramod Mahajan
dbc1ae2c63 set default list view 2025-06-09 13:10:59 +05:30
Pramod Mahajan
76ce07d4d3 it send properly existen phone and email id if existen data 2025-06-09 13:10:59 +05:30
Pramod Mahajan
65319cac7d removed header - icon 2025-06-09 13:10:59 +05:30
Pramod Mahajan
6fec5b68e3 added avatar 2025-06-09 13:10:59 +05:30
Pramod Mahajan
41494a0816 modified phone no validation, accept upto min 6 and max 13 2025-06-09 13:10:59 +05:30
Pramod Mahajan
4753117d7b added avatar for name 2025-06-09 13:10:59 +05:30
Pramod Mahajan
bb6aaeee18 updated state for reflacte immediately update in rendered UI 2025-06-09 13:10:58 +05:30
Pramod Mahajan
bef8a28db2 added category filter and search 2025-06-09 13:10:58 +05:30
Pramod Mahajan
f11f358f49 increased width of name coulmn 2025-06-09 13:10:58 +05:30
Pramod Mahajan
65f1d32bb8 added new component for card View directory-contacts 2025-06-09 13:10:58 +05:30
Pramod Mahajan
7c67af41c3 Uncommented reset logic on component unmount for cleanup 2025-06-09 13:10:58 +05:30
Pramod Mahajan
b082aa370b Re-enabled submit and reset logic, removed console log 2025-06-09 13:10:58 +05:30
Pramod Mahajan
15967ce2fc prevent to reset form before calling api. 2025-06-09 13:10:58 +05:30
Pramod Mahajan
c83960c040 added new method for update contact 2025-06-09 13:10:58 +05:30
Pramod Mahajan
d10cbdd4bd added update contact modal 2025-06-09 13:10:57 +05:30
Pramod Mahajan
42b769c1b5 created separate contactCategory and contactTag hook for managing contacts creation and edition 2025-06-09 13:10:57 +05:30
Pramod Mahajan
ada8856b3b removed console 2025-06-09 13:10:57 +05:30
Pramod Mahajan
86e9854071 modified hook prevent to recall api 2025-06-09 13:10:57 +05:30
Pramod Mahajan
ba04e041b8 created new component for update contact 2025-06-09 13:10:57 +05:30
Pramod Mahajan
3d43facdae modified as per required changes. 2025-06-09 13:10:57 +05:30
Pramod Mahajan
3e1f93d4f1 added new props, for triggering for open modal 2025-06-09 13:10:57 +05:30
Pramod Mahajan
09b1664ac7 created new file for directory form schema 2025-06-09 13:10:57 +05:30
Pramod Mahajan
f62129e3ac modfified TagInput for prevent multiple rendering 2025-06-09 13:10:57 +05:30
Pramod Mahajan
cdec17735f created new component SelectMultiple items 2025-06-09 13:10:56 +05:30
Pramod Mahajan
8ece56da52 created style file SelectMultiple component 2025-06-09 13:10:56 +05:30
Pramod Mahajan
22dc355f7d added style for Tag list 2025-06-09 13:10:56 +05:30
Pramod Mahajan
f7c9c7c7ff added create contact and get bucket api in Directory repo 2025-06-09 13:10:56 +05:30
Pramod Mahajan
02492b0405 called submit function inside Directory component from manageDirectory 2025-06-09 13:10:56 +05:30
Pramod Mahajan
283e13985d created new contact form 2025-06-09 13:10:56 +05:30
Pramod Mahajan
a319171674 added useBuckets hook and set up cached data if have 2025-06-09 13:10:56 +05:30
Pramod Mahajan
07a402d28d changed coulmn 2025-06-09 13:10:56 +05:30
Pramod Mahajan
354c653240 modified TagInput, for array an object 2025-06-09 13:10:56 +05:30
Pramod Mahajan
33f6220622 removed backdrop 2025-06-09 13:10:55 +05:30
Pramod Mahajan
e8504c6627 integrated Contact Tag list API and display in master table 2025-06-09 13:10:55 +05:30
Pramod Mahajan
5b3b6904bf updated incorrect API endpoint 2025-06-09 13:10:55 +05:30
Pramod Mahajan
1e3a1f0365 feat: integrate Get Contact List API in useMaster hook 2025-06-09 13:10:55 +05:30
Pramod Mahajan
8d7fcc62a7 added createContactTg component inside MasterModal 2025-06-09 13:10:55 +05:30
Pramod Mahajan
5836a24aed created new createContactMaster component 2025-06-09 13:10:55 +05:30
Pramod Mahajan
8c0ab1102b added Tag master inside masterList 2025-06-09 13:10:55 +05:30
Pramod Mahajan
b4081e73bf created new repo for tag and contact category mastes 2025-06-09 13:10:55 +05:30
Pramod Mahajan
a3428fed85 added CreateContactCategory in master modal 2025-06-09 13:10:55 +05:30
Pramod Mahajan
bf0af60c47 created new constact category master 2025-06-09 13:10:55 +05:30
Pramod Mahajan
cecff08ba2 added one more master in masterList - Contact Category 2025-06-09 13:10:54 +05:30
Pramod Mahajan
8c15cacc04 display contact in list view 2025-06-09 13:10:54 +05:30
Pramod Mahajan
3393eaf48d displaye contacts in List View 2025-06-09 13:10:54 +05:30
Pramod Mahajan
c672e44c76 created new hook for get a contacts 2025-06-09 13:10:54 +05:30
Pramod Mahajan
a1e75bf7dd created new repo for get contact list 2025-06-09 13:10:54 +05:30
Pramod Mahajan
77fb787d46 removed console.log 2025-06-09 12:41:57 +05:30
Pramod Mahajan
00e61988a8 Merge branch 'Issue_Jun_1W_2' of https://git.marcoaiot.com/admin/marco.pms.web into Issue_Jun_1W_2 2025-06-09 12:37:14 +05:30
Pramod Mahajan
379d9ecb8b if have't any bucket user can't create contacts 2025-06-09 12:21:45 +05:30
9e03e6ae19 Handle conditon to hide unwanted OR label 2025-06-09 11:49:34 +05:30
945d79a250 Merge branch 'pramod_Task#482' into Issue_Jun_1W_2
# Conflicts:
#	src/pages/authentication/LoginPage.jsx
2025-06-09 11:47:03 +05:30
d37068b8d9 Modify typo 2025-06-09 11:46:00 +05:30
9ba8a1501b Merge pull request 'When hovering over the login form's password box, it appears divided, with the text box and hide button becoming separate.' (#192) from Kartik_bug#379 into Issue_Jun_1W_2
Reviewed-on: #192
2025-06-09 06:00:26 +00:00
ef47bbf8a4 When hovering over the login form's password box, it appears divided, with the text box and hide button becoming separate. 2025-06-09 06:00:26 +00:00
061c110524 Merge pull request 'Changes in Reset Password Page and adding field in Dialog box is " Change Password"' (#186) from Kartik_Task#470 into Issue_Jun_1W_2
Reviewed-on: #186
2025-06-09 05:48:47 +00:00
d5158a2151 Merge pull request 'Hide Page Number on Website Until Data Exceeds Records Limit.' (#188) from Kartik_Bug#475 into Issue_Jun_1W_2
Reviewed-on: #188
2025-06-09 05:46:12 +00:00
b6330502cb Hide Page Number on Website Until Data Exceeds Records Limit. 2025-06-09 05:46:12 +00:00
c999307a5f Merge pull request 'Adding Filter Icon on Daily Progress Report and performing a filteration according to building, floor and activity.' (#187) from Kartik_Task#472 into Issue_Jun_1W_2
Reviewed-on: #187
2025-06-09 05:39:43 +00:00
26191bccfe Adding Filter Icon on Daily Progress Report and performing a filteration according to building, floor and activity. 2025-06-09 05:39:43 +00:00
Pramod Mahajan
662d464271 changed class to className 2025-06-09 11:08:06 +05:30
Pramod Mahajan
99863442a6 resolve React key duplication warning in Breadcrumb component 2025-06-09 10:58:41 +05:30
2386bd0e74 Merge pull request 'pramod_Task-#444 : Add "Assign Project" Feature in Employee Action Menu' (#191) from pramod_Task-#444 into Feature_Directory
Reviewed-on: #191
2025-06-09 05:18:39 +00:00
Pramod Mahajan
b1253bed88 changed icon 2025-06-09 10:10:06 +05:30
Pramod Mahajan
f129645386 Updated to make sure the client sends the correct request. Unnecessary requests are no longer sent. 2025-06-09 10:03:32 +05:30
Pramod Mahajan
0b46dc0f1f added refetch function for recall after takng any assign or unassign project for update 2025-06-09 10:01:58 +05:30
Pramod Mahajan
fe87e0dbd4 added update assign project api 2025-06-08 18:40:40 +05:30
Pramod Mahajan
fa4f784b6b Merge branch 'Issue_Jun_1W' of https://git.marcoaiot.com/admin/marco.pms.web into Issue_Jun_1W_2 2025-06-07 23:42:15 +05:30
Pramod Mahajan
ab6316ef56 Merge branch 'Issue_Jun_1W' of https://git.marcoaiot.com/admin/marco.pms.web into pramod_Task#482 2025-06-07 17:42:16 +05:30
Pramod Mahajan
d345977fdc set constant time for expire time for OTP 2025-06-07 17:41:24 +05:30
Pramod Mahajan
8640a96901 set new route login through OTP 2025-06-07 17:40:49 +05:30
Pramod Mahajan
beeba834e2 added send and verify OTP api 2025-06-07 17:40:24 +05:30
Pramod Mahajan
def6524566 created new component for verify OTP 2025-06-07 17:40:03 +05:30
Pramod Mahajan
194087c0a3 added login with otp feature, added send otp api 2025-06-07 17:39:37 +05:30
Pramod Mahajan
74a5c05481 added api's for fetching projects by employee and update project assigning for employee 2025-06-07 00:10:36 +05:30
Pramod Mahajan
7baffac11a added modal for AssignToProject 2025-06-07 00:09:23 +05:30
Pramod Mahajan
a3dcd9bee3 created component for assign and unassign projects for employee 2025-06-07 00:08:25 +05:30
Pramod Mahajan
d19652a98e added new hook for fetching projects associated by perticular employee 2025-06-07 00:07:42 +05:30
40f4f2f254 Merge branch 'Kartik_Task#470' into Issue_Jun_1W_2 2025-06-06 18:37:40 +05:30
0053dbaf56 Changes in Reset Password Page and adding field in Dialog box is " Change Password" 2025-06-06 13:05:55 +00:00
b00fe50bae Merge pull request 'Creating a Change Password Page and adding Change Password field in Dialog box.' (#185) from Kartik_Task#467 into Issue_Jun_1W_2
Reviewed-on: #185
2025-06-06 13:05:17 +00:00
96ed0428c4 Changes in Reset Password Page and adding field in Dialog box is " Change Password" 2025-06-05 18:06:58 +05:30
f3b16a9fc0 Creating a Change Password Page and adding Change Password field in Dialog box. 2025-06-05 17:57:53 +05:30
43270c6bf3 Merge pull request 'Todays date is not visible in Daily Progress Report.' (#183) from Kartik_Bug#449 into Issue_Jun_1W
Reviewed-on: #183
2025-06-05 05:26:06 +00:00
101baa2b78 Todays date is not visible in Daily Progress Report. 2025-06-05 05:26:06 +00:00
c553b36e25 Merge pull request 'In Create Task popup from Infrastructure tab when we Select Activity then Excepted string message will come.' (#184) from Kartik_Bug#457 into Issue_Jun_1W
Reviewed-on: #184
2025-06-05 05:24:28 +00:00
4345c55247 In Create Task popup from Infrastructure tab when we Select Activity then Excepted string message will come. 2025-06-04 17:11:55 +05:30
655db6ac74 Merge pull request 'Added Column Today's Planned to Project Infrastructure' (#182) from Ashutosh_Enhancement#276_TodaysPlanned into Issue_Jun_1W
Reviewed-on: #182
2025-06-03 11:59:46 +00:00
176535f53f Added Column Today's Planned to Project Infrastructure 2025-06-03 11:59:46 +00:00
cfd5486fe2 Merge pull request 'In Teams Tab when we Assign a project then this dropdown not change its state .' (#181) from Kartik_Bug#442 into Issue_Jun_1W
Reviewed-on: #181
2025-06-03 11:56:04 +00:00
3486a6bc3a In Teams Tab when we Assign a project then this dropdown not change its state . 2025-06-03 11:56:04 +00:00
412125e422 Merge pull request 'Adding a error message on InActive selection on Teams tab on Projects.' (#180) from Kartik_Bug#441 into Issue_Jun_1W
Reviewed-on: #180
2025-06-03 11:54:33 +00:00
cf8a67bc2c Adding a error message on InActive selection on Teams tab on Projects. 2025-06-03 11:54:33 +00:00
18d848b697 Merge pull request 'In Report popup when we take value = 0 then giv error but now it is resolved.' (#179) from Kartik_Bug#436 into Issue_Jun_1W
Reviewed-on: #179
2025-06-03 11:53:32 +00:00
78bc8802d7 Merge pull request 'In Employee Management when we select Project then this toggle button will be disabled.' (#178) from Kartik_Bug#432 into Issue_Jun_1W
Reviewed-on: #178
2025-06-03 11:52:53 +00:00
5df397488a In Employee Management when we select Project then this toggle button will be disabled. 2025-06-03 11:52:53 +00:00
2b015947ef Merge pull request 'pramod_Bug-#433 :Show "No Contact Found" Message When Directory Is Empty' (#177) from pramod_Bug-#433 into Feature_Directory
Reviewed-on: #177
2025-06-03 11:50:29 +00:00
fed6711ece Merge pull request 'pramod_Bug-#391 : Click on Contact Name this Not Navigating to Details Page in Directory' (#176) from pramod_Bug-#391 into Feature_Directory
Reviewed-on: #176
2025-06-03 11:49:41 +00:00
Pramod Mahajan
6b5aa5fb1a enable contact name click to open contact profile 2025-06-03 11:49:41 +00:00
1ca50afc74 Merge pull request 'pramod_Task-#439 : Edit and Delete Contact Tag' (#175) from pramod_Task-#439 into Feature_Directory
Reviewed-on: #175
2025-06-03 11:48:39 +00:00
Pramod Mahajan
e83eafddd2 added editcontact tag form inside master modal 2025-06-03 11:48:39 +00:00
Pramod Mahajan
1bd050f919 correct delete contact tag url 2025-06-03 11:48:39 +00:00
4d1d3f8cca Merge pull request 'Display completion percentage for each Work Area header' (#174) from pramod_Task-#438 into Issue_Jun_1W
Reviewed-on: #174
2025-06-03 11:47:18 +00:00
493689fb1a Add progress bar for work area on Infra Page 2025-06-03 11:47:18 +00:00
Pramod Mahajan
80d3434bbf Display completion percentage for each Work Area header 2025-06-03 11:47:18 +00:00
346e7b1d1d Merge pull request 'In Employee selection double Date is shown in Front.' (#173) from Kartik_Bug#345 into Issue_Jun_1W
Reviewed-on: #173
2025-06-03 10:44:27 +00:00
b697943787 In Report popup when we take value = 0 then giv error but now it is resolved. 2025-06-03 11:11:00 +05:30
Pramod Mahajan
1298994f58 enhance UX for loading and empty states in contact table 2025-06-03 00:12:39 +05:30
Pramod Mahajan
f92ef4e52a enhance UX for loading and empty states in contact table 2025-06-03 00:09:33 +05:30
Pramod Mahajan
34c04f31ec Merge branch 'Issue_Jun_1W' of https://git.marcoaiot.com/admin/marco.pms.web into Feature_Directory 2025-06-02 23:42:00 +05:30
7e05cfbd61 In Employee selection double Date is shown in Front. 2025-06-02 17:31:07 +05:30
Pramod Mahajan
0d649fbc78 Merge branch 'main' of https://git.marcoaiot.com/admin/marco.pms.web into Feature_Directory 2025-06-02 17:13:01 +05:30
6217941b0a Merge pull request 'Pramod_Bug#384 : show "NA" for missing email in contact list view' (#171) from pramod_Bug-#384 into Feature_Directory
Reviewed-on: #171
2025-06-02 07:55:32 +00:00
Pramod Mahajan
0843123505 handled error , if does'nt have category 2025-06-02 07:55:32 +00:00
Pramod Mahajan
9c46bffc4b show "NA" for missing email in contact list view 2025-06-02 07:55:32 +00:00
da6b56ac8c Merge pull request 'show "NA" in phone number columns when contact is created without a phone number' (#170) from pramod_Bug-#385 into Feature_Directory
Reviewed-on: #170
2025-06-02 07:54:57 +00:00
7f45dbab2a Merge pull request 'pramod_Bug#422 : Incorrect Contact Count in Manage Bucket Screen' (#169) from pramod_Bug#422 into Feature_Directory
Reviewed-on: #169
2025-06-02 07:54:23 +00:00
8c3b10f1cb Merge pull request 'pramod_Bug-#215 : Fixed : Display correct icon for approved check-out regularization requests in employee attendance profile' (#168) from pramod_Bug-#215 into Issue_Jun_1W
Reviewed-on: #168
2025-06-02 07:53:58 +00:00
Pramod Mahajan
426a885629 show "NA" in phone number columns when contact is created without a phone number 2025-06-02 11:28:34 +05:30
Pramod Mahajan
e03d1b4e99 recall usebucket hook after delete and create contact. 2025-06-02 10:29:42 +05:30
Pramod Mahajan
c91682a871 fixed attendance status & logs logic with proper activity handling 2025-05-31 23:34:55 +05:30
Pramod Mahajan
cd9a02430e Merge branch 'Issue_Jun_1W' of https://git.marcoaiot.com/admin/marco.pms.web into pramod_Bug-#215 2025-05-31 19:45:08 +05:30
fe933ff983 Merge pull request 'pramod_Bug#361 : conditionally render Actions column based on permissions and project status' (#167) from pramod_Bug-#361 into Issue_Jun_1W
Reviewed-on: #167
2025-05-31 12:28:18 +00:00
Pramod Mahajan
628bf006d6 conditionally render Actions column based on permissions and project status 2025-05-31 17:02:36 +05:30
edf88a1d57 Merge pull request 'pramod_Bug#160 :Unnecessary Multiple profile API Requests call on Page Load' (#166) from pramod_Bug#160 into Issue_May_5W
Reviewed-on: #166
2025-05-31 10:17:48 +00:00
Pramod Mahajan
936636c29b optimized custom hook usage 2025-05-31 10:17:48 +00:00
Pramod Mahajan
d10d47e642 added title name for assign employee modal 2025-05-31 10:17:48 +00:00
Pramod Mahajan
14b851b87e added modal name- Assign Employee 2025-05-31 10:17:48 +00:00
bf9f09d5b4 Merge branch 'Issue_May_5W' of https://git.marcoaiot.com/admin/marco.pms.web into Issue_May_5W 2025-05-31 15:37:05 +05:30
f72c309c0c Comment code in Dashboard. 2025-05-31 15:35:36 +05:30
ccbe89f407 Cosmatic changes for Attendance Widget 2025-05-31 15:30:41 +05:30
383162c4c3 Merge branch 'Kartik_Task#414' into Issue_May_5W
# Conflicts:
#	src/components/Dashboard/Dashboard.jsx
#	src/hooks/useDashboard_Data.jsx
#	src/repositories/GlobalRepository.jsx
2025-05-31 13:49:01 +05:30
084454112a Merge branch 'Kartik_Task#400' into Issue_May_5W
# Conflicts:
#	src/components/Dashboard/Dashboard.jsx
#	src/hooks/useDashboard_Data.jsx
2025-05-31 13:41:15 +05:30
471be2edd8 Merge pull request 'Status code 400 showing on Logs tab and Daily Progress Report datepicker issue.' (#157) from Kartik_Bug#392 into Issue_May_5W
Reviewed-on: #157
2025-05-31 08:09:07 +00:00
d80082bc9b Status code 400 showing on Logs tab and Daily Progress Report datepicker issue. 2025-05-31 08:09:07 +00:00
f511292f5a Merge pull request 'Adding new Weidget in Dashboadr name is "Pending Attendance".' (#156) from Kartik_Task#342 into Issue_May_5W
Reviewed-on: #156
2025-05-31 08:08:50 +00:00
1c8461e72a Merge pull request 'pramod_Enhancement-#420 : Minor UI Enhancements – Modal Size & Responsive Adjustments' (#165) from pramod_Enhancement-#420 into Feature_Directory
Reviewed-on: #165
2025-05-31 06:52:09 +00:00
Pramod Mahajan
6819bfbb52 Update modal size from lg to xl for improved layout on larger screens 2025-05-31 12:09:46 +05:30
Pramod Mahajan
dbf7178db0 Replaced inline styles with Bootstrap utility classes 2025-05-31 12:08:47 +05:30
Pramod Mahajan
d826acbb45 fixed width 100 % for editor 2025-05-31 12:07:31 +05:30
Pramod Mahajan
4799e8e91c it able t taking tag from any device 2025-05-31 12:06:40 +05:30
dbc9bbffa2 Create a new Weidget in Dashboard name "Attendance" and Adding a features to show chart and Table on it. 2025-05-31 11:39:15 +05:30
Pramod Mahajan
07809d6635 Fixed conditional rendering logic for Directory project nav item 2025-05-31 09:42:54 +05:30
d16675bf71 Adding New Weidge in Dashboard Name is "Activity". 2025-05-30 16:19:20 +05:30
99d8be1e4b Merge pull request 'pramod_Task#410 : Display Directory Feature at Project Section' (#162) from pramod_Task#410 into Feature_Directory
Reviewed-on: #162
2025-05-30 07:15:03 +00:00
30ce981a24 Comments popup submit button issue. 2025-05-30 07:15:03 +00:00
f20a7cf4bc Changes in Comment popup 2025-05-30 07:15:03 +00:00
9c3bcaea9e Correction in Comment popup from Daily Progress Report. 2025-05-30 07:15:03 +00:00
252bf0904e In Create New Project form is not empty when we click on cancel button or cross. 2025-05-30 07:15:03 +00:00
4b64e7450e Convert all date to DD-MM-YYYY accross all component. 2025-05-30 07:15:03 +00:00
5572b80f4a In Assign Role popup double loading is visible. 2025-05-30 07:15:03 +00:00
0674fcf5bb In Report Popup from Daily Progress Report where validation message not showing properly in Completed Work Text box. 2025-05-30 07:15:03 +00:00
Pramod Mahajan
05f4a9da4d added restrict access to Project > Directory tab to authorized users only 2025-05-30 11:55:56 +05:30
Pramod Mahajan
e5bcf7111b added directory feature 2025-05-30 11:42:59 +05:30
Pramod Mahajan
6774957558 Added props to hide component based on role; identifies if it's a page or component 2025-05-30 11:42:27 +05:30
Pramod Mahajan
3594b78253 added more option for sorting contact list - projectId 2025-05-30 11:40:47 +05:30
Pramod Mahajan
e93062bdf4 changed directory menu icon 2025-05-30 11:39:44 +05:30
Pramod Mahajan
445a5e0064 loader, not found text moved in centered area 2025-05-30 11:39:18 +05:30
Pramod Mahajan
5666616b6b changed restore icon 2025-05-30 11:38:43 +05:30
Pramod Mahajan
15d313baf1 chnaged badge type 2025-05-30 11:38:02 +05:30
d74854b847 Merge pull request 'pramod_Task-#399 : Added Access Permission For 'Directory User' Role' (#160) from pramod_Task-#399 into Feature_Directory
Reviewed-on: #160
2025-05-29 17:49:54 +00:00
Pramod Mahajan
eb678585fa removed unused props 2025-05-29 17:49:54 +00:00
Pramod Mahajan
9ff79b5854 display contact profile data 2025-05-29 17:49:54 +00:00
Pramod Mahajan
616df5e869 Added id check before calling fetchContactNotes function 2025-05-29 17:49:54 +00:00
Pramod Mahajan
a88a8d3df9 Add restore feature for deleted notes 2025-05-29 17:49:54 +00:00
Pramod Mahajan
36e7755b7d aded validation for tags and rename label to bucket 2025-05-29 17:49:54 +00:00
Pramod Mahajan
73f57bb59f removed new contact button form header 2025-05-29 17:49:54 +00:00
Pramod Mahajan
41cbf69550 changed table column email to role 2025-05-29 17:49:54 +00:00
Pramod Mahajan
8b5f7e69ab added restore feature for contacts 2025-05-29 17:49:54 +00:00
Pramod Mahajan
85a957c204 fixed console warning 2025-05-29 17:49:54 +00:00
Pramod Mahajan
6fe62e7c0e added wrapped DirProver for context 2025-05-29 17:49:54 +00:00
Pramod Mahajan
b5d3b0fd08 Support tag creation on spacebar key 2025-05-29 17:49:54 +00:00
Pramod Mahajan
fd4d4f0386 changed useDirectory hook calling format 2025-05-29 17:49:54 +00:00
Pramod Mahajan
acbe3f44b5 changed delete contact Url 2025-05-29 17:49:54 +00:00
Pramod Mahajan
b268763283 changed navigation tab layout 2025-05-29 17:49:54 +00:00
Pramod Mahajan
767d8abd19 changed font size 2025-05-29 17:49:54 +00:00
Pramod Mahajan
5531d408f9 corrected state name, mismatched 2025-05-29 17:49:54 +00:00
Pramod Mahajan
3330565dcb added margin btwn bucket name in filter dropdwon 2025-05-29 17:49:54 +00:00
Pramod Mahajan
4628dea561 Fixed case mismatch in error rendering (BucketIds ➝ bucketIds) 2025-05-29 17:49:54 +00:00
3e615b3cd6 Merge pull request 'Comments popup submit button issue.' (#154) from Kartik_Bug#389 into Issue_May_5W
Reviewed-on: #154
2025-05-28 10:29:14 +00:00
627d4f898e Adding new Weidget in Dashboadr name is "Pending Attendance". 2025-05-28 13:06:03 +05:30
0880540560 Comments popup submit button issue. 2025-05-28 12:03:36 +05:30
c1020f4693 Merge pull request 'Correction in Comment popup from Daily Progress Report.' (#152) from Kartik_Bug#350 into Issue_May_5W
Reviewed-on: #152
2025-05-27 11:56:52 +00:00
94c9430406 Changes in Comment popup 2025-05-27 11:56:52 +00:00
cd3983dd19 Correction in Comment popup from Daily Progress Report. 2025-05-27 11:56:52 +00:00
a68bd7dc38 Merge pull request 'In Create New Project form is not empty when we click on cancel button or cross.' (#151) from Kartik_bug#386 into Issue_May_5W
Reviewed-on: #151
2025-05-27 10:57:12 +00:00
235ddb58ba In Create New Project form is not empty when we click on cancel button or cross. 2025-05-27 10:57:12 +00:00
b198e7142a Merge pull request 'Convert all date to DD-MM-YYYY accross all component.' (#150) from Kartik_Bug#368 into Issue_May_5W
Reviewed-on: #150
2025-05-27 07:53:31 +00:00
50d5c69db1 Convert all date to DD-MM-YYYY accross all component. 2025-05-27 07:53:31 +00:00
b479325816 Merge pull request 'In Assign Role popup double loading is visible.' (#148) from Kartik_Bug#367 into Issue_May_5W
Reviewed-on: #148
2025-05-27 06:20:13 +00:00
126ed3809f In Assign Role popup double loading is visible. 2025-05-27 09:58:20 +05:30
e15a7b887d Merge pull request 'In Report Popup from Daily Progress Report where validation message not showing properly in Completed Work Text box.' (#147) from Kartik_Enhancement#362 into Issue_May_5W
Reviewed-on: #147
2025-05-26 09:36:49 +00:00
9763c45592 In Report Popup from Daily Progress Report where validation message not showing properly in Completed Work Text box. 2025-05-26 12:54:24 +05:30
Pramod Mahajan
7bfd1728c0 updated regularization logic based on 48-hour checkout threshold for attendanceLogs. 2025-05-12 11:33:04 +05:30
418 changed files with 45936 additions and 15383 deletions

0
.scannerwork/.sonar_lock Normal file
View File

View File

@ -0,0 +1,6 @@
projectKey=pms-react
serverUrl=https://sonar.marcoaiot.com
serverVersion=25.5.0.107428
dashboardUrl=https://sonar.marcoaiot.com/dashboard?id=pms-react
ceTaskId=ad6ba36a-08cb-400b-903e-94f173cac03f
ceTaskUrl=https://sonar.marcoaiot.com/api/ce/task?id=ad6ba36a-08cb-400b-903e-94f173cac03f

View File

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<html lang="en" lang="en" class="light-style layout-navbar-fixed layout-menu-fixed layout-compact" dir="ltr"
data-theme="theme-default" data-assets-path="/assets/" data-template="vertical-menu-template" data-style="light">
<head>
<meta charset="UTF-8" />
@ -24,7 +25,10 @@
<!-- Core CSS -->
<link rel="stylesheet" href="/assets/vendor/css/core.css" class="template-customizer-core-css" />
<link rel="stylesheet" href="/assets/vendor/css/theme-default.css" class="template-customizer-theme-css" />
<link rel="stylesheet" href="/assets/css/core-extend.css" />
<link rel="stylesheet" href="/assets/css/default.css" />
<link rel="stylesheet" href="/assets/css/skeleton.css" />
<link rel="stylesheet" href="/assets/css/hover-utility.css" />
<link rel="stylesheet" href="/assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.css" />
@ -41,6 +45,7 @@
<link rel="stylesheet" href="/assets/vendor/libs/animate-css/animate.css" />
<link rel="stylesheet" href="/assets/vendor/libs/sweetalert2/sweetalert2.css" />
<link rel="stylesheet" href="/assets/vendor/libs/spinkit/spinkit.css" />
<!-- Helpers -->
<script src="/assets/vendor/js/helpers.js"></script>
@ -49,7 +54,7 @@
<!-- Timer Picker -->
<!-- Flatpickr CSS -->
<link rel="stylesheet" href="/assets/vendor/libs/flatpickr/flatpickr.css" />
<link rel="stylesheet" href="./src/assets/vendor/libs/jquery-timepicker/jquery-timepicker.css" />
<link rel="stylesheet" href="/assets/vendor/libs/jquery-timepicker/jquery-timepicker.css" />

399
package-lock.json generated
View File

@ -9,14 +9,19 @@
"version": "0.0.0",
"dependencies": {
"@hookform/resolvers": "^3.10.0",
"@microsoft/signalr": "^8.0.7",
"@reduxjs/toolkit": "^2.5.0",
"@tanstack/react-query": "^5.81.2",
"@tanstack/react-query-devtools": "^5.81.2",
"@types/web": "^0.0.216",
"@vitejs/plugin-react": "^4.3.4",
"apexcharts": "^4.5.0",
"axios": "^1.7.9",
"axios-retry": "^4.5.0",
"date-fns": "^4.1.0",
"dotenv": "^16.4.7",
"dotenv-webpack": "^8.1.0",
"eventemitter3": "^5.0.1",
"jwt-decode": "^4.0.0",
"localforage": "^1.10.0",
"match-sorter": "^6.3.1",
@ -32,6 +37,7 @@
"react-router-dom": "^6.20.1",
"react-toastify": "^11.0.2",
"sort-by": "^1.2.0",
"swiper": "^11.2.10",
"xlsx": "^0.18.5",
"zod": "^3.24.1"
},
@ -803,9 +809,9 @@
}
},
"node_modules/@jridgewell/source-map": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
"integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"version": "0.3.11",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
"integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
"license": "MIT",
"peer": true,
"dependencies": {
@ -827,6 +833,19 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"node_modules/@microsoft/signalr": {
"version": "8.0.7",
"resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-8.0.7.tgz",
"integrity": "sha512-PHcdMv8v5hJlBkRHAuKG5trGViQEkPYee36LnJQx4xHOQ5LL4X0nEWIxOp5cCtZ7tu+30quz5V3k0b1YNuc6lw==",
"license": "MIT",
"dependencies": {
"abort-controller": "^3.0.0",
"eventsource": "^2.0.2",
"fetch-cookie": "^2.0.3",
"node-fetch": "^2.6.7",
"ws": "^7.4.5"
}
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@ -1408,6 +1427,59 @@
"@swc/counter": "^0.1.3"
}
},
"node_modules/@tanstack/query-core": {
"version": "5.81.2",
"resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.81.2.tgz",
"integrity": "sha512-QLYkPdrudoMATDFa3MiLEwRhNnAlzHWDf0LKaXUqJd0/+QxN8uTPi7bahRlxoAyH0UbLMBdeDbYzWALj7THOtw==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
}
},
"node_modules/@tanstack/query-devtools": {
"version": "5.81.2",
"resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.81.2.tgz",
"integrity": "sha512-jCeJcDCwKfoyyBXjXe9+Lo8aTkavygHHsUHAlxQKKaDeyT0qyQNLKl7+UyqYH2dDF6UN/14873IPBHchcsU+Zg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
}
},
"node_modules/@tanstack/react-query": {
"version": "5.81.2",
"resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.81.2.tgz",
"integrity": "sha512-pe8kFlTrL2zFLlcAj2kZk9UaYYHDk9/1hg9EBaoO3cxDhOZf1FRGJeziSXKrVZyxIfs7b3aoOj/bw7Lie0mDUg==",
"license": "MIT",
"dependencies": {
"@tanstack/query-core": "5.81.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
"react": "^18 || ^19"
}
},
"node_modules/@tanstack/react-query-devtools": {
"version": "5.81.2",
"resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.81.2.tgz",
"integrity": "sha512-TX0OQ4cbgX6z2uN8c9x0QUNbyePGyUGdcgrGnV6TYEJc7KPT8PqeASuzoA5NGw1CiMGvyFAkIGA2KipvhM9d1g==",
"license": "MIT",
"dependencies": {
"@tanstack/query-devtools": "5.81.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
"@tanstack/react-query": "^5.81.2",
"react": "^18 || ^19"
}
},
"node_modules/@types/babel__core": {
"version": "7.20.5",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
@ -1480,13 +1552,13 @@
"peer": true
},
"node_modules/@types/node": {
"version": "22.13.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz",
"integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==",
"version": "24.5.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.2.tgz",
"integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"undici-types": "~6.20.0"
"undici-types": "~7.12.0"
}
},
"node_modules/@types/prop-types": {
@ -1750,10 +1822,23 @@
"integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==",
"license": "MIT"
},
"node_modules/abort-controller": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"license": "MIT",
"dependencies": {
"event-target-shim": "^5.0.0"
},
"engines": {
"node": ">=6.5"
}
},
"node_modules/acorn": {
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@ -1761,6 +1846,19 @@
"node": ">=0.4.0"
}
},
"node_modules/acorn-import-phases": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
"integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=10.13.0"
},
"peerDependencies": {
"acorn": "^8.14.0"
}
},
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
@ -2373,6 +2471,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/date-fns": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
"integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/kossnocorp"
}
},
"node_modules/debug": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
@ -2531,9 +2639,9 @@
"integrity": "sha512-ZpSAUOZ2Izby7qnZluSrAlGgGQzucmFbN0n64dYzocYxnxV5ufurpj3VgEe4cUp7ir9LmeLxNYo8bVnlM8bQHw=="
},
"node_modules/enhanced-resolve": {
"version": "5.18.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
"version": "5.18.3",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
"integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==",
"license": "MIT",
"peer": true,
"dependencies": {
@ -2647,9 +2755,9 @@
}
},
"node_modules/es-module-lexer": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz",
"integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==",
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
"integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
"license": "MIT",
"peer": true
},
@ -2980,10 +3088,19 @@
"node": ">=0.10.0"
}
},
"node_modules/event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/eventemitter3": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
"integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==",
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
"integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
"license": "MIT"
},
"node_modules/events": {
@ -2996,6 +3113,15 @@
"node": ">=0.8.x"
}
},
"node_modules/eventsource": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
"integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
"license": "MIT",
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@ -3026,9 +3152,9 @@
"dev": true
},
"node_modules/fast-uri": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz",
"integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
"integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
"funding": [
{
"type": "github",
@ -3051,6 +3177,16 @@
"reusify": "^1.0.4"
}
},
"node_modules/fetch-cookie": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-2.2.0.tgz",
"integrity": "sha512-h9AgfjURuCgA2+2ISl8GbavpUdR+WGAM2McW/ovn4tVccegp8ZqCKWSBR8uRdM8dDNlx5WdKRWxBYUwteLDCNQ==",
"license": "Unlicense",
"dependencies": {
"set-cookie-parser": "^2.4.8",
"tough-cookie": "^4.0.0"
}
},
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@ -4202,6 +4338,26 @@
"license": "MIT",
"peer": true
},
"node_modules/node-fetch": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"license": "MIT",
"dependencies": {
"whatwg-url": "^5.0.0"
},
"engines": {
"node": "4.x || >=6.0.0"
},
"peerDependencies": {
"encoding": "^0.1.0"
},
"peerDependenciesMeta": {
"encoding": {
"optional": true
}
}
},
"node_modules/node-releases": {
"version": "2.0.19",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
@ -4521,15 +4677,32 @@
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/psl": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
"integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
"license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
},
"funding": {
"url": "https://github.com/sponsors/lupomontero"
}
},
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/querystringify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"license": "MIT"
},
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@ -4578,6 +4751,12 @@
"node": ">=0.10"
}
},
"node_modules/quill/node_modules/eventemitter3": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
"integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==",
"license": "MIT"
},
"node_modules/randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@ -4804,6 +4983,12 @@
"node": ">=0.10.0"
}
},
"node_modules/requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"license": "MIT"
},
"node_modules/reselect": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
@ -4992,9 +5177,9 @@
}
},
"node_modules/schema-utils": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz",
"integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz",
"integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==",
"license": "MIT",
"peer": true,
"dependencies": {
@ -5066,6 +5251,12 @@
"randombytes": "^2.1.0"
}
},
"node_modules/set-cookie-parser": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz",
"integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==",
"license": "MIT"
},
"node_modules/set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
@ -5371,25 +5562,47 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/swiper": {
"version": "11.2.10",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.10.tgz",
"integrity": "sha512-RMeVUUjTQH+6N3ckimK93oxz6Sn5la4aDlgPzB+rBrG/smPdCTicXyhxa+woIpopz+jewEloiEE3lKo1h9w2YQ==",
"funding": [
{
"type": "patreon",
"url": "https://www.patreon.com/swiperjs"
},
{
"type": "open_collective",
"url": "http://opencollective.com/swiper"
}
],
"engines": {
"node": ">= 4.7.0"
}
},
"node_modules/tapable": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz",
"integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=6"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
}
},
"node_modules/terser": {
"version": "5.39.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz",
"integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==",
"version": "5.44.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz",
"integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==",
"license": "BSD-2-Clause",
"peer": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
"acorn": "^8.15.0",
"commander": "^2.20.0",
"source-map-support": "~0.5.20"
},
@ -5441,6 +5654,27 @@
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
"node_modules/tough-cookie": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
"integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
"license": "BSD-3-Clause",
"dependencies": {
"psl": "^1.1.33",
"punycode": "^2.1.1",
"universalify": "^0.2.0",
"url-parse": "^1.5.3"
},
"engines": {
"node": ">=6"
}
},
"node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
"license": "MIT"
},
"node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
@ -5561,12 +5795,21 @@
}
},
"node_modules/undici-types": {
"version": "6.20.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
"integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
"version": "7.12.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.12.0.tgz",
"integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==",
"license": "MIT",
"peer": true
},
"node_modules/universalify": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
"integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
"license": "MIT",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/update-browserslist-db": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
@ -5605,6 +5848,16 @@
"punycode": "^2.1.0"
}
},
"node_modules/url-parse": {
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
"integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"license": "MIT",
"dependencies": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
}
},
"node_modules/use-sync-external-store": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz",
@ -5672,9 +5925,9 @@
}
},
"node_modules/watchpack": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
"integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz",
"integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==",
"license": "MIT",
"peer": true,
"dependencies": {
@ -5685,22 +5938,30 @@
"node": ">=10.13.0"
}
},
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
"license": "BSD-2-Clause"
},
"node_modules/webpack": {
"version": "5.98.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz",
"integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==",
"version": "5.101.3",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.3.tgz",
"integrity": "sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==",
"license": "MIT",
"peer": true,
"dependencies": {
"@types/eslint-scope": "^3.7.7",
"@types/estree": "^1.0.6",
"@types/estree": "^1.0.8",
"@types/json-schema": "^7.0.15",
"@webassemblyjs/ast": "^1.14.1",
"@webassemblyjs/wasm-edit": "^1.14.1",
"@webassemblyjs/wasm-parser": "^1.14.1",
"acorn": "^8.14.0",
"acorn": "^8.15.0",
"acorn-import-phases": "^1.0.3",
"browserslist": "^4.24.0",
"chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.17.1",
"enhanced-resolve": "^5.17.3",
"es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
@ -5710,11 +5971,11 @@
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
"schema-utils": "^4.3.0",
"schema-utils": "^4.3.2",
"tapable": "^2.1.1",
"terser-webpack-plugin": "^5.3.11",
"watchpack": "^2.4.1",
"webpack-sources": "^3.2.3"
"webpack-sources": "^3.3.3"
},
"bin": {
"webpack": "bin/webpack.js"
@ -5733,15 +5994,22 @@
}
},
"node_modules/webpack-sources": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
"integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz",
"integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=10.13.0"
}
},
"node_modules/webpack/node_modules/@types/estree": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"license": "MIT",
"peer": true
},
"node_modules/webpack/node_modules/eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
@ -5766,6 +6034,16 @@
"node": ">=4.0"
}
},
"node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"license": "MIT",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
}
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@ -5903,6 +6181,27 @@
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
"node_modules/ws": {
"version": "7.5.10",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"license": "MIT",
"engines": {
"node": ">=8.3.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/xlsx": {
"version": "0.18.5",
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",

View File

@ -12,14 +12,19 @@
},
"dependencies": {
"@hookform/resolvers": "^3.10.0",
"@microsoft/signalr": "^8.0.7",
"@reduxjs/toolkit": "^2.5.0",
"@tanstack/react-query": "^5.81.2",
"@tanstack/react-query-devtools": "^5.81.2",
"@types/web": "^0.0.216",
"@vitejs/plugin-react": "^4.3.4",
"apexcharts": "^4.5.0",
"axios": "^1.7.9",
"axios-retry": "^4.5.0",
"date-fns": "^4.1.0",
"dotenv": "^16.4.7",
"dotenv-webpack": "^8.1.0",
"eventemitter3": "^5.0.1",
"jwt-decode": "^4.0.0",
"localforage": "^1.10.0",
"match-sorter": "^6.3.1",
@ -35,6 +40,7 @@
"react-router-dom": "^6.20.1",
"react-toastify": "^11.0.2",
"sort-by": "^1.2.0",
"swiper": "^11.2.10",
"xlsx": "^0.18.5",
"zod": "^3.24.1"
},

View File

@ -0,0 +1,282 @@
:root,
[data-bs-theme="light"] {
--bs-nav-link-font-size: 0.7375rem;
--bg-border-color :#f8f6f6
}
.card-header {
padding: 0.5rem var(--bs-card-cap-padding-x);
}
.table_header_border {
border-bottom:2px solid var(--bs-table-border-color) ;
}
.text-xxs { font-size: 0.55rem; } /* 8px */
.text-xs { font-size: 0.75rem; } /* 12px */
.text-sm { font-size: 0.875rem; } /* 14px */
.text-base { font-size: 1rem; } /* 16px */
.text-lg { font-size: 1.125rem; } /* 18px */
.text-xl { font-size: 1.25rem; } /* 20px */
.text-2xl { font-size: 1.5rem; } /* 24px */
.text-3xl { font-size: 1.875rem; } /* 30px */
.text-4xl { font-size: 2.25rem; } /* 36px */
.text-5xl { font-size: 3rem; } /* 48px */
.text-6xl { font-size: 3.75rem; } /* 60px */
.text-7xl { font-size: 4.5rem; } /* 72px */
.text-8xl { font-size: 6rem; } /* 96px */
.text-9xl { font-size: 8rem; } /* 128px */
/* */
.w-0 { width: 0px; }
.w-px { width: 1px; }
.w-1 { width: 0.25rem; } /* 4px */
.w-2 { width: 0.5rem; } /* 8px */
.w-3 { width: 0.75rem; } /* 12px */
.w-4 { width: 1rem; } /* 16px */
.w-5 { width: 1.25rem; } /* 20px */
.w-6 { width: 1.5rem; } /* 24px */
.w-8 { width: 2rem; } /* 32px */
.w-10 { width: 2.5rem; } /* 40px */
.w-12 { width: 3rem; } /* 48px */
.w-16 { width: 4rem; } /* 64px */
.w-20 { width: 5rem; } /* 80px */
.w-24 { width: 6rem; } /* 96px */
.w-32 { width: 8rem; } /* 128px */
.w-40 { width: 10rem; } /* 160px */
.w-48 { width: 12rem; } /* 192px */
.w-56 { width: 14rem; } /* 224px */
.w-64 { width: 16rem; } /* 256px */
.w-auto { width: auto; }
.w-full { width: 100%; }
.w-screen{ width: 100vw; }
.w-min { width: min-content; }
.w-max { width: max-content; }
.h-0 { height: 0px; }
.h-px { height: 1px; }
.h-1 { height: 0.25rem; } /* 4px */
.h-2 { height: 0.5rem; } /* 8px */
.h-3 { height: 0.75rem; } /* 12px */
.h-4 { height: 1rem; } /* 16px */
.h-5 { height: 1.25rem; } /* 20px */
.h-6 { height: 1.5rem; } /* 24px */
.h-8 { height: 2rem; } /* 32px */
.h-10 { height: 2.5rem; } /* 40px */
.h-12 { height: 3rem; } /* 48px */
.h-16 { height: 4rem; } /* 64px */
.h-20 { height: 5rem; } /* 80px */
.h-24 { height: 6rem; } /* 96px */
.h-32 { height: 8rem; } /* 128px */
.h-40 { height: 10rem; } /* 160px */
.h-48 { height: 12rem; } /* 192px */
.h-56 { height: 14rem; } /* 224px */
.h-64 { height: 16rem; } /* 256px */
.h-auto { height: auto; }
.h-full { height: 100%; }
.h-screen{ height: 100vh; }
.h-min { height: min-content; }
.h-max { height: max-content; }
/* ==========================
Base Font Sizes (mobile first)
========================== */
.text-xxs { font-size: 0.55rem; } /* 8px */
.text-xs { font-size: 0.75rem; } /* 12px */
.text-sm { font-size: 0.875rem; } /* 14px */
.text-base{ font-size: 1rem; } /* 16px */
.text-lg { font-size: 1.125rem; } /* 18px */
.text-xl { font-size: 1.25rem; } /* 20px */
.text-2xl { font-size: 1.5rem; } /* 24px */
.text-3xl { font-size: 1.875rem; } /* 30px */
.text-4xl { font-size: 2.25rem; } /* 36px */
.text-5xl { font-size: 3rem; } /* 48px */
.text-6xl { font-size: 3.75rem; } /* 60px */
.text-7xl { font-size: 4.5rem; } /* 72px */
.text-8xl { font-size: 6rem; } /* 96px */
.text-9xl { font-size: 8rem; } /* 128px */
/* ==========================
Base Heights
========================== */
.h-0 { height: 0; }
.h-px { height: 1px; }
.h-1 { height: 0.25rem; } /* 4px */
.h-2 { height: 0.5rem; } /* 8px */
.h-3 { height: 0.75rem; } /* 12px */
.h-4 { height: 1rem; } /* 16px */
.h-5 { height: 1.25rem; } /* 20px */
.h-6 { height: 1.5rem; } /* 24px */
.h-8 { height: 2rem; } /* 32px */
.h-10 { height: 2.5rem; } /* 40px */
.h-12 { height: 3rem; } /* 48px */
.h-16 { height: 4rem; } /* 64px */
.h-20 { height: 5rem; } /* 80px */
.h-24 { height: 6rem; } /* 96px */
.h-32 { height: 8rem; } /* 128px */
.h-40 { height: 10rem; } /* 160px */
.h-48 { height: 12rem; } /* 192px */
.h-56 { height: 14rem; } /* 224px */
.h-64 { height: 16rem; } /* 256px */
.h-full { height: 100%; }
.h-screen{ height: 100vh; }
/* ==========================
Base Widths
========================== */
.w-0 { width: 0; }
.w-px { width: 1px; }
.w-1 { width: 0.25rem; }
.w-2 { width: 0.5rem; }
.w-3 { width: 0.75rem; }
.w-4 { width: 1rem; }
.w-5 { width: 1.25rem; }
.w-6 { width: 1.5rem; }
.w-8 { width: 2rem; }
.w-10 { width: 2.5rem; }
.w-12 { width: 3rem; }
.w-16 { width: 4rem; }
.w-20 { width: 5rem; }
.w-24 { width: 6rem; }
.w-32 { width: 8rem; }
.w-40 { width: 10rem; }
.w-48 { width: 12rem; }
.w-56 { width: 14rem; }
.w-64 { width: 16rem; }
.w-full { width: 100%; }
.w-screen{ width: 100vw; }
/* ==========================
Responsive Variants
========================== */
@media (min-width: 576px) { /* sm */
/* Font */
.text-xxs-sm { font-size: 0.55rem; }
.text-xs-sm { font-size: 0.75rem; }
.text-sm-sm { font-size: 0.875rem; }
.text-base-sm{ font-size: 1rem; }
.text-lg-sm { font-size: 1.125rem; }
.text-xl-sm { font-size: 1.25rem; }
.text-2xl-sm{ font-size: 1.5rem; }
/* Height */
.h-1-sm{ height: 0.25rem; }
.h-2-sm{ height: 0.5rem; }
.h-3-sm{ height: 0.75rem; }
.h-4-sm{ height: 1rem; }
.h-5-sm{ height: 1.25rem; }
.h-6-sm{ height: 1.5rem; }
.h-8-sm{ height: 2rem; }
.h-10-sm{ height: 2.5rem; }
/* Width */
.w-1-sm{ width: 0.25rem; }
.w-2-sm{ width: 0.5rem; }
.w-3-sm{ width: 0.75rem; }
.w-4-sm{ width: 1rem; }
.w-5-sm{ width: 1.25rem; }
.w-6-sm{ width: 1.5rem; }
.w-8-sm{ width: 2rem; }
.w-10-sm{ width: 2.5rem; }
}
@media (min-width: 768px) { /* md */
/* Font */
.text-xxs-md { font-size: 0.55rem; }
.text-xs-md { font-size: 0.75rem; }
.text-sm-md { font-size: 0.875rem; }
.text-base-md{ font-size: 1rem; }
.text-lg-md { font-size: 1.125rem; }
.text-xl-md { font-size: 1.25rem; }
.text-2xl-md{ font-size: 1.5rem; }
/* Height */
.h-1-md{ height: 0.25rem; }
.h-2-md{ height: 0.5rem; }
.h-3-md{ height: 0.75rem; }
.h-4-md{ height: 1rem; }
.h-5-md{ height: 1.25rem; }
.h-6-md{ height: 1.5rem; }
.h-8-md{ height: 2rem; }
.h-10-md{ height: 2.5rem; }
/* Width */
.w-1-md{ width: 0.25rem; }
.w-2-md{ width: 0.5rem; }
.w-3-md{ width: 0.75rem; }
.w-4-md{ width: 1rem; }
.w-5-md{ width: 1.25rem; }
.w-6-md{ width: 1.5rem; }
.w-8-md{ width: 2rem; }
.w-10-md{ width: 2.5rem; }
}
@media (min-width: 992px) { /* lg */
/* Font */
.text-xxs-lg { font-size: 0.55rem; }
.text-xs-lg { font-size: 0.75rem; }
.text-sm-lg { font-size: 0.875rem; }
.text-base-lg{ font-size: 1rem; }
.text-lg-lg { font-size: 1.125rem; }
.text-xl-lg { font-size: 1.25rem; }
.text-2xl-lg{ font-size: 1.5rem; }
/* Height */
.h-1-lg{ height: 0.25rem; }
.h-2-lg{ height: 0.5rem; }
.h-3-lg{ height: 0.75rem; }
.h-4-lg{ height: 1rem; }
.h-5-lg{ height: 1.25rem; }
.h-6-lg{ height: 1.5rem; }
.h-8-lg{ height: 2rem; }
.h-10-lg{ height: 2.5rem; }
/* Width */
.w-1-lg{ width: 0.25rem; }
.w-2-lg{ width: 0.5rem; }
.w-3-lg{ width: 0.75rem; }
.w-4-lg{ width: 1rem; }
.w-5-lg{ width: 1.25rem; }
.w-6-lg{ width: 1.5rem; }
.w-8-lg{ width: 2rem; }
.w-10-lg{ width: 2.5rem; }
}
@media (min-width: 1200px) { /* xl */
/* Font */
.text-xxs-xl { font-size: 0.55rem; }
.text-xs-xl { font-size: 0.75rem; }
.text-sm-xl { font-size: 0.875rem; }
.text-base-xl{ font-size: 1rem; }
.text-lg-xl { font-size: 1.125rem; }
.text-xl-xl { font-size: 1.25rem; }
.text-2xl-xl{ font-size: 1.5rem; }
/* Height */
.h-1-xl{ height: 0.25rem; }
.h-2-xl{ height: 0.5rem; }
.h-3-xl{ height: 0.75rem; }
.h-4-xl{ height: 1rem; }
.h-5-xl{ height: 1.25rem; }
.h-6-xl{ height: 1.5rem; }
.h-8-xl{ height: 2rem; }
.h-10-xl{ height: 2.5rem; }
/* Width */
.w-1-xl{ width: 0.25rem; }
.w-2-xl{ width: 0.5rem; }
.w-3-xl{ width: 0.75rem; }
.w-4-xl{ width: 1rem; }
.w-5-xl{ width: 1.25rem; }
.w-6-xl{ width: 1.5rem; }
.w-8-xl{ width: 2rem; }
.w-10-xl{ width: 2.5rem; }
}

View File

@ -1,7 +1,3 @@
/*
* demo.css
* File include item demo only specific css only
******************************************************************************/
#root {
width: 100%;
@ -20,21 +16,26 @@
padding: 0 !important;
}
.menu .app-brand.demo {
.menu .app-brand {
height: 64px;
margin-top: 12px;
}
.app-brand-logo.demo svg {
.app-brand-logo svg {
width: 22px;
height: 38px;
}
.app-brand-logo-sidebar {
width: 70px;
width: 45px;
}
.app-brand-text.demo {
.app-brand-logo-border {
border: 1px solid #d5d5d5;
}
.app-brand-text {
font-size: 1.75rem;
letter-spacing: -0.5px;
/* text-transform: lowercase; */
@ -61,39 +62,6 @@
* Content
******************************************************************************/
.demo-blocks > * {
display: block !important;
}
.demo-inline-spacing > * {
margin: 1rem 0.375rem 0 0 !important;
}
/* ? .demo-vertical-spacing class is used to have vertical margins between elements. To remove margin-top from the first-child, use .demo-only-element class with .demo-vertical-spacing class. For example, we have used this class in forms-input-groups.html file. */
.demo-vertical-spacing > * {
margin-top: 1rem !important;
margin-bottom: 0 !important;
}
.demo-vertical-spacing.demo-only-element > :first-child {
margin-top: 0 !important;
}
.demo-vertical-spacing-lg > * {
margin-top: 1.875rem !important;
margin-bottom: 0 !important;
}
.demo-vertical-spacing-lg.demo-only-element > :first-child {
margin-top: 0 !important;
}
.demo-vertical-spacing-xl > * {
margin-top: 5rem !important;
margin-bottom: 0 !important;
}
.demo-vertical-spacing-xl.demo-only-element > :first-child {
margin-top: 0 !important;
}
.rtl-only {
display: none !important;
text-align: left !important;
@ -104,30 +72,6 @@
display: block !important;
}
/*
* Layout demo
******************************************************************************/
.layout-demo-wrapper {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
margin-top: 1rem;
}
.layout-demo-placeholder img {
width: 900px;
}
.layout-demo-info {
text-align: center;
margin-top: 1rem;
}
.infra-activity-table-header {
border-top: 0;
text-transform: capitalize !important;
@ -190,6 +134,52 @@
padding-left: 50px;
} */
.small-text{
.small-text {
font-size: 12px;
}
}
.layout-wrapper:not(.layout-horizontal)
.layout-navbar
.dropdown-menu[data-bs-popper] {
inset-block-start: 100%;
}
.ql-toolbar.ql-snow {
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
.ql-container.ql-snow {
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
max-height: 200px;
}
.ql-editor {
max-height: 200px;
}
/* Remove Table Header Top Line */
thead tr {
border-top: 1px solid white;
}
.app-brand-logo-login {
max-width: 50px; /* default for mobile */
height: auto; /* keep aspect ratio */
}
/* Tablet and up (≥768px) */
@media (min-width: 768px) {
.app-brand-logo-login {
max-width: 60px;
}
}
/* Desktop and up (≥1200px) */
@media (min-width: 1200px) {
.app-brand-logo-login {
max-width: 80px;
}
}

View File

@ -0,0 +1,86 @@
/* Hover background color */
.hover-bg-light:hover {
background-color: #f8f9fa !important;
}
.hover-bg-primary:hover {
background-color: var(--bs-primary) !important;
color: #fff !important;
}
.hover-bg-danger:hover {
background-color: #dc3545 !important;
color: #fff !important;
}
.hover-bg-success:hover {
background-color: var(--bg-success) !important;
color: #fff !important;
}
.hover-bg-warning:hover {
background-color: #ffc107 !important;
color: #212529 !important;
}
/* Hover text color */
.hover-text-primary:hover {
color: #0d6efd !important;
}
.hover-text-danger:hover {
color: #dc3545 !important;
}
.hover-text-success:hover {
color: #198754 !important;
}
.hover-text-muted:hover {
color: #6c757d !important;
}
/* Hover shadow */
.hover-shadow-sm:hover {
box-shadow: 0 .125rem .25rem rgba(0, 0, 0, 0.075);
}
.hover-shadow:hover {
box-shadow: 0 .5rem 1rem rgba(0, 0, 0, 0.15);
}
.hover-shadow-lg:hover {
box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175);
}
/* Hover scale */
.hover-scale:hover {
transform: scale(1.05);
}
.hover-scale-sm:hover {
transform: scale(1.03);
}
.hover-scale-lg:hover {
transform: scale(1.1);
}
/* Add smooth transition to hover effects */
.hover-transition {
transition: all 0.2s ease-in-out;
}
/* Hover border color */
.hover-border-primary:hover {
border-color: #0d6efd !important;
}
.hover-border-danger:hover {
border-color: #dc3545 !important;
}
.thick-divider {
height: 3px;
font-size: 10px;
}

32
public/assets/css/skeleton.css vendored Normal file
View File

@ -0,0 +1,32 @@
/* skeleton.css */
.skeleton {
background-color: #e2e8f0; /* Tailwind's gray-300 */
border-radius: 0.25rem; /* Tailwind's rounded */
position: relative;
overflow: hidden;
}
.skeleton::after {
content: '';
display: block;
position: absolute;
top: 0; left: -150px;
height: 100%;
width: 150px;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.4),
transparent
);
animation: pulse 1.5s infinite;
}
@keyframes pulse {
0% {
left: -150px;
}
100% {
left: 100%;
}
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 120 120" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="120" height="120" fill="#EFF1F3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.2503 38.4816C33.2603 37.0472 34.4199 35.8864 35.8543 35.875H83.1463C84.5848 35.875 85.7503 37.0431 85.7503 38.4816V80.5184C85.7403 81.9528 84.5807 83.1136 83.1463 83.125H35.8543C34.4158 83.1236 33.2503 81.957 33.2503 80.5184V38.4816ZM80.5006 41.1251H38.5006V77.8751L62.8921 53.4783C63.9172 52.4536 65.5788 52.4536 66.6039 53.4783L80.5006 67.4013V41.1251ZM43.75 51.6249C43.75 54.5244 46.1005 56.8749 49 56.8749C51.8995 56.8749 54.25 54.5244 54.25 51.6249C54.25 48.7254 51.8995 46.3749 49 46.3749C46.1005 46.3749 43.75 48.7254 43.75 51.6249Z" fill="#687787"/>
</svg>

After

Width:  |  Height:  |  Size: 888 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -115,4 +115,38 @@ function Main () {
// Auto update menu collapsed/expanded based on the themeConfig
window.Helpers.setCollapsed(true, false);
// perfect scrolling
const verticalExample = document.getElementById('vertical-example'),
horizontalExample = document.getElementById('horizontal-example'),
horizVertExample = document.getElementById('both-scrollbars-example');
// Vertical Example
// --------------------------------------------------------------------
if (verticalExample) {
new PerfectScrollbar(verticalExample, {
wheelPropagation: false
});
}
// Horizontal Example
// --------------------------------------------------------------------
if (horizontalExample) {
new PerfectScrollbar(horizontalExample, {
wheelPropagation: false,
suppressScrollY: true
});
}
// Both vertical and Horizontal Example
// --------------------------------------------------------------------
if (horizVertExample) {
new PerfectScrollbar(horizVertExample, {
wheelPropagation: false
});
}
};

View File

@ -454,7 +454,9 @@ table {
caption-side: bottom;
border-collapse: collapse;
}
.tr-group{
background-color: var(--bs-body-bg); /* apply globale color for table row, where grouping datewise*/
}
caption {
padding-top: 0.782rem;
padding-bottom: 0.782rem;
@ -4978,6 +4980,7 @@ fieldset:disabled .btn {
flex: 1 1 auto;
padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
color: var(--bs-card-color);
word-break: break-word;
}
.card-title {
@ -8965,10 +8968,8 @@ a:not([href]):hover {
}
/* Autofill input bg and text color issue on different OS and browsers */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
@ -8977,6 +8978,15 @@ select:-webkit-autofill:focus,
input:-internal-autofill-selected {
background-clip: text !important;
}
input:-webkit-autofill,
textarea:-webkit-autofill,
select:-webkit-autofill {
-webkit-box-shadow: 0 0 0px 1000px white inset !important;
box-shadow: 0 0 0px 1000px white inset !important;
-webkit-text-fill-color: #000 !important;
caret-color: #000 !important;
transition: background-color 5000s ease-in-out 0s;
}
h1,
.h1 {
@ -18599,6 +18609,13 @@ li:not(:first-child) .dropdown-item,
.min-vh-100 {
min-height: 100vh !important;
}
.page-min-h{
min-height: 70vh !important;
}
.modal-min-h{
min-height: 60vh !important;
}
.flex-fill {
flex: 1 1 auto !important;
@ -20463,7 +20480,10 @@ li:not(:first-child) .dropdown-item,
word-wrap: break-word !important;
word-break: break-word !important;
}
/* text-size */
.text-tiny{
font-size: 13px;
}
/* rtl:end:remove */
.text-primary {
--bs-text-opacity: 1;
@ -32528,3 +32548,29 @@ body:not(.modal-open) .layout-content-navbar .layout-navbar {
var(--bs-dark-contrast)
);
}
/* App colors classes */
.bg-gray-60{
background-color:var(--bs-gray-60)
}
.text-gray-60{
color:var(--bs-gray-60)
}
.bg-blue {
background-color:var(--bs-blue)
}
.text-blue{
color:var(--bs-blue)
}
.bg-indigo {
background-color:var(--bs-indigo)
}
.text-indigo{
color:var(--bs-indigo)
}
.bg-red {
background-color:var(--bs-red)
}
.text-red{
color:var(--bs-red)
}

View File

@ -0,0 +1,837 @@
/* Config */
:root {
--sk-size: 40px;
--sk-color: #ff3e1d;
}
/* Utility class for centering */
.sk-center {
margin: auto;
}
/* Plane
<div class="sk-plane"></div>
*/
.sk-plane {
width: var(--sk-size);
height: var(--sk-size);
background-color: var(--sk-color);
animation: sk-plane 1.2s infinite ease-in-out;
}
@keyframes sk-plane {
0% {
transform: perspective(120px) rotateX(0deg) rotateY(0deg);
}
50% {
transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
}
100% {
transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
}
}
/* Chase
<div class="sk-chase">
<div class="sk-chase-dot"></div>
<div class="sk-chase-dot"></div>
<div class="sk-chase-dot"></div>
<div class="sk-chase-dot"></div>
<div class="sk-chase-dot"></div>
<div class="sk-chase-dot"></div>
</div>
*/
.sk-chase {
width: var(--sk-size);
height: var(--sk-size);
position: relative;
animation: sk-chase 2.5s infinite linear both;
}
.sk-chase-dot {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
animation: sk-chase-dot 2s infinite ease-in-out both;
}
.sk-chase-dot:before {
content: "";
display: block;
width: 25%;
height: 25%;
background-color: var(--sk-color);
border-radius: 100%;
animation: sk-chase-dot-before 2s infinite ease-in-out both;
}
.sk-chase-dot:nth-child(1) {
animation-delay: -1.1s;
}
.sk-chase-dot:nth-child(2) {
animation-delay: -1s;
}
.sk-chase-dot:nth-child(3) {
animation-delay: -0.9s;
}
.sk-chase-dot:nth-child(4) {
animation-delay: -0.8s;
}
.sk-chase-dot:nth-child(5) {
animation-delay: -0.7s;
}
.sk-chase-dot:nth-child(6) {
animation-delay: -0.6s;
}
.sk-chase-dot:nth-child(1):before {
animation-delay: -1.1s;
}
.sk-chase-dot:nth-child(2):before {
animation-delay: -1s;
}
.sk-chase-dot:nth-child(3):before {
animation-delay: -0.9s;
}
.sk-chase-dot:nth-child(4):before {
animation-delay: -0.8s;
}
.sk-chase-dot:nth-child(5):before {
animation-delay: -0.7s;
}
.sk-chase-dot:nth-child(6):before {
animation-delay: -0.6s;
}
@keyframes sk-chase {
100% {
transform: rotate(360deg);
}
}
@keyframes sk-chase-dot {
80%, 100% {
transform: rotate(360deg);
}
}
@keyframes sk-chase-dot-before {
50% {
transform: scale(0.4);
}
100%, 0% {
transform: scale(1);
}
}
/* Bounce
<div class="sk-bounce">
<div class="sk-bounce-dot"></div>
<div class="sk-bounce-dot"></div>
</div>
*/
.sk-bounce {
width: var(--sk-size);
height: var(--sk-size);
position: relative;
}
.sk-bounce-dot {
width: 100%;
height: 100%;
border-radius: 50%;
background-color: var(--sk-color);
opacity: 0.6;
position: absolute;
top: 0;
left: 0;
animation: sk-bounce 2s infinite cubic-bezier(0.455, 0.03, 0.515, 0.955);
}
.sk-bounce-dot:nth-child(2) {
animation-delay: -1s;
}
@keyframes sk-bounce {
0%, 100% {
transform: scale(0);
}
45%, 55% {
transform: scale(1);
}
}
/* Wave
<div class="sk-wave">
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
<div class="sk-wave-rect"></div>
</div>
*/
.sk-wave {
width: var(--sk-size);
height: var(--sk-size);
display: flex;
justify-content: space-between;
}
.sk-wave-rect {
background-color: var(--sk-color);
height: 100%;
width: 15%;
animation: sk-wave 1.2s infinite ease-in-out;
}
.sk-wave-rect:nth-child(1) {
animation-delay: -1.2s;
}
.sk-wave-rect:nth-child(2) {
animation-delay: -1.1s;
}
.sk-wave-rect:nth-child(3) {
animation-delay: -1s;
}
.sk-wave-rect:nth-child(4) {
animation-delay: -0.9s;
}
.sk-wave-rect:nth-child(5) {
animation-delay: -0.8s;
}
@keyframes sk-wave {
0%, 40%, 100% {
transform: scaleY(0.4);
}
20% {
transform: scaleY(1);
}
}
/* Pulse
<div class="sk-pulse"></div>
*/
.sk-pulse {
width: var(--sk-size);
height: var(--sk-size);
background-color: var(--sk-color);
border-radius: 100%;
animation: sk-pulse 1.2s infinite cubic-bezier(0.455, 0.03, 0.515, 0.955);
}
@keyframes sk-pulse {
0% {
transform: scale(0);
}
100% {
transform: scale(1);
opacity: 0;
}
}
/* Flow
<div class="sk-flow">
<div class="sk-flow-dot"></div>
<div class="sk-flow-dot"></div>
<div class="sk-flow-dot"></div>
</div>
*/
.sk-flow {
width: calc(var(--sk-size) * 1.3);
height: calc(var(--sk-size) * 1.3);
display: flex;
justify-content: space-between;
}
.sk-flow-dot {
width: 25%;
height: 25%;
background-color: var(--sk-color);
border-radius: 50%;
animation: sk-flow 1.4s cubic-bezier(0.455, 0.03, 0.515, 0.955) 0s infinite both;
}
.sk-flow-dot:nth-child(1) {
animation-delay: -0.3s;
}
.sk-flow-dot:nth-child(2) {
animation-delay: -0.15s;
}
@keyframes sk-flow {
0%, 80%, 100% {
transform: scale(0.3);
}
40% {
transform: scale(1);
}
}
/* Swing
<div class="sk-swing">
<div class="sk-swing-dot"></div>
<div class="sk-swing-dot"></div>
</div>
*/
.sk-swing {
width: var(--sk-size);
height: var(--sk-size);
position: relative;
animation: sk-swing 1.8s infinite linear;
}
.sk-swing-dot {
width: 45%;
height: 45%;
position: absolute;
top: 0;
left: 0;
right: 0;
margin: auto;
background-color: var(--sk-color);
border-radius: 100%;
animation: sk-swing-dot 2s infinite ease-in-out;
}
.sk-swing-dot:nth-child(2) {
top: auto;
bottom: 0;
animation-delay: -1s;
}
@keyframes sk-swing {
100% {
transform: rotate(360deg);
}
}
@keyframes sk-swing-dot {
0%, 100% {
transform: scale(0.2);
}
50% {
transform: scale(1);
}
}
/* Circle
<div class="sk-circle">
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
<div class="sk-circle-dot"></div>
</div>
*/
.sk-circle {
width: var(--sk-size);
height: var(--sk-size);
position: relative;
}
.sk-circle-dot {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
}
.sk-circle-dot:before {
content: "";
display: block;
width: 15%;
height: 15%;
background-color: var(--sk-color);
border-radius: 100%;
animation: sk-circle 1.2s infinite ease-in-out both;
}
.sk-circle-dot:nth-child(1) {
transform: rotate(30deg);
}
.sk-circle-dot:nth-child(2) {
transform: rotate(60deg);
}
.sk-circle-dot:nth-child(3) {
transform: rotate(90deg);
}
.sk-circle-dot:nth-child(4) {
transform: rotate(120deg);
}
.sk-circle-dot:nth-child(5) {
transform: rotate(150deg);
}
.sk-circle-dot:nth-child(6) {
transform: rotate(180deg);
}
.sk-circle-dot:nth-child(7) {
transform: rotate(210deg);
}
.sk-circle-dot:nth-child(8) {
transform: rotate(240deg);
}
.sk-circle-dot:nth-child(9) {
transform: rotate(270deg);
}
.sk-circle-dot:nth-child(10) {
transform: rotate(300deg);
}
.sk-circle-dot:nth-child(11) {
transform: rotate(330deg);
}
.sk-circle-dot:nth-child(1):before {
animation-delay: -1.1s;
}
.sk-circle-dot:nth-child(2):before {
animation-delay: -1s;
}
.sk-circle-dot:nth-child(3):before {
animation-delay: -0.9s;
}
.sk-circle-dot:nth-child(4):before {
animation-delay: -0.8s;
}
.sk-circle-dot:nth-child(5):before {
animation-delay: -0.7s;
}
.sk-circle-dot:nth-child(6):before {
animation-delay: -0.6s;
}
.sk-circle-dot:nth-child(7):before {
animation-delay: -0.5s;
}
.sk-circle-dot:nth-child(8):before {
animation-delay: -0.4s;
}
.sk-circle-dot:nth-child(9):before {
animation-delay: -0.3s;
}
.sk-circle-dot:nth-child(10):before {
animation-delay: -0.2s;
}
.sk-circle-dot:nth-child(11):before {
animation-delay: -0.1s;
}
@keyframes sk-circle {
0%, 80%, 100% {
transform: scale(0);
}
40% {
transform: scale(1);
}
}
/* Circle Fade
<div class="sk-circle-fade">
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
<div class="sk-circle-fade-dot"></div>
</div>
*/
.sk-circle-fade {
width: var(--sk-size);
height: var(--sk-size);
position: relative;
}
.sk-circle-fade-dot {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
}
.sk-circle-fade-dot:before {
content: "";
display: block;
width: 15%;
height: 15%;
background-color: var(--sk-color);
border-radius: 100%;
animation: sk-circle-fade 1.2s infinite ease-in-out both;
}
.sk-circle-fade-dot:nth-child(1) {
transform: rotate(30deg);
}
.sk-circle-fade-dot:nth-child(2) {
transform: rotate(60deg);
}
.sk-circle-fade-dot:nth-child(3) {
transform: rotate(90deg);
}
.sk-circle-fade-dot:nth-child(4) {
transform: rotate(120deg);
}
.sk-circle-fade-dot:nth-child(5) {
transform: rotate(150deg);
}
.sk-circle-fade-dot:nth-child(6) {
transform: rotate(180deg);
}
.sk-circle-fade-dot:nth-child(7) {
transform: rotate(210deg);
}
.sk-circle-fade-dot:nth-child(8) {
transform: rotate(240deg);
}
.sk-circle-fade-dot:nth-child(9) {
transform: rotate(270deg);
}
.sk-circle-fade-dot:nth-child(10) {
transform: rotate(300deg);
}
.sk-circle-fade-dot:nth-child(11) {
transform: rotate(330deg);
}
.sk-circle-fade-dot:nth-child(1):before {
animation-delay: -1.1s;
}
.sk-circle-fade-dot:nth-child(2):before {
animation-delay: -1s;
}
.sk-circle-fade-dot:nth-child(3):before {
animation-delay: -0.9s;
}
.sk-circle-fade-dot:nth-child(4):before {
animation-delay: -0.8s;
}
.sk-circle-fade-dot:nth-child(5):before {
animation-delay: -0.7s;
}
.sk-circle-fade-dot:nth-child(6):before {
animation-delay: -0.6s;
}
.sk-circle-fade-dot:nth-child(7):before {
animation-delay: -0.5s;
}
.sk-circle-fade-dot:nth-child(8):before {
animation-delay: -0.4s;
}
.sk-circle-fade-dot:nth-child(9):before {
animation-delay: -0.3s;
}
.sk-circle-fade-dot:nth-child(10):before {
animation-delay: -0.2s;
}
.sk-circle-fade-dot:nth-child(11):before {
animation-delay: -0.1s;
}
@keyframes sk-circle-fade {
0%, 39%, 100% {
opacity: 0;
transform: scale(0.6);
}
40% {
opacity: 1;
transform: scale(1);
}
}
/* Grid
<div class="sk-grid">
<div class="sk-grid-cube"></div>
<div class="sk-grid-cube"></div>
<div class="sk-grid-cube"></div>
<div class="sk-grid-cube"></div>
<div class="sk-grid-cube"></div>
<div class="sk-grid-cube"></div>
<div class="sk-grid-cube"></div>
<div class="sk-grid-cube"></div>
<div class="sk-grid-cube"></div>
</div>
*/
.sk-grid {
width: var(--sk-size);
height: var(--sk-size);
/* Cube positions
* 1 2 3
* 4 5 6
* 7 8 9
*/
}
.sk-grid-cube {
width: 33.33%;
height: 33.33%;
background-color: var(--sk-color);
float: left;
animation: sk-grid 1.3s infinite ease-in-out;
}
.sk-grid-cube:nth-child(1) {
animation-delay: 0.2s;
}
.sk-grid-cube:nth-child(2) {
animation-delay: 0.3s;
}
.sk-grid-cube:nth-child(3) {
animation-delay: 0.4s;
}
.sk-grid-cube:nth-child(4) {
animation-delay: 0.1s;
}
.sk-grid-cube:nth-child(5) {
animation-delay: 0.2s;
}
.sk-grid-cube:nth-child(6) {
animation-delay: 0.3s;
}
.sk-grid-cube:nth-child(7) {
animation-delay: 0s;
}
.sk-grid-cube:nth-child(8) {
animation-delay: 0.1s;
}
.sk-grid-cube:nth-child(9) {
animation-delay: 0.2s;
}
@keyframes sk-grid {
0%, 70%, 100% {
transform: scale3D(1, 1, 1);
}
35% {
transform: scale3D(0, 0, 1);
}
}
/* Fold
<div class="sk-fold">
<div class="sk-fold-cube"></div>
<div class="sk-fold-cube"></div>
<div class="sk-fold-cube"></div>
<div class="sk-fold-cube"></div>
</div>
*/
.sk-fold {
width: var(--sk-size);
height: var(--sk-size);
position: relative;
transform: rotateZ(45deg);
}
.sk-fold-cube {
float: left;
width: 50%;
height: 50%;
position: relative;
transform: scale(1.1);
}
.sk-fold-cube:before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: var(--sk-color);
animation: sk-fold 2.4s infinite linear both;
transform-origin: 100% 100%;
}
.sk-fold-cube:nth-child(2) {
transform: scale(1.1) rotateZ(90deg);
}
.sk-fold-cube:nth-child(4) {
transform: scale(1.1) rotateZ(180deg);
}
.sk-fold-cube:nth-child(3) {
transform: scale(1.1) rotateZ(270deg);
}
.sk-fold-cube:nth-child(2):before {
animation-delay: 0.3s;
}
.sk-fold-cube:nth-child(4):before {
animation-delay: 0.6s;
}
.sk-fold-cube:nth-child(3):before {
animation-delay: 0.9s;
}
@keyframes sk-fold {
0%, 10% {
transform: perspective(140px) rotateX(-180deg);
opacity: 0;
}
25%, 75% {
transform: perspective(140px) rotateX(0deg);
opacity: 1;
}
90%, 100% {
transform: perspective(140px) rotateY(180deg);
opacity: 0;
}
}
/* Wander
<div class="sk-wander">
<div class="sk-wander-cube"></div>
<div class="sk-wander-cube"></div>
<div class="sk-wander-cube"></div>
<div class="sk-wander-cube"></div>
</div>
*/
.sk-wander {
width: var(--sk-size);
height: var(--sk-size);
position: relative;
}
.sk-wander-cube {
background-color: var(--sk-color);
width: 20%;
height: 20%;
position: absolute;
top: 0;
left: 0;
--sk-wander-distance: calc(var(--sk-size) * 0.75);
animation: sk-wander 2s ease-in-out -2s infinite both;
}
.sk-wander-cube:nth-child(2) {
animation-delay: -0.5s;
}
.sk-wander-cube:nth-child(3) {
animation-delay: -1s;
}
@keyframes sk-wander {
0% {
transform: rotate(0deg);
}
25% {
transform: translateX(var(--sk-wander-distance)) rotate(-90deg) scale(0.6);
}
50% { /* Make FF rotate in the right direction */
transform: translateX(var(--sk-wander-distance)) translateY(var(--sk-wander-distance)) rotate(-179deg);
}
50.1% {
transform: translateX(var(--sk-wander-distance)) translateY(var(--sk-wander-distance)) rotate(-180deg);
}
75% {
transform: translateX(0) translateY(var(--sk-wander-distance)) rotate(-270deg) scale(0.6);
}
100% {
transform: rotate(-360deg);
}
}
:root {
--sk-size: 30px;
}
.sk-wave {
width: 40px;
white-space: nowrap;
}
.sk-fading-circle .sk-circle {
margin-top: 0;
margin-bottom: 0;
}
.sk-wave {
width: 40px;
white-space: nowrap;
}
.sk-fading-circle .sk-circle {
margin-top: 0;
margin-bottom: 0;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
public/img/brand/logo-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
public/img/brand/logo-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
public/img/brand/logo-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
public/img/brand/logo-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
public/img/brand/logo-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
public/img/brand/logo-6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 37 KiB

BIN
public/img/brand/marco1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/img/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,4 @@
<svg width="65" height="65" viewBox="0 0 65 65" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.2" d="M14.125 50.9038C11.825 48.6038 13.35 43.7788 12.175 40.9538C11 38.1288 6.5 35.6538 6.5 32.5288C6.5 29.4038 10.95 27.0288 12.175 24.1038C13.4 21.1788 11.825 16.4538 14.125 14.1538C16.425 11.8538 21.25 13.3788 24.075 12.2038C26.9 11.0288 29.375 6.52881 32.5 6.52881C35.625 6.52881 38 10.9788 40.925 12.2038C43.85 13.4288 48.575 11.8538 50.875 14.1538C53.175 16.4538 51.65 21.2788 52.825 24.1038C54 26.9288 58.5 29.4038 58.5 32.5288C58.5 35.6538 54.05 38.0288 52.825 40.9538C51.6 43.8788 53.175 48.6038 50.875 50.9038C48.575 53.2038 43.75 51.6788 40.925 52.8538C38.1 54.0288 35.625 58.5288 32.5 58.5288C29.375 58.5288 27 54.0788 24.075 52.8538C21.15 51.6288 16.425 53.2038 14.125 50.9038Z" fill="#FFAB00"/>
<path d="M43.5 26.5288L28.825 40.5288L21.5 33.5288M14.125 50.9038C11.825 48.6038 13.35 43.7788 12.175 40.9538C11 38.1288 6.5 35.6538 6.5 32.5288C6.5 29.4038 10.95 27.0288 12.175 24.1038C13.4 21.1788 11.825 16.4538 14.125 14.1538C16.425 11.8538 21.25 13.3788 24.075 12.2038C26.9 11.0288 29.375 6.52881 32.5 6.52881C35.625 6.52881 38 10.9788 40.925 12.2038C43.85 13.4288 48.575 11.8538 50.875 14.1538C53.175 16.4538 51.65 21.2788 52.825 24.1038C54 26.9288 58.5 29.4038 58.5 32.5288C58.5 35.6538 54.05 38.0288 52.825 40.9538C51.6 43.8788 53.175 48.6038 50.875 50.9038C48.575 53.2038 43.75 51.6788 40.925 52.8538C38.1 54.0288 35.625 58.5288 32.5 58.5288C29.375 58.5288 27 54.0788 24.075 52.8538C21.15 51.6288 16.425 53.2038 14.125 50.9038Z" stroke="#FFAB00" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,4 @@
<svg width="64" height="65" viewBox="0 0 64 65" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.2" d="M13.625 50.8413C11.325 48.5413 12.85 43.7163 11.675 40.8913C10.5 38.0663 6 35.5913 6 32.4663C6 29.3413 10.45 26.9663 11.675 24.0413C12.9 21.1163 11.325 16.3913 13.625 14.0913C15.925 11.7913 20.75 13.3163 23.575 12.1413C26.4 10.9663 28.875 6.46631 32 6.46631C35.125 6.46631 37.5 10.9163 40.425 12.1413C43.35 13.3663 48.075 11.7913 50.375 14.0913C52.675 16.3913 51.15 21.2163 52.325 24.0413C53.5 26.8663 58 29.3413 58 32.4663C58 35.5913 53.55 37.9663 52.325 40.8913C51.1 43.8163 52.675 48.5413 50.375 50.8413C48.075 53.1413 43.25 51.6163 40.425 52.7913C37.6 53.9663 35.125 58.4663 32 58.4663C28.875 58.4663 26.5 54.0163 23.575 52.7913C20.65 51.5663 15.925 53.1413 13.625 50.8413Z" fill="#696CFF"/>
<path d="M43 26.4663L28.325 40.4663L21 33.4663M13.625 50.8413C11.325 48.5413 12.85 43.7163 11.675 40.8913C10.5 38.0663 6 35.5913 6 32.4663C6 29.3413 10.45 26.9663 11.675 24.0413C12.9 21.1163 11.325 16.3913 13.625 14.0913C15.925 11.7913 20.75 13.3163 23.575 12.1413C26.4 10.9663 28.875 6.46631 32 6.46631C35.125 6.46631 37.5 10.9163 40.425 12.1413C43.35 13.3663 48.075 11.7913 50.375 14.0913C52.675 16.3913 51.15 21.2163 52.325 24.0413C53.5 26.8663 58 29.3413 58 32.4663C58 35.5913 53.55 37.9663 52.325 40.8913C51.1 43.8163 52.675 48.5413 50.375 50.8413C48.075 53.1413 43.25 51.6163 40.425 52.7913C37.6 53.9663 35.125 58.4663 32 58.4663C28.875 58.4663 26.5 54.0163 23.575 52.7913C20.65 51.5663 15.925 53.1413 13.625 50.8413Z" stroke="#696CFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1,5 @@
<svg width="65" height="65" viewBox="0 0 65 65" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.2" d="M46.5001 10.5288H32.5001L20.2251 26.5288L32.5001 56.5288L60.5001 26.5288L46.5001 10.5288Z" fill="#03C3EC"/>
<path d="M18.5 10.5288H46.5L60.5 26.5288L32.5 56.5288L4.5 26.5288L18.5 10.5288Z" stroke="#03C3EC" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.2934 9.92012C33.1042 9.67343 32.8109 9.52881 32.5 9.52881C32.1891 9.52881 31.8958 9.67343 31.7066 9.92012L19.7318 25.5288H4.5C3.94772 25.5288 3.5 25.9765 3.5 26.5288C3.5 27.0811 3.94772 27.5288 4.5 27.5288H19.5537L31.5745 56.9075C31.7282 57.2833 32.094 57.5288 32.5 57.5288C32.906 57.5288 33.2718 57.2833 33.4255 56.9075L45.4463 27.5288H60.5C61.0523 27.5288 61.5 27.0811 61.5 26.5288C61.5 25.9765 61.0523 25.5288 60.5 25.5288H45.2682L33.2934 9.92012ZM42.7474 25.5288L32.5 12.1717L22.2526 25.5288H42.7474ZM21.7146 27.5288L32.5 53.8881L43.2854 27.5288H21.7146Z" fill="#03C3EC"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,3 @@
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.8609 18.0262V11.1962H14.1651L14.5076 8.52204H11.8609V6.81871C11.8609 6.04704 12.0759 5.51871 13.1834 5.51871H14.5868V3.13454C13.904 3.06136 13.2176 3.02603 12.5309 3.02871C10.4943 3.02871 9.09593 4.27204 9.09593 6.55454V8.51704H6.80676V11.1912H9.10093V18.0262H11.8609Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 401 B

View File

@ -0,0 +1,3 @@
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.7184 2.19556C6.12757 2.19556 2.40674 5.91639 2.40674 10.5072C2.40674 14.1789 4.78757 17.2947 8.0909 18.3947C8.50674 18.4697 8.65674 18.2139 8.65674 17.9939C8.65674 17.7964 8.65007 17.2731 8.64757 16.5806C6.33507 17.0822 5.84674 15.4656 5.84674 15.4656C5.47007 14.5056 4.92424 14.2497 4.92424 14.2497C4.17007 13.7339 4.98174 13.7456 4.98174 13.7456C5.81674 13.8039 6.25424 14.6022 6.25424 14.6022C6.9959 15.8722 8.2009 15.5056 8.67257 15.2931C8.7484 14.7556 8.96507 14.3889 9.20174 14.1814C7.35674 13.9722 5.41674 13.2589 5.41674 10.0731C5.41674 9.16722 5.74091 8.42389 6.27007 7.84389C6.1859 7.63306 5.89841 6.78722 6.35257 5.64389C6.35257 5.64389 7.05007 5.41972 8.63757 6.49472C9.31557 6.31028 10.0149 6.21614 10.7176 6.21472C11.4202 6.21586 12.1196 6.31001 12.7976 6.49472C14.3859 5.41889 15.0826 5.64389 15.0826 5.64389C15.5367 6.78722 15.2517 7.63306 15.1651 7.84389C15.6984 8.42389 16.0184 9.16639 16.0184 10.0731C16.0184 13.2672 14.0767 13.9689 12.2251 14.1747C12.5209 14.4314 12.7876 14.9381 12.7876 15.7131C12.7876 16.8247 12.7776 17.7214 12.7776 17.9939C12.7776 18.2164 12.9259 18.4747 13.3501 18.3931C16.6517 17.2914 19.0301 14.1781 19.0301 10.5072C19.0301 5.91639 15.3092 2.19556 10.7184 2.19556Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,11 @@
<svg width="18" height="19" viewBox="0 0 18 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1833_185630)">
<path d="M17.5869 6.33973C17.5774 5.62706 17.444 4.9215 17.1926 4.25456C16.9747 3.69202 16.6418 3.18112 16.2152 2.75453C15.7886 2.32793 15.2776 1.995 14.7151 1.77703C14.0568 1.5299 13.3613 1.39627 12.6582 1.38183C11.753 1.34137 11.466 1.33008 9.16819 1.33008C6.87039 1.33008 6.57586 1.33008 5.67725 1.38183C4.97451 1.39637 4.27932 1.53 3.62127 1.77703C3.05863 1.99485 2.54765 2.32772 2.12103 2.75434C1.69442 3.18096 1.36155 3.69193 1.14373 4.25456C0.896101 4.91242 0.76276 5.60776 0.749471 6.31056C0.70901 7.2167 0.696777 7.50368 0.696777 9.8015C0.696777 12.0993 0.696777 12.3928 0.749471 13.2924C0.763585 13.9963 0.89626 14.6907 1.14373 15.3503C1.36192 15.9128 1.69503 16.4236 2.1218 16.85C2.54855 17.2765 3.05957 17.6091 3.6222 17.8269C4.27846 18.084 4.97377 18.2272 5.67819 18.2504C6.58433 18.2908 6.87133 18.303 9.16913 18.303C11.4669 18.303 11.7615 18.303 12.6601 18.2504C13.3632 18.2365 14.0587 18.1032 14.717 17.8561C15.2794 17.6378 15.7902 17.3048 16.2167 16.8782C16.6433 16.4517 16.9763 15.941 17.1945 15.3785C17.442 14.7198 17.5746 14.0254 17.5888 13.3207C17.6293 12.4155 17.6414 12.1285 17.6414 9.82973C17.6396 7.53191 17.6396 7.24021 17.5869 6.33973ZM9.16255 14.1468C6.75935 14.1468 4.81251 12.2 4.81251 9.79679C4.81251 7.39359 6.75935 5.44676 9.16255 5.44676C10.3163 5.44676 11.4227 5.90506 12.2385 6.72085C13.0543 7.53664 13.5126 8.64309 13.5126 9.79679C13.5126 10.9505 13.0543 12.057 12.2385 12.8727C11.4227 13.6885 10.3163 14.1468 9.16255 14.1468ZM13.6857 6.3002C13.5525 6.30033 13.4206 6.27417 13.2974 6.22325C13.1743 6.17231 13.0624 6.09759 12.9682 6.00338C12.874 5.90917 12.7992 5.79729 12.7483 5.67417C12.6974 5.55105 12.6712 5.41909 12.6713 5.28585C12.6713 5.15271 12.6976 5.02087 12.7485 4.89786C12.7994 4.77485 12.8742 4.66308 12.9683 4.56893C13.0625 4.47479 13.1743 4.4001 13.2973 4.34915C13.4202 4.2982 13.5521 4.27197 13.6853 4.27197C13.8184 4.27197 13.9503 4.2982 14.0732 4.34915C14.1962 4.4001 14.3081 4.47479 14.4022 4.56893C14.4963 4.66308 14.571 4.77485 14.622 4.89786C14.6729 5.02087 14.6991 5.15271 14.6991 5.28585C14.6991 5.84666 14.2456 6.3002 13.6857 6.3002Z" fill="white"/>
<path d="M9.16296 12.6226C10.7236 12.6226 11.9887 11.3575 11.9887 9.79688C11.9887 8.23629 10.7236 6.97119 9.16296 6.97119C7.60238 6.97119 6.33728 8.23629 6.33728 9.79688C6.33728 11.3575 7.60238 12.6226 9.16296 12.6226Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_1833_185630">
<rect width="16.9412" height="18" fill="white" transform="translate(0.696777 0.528809)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1 @@
<svg idth="64" height="64" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path opacity="0.2" fill-rule="evenodd" clip-rule="evenodd" d="M0 142.1L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-240c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32l0 240c0 17.7 14.3 32 32 32s32-14.3 32-32l0-337.9c0-27.5-17.6-52-43.8-60.7L303.2 5.1c-9.9-3.3-20.5-3.3-30.4 0L43.8 81.4C17.6 90.1 0 114.6 0 142.1zM464 256l-352 0 0 64 352 0 0-64zM112 416l352 0 0-64-352 0 0 64zm352 32l-352 0 0 64 352 0 0-64z"/></svg>

After

Width:  |  Height:  |  Size: 500 B

View File

@ -0,0 +1,4 @@
<svg width="64" height="65" viewBox="0 0 64 65" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.2" d="M55.875 14.4663H8.125C6.95139 14.4663 6 15.4177 6 16.5913V48.3413C6 49.5149 6.95139 50.4663 8.125 50.4663H55.875C57.0486 50.4663 58 49.5149 58 48.3413V16.5913C58 15.4177 57.0486 14.4663 55.875 14.4663Z" fill="#696CFF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 16.5913C7 15.97 7.50368 15.4663 8.125 15.4663H55.875C56.4963 15.4663 57 15.97 57 16.5913V48.3413C57 48.9626 56.4963 49.4663 55.875 49.4663H8.125C7.50368 49.4663 7 48.9626 7 48.3413V16.5913ZM8.125 13.4663C6.39911 13.4663 5 14.8654 5 16.5913V48.3413C5 50.0672 6.39911 51.4663 8.125 51.4663H55.875C57.6009 51.4663 59 50.0672 59 48.3413V16.5913C59 14.8654 57.6009 13.4663 55.875 13.4663H8.125ZM14 23.4663C13.4477 23.4663 13 23.914 13 24.4663C13 25.0186 13.4477 25.4663 14 25.4663H50C50.5523 25.4663 51 25.0186 51 24.4663C51 23.914 50.5523 23.4663 50 23.4663H14ZM14 31.4663C13.4477 31.4663 13 31.914 13 32.4663C13 33.0186 13.4477 33.4663 14 33.4663H50C50.5523 33.4663 51 33.0186 51 32.4663C51 31.914 50.5523 31.4663 50 31.4663H14ZM13 40.4663C13 39.914 13.4477 39.4663 14 39.4663H16C16.5523 39.4663 17 39.914 17 40.4663C17 41.0186 16.5523 41.4663 16 41.4663H14C13.4477 41.4663 13 41.0186 13 40.4663ZM24 39.4663C23.4477 39.4663 23 39.914 23 40.4663C23 41.0186 23.4477 41.4663 24 41.4663H40C40.5523 41.4663 41 41.0186 41 40.4663C41 39.914 40.5523 39.4663 40 39.4663H24ZM47 40.4663C47 39.914 47.4477 39.4663 48 39.4663H50C50.5523 39.4663 51 39.914 51 40.4663C51 41.0186 50.5523 41.4663 50 41.4663H48C47.4477 41.4663 47 41.0186 47 40.4663Z" fill="#696CFF"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,4 @@
<svg width="64" height="65" viewBox="0 0 64 65" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.2" d="M10 44.4663V18.4663C10 17.4054 10.4214 16.388 11.1716 15.6379C11.9217 14.8877 12.9391 14.4663 14 14.4663H50C51.0609 14.4663 52.0783 14.8877 52.8284 15.6379C53.5786 16.388 54 17.4054 54 18.4663V44.4663H10Z" fill="#696CFF"/>
<path d="M10 44.4663V18.4663C10 17.4054 10.4214 16.388 11.1716 15.6379C11.9217 14.8877 12.9391 14.4663 14 14.4663H50C51.0609 14.4663 52.0783 14.8877 52.8284 15.6379C53.5786 16.388 54 17.4054 54 18.4663V44.4663M36 22.4663H28M6 44.4663H58V48.4663C58 49.5272 57.5786 50.5446 56.8284 51.2947C56.0783 52.0449 55.0609 52.4663 54 52.4663H10C8.93913 52.4663 7.92172 52.0449 7.17157 51.2947C6.42143 50.5446 6 49.5272 6 48.4663V44.4663Z" stroke="#696CFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 860 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,4 @@
<svg width="64" height="65" viewBox="0 0 64 65" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.2" d="M52.575 9.44123L5.97499 22.5662C5.57831 22.6747 5.2247 22.9028 4.96234 23.2195C4.69997 23.5361 4.54161 23.926 4.50881 24.3359C4.47602 24.7459 4.57039 25.1559 4.77907 25.5103C4.98775 25.8647 5.3006 26.1461 5.67499 26.3162L27.075 36.4412C27.4942 36.6354 27.8309 36.972 28.025 37.3912L38.15 58.7912C38.3201 59.1656 38.6016 59.4785 38.9559 59.6872C39.3103 59.8958 39.7204 59.9902 40.1303 59.9574C40.5402 59.9246 40.9301 59.7662 41.2468 59.5039C41.5634 59.2415 41.7915 58.8879 41.9 58.4912L55.025 11.8912C55.1245 11.5512 55.1306 11.1906 55.0428 10.8474C54.955 10.5041 54.7765 10.1908 54.5259 9.94028C54.2754 9.68975 53.9621 9.51123 53.6189 9.42342C53.2756 9.33562 52.9151 9.34177 52.575 9.44123Z" fill="#696CFF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M53.8666 8.45462C53.3513 8.32282 52.8102 8.33156 52.2995 8.47988L52.2942 8.48144L5.71115 21.6016L5.70701 21.6028C5.11366 21.7659 4.5848 22.1076 4.19216 22.5815C3.79862 23.0565 3.56107 23.6413 3.51188 24.2562C3.46268 24.8711 3.60424 25.4862 3.91726 26.0177C4.22884 26.5468 4.69522 26.9675 5.25338 27.2231L26.6472 37.3452L26.6472 37.3452L26.6546 37.3486C26.8589 37.4432 27.0229 37.6072 27.1175 37.8115L27.1174 37.8115L27.1209 37.8189L37.243 59.2126C37.4985 59.7708 37.9192 60.2372 38.4484 60.5488C38.9799 60.8619 39.595 61.0034 40.2099 60.9542C40.8248 60.905 41.4096 60.6675 41.8846 60.2739C42.3586 59.8813 42.7002 59.3524 42.8634 58.759L42.8645 58.755L55.9847 12.1719L55.9862 12.1668C56.1346 11.656 56.1433 11.1149 56.0115 10.5996C55.8792 10.0825 55.6103 9.61055 55.2329 9.23317C54.8556 8.85579 54.3836 8.58688 53.8666 8.45462ZM52.846 10.4038L52.5749 9.44123L52.8556 10.401C53.0235 10.3519 53.2015 10.3489 53.3709 10.3922C53.5404 10.4356 53.695 10.5237 53.8187 10.6474C53.9424 10.7711 54.0305 10.9257 54.0739 11.0952C54.1172 11.2646 54.1142 11.4426 54.0651 11.6105L54.065 11.6105L54.0623 11.6201L40.9373 58.2201L40.9353 58.2275C40.8811 58.4258 40.767 58.6026 40.6087 58.7338C40.4503 58.865 40.2554 58.9442 40.0504 58.9606C39.8455 58.977 39.6404 58.9298 39.4632 58.8255C39.2861 58.7211 39.1454 58.5647 39.0603 58.3775L39.0538 58.3635L28.9323 36.971L28.9303 36.9667C28.9285 36.9629 28.9268 36.9591 28.925 36.9553L39.732 26.1483C40.1225 25.7578 40.1225 25.1246 39.732 24.7341C39.3415 24.3436 38.7083 24.3436 38.3178 24.7341L27.5108 35.5411C27.5069 35.5393 27.503 35.5375 27.4991 35.5357L6.10255 25.4123L6.0886 25.4058C5.9014 25.3208 5.74498 25.18 5.64064 25.0029C5.53629 24.8257 5.48911 24.6206 5.50551 24.4157C5.5219 24.2107 5.60109 24.0158 5.73227 23.8574C5.86345 23.6991 6.04025 23.5851 6.2386 23.5308L6.2386 23.5309L6.24598 23.5288L52.846 10.4038Z" fill="#696CFF"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
public/img/icons/plane.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,4 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.2" fill-rule="evenodd" clip-rule="evenodd" d="M52.8934 36.9867L45.1661 27.709C45.4614 33.3937 44.0587 40.0137 39.7274 47.5687L47.1102 53.475C47.3728 53.6835 47.6842 53.8215 48.0149 53.8759C48.3457 53.9303 48.6849 53.8994 49.0004 53.786C49.3159 53.6726 49.5972 53.4806 49.8177 53.228C50.0381 52.9755 50.1905 52.6709 50.2602 52.343L53.2872 38.6602C53.3602 38.3701 53.3625 38.0667 53.294 37.7755C53.2255 37.4843 53.0881 37.2138 52.8934 36.9867ZM10.959 37.1344L18.6864 27.8813C18.3911 33.566 19.7938 40.1859 24.1251 47.7164L16.7422 53.6227C16.4814 53.8311 16.1718 53.9698 15.8426 54.0256C15.5134 54.0814 15.1754 54.0526 14.8604 53.9419C14.5453 53.8311 14.2637 53.6421 14.0418 53.3925C13.82 53.143 13.6653 52.8411 13.5922 52.5152L10.5653 38.8078C10.4923 38.5177 10.49 38.2144 10.5585 37.9232C10.627 37.632 10.7644 37.3615 10.959 37.1344Z" fill="#696CFF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.1373 4.56417C30.661 4.13034 31.3197 3.89282 31.9999 3.89282C32.6817 3.89282 33.3419 4.1314 33.8661 4.56708C36.2461 6.5048 41.3981 11.3124 44.2413 18.7028C45.231 21.2754 45.9359 24.1485 46.1526 27.3062L53.8054 36.4894C54.1015 36.8368 54.3105 37.2498 54.4151 37.6941C54.519 38.1357 54.5167 38.5956 54.4085 39.0361L51.3844 52.7309L51.3837 52.734C51.2735 53.2253 51.0402 53.6805 50.7057 54.0569C50.3712 54.4332 49.9465 54.7183 49.4715 54.8853C48.9964 55.0523 48.4867 55.0957 47.9903 55.0115C47.4939 54.9273 47.027 54.7182 46.6337 54.4039L46.6332 54.4035L39.5243 48.7164H24.4758L17.3669 54.4035L17.3665 54.4039C16.9731 54.7182 16.5062 54.9273 16.0098 55.0115C15.5134 55.0957 15.0037 55.0523 14.5287 54.8853C14.0537 54.7183 13.6289 54.4332 13.2944 54.0569C12.9599 53.6805 12.7266 53.2253 12.6165 52.734L12.6158 52.7309L9.59162 39.0361C9.48345 38.5957 9.48117 38.1358 9.58509 37.6941C9.68969 37.2496 9.89886 36.8364 10.1952 36.489L17.7037 27.4979C17.9004 24.2604 18.619 21.3188 19.6398 18.6906C22.5111 11.2981 27.7301 6.49122 30.1373 4.56417ZM44.1834 27.8703C44.1674 27.7856 44.1625 27.6995 44.1686 27.6142C43.9794 24.5834 43.3088 21.8491 42.3746 19.4209C39.7071 12.4872 34.8477 7.94455 32.5992 6.11468L32.5893 6.10666L32.5894 6.1066C32.424 5.96848 32.2154 5.89282 31.9999 5.89282C31.7845 5.89282 31.5759 5.96848 31.4105 6.1066L31.3942 6.11994C29.1222 7.93749 24.1977 12.4799 21.5041 19.4147C20.5347 21.9107 19.8484 24.7306 19.6863 27.8638C19.6871 27.9087 19.6849 27.9536 19.6796 27.9984C19.4292 33.348 20.7083 39.6051 24.7062 46.7164H39.2879C43.2365 39.5474 44.4691 33.2477 44.1834 27.8703ZM52.2729 37.7746L46.2018 30.4892C46.0153 35.5301 44.567 41.2065 41.1592 47.4631L47.8821 52.8414C48.0105 52.944 48.1628 53.0122 48.3248 53.0397C48.4868 53.0672 48.6531 53.053 48.8081 52.9985C48.9631 52.944 49.1017 52.851 49.2109 52.7282C49.3197 52.6057 49.3957 52.4576 49.4318 52.2978L49.4321 52.2965L52.4584 38.5922C52.4605 38.5827 52.4627 38.5733 52.4651 38.5639C52.499 38.4289 52.5001 38.2877 52.4682 38.1522C52.4363 38.0167 52.3724 37.8908 52.2818 37.7852L52.2728 37.7746L52.2729 37.7746ZM17.6801 30.6463L11.7266 37.7754L11.7184 37.7852L11.7183 37.7852C11.6277 37.8908 11.5638 38.0167 11.5319 38.1522C11.5 38.2877 11.5011 38.4289 11.5351 38.5639C11.5374 38.5733 11.5397 38.5827 11.5418 38.5922L14.568 52.2965L14.5683 52.2978C14.6044 52.4576 14.6804 52.6057 14.7893 52.7282C14.8984 52.851 15.037 52.944 15.192 52.9985C15.347 53.053 15.5133 53.0672 15.6753 53.0397C15.8373 53.0122 15.9897 52.944 16.118 52.8414L22.835 47.4678C19.3947 41.2766 17.9053 35.6511 17.6801 30.6463ZM27.0626 55.5914C27.0626 55.0391 27.5103 54.5914 28.0626 54.5914H35.9376C36.4899 54.5914 36.9376 55.0391 36.9376 55.5914C36.9376 56.1437 36.4899 56.5914 35.9376 56.5914H28.0626C27.5103 56.5914 27.0626 56.1437 27.0626 55.5914ZM34.9532 24.0914C34.9532 25.7224 33.631 27.0445 32.0001 27.0445C30.3691 27.0445 29.047 25.7224 29.047 24.0914C29.047 22.4604 30.3691 21.1383 32.0001 21.1383C33.631 21.1383 34.9532 22.4604 34.9532 24.0914Z" fill="#696CFF"/>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -0,0 +1,3 @@
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.0576 7.19293C17.0684 7.33876 17.0684 7.48376 17.0684 7.62876C17.0684 12.0663 13.6909 17.1796 7.5184 17.1796C5.61674 17.1796 3.85007 16.6288 2.3634 15.6721C2.6334 15.7029 2.8934 15.7138 3.17424 15.7138C4.68506 15.7174 6.15311 15.2122 7.34174 14.2796C6.64125 14.2669 5.96222 14.0358 5.39943 13.6185C4.83665 13.2013 4.41822 12.6187 4.20257 11.9521C4.41007 11.9829 4.6184 12.0038 4.83674 12.0038C5.13757 12.0038 5.44007 11.9621 5.7209 11.8896C4.9607 11.7361 4.27713 11.3241 3.78642 10.7235C3.29571 10.1229 3.02815 9.37097 3.02924 8.59543V8.55376C3.47674 8.80293 3.9959 8.95876 4.5459 8.9796C4.08514 8.67342 3.70734 8.25795 3.44619 7.77026C3.18504 7.28256 3.04866 6.73781 3.04924 6.1846C3.04924 5.56126 3.21507 4.9896 3.5059 4.49126C4.34935 5.52878 5.40132 6.37756 6.59368 6.98265C7.78604 7.58773 9.0922 7.93561 10.4276 8.00376C10.3759 7.75376 10.3442 7.4946 10.3442 7.2346C10.344 6.79373 10.4307 6.35715 10.5993 5.9498C10.7679 5.54245 11.0152 5.17233 11.3269 4.86059C11.6386 4.54885 12.0088 4.30161 12.4161 4.133C12.8235 3.96438 13.26 3.87771 13.7009 3.87793C14.6676 3.87793 15.5401 4.28293 16.1534 4.93793C16.9049 4.79261 17.6255 4.51828 18.2834 4.1271C18.0329 4.90278 17.5082 5.56052 16.8076 5.9771C17.4741 5.90108 18.1254 5.72581 18.7401 5.4571C18.281 6.12635 17.7122 6.71322 17.0576 7.19293Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,6 @@
<svg width="65" height="65" viewBox="0 0 65 65" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="User">
<path id="Vector" opacity="0.2" d="M32.4999 8.52881C27.6437 8.52739 22.9012 9.99922 18.899 12.7499C14.8969 15.5005 11.8233 19.4006 10.0844 23.9348C8.34542 28.4691 8.02291 33.4242 9.15945 38.1456C10.296 42.867 12.8381 47.1326 16.4499 50.3788C17.9549 47.4151 20.2511 44.9261 23.0841 43.1875C25.917 41.4489 29.176 40.5287 32.4999 40.5288C30.5221 40.5288 28.5887 39.9423 26.9442 38.8435C25.2997 37.7447 24.018 36.1829 23.2611 34.3556C22.5043 32.5284 22.3062 30.5177 22.6921 28.5779C23.0779 26.6381 24.0303 24.8563 25.4289 23.4577C26.8274 22.0592 28.6092 21.1068 30.549 20.721C32.4888 20.3351 34.4995 20.5331 36.3268 21.29C38.154 22.0469 39.7158 23.3286 40.8146 24.9731C41.9135 26.6176 42.4999 28.551 42.4999 30.5288C42.4999 33.181 41.4464 35.7245 39.571 37.5999C37.6956 39.4752 35.1521 40.5288 32.4999 40.5288C35.8238 40.5287 39.0829 41.4489 41.9158 43.1875C44.7487 44.9261 47.045 47.4151 48.5499 50.3788C52.1618 47.1326 54.7039 42.867 55.8404 38.1456C56.977 33.4242 56.6545 28.4691 54.9155 23.9348C53.1766 19.4006 50.103 15.5005 46.1008 12.7499C42.0987 9.99922 37.3562 8.52739 32.4999 8.52881Z" fill="#71DD37"/>
<path id="Vector_2" d="M32.5 40.5288C38.0228 40.5288 42.5 36.0517 42.5 30.5288C42.5 25.006 38.0228 20.5288 32.5 20.5288C26.9772 20.5288 22.5 25.006 22.5 30.5288C22.5 36.0517 26.9772 40.5288 32.5 40.5288ZM32.5 40.5288C29.1759 40.5288 25.9168 41.4477 23.0839 43.1866C20.2509 44.9255 17.9548 47.4149 16.45 50.3788M32.5 40.5288C35.8241 40.5288 39.0832 41.4477 41.9161 43.1866C44.7491 44.9255 47.0452 47.4149 48.55 50.3788M56.5 32.5288C56.5 45.7836 45.7548 56.5288 32.5 56.5288C19.2452 56.5288 8.5 45.7836 8.5 32.5288C8.5 19.274 19.2452 8.52881 32.5 8.52881C45.7548 8.52881 56.5 19.274 56.5 32.5288Z" stroke="#71DD37" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,4 @@
<svg width="64" height="65" viewBox="0 0 64 65" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.2" d="M31.9999 8.46631C27.1437 8.46489 22.4012 9.93672 18.399 12.6874C14.3969 15.438 11.3233 19.3381 9.58436 23.8723C7.84542 28.4066 7.52291 33.3617 8.65945 38.0831C9.79598 42.8045 12.3381 47.0701 15.9499 50.3163C17.4549 47.3526 19.7511 44.8636 22.5841 43.125C25.417 41.3864 28.676 40.4662 31.9999 40.4663C30.0221 40.4663 28.0887 39.8798 26.4442 38.781C24.7997 37.6822 23.518 36.1204 22.7611 34.2931C22.0043 32.4659 21.8062 30.4552 22.1921 28.5154C22.5779 26.5756 23.5303 24.7938 24.9289 23.3952C26.3274 21.9967 28.1092 21.0443 30.049 20.6585C31.9888 20.2726 33.9995 20.4706 35.8268 21.2275C37.654 21.9844 39.2158 23.2661 40.3146 24.9106C41.4135 26.5551 41.9999 28.4885 41.9999 30.4663C41.9999 33.1185 40.9464 35.662 39.071 37.5374C37.1956 39.4127 34.6521 40.4663 31.9999 40.4663C35.3238 40.4662 38.5829 41.3864 41.4158 43.125C44.2487 44.8636 46.545 47.3526 48.0499 50.3163C51.6618 47.0701 54.2039 42.8045 55.3404 38.0831C56.477 33.3617 56.1545 28.4066 54.4155 23.8723C52.6766 19.3381 49.603 15.438 45.6008 12.6874C41.5987 9.93672 36.8562 8.46489 31.9999 8.46631Z" fill="#696CFF"/>
<path d="M32 40.4663C37.5228 40.4663 42 35.9892 42 30.4663C42 24.9435 37.5228 20.4663 32 20.4663C26.4772 20.4663 22 24.9435 22 30.4663C22 35.9892 26.4772 40.4663 32 40.4663ZM32 40.4663C28.6759 40.4663 25.4168 41.3852 22.5839 43.1241C19.7509 44.863 17.4548 47.3524 15.95 50.3163M32 40.4663C35.3241 40.4663 38.5832 41.3852 41.4161 43.1241C44.2491 44.863 46.5452 47.3524 48.05 50.3163M56 32.4663C56 45.7211 45.2548 56.4663 32 56.4663C18.7452 56.4663 8 45.7211 8 32.4663C8 19.2115 18.7452 8.46631 32 8.46631C45.2548 8.46631 56 19.2115 56 32.4663Z" stroke="#696CFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 395 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@ -0,0 +1,383 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 27.5.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 660.738 500" style="enable-background:new 0 0 660.738 500;" xml:space="preserve">
<g id="BACKGROUND">
<rect style="fill:#FFFFFF;" width="660.738" height="500"/>
</g>
<g id="OBJECTS">
<g>
<ellipse style="fill:#F5DDB8;" cx="346.299" cy="252.054" rx="212.469" ry="204.073"/>
<ellipse style="fill:#F5DDB8;" cx="500.166" cy="136.609" rx="111.561" ry="107.153"/>
<ellipse style="fill:#F5DDB8;" cx="200.771" cy="377.989" rx="111.561" ry="107.153"/>
<ellipse style="fill:#F5DDB8;" cx="478.13" cy="332.91" rx="152.023" ry="146.016"/>
<ellipse style="fill:#F5DDB8;" cx="187.093" cy="164.392" rx="131.136" ry="125.954"/>
</g>
<g>
<defs>
<path id="SVGID_1_" d="M616.694,272.218c-17.05-35.776-20.273-76.723-7.291-114.167c3.691-10.647,5.69-22.036,5.69-33.875
c0-59.179-49.947-107.153-111.561-107.153c-36.006,0-68.023,16.388-88.421,41.818c-21.509-7.038-44.566-10.861-68.555-10.861
c-28.126,0-54.969,5.261-79.539,14.796c-23.928-24.539-57.959-39.879-95.725-39.879c-72.424,0-131.136,56.392-131.136,125.955
c0,57.435,40.469,110.084,95.19,125.234c0.606,6.721,1.107,9.152,2.375,15.672c-29.148,19.331-48.253,51.636-48.253,88.232
c0,59.179,49.947,107.152,111.561,107.152c33.924,0,64.307-14.547,84.768-37.497c19.253,5.509,39.643,8.483,60.76,8.483
c14.941,0,29.519-1.489,43.59-4.307c24.88,17.064,55.339,27.106,88.241,27.106c83.96,0,152.023-65.373,152.023-146.016
C630.412,311.254,625.502,290.7,616.694,272.218z"/>
</defs>
<clipPath id="SVGID_00000034081970537545137950000001927858695121682357_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<g style="clip-path:url(#SVGID_00000034081970537545137950000001927858695121682357_);">
<line style="fill:none;stroke:#C79E7D;stroke-miterlimit:10;" x1="543.39" y1="347.122" x2="543.39" y2="377.424"/>
<line style="fill:none;stroke:#C79E7D;stroke-miterlimit:10;" x1="572.915" y1="295.842" x2="572.915" y2="326.144"/>
<line style="fill:none;stroke:#C79E7D;stroke-miterlimit:10;" x1="562.815" y1="294.64" x2="562.815" y2="323.813"/>
<line style="fill:none;stroke:#C79E7D;stroke-miterlimit:10;" x1="568.253" y1="283.41" x2="568.253" y2="331.583"/>
<line style="fill:none;stroke:#C79E7D;stroke-miterlimit:10;" x1="548.829" y1="351.784" x2="548.829" y2="382.086"/>
<rect x="537.041" y="363.267" style="fill:#D9AC88;" width="31.941" height="131.863"/>
<rect x="557.242" y="308.101" style="fill:#D9AC88;" width="25.47" height="131.863"/>
<g style="opacity:0.76;">
<polyline style="fill:none;stroke:#C79E7D;stroke-miterlimit:10;" points="443.982,216.684 419.604,178.441 415.851,178.027
386.42,210.634 "/>
<line style="fill:none;stroke:#BD997F;stroke-miterlimit:10;" x1="161.296" y1="151.887" x2="161.296" y2="531.322"/>
<line style="fill:none;stroke:#BD997F;stroke-miterlimit:10;" x1="181.74" y1="151.887" x2="181.74" y2="531.322"/>
<line style="fill:none;stroke:#BD997F;stroke-miterlimit:10;" x1="180.104" y1="151.887" x2="180.104" y2="531.322"/>
<line style="fill:none;stroke:#BD997F;stroke-miterlimit:10;" x1="196.459" y1="151.887" x2="196.459" y2="531.322"/>
<line style="fill:none;stroke:#BD997F;stroke-miterlimit:10;" x1="182.161" y1="126.476" x2="424.378" y2="153.223"/>
<line style="fill:none;stroke:#BD997F;stroke-miterlimit:10;" x1="180.905" y1="137.855" x2="423.121" y2="164.603"/>
<polyline style="fill:none;stroke:#BD997F;stroke-miterlimit:10;" points="417.944,164.305 406.496,151.249 391.452,160.831
378.861,148.197 365.201,157.658 353.965,145.173 340.516,155.206 329.821,142.782 313.121,152.456 302.999,139.82
285.757,149.434 275.062,137.009 259.145,147.043 249.353,133.895 231.269,143.691 218.467,130.485 203.121,140.308
194.112,127.521 "/>
<polyline style="fill:none;stroke:#BD997F;stroke-miterlimit:10;" points="162.172,153.702 181.051,175.781 161.914,198.678
181.826,218.85 162.431,236.022 182.085,257.556 161.914,276.91 182.085,296.808 161.914,318.887 181.568,338.513 "/>
<polyline style="fill:none;stroke:#BD997F;stroke-miterlimit:10;" points="181.397,153.357 195.482,175.436 181.204,198.333
196.061,218.504 181.589,235.677 196.254,257.211 181.204,276.564 196.254,296.463 181.204,318.542 195.868,338.168 "/>
<polyline style="fill:none;stroke:#C79E7D;stroke-miterlimit:10;" points="88.253,121.605 182.27,67.404 422.301,153.405
"/>
<rect x="349.63" y="145.277" transform="matrix(-0.994 -0.1098 0.1098 -0.994 752.7931 334.7805)" style="fill:#C79E7D;" width="71.962" height="2.787"/>
<rect x="257.42" y="107.318" transform="matrix(0.1098 -0.994 0.994 0.1098 98.5395 375.3563)" style="fill:#C79E7D;" width="2.787" height="50.7"/>
<rect x="415.398" y="148.232" transform="matrix(-0.994 -0.1098 0.1098 -0.994 818.0342 372.9768)" style="fill:#C79E7D;" width="7.769" height="31.483"/>
<polygon style="fill:none;stroke:#BD997F;stroke-miterlimit:10;" points="73.978,130.161 171.921,140.976 173.133,130.003
81.497,120.659 "/>
<polygon style="fill:#C79E7D;" points="155.287,153.901 203.743,153.852 204.036,123.188 189.052,113.391 155.673,113.424
"/>
<rect x="392.337" y="223.501" transform="matrix(-0.994 -0.1098 0.1098 -0.994 796.2745 511.3983)" style="fill:#C79E7D;" width="39.751" height="20.564"/>
<rect x="381.993" y="211.561" transform="matrix(-0.994 -0.1098 0.1098 -0.994 801.0934 482.4521)" style="fill:#C79E7D;" width="63.665" height="15.231"/>
<rect x="176.936" y="63.332" style="fill:#C79E7D;" width="3.15" height="64.256"/>
</g>
<rect x="182.74" y="246.202" style="fill:#3A6A6B;" width="38.527" height="236.494"/>
<rect x="174.452" y="246.202" style="fill:#479E88;" width="38.527" height="236.494"/>
<g>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="579.296" y1="120.027" x2="579.296" y2="338.645"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="599.792" y1="120.027" x2="599.792" y2="338.645"/>
<g>
<polyline style="fill:none;stroke:#19303B;stroke-miterlimit:10;" points="234.517,168.001 262.854,132.779 266.617,132.779
292.208,168.305 "/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="522.533" y1="123.575" x2="522.533" y2="501.786"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="502.155" y1="123.575" x2="502.155" y2="501.786"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="503.786" y1="123.575" x2="503.786" y2="501.786"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="487.484" y1="123.575" x2="487.484" y2="501.786"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="503.786" y1="107.272" x2="260.883" y2="107.272"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="503.786" y1="118.684" x2="260.883" y2="118.684"/>
<polyline style="fill:none;stroke:#19303B;stroke-miterlimit:10;" points="266.045,118.955 278.815,107.272 292.672,118.412
306.529,107.272 319.027,118.14 331.526,107.001 343.752,118.412 355.707,107.272 371.194,118.684 382.606,107.272
398.637,118.684 410.591,107.544 425.263,119.227 436.403,107.272 453.249,118.955 467.378,107.272 481.506,118.684
491.831,107.001 "/>
<polyline style="fill:none;stroke:#19303B;stroke-miterlimit:10;" points="522.004,137.431 503.187,159.439 522.262,182.262
502.413,202.368 521.746,219.486 502.155,240.95 522.262,260.241 502.155,280.076 522.262,302.084 502.671,321.646 "/>
<polyline style="fill:none;stroke:#19303B;stroke-miterlimit:10;" points="503.174,137.431 488.299,159.439 503.378,182.262
487.687,202.368 502.971,219.486 487.484,240.95 503.378,260.241 487.484,280.076 503.378,302.084 487.891,321.646 "/>
<polyline style="fill:none;stroke:#19303B;stroke-miterlimit:10;" points="600.376,115.423 513.159,51.437 262.921,107.68
"/>
<rect x="264.143" y="103.632" style="fill:#BD4F4F;" width="71.73" height="2.778"/>
<rect x="401.897" y="103.632" style="fill:#BD4F4F;" width="50.537" height="2.778"/>
<rect x="260.883" y="102.789" style="fill:#BD4F4F;" width="7.744" height="31.382"/>
<rect x="512.344" y="111.755" style="fill:#BD4F4F;" width="98.221" height="11.004"/>
<rect x="571.032" y="125.205" style="fill:#325578;" width="37.087" height="6.113"/>
<rect x="571.032" y="134.986" style="fill:#325578;" width="37.087" height="6.113"/>
<rect x="571.032" y="144.767" style="fill:#325578;" width="37.087" height="6.113"/>
<rect x="509.899" y="44.101" style="fill:#325578;" width="3.668" height="53.797"/>
<polygon style="fill:#325578;" points="529.462,135.801 478.925,135.801 478.925,105.234 494.65,95.453 529.462,95.453
"/>
<polygon style="fill:none;stroke:#BF5068;stroke-miterlimit:10;" points="523.846,131.318 484.54,131.318 484.54,107.544
496.771,99.936 523.846,99.936 "/>
<rect x="228.674" y="178.169" style="fill:#325578;" width="70.894" height="6.216"/>
<rect x="232.392" y="166.179" style="fill:#479E88;" width="63.46" height="15.182"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="230.968" y1="171.949" x2="296.731" y2="171.949"/>
</g>
<path style="fill:#BD4F4F;" d="M589.315,347.297L589.315,347.297c-8.504,0-15.397-6.894-15.397-15.397v-5.552h30.795v5.552
C604.713,340.403,597.819,347.297,589.315,347.297z"/>
<circle style="fill:#325578;" cx="580.207" cy="291.278" r="6.149"/>
<path style="fill:#325578;" d="M606.396,290.822c0,3.396-2.753,6.149-6.149,6.149s-6.149-2.753-6.149-6.149
c0-3.396,2.753-6.149,6.149-6.149S606.396,287.426,606.396,290.822z"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="600.247" y1="290.822" x2="578.385" y2="290.822"/>
<path style="fill:#479E88;" d="M602.98,290.822c0,1.509-1.223,2.733-2.733,2.733c-1.509,0-2.733-1.224-2.733-2.733
c0-1.509,1.223-2.733,2.733-2.733C601.756,288.089,602.98,289.313,602.98,290.822z"/>
<path style="fill:#479E88;" d="M582.516,290.822c0,1.509-1.224,2.733-2.733,2.733c-1.509,0-2.733-1.224-2.733-2.733
c0-1.509,1.224-2.733,2.733-2.733C581.293,288.089,582.516,289.313,582.516,290.822z"/>
</g>
<rect x="116.053" y="430.259" style="fill:#D9AC88;" width="496.488" height="78.475"/>
<rect x="320.725" y="189.035" style="fill:none;stroke:#C79E7D;stroke-miterlimit:10;" width="166.015" height="236.494"/>
<rect x="274.423" y="203.209" style="fill:none;stroke:#C79E7D;stroke-miterlimit:10;" width="92.756" height="236.494"/>
<rect x="84.841" y="210.884" style="fill:#D9AC88;" width="50.109" height="211.726"/>
<rect x="83.262" y="184.467" style="fill:#D9AC88;" width="12.862" height="211.726"/>
<g>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="229.099" y1="356.612" x2="526.25" y2="356.612"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="229.099" y1="374.605" x2="526.25" y2="374.605"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="458.935" y1="223.77" x2="458.935" y2="278.584"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="468.551" y1="220.057" x2="468.551" y2="274.871"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="337.766" y1="237.233" x2="337.766" y2="292.047"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="347.383" y1="233.52" x2="347.383" y2="288.334"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="478.168" y1="229.673" x2="478.168" y2="274.871"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="251.217" y1="201.785" x2="251.217" y2="256.599"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="262.757" y1="197.939" x2="262.757" y2="252.753"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="275.259" y1="208.517" x2="275.259" y2="253.714"/>
<rect x="243.524" y="224.865" style="fill:#3A6A6B;" width="46.16" height="224.066"/>
<rect x="468.487" y="265.085" style="fill:#19303B;" width="38.53" height="183.845"/>
<rect x="452.139" y="248.463" style="fill:#19303B;" width="38.53" height="200.467"/>
<rect x="404.43" y="259.685" style="fill:#3A6A6B;" width="27.922" height="190.207"/>
<rect x="379.2" y="252.753" style="fill:#19303B;" width="15.076" height="196.297"/>
<rect x="335.925" y="252.753" style="fill:#19303B;" width="20.112" height="196.297"/>
<rect x="240.639" y="224.865" style="fill:#479E88;" width="46.159" height="224.066"/>
<rect x="465.602" y="265.085" style="fill:#479E88;" width="38.53" height="183.845"/>
<rect x="449.254" y="248.463" style="fill:#479E88;" width="38.53" height="200.467"/>
<rect x="401.545" y="271.22" style="fill:#479E88;" width="15.076" height="178.673"/>
<rect x="376.315" y="252.753" style="fill:#479E88;" width="15.076" height="196.297"/>
<rect x="333.04" y="252.753" style="fill:#479E88;" width="20.112" height="196.297"/>
<rect x="227.176" y="290.257" style="opacity:0.56;fill:#19303B;" width="286.573" height="11.54"/>
<rect x="227.176" y="285.449" style="fill:#479E88;" width="286.573" height="11.54"/>
<rect x="468.487" y="303.348" style="fill:#F5DDB8;" width="8.851" height="145.583"/>
<rect x="453.101" y="247.945" style="fill:#1FBFA7;" width="4.872" height="200.986"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="302.185" y1="337.379" x2="302.185" y2="447.007"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="318.533" y1="337.379" x2="318.533" y2="447.007"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="426.238" y1="337.379" x2="426.238" y2="447.007"/>
<line style="fill:none;stroke:#19303B;stroke-miterlimit:10;" x1="442.586" y1="337.379" x2="442.586" y2="447.007"/>
</g>
<rect x="251.299" y="434.695" style="fill:#BD4F4F;" width="238.099" height="29.057"/>
<path style="fill:#19303B;" d="M494.097,449.443c0,8.033-1.574,14.545-3.515,14.545s-3.515-6.512-3.515-14.545
s1.574-14.545,3.515-14.545S494.097,441.41,494.097,449.443z"/>
<path style="fill:#C9A369;" d="M56.567,491.13c14.865-19.063,31.052-37.094,48.4-53.929
c14.764-14.326,33.631-31.545,56.014-27.963c11.418,1.827,21.057,9.199,30.161,16.329c26.424,20.695,42.479,42.806,55.564,73.643
"/>
<g>
<rect x="294.057" y="415.207" style="fill:#E06767;" width="238.099" height="22.747"/>
<path style="fill:none;stroke:#19303B;stroke-width:0.5;stroke-miterlimit:10;" d="M513.828,437.92
c-1.631,0-2.953-5.077-2.953-11.339c0-6.263,1.322-11.339,2.953-11.339"/>
<path style="fill:none;stroke:#19303B;stroke-width:0.5;stroke-miterlimit:10;" d="M469.416,437.92
c-1.631,0-2.953-5.077-2.953-11.339c0-6.263,1.322-11.339,2.953-11.339"/>
<path style="fill:none;stroke:#19303B;stroke-width:0.5;stroke-miterlimit:10;" d="M425.004,437.92
c-1.631,0-2.953-5.077-2.953-11.339c0-6.263,1.322-11.339,2.953-11.339"/>
<path style="fill:none;stroke:#19303B;stroke-width:0.5;stroke-miterlimit:10;" d="M380.591,437.92
c-1.631,0-2.953-5.077-2.953-11.339c0-6.263,1.322-11.339,2.953-11.339"/>
<path style="fill:none;stroke:#19303B;stroke-width:0.5;stroke-miterlimit:10;" d="M336.179,437.92
c-1.631,0-2.953-5.077-2.953-11.339c0-6.263,1.322-11.339,2.953-11.339"/>
<path style="fill:#BF5068;" d="M294.503,437.92c-1.631,0-2.953-5.077-2.953-11.339c0-6.263,1.322-11.339,2.953-11.339"/>
<path style="fill:#19303B;" d="M535.181,426.58c0,6.263-1.322,11.339-2.953,11.339c-1.631,0-2.953-5.077-2.953-11.339
c0-6.263,1.322-11.339,2.953-11.339C533.859,415.241,535.181,420.318,535.181,426.58z"/>
</g>
<path style="fill:#FFCF85;" d="M147.473,491.13c14.865-19.063,31.052-37.094,48.4-53.929
c14.764-14.326,33.631-31.545,56.014-27.963c11.418,1.827,21.057,9.199,30.161,16.329c26.424,20.695,42.479,42.806,55.564,73.643
"/>
<path style="fill:#E6BA78;" d="M246.926,517.547c14.865-19.063,31.052-37.094,48.4-53.929
c14.764-14.326,33.631-31.545,56.014-27.963c11.418,1.827,21.057,9.199,30.161,16.329c26.423,20.695,42.479,42.806,55.564,73.643
"/>
</g>
</g>
<g>
<defs>
<rect id="SVGID_00000003788632383088003210000006058380616871777177_" width="660.738" height="500"/>
</defs>
<clipPath id="SVGID_00000134218526486784863960000000169376898782754693_">
<use xlink:href="#SVGID_00000003788632383088003210000006058380616871777177_" style="overflow:visible;"/>
</clipPath>
<g style="clip-path:url(#SVGID_00000134218526486784863960000000169376898782754693_);">
<path style="fill:#F0806C;" d="M258.789,317.704c2.625-3.164,5.538-6.132,8.211-9.214c0.622-0.717,1.285-1.463,2.179-1.785
c0.894-0.321,2.081-0.039,2.435,0.843c0.286,0.712-0.049,1.508-0.38,2.202c-1.207,2.532-2.402,5.069-3.62,7.595
c-0.932,1.934-2.303,3.609-3.379,5.493c-2.042,3.573-6.243,11.528-11.399,8.525c-0.356-0.208-0.7-0.472-0.878-0.844
c-0.283-0.594-0.076-1.297,0.153-1.914C253.622,324.524,256.048,321.008,258.789,317.704z"/>
<path style="fill:#BF6D5E;" d="M246.028,453.269c-5.808-0.139-11.579-0.492-17.259-1.156c-1.997-0.234-3.643-1.677-4.108-3.633
c-0.395-1.659-1.09-3.3-1.624-4.917c-5.379-16.285-10.757-32.569-16.136-48.854c-6.686-20.243-14.01-39.608-14.063-61.301
c-0.016-6.382,0.554-13.073,3.986-18.454c6.714-10.53,18.625-7.685,25.687,0.656c7.134,8.426,9.177,19.908,10.959,30.804
c4.642,28.384,10.293,56.768,11.943,85.313c0.029,0.494,0.1,1.016,0.412,1.4c0.328,0.404,0.856,0.577,1.354,0.731
c7.89,2.43,15.78,4.86,23.671,7.291c5.116,1.576,10.234,3.152,15.278,4.943c1.393,0.494,2.987,1.22,3.042,2.845
c0.025,0.743-0.34,1.455-0.893,1.953c-1.183,1.065-2.758,1.178-4.262,1.264C271.548,452.858,258.7,453.572,246.028,453.269z"/>
<g>
<path style="fill:#FFFFFF;" d="M301.262,258.703c-12.34,11.127-21.704,25.475-28.658,40.641
c-9.589,20.912-16.423,44.389-22.017,66.565c-0.66,2.617-8.663,40.873-10.306,40.873c0.05,0,112.779,0,112.779,0
c4.184-16.594,7.032-49.299,19.362-86.426c3.811-11.476,10.014-24.28,16.831-33.91c6.764-9.555,14.371-18.479,21.527-27.744
H301.262z"/>
<path style="fill:none;stroke:#3A6A6B;stroke-miterlimit:10;stroke-dasharray:4;" d="M309.279,264.364
c-36.147,40.974-47.883,82.94-55.14,127.305"/>
<path style="fill:none;stroke:#3A6A6B;stroke-width:0.5;stroke-miterlimit:10;stroke-dasharray:4;" d="M315.495,264.019
c-36.147,40.974-47.883,82.94-55.14,127.305"/>
<polygon style="fill:none;stroke:#3A6A6B;stroke-width:0.5;stroke-miterlimit:10;" points="303.693,354.892 293.057,391.151
274.686,390.872 285.322,355.171 "/>
<path style="opacity:0.39;fill:#3A6A6B;" d="M326.14,311.773c-4.762-0.249-17.295-0.331-18.799-0.294
c-9.654,20.526-16.996,49.158-23.85,79.499h46.36c0,0,11.655-50.245,23.568-78.475
C344.518,312.177,335.034,312.238,326.14,311.773z"/>
<line style="opacity:0.39;fill:none;stroke:#3A6A6B;stroke-miterlimit:10;" x1="343.837" y1="269.943" x2="386.57" y2="269.943"/>
<line style="opacity:0.39;fill:none;stroke:#3A6A6B;stroke-miterlimit:10;" x1="339.952" y1="274.863" x2="381.391" y2="274.863"/>
<line style="opacity:0.39;fill:none;stroke:#3A6A6B;stroke-miterlimit:10;" x1="337.017" y1="279.612" x2="375.175" y2="279.525"/>
<path style="opacity:0.39;fill:#3A6A6B;" d="M333.136,274.46c-1.532,3.842-5.862,6.741-9.671,6.475
c-3.809-0.266-5.654-3.596-4.122-7.438c1.532-3.842,5.862-6.741,9.671-6.475C332.823,267.288,334.669,270.618,333.136,274.46z"
/>
<g>
<line style="fill:none;stroke:#3A6A6B;stroke-width:0.5;stroke-miterlimit:10;" x1="309.391" y1="303.957" x2="356.355" y2="304.993"/>
<polygon style="fill:#3A6A6B;" points="313.88,300.849 307.664,303.957 310.772,308.101 "/>
<polygon style="fill:#3A6A6B;" points="356.657,301.798 360.052,305.783 354.455,309.18 "/>
</g>
<g>
<path style="fill:none;stroke:#3A6A6B;stroke-width:0.5;stroke-miterlimit:10;" d="M270.888,388.529
c7.252-26.676,10.99-45.313,21.927-75.334"/>
<polygon style="fill:#3A6A6B;" points="274.582,387.515 269.465,392.218 266.699,387.839 "/>
<polygon style="fill:#3A6A6B;" points="295.908,314.048 293.393,309.457 288.226,313.479 "/>
</g>
<polyline style="opacity:0.39;fill:#3A6A6B;" points="298.513,334.69 329.851,390.978 284.268,390.892 "/>
<path style="fill:#E06767;" d="M315.824,390.952l14.027,0.027l-7.634-13.711c-2.547,2.533-4.26,5.918-5.334,9.407
C316.451,388.078,316.103,389.507,315.824,390.952z"/>
<polygon style="fill:none;stroke:#3A6A6B;stroke-miterlimit:10;stroke-dasharray:4;" points="362.484,321.482 351.606,364.475
322.081,363.957 "/>
</g>
<path style="fill:#ED5151;" d="M197.733,516.234c-14.823,0.8-29.699,0.63-44.501-0.508
c-4.314-12.714-12.062-40.834-16.376-53.548c-2.848-8.393-5.706-16.827-7.237-25.557c-2.582-14.729-1.262-30.123,3.79-44.197
c3.065-8.538,7.647-16.789,14.692-22.504c7.045-5.715,16.862-8.524,25.462-5.639c9.937,3.334,13.296,11.696,12.419,21.023
c-1.079,11.473,0.953,23.003,2.112,34.601C190.789,446.827,196.291,489.217,197.733,516.234z"/>
<path style="fill:#ED5151;" d="M50.672,514.172c2.66-28.794,21.908-86.576,28.489-114.734
c6.581-28.158,17.781-36.754,43.694-49.587c18.676,9.584,34.122,19.018,49.584,33.216c1.065,0.978,2.185,2.084,2.38,3.517
c0.189,1.387-0.54,2.716-1.243,3.926c-21.893,37.677-74.083,130.615-75.767,131.69c-2.585,1.651-2.93,3.346-5.957,2.849
C82.875,523.576,59.649,515.646,50.672,514.172z"/>
<path style="fill:none;stroke:#000000;stroke-width:0.5;stroke-miterlimit:10;" d="M112.694,383.743
c-25.718,56.559-50.777,113.418-75.171,170.561"/>
<path style="fill:#44204D;" d="M101.098,265.935c2.595-7.035,6.253-13.496,12.181-17.922c8.724-6.513,20.368-7.103,31.25-7.438
c28.145-0.867,61.599,8.69,73.468,37.583c8.374,20.384-7.42,40.312-14.068,59.306c-7.087,20.249-9.691,39.051-17.252,59.128
c-0.362,0.96-0.767,1.978-1.603,2.573c-0.851,0.606-1.97,0.646-3.014,0.624c-6.522-0.135-12.905-1.786-19.218-3.428
c-28.333-7.366-56.667-14.732-85-22.099c-0.487-0.127,17.548-87.451,19.388-95.027
C98.306,274.811,99.501,270.264,101.098,265.935z"/>
<path style="fill:#44204D;" d="M231.785,284.869c0.945,4.532,1.449,9.175,1.993,13.235c1.712,12.779,3.424,25.558,5.136,38.336
c-10.963,5.548-22.993,7.712-34.84,10.811c-4.773,1.249-11.93,2.032-16.031,5.007c-0.242,0.175-0.813,0.395-0.8,0.775
c-0.868-25.189-1.736-50.378-2.604-75.568c-0.275-7.993-2.088-22.672,8.574-24.377c4.249-0.679,5.395,2.178,9.263,4.065
c7.431,3.624,18.644,6.976,23.771,13.845C229.104,274.825,230.723,279.777,231.785,284.869z"/>
<path style="fill:#CADE33;" d="M191.67,386.732c4.227-21.542,7.731-43.213,11.207-64.887c-0.489-3.101-0.619-6.297-0.593-9.424
c0.148-17.72,4.225-35.396,11.852-51.391c-4.008-1.482-8.016-2.963-12.023-4.445c-3.148,11.637-13.872,26.934-27.813,20.199
c-6.439-3.11-11.451-6.689-13.43-14.016c-1.918-7.1-0.414-14.718,2.251-21.572c-4.786-0.917-9.611-1.616-14.456-2.13
c-0.361,2.905-0.709,5.812-1.084,8.714c-1.682,13.021-3.945,26.369-10.443,37.969c-2.829,5.05-6.242,9.839-10.45,13.837
c-3.542,3.365-7.778,6.31-12.595,7.344c-3.428,1.83-7.163,3.031-11.037,3.156c-3.362,0.108-6.617-0.734-9.525-2.417
c-0.713-0.413-1.4-0.862-2.07-1.336c-5.869,28.19-17.549,72.561-17.221,72.646c28.333,7.366,60.269,10.017,88.602,17.383
c4.371,1.136,8.758,2.281,13.236,2.917c0.609,0.087,5.753,0.634,8.903,0.609c0.697-0.005,2.427,0.093,3.963,0.149
C189.883,395.607,190.798,391.174,191.67,386.732z"/>
<rect x="140.806" y="306.727" transform="matrix(0.9784 0.2067 -0.2067 0.9784 68.3245 -27.6007)" style="fill:#FFFFFF;" width="50.868" height="12.851"/>
<path style="fill:#ECB061;" d="M222.811,543.533c-0.286,0-0.572,0-0.858,0"/>
<path style="fill:#F0806C;" d="M279.992,327.767c0.162-0.237,0.409-0.32,0.91-0.586c1.763-0.936,3.481-1.802,5.327-2.54
c3.137-1.264,6.252-2.583,9.343-3.957c0.989-0.439,1.222-1.881,0.719-2.741c-0.596-1.019-1.748-1.16-2.741-0.719
c-4.586,2.038-9.233,3.932-13.923,5.714c0.001-0.236,0.011-0.472,0.009-0.708c-0.004-0.439-0.019-0.884-0.054-1.327
c5.083-1.927,10.143-3.915,15.175-5.97c1.001-0.409,1.71-1.332,1.399-2.464c-0.261-0.948-1.457-1.811-2.464-1.399
c-5.159,2.107-10.346,4.145-15.559,6.117c-0.258-0.258-0.536-0.494-0.846-0.69c4.542-2.038,9.31-3.636,14.032-5.083
c2.458-0.753,1.41-4.622-1.065-3.863c-5.32,1.631-10.607,3.432-15.652,5.797c-2.557,1.198-5.049,2.54-7.424,4.07
c-2.224,1.434-4.269,3.471-6.69,4.548c-1.197,0.533-2.486,0.828-3.707,1.306c-1.22,0.478-2.415,1.182-3.108,2.295
c-1.251,2.01-1.745,2.807-3.945,3.916c-8.596,4.333-18.994,4.558-28.307,6.279c-9.089,1.68-18.242,2.766-27.4,3.842
c-4.547,0.535-9.089,1.104-13.628,1.722c-3.977,0.542-7.077-1.863-10.715-3.753c-1.484-0.771-2.992-1.55-4.607-1.834
c-4.374-0.768-8.556,2.192-11.91,5.438c-4.459,4.315-8.611,10.389-7.604,16.902c0.368,2.384,1.413,4.576,2.665,6.544
c3.994,6.277,11.198,13.945,17.938,16.016c3.724,1.144,7.677,0.676,11.497,0.049c2.459-0.403,4.875-0.895,7.258-1.46
c12.671-3.006,24.403-8.082,36.729-12.832c5.099-2.914,11.36-4.565,16.737-7.006c5.568-2.528,10.843-5.787,16.279-8.544
c5.274-2.675,11.136-5.052,15.925-8.548c4.124-3.01,7.43-5.869,12.056-8.28c4.079-2.126,8.507-4.017,11.549-7.599
c0.288-0.339,0.568-0.699,0.709-1.121c0.141-0.422,0.12-0.922-0.156-1.271c-0.229-0.289-0.599-0.435-0.964-0.49
c-1.045-0.156-2.081,0.339-2.938,0.956c-1.737,1.252-3.598,2.284-5.374,3.468c-1.681,1.121-3.522,1.508-5.476,2.064
c0.085-0.024-0.241-1.579-0.2-1.744C279.851,328.043,279.911,327.886,279.992,327.767z"/>
<path style="fill:#F0806C;" d="M118.845,320.447c-0.803-2.117,1.937-1.035,2.27-3.274c0.306-2.056,1.499-3.863,2.764-5.511
c5.814-7.575,13.873-13.404,22.887-16.555c1.788-0.625,3.895-1.112,5.475-0.067c0.669,0.442,0.173-8.45,0.637-7.796
c10.655,15.016,20.867,40.6,28.517,57.348c4.231,9.263,6.978,18.99,1.8,28.453c-1.02,1.864-2.289,3.639-4.003,4.893
c-4.758,3.481-17.115,2.658-21.333-1.46C140.428,359.461,126.579,340.821,118.845,320.447z"/>
<path style="fill:#44204D;" d="M100.637,295.296c2.788,5.474,6.044,10.693,9.295,15.905c3.982,6.383,7.965,12.767,11.947,19.15
c15.591-7.229,30.988-14.961,45.023-24.836c-2.848-7.227-16.028-43.891-22.436-54.567c-3.748-6.244-8.164,1.257-11.937-4.971
c-0.72-0.462-1.486-0.841-2.317-1.075c-2.576-0.726-5.347-0.022-7.8,1.048c-15.637,7.922-18.496,24.122-22.637,39.664
c-0.464,1.739-0.931,3.53-0.715,5.317C99.245,292.475,99.931,293.91,100.637,295.296z"/>
<path style="fill:#F0806C;" d="M226.398,206.308c-0.819-0.441-1.641-0.895-2.348-1.496c-2.341-1.99-3.776-4.169-6.777-5.494
c-4.754-2.1-10.227-1.935-15.103-0.344c-4.876,1.591-7.64,6.911-10.67,10.849c-6.85,8.9-13.378,18.047-19.568,27.417
c-1.149,1.739-4.467,3.878-4.845,5.947c-0.064,0.351-0.001,0.712,0.072,1.062c0.792,3.741,2.885,7.145,5.649,9.788
c2.764,2.643,6.176,4.551,9.773,5.847c2.627,0.946,5.429,1.583,8.204,1.276c1.81-0.2,3.614-0.837,5.075-1.938
c1.452-1.093,1.638-2.114,2.246-3.688c1.58-4.087,3.74-8.039,5.589-12.013c4.949,2.115,10.916,0.169,14.851-3.501
c3.936-3.67,6.208-8.761,8.044-13.819c1.386-3.817,2.583-7.704,3.585-11.639c0.327-1.283,0.634-2.621,0.374-3.919
C230.067,208.231,228.239,207.3,226.398,206.308z"/>
<path d="M194.563,215.278c-1.019,1.776-1.825,3.634-4.316,3.915c-0.445,0.05-5.037-6.696-5.445-7.483
c-1.219-2.353-1.495-5.517-0.488-7.984c2.373-5.818,9.882-11.182,16.396-11.212c5.847-0.027,11.558,1.666,16.839,3.975
c2.841,1.242,5.682,2.484,8.523,3.727c3.45,1.509,9.62,3.904,11.029,7.8c0.517,1.429,0.229,3.027-0.287,4.456
c-0.452,1.252-1.091,2.464-2.055,3.382c-2.024,1.924-5.193,2.222-7.869,1.422c-2.676-0.799-4.966-2.525-7.138-4.281
c-1.644-1.329-3.494-2.774-5.602-2.612c-2.021,0.155-3.623,1.751-5.545,2.395c-2.377,0.796-4.954,0.068-7.45-0.167
c-2.031-0.192-4.961,0.076-6.184,1.99C194.828,214.823,194.694,215.05,194.563,215.278z"/>
<path style="fill:#3A6A6B;" d="M195.522,207.788c0.186-0.073,0.37-0.135,0.555-0.202c0.8-0.463,1.579-0.921,2.326-1.25
c2.952-1.297,6.385-1.055,9.521-1.464c1.248-0.163,2.675-0.198,3.853-0.678c0.217-0.088,0.409-0.205,0.591-0.333
c0.781-0.668,1.412-1.509,1.696-2.485c0.124-0.425,1.386-3.888,1.983-5.087c0.045-0.153,0.091-0.306,0.135-0.459
c-4.796-1.784-9.742-3.163-14.77-4.116c-2.431-0.461-4.829-1.113-7.296-1.365c-1.661-0.169-3.054,0.089-4.488,0.364
c-0.879,0.169-1.774,0.344-2.755,0.431c-0.462,0.041-0.953,0.059-1.34,0.316c-0.273,0.181-0.463,0.462-0.64,0.738
c-2.682,4.182-4.562,9.446-3.58,14.477c0.096,0.493,0.241,1.007,0.607,1.352c1.541,1.449,7.642,0.871,9.659,0.777
C192.981,208.738,194.23,208.296,195.522,207.788z"/>
<path style="fill:#FF7354;" d="M238.752,194.441c-0.206-0.852-0.355-1.742-0.561-2.473c-0.435-1.54-0.869-3.08-1.304-4.62
c-0.34-1.207-0.682-2.415-1.124-3.589c-0.524-1.392-1.19-2.73-1.983-3.988c-4.408-6.99-12.8-11.169-20.846-12.165
c-1.821-0.225-3.662-0.295-5.494-0.202c-8.557,0.434-18.942,5.41-22.154,13.614c-1.581,4.038-1.505,8.519-2.752,12.668
c-0.264,0.88-7.095,4.4-3.947,6.151c0.741-0.046,1.482-0.096,2.223-0.139c3.417-0.197,6.845,0.153,10.267,0.153
c0.439,0.012,0.898,0.02,1.293-0.173c0.34-0.166,0.595-0.462,0.84-0.75c0.56-0.659,1.121-1.318,1.681-1.977
c0.111-0.131,0.232-0.268,0.396-0.321c0.12-0.039,0.25-0.027,0.376-0.016c4.448,0.424,8.872,1.09,13.247,1.995
c0.985,0.204,2.52,0.257,3.392,0.751c0.444,0.252,0.494,0.593,0.732,1.072c0.575,1.157,1.429,2.417,2.704,2.862
c7.813,2.724,16.65,5.218,24.899,6.22c1.936,0.235,3.956,0.371,5.783-0.31c2.761-1.029,4.311-3.601,3.15-6.447
c-0.648-1.589-1.568-2.509-3.083-3.242c-1.278-0.618-2.581-1.184-3.905-1.696c-0.93-0.36-2.613-0.558-3.139-1.468
C239.13,195.814,238.921,195.141,238.752,194.441z"/>
<path d="M138.894,468.144c5.57-12.455,10.665-25.139,15.541-37.859l-6.226,4.15c-5.449,9.332-8.568,15.54-12.931,23.248
C136.477,461.173,137.692,464.656,138.894,468.144z"/>
<path style="fill:none;stroke:#000000;stroke-miterlimit:10;" d="M207.377,233.208c2.732,0.528,5.536,0.687,8.311,0.471"/>
<g>
<defs>
<path id="SVGID_00000036974503801261075080000015928047743645168817_" d="M226.398,206.308
c-0.819-0.441-1.641-0.895-2.348-1.496c-2.341-1.99-3.776-4.169-6.777-5.494c-4.754-2.1-10.227-1.935-15.103-0.344
c-4.876,1.591-7.64,6.911-10.67,10.849c-6.85,8.9-13.378,18.047-19.568,27.417c-1.528,2.312-5.81,5.743-6.18,8.488
c-0.371,2.752,4.68,5.787,7.025,7.389c6.215,4.245,13.547,6.868,21.058,7.422c0.531,0.039,1.092,0.063,1.566-0.182
c0.585-0.302,0.9-0.94,1.178-1.537c2.372-5.1,4.745-10.2,7.117-15.3c4.949,2.115,10.916,0.169,14.851-3.501
c3.936-3.67,6.208-8.761,8.044-13.819c1.386-3.817,2.583-7.704,3.585-11.639c0.327-1.283,0.634-2.621,0.374-3.919
C230.067,208.231,228.239,207.3,226.398,206.308z"/>
</defs>
<clipPath id="SVGID_00000137849380344745917640000018278194934063550639_">
<use xlink:href="#SVGID_00000036974503801261075080000015928047743645168817_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_00000137849380344745917640000018278194934063550639_);" d="M208.206,245.681
c-4.161-0.705-6.595-5.153-10.412-6.955c1.144,5.117,3.926,9.855,7.838,13.347"/>
</g>
<path style="fill:none;stroke:#000000;stroke-miterlimit:10;" d="M160.673,373.612c1.114,2.569,4.803,3.571,7.063,1.918"/>
<path style="fill:none;stroke:#000000;stroke-miterlimit:10;" d="M180.172,341.544c-0.821,1.173-1.479,2.461-1.95,3.814"/>
<path style="fill:#F0806C;" d="M190.383,211.7c-0.727-0.708-1.574-1.376-2.628-1.673c-0.886-0.25-1.849-0.218-2.773-0.105
c-1.17,0.142-2.338,0.416-3.325,0.965c-1.446,0.804-2.389,2.15-2.791,3.57c-0.402,1.419-0.302,2.91,0.012,4.345
c0.401,1.832,1.183,3.659,2.674,5.035c1.492,1.376,3.789,2.225,5.952,1.835c2.255-0.407,3.958-2.065,4.754-3.889
C193.818,218.209,193.361,214.603,190.383,211.7z"/>
<path style="fill:none;stroke:#000000;stroke-miterlimit:10;" d="M184.98,212.689c1.241-0.323,2.344,0.868,2.919,2.014
c1.008,2.01,1.431,4.309,1.204,6.546"/>
<path style="fill:none;stroke:#000000;stroke-miterlimit:10;" d="M201.757,170.399c-1.496,0.785-2.733,2.054-3.48,3.569"/>
<path style="fill:none;stroke:#000000;stroke-miterlimit:10;" d="M208.484,170.731c-1.363,1.095-2.555,2.401-3.522,3.857"/>
<path style="fill:none;stroke:#000000;stroke-miterlimit:10;" d="M213.854,171.179c-1.13,1.065-1.894,2.51-2.139,4.043"/>
<line style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:10;" x1="188.475" y1="455.751" x2="188.475" y2="549.136"/>
<line style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:10;" x1="199.921" y1="455.751" x2="199.921" y2="549.136"/>
<line style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:10;" x1="509.366" y1="455.751" x2="509.366" y2="549.136"/>
<line style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:10;" x1="520.811" y1="455.751" x2="520.811" y2="549.136"/>
<rect x="163.146" y="448.773" width="384.518" height="6.861"/>
<path style="fill:none;stroke:#000000;stroke-width:0.5;stroke-miterlimit:10;" d="M100.213,413.514
c5.837,2.541,12.739,2.513,18.555-0.074c5.816-2.588,10.458-7.696,12.479-13.732"/>
<path style="fill:none;stroke:#000000;stroke-miterlimit:10;" d="M183.276,194.144c0.691,0.173,9.842,1.036,9.842,1.036
l0.679-1.223c0.634-1.141,1.893-1.789,3.19-1.641l15.879,1.811c1.042,0.119,1.962,0.736,2.466,1.656l0.988,1.8
c0.615,1.121,1.672,1.935,2.911,2.249c8.828,2.237,16.778,3.041,20.677-2.753"/>
<path style="fill:none;stroke:#000000;stroke-width:0.5;stroke-miterlimit:10;" d="M146.24,445.021
c5.888,29.119,11.579,51.111,17.467,80.23"/>
<path style="fill:none;stroke:#000000;stroke-miterlimit:10;" d="M109.955,309.784c-2.898-4.023-5.462-8.288-7.656-12.734"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -1,15 +1,27 @@
import { DireProvider } from "./Context/DireContext";
import AppRoutes from "./router/AppRoutes";
import { ToastContainer } from "react-toastify";
import { QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import { queryClient } from "./layouts/AuthLayout";
import ModalProvider from "./ModalProvider";
const App = () => {
return (
<div className="app">
<AppRoutes />
<ToastContainer></ToastContainer>
<QueryClientProvider client={queryClient}>
<ModalProvider/>
<DireProvider>
<AppRoutes />
</DireProvider>
<ToastContainer />
<ReactQueryDevtools initialIsOpen={false} />
</QueryClientProvider>
</div>
);
};
export default App
export default App;

View File

@ -0,0 +1,21 @@
import React, { createContext, useContext, useState } from "react";
const DireContext = createContext(undefined);
export const DireProvider = ({ children }) => {
const [dirActions, setDirActions] = useState([]);
return (
<DireContext.Provider value={{ dirActions, setDirActions }}>
{children}
</DireContext.Provider>
);
};
export const useDir = () => {
const context = useContext(DireContext);
if (!context) {
throw new Error("useDir must be used within a <DireProvider>");
}
return context;
};

View File

@ -4,9 +4,30 @@ const FabContext = createContext();
export const FabProvider = ({ children }) => {
const [actions, setActions] = useState([]);
const [showTrigger, setShowTrigger] = useState(true);
const [isOffcanvasOpen, setIsOffcanvasOpen] = useState(false);
const [offcanvas, setOffcanvas] = useState({
isOpen: false,
title: "",
content: null,
});
const openOffcanvas = (title, content) => {
setOffcanvas({ isOpen: true, title, content });
setTimeout(() => {
const offcanvasElement = document.getElementById("globalOffcanvas");
if (offcanvasElement) {
const bsOffcanvas = new window.bootstrap.Offcanvas(offcanvasElement);
bsOffcanvas.show();
}
}, 100);
};
const setOffcanvasContent = (title, content) => {
setOffcanvas(prev => ({ ...prev, title, content }));
};
return (
<FabContext.Provider value={{ actions, setActions }}>
<FabContext.Provider value={{ actions, setActions, offcanvas, openOffcanvas, showTrigger, setShowTrigger,isOffcanvasOpen, setIsOffcanvasOpen, setOffcanvasContent, }}>
{children}
</FabContext.Provider>
);

View File

@ -1,112 +0,0 @@
import React, {
createContext,
useContext,
useState,
useEffect,
useRef,
} from "react";
const ModalContext = createContext();
export const useModal = () => useContext(ModalContext);
// ModalProvider to manage modal state and expose functionality to the rest of the app
export const ModalProvider = ({ children }) => {
const [isOpen, setIsOpen] = useState(false);
const [modalContent, setModalContent] = useState(null);
const [onSubmit, setOnSubmit] = useState(null);
const [modalSize, setModalSize] = useState("lg");
// Ref to track the modal content element
const modalRef = useRef(null);
const openModal = (content, onSubmitCallback, size = "lg") => {
setModalContent(content); // Set modal content dynamically
setOnSubmit(() => onSubmitCallback); // Set the submit handler dynamically
setIsOpen(true); // Open the modal
setModalSize(size); // Set the modal size
};
// Function to close the modal
const closeModal = () => {
setIsOpen(false); // Close the modal
setModalContent(null); // Clear modal content
setOnSubmit(null); // Clear the submit callback
setModalSize("lg"); // Reset modal size
};
useEffect(() => {
const handleEscape = (event) => {
if (event.key === "Escape") {
closeModal();
}
};
document.addEventListener("keydown", handleEscape);
return () => {
document.removeEventListener("keydown", handleEscape);
};
}, []);
useEffect(() => {
const handleClickOutside = (event) => {
if (modalRef.current && !modalRef.current.contains(event.target)) {
closeModal();
}
};
document.addEventListener("mousedown", handleClickOutside);
return () => {
document.removeEventListener("mousedown", handleClickOutside);
};
}, []);
return (
<ModalContext.Provider
value={{
isOpen,
openModal,
closeModal,
modalContent,
modalSize,
onSubmit,
}}
>
{children}
{isOpen && (
<div style={overlayStyles}>
<div
ref={modalRef}
style={{
...modalStyles,
maxWidth: modalSize === "sm" ? "400px" : "800px",
}}
>
<div>{modalContent}</div>
</div>
</div>
)}
</ModalContext.Provider>
);
};
const overlayStyles = {
position: "fixed",
top: 0,
left: 0,
right: 0,
bottom: 0,
backgroundColor: "rgba(0, 0, 0, 0.5)",
display: "flex",
justifyContent: "center",
alignItems: "center",
zIndex: 1050,
};
const modalStyles = {
backgroundColor: "white",
padding: "20px",
borderRadius: "5px",
boxShadow: "0 4px 6px rgba(0, 0, 0, 0.1)",
width: "90%",
maxWidth: "800px",
};

22
src/ModalProvider.jsx Normal file
View File

@ -0,0 +1,22 @@
import React, { useEffect } from "react";
import { useOrganizationModal } from "./hooks/useOrganization";
import OrganizationModal from "./components/Organization/OrganizationModal";
import { useAuthModal, useModal } from "./hooks/useAuth";
import SwitchTenant from "./pages/authentication/SwitchTenant";
import ChangePasswordPage from "./pages/authentication/ChangePassword";
const ModalProvider = () => {
const { isOpen, onClose } = useOrganizationModal();
const { isOpen: isAuthOpen } = useAuthModal();
const {isOpen:isChangePass} = useModal("ChangePassword")
return (
<>
{isOpen && <OrganizationModal />}
{isAuthOpen && <SwitchTenant />}
{isChangePass && <ChangePasswordPage /> }
</>
);
};
export default ModalProvider;

View File

@ -1,23 +1,3 @@
/*
* demo.css
* File include item demo only specific css only
******************************************************************************/
.menu .app-brand.demo {
height: 64px;
margin-top: 12px;
}
.app-brand-logo.demo svg {
width: 22px;
height: 38px;
}
.app-brand-text.demo {
font-size: 1.75rem;
letter-spacing: -0.5px;
}
/* ! For .layout-navbar-fixed added fix padding top to .layout-page */
/* Detached navbar */
.layout-navbar-fixed
@ -43,43 +23,6 @@
z-index: auto;
}
/*
* Content
******************************************************************************/
.demo-blocks > * {
display: block !important;
}
.demo-inline-spacing > * {
margin: 1rem 0.375rem 0 0 !important;
}
/* ? .demo-vertical-spacing class is used to have vertical margins between elements. To remove margin-top from the first-child, use .demo-only-element class with .demo-vertical-spacing class. For example, we have used this class in forms-input-groups.html file. */
.demo-vertical-spacing > * {
margin-top: 1rem !important;
margin-bottom: 0 !important;
}
.demo-vertical-spacing.demo-only-element > :first-child {
margin-top: 0 !important;
}
.demo-vertical-spacing-lg > * {
margin-top: 1.875rem !important;
margin-bottom: 0 !important;
}
.demo-vertical-spacing-lg.demo-only-element > :first-child {
margin-top: 0 !important;
}
.demo-vertical-spacing-xl > * {
margin-top: 5rem !important;
margin-bottom: 0 !important;
}
.demo-vertical-spacing-xl.demo-only-element > :first-child {
margin-top: 0 !important;
}
.rtl-only {
display: none !important;
text-align: left !important;
@ -89,41 +32,3 @@
[dir="rtl"] .rtl-only {
display: block !important;
}
/* Dropdown buttons going out of small screens */
@media (max-width: 576px) {
#dropdown-variation-demo .btn-group .text-truncate {
width: 231px;
position: relative;
}
#dropdown-variation-demo .btn-group .text-truncate::after {
position: absolute;
top: 45%;
right: 0.65rem;
}
}
/*
* Layout demo
******************************************************************************/
.layout-demo-wrapper {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
margin-top: 1rem;
}
.layout-demo-placeholder img {
width: 900px;
}
.layout-demo-info {
text-align: center;
margin-top: 1rem;
}

View File

@ -2436,7 +2436,7 @@ progress {
}
.table-responsive {
overflow-x: auto;
/* overflow-x: auto; */
-webkit-overflow-scrolling: touch;
}

View File

@ -1,13 +1,28 @@
import React, { useEffect, useState } from "react";
import { useEmployeeAttendacesLog } from "../../hooks/useAttendance";
import { convertShortTime } from "../../utils/dateUtils";
import { convertShortTime, formatUTCToLocalTime } from "../../utils/dateUtils";
import { useNavigate } from "react-router-dom";
import { THRESH_HOLD } from "../../utils/constants";
const AttendLogs = ({ Id }) => {
const { logs, loading } = useEmployeeAttendacesLog(Id);
const navigate = useNavigate();
const whichActivityPerform = (actvity) => {
const isCheckoutRegularized = (
activityTimeStr,
checkoutTimeStr,
threshHours
) => {
if (!activityTimeStr || !checkoutTimeStr) return false;
const activityTime = new Date(activityTimeStr);
const checkoutTime = new Date(checkoutTimeStr);
const threshTimeMs = threshHours * 60 * 60 * 1000;
return checkoutTime - activityTime > threshTimeMs;
};
const whichActivityPerform = (actvity, checkOutTime) => {
switch (actvity) {
case 1:
return (
@ -24,12 +39,12 @@ const AttendLogs = ({ Id }) => {
case 2:
return (
<i
className="bx bx-help-circle text-secondary"
className="bx bx-help-circle text-danger"
data-bs-toggle="tooltip"
data-bs-offset="0,8"
data-bs-placement="top"
data-bs-custom-class="tooltip"
title="regularize Requested"
title="Regularize Requested"
></i>
);
break;
@ -41,27 +56,47 @@ const AttendLogs = ({ Id }) => {
data-bs-offset="0,8"
data-bs-placement="top"
data-bs-custom-class="tooltip"
title="Regularized"
title="Request Deleted!"
></i>
);
break;
case 4:
return (
<i
className="bx bx-left-arrow-circle text-danger "
data-bs-toggle="tooltip"
data-bs-offset="0,8"
data-bs-placement="top"
data-bs-custom-class="tooltip"
title="Check-Out"
></i>
);
if (
checkOutTime &&
isCheckoutRegularized(
logs[0]?.activityTime,
checkOutTime,
THRESH_HOLD
)
) {
return (
<i
className="bx bx-check-circle text-success"
data-bs-toggle="tooltip"
data-bs-offset="0,8"
data-bs-placement="top"
data-bs-custom-class="tooltip"
title="Regularized"
></i>
);
} else {
return (
<i
className="bx bx-left-arrow-circle text-danger"
data-bs-toggle="tooltip"
data-bs-offset="0,8"
data-bs-placement="top"
data-bs-custom-class="tooltip"
title="Check-Out"
></i>
);
}
break;
case 5:
return (
<i
className="bx bx-x-circle text-danger"
className="bx bx-x-circle text-danger"
data-bs-toggle="tooltip"
data-bs-offset="0,8"
data-bs-placement="top"
@ -79,6 +114,7 @@ const AttendLogs = ({ Id }) => {
const url = `https://www.google.com/maps?q=${lat},${lng}`;
window.open(url, "_blank"); // Open in new tab
};
useEffect(() => {
const tooltipTriggerList = Array.from(
document.querySelectorAll('[data-bs-toggle="tooltip"]')
@ -92,7 +128,7 @@ const AttendLogs = ({ Id }) => {
<p>
Attendance logs for{" "}
{logs[0]?.employee?.firstName + " " + logs[0]?.employee?.lastName}{" "}
on {logs[0]?.activityTime.slice(0, 10)}{" "}
on {formatUTCToLocalTime(logs[0]?.activityTime)}
</p>
)}
</div>
@ -120,13 +156,15 @@ const AttendLogs = ({ Id }) => {
.sort((a, b) => b.id - a.id)
.map((log, index) => (
<tr key={index}>
<td>{log.activityTime.slice(0, 10)}</td>
<td>{formatUTCToLocalTime(log.activityTime)}</td>
<td>{convertShortTime(log.activityTime)}</td>
<td>{whichActivityPerform(log.activity)}</td>
<td>
{whichActivityPerform(log.activity, log.activityTime)}
</td>
<td>
{log?.latitude != 0 ? (
<i
className="bx bx-location-plus text-danger cursor-pointer"
className="bx bx-map text-danger cursor-pointer"
data-bs-toggle="tooltip"
data-bs-offset="0,8"
data-bs-placement="top"
@ -146,7 +184,9 @@ const AttendLogs = ({ Id }) => {
}`}
</td>
<td className="text-wrap" colSpan={3}>
{log?.comment || "--"}
{log?.comment?.length > 50
? `${log.comment.slice(0, 50)}...`
: log.comment || "--"}
</td>
</tr>
))}

View File

@ -1,28 +1,45 @@
import React, { useState, useEffect } from "react";
import React, { useState, useEffect, useCallback, useMemo } from "react";
import moment from "moment";
import Avatar from "../common/Avatar";
import { convertShortTime } from "../../utils/dateUtils";
import { convertShortTime, formatUTCToLocalTime } from "../../utils/dateUtils";
import RenderAttendanceStatus from "./RenderAttendanceStatus";
import usePagination from "../../hooks/usePagination";
import { useNavigate } from "react-router-dom";
import {ITEMS_PER_PAGE} from "../../utils/constants";
import { ITEMS_PER_PAGE } from "../../utils/constants";
import { useAttendance } from "../../hooks/useAttendance";
import { useSelector } from "react-redux";
import { useQueryClient } from "@tanstack/react-query";
import eventBus from "../../services/eventBus";
import { useSelectedProject } from "../../slices/apiDataManager";
const Attendance = ({ attendance, getRole, handleModalData }) => {
const Attendance = ({ getRole, handleModalData, searchTerm, projectId, organizationId, }) => {
const queryClient = useQueryClient();
const [loading, setLoading] = useState(false);
const navigate = useNavigate();
const [todayDate, setTodayDate] = useState(new Date());
const [ShowPending, setShowPending] = useState(false);
const selectedProject = useSelectedProject();
const {
attendance,
loading: attLoading,
recall: attrecall,
isFetching
} = useAttendance(selectedProject, organizationId);
const filteredAttendance = ShowPending
? attendance?.filter(
(att) => att?.checkInTime !== null && att?.checkOutTime === null
)
: attendance;
// Ensure attendance is an array
const attendanceList = Array.isArray(attendance) ? attendance : [];
const attendanceList = Array.isArray(filteredAttendance)
? filteredAttendance
: [];
// Function to sort by first and last name
const sortByName = (a, b) => {
const nameA = (a.firstName + a.lastName).toLowerCase();
const nameB = (b.firstName + b.lastName).toLowerCase();
return nameA.localeCompare(nameB);
return nameA?.localeCompare(nameB);
};
// Filter employees based on activity
const group1 = attendanceList
.filter((d) => d.activity === 1 || d.activity === 4)
.sort(sortByName);
@ -30,53 +47,119 @@ const Attendance = ({ attendance, getRole, handleModalData }) => {
.filter((d) => d.activity === 0)
.sort(sortByName);
const filteredData = [...group1, ...group2];
const finalFilteredData = useMemo(() => {
const combinedData = [...group1, ...group2];
if (!searchTerm) {
return combinedData;
}
const lowercasedSearchTerm = searchTerm.toLowerCase();
return combinedData.filter((item) => {
const fullName = `${item.firstName} ${item.lastName}`.toLowerCase();
const role = item.jobRoleName?.toLowerCase() || "";
return (
fullName.includes(lowercasedSearchTerm) ||
role.includes(lowercasedSearchTerm) // also search by role
);
});
}, [group1, group2, searchTerm]);
const { currentPage, totalPages, currentItems, paginate } = usePagination(
filteredData,
finalFilteredData,
ITEMS_PER_PAGE
);
// Reset pagination when the filter or search term changes
useEffect(() => {
}, [finalFilteredData]);
const handler = useCallback(
(msg) => {
if (selectedProject == msg.projectId) {
queryClient.setQueryData(["attendance", selectedProject], (oldData) => {
if (!oldData) {
queryClient.invalidateQueries({ queryKey: ["attendance"] })
};
return oldData.map((record) =>
record.employeeId === msg.response.employeeId ? { ...record, ...msg.response } : record
);
});
}
},
[selectedProject, attrecall]
);
const employeeHandler = useCallback(
(msg) => {
if (attendance.some((item) => item.employeeId == msg.employeeId)) {
attrecall();
}
},
[selectedProject, attendance]
);
useEffect(() => {
eventBus.on("attendance", handler);
return () => eventBus.off("attendance", handler);
}, [handler]);
useEffect(() => {
eventBus.on("employee", employeeHandler);
return () => eventBus.off("employee", employeeHandler);
}, [employeeHandler]);
return (
<>
<div className="table-responsive text-nowrap">
{attendance && attendance.length > 0 && (
<div
className="table-responsive text-nowrap h-100"
style={{ minHeight: "200px" }} // Ensures fixed height
>
<div className="d-flex text-start align-items-center py-2">
<strong>Date : {formatUTCToLocalTime(todayDate)}</strong>
<div className="form-check form-switch text-start m-0 ms-5">
<input
type="checkbox"
className="form-check-input"
role="switch"
id="inactiveEmployeesCheckbox"
disabled={isFetching}
checked={ShowPending}
onChange={(e) => setShowPending(e.target.checked)}
/>
<label className="form-check-label ms-0">Show Pending</label>
</div>
</div>
{attLoading ? (
<div>Loading...</div>
) : currentItems?.length > 0 ? (
<>
<table className="table ">
<thead>
<tr className="border-top-0" style={{ textAlign: 'left' }}>
<td >
<strong>Date : {todayDate.toLocaleDateString('en-GB')}</strong>
</td>
<td style={{ paddingLeft: '20px' }}>
</td>
</tr>
<tr>
<th className="border-top-0" colSpan={2}>
Name
</th>
<th className="border-top-0">Role</th>
<th className="border-top-0">
<tr className="border-top-1">
<th colSpan={2}>Name</th>
<th>Role</th>
<th>Organization</th>
<th>
<i className="bx bxs-down-arrow-alt text-success"></i>
Check-In
</th>
<th className="border-top-0">
<th>
<i className="bx bxs-up-arrow-alt text-danger"></i>Check-Out
</th>
<th className="border-top-0">Actions</th>
<th>Actions</th>
</tr>
</thead>
<tbody className="table-border-bottom-0">
<tbody className="table-border-bottom-0 ">
{currentItems &&
currentItems
.sort((a, b) => {
// If checkInTime exists, compare it, otherwise, treat null as earlier than a date
const checkInA = a.checkInTime
const checkInA = a?.checkInTime
? new Date(a.checkInTime)
: new Date(0);
const checkInB = b.checkInTime
const checkInB = b?.checkInTime
? new Date(b.checkInTime)
: new Date(0);
return checkInB - checkInA; // Sort in descending order of checkInTime
return checkInB - checkInA;
})
.map((item) => (
<tr key={item.employeeId}>
@ -104,6 +187,8 @@ const Attendance = ({ attendance, getRole, handleModalData }) => {
</td>
<td>{item.jobRoleName}</td>
<td>{item.organizationName || "--"}</td>
<td>
{item.checkInTime
? convertShortTime(item.checkInTime)
@ -126,12 +211,21 @@ const Attendance = ({ attendance, getRole, handleModalData }) => {
</tr>
))}
{!attendance && (
<span>No employees assigned to the project</span>
<tr>
<td
colSpan={7}
className="text-center text-secondary"
style={{ height: "200px" }}
>
No employees assigned to the project!
</td>
</tr>
)}
</tbody>
</table>
{!loading && (
{!loading && finalFilteredData.length > ITEMS_PER_PAGE && (
<nav aria-label="Page ">
<ul className="pagination pagination-sm justify-content-end py-1">
<li
@ -174,10 +268,21 @@ const Attendance = ({ attendance, getRole, handleModalData }) => {
</nav>
)}
</>
) : (
<div
className="d-flex justify-content-center align-items-center text-muted"
style={{ height: "200px" }}
>
{searchTerm
? "No results found for your search."
: attendanceList.length === 0
? "No employees assigned to the project."
: "No pending records available."}
</div>
)}
</div>
</>
);
};
export default Attendance;
export default Attendance;

View File

@ -4,14 +4,21 @@ import Avatar from "../common/Avatar";
import { convertShortTime } from "../../utils/dateUtils";
import RenderAttendanceStatus from "./RenderAttendanceStatus";
import { useSelector, useDispatch } from "react-redux";
import { fetchAttendanceData } from "../../slices/apiSlice/attedanceLogsSlice";
import DateRangePicker from "../common/DateRangePicker";
import { getCachedData } from "../../slices/apiDataManager";
import {
clearCacheKey,
getCachedData,
useSelectedProject,
} from "../../slices/apiDataManager";
import eventBus from "../../services/eventBus";
import AttendanceRepository from "../../repositories/AttendanceRepository";
import { useAttendancesLogs } from "../../hooks/useAttendance";
import { queryClient } from "../../layouts/AuthLayout";
import { ITEMS_PER_PAGE } from "../../utils/constants";
const usePagination = (data, itemsPerPage) => {
const [currentPage, setCurrentPage] = useState(1);
const maxPage = Math.ceil(data.length / itemsPerPage);
const currentItems = useMemo(() => {
const startIndex = (currentPage - 1) * itemsPerPage;
const endIndex = startIndex + itemsPerPage;
@ -21,125 +28,184 @@ const usePagination = (data, itemsPerPage) => {
const paginate = useCallback((pageNumber) => setCurrentPage(pageNumber), []);
const resetPage = useCallback(() => setCurrentPage(1), []);
return { currentPage, totalPages: maxPage, currentItems, paginate, resetPage };
return {
currentPage,
totalPages: maxPage,
currentItems,
paginate,
resetPage,
};
};
const AttendanceLog = ({ handleModalData, projectId, showOnlyCheckout }) => {
const [dateRange, setDateRange] = useState({ startDate: "", endDate: "" });
const dispatch = useDispatch();
const { data, loading, error } = useSelector((store) => store.attendanceLogs);
const [isRefreshing, setIsRefreshing] = useState(false);
const [processedData, setProcessedData] = useState([]);
const AttendanceLog = ({ handleModalData, searchTerm, organizationId }) => {
const selectedProject = useSelectedProject();
const [dateRange, setDateRange] = useState({ startDate: "", endDate: "" });
const dispatch = useDispatch();
const [loading, setLoading] = useState(false);
const [showPending, setShowPending] = useState(false);
const [isRefreshing, setIsRefreshing] = useState(false);
const today = new Date();
today.setHours(0, 0, 0, 0);
const today = new Date();
today.setHours(0, 0, 0, 0);
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
const isSameDay = (dateStr) => {
if (!dateStr) return false;
const d = new Date(dateStr);
d.setHours(0, 0, 0, 0);
return d.getTime() === today.getTime();
};
const isSameDay = (dateStr) => {
if (!dateStr) return false;
const d = new Date(dateStr);
d.setHours(0, 0, 0, 0);
return d.getTime() === today.getTime();
};
const isBeforeToday = (dateStr) => {
if (!dateStr) return false;
const d = new Date(dateStr);
d.setHours(0, 0, 0, 0);
return d.getTime() < today.getTime();
};
const isBeforeToday = (dateStr) => {
if (!dateStr) return false;
const d = new Date(dateStr);
d.setHours(0, 0, 0, 0);
return d.getTime() < today.getTime();
};
const sortByName = (a, b) => {
const nameA = a.firstName.toLowerCase() + a.lastName.toLowerCase();
const nameB = b.firstName.toLowerCase() + b.lastName.toLowerCase();
return nameA.localeCompare(nameB);
};
const sortByName = (a, b) => {
const nameA = (a.firstName + a.lastName).toLowerCase();
const nameB = (b.firstName + b.lastName).toLowerCase();
return nameA.localeCompare(nameB);
};
useEffect(() => {
const { startDate, endDate } = dateRange;
dispatch(
fetchAttendanceData({
projectId,
fromDate: startDate,
toDate: endDate,
})
);
setIsRefreshing(false);
}, [dateRange, projectId, dispatch, isRefreshing]);
const { data = [], isLoading, error, refetch, isFetching } = useAttendancesLogs(
selectedProject,
dateRange.startDate,
dateRange.endDate,
organizationId
);
useEffect(() => {
const filteredData = showOnlyCheckout
? data.filter((item) => item.checkOutTime === null)
: data;
const processedData = useMemo(() => {
const filteredData = showPending
? data.filter((item) => item.checkOutTime === null)
: data;
const group1 = filteredData
.filter((d) => d.activity === 1 && isSameDay(d.checkInTime))
.sort(sortByName);
const group2 = filteredData
.filter((d) => d.activity === 4 && isSameDay(d.checkOutTime))
.sort(sortByName);
const group3 = filteredData
.filter((d) => d.activity === 1 && isBeforeToday(d.checkInTime))
.sort(sortByName);
const group4 = filteredData
.filter((d) => d.activity === 4 && isBeforeToday(d.checkOutTime));
const group5 = filteredData
.filter((d) => d.activity === 2 && isBeforeToday(d.checkOutTime))
.sort(sortByName);
const group6 = filteredData.filter((d) => d.activity === 5).sort(sortByName);
const group1 = filteredData.filter((d) => d.activity === 1 && isSameDay(d.checkInTime)).sort(sortByName);
const group2 = filteredData.filter((d) => d.activity === 4 && isSameDay(d.checkOutTime)).sort(sortByName);
const group3 = filteredData.filter((d) => d.activity === 1 && isBeforeToday(d.checkInTime)).sort(sortByName);
const group4 = filteredData.filter((d) => d.activity === 4 && isBeforeToday(d.checkOutTime));
const group5 = filteredData.filter((d) => d.activity === 2 && isBeforeToday(d.checkOutTime)).sort(sortByName);
const group6 = filteredData.filter((d) => d.activity === 5).sort(sortByName);
const sortedList = [...group1, ...group2, ...group3, ...group4, ...group5, ...group6];
const sortedList = [...group1, ...group2, ...group3, ...group4, ...group5, ...group6];
// Group by date
const groupedByDate = sortedList.reduce((acc, item) => {
const date = (item.checkInTime || item.checkOutTime)?.split("T")[0];
if (date) {
acc[date] = acc[date] || [];
acc[date].push(item);
}
return acc;
}, {});
const groupedByDate = sortedList.reduce((acc, item) => {
const date = (item.checkInTime || item.checkOutTime)?.split("T")[0];
if (date) {
acc[date] = acc[date] || [];
acc[date].push(item);
}
return acc;
}, {});
// Sort dates in descending order
const sortedDates = Object.keys(groupedByDate).sort((a, b) => new Date(b) - new Date(a));
const sortedDates = Object.keys(groupedByDate).sort((a, b) => new Date(b) - new Date(a));
return sortedDates.flatMap((date) => groupedByDate[date]);
}, [data, showPending]);
// Create the final sorted array
const finalData = sortedDates.flatMap((date) => groupedByDate[date]);
setProcessedData(finalData);
}, [data, showOnlyCheckout]);
const filteredSearchData = useMemo(() => {
if (!searchTerm) return processedData;
const { currentPage, totalPages, currentItems: paginatedAttendances, paginate, resetPage } = usePagination(
processedData,
10
const lowercased = searchTerm.toLowerCase();
return processedData.filter((item) =>
`${item.firstName} ${item.lastName}`.toLowerCase().includes(lowercased)
);
}, [processedData, searchTerm]);
const {
currentPage,
totalPages,
currentItems: paginatedAttendances,
paginate,
resetPage,
} = usePagination(filteredSearchData, 20);
useEffect(() => {
resetPage();
}, [filteredSearchData]);
const handler = useCallback(
(msg) => {
const { startDate, endDate } = dateRange;
const checkIn = msg.response.checkInTime.substring(0, 10);
if (selectedProject === msg.projectId && startDate <= checkIn && checkIn <= endDate) {
queryClient.setQueriesData(["attendanceLogs"], (oldData) => {
if (!oldData) {
queryClient.invalidateQueries({ queryKey: ["attendanceLogs"] });
return;
}
return oldData.map((record) =>
record.id === msg.response.id ? { ...record, ...msg.response } : record
);
});
resetPage();
}
},
[selectedProject, dateRange, resetPage]
);
useEffect(() => {
eventBus.on("attendance_log", handler);
return () => eventBus.off("attendance_log", handler);
}, [handler]);
const employeeHandler = useCallback(
(msg) => {
const { startDate, endDate } = dateRange;
if (data.some((item) => item.employeeId == msg.employeeId)) {
refetch();
}
},
[data, refetch]
);
useEffect(() => {
eventBus.on("employee", employeeHandler);
return () => eventBus.off("employee", employeeHandler);
}, [employeeHandler]);
// Reset to the first page whenever processedData changes (due to switch on/off)
useEffect(() => {
resetPage();
}, [processedData, resetPage]);
return (
<>
<div
className="dataTables_length text-start py-2 d-flex justify-content-between"
className="dataTables_length text-start py-2 d-flex justify-content-between "
id="DataTables_Table_0_length"
>
<div className="col-md-3 my-0 ">
<DateRangePicker onRangeChange={setDateRange} defaultStartDate={yesterday} />
</div>
<div className="col-md-2 m-0 text-end">
<i
className={`bx bx-refresh cursor-pointer fs-4 ${loading || isRefreshing ? "spin" : ""
}`}
title="Refresh"
onClick={() => setIsRefreshing(true)}
<div className="d-flex align-items-center my-0 ">
<DateRangePicker
onRangeChange={setDateRange}
defaultStartDate={yesterday}
/>
<div className="form-check form-switch text-start ms-1 ms-md-2 align-items-center mb-0">
<input
type="checkbox"
className="form-check-input"
role="switch"
disabled={isFetching}
id="inactiveEmployeesCheckbox"
checked={showPending}
onChange={(e) => setShowPending(e.target.checked)}
/>
<label className="form-check-label ms-0">Show Pending</label>
</div>
</div>
</div>
<div className="table-responsive text-nowrap">
{data && data.length > 0 && (
<div
className="table-responsive text-nowrap"
style={{ minHeight: "200px" }}
>
{isLoading ? (
<div
className="d-flex justify-content-center align-items-center"
style={{ height: "200px" }}
>
<p className="text-secondary">Loading...</p>
</div>
) : filteredSearchData?.length > 0 ? (
<table className="table mb-0">
<thead>
<tr>
@ -147,8 +213,10 @@ const AttendanceLog = ({ handleModalData, projectId, showOnlyCheckout }) => {
Name
</th>
<th className="border-top-1">Date</th>
<th>Organization</th>
<th>
<i className="bx bxs-down-arrow-alt text-success"></i> Check-In
<i className="bx bxs-down-arrow-alt text-success"></i>{" "}
Check-In
</th>
<th>
<i className="bx bxs-up-arrow-alt text-danger"></i> Check-Out
@ -157,21 +225,28 @@ const AttendanceLog = ({ handleModalData, projectId, showOnlyCheckout }) => {
</tr>
</thead>
<tbody>
{(loading || isRefreshing) && (
<tr>
<td colSpan={6}>Loading...</td>
</tr>
)}
{!loading && !isRefreshing && paginatedAttendances.reduce((acc, attendance, index, arr) => {
const currentDate = moment(attendance.checkInTime || attendance.checkOutTime).format("YYYY-MM-DD");
{paginatedAttendances.reduce((acc, attendance, index, arr) => {
const currentDate = moment(
attendance.checkInTime || attendance.checkOutTime
).format("YYYY-MM-DD");
const previousAttendance = arr[index - 1];
const previousDate = previousAttendance ? moment(previousAttendance.checkInTime || previousAttendance.checkOutTime).format("YYYY-MM-DD") : null;
const previousDate = previousAttendance
? moment(
previousAttendance.checkInTime ||
previousAttendance.checkOutTime
).format("YYYY-MM-DD")
: null;
if (!previousDate || currentDate !== previousDate) {
acc.push(
<tr key={`header-${currentDate}`} className="table-row-header">
<td colSpan={6} className="text-start">
<strong>{moment(currentDate).format("YYYY-MM-DD")}</strong>
<tr
key={`header-${currentDate}`}
className="table-row-header"
>
<td colSpan={8} className="text-start">
<strong>
{moment(currentDate).format("DD-MM-YYYY")}
</strong>
</td>
</tr>
);
@ -185,10 +260,7 @@ const AttendanceLog = ({ handleModalData, projectId, showOnlyCheckout }) => {
lastName={attendance.lastName}
/>
<div className="d-flex flex-column">
<a
href="#"
className="text-heading text-truncate"
>
<a href="#" className="text-heading text-truncate">
<span className="fw-normal">
{attendance.firstName} {attendance.lastName}
</span>
@ -197,11 +269,16 @@ const AttendanceLog = ({ handleModalData, projectId, showOnlyCheckout }) => {
</div>
</td>
<td>
{moment(attendance.checkInTime || attendance.checkOutTime).format("DD-MMM-YYYY")}
{moment(
attendance.checkInTime || attendance.checkOutTime
).format("DD-MMM-YYYY")}
</td>
<td>{attendance.organizationName || "--"}</td>
<td>{convertShortTime(attendance.checkInTime)}</td>
<td>
{attendance.checkOutTime ? convertShortTime(attendance.checkOutTime) : "--"}
{attendance.checkOutTime
? convertShortTime(attendance.checkOutTime)
: "--"}
</td>
<td className="text-center">
<RenderAttendanceStatus
@ -217,36 +294,60 @@ const AttendanceLog = ({ handleModalData, projectId, showOnlyCheckout }) => {
}, [])}
</tbody>
</table>
)}
{!loading && !isRefreshing && data.length === 0 && <span>No employee logs</span>}
{error && !loading && !isRefreshing && (
<tr>
<td colSpan={6}>{error}</td>
</tr>
) : (
<div className="my-12">
<span className="text-secondary">
No data available for the selected date range. Please Select
another date.
</span>
</div>
)}
</div>
{!loading && !isRefreshing && processedData.length > 10 && (
{paginatedAttendances?.length == 0 && filteredSearchData?.length > 0 && (
<div
className="d-flex justify-content-center align-items-center text-secondary"
style={{ height: "200px" }}
>
No Record Available !
</div>
)}
{filteredSearchData.length > ITEMS_PER_PAGE && (
<nav aria-label="Page ">
<ul className="pagination pagination-sm justify-content-end py-1">
<li className={`page-item ${currentPage === 1 ? "disabled" : ""}`}>
<button className="page-link btn-xs" onClick={() => paginate(currentPage - 1)}>
<button
className="page-link btn-xs"
onClick={() => paginate(currentPage - 1)}
>
&laquo;
</button>
</li>
{Array.from({ length: totalPages }, (_, i) => i + 1).map((pageNumber) => (
<li
key={pageNumber}
className={`page-item ${currentPage === pageNumber ? "active" : ""}`}
>
<button className="page-link" onClick={() => paginate(pageNumber)}>
{pageNumber}
</button>
</li>
))}
{Array.from({ length: totalPages }, (_, i) => i + 1).map(
(pageNumber) => (
<li
key={pageNumber}
className={`page-item ${
currentPage === pageNumber ? "active" : ""
}`}
>
<button
className="page-link"
onClick={() => paginate(pageNumber)}
>
{pageNumber}
</button>
</li>
)
)}
<li
className={`page-item ${currentPage === totalPages ? "disabled" : ""}`}
className={`page-item ${
currentPage === totalPages ? "disabled" : ""
}`}
>
<button className="page-link" onClick={() => paginate(currentPage + 1)}>
<button
className="page-link"
onClick={() => paginate(currentPage + 1)}
>
&raquo;
</button>
</li>
@ -257,4 +358,4 @@ const AttendanceLog = ({ handleModalData, projectId, showOnlyCheckout }) => {
);
};
export default AttendanceLog;
export default AttendanceLog;

View File

@ -5,29 +5,56 @@ import { zodResolver } from "@hookform/resolvers/zod";
import TimePicker from "../common/TimePicker";
import { usePositionTracker } from "../../hooks/usePositionTracker";
import { useDispatch, useSelector } from "react-redux";
import { markAttendance } from "../../slices/apiSlice/attedanceLogsSlice";
import showToast from "../../services/toastService";
import { checkIfCurrentDate } from "../../utils/dateUtils";
import { useMarkAttendance } from "../../hooks/useAttendance";
import { useSelectedProject } from "../../slices/apiDataManager";
const createSchema = (modeldata) => {
return z
.object({
markTime: z.string().nonempty({ message: "Time is required" }),
description: z
.string()
.max(200, "Description should be less than 200 characters")
.optional(),
})
.refine((data) => {
if (modeldata?.checkInTime && !modeldata?.checkOutTime) {
const checkIn = new Date(modeldata.checkInTime);
const [time, modifier] = data.markTime.split(" ");
const [hourStr, minuteStr] = time.split(":");
let hour = parseInt(hourStr, 10);
const minute = parseInt(minuteStr, 10);
const schema = z.object({
markTime: z.string().nonempty({ message: "Time is required" }),
description: z.string().max(200, "description should less than 200 chracters").optional()
});
if (modifier === "PM" && hour !== 12) hour += 12;
if (modifier === "AM" && hour === 12) hour = 0;
const CheckCheckOutmodel = ({ modeldata, closeModal, handleSubmitForm, }) => {
const checkOut = new Date(checkIn);
checkOut.setHours(hour, minute, 0, 0);
const projectId = useSelector((store) => store.localVariables.projectId)
return checkOut >= checkIn;
}
return true;
}, {
message: "Checkout time must be later than check-in time",
path: ["markTime"],
});
};
const CheckInCheckOut = ({ modeldata, closeModal, handleSubmitForm }) => {
const projectId = useSelectedProject();
const { mutate: MarkAttendance } = useMarkAttendance();
const [isLoading, setIsLoading] = useState(false);
const coords = usePositionTracker();
const dispatch = useDispatch()
const today = new Date().toISOString().split('T')[0];
const dispatch = useDispatch();
const today = new Date().toISOString().split("T")[0];
const formatDate = (dateString) => {
const formatDate = (dateString) => {
if (!dateString) {
return '';
return "";
}
const [year, month, day] = dateString.split('-');
const [year, month, day] = dateString.split("-");
return `${day}-${month}-${year}`;
};
@ -38,53 +65,52 @@ const CheckCheckOutmodel = ({ modeldata, closeModal, handleSubmitForm, }) => {
reset,
setValue,
} = useForm({
resolver: zodResolver(schema),
mode: "onChange"
resolver: zodResolver(createSchema(modeldata)),
mode: "onChange",
});
const onSubmit = (data) => {
let record = { ...data, date: new Date().toLocaleDateString(), latitude: coords.latitude, longitude: coords.longitude, employeeId: modeldata.employeeId, action: modeldata.action, id: modeldata?.id || null }
if (modeldata.forWhichTab === 1) {
handleSubmitForm(record)
} else {
// if ( modeldata?.currentDate && checkIfCurrentDate( modeldata?.currentDate ) )
// {
dispatch(markAttendance(record))
.unwrap()
.then((data) => {
showToast("Attendance Marked Successfully", "success");
})
.catch((error) => {
showToast(error, "error");
});
// } else
// {
// let formData = {...data, date: new Date().toLocaleDateString(),latitude:coords.latitude,longitude:coords.longitude,employeeId:modeldata.employeeId,projectId:projectId,action:modeldata.action,id:modeldata?.id || null}
// }
}
closeModal()
let record = {
...data,
date: new Date().toLocaleDateString(),
latitude: coords.latitude,
longitude: coords.longitude,
employeeId: modeldata.employeeId,
action: modeldata.action,
id: modeldata?.id || null,
};
const payload = {
Id: modeldata?.id || null,
comment: data.description,
employeeID: modeldata.employeeId,
projectId: projectId,
date: new Date().toISOString(),
markTime: data.markTime,
latitude: coords.latitude.toString(),
longitude: coords.longitude.toString(),
action: modeldata.action,
image: null,
};
MarkAttendance({ payload, forWhichTab: modeldata.forWhichTab });
closeModal();
};
return (
<form className="row g-2" onSubmit={handleSubmit(onSubmit)}>
<div className="col-12 col-md-12">
<label className="fs-5 text-dark text-center d-flex align-items-center flex-wrap">
{modeldata?.checkInTime && !modeldata?.checkOutTime ? 'Check-out :' : 'Check-in :'}
<form className="row p-2" onSubmit={handleSubmit(onSubmit)}>
<div className="col-12 d-flex justify-content-center mb-4">
<label className="fs-5 tex-semibold text-center">
{modeldata?.checkInTime && !modeldata?.checkOutTime
? "Check-Out "
: "Check-In "}
</label>
</div>
<div className="col-6 col-md-6 ">
<div className="col-6 col-md-6 text-start">
<label className="form-label" htmlFor="checkInDate">
{modeldata?.checkInTime && !modeldata?.checkOutTime ? 'Check-out Date' : 'Check-in Date'}
{modeldata?.checkInTime && !modeldata?.checkOutTime
? "Check-out Date"
: "Check-in Date"}
</label>
<input
type="text"
@ -92,14 +118,14 @@ const CheckCheckOutmodel = ({ modeldata, closeModal, handleSubmitForm, }) => {
className="form-control"
value={
modeldata?.checkInTime && !modeldata?.checkOutTime
? formatDate(modeldata?.checkInTime?.split('T')[0]) || ''
? formatDate(modeldata?.checkInTime?.split("T")[0]) || ""
: formatDate(today)
}
}
disabled
/>
</div>
<div className="col-6 col-md-6">
<div className="col-6 col-md-6 text-start">
<TimePicker
label="Choose a time"
onChange={(e) => setValue("markTime", e)}
@ -107,10 +133,12 @@ const CheckCheckOutmodel = ({ modeldata, closeModal, handleSubmitForm, }) => {
checkOutTime={modeldata?.checkOutTime}
checkInTime={modeldata?.checkInTime}
/>
{errors.markTime && <p className="text-danger">{errors.markTime.message}</p>}
{errors.markTime && (
<p className="text-danger">{errors.markTime.message}</p>
)}
</div>
<div className="col-12 col-md-12">
<div className="col-12 col-md-12 text-start">
<label className="form-label" htmlFor="description">
Description
</label>
@ -126,36 +154,30 @@ const CheckCheckOutmodel = ({ modeldata, closeModal, handleSubmitForm, }) => {
)}
</div>
<div className="col-12 text-center">
<button type="submit" className="btn btn-sm btn-primary me-3">
{isLoading ? "Please Wait..." : "Submit"}
</button>
<div className="col-12 text-end mt-4">
<button
type="reset"
className="btn btn-sm btn-label-secondary"
className="btn btn-sm btn-label-secondary me-2"
data-bs-dismiss="modal"
aria-label="Close"
onClick={() => closeModal()}
>
Cancel
</button>
<button type="submit" className="btn btn-sm btn-primary">
{isLoading ? "Please Wait..." : "Submit"}
</button>
</div>
</form>
);
};
)
}
export default CheckCheckOutmodel;
export default CheckInCheckOut;
const schemaReg = z.object({
description: z.string().min(1, { message: "please give reason!" })
description: z.string().min(1, { message: "please give reason!" }),
});
export const Regularization = ({ modeldata, closeModal, handleSubmitForm }) => {
const [isLoading, setIsLoading] = useState(false);
const coords = usePositionTracker();
@ -170,22 +192,22 @@ export const Regularization = ({ modeldata, closeModal, handleSubmitForm }) => {
const getCurrentDate = () => {
const today = new Date();
return today.toLocaleDateString('en-CA');
return today.toLocaleDateString("en-CA");
};
const onSubmit = (data) => {
let record = { ...data, date: new Date().toLocaleDateString(), latitude: coords.latitude, longitude: coords.longitude, }
handleSubmitForm(record)
closeModal()
let record = {
...data,
date: new Date().toLocaleDateString(),
latitude: coords.latitude,
longitude: coords.longitude,
};
handleSubmitForm(record);
closeModal();
};
return (
<form className="row g-2" onSubmit={handleSubmit(onSubmit)}>
<div className="col-12 col-md-12">
<p>Regularize Attendance</p>
<label className="form-label" htmlFor="description">
@ -202,7 +224,6 @@ export const Regularization = ({ modeldata, closeModal, handleSubmitForm }) => {
)}
</div>
<div className="col-12 text-center">
<button type="submit" className="btn btn-sm btn-primary me-3">
{isLoading ? "Please Wait..." : "Submit"}
@ -218,6 +239,5 @@ export const Regularization = ({ modeldata, closeModal, handleSubmitForm }) => {
</button>
</div>
</form>
)
}
);
};

Some files were not shown because too many files have changed in this diff Show More