Skip to content

Commit

Permalink
Ticket 19 (#28)
Browse files Browse the repository at this point in the history
* Update Ticket-19 (#27)

* Ticket 19 (#23)

* Pull DB changes from dev into ticket-29 (#12)

* feat(migration): create RequestLog table with PostgreSQL enum type for state management

The migration also includes a check for the existence of the `status` enum type, ensuring it is created only if it does not already exist, and properly handles the rollback of changes.

* feat(db): pull backend database configurations (#10)

* yarn dependecies updated

* added components for apply wfh

* Modified colours for submit button

* changed folder/file structure to follow coding standards

* Components will adjust accordingly to screen size

* Added React states for form submission

* Pass data to Page render.

* Fixed dependencies

* Change configs for db

* fix: Fixed DB connection issues

* Started backend api for wfh request

---------

Co-authored-by: elliot <[email protected]>

* Setup navs and login

* Fix Auth page and Nav

Fixed the Auth Page and Nav, finishing their scaffolding

* Scaffold calendar

Scaffold WFH calendar for both mobile and desktop

* Refinements

Refine Nav and Calendar

* Front end Fixes

Remove dark mode

Tidy up schedule

Show clearer difference between am, pm and full day wfh

Marked which day is today

improve mobile responsiveness

---------

Co-authored-by: neojw1505 <[email protected]>
Co-authored-by: elliot <[email protected]>
Co-authored-by: songdre123 <[email protected]>

* feat(api): complete backend endpoint for creating request

- Added API functionality to create a new request with staff and approver details
- Created request and request log records
- Started implementing modal to display success or failure on request submission

* feat(api): complete backend endpoint for creating request

- Added API functionality to create a new request with staff and approver details
- Created request and request log records
- Started implementing modal to display success or failure on request submission

* feat(api):  backend endpoint for creating request

* Squashed commit of the following:

commit afc27d777c7127b68740b49e3ff1a1d87056104b
Author: Zavier <[email protected]>
Date:   Sat Sep 28 23:13:02 2024 +0800

    feat: create History page and add global session for employee ID (#15)

    * feat: added manage requests page

    - Added /history route to access requests
    - RequestEntry & RequestTable components created for history
    - Currently using static data from constants

    * feat: Integrated History page with backend

    - Added session global variable for employeeid
    - Minor UI update on history page
    - Updated nav bar links to apply and history page

commit 9bdeb27b8baa66f14711bfbc5c5f398b6e662e55
Author: neojw1505 <[email protected]>
Date:   Sat Sep 28 16:05:48 2024 +0800

    chore: switch Cypress installation to Yarn

commit b73b1615d6e397748fccaf4e7fbdd622da5b37df
Author: neojw1505 <[email protected]>
Date:   Sat Sep 28 15:52:13 2024 +0800

    feat(tests): add ScheduleSeeder in scheduleTest, fix typo in RequestLog_RequestId foreign key

commit 454aeef0a0d9f36f19fa35f174fc0364a0c1ecaa
Merge: 3cbdb22 0b1c092
Author: solai-y <[email protected]>
Date:   Sat Sep 28 15:07:04 2024 +0800

    Merge branch 'dev_wfh' into origin/TICKET-37

commit 3cbdb22d6fd2f1cb1706c4993b501cb167ddace3
Author: solai-y <[email protected]>
Date:   Sat Sep 28 15:06:58 2024 +0800

    Test File for schedule

commit 0b1c092c7925d1b500cef6e1972cc8d8fc99a911
Author: neojw1505 <[email protected]>
Date:   Sat Sep 28 15:01:49 2024 +0800

    chore(e2e): setup Cypress for end-to-end testing in Next.js app

commit 1c5ad77b83d03f476dab1771ba3edc286fb54aaa
Author: DESKTOP-G5I4U2Q\JW <[email protected]>
Date:   Sat Sep 28 11:12:18 2024 +0800

    fix(tests): add missing Unit folder to track unit tests

commit 6530fca58c374e73367f2c65626d09abc4045209
Author: neojw1505 <[email protected]>
Date:   Fri Sep 27 10:52:21 2024 +0800

    test: add test cases for employee API by ID and email

    - Added test cases for getting employee by ID: valid, non-existing, and invalid ID scenarios.
    - Added test cases for getting employee by email: valid, non-existing, and invalid email format scenarios.

commit bb8cf5c6ac14b1b89a67ed25baff5193616f72a2
Author: e-tayfw <[email protected]>
Date:   Fri Sep 27 08:42:12 2024 +0800

    feat(api): integrated backend ownSchedule api with frontend, redux global store (#13)

    resolved conflict with dev_wfh before making this pull request

    added the integrated backend ownSchedule api with the frontend, along with implementation of the new redux global store

    ---------

    Co-authored-by: songdre123 <[email protected]>
    Co-authored-by: solai-y <[email protected]>
    Co-authored-by: neojw1505 <[email protected]>
    Co-authored-by: Elliot Tan <[email protected]>
    Co-authored-by: elliot <[email protected]>

commit 9c45a7d21b8a89a5b4888d191a7929ab5089c2fe
Author: neojw1505 <[email protected]>
Date:   Thu Sep 26 15:43:45 2024 +0800

    chore(tests): remove DB_USERNAME and DB_PASSWORD from phpunit.xml

commit e508ae01af510a0f633c42643d2edb2cc2720c19
Merge: 4c71ecf e43b312
Author: Elliot Tan <[email protected]>
Date:   Thu Sep 26 14:03:59 2024 +0800

    Merge branch 'TICKET-29' into dev_wfh

commit 4c71ecfe3b14096f8913abacdd1b3233b591d876
Author: songdre123 <[email protected]>
Date:   Sun Sep 22 14:55:03 2024 +0800

    Front end Fixes

    Remove dark mode

    Tidy up schedule

    Show clearer difference between am, pm and full day wfh

    Marked which day is today

    improve mobile responsiveness

commit bfb3bdfdf409ebf78be39490394330a9c3265e34
Author: songdre123 <[email protected]>
Date:   Sat Sep 21 17:52:44 2024 +0800

    Refinements

    Refine Nav and Calendar

commit 3e87fe5a160664e3a42eef580596fa04d7124ab7
Author: songdre123 <[email protected]>
Date:   Sat Sep 21 14:36:29 2024 +0800

    Scaffold calendar

    Scaffold WFH calendar for both mobile and desktop

commit ae10f6b40a16ca6f8c479edad632ff616881d0f6
Author: songdre123 <[email protected]>
Date:   Fri Sep 20 09:37:32 2024 +0800

    Fix Auth page and Nav

    Fixed the Auth Page and Nav, finishing their scaffolding

commit 3ccff0ff1c9b6c41200e7b7915e5ddb1b30fbbce
Author: songdre123 <[email protected]>
Date:   Thu Sep 19 01:40:09 2024 +0800

    Setup navs and login

commit 7f7964d324352232d81a2a41f96e92468cd22fb1
Author: Elliot Tan <[email protected]>
Date:   Tue Sep 24 20:35:16 2024 +0800

    feat(db): pull backend database configurations (#10)

    * yarn dependecies updated

    * added components for apply wfh

    * Modified colours for submit button

    * changed folder/file structure to follow coding standards

    * Components will adjust accordingly to screen size

    * Added React states for form submission

    * Pass data to Page render.

    * Fixed dependencies

    * Change configs for db

    * fix: Fixed DB connection issues

    * Started backend api for wfh request

    ---------

    Co-authored-by: elliot <[email protected]>

commit e7ea312aee9c1b80750d5cb4819759c121e403eb
Author: neojw1505 <[email protected]>
Date:   Tue Sep 24 14:18:29 2024 +0800

    feat(migration): create RequestLog table with PostgreSQL enum type for state management

    The migration also includes a check for the existence of the `status` enum type, ensuring it is created only if it does not already exist, and properly handles the rollback of changes.

* feat(frontend): add TypeScript types to Apply components

* fix(frontend): correct TypeScript declarations for Flowbite Datepicker

* update index.tsx

* fix(branch): resolve conflicts and align with remote

* fix(branch): resolve conflicts and align with remote

* fix(branch): resolve conflicts and align with remote

* fix(tailwind): correct tailwind.config.ts settings

* feat(frontend): implement modal for form submission feedback, implement simulated API response scenarios

* bug fix/chore: Fixed autoincrement in Request.sql insertion script

* chore(frontend): add commented axios POST for future backend integration

* chore(frontend): adjusted commented axios POST for future backend integration

* chore(frontend): adjusted commented axios POST for future backend integration

* fix(backend-api): brief description of the fix

* feat(db): implement schema changes for work-from-home requests

* Update index.tsx

* feat(frontend): Add staffId retrieval with useSelector

* fix(api): resolve axios issue to post Axios requests

* Squashed commit of the following:

commit cb3bc331a40768d99abbfb2d276cb7db655e0903
Author: neojw1505 <[email protected]>
Date:   Fri Oct 4 19:23:25 2024 +0800

    feat(api): disable CSRF protection for all API routes

    - Excluded all `api/*` routes from CSRF token validation.

commit 45bf7d07a8df5a1f0d11e9d1715a51bd12571073
Author: Elliot Tan <[email protected]>
Date:   Wed Oct 2 18:23:30 2024 +0800

    merge(dev_wfh): integrate ticket 29 changes for work-from-home feature (#18)

    * Pull DB changes from dev into ticket-29 (#12)

    * feat(migration): create RequestLog table with PostgreSQL enum type for state management

    The migration also includes a check for the existence of the `status` enum type, ensuring it is created only if it does not already exist, and properly handles the rollback of changes.

    * feat(db): pull backend database configurations (#10)

    * yarn dependecies updated

    * added components for apply wfh

    * Modified colours for submit button

    * changed folder/file structure to follow coding standards

    * Components will adjust accordingly to screen size

    * Added React states for form submission

    * Pass data to Page render.

    * Fixed dependencies

    * Change configs for db

    * fix: Fixed DB connection issues

    * Started backend api for wfh request

    ---------

    Co-authored-by: elliot <[email protected]>

    * Setup navs and login

    * Fix Auth page and Nav

    Fixed the Auth Page and Nav, finishing their scaffolding

    * Scaffold calendar

    Scaffold WFH calendar for both mobile and desktop

    * Refinements

    Refine Nav and Calendar

    * Front end Fixes

    Remove dark mode

    Tidy up schedule

    Show clearer difference between am, pm and full day wfh

    Marked which day is today

    improve mobile responsiveness

    ---------

    Co-authored-by: neojw1505 <[email protected]>
    Co-authored-by: elliot <[email protected]>
    Co-authored-by: songdre123 <[email protected]>

    * feat(api): complete backend endpoint for creating request

    - Added API functionality to create a new request with staff and approver details
    - Created request and request log records
    - Started implementing modal to display success or failure on request submission

    * feat(api): complete backend endpoint for creating request

    - Added API functionality to create a new request with staff and approver details
    - Created request and request log records
    - Started implementing modal to display success or failure on request submission

    * feat(api):  backend endpoint for creating request

    * Squashed commit of the following:

    commit afc27d777c7127b68740b49e3ff1a1d87056104b
    Author: Zavier <[email protected]>
    Date:   Sat Sep 28 23:13:02 2024 +0800

        feat: create History page and add global session for employee ID (#15)

        * feat: added manage requests page

        - Added /history route to access requests
        - RequestEntry & RequestTable components created for history
        - Currently using static data from constants

        * feat: Integrated History page with backend

        - Added session global variable for employeeid
        - Minor UI update on history page
        - Updated nav bar links to apply and history page

    commit 9bdeb27b8baa66f14711bfbc5c5f398b6e662e55
    Author: neojw1505 <[email protected]>
    Date:   Sat Sep 28 16:05:48 2024 +0800

        chore: switch Cypress installation to Yarn

    commit b73b1615d6e397748fccaf4e7fbdd622da5b37df
    Author: neojw1505 <[email protected]>
    Date:   Sat Sep 28 15:52:13 2024 +0800

        feat(tests): add ScheduleSeeder in scheduleTest, fix typo in RequestLog_RequestId foreign key

    commit 454aeef0a0d9f36f19fa35f174fc0364a0c1ecaa
    Merge: 3cbdb22 0b1c092
    Author: solai-y <[email protected]>
    Date:   Sat Sep 28 15:07:04 2024 +0800

        Merge branch 'dev_wfh' into origin/TICKET-37

    commit 3cbdb22d6fd2f1cb1706c4993b501cb167ddace3
    Author: solai-y <[email protected]>
    Date:   Sat Sep 28 15:06:58 2024 +0800

        Test File for schedule

    commit 0b1c092c7925d1b500cef6e1972cc8d8fc99a911
    Author: neojw1505 <[email protected]>
    Date:   Sat Sep 28 15:01:49 2024 +0800

        chore(e2e): setup Cypress for end-to-end testing in Next.js app

    commit 1c5ad77b83d03f476dab1771ba3edc286fb54aaa
    Author: DESKTOP-G5I4U2Q\JW <[email protected]>
    Date:   Sat Sep 28 11:12:18 2024 +0800

        fix(tests): add missing Unit folder to track unit tests

    commit 6530fca58c374e73367f2c65626d09abc4045209
    Author: neojw1505 <[email protected]>
    Date:   Fri Sep 27 10:52:21 2024 +0800

        test: add test cases for employee API by ID and email

        - Added test cases for getting employee by ID: valid, non-existing, and invalid ID scenarios.
        - Added test cases for getting employee by email: valid, non-existing, and invalid email format scenarios.

    commit bb8cf5c6ac14b1b89a67ed25baff5193616f72a2
    Author: e-tayfw <[email protected]>
    Date:   Fri Sep 27 08:42:12 2024 +0800

        feat(api): integrated backend ownSchedule api with frontend, redux global store (#13)

        resolved conflict with dev_wfh before making this pull request

        added the integrated backend ownSchedule api with the frontend, along with implementation of the new redux global store

        ---------

        Co-authored-by: songdre123 <[email protected]>
        Co-authored-by: solai-y <[email protected]>
        Co-authored-by: neojw1505 <[email protected]>
        Co-authored-by: Elliot Tan <[email protected]>
        Co-authored-by: elliot <[email protected]>

    commit 9c45a7d21b8a89a5b4888d191a7929ab5089c2fe
    Author: neojw1505 <[email protected]>
    Date:   Thu Sep 26 15:43:45 2024 +0800

        chore(tests): remove DB_USERNAME and DB_PASSWORD from phpunit.xml

    commit e508ae01af510a0f633c42643d2edb2cc2720c19
    Merge: 4c71ecf e43b312
    Author: Elliot Tan <[email protected]>
    Date:   Thu Sep 26 14:03:59 2024 +0800

        Merge branch 'TICKET-29' into dev_wfh

    commit 4c71ecfe3b14096f8913abacdd1b3233b591d876
    Author: songdre123 <[email protected]>
    Date:   Sun Sep 22 14:55:03 2024 +0800

        Front end Fixes

        Remove dark mode

        Tidy up schedule

        Show clearer difference between am, pm and full day wfh

        Marked which day is today

        improve mobile responsiveness

    commit bfb3bdfdf409ebf78be39490394330a9c3265e34
    Author: songdre123 <[email protected]>
    Date:   Sat Sep 21 17:52:44 2024 +0800

        Refinements

        Refine Nav and Calendar

    commit 3e87fe5a160664e3a42eef580596fa04d7124ab7
    Author: songdre123 <[email protected]>
    Date:   Sat Sep 21 14:36:29 2024 +0800

        Scaffold calendar

        Scaffold WFH calendar for both mobile and desktop

    commit ae10f6b40a16ca6f8c479edad632ff616881d0f6
    Author: songdre123 <[email protected]>
    Date:   Fri Sep 20 09:37:32 2024 +0800

        Fix Auth page and Nav

        Fixed the Auth Page and Nav, finishing their scaffolding

    commit 3ccff0ff1c9b6c41200e7b7915e5ddb1b30fbbce
    Author: songdre123 <[email protected]>
    Date:   Thu Sep 19 01:40:09 2024 +0800

        Setup navs and login

    commit 7f7964d324352232d81a2a41f96e92468cd22fb1
    Author: Elliot Tan <[email protected]>
    Date:   Tue Sep 24 20:35:16 2024 +0800

        feat(db): pull backend database configurations (#10)

        * yarn dependecies updated

        * added components for apply wfh

        * Modified colours for submit button

        * changed folder/file structure to follow coding standards

        * Components will adjust accordingly to screen size

        * Added React states for form submission

        * Pass data to Page render.

        * Fixed dependencies

        * Change configs for db

        * fix: Fixed DB connection issues

        * Started backend api for wfh request

        ---------

        Co-authored-by: elliot <[email protected]>

    commit e7ea312aee9c1b80750d5cb4819759c121e403eb
    Author: neojw1505 <[email protected]>
    Date:   Tue Sep 24 14:18:29 2024 +0800

        feat(migration): create RequestLog table with PostgreSQL enum type for state management

        The migration also includes a check for the existence of the `status` enum type, ensuring it is created only if it does not already exist, and properly handles the rollback of changes.

    * feat(frontend): add TypeScript types to Apply components

    * fix(frontend): correct TypeScript declarations for Flowbite Datepicker

    * update index.tsx

    * fix(branch): resolve conflicts and align with remote

    * fix(branch): resolve conflicts and align with remote

    * fix(branch): resolve conflicts and align with remote

    * fix(tailwind): correct tailwind.config.ts settings

    * feat(frontend): implement modal for form submission feedback, implement simulated API response scenarios

    * bug fix/chore: Fixed autoincrement in Request.sql insertion script

    * chore(frontend): add commented axios POST for future backend integration

    * chore(frontend): adjusted commented axios POST for future backend integration

    * chore(frontend): adjusted commented axios POST for future backend integration

    * fix(backend-api): brief description of the fix

    * feat(db): implement schema changes for work-from-home requests

    * Update index.tsx

    ---------

    Co-authored-by: neojw1505 <[email protected]>
    Co-authored-by: elliot <[email protected]>
    Co-authored-by: songdre123 <[email protected]>
    Co-authored-by: Zavier <[email protected]>

* Feat(front-end): Update nav bar and add toastify

* fix(api): correct Axios POST request configuration

* Squashed commit of the following:

commit ae4f26d10eb98d6c32b769eb0ccac651c07a1a6c
Author: e-tayfw <[email protected]>
Date:   Sat Oct 5 18:05:07 2024 +0800

    bug: resolve missing bracket in store

commit 051ad86f45add84866a24015a2c9e90bdf4535d6
Author: e-tayfw <[email protected]>
Date:   Sat Oct 5 16:56:54 2024 +0800

    Feat(Ticket): Added view own schedule (DONE) (#19)

    * Add test schedule data controller and route

    * create login page

    * Setup navs and login

    * api: get emplyees by department / team

    3 New API endpoints

    /employee/department/{department} - to use department name to get all employees in that department

    /employee/team/manager/{reportingManager} - to use a reporting manager user id to get all the people in that report to the same manager and the manager themself

    /employee/team/member/{teamMember} - to use a team member to find the rest of the people that also report to the same person and also their reporting manager is returned together

    * Fix Auth page and Nav

    Fixed the Auth Page and Nav, finishing their scaffolding

    * feat: added calendar, nav and schedule

    * config: configured eslint to not prefer jsdom document for testing purposes

    * test: refactor unit test script for schedule component

    * bug: fix frontend imports and fix yarn build

    * api: added requests and view schedule apis

    * Setup navs and login

    * bug: fixed navlink import directory for vercel preview deploy

    * bug: fixed import paths for import to absolute paths

    * bug: fixed import component for Mobile Nav

    * refactor: refactored import and export of components

    * config: git config to ignore case for vercel deploy

    * Fix parameter bug for request and schedule api call

    * chore: remove unused Nav directory from src/components

    * chore: remove unused Schedule directory from src/components

    * Scaffold calendar

    Scaffold WFH calendar for both mobile and desktop

    * Refinements

    Refine Nav and Calendar

    * Front end Fixes

    Remove dark mode

    Tidy up schedule

    Show clearer difference between am, pm and full day wfh

    Marked which day is today

    improve mobile responsiveness

    * bug: delete additional directory

    * bug: delete src/components/Schedule directory

    * feat(store): added redux store for api calls

    * feat: added calendar, nav and schedule

    * config: configured eslint to not prefer jsdom document for testing purposes

    * test: refactor unit test script for schedule component

    * bug: fix frontend imports and fix yarn build

    * api: added requests and view schedule apis

    * Setup navs and login

    * bug: fixed navlink import directory for vercel preview deploy

    * bug: fixed import paths for import to absolute paths

    * bug: fixed import component for Mobile Nav

    * refactor: refactored import and export of components

    * config: git config to ignore case for vercel deploy

    * Fix parameter bug for request and schedule api call

    * chore: remove unused Nav directory from src/components

    * chore: remove unused Nav directory from src/components

    * chore: remove unused Schedule directory from src/components

    * api: created "requests" and "view schedule" apis

    * created requests and view schedule apis

    * reconfigured frontend imports for vercel deployment success

    ---------

    Co-authored-by: songdre123 <[email protected]>
    Co-authored-by: solai-y <[email protected]>

    * feat(tests): set up testing environment with database migrations and seeders

    - Added validation to check if the database is 'test_db'
    - Prevented execution of tests if the check fails
    - Set up testing environment with database migrations and seeders
    - Added EmployeeSeeder, RequestSeeder for test data

    * feat(migration): create RequestLog table with PostgreSQL enum type for state management

    The migration also includes a check for the existence of the `status` enum type, ensuring it is created only if it does not already exist, and properly handles the rollback of changes.

    * feat(db): pull backend database configurations (#10)

    * yarn dependecies updated

    * added components for apply wfh

    * Modified colours for submit button

    * changed folder/file structure to follow coding standards

    * Components will adjust accordingly to screen size

    * Added React states for form submission

    * Pass data to Page render.

    * Fixed dependencies

    * Change configs for db

    * fix: Fixed DB connection issues

    * Started backend api for wfh request

    ---------

    Co-authored-by: elliot <[email protected]>

    * feat(store): added redux store for api calls

    * GetTeamScheduleByManager

    api: Created a new endpoint to get team schedule based on the manager id

    * bug(format): Fix schedule format to dmy

    * feat(integration): added backend api calls to frontend calendar

    * config: config database env updated example

    * feat(front-end): added team daily schedule and first part of weekly schedule

    * feat(weekly view): able to toggle to view the weekly view for the team schedule page

    * refactor: removed supabase and refactor components

    * Feat(front-end): Tidied up weekly schedule for teams and added modal for details and icons

    * feat(BE Integration): Connected team schedule to backend

    TESTED. take note FE is not correctly showing the output, but console shows that the DB is being called correctly

    * ci: extend GitHub Actions workflow to run on dev_wfh branch

    * test: add unit tests for WFH employee view own schedule component

    * Fix(Format): Standardised button size

    * fix: fixed generateOwnSchedule to retrieve schedule regardless of no approved requests

    * bug: resolved weeks and days handling

    * feat(api): integrated backend ownSchedule api with frontend, redux global store (#13)

    resolved conflict with dev_wfh before making this pull request

    added the integrated backend ownSchedule api with the frontend, along with implementation of the new redux global store

    ---------

    Co-authored-by: songdre123 <[email protected]>
    Co-authored-by: solai-y <[email protected]>
    Co-authored-by: neojw1505 <[email protected]>
    Co-authored-by: Elliot Tan <[email protected]>
    Co-authored-by: elliot <[email protected]>

    * test: add test cases for employee API by ID and email

    - Added test cases for getting employee by ID: valid, non-existing, and invalid ID scenarios.
    - Added test cases for getting employee by email: valid, non-existing, and invalid email format scenarios.

    * Test File for schedule

    * fix(tests): add missing Unit folder to track unit tests

    * chore(e2e): setup Cypress for end-to-end testing in Next.js app

    * feat(tests): add ScheduleSeeder in scheduleTest, fix typo in RequestLog_RequestId foreign key

    * chore: switch Cypress installation to Yarn

    * feat: create History page and add global session for employee ID (#15)

    * feat: added manage requests page

    - Added /history route to access requests
    - RequestEntry & RequestTable components created for history
    - Currently using static data from constants

    * feat: Integrated History page with backend

    - Added session global variable for employeeid
    - Minor UI update on history page
    - Updated nav bar links to apply and history page

    * fix(migrations): correct spelling errors in foreign key constraints

    * chore(migrations): add created_at and updated_at timestamps to RequestLog table

    * Fix (bugs): Fixed bugs on manage requests (#16)

    * fix: Fixed pagination to be disabled appropriately

    * feat(tests): Added Test for Request Entry

    * fix (bugs): Fixed pagination bug and added logic to disable Withdraw button

    * fix (bug/tests): Added Withdraw button to 'Pending' requests and updated tests

    * fix (int): Changed employee local storage to redux store (#17)

    * fix: Fixed pagination to be disabled appropriately

    * feat(tests): Added Test for Request Entry

    * fix (bugs): Fixed pagination bug and added logic to disable Withdraw button

    * fix (bug/tests): Added Withdraw button to 'Pending' requests and updated tests

    * fix (int): Changed employee local storage to redux store

    * bug: fixed issue with flowbite datepicker

    * merge(dev_wfh): integrate ticket 29 changes for work-from-home feature (#18)

    * Pull DB changes from dev into ticket-29 (#12)

    * feat(migration): create RequestLog table with PostgreSQL enum type for state management

    The migration also includes a check for the existence of the `status` enum type, ensuring it is created only if it does not already exist, and properly handles the rollback of changes.

    * feat(db): pull backend database configurations (#10)

    * yarn dependecies updated

    * added components for apply wfh

    * Modified colours for submit button

    * changed folder/file structure to follow coding standards

    * Components will adjust accordingly to screen size

    * Added React states for form submission

    * Pass data to Page render.

    * Fixed dependencies

    * Change configs for db

    * fix: Fixed DB connection issues

    * Started backend api for wfh request

    ---------

    Co-authored-by: elliot <[email protected]>

    * Setup navs and login

    * Fix Auth page and Nav

    Fixed the Auth Page and Nav, finishing their scaffolding

    * Scaffold calendar

    Scaffold WFH calendar for both mobile and desktop

    * Refinements

    Refine Nav and Calendar

    * Front end Fixes

    Remove dark mode

    Tidy up schedule

    Show clearer difference between am, pm and full day wfh

    Marked which day is today

    improve mobile responsiveness

    ---------

    Co-authored-by: neojw1505 <[email protected]>
    Co-authored-by: elliot <[email protected]>
    Co-authored-by: songdre123 <[email protected]>

    * feat(api): complete backend endpoint for creating request

    - Added API functionality to create a new request with staff and approver details
    - Created request and request log records
    - Started implementing modal to display success or failure on request submission

    * feat(api): complete backend endpoint for creating request

    - Added API functionality to create a new request with staff and approver details
    - Created request and request log records
    - Started implementing modal to display success or failure on request submission

    * feat(api):  backend endpoint for creating request

    * Squashed commit of the following:

    commit afc27d777c7127b68740b49e3ff1a1d87056104b
    Author: Zavier <[email protected]>
    Date:   Sat Sep 28 23:13:02 2024 +0800

        feat: create History page and add global session for employee ID (#15)

        * feat: added manage requests page

        - Added /history route to access requests
        - RequestEntry & RequestTable components created for history
        - Currently using static data from constants

        * feat: Integrated History page with backend

        - Added session global variable for employeeid
        - Minor UI update on history page
        - Updated nav bar links to apply and history page

    commit 9bdeb27b8baa66f14711bfbc5c5f398b6e662e55
    Author: neojw1505 <[email protected]>
    Date:   Sat Sep 28 16:05:48 2024 +0800

        chore: switch Cypress installation to Yarn

    commit b73b1615d6e397748fccaf4e7fbdd622da5b37df
    Author: neojw1505 <[email protected]>
    Date:   Sat Sep 28 15:52:13 2024 +0800

        feat(tests): add ScheduleSeeder in scheduleTest, fix typo in RequestLog_RequestId foreign key

    commit 454aeef0a0d9f36f19fa35f174fc0364a0c1ecaa
    Merge: 3cbdb22 0b1c092
    Author: solai-y <[email protected]>
    Date:   Sat Sep 28 15:07:04 2024 +0800

        Merge branch 'dev_wfh' into origin/TICKET-37

    commit 3cbdb22d6fd2f1cb1706c4993b501cb167ddace3
    Author: solai-y <[email protected]>
    Date:   Sat Sep 28 15:06:58 2024 +0800

        Test File for schedule

    commit 0b1c092c7925d1b500cef6e1972cc8d8fc99a911
    Author: neojw1505 <[email protected]>
    Date:   Sat Sep 28 15:01:49 2024 +0800

        chore(e2e): setup Cypress for end-to-end testing in Next.js app

    commit 1c5ad77b83d03f476dab1771ba3edc286fb54aaa
    Author: DESKTOP-G5I4U2Q\JW <[email protected]>
    Date:   Sat Sep 28 11:12:18 2024 +0800

        fix(tests): add missing Unit folder to track unit tests

    commit 6530fca58c374e73367f2c65626d09abc4045209
    Author: neojw1505 <[email protected]>
    Date:   Fri Sep 27 10:52:21 2024 +0800

        test: add test cases for employee API by ID and email

        - Added test cases for getting employee by ID: valid, non-existing, and invalid ID scenarios.
        - Added test cases for getting employee by email: valid, non-existing, and invalid email format scenarios.

    commit bb8cf5c6ac14b1b89a67ed25baff5193616f72a2
    Author: e-tayfw <[email protected]>
    Date:   Fri Sep 27 08:42:12 2024 +0800

        feat(api): integrated backend ownSchedule api with frontend, redux global store (#13)

        resolved conflict with dev_wfh before making this pull request

        added the integrated backend ownSchedule api with the frontend, along with implementation of the new redux global store

        ---------

        Co-authored-by: songdre123 <[email protected]>
        Co-authored-by: solai-y <[email protected]>
        Co-authored-by: neojw1505 <[email protected]>
        Co-authored-by: Elliot Tan <[email protected]>
        Co-authored-by: elliot <[email protected]>

    commit 9c45a7d21b8a89a5b4888d191a7929ab5089c2fe
    Author: neojw1505 <[email protected]>
    Date:   Thu Sep 26 15:43:45 2024 +0800

        chore(tests): remove DB_USERNAME and DB_PASSWORD from phpunit.xml

    commit e508ae01af510a0f633c42643d2edb2cc2720c19
    Merge: 4c71ecf e43b312
    Author: Elliot Tan <[email protected]>
    Date:   Thu Sep 26 14:03:59 2024 +0800

        Merge branch 'TICKET-29' into dev_wfh

    commit 4c71ecfe3b14096f8913abacdd1b3233b591d876
    Author: songdre123 <[email protected]>
    Date:   Sun Sep 22 14:55:03 2024 +0800

        Front end Fixes

        Remove dark mode

        Tidy up schedule

        Show clearer difference between am, pm and full day wfh

        Marked which day is today

        improve mobile responsiveness

    commit bfb3bdfdf409ebf78be39490394330a9c3265e34
    Author: songdre123 <[email protected]>
    Date:   Sat Sep 21 17:52:44 2024 +0800

        Refinements

        Refine Nav and Calendar

    commit 3e87fe5a160664e3a42eef580596fa04d7124ab7
    Author: songdre123 <[email protected]>
    Date:   Sat Sep 21 14:36:29 2024 +0800

        Scaffold calendar

        Scaffold WFH calendar for both mobile and desktop

    commit ae10f6b40a16ca6f8c479edad632ff616881d0f6
    Author: songdre123 <[email protected]>
    Date:   Fri Sep 20 09:37:32 2024 +0800

        Fix Auth page and Nav

        Fixed the Auth Page and Nav, finishing their scaffolding

    commit 3ccff0ff1c9b6c41200e7b7915e5ddb1b30fbbce
    Author: songdre123 <[email protected]>
    Date:   Thu Sep 19 01:40:09 2024 +0800

        Setup navs and login

    commit 7f7964d324352232d81a2a41f96e92468cd22fb1
    Author: Elliot Tan <[email protected]>
    Date:   Tue Sep 24 20:35:16 2024 +0800

        feat(db): pull backend database configurations (#10)

        * yarn dependecies updated

        * added components for apply wfh

        * Modified colours for submit button

        * changed folder/file structure to follow coding standards

        * Components will adjust accordingly to screen size

        * Added React states for form submission

        * Pass data to Page render.

        * Fixed dependencies

        * Change configs for db

        * fix: Fixed DB connection issues

        * Started backend api for wfh request

        ---------

        Co-authored-by: elliot <[email protected]>

    commit e7ea312aee9c1b80750d5cb4819759c121e403eb
    Author: neojw1505 <[email protected]>
    Date:   Tue Sep 24 14:18:29 2024 +0800

        feat(migration): create RequestLog table with PostgreSQL enum type for state management

        The migration also includes a check for the existence of the `status` enum type, ensuring it is created only if it does not already exist, and properly handles the rollback of changes.

    * feat(frontend): add TypeScript types to Apply components

    * fix(frontend): correct TypeScript declarations for Flowbite Datepicker

    * update index.tsx

    * fix(branch): resolve conflicts and align with remote

    * fix(branch): resolve conflicts and align with remote

    * fix(branch): resolve conflicts and align with remote

    * fix(tailwind): correct tailwind.config.ts settings

    * feat(frontend): implement modal for form submission feedback, implement simulated API response scenarios

    * bug fix/chore: Fixed autoincrement in Request.sql insertion script

    * chore(frontend): add commented axios POST for future backend integration

    * chore(frontend): adjusted commented axios POST for future backend integration

    * chore(frontend): adjusted commented axios POST for future backend integration

    * fix(backend-api): brief description of the fix

    * feat(db): implement schema changes for work-from-home requests

    * Update index.tsx

    ---------

    Co-authored-by: neojw1505 <[email protected]>
    Co-authored-by: elliot <[email protected]>
    Co-authored-by: songdre123 <[email protected]>
    Co-authored-by: Zavier <[email protected]>

    * feat(api): disable CSRF protection for all API routes

    - Excluded all `api/*` routes from CSRF token validation.

    * bug: remove duplicate import use statement

    ---------

    Co-authored-by: songdre123 <[email protected]>
    Co-authored-by: solai-y <[email protected]>
    Co-authored-by: neojw1505 <[email protected]>
    Co-authored-by: Elliot Tan <[email protected]>
    Co-authored-by: elliot <[email protected]>
    Co-authored-by: DESKTOP-G5I4U2Q\JW <[email protected]>
    Co-authored-by: Zavier <[email protected]>
    Co-authored-by: Zavier <[email protected]>

commit cb3bc331a40768d99abbfb2d276cb7db655e0903
Author: neojw1505 <[email protected]>
Date:   Fri Oct 4 19:23:25 2024 +0800

    feat(api): disable CSRF protection for all API routes

    - Excluded all `api/*` routes from CSRF token validation.

commit 45bf7d07a8df5a1f0d11e9d1715a51bd12571073
Author: Elliot Tan <[email protected]>
Date:   Wed Oct 2 18:23:30 2024 +0800

    merge(dev_wfh): integrate ticket 29 changes for work-from-home feature (#18)

    * Pull DB changes from dev into ticket-29 (#12)

    * feat(migration): create RequestLog table with PostgreSQL enum type for state management

    The migration also includes a check for the existence of the `status` enum type, ensuring it is created only if it does not already exist, and properly handles the rollback of changes.

    * feat(db): pull backend database configurations (#10)

    * yarn dependecies updated

    * added components for apply wfh

    * Modified colours for submit button

    * changed folder/file structure to follow coding standards

    * Components will adjust accordingly to screen size

    * Added React states for form submission

    * Pass data to Page render.

    * Fixed dependencies

    * Change configs for db

    * fix: Fixed DB connection issues

    * Started backend api for wfh request

    ---------

    Co-authored-by: elliot <[email protected]>

    * Setup navs and login

    * Fix Auth page and Nav

    Fixed the Auth Page and Nav, finishing their scaffolding

    * Scaffold calendar

    Scaffold WFH calendar for both mobile and desktop

    * Refinements

    Refine Nav and Calendar

    * Front end Fixes

    Remove dark mode

    Tidy up schedule

    Show clearer difference between am, pm and full day wfh

    Marked which day is today

    improve mobile responsiveness

    ---------

    Co-authored-by: neojw1505 <[email protected]>
    Co-authored-by: elliot <[email protected]>
    Co-authored-by: songdre123 <[email protected]>

    * feat(api): complete backend endpoint for creating request

    - Added API functionality to create a new request with staff and approver details
    - Created request and request log records
    - Started implementing modal to display success or failure on request submission

    * feat(api): complete backend endpoint for creating request

    - Added API functionality to create a new request with staff and approver details
    - Created request and request log records
    - Started implementing modal to display success or failure on request submission

    * feat(api):  backend endpoint for creating request

    * Squashed commit of the following:

    commit afc27d777c7127b68740b49e3ff1a1d87056104b
    Author: Zavier <[email protected]>
    Date:   Sat Sep 28 23:13:02 2024 +0800

        feat: create History page and add global session for employee ID (#15)

        * feat: added manage requests page

        - Added /history route to access requests
        - RequestEntry & RequestTable components created for history
        - Currently using static data from constants

        * feat: Integrated History page with backend

        - Added session global variable for employeeid
        - Minor UI update on history page
        - Updated nav bar links to apply and history page

    commit 9bdeb27b8baa66f14711bfbc5c5f398b6e662e55
    Author: neojw1505 <[email protected]>
    Date:   Sat Sep 28 16:05:48 2024 +0800

        chore: switch Cypress installation to Yarn

    commit b73b1615d6e397748fccaf4e7fbdd622da5b37df
    Author: neojw1505 <[email protected]>
    Date:   Sat Sep 28 15:52:13 2024 +0800

        feat(tests): add ScheduleSeeder in scheduleTest, fix typo in RequestLog_RequestId foreign key

    commit 454aeef0a0d9f36f19fa35f174fc0364a0c1ecaa
    Merge: 3cbdb22 0b1c092
    Author: solai-y <[email protected]>
    Date:   Sat Sep 28 15:07:04 2024 +0800

        Merge branch 'dev_wfh' into origin/TICKET-37

    commit 3cbdb22d6fd2f1cb1706c4993b501cb167ddace3
    Author: solai-y <[email protected]>
    Date:   Sat Sep 28 15:06:58 2024 +0800

        Test File for schedule

    commit 0b1c092c7925d1b500cef6e1972cc8d8fc99a911
    Author: neojw1505 <[email protected]>
    Date:   Sat Sep 28 15:01:49 2024 +0800

        chore(e2e): setup Cypress for end-to-end testing in Next.js app

    commit 1c5ad77b83d03f476dab1771ba3edc286fb54aaa
    Author: DESKTOP-G5I4U2Q\JW <[email protected]>
    Date:   Sat Sep 28 11:12:18 2024 +0800

        fix(tests): add missing Unit folder to track unit tests

    commit 6530fca58c374e73367f2c65626d09abc4045209
    Author: neojw1505 <[email protected]>
    Date:   Fri Sep 27 10:52:21 2024 +0800

        test: add test cases for employee API by ID and email

        - Added test cases for getting employee by ID: valid, non-existing, and invalid ID scenarios.
        - Added test cases for getting employee by email: valid, non-existing, and invalid email format scenarios.

    commit bb8cf5c6ac14b1b89a67ed25baff5193616f72a2
    Author: e-tayfw <[email protected]>
    Date:   Fri Sep 27 08:42:12 2024 +0800

        feat(api): integrated backend ownSchedule api with frontend, redux global store (#13)

        resolved conflict with dev_wfh before making this pull request

        added the integrated backend ownSchedule api with the frontend, along with implementation of the new redux global store

        ---------

        Co-authored-by: songdre123 <[email protected]>
        Co-authored-by: solai-y <[email protected]>
        Co-authored-by: neojw1505 <[email protected]>
        Co-authored-by: Elliot Tan <[email protected]>
        Co-authored-by: elliot <[email protected]>

    commit 9c45a7d21b8a89a5b4888d191a7929ab5089c2fe
    Author: neojw1505 <[email protected]>
    Date:   Thu Sep 26 15:43:45 2024 +0800

        chore(tests): remove DB_USERNAME and DB_PASSWORD from phpunit.xml

    commit e508ae01af510a0f633c42643d2edb2cc2720c19
    Merge: 4c71ecf e43b312
    Author: Elliot Tan <[email protected]>
    Date:   Thu Sep 26 14:03:59 2024 +0800

        Merge branch 'TICKET-29' into dev_wfh

    commit 4c71ecfe3b14096f8913abacdd1b3233b591d876
    Author: songdre123 <[email protected]>
    Date:   Sun Sep 22 14:55:03 2024 +0800

        Front end Fixes

        Remove dark mode

        Tidy up schedule

        Show clearer difference between am, pm and full day wfh

        Marked which day is today

        improve mobile responsiveness

    commit bfb3bdfdf409ebf78be39490394330a9c3265e34
    Author: songdre123 <[email protected]>
    Date:   Sat Sep 21 17:52:44 2024 +0800

        Refinements

        Refine Nav and Calendar

    commit 3e87fe5a160664e3a42eef580596fa04d7124ab7
    Author: songdre123 <[email protected]>
    Date:   Sat Sep 21 14:36:29 2024 +0800

        Scaffold calendar

        Scaffold WFH calendar for both mobile and desktop

    commit ae10f6b40a16ca6f8c479edad632ff616881d0f6
    Author: songdre123 <[email protected]>
    Date:   Fri Sep 20 09:37:32 2024 +0800

        Fix Auth page and Nav

        Fixed the Auth Page and Nav, finishing their scaffolding

    commit 3ccff0ff1c9b6c41200e7b7915e5ddb1b30fbbce
    Author: songdre123 <[email protected]>
    Date:   Thu Sep 19 01:40:09 2024 +0800

        Setup navs and login

    commit 7f7964d324352232d81a2a41f96e92468cd22fb1
    Author: Elliot Tan <[email protected]>
    Date:   Tue Sep 24 20:35:16 2024 +0800

        feat(db): pull backend database configurations (#10)

        * yarn dependecies updated

        * added components for apply wfh

        * Modified colours for submit button

        * changed folder/file structure to follow coding standards

        * Components will adjust accordingly to screen size

        * Added React states for form submission

        * Pass data to Page render.

        * Fixed dependencies

        * Change configs for db

        * fix: Fixed DB connection issues

        * Started backend api for wfh request

        ---------

        Co-authored-by: elliot <[email protected]>

    commit e7ea312aee9c1b80750d5cb4819759c121e403eb
    Author: neojw1505 <[email protected]>
    Date:   Tue Sep 24 14:18:29 2024 +0800

        feat(migration): create RequestLog table with PostgreSQL enum type for state management

        The migration also includes a check for the existence of the `status` enum type, ensuring it is created only if it does not already exist, and properly handles the rollback of changes.

    * feat(frontend): add TypeScript types to Apply components

    * fix(frontend): correct TypeScript declarations for Flowbite Datepicker

    * update index.tsx

    * fix(branch): resolve conflicts and align with remote

    * fix(branch): resolve conflicts and align with remote

    * fix(branch): resolve conflicts and align with remote

    * fix(tailwind): correct tailwind.config.ts settings

    * feat(frontend): implement modal for form submission feedback, implement simulated API response scenarios

    * bug fix/chore: Fixed autoincrement in Request.sql insertion script

    * chore(frontend): add commented axios POST for future backend integration

    * chore(frontend): adjusted commented axios POST for future backend integration

    * chore(frontend): adjusted commented axios POST for future backend integration

    * fix(backend-api): brief description of the fix

    * feat(db): implement schema changes for work-from-home requests

    * Update index.tsx

    ---------

    Co-authored-by: neojw1505 <[email protected]>
    Co-authored-by: elliot <[email protected]>
    Co-authored-by: songdre123 <[email protected]>
    Co-authored-by: Zavier <[email protected]>

* fix(frontend) module imports naming

* refactor(ui): replace custom modal with SweetAlert2 popup

* test(Apply): add Jest tests for Apply form

* test(Apply): edited Jest tests for Apply form

* test(Apply): edited Jest tests for Apply form

* Squashed commit of the following:

commit 98ff065a6fadbeb970b0f5245c104fa2937899c0
Author: Zavier <[email protected]>
Date:   Fri Oct 11 22:06:22 2024 +0800

    chore (test): Added more test cases

commit 425791442f97cd57915c5edb11f86eeace8917d9
Author: Zavier <[email protected]>
Date:   Fri Oct 11 17:52:46 2024 +0800

    chore (test): Update test cases

commit 53ec9b630ab9c2af3142fed840abd5d56e4b4516
Author: Zavier <[email protected]>
Date:   Fri Oct 11 17:26:30 2024 +0800

    chore ( UI): Used toast for success & failure

commit bdd3a4e8cf1a3eb746fa2ae4875150fc9f9ed15a
Merge: aa4a99f 80e2cb3
Author: Zavier <[email protected]>
Date:   Fri Oct 11 16:22:47 2024 +0800

    Merge branch 'dev_wfh' into TICKET-29

commit 80e2cb33da32a1a5242b037f3de7eca507f3d5df
Author: e-tayfw <[email protected]>
Date:   Fri Oct 11 13:49:36 2024 +0800

    config: reconfig issues resolved to integrate cypress and jest

commit f2ff401d9a9a7fa44b94ec56de5d3081f8d1ee85
Author: e-tayfw <[email protected]>
Date:   Tue Oct 8 20:59:12 2024 +0800

    feat: employee to view team schedule (TICKET-17 for REVIEW) (#20)

    * Add test schedule data controller and route

    * create login page

    * Setup navs and login

    * api: get emplyees by department / team

    3 New API endpoints

    /employee/department/{department} - to use department name to get all employees in that department

    /employee/team/manager/{reportingManager} - to use a reporting manager user id to get all the people in that report to the same manager and the manager themself

    /employee/team/member/{teamMember} - to use a team member to find the rest of the people that also report to the same person and also their reporting manager is returned together

    * Fix Auth page and Nav

    Fixed the Auth Page and Nav, finishing their scaffolding

    * feat: added calendar, nav and schedule

    * config: configured eslint to not prefer jsdom document for testing purposes

    * test: refactor unit test script for schedule component

    * bug: fix frontend imports and fix yarn build

    * api: added requests and view schedule apis

    * Setup navs and login

    * bug: fixed navlink import directory for vercel preview deploy

    * bug: fixed import paths for import to absolute paths

    * bug: fixed import component for Mobile Nav

    * refactor: refactored import and export of components

    * config: git config to ignore case for vercel deploy

    * Fix parameter bug for request and schedule api call

    * chore: remove unused Nav directory from src/components

    * chore: remove unused Schedule directory from src/components

    * Scaffold calendar

    Scaffold WFH calendar for both mobile and desktop

    * Refinements

    Refine Nav and Calendar

    * Front end Fixes

    Remove dark mode

    Tidy up schedule

    Show clearer difference between am, pm and full day wfh

    Marked which day is today

    improve mobile responsiveness

    * bug: delete additional directory

    * bug: delete src/components/Schedule directory

    * feat(store): added redux store for api calls

    * feat: added calendar, nav and schedule

    * config: configured eslint to not prefer jsdom document for testing purposes

    * test: refactor unit test script for schedule component

    * bug: fix frontend imports and fix yarn build

    * api: added requests and view schedule apis

    * Setup navs and login

    * bug: fixed navlink import directory for vercel preview deploy

    * bug: fixed import paths for import to absolute paths

    * bug: fixed import component for Mobile Nav

    * refactor: refactored import and export of components

    * config: git config to ignore case for vercel deploy

    * Fix parameter bug for request and schedule api call

    * chore: remove unused Nav directory from src/components

    * chore: remove unused Nav directory from src/components

    * chore: remove unused Schedule directory from src/components

    * api: created "requests" and "view schedule" apis

    * created requests and view schedule apis

    * reconfigured frontend imports for vercel deployment success

    ---------

    Co-authored-by: songdre123 <[email protected]>
    Co-authored-by: solai-y <[email protected]>

    * feat(tests): set up testing environment with database migrations and seeders

    - Added validation to check if the database is 'test_db'
    - Prevented execution of tests if the check fails
    - Set up testing environment with database migrations and seeders
    - Added EmployeeSeeder, RequestSeeder for test data

    * feat(migration): create RequestLog table with PostgreSQL enum type for state management

    The migration also includes a check for the existence of the `status` enum type, ensuring it is created only if it does not already exist, and properly handles the rollback of changes.

    * feat(db): pull backend database configurations (#10)

    * yarn dependecies updated

    * added components for apply wfh

    * Modified colours for submit button

    * changed folder/file structure to follow coding standards

    * Components will adjust accordingly to screen size

    * Added React states for form submission

    * Pass data to Page render.

    * Fixed dependencies

    * Change configs for db

    * fix: Fixed DB connection issues

    * Started backend api for wfh request

    ---------

    Co-authored-by: elliot <[email protected]>

    * feat(store): added redux store for api calls

    * GetTeamScheduleByManager

    api: Created a new endpoint to get team schedule based on the manager id

    * bug(format): Fix schedule format to dmy

    * feat(integration): added backend api calls to frontend calendar

    * config: config database env updated example

    * feat(front-end): added team daily schedule and first part of weekly schedule

    * feat(weekly view): able to toggle to view the weekly view for the team schedule page

    * refactor: removed supabase and refactor components

    * Feat(front-end): Tidied up weekly schedule for teams and added modal for details and icons

    * feat(BE Integration): Connected team schedule to backend

    TESTED. take note FE is not correctly showing the output, but console shows that the DB is being called correctly

    * Bug(Format): Fix button sizing and eye icon instruction placement on front-end

    * test: added WFHCalender unit test case

    * test: first implementation of TeamCalendar unit tests

    * test: implementation of mock api call for team schedule

    * api: added api call to retrieve full name based off staff ID

    * bug: fix api url name accordingly for retrieving full name

    * Found bug in date formatting, resolved

    * Feat: Add functionality to show name of person on WFH ,bug: Fix how schedule called from api is called and fix prev, next week and day handling

    * bug: fixed employee name data with handle click function

    * feat: added name search and filter for names in modal

    * feat: added implementation of name search in modal

    * test: added view Team Calendar test cases

    * test: refactored WFHCalendar test cases

    * bug: fixed duplicated imports in jest config

    * lint: fixed eslint for cicd

    ---------

    Co-authored-by: songdre123 <[email protected]>
    Co-authored-by: solai-y <[email protected]>
    Co-authored-by: neojw1505 <[email protected]>
    Co-authored-by: Elliot Tan <[email protected]>
    Co-authored-by: elliot <[email protected]>

commit aa4a99f31ff7bb252e27f1250280fe73ce33c27c
Author: Zavier <[email protected]>
Date:   Tue Oct 8 13:50:46 2024 +0800

    feat: Added Withdraw button for Withdraw Rejected requests

commit 2c38256914e90526134b4741f2698c571bb3924d
Author: Zavier <[email protected]>
Date:   Tue Oct 8 13:44:31 2024 +0800

    fix(bug): Added automatic refresh & Fixed Integration

commit c9cf9b4884a7702b6f0bb751834b150eb21e7fbe
Author: neojw1505 <[email protected]>
Date:   Tue Oct 8 13:11:55 2024 +0800

    feat(api): update withdrawRequest API implementation and rewrite test cases  - Refactored the withdrawRequest API to use a payload with Request_ID, Employee_ID, and Reason. - Rewrote the test cases to support the new payload structure for the withdrawRequest API. - Included Request_ID in the createRequest API response for consistency.

    - Refactored the withdrawRequest API to use a payload with Request_ID, Employee_ID, and Reason.
    - Rewrote the test cases to support the new payload structure for the withdrawRequest API.
    - Included Request_ID in the createRequest API response for consistency.

commit 5c457b8aec2ab4f52ba71394760c6f028c93e557
Author: solai-y <[email protected]>
Date:   Tue Oct 8 11:05:20 2024 +0800

    test(createRequest): created test cases for the create request endpoint

    Invalid ID: returns code 404
    Success: returns code 200
    Repeated request made: returns code 400
    invalid date format: returns code 400

commit ba2863d71cfa9c697fd41d479654657b9e7ca240
Author: Zavier <[email protected]>
Date:   Tue Oct 8 10:35:57 2024 +0800

    feat: Added WIthdraw Functionality to Withdraw Requests

commit 2e0115e3ebb25ef9c2ff046d3819ba8235ca050f
Author: neojw1505 <[email protected]>
Date:   Sat Oct 5 19:36:14 2024 +0800

    feat(api): add staff withdraw request APIs and test cases

    - Added APIs to handle staff withdraw requests with different statuses
    - Implemented status transitions like 'Withdraw Pending', 'Withdrawn', and 'Rejected'
    - Created test cases to validate API behavior for all scenarios

commit ae4f26d10eb98d6c32b769eb0ccac651c07a1a6c
Author: e-tayfw <[email protected]>
Date:   Sat Oct 5 18:05:07 2024 +0800

    bug: resolve missing bracket in store

commit 14142bfee90e31230fabe0e291d854a7eb6601b1
Merge: 15b9988 81e143f
Author: neojw1505 <[email protected]>
Date:   Sat Oct 5 17:03:50 2024 +0800

    Merge branch 'TICKET-29' of https://github.com/e-tayfw/WorkFromHome into TICKET-29

commit 051ad86f45add84866a24015a2c9e90bdf4535d6
Author: e-tayfw <[email protected]>
Date:   Sat Oct 5 16:56:54 2024 +0800

    Feat(Ticket): Added view own schedule (DONE) (#19)

    * Add test schedule data controller and route

    * create login page

    * Setup navs and login

    * api: get emplyees by department / team

    3 New API endpoints

    /employee/department/{department} - to use department name to get all employees in that department

    /employee/team/manager/{reportingManager} - to use a reporting manager user id to get all the people in that report to the same manager and the manager themself

    /employee/team/member/{teamMember} - to use a team member to find the rest of the people that also report to the same person and also their reporting manager is returned together

    * Fix Auth page and Nav

    Fixed the Auth Page and Nav, finishing their scaffolding

    * feat: added calendar, nav and schedule

    * config: configured eslint to not prefer jsdom document for testing purposes

    * test: refactor unit test script for schedule component

    * bug: fix frontend imports and fix yarn build

    * api: added requests and view schedule apis

    * Setup navs and login

    * bug: fixed navlink import directory for vercel preview deploy

    * bug: fixed import paths for import to absolute paths

    * bug: fixed import component for Mobile Nav

    * refactor: refactored import and export of components

    * config: git config to ignore case for vercel deploy

    * Fix parameter bug for request and schedule api call

    * chore: remove unused Nav directory from src/components

    * chore: remove unused Schedule directory from src/components

    * Scaffold calendar

    Scaffold WFH calendar for both mobile and desktop

    * Refinements

    Refine Nav and Calendar

    * Front end Fixes

    Remove dark mode

    Tidy up schedule

    Show clearer difference between am, pm and full day wfh

    Marked which day is today

    improve mobile responsiveness

    * bug: delete additional directory

    * bug: delete src/components/Schedule directory

    * feat(store): added redux store for api calls

    * feat: added calendar, nav and schedule

    * config: configured eslint to not prefer jsdom document for testing purposes

    * test: refactor unit test script for schedule component

    * bug: fix frontend imports and fix yarn build

    * api: added requests and view schedule apis

    * Setup navs and login

    * bug: fixed navlink import directory for vercel preview deploy

    * bug: fixed import paths for import to absolute paths

    * bug: fixed import component for Mobile Nav

    * refactor: refactored import and export of components

    * config: git config to ignore case for vercel deploy

    * Fix parameter bug for request and schedule api call

    * chore: remove unused Nav directory from src/components

    * chore: remove unused Nav directory from src/components

    * chore: remove unused Schedule directory from src/components

    * api: created "requests" and "view schedule" apis

    * created requests and view schedule apis

    * reconfigured frontend imports for vercel deployment success

    ---------

    Co-authored-by: songdre123 <[email protected]>
    Co-authored-by: solai-y <[email protected]>

    * feat(tests): set up testing environment with database migrations and seeders

    - Added validation to check if the database is 'test_db'
    - Prevented execution of tests if the check fails
    - Set up testing environment with database migrations and seeders
    - Added EmployeeS…
  • Loading branch information
9 people authored Oct 17, 2024
1 parent bf3e2e1 commit 6aed480
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 14 deletions.
13 changes: 6 additions & 7 deletions backend-api/app/Http/Controllers/RequestController.php
Original file line number Diff line number Diff line change
Expand Up @@ -142,12 +142,11 @@ public function createRequest(Request $request)
try {
$employee = Employee::where("Staff_ID", $staffId)->firstOrFail();

$existingRequests = Requests::where([
['Requestor_ID', '=', $staffId],
['Date_Requested', '=', $selectedDate],
['Status', 'in', ['Pending', 'Approved', 'Withdraw Rejected', 'Withdraw Pending']]
])->get();

$existingRequests = Requests::where('Requestor_ID', $staffId)
->where('Date_Requested', $selectedDate)
->whereIn('Status', ['Pending', 'Approved', 'Withdraw Rejected', 'Withdraw Pending'])
->get();

if ($existingRequests->isNotEmpty()) {
$message = '';
$existingArrangements = $existingRequests->pluck('Duration')->toArray();
Expand All @@ -174,7 +173,7 @@ public function createRequest(Request $request)
'two' => $two
], 400);
}
}
}


$reportingManager = $employee->Reporting_Manager;
Expand Down
34 changes: 27 additions & 7 deletions backend-api/tests/Feature/RequestTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -248,9 +248,19 @@ public function test_creating_request_successful(): void
*/
public function test_create_request_multiple_reqeusts_same_date(): void
{
$request = Requests::factory()->create([
'Status' => 'Pending',
'Requestor_ID'=>140879,
'Approver_ID' => 151408,
'Request_ID' => 15,
'Date_Requested' => '2024-11-10',
'Request_Batch' => null,
'Duration'=>'FD'
]);

// Prepare data with a non-existent staff ID
$staffId = '140879'; // Assuming this staff ID exist
$date = '2024-10-6'; // Valid date butt repeated request
$date = '2024-11-10'; // Valid date butt repeated request
$arrangement = 'FD'; // Valid arrangement
$reason = 'Personal'; // Valid reason

Expand All @@ -270,16 +280,26 @@ public function test_create_request_multiple_reqeusts_same_date(): void
}

/**
* Test creating a request with inalid date format
* Test creating a multiple requests on the same day
*
* #[Depends('test_database_is_test_db')]
*/
public function test_create_request_with_invalid_date_format(): void
public function test_create_request_multiple_reqeusts_same_date_different_arrangement(): void
{
$request = Requests::factory()->create([
'Status' => 'Pending',
'Requestor_ID'=>140879,
'Approver_ID' => 151408,
'Request_ID' => 15,
'Date_Requested' => '2024-11-10',
'Request_Batch' => null,
'Duration'=>'AM'
]);

// Prepare data with a non-existent staff ID
$staffId = '140001'; // Assuming this staff ID exist
$date = '2024-10-60'; // Invalid date
$arrangement = 'FD'; // Valid arrangement
$staffId = '140879'; // Assuming this staff ID exist
$date = '2024-11-10'; // Valid date butt repeated request
$arrangement = 'PM'; // Valid arrangement
$reason = 'Personal'; // Valid reason

// Prepare the payload
Expand All @@ -294,7 +314,7 @@ public function test_create_request_with_invalid_date_format(): void
$response = $this->postJson('/api/request', $payload);

// Assert that the response status is 400 (Bad Request)
$response->assertStatus(400);
$response->assertStatus(200);
}

/**
Expand Down

0 comments on commit 6aed480

Please sign in to comment.