Patch Notes 2.1.2

Prev Next

Profit Ops Patch 2.1.2 has been released to the live environment. This document includes all changes made for the patch cycle ending 12.20.2024.

A big thanks to our test crews, and to operations for their help in testing and refining the new system. We have made excellent progress on the new system over the last year thanks to their patience and hard work.

Additional shout out to our project managers and operations team for their support and feedback on the new calendar and manpower modules. These have been exceptionally complex systems to implement and have required supporting tweaks to code across the entire system but will have enormous positive impacts on the upcoming summer season.

These patch notes came later than expected due to Christmas break, but detail all the changes that are currently live. We anticipate several additional updates in the coming months as we finish the calendar and manpower modules. As always, if you have any questions about these notes or an issue that you have encountered, feel free to contact Bruce Clark to have your issue addressed. Thank You

Global Changes

  • Implemented various functions and fixes requested during the last stakeholder meeting. [#410]

    • Add functionality for clock out and customer interaction updates

      • This commit introduces a new functionality for clock out along with various customer interaction updates.

      • It includes the creation of a new handleClockOut method in ClockOut.vue that captures clock out information.

      • Changes in the CustomerInfoView.vue and ShowProject.vue files mainly cater to customer interactions - fetching customer contacts, updating contacts, and updating project pages.

      • Also, the migration file adds new indexes to the customers table to optimize queries.

    • Refactor of the ClockOut component and ClockStore handling

      • The handleClockOut method has been removed in the ClockOut.vue component and its logic has been simplified.

      • Instead of calling a method, the clock out process is now accomplished directly by setting the clockOut ref to true.

      • Added a new toggleEditClock method to the ClockStore.js model.

      • Accidental clock in/out entries can now be corrected via this method, improving the user experience and functionality of the clock out process.

    • Rearrange media-related methods in User model

      • The media-related methods have been restructured in the User model for better code organization.

      • The purpose of this rearrangement is to enhance readability and maintainability of code by keeping related functionalities grouped together.

      • The media() method is now located towards the end of the file, while its references in other methods were updated accordingly.

    • Update date handling and optimize state management in time card modules

      • Several changes have been made across the time-related components including modification of the dateFormat in SingleDate.vue

      • We set date handling in TimeCardApprovalIndex.vue and associated controllers to use the starting hour of the day instead of the ISO string.

      • Unused imports and commented-out code were removed across different components/files.

      • State management optimization in TimeIndex.vue was also completed.

  • Search bar now supports search query refresh. Users can select a refresh button to clear the search and all related filters. [#328]

    • Added a query reset button to search input.

    • Implemented query refresh functionality on the project index page.

    • Cleaned up leftover code and file formatting.

  • Refactor of the JobRegionScope file for region permissions [#340]

    • Revised the code in JobRegionScope.php to handle region access permissions based on user's abilities or permissions, instead of user's assigned regions.

    • This implementation assigns:

      • all regions to users with full access or region-show-all permission,

      • selected regions for users with region-show-selected permission,

      • or the user's assigned region otherwise.

  • Fixed an issue with region assignment in JobRegionScope [#343]

    • Adjusted the assignment of the regions variable in the JobRegionScope model.

    • If a user has the region_show_selected permission, their allowed_regions or region_id is now properly returned as an array.

    • This ensures consistent return types for the regions and avoids potential issues in further code execution.

  • Improved performance by optimizing database queries and UI components. [#348]

    • This commit optimizes several database queries by replacing count() checks with more efficient exists() checks.

    • Some Vue component prop types have also been adjusted.

    • Redundant dependencies have been removed from package.json.

    • Various UI components received visual modifications for better user experience.

    • These updates lead to improved application performance and cleaner, more manageable code.

  • Updated 'contactables' table indexing in migration file [#374] & [#375]

    • The updated database migration file modifies the contactables table in Laravel.

    • The update checks if an index Test exists and drops it, then creates a new foreign key reference to contacts id.

    • It also creates an index on contactable_id and contactable_type.

    • This improves the table's structure and relationship handling in the database.

  • Various updates to the Main Menu [#319]

    • Updated menu selections to reflect recently implemented modules.

    • Improvements to the navigation bar UI.

    • Reverted and repaired a previous merge that was causing issues.

  • Completed an audit of the current permission management system. [#338]

    • Reverted the spacing changes done to CheckoutIndex and WeekRange that caused the WeekRange picker to overlap on other pages it was used.

    • Add MoveCrewMemberController and refactor related components

      • Introduced the MoveCrewMemberController to handle moving of crew members.

      • Also updated the LaborSummary, TimeEntry and WorkOrderLaborView components to support this functionality.

      • In addition, improved how the total hours attribute is calculated in the TimeClock model.

    • Removed laratrust panel related views

      • Removed unnecessary views in resources/views/vendor/laratrust/panel/ directory as these are no longer required.

      • The deleted files included layout pages, roles assignment, permissions, roles overview and specific edit pages.

      • These removals are part of larger refactoring and cleanup efforts.

    • Remove Clockwork configuration file

      • Deleted the clockwork configuration file under the config directory.

      • This was necessary because the clockwork functionality is no longer needed, contributing to project decluttering and performance improvement.

    • Replace Bugsnag with Telescope provider in app config

      • Removed BugsnagServiceProvider and added TelescopeServiceProvider in the app configuration.

      • Also included the Bugsnag alias under default aliases.

      • This change better aligns with the current application dependencies and helps improve service provider organization.

    • Modify permission checking in middleware

      • This commit changes the way user permissions are checked in the handle inertia requests to our middleware solution.

      • Instead of directly invoking the 'can' method with the user's ability, it now gets all the user's permissions and maps them to match the necessary structure.

      • This change improves code readability and makes the permission checking process more explicit.

    • Refactor EmployeeInfoTab.vue removing redundancy and improving readability

      • The update refactors the EmployeeInfoTab.vue file on multiple fronts.

      • Unused error displays have been removed, breaking long lines into multiple for improved readability.

      • We replaced multiple formulated CSS with a Card.vue component.

      • These changes simplify the code structure, making it easier to read and maintain.

    • Refactor password reset flow and employee information view

      • Made adjustments to the password reset functionality in the EmployeesController.

      • Cleaned up the EmployeeInfoTab view.

      • Improvements include better error handling for password resets.

      • Improves management of the active, in-active, status of employee records.

      • Further refined the "edit" action for employee information.

      • This makes the code cleaner, easier to maintain, and improves user experience.

    • Refactor JobRegionScope model

      • Revised JobRegionScope model to store an authenticated user properly.

      • Refactored a redundant auth check.

      • Improved the apply() method to apply the active user scope to the query builder.

      • These changes make the code more efficient and readable.

Schedule Module

  • Modified region filtering in the ScheduleController [#344]

    • Updated region_show_selected permission handling in ScheduleController.

    • It now checks for region_show_selected permission and the presence of allowed_regions before applying region filters.

    • This avoids potential errors that could occur from trying to filter using an empty or non-existent allowed_regions array.

  • Refined task scheduling filters for specific user roles [#345]

    • Adjusted woCheckout and completedTasks filters in ScheduleController to respect specified user roles and permissions.

    • The filters now evaluate a specific set of roles:

      • development

      • full_access

      • superintendent

      • operations

      • management

      • project_management

      • schedule_view_wo_checkout

    • These roles and permissions are evaluated before performing task assignments.

  • Adjusted conditions for ScheduleController clock-in [#346]

    • Updated the conditional statement in ScheduleController to not only check if the user is clocked in but also if they have a last timeclock entry.

    • This will prevent errors when trying to compare id with a nonexistent last timeclock entry.

  • Implemented new Vue components and improved clocking logic [#385]

    • Introduced new Vue components for SwitchClock and ArchivedSections.

    • Optimized clocking logic in ClockStore to handle switching work orders.

    • Also, cleaned up and simplified isClockedIn condition in User.php model.

  • Add time entry validation in ClockStore and IncorrectEntry.vue files [#411]

    • A function to validate the time entry has been added to ClockStore.js.

      • This function checks if the 'Out' time logged by the user is before the 'In' time.

    • Validation has been added to the IncorrectEntry.vue component.

      • It now shows an error message if the 'Out' time is invalid, or the reason is too short.

      • The button to correct a time entry is disabled if either validation fails.

  • Add default state for incorrect time entries [#412]

    • Added a default state for incorrect time entries in the ClockStore.

    • This change occurred in two instances within the promise handlers of the stores methods.

    • This was done to ensure a clean slate for any incorrect entries that need to be updated or logged.

    • This helps in maintaining cleaner code and minimizes potential errors related to user authentication or time entry.

  • Update clock components' layout and functionalities [#424]

    • Made several changes to Clock and Sub Clock components to improve user interaction and functionality.

    • These changes include:

      • Layout adjustments for better readability.

      • The addition of new navigation links for easier access.

      • The update of buttons & labels for clear instructions.

    • The order of some elements was also adjusted to enhance the user interface.

  • Refactor toggleSwitchDialog method in ClockStore.js [#426] & [#425]

    • The toggleSwitchDialog method has been refactored to accept the clock type as an argument.

    • This change improves the flexibility of the method by allowing it to use various clock types.

    • This update also includes the necessary adjustments on the saveTimeEntry method call and values being assigned to this.clockType.

    • Fixed time clock for Cones & Carpet, as well as the various MOB work order types.

Projects Module

  • Users can now click on a service in the breadcrumb and will be correctly referred to their last active service tab instead of the default view. [#327]

    • Cleaned up build and manifest files left over from previous work.

    • Services in the breadcrumb UI will be abbreviated to save space.

    • The active tab now set correctly on link click.

    • Work order URL slug is now shown on the service link UI

  • All project services will now default to the Work Order Subtab when the user arrives on first view. [#329]

    • Removed old or leftover build files.

    • Checked project default view files to ensure all files point correctly to the work order subtab.

    • Modified breadcrumbs to prevent truncation of long titles.

    • Breadcrumbs now show the WO title when one has been provided.

  • Removed Validation checks for Gallon and Box count completion. [#330]

    • After feedback from project management, we determined that these validations caused too many issues to justify their presence.

    • Removed date change validations

    • Removed gallon complete validations.

    • Related code and file cleanup.

  • Permission bugfixes. [#342]

    • Update Navigation Bar and Project views for improved navigation.

      • Updated the Nav Bar icons and corrected display conditions for navigation items in NavBar.vue to enhance user navigation.

      • Introduced better code formatting and consistency in ShowProject.vue and ProjectInfoView.vue.

      • These improvements aid in maintaining clean and readable code, as well as ensuring easy navigation for end users throughout the platform.

    • Added development role and implemented snake case permissions

      • Introduced a new development role in Laratrust configuration, allowed select middleware for 'development' role, and added all permissions to it.

      • Converted permissions to snake case to ensure consistency in naming.

      • Revised various sections of code to use the development role.

      • Updated User and Scope models to efficiently check permissions.

  • Users with access to the project may now view all sales records. [#347]

    • Remove role-based filter in JobSalesScope

      • Commented out the user role-based condition in the JobSalesScope model.

      • This change temporarily disables the restriction that only allows users with sales or consultant roles to retrieve specific job sales records.

      • The decision for this change is temporary, further impact of this change needs evaluation.

      • Please provide feedback to Bruce Clark if you notice any negative or positive effects.

  • Work Order date change and validation removal [#376] & [#377]

    • Work Order View header now defaults to a hyperlink if the work order has a scheduled date.

    • Removed validations from the Area Details section if the Service Details page.

      • These validations were deemed not necessary and could interfere with legitimate operations.

    • Foreman and Super have been added to work order attribution.

    • Fixed Work order Foreman and Super titles not showing.

    • Fixed an issue where long title names could overflow onto the work order progress bar.

    • Modified the collapse/expand buttons for the Gallon and Box count charts.

    • Disable Support Services, Performance, and Costing tabs for users without full access

    • Fix WO title and PM notes updating.

  • Added note and title update modal to Surface WO tile [#379]

    • This adds a modal for updating task, title, and PM notes to the surface treatment WO tile on a gallon or box count sub-tab.

  • Update to project Towing Companies fields and logic. [#427]

    • Build towing relationships when a project is created and update towing fields on the show project page

    • Modify the project to allow fetching towing

    • Add towing to fetched project details.

    • Allow updating of towing details on the project page.

  • Updates to multiple dependencies [#407] & [#408]

    • This commit updates multiple dependencies including aws/aws-sdk-php, laravel/framework, laravel/jetstream, and more.

    • It encompasses both minor versions and patch-level updates, ensuring the project stays up-to-date with the latest features and fixes from these dependencies.

    • Fixed the sales dropdown.

  • Refactored code in CCJAreaDetails and CrackAreaDetails Vue files [#389]

    • Changes were implemented to enhance the visual clarity of the CCJAreaDetails and CrackAreaDetails components by improving their parameter formatting.

    • Additional depths were provided, and adjustments were made to indentation for better adherence to syntax guidelines.

    • Functionality of the components remains unchanged.

  • Refactored code and fixed various formatting issues in Vue components [#413]

    • Refactored code for better readability and maintainability in WorkOrderProgress.vue & WorkOderView.vue.

    • Several lines of code has been modified to follow best practices for Vue.js development, making the code easier to read and understand.

    • The commit also includes adjustments to the CSS and formatting to adhere to standard coding conventions.

  • Fixed issues with various crack and patch repair services. [#395]

    • Filter fleets based on crack type in the WO materials tab.

    • Modified fileViewer component to visually show the three different sections in view.

    • Filter subregions based on the region selected on create project form

    • Filter subregions based on the region selected on project overview

    • Fix subregion updates on region changes

    • Modified box materials

    • Set subcontractor collapsible to true by default

    • Check if all coats are complete before initiating material complete modal

    • Remove input type - number inner spin buttons

    • Add an input cancel button to crack edit input

    • Delete crack boxes

  • Fixed various issues with Aggressive Cleaning (AGC) creation and the Materials Count sub-tab. [#356]

    • Modified the no materials message for better clarity.

    • Prevented creation of Aggressive Cleaning tasks on the gallon/box counter if the Aggressive Spot cleaning service has not been defined on the details page.

    • Reference the material type in toast notification.

    • Fix box count percentage and gallon count percentage

    • Fix toast not showing

    • Fix estimated boxes for each wo progress bar not showing.

  • Fixed various issues with Agressive Cleaning (AGC) that could occur when no ACG data was provided. [#363]

    • Crack service totals renamed

    • Removed pre tag

    • Added AGC details to crack view on WO material page

    • Fixed an issue with AGC area initial values

    • Updated Surface Treatment view of the AGC layout

    • Fixed a null error on subcontractor services

    • Implemented AGCS and improved UI for AGC list and header details

  • Work Orders on the Work Order subtab are now sorted by date instead of sorting by id [#402]

  • Filters will now correctly hide invalid yards [#409]

  • Update WorkOrderProgress.vue [#442]

  • Fixed project overview notes being editable by users with view only access. [#366]

  • Fixed subcontractors service not allowed to create a Work Order [#431]

  • Fixed a bad reference in Project Info [#435]

  • Fixed gap mastic delete button not working [#401]

  • Fix for noticing [#443]

Work Orders

  • “Target MPMH” and “Target Labor” fields have been temporarily removed. [#355]

    • These fields were added initially as part of the performance and costing modules, which are currently under development.

    • There was confusion on the part of work crews regarding these fields not working or showing strange results.

    • These fields will return once thee Costing and Performance modules have been formally launched.

  • Completed a major refactor of the labor tab’s super approval process. [#332]

    • Remove unused JavaScript assets

    • Merge remote-tracking branch origin/master into trello/86-labor-tab super-field

      • This involved resolving a significant number of conflicts, which can be reviewed on the related github #332 page linked above.

      • Removed or rebuilt related assets in the code base.

    • Refactor LaborApprovalController and TimeEntry.vue; add attribute to Task model

      • The update to LaborApprovalController changes the $entryLog default to null instead of an empty array.

      • In TimeEntry.vue, improvements are made to display logic, with added helper functions, restructured HTML, enhancement in formatting, and removal of redundant code.

      • Furthermore, a new attribute work_order_slug is added to the Task model.

  • Refactor and optimization of the Work Order Checkout process. [#352]

    • Refactor WorkOrder model and adjust ServiceController

      • The commit introduced a new method areaGallons in the WorkOrder model to optimize the calculation of area in gallons.

      • This change also led to a modification in how the estimated variable is assigned in different methods within the same model.

      • A slight adjustment was made in the ServiceController to include material_components in the selected service information.

    • Optimize layout and code cleanup in WorkOrder components

      • This revision includes adjustments to CSS classes in WorkOrder view components to better organize information.

      • Some unnecessary or debugging code has been removed or cleaned up to improve readability and prevent unnoticed, outdated logs.

      • Update conditions for handling and displaying time entries were also revised, ensuring that accurate data is available for use.

  • Add work order completion status and improve validation [#419]

    • The code has been enhanced to include work order completion status in different components.

    • Functions have been created for this purpose and imported as needed.

    • Furthermore, validation for Super and Foreman checkout was adjusted to improve validation window accuracy.

    • These improvements facilitate better status tracking and enhance user interaction.

  • Add conditional rendering to labor update buttons in WorkOrderLaborView [#368]

    • The permission check to show the labor update buttons in WorkOrderLaborView.vue is added.

    • Now the buttons for 'Super' and 'Foreman/crew Leader' will only be shown if the user has appropriate rights to update labor ('work_order_update_labor_sfc').

    • This change is crucial for maintaining user access integrity and providing a solid experience based on user roles.

  • Implement user-specific conditions in WorkOrderLaborView.vue [#386]

    • This commit introduces changes where functionalities in the WorkOrderLaborView component now have conditions based on user roles.

    • Enhancements include alterations in task completion conditions and modifications in the isTheSameDay computed function.

    • The latter now returns false when the user is not a super, instead of performing a date comparison.

  • Implement changes to Clock Management and Checkout [#420]

    • Add work order completion status and improve validation

      • The code has been enhanced to include work order completion status in different components.

      • Functions have been created for this purpose and imported as needed.

      • Furthermore, validation for super and foreman checkout was adjusted to improve validation window accuracy.

      • These improvements facilitate better status tracking and enhance user interaction.

  • Updated Work Order details, the Weather reporting system, and MaterialView components. [#360]

    • Add zip code to work order details and relevant links

      • The commit adds the zip code to the work order's job details in WorkOrder API controller.

      • The front-end Vue component WorkOrderInfoView has also been updated to append the zip code to the google map links for addresses.

      • These changes will provide more accurate location details when viewing a work order.

    • Refactor WeatherReport and WorkOrderMaterialView components

      • This commit includes several modifications to the WeatherReport and WorkOrderMaterialView Vue components to enhance readability, maintainability, and functionality.

      • Icons have been changed, presentation logic refactored, component structure simplified and additional props introduced including a prop for disabling functionality.

      • Features for checking tasks completion based on specific conditions are added ensuring that certain buttons and components behave correctly in different scenarios.

  • Refactor WorkOrderInfoView and improve notes display [#364]

    • The WorkOrderInfoView component has been refactored to simplify how tasks are handled, making the code cleaner and more readable.

    • The display of notes within the application has been enhanced by:

      • Adding the ability to show previous work notes.

      • Adding more details to the note view.

    • This also involves the addition of a new controller to fetch previous notes.

  • Extend permissions check in WorkOrderLaborView [#370]

    • The labor update buttons in WorkOrderLaborView.vue are now conditioned by additional checks:

      • The user is a Super or a Foreman, AND

      • The user has the permission work_order_update_labor_sfc.

    • This ensures appropriate rights enforcement, and a user experience tailored to the user's role.

  • Improvements to crew notes and image handling. [#372] & [#373]

    • Add CrewNotesController and routing settings

      • Introduced CrewNotesController in the WorkOrder module to handle crew notes.

      • Routing setup is also added in api.php to set up crew-notes prefix and link to the newly created controller.

      • This enhances the structure and readability of handling crew notes in the application.

    • Pass taskId as a prop to the WorkOrderCrewNotes component

      • The Vue component WorkOrderCrewNotes was modified to now accept taskId as a required prop.

      • This was achieved by modifying both WorkOrderCrewNotes and WorkOrderInfoView files.

      • This allows for more modular and reusable components, as now the WorkOrderCrewNotes component doesn't depend on a global task state or variable anymore.

  • Updated Print WO Page [#378]

    • Adding DOMPDF dependency and PDF generation functionality

      • Implementing PDF generation functionality to the WorkOrderInfoView by adding the barryvdh/laravel-dompdf library to the project.

      • Added the PrintWorkOrderController to handle PDF conversion.

      • Also, uncommented the FileViewer component within WorkOrderInfoView to re-enable the feature, whilst other unused components remain commented out.

      • A new HTML to PDF view file was created named print_work_order.blade.php.

    • Refine HTML structure of print_work_order.blade.php view

      • Adjusted the indentation and structure of HTML code in print_work_order.blade.php.

      • These changes improve code readability and maintainability, allowing for easier navigation and editing in the future without compromising the current performance or visual outcome of the Work Order Page.

    • Implement streaming in PrintWorkOrderController

      • The print work order is now streamed directly for viewing, rather than saving as a PDF to a specified file path.

      • This change allows for immediate access to the printed work order without the need for file handling operations, thus improving efficiency and user experience.

    • Updated Work Order layout, categorized by Service types

    • Updated Text on WO Print & Updated WO Print

    • Finished Update on the Print Functionality

    • Updated Crack Repair view on PDF

  • Update task status handling and enhance UI indicators [#392]

    • Improved the way task status is handled in the WorkOrder and useLabor files, now including task's status and completion information.

    • Additionally, enhanced the UI's visual indicators in LaborSummary and TimeEntry files to provide more context for tasks.

    • This included the introduction of specific indicators for different approval types within time entry logs.

  • Implemented various minor WO fixes. [#351]

    • Fixed alignment issues with the Files page input fields.

    • Disabled file upload on mobile views.

    • Fixes various UI alignment issues on mobile views.

    • Users are now required to enter edit mode before uploading images or files on all views.

    • Address field now supports google maps linking.

    • Updated permissions to prevent access to support and costing tabs by default, unless the user has explicit permission to use them.

    • Fixed an issue that could cause non crack repair fleet vehicles to be displayed on the material tab of crack repair work orders.

    • Various fixes to the add crew modal.

  • Fixes for Super Check Out and Time Clock [#416]

    • Improve validation and refactor code

      • Improved form validation handling in WorkOrderCheckoutView.vue by adding the ability to display error messages when form validation fails for Foreman and Super notes.

      • A check was added to ensure notes entered are not null or less than 3 characters.

      • Made several refactoring changes in ScheduleController.php, ClockStore.js and web.php to optimize code and improve readability by adding and removing some white spaces and comments.

  • Fixed issues with the Gap Mastic Box Count Service header. [#387]

    • Gap mastic and gap patch type added to the area details section.

    • Patch values integration

    • Fixing CCJ view on collapse

    • Added padding to bottom of header when service is patch or mastic

    • Fixed sub tab state not updating when switching between a crack and a surface.

    • Fixed Patch and Gap delete task, duplicate task not working

  • Fixed issues with the work order checkout tab. [#354]

    • Update checkout process and related features

      • Enhanced checkout submission process, including user type validation and handling of towing information for work orders.

      • Made improvements in the Vue.js components rendering checkout views and weather incident reporting.

      • The backend now better supports these features with added controller methods for incident handling, towing, and checkout approval.

    • Fixed box counts

    • Refactor checkout process and implement job incident feature.

      • The checkout process has been thoroughly refactored for better data handling.

      • Major changes include revision of user type validation and the way work orders process towing information.

      • A job incident feature has also been introduced, which includes a Vue.js component for handling such incidents.

      • Backend support for these changes was also implemented with new controller methods.

  • Fixed issues with the Checkout Notes. [#359]

    • Adjust Foreman and Supervisor note conditions in Vue component

      • Modified the conditions for when noForemanNote and noSuperNote are true in the WorkOrderCheckoutView component.

      • The updated conditions now ensure both fields received a value before checking if they are empty.

      • This change prevents issues with empty notes passing the checks and proceeding forward when they should not.

    • Update Vue component to handle empty foreman and supervisor notes correctly.

      • Improved the handling of noForemanNote and noSuperNote conditions in the WorkOrderCheckoutView component.

      • This was done by ensuring both fields are checked to contain a value before validating if they are empty, preventing inadvertent pass through with empty notes.

      • This change enhances the validation process and avoids potential errors during checkout.

  • Fixed an issue that caused modal action buttons on the labor tab to become covered up when the drop down was opened. [#331]

    • This caused a soft lock that would prevent users from being able to complete the form.

  • Quick fix for value not working [#421]

  • Quick fix to fix evaluation where ID was not set on foreman. [#423]

  • Fixed PDF Layout showing incorrectly. [#382]

Manpower Module

Manpower Schedule

  • Implement region-based manpower schedule with upload feature [#399] & [#400]

    • Enhanced the manpower scheduling feature by implementing region-based schedule rendering that adjusts schedules based on whether the authenticated user's ID is in Utah or Arizona regions.

    • The changes also include file upload feature for the schedules, specifically designed to allow file movement into designated paths and keep track of relevant media details.

    • Enhanced user interaction by adding toast notifications for success status when uploading or deleting files.

    • The changes also initiated logic to handle archived files.

Manpower Crew

Manpower Assign

PM CheckOut

  • Various UI Updates. [#326]

    • Increased the spacing between work orders.

    • Improved layout of filters and functionality.

    • Updates to font and text formatting.

    • Improvements to the checkout index.

    • Improvements to expanding and collapse functionality on large work orders.

Customers Module

  • Fixed an issue the prevented page navigation buttons from appearing at the bottom of the customer module view. [#334]

Contacts Module

  • Updated composer packages and fixed contact search bar. [#361]

    • Contact search should now work as intended.

    • Fix an issue where toast error messages would not leave the after they are displayed.

  • Optimize code in contact, customer pages and update icon sizes [#404]

    • Optimized indentations of Vue scripts in contact and customer pages for better code readability.

    • Made minor updates to variable initialization for better consistency.

    • Improved icon sizes in page header components for better visual consistency across the application.

    • Removed watch method for handleCustomerSearch function since it is unnecessary for the function behavior.

    • Rearranged DOM elements order in CreateContact.vue's script for better maintaining.

  • Refactor component and controller code [#415]

    • Refactored various Vue.js components and Laravel controllers to improve code readability, clarity and performance.

    • Removed unnecessary import statements and redundant code, and rearranged lines for better organization.

    • Added new computed properties for task completion validation.

  • Fixed contact form reference [#429] & [#434]

Subcontractors Module

  • Updated subcontractor reference [#430]

  • Rebuilt NPM and updated component references in ShowSubcontractor [#432]

  • Fixed reference in SubContractorComponent [#436]

  • Fixed reference in CreateSubContractor [#437]

  • Fixed references in ShowSubContractor [#438] & [#439]

HR

Employees

  • Various minor improvements to functionality. [#321]

    • Implemented visible filterable regions.

    • System can now loop through regions.

    • Adjustments to the employee form layout and arrangement.

    • check box now correctly syncs with region select option.

    • Fixed a bug with employee notes permission allocations.

    • Fixed a routing issue with the password reset email button.

  • Fixed in issue that would prevent correct reporting of employee current location on the module index. [#337]

  • Employee records are now stamped with the ID of the user that originally created them. [#341]

  • Add an authentication check to JobRegionScope constructor. [#357]

    • The constructor for JobRegionScope model in Laravel now includes an authentication check before it attempts to access user information.

    • Previously, it assumed the user was logged in, potentially causing errors when a guest user was accessing features that use this scope.

    • The update ensures the code's stability when dealing with users who are not logged in.

  • Fixed the Employee Email password Reset link not connecting to the reset service [#362]

  • Timecard bugfixes [#393]

    • Add TimeCardStore and refactor TimeCard components

      • Introduced a new file, timeCardStore.js, to manage states, getters, and actions related to TimeCard.

      • Refactored multiple components, such as TimeIndex.vue and TimeIndexDayView.vue, to use this new store instead of local states, enhancing both code readability and maintainability.

      • Simplified the data fetching process and improved the UI loading behavior.

  • Update time data handling with TimeCardStore integration [#397]

    • This update introduces a new Vuex store, TimeCardStore, for maintaining the time card data.

    • The previous local-state-based implementation in the TimeCard components has been replaced with the central store.

    • This improves code readability, allows for better data flow design, and paves the way for future scalability enhancements.

  • Update layout of TimeCard components [#405]

    • The layout of the TimeCardTableHead and TimeCardTableRow components has been updated.

    • The number of grid columns has been increased from 11 to 12, to accommodate the addition of a new Entry ID field.

    • Also, in the TimeCardTableRow, a check was added to ensure entry.out exists before formatting it.

Announcements Module

  • Removed file input reference on create announcements [#433]

Settings Module

  • Fixed Location List Display Bug [#384]

Credits & Acknowledgements

  • Code Contributors:

    • @corydemille

    • @pemeraldy

    • @devsquad-pedro-silva

    • @devsquad-denisbeder-carvalho

  • Patch Notes Transcribed By:

    • Jason M Callahan