HGV DRIVER LOG - CHANGELOG ========================== Version 2.13.8.7 ------------------ - Fixed a Banked Hours page SQL error caused by the `manual` aggregate alias on MySQL/MariaDB. - Renamed the aggregate aliases to unambiguous field names while keeping the lifetime balance calculation unchanged. Version 2.13.8.6 ------------------ - Added a dedicated Banked Hours page with a week-by-week table of completed shift hours, raw overtime, applicable multiplier and banked hours earned. - Added lifetime totals and a clear balance calculation showing total credit earned less banked time off/bookings and hours taken as paid. - The Dashboard Total Banked Hours KPI now opens the new Banked Hours page. - Weekly rows link back to the matching Dashboard week for shift-level detail. - Replaced the remaining Pay Tracker shortcut on Banked Work Days with a Banked Hours shortcut. - No database migration is required. Version 2.13.8.5 ------------------ - Restyled the Dashboard weekly Shift History to use the same accordion presentation, spacing and mobile font sizing as the main Shift History page. - Dashboard shift rows now expand in-place to show core shift details and actions. - Added the weekly banked-hours calculation beneath the Dashboard shift table (raw overtime × multiplier = banked hours). - Removed the Estimated Earnings/pay breakdown from Shift View. - Removed Pay Tracker from the My Work navigation while retaining the underlying historical page/data for compatibility. - No database migration is required. Version 2.13.8.4 ------------------ - Refocused the Dashboard on core shift tracking: lifetime banked hours, weekly shift duration, holiday balance and weekly bank credit. - Added a lifetime Total Banked Hours calculation that subtracts paid hours plus all banked time-off bookings and never resets by period. - Added Dashboard week navigation across every week containing completed shifts. - Removed Pay Overview from the Dashboard. - Removed the Payslip Reconciliation form and comparison history from the active Pay Tracker UI; historical rows remain untouched. - Added quick Vehicle/Trailer creation directly from Start/Edit Shift. - Normalised vehicle registrations and trailer numbers to uppercase; standard seven-character UK registrations are formatted as AB12 CDE. - Removed Fleet Number from the active Vehicles UI and shift selectors while retaining the legacy database column. - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.13.8.3 ------------------ Mobile Session & Dashboard Refocus - Increased normal authenticated sessions to 7 days to reduce repeated mobile logins. - Extended Remember Me from 30 days to 90 days; remembered tokens continue to rotate securely when used. - Removed POA entry from active shift finish/edit forms while retaining historic POA values already stored. - Refocused the Dashboard on shift durations, banked hours and holidays. - Added a Total Banked Hours KPI combining available banked hours with hours awaiting allocation. - Added Shift Time This Month, Holiday Remaining and Bank Credit This Month as primary KPIs. - Added a live HH:MM:SS duration timer for the current running shift. - Removed driving/compliance/mileage KPI blocks from the main Dashboard without deleting the underlying driving data or specialist reporting pages. - No database migration is required. Version 2.13.2 -------------- Bulk Location Category Mapping - Added multi-select checkboxes to the Locations page on desktop and mobile. - Added Select All for the locations shown on the current filtered/page results. - Added a selected-location counter. - Added a bulk "Map selected to" category action. - Bulk mapping validates the chosen active category and only updates the current user's locations. - Individual location editing remains unchanged. - No database migration is required. Version 2.13.1 -------------- Admin Cleanup & Shift History Explanation - Shift History now shows the banked-hours calculation beneath the totals row, for example: Banked: 4.00h × 1.50 = 6.00h. - The Administration Dashboard Danger Zone / Reset Application Data card is now part of the rearrangeable dashboard sections. - Removed Divisions from the visible Administration navigation and dashboard modules. - Location Categories can now be deleted when they are not used by any locations. - Location Category deletion is blocked with a clear warning when locations still use that category. - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.13.0 -------------- Enhanced Bank Hours & Banked Work Days Bank-hours model - Overtime is now enhanced when it enters the bank rather than when it is paid out. - Example: 5.0 hours worked over the weekly threshold at 1.5x creates 7.5 bank hours. - Bank hours selected for pay are paid at the normal hourly equivalent, preventing the multiplier being applied twice. - Monthly bank periods now retain raw overtime worked, multiplier, enhanced overtime credit and non-driving work-day credits separately. - Future banked-time-off bookings are reserved from the available balance to prevent overbooking. Induction / Training / CPC - Added Banked Work Days under My Work. - Record Induction Day, Training Day or CPC Day and the number of hours credited directly into the bank. - Current Employment now has configurable default bank-hour values for all three day types. - These credits join the same monthly bank as enhanced overtime and become available the following pay month. Shift History - Removed per-shift earnings values, which are misleading for a salaried role. - Shift History now shows Shift Duration, Driving and Hours Banked. - Hours Banked is attributed to the shift(s) that actually take the weekly total above the overtime threshold. - Added a working in-progress-shift card lookup on Shift History. Pay / Dashboard - Dashboard Total Estimated Earnings now uses Current Employment / Personal Pay Tracker instead of the legacy pay profile calculator. - Estimated earnings are monthly basic salary plus bank hours selected for pay. - Pay Tracker now distinguishes overtime worked, enhanced bank credit and Induction/Training/CPC credits. - Dashboard/report earnings drill-down now reports banked hours rather than a misleading per-shift cash value. Database - upgrade-2.13.0.sql adds the banked_work_days table and additional overtime-bank breakdown columns. - SQL is supplied separately and is not included inside the application ZIP. Version 2.12.1 -------------- Edit Shift Finish Time - Completed shifts can now have their finish time corrected directly from Edit Shift. - The finish date remains implicit: if the edited finish time is earlier than the start time, the shift is treated as finishing the following day. - Open/in-progress shifts continue to use the dedicated Finish Shift workflow. - No database migration is required. Version 2.12.0 -------------- Live Shift Workflow - Add Shift now starts an open-ended shift; a finish date is no longer entered. - Added a dedicated Finish Shift flow with finish time. If the finish clock time is earlier than the start time, the following day is inferred automatically. - Finish Shift captures final mileage, tachograph totals and night-out details. - Open shifts are clearly shown on Dashboard and Shift History with Update and Finish Shift actions. - Only one open shift can be active at a time. - Starting Trailer removed from the shift; trailers are selected per leg only. - Leg 1 From automatically follows the shift Start Location. - New legs automatically inherit the previous leg's To location as their From location. - Arrival and Departure times removed from Load / Leg entry. - Night outs at the configured Home Branch are recorded but do not receive the night-out allowance; nights away from Home Branch retain the configured allowance. - Pay, overtime and reporting calculations ignore unfinished/open shifts until the shift is completed. - upgrade-2.12.0.sql makes shifts.shift_end nullable for the live/open shift workflow. - SQL remains separate from the production ZIP. Version 2.11.0 -------------- Loads / Legs & Account Cleanup Account / Profile - Removed duplicated Employment and Pay sections from Account / Profile. - Employer, salary, overtime, holiday entitlement and allowances now have one source of truth: Current Employment. - Account / Profile now focuses on personal details and driving defaults. - Allocated / Default Unit remains available and is automatically selected on new shifts. - Default starting trailer, home branch, distance unit and unpaid-break defaults remain available. - Two-factor authentication remains on Account / Profile. Current Employment - Added optional Meal Allowance and Night Out Allowance fields. - Both can be left at £0.00 when not offered. - Pay calculations now default missing allowance settings to £0.00 rather than legacy allowance values. Loads / Legs - Added a new Loads / Legs workflow for current-employment shifts. - Each shift starts with the allocated/default unit but can be changed manually. - Each leg records From, To, load status, trailer, unit, load/job description, arrival, departure and notes. - Trailer can be changed on every leg. - Unit can be changed on any leg; subsequent newly-added legs inherit the previous leg's selection for quick truck-swap workflows. - Shift View shows a Loads / Legs KPI and a chronological leg list. - Legacy Vehicle Movements remain preserved for historical vehicle-transport shifts. Database - upgrade-2.11.0.sql adds the shift_legs table and zero-default allowance settings. - SQL remains separate from the production ZIP. Version 2.10.0 -------------- Overtime Bank - Removed the Vehicles Moved KPI from the Dashboard and simplified the remaining transport area to Mileage. - Hours above the Current Employment weekly overtime threshold are now treated as overtime entitlement rather than automatically paid overtime. - Earned overtime becomes available for allocation in the following pay month. - Added an Overtime Bank ledger with Paid, Banked and Remaining hours for each earned month. - Drivers can split each available overtime period between paid overtime and banked time off. - Paid overtime uses the overtime rate captured for the earned period and is included in the following month's expected gross pay. - Banked overtime carries forward as an hours balance until used. - Added OT Earned This Month, Awaiting Allocation, Banked Time Off and OT Being Paid KPIs to Pay Tracker. - Added Banked Overtime Leave as a Time Off option. - Banked overtime leave is tracked separately and does not reduce annual holiday entitlement. - Holidays page now shows the available overtime-hours balance and banked-overtime leave bookings. - Dashboard Personal Pay Tracking now shows OT earned and banked OT time available. - upgrade-2.10.0.sql is required and supplied separately. - Production ZIP contains no SQL/setup/install files. Version 2.9.9 ------------- Reset Hotfix - Fixed the Administration Data Reset error when the optional user_remember_tokens table does not exist. - The reset now checks whether the remember-token table is present before trying to clear it. - This keeps the reset compatible with installations that have never used the remember-me migration. - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.9.8 ------------- Administration Safety & User Management User Administration - Fixed Add User and Edit User modals so their content scrolls reliably on desktop and mobile. - Modal height is now calculated from the actual viewport with a fixed header/footer and independently scrolling body. - Existing Active / Suspended / Inactive account states remain available. - Added permanent Delete User for non-current accounts. - Permanent deletion requires typing DELETE and cannot delete the currently logged-in administrator. - The last active administrator is protected from deletion. Application Data Reset - Added an Administration Dashboard Danger Zone. - Added Reset Application Data for returning the app to a clean operational state from the front end. - Reset requires the administrator's current password plus the exact phrase RESET HGV LOG. - Reset clears shifts, holidays, expenses, defects, pay/payslip history, employment data, assets, locations, companies/divisions, user preferences, audit history and other user accounts. - The currently logged-in administrator account, password, 2FA, role/access permissions, core reference tables and system-wide configuration are preserved. - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.9.7 ------------- Current Employment Salary Entry Fix - Fixed Annual Salary entry being reformatted after each keystroke. - You can now type full values such as 35000, 42000.50 or other multi-thousand salaries normally. - The selected Pay Basis remains the authoritative field while calculated monthly, weekly and hourly equivalents update live. - The same protection is applied to Monthly Salary and Hourly pay when those are selected as the pay basis. - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.9.6 ------------- Simplified Current Employment - Removed Employment Profiles from the user interface. - Added My Account > Current Employment as the single place to manage employer, job role, start date, pay, overtime, holiday entitlement and pay day. - The first save creates a new current-employment record while leaving the old vehicle-transport record untouched behind the scenes so historic shifts retain their original context. - Vehicle Transport / cargo-movement features are not enabled for the new current employment. - Removed Timesheets from the normal My Work navigation because the app is now for personal tracking rather than payroll submission. - Removed Timesheet Submissions / Payroll Records from the Administration navigation and dashboard. - Removed the Employment Profiles administration tile/page. - Pay Tracker now directs users to Current Employment when pay settings are missing. - Existing historic timesheets, submissions, shifts and vehicle-movement data are preserved; they are simply no longer part of the normal workflow. - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.9.5 ------------- Personal Pay Tracking Pay Period Dashboard - Added My Work > Pay Tracker for personal hours and wage checking. - Monthly view shows actual paid hours, overtime hours, expected basic pay and expected gross pay. - Uses the active Employment Profile's salary/hourly basis, contracted hours, overtime threshold and overtime rate. - Supports weekly or monthly/pay-period overtime accumulation. - Added Personal Pay Tracking summary cards to the main Dashboard. Payslip Reconciliation - Added private payslip comparison records. - Record actual basic pay, overtime hours/pay, gross pay, deductions, net pay and pay date. - Automatically compares actual gross pay against the app's expected gross pay. - Added 24-period comparison history. - Nothing in Pay Tracker is emailed or submitted to an employer. Holiday Balance - Added entitlement, accrued-to-date, taken, booked-ahead and remaining holiday figures to Pay Tracker. - Holiday tracking now uses the active Employment Profile's holiday-year start and entitlement where configured. - Existing Holidays page also follows the employment-profile holiday year and entitlement. Database - upgrade-2.9.5.sql is supplied separately and is REQUIRED. - Production ZIP contains no SQL/setup/install files. Version 2.9.4 ------------- Connected Salary / Wage Calculations - Employment Profile pay fields now calculate together automatically. - Annual Salary + contracted hours calculates monthly, weekly and equivalent hourly pay. - Monthly Salary + contracted hours calculates annual, weekly and equivalent hourly pay. - Hourly pay + contracted hours calculates weekly, monthly and annual equivalents. - The selected Pay Basis remains the authoritative pay figure. - Overtime multiplier automatically calculates the overtime hourly rate from the equivalent basic hourly rate. - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.9.3 ------------- Employment Profile Modal Scroll Fix - Replaced the previous CSS-only modal sizing with viewport-aware JavaScript sizing. - The modal now calculates the available height from the live browser viewport. - Header and footer remain fixed inside the modal and only the form body scrolls. - The Save Profile button therefore remains visible and reachable at all times. - Added stronger overflow/flex rules to prevent Bootstrap or browser CSS from expanding the modal past the viewport. - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.9.2 ------------- Employment Profile Modal Scroll Fix - Reworked the Employment Profile modal layout to use a fixed viewport-height flex container. - The modal body is now the only scrolling region, with the header/footer remaining accessible. - On tablets and phones the Employment Profile editor opens full-screen to avoid browser viewport/Bootstrap modal scrolling conflicts. - Uses dynamic viewport units (dvh) for better mobile browser behaviour. - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.9.1 ------------- Employment Profile Improvements - Added Annual Salary as a third pay basis alongside Hourly and Monthly Salary. - Added Annual Basic Salary field to employment profiles. - Employment history now displays annual salary correctly. - Fixed the Employment Profile modal so the form scrolls correctly on desktop and mobile and the Save button remains reachable. - Database migration is supplied separately as upgrade-2.9.1.sql. Version 2.9.0 ------------- Employment Profiles & Configurable Role Foundation Employment Profiles - Added a new Administration > Company > Employment Profiles module. - Employment profiles are stored per user and retain historical employer context. - Existing users receive a Legacy Vehicle Transport profile during migration so historic shifts are preserved. - Existing shifts are linked to the legacy employment profile. Configurable Pay Structure - Profiles support Hourly or Monthly Salary pay basis. - Monthly basic pay and contracted weekly hours can be configured. - Existing weekday/weekend hourly rates are available for hourly roles and transitional calculations. - Overtime can be configured to accumulate weekly, monthly or by payroll period. - Overtime threshold, fixed overtime hourly rate or multiplier can be stored. - This release establishes the configuration model; the new salary/overtime calculation engine will be implemented once the new employer's exact rules are confirmed. Holiday Entitlement - Profiles store annual holiday entitlement in days and/or hours. - Holiday-year start can be configured. - Bank holidays can be marked as included in entitlement. Industry / Work Modules - Added profile-level enabled modules. - Vehicle Transport / Vehicle Movements can be disabled for non-vehicle-transport roles. - Add Shift and Edit Shift hide the Collections & Deliveries vehicle-movement section when Vehicle Transport is disabled. - New shifts are linked automatically to the employment profile applying on the shift date. - Shift View shows the employer/profile associated with the shift. Database - Migration upgrade-2.9.0.sql is REQUIRED. - Adds employment_profiles and shifts.employment_profile_id while preserving existing data. Version 2.8.8 (Dashboard Fix) ----------------------------- - Corrected the Admin Dashboard layout editor so dashboard sections render in normal PHP scope. - Saved section order is now applied client-side to the already-rendered dashboard sections. - Fixes the incomplete/blank dashboard content seen in the initial v2.8.8 package. - Per-administrator saved layouts, drag-and-drop, mobile Up/Down controls, Save Layout and Reset to Default remain unchanged. Version 2.8.8 ------------- Personalised Admin Dashboard Layout Administration Dashboard - Added an Arrange Dashboard mode for administrators. - Dashboard sections can be reordered using drag and drop on desktop. - Added Up and Down controls while arranging for reliable mobile/touch reordering. - Added Save Layout to persist the chosen section order. - Added Reset to Default to restore the standard dashboard arrangement. - Layout is stored per administrator in the existing settings table using the admin_dashboard_layout setting key. - Each administrator can therefore maintain an independent dashboard layout. - New or missing dashboard sections automatically fall back into the default order safely. Database - No database migration required from v2.8.7 because the existing settings table is reused. Version 2.8.7 ------------- Admin Dashboard & Defect Table Refinement Administration Dashboard - Replaced the long Administration Modules list with smaller responsive tiles spanning the full dashboard width. - Module tiles display four across on wide desktop layouts, three across on medium layouts and two across on smaller screens. - Moved Recent Admin Activity below the module tiles as a full-width section. - Timesheet Submissions remain below Recent Admin Activity. Defects - Shortened the desktop Defects date column to dd/mm/yy. - Left-aligned Defect detail text while keeping the Defect column header centred. - Left-aligned Action text while keeping the Action column header centred. Database - No database migration required from v2.8.6. Version 2.8.6 ------------- Admin Navigation, Data Tables & Changelog Administration Menu - Reorganised the Administration menu into compact two-level groups. - Admin Dashboard remains the first direct option. - People contains Users & Permissions. - Company contains Locations, Location Categories and Divisions. - Assets contains Vehicles, Trailers, Asset Maintenance and Defect Categories. - Payroll / Records contains Timesheet Submissions and Audit Log. - System contains Email / SMTP. - Grouped submenus are optimised for both desktop and mobile navigation. Data Tables - Standardised data-table row length to 25 records by default. - Added row-count options for 10, 25, 50 and 100 rows. - Audit Log, Locations and Admin Timesheet Submissions preserve the selected row count through server-side pagination. - Other administration/list tables use reusable client-side pagination controls with the same 10/25/50/100 options. Defect History - Refined defect status presentation so each mobile defect has a theme-consistent colour line across the top. - The current status is shown directly beneath the line. - Reported defects use the application danger/red colour; warning, monitor and resolved states use their corresponding theme colours. - Dark Theme uses matching low-glare status colours. Version History - The footer version number is now clickable. - Clicking the version opens a scrollable in-app Changelog containing the recorded changes across application releases. Database - No database migration required from v2.8.5. Version 2.8.5 ------------- Administration & Table Usability Timesheets - Centre-aligned the Date column in the in-app timesheet preview. - Date cells remain explicitly centre-aligned in the generated Timesheet PDF. Defect History - Moved mobile defect status out of the detail area into a full-width colour-coded status row at the top of each defect. - Desktop defect status now uses the same status-colour language. Audit Log - Added 25-record pagination. - Added filters for user, action, area/entity type and date range. - Filters persist while moving between pages. Locations - Added 25-record pagination. - Added server-side search and category filters. - Search covers location name, category and postcode. - Filters persist through pagination. Administration Dashboard - Added links for all currently available administration modules, including Locations, Vehicles, Trailers and Asset Maintenance. - Activated Timesheet Submissions as a live admin table. - Timesheet Submissions show driver, week, submission time, estimated earnings, send status and current lock state. - Timesheet Submissions are paginated at 10 records per page. - Admins can open a submitted driver's timesheet directly using Administrator Support Mode. - Added a permanent Admin Dashboard link as the first item in the Administration menu. Database - No database migration required from v2.8.4. Version 2.8.4 ------------- Complete Dark Mode Dark Mode - Moved Dark Mode to a top-level control in the main navigation menu. - Uses a slider/switch so the option is immediately visible on mobile and desktop. - Theme changes apply immediately without opening Settings or pressing Save Settings. - Theme preference is saved to the user's account asynchronously when the switch changes. - Removed the duplicate Dark Theme control from the Settings page. - Completed dark styling for Dashboard hero, KPI/stat cards, application panels, tables, forms, search lists, timesheet previews, history accordions and other legacy light components. - Added dark equivalents for warning, danger, success, info and neutral alerts. - Preserved meaningful compliance, calendar and expense status colours with low-glare dark equivalents. - Mobile navigation gives the Dark Mode control its own clear full-width row. Database - No database migration required from v2.8.3. Version 2.8.3 ------------- Night Theme, Calendar Key & Payroll PDF Polish - Added a persistent per-user Dark Theme slider under Settings > Appearance. - Added dark styling and dark-mode status colours across the application. - Added a Calendar key for Standard, 13h+, 10h drive, combined, Holiday, Reduced Rest, Defect and Locked states. - Both payroll PDFs now use the exact WS Transportation image supplied for this release, unchanged. - Increased and standardised the logo/header footprint on Timesheet and Expense Claim PDFs. - Expense Description and Location values are left aligned with consistent indentation; Date, Amount and Receipt Number remain centred. - No database migration required from v2.8.2. Version 2.8.2 ------------- Shift Expenses & Branded Expense Claim Shift View - Added an Expenses panel showing expenses associated with the selected shift. - Displays description, amount, date, location, receipt number, status and a View Receipt link. - Added Shift Expense Total. - Unlocked shifts provide Add Expense directly from Shift View. - Add Expense opens the Expenses form with the current shift and date already selected. - Locked shifts retain read-only expense information. Expense Claim PDF - Rebuilt the emailed Driver Expense Claim PDF to visually match the payroll timesheet. - Added the WS Transportation logo using the same logo treatment as the Timesheet PDF. - Uses the same landscape page size, margins, title styling and payroll-style driver information strip. - Expense table field sizing and borders now closely follow the existing timesheet presentation. - Retains the supplied expense fields: Date, Amount, Description, Location and Receipt Number. - Added a clear total-claim/sign-off area at the bottom. - Receipt evidence continues to be attached separately to the payroll email. Database - No database migration required from v2.8.1. Version 2.8.1 ------------- Expenses & Shift Table Fixes Expenses - Fixed the Add/Edit Expense modal so it scrolls correctly on mobile. - Modal header and actions remain reachable while the form body scrolls. - Improved behaviour when the mobile keyboard reduces the available viewport. Shift Tables - Standardised compact shift-view tables to show Start and Finish together in one Time column. - Shift History now shows time as e.g. 04:00 – 18:00. - Dashboard/compliance drill-down tables use the same combined Time format. - Daily-rest and extended-drive shift tables were updated to the same compact standard. - Relationship tables that compare separate shifts/rest gaps retain their distinct timestamps where required. Meal Allowance - A shift now qualifies for the configured meal allowance when its total duration is exactly 6 hours or longer. - 5h 59m does not qualify; 6h 00m does. - Meal counts now count only shifts that actually qualify for a meal allowance. Timesheets - Fixed Timesheet History incorrectly continuing to show Submitted / Locked after an administrator unlocks a timesheet. - Submitted weeks now show either Submitted / Locked or Submitted / Unlocked based on the current active lock record. - Unlocked shifts and expenses remain editable under the existing lock rules. Migration - No new database migration is required from a successfully migrated v2.8.0 installation. - The bundled v2.8.0 migration has also been corrected to use the existing permissions table schema. Version 2.8.0 ------------- Expenses Module Driver Expenses - Added My Work > Expenses. - Expense entry follows the existing Driver Expense Claim Form fields: Date, Amount, Description, Location and Receipt Number. - Drivers can photograph a receipt directly from a supported mobile browser or upload an existing JPG, PNG, WebP or PDF. - Receipt evidence is required when creating an expense. - Expenses can optionally be associated with a specific shift. - Weekly views show individual expenses and a running weekly total. - Drivers can edit, replace receipts or delete expenses while the payroll week remains unlocked. - Submitted payroll weeks lock the associated expenses automatically. Timesheets - Timesheet review now shows the weekly expense count and total. - Submitting a timesheet also marks that week's expenses as Submitted. - Payroll email submission now includes an automatically generated Driver Expense Claim PDF when expenses exist. - Receipt evidence is attached alongside the timesheet and expense claim. - Expense claim PDF uses Name, Depot, Week Ending, Date, Amount, Description, Location and Receipt Number to mirror the supplied paper form. Workflow Preparation - Expense statuses support Draft, Submitted, Queried, Approved, Rejected and Paid for the future Payroll module. - Added expenses.view and expenses.manage permissions. Security - Receipt files use randomized filenames and are served through a permission-checked endpoint. - Uploads are restricted to JPG, PNG, WebP and PDF with a 10 MB per-file limit. Database - Run upgrade-2.8.0.sql on existing installations. Version 2.7.17 -------------- Shift History Spacing Refinements Shift History - Increased the left inset on the first Day/Date column. - Reduced the spacing between the first and second table columns. - Reduced horizontal gutters between columns in expanded accordion shift details. - Tightened mobile accordion side padding to make better use of the available width. - Preserved the existing no-horizontal-scroll mobile layout. Database - No database migration required from v2.7.16. Version 2.7.16 -------------- Shift History Spacing Shift History - Added a small left inset to the first column so Day/Date no longer sits directly against the table border. - Preserved the existing mobile-fit column widths and no-horizontal-scroll layout. Database - No database migration required from v2.7.15. Version 2.7.15 -------------- Final Pre-Expenses Design Polish Shift History - Removed the dedicated accordion-arrow column. - The full shift row remains clickable/tappable to expand its detail. - Reallocated the reclaimed width across Date, Duty, Drive and Pay. - Retained the larger mobile text and no-horizontal-scroll layout. Branding - Changed the favicon and home-screen app icon background to match the main navigation navy. - Updated the web-app theme colour to match. Database - No database migration required from v2.7.14. Version 2.7.14 -------------- Shift History Mobile Readability Shift History - Increased the mobile table text size for easier reading. - Gave Day/Date more horizontal space. - Moved the accordion chevron into its own narrow column at the far right. - Tightened Start and End columns while preserving readable Duty, Drive and Pay values. - Kept the collapsed table designed to fit inside a normal mobile viewport without horizontal scrolling. - Totals row remains aligned with Duty, Drive and Pay. Database - No database migration required from v2.7.13. Version 2.7.13 -------------- Remember Me, App Icon & Mobile Shift History Authentication - Added a Remember me for 30 days option to the login screen. - Persistent logins use selector/validator tokens with only a SHA-256 validator hash stored in the database. - Remember tokens are Secure when HTTPS is in use, HttpOnly and SameSite=Lax. - Tokens rotate when used and expire after 30 days. - Remember Me is issued only after successful 2FA when two-factor authentication is enabled. - Logging out revokes the current remembered token. - Password activation/reset revokes remembered tokens for that account. Branding - Added a recognisable truck favicon. - Added 32px favicon, Apple touch icon, 192px and 512px app icons. - Added a simple web app manifest for home-screen shortcuts. Shift History - Compact table now displays Day/Date, Start, End, Duty, Drive and Pay. - Added a totals row showing total duty time, total driving time and total estimated earnings. - Removed the separate earnings total box. - Mobile column headings abbreviate automatically to End, Duty, Drive and Pay. - Tightened padding, font sizing and column widths so the collapsed table is designed to fit within a normal mobile viewport without horizontal scrolling. Database - New user_remember_tokens table required. - Run upgrade-2.7.13.sql when upgrading an existing installation. Version 2.7.12 -------------- Unified Shift History Shift History - Shift History is now the single interface for reviewing current and previous work. - Added a compact mobile-first table with Day/Date, Start, Finish, Duration and Shift Total. - Each shift row expands in place to show locations, truck, trailer, driving, other work, POA, breaks, mileage, vehicles moved, allowances, night out, defects, lock status and notes. - Expanded records retain View Full Shift and Edit Shift where the shift is not locked. - Weekly filters show Estimated Weekly Earnings at the bottom. - Longer periods show Estimated Earnings for Period. History - Removed the separate History page from My Work. - Removed the obsolete statistics route and permission-module entry. - Historical reporting is now fully consolidated into Shift History. Database - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.7.11 -------------- History Table & Weekly Earnings History - Replaced the historical shift card/list layout with a compact table. - History now shows Date, Start, Finish, Duty, Driving, Mileage, Vehicles Moved and Estimated Earnings. - Added a totals row for the selected period. - Weekly views explicitly show a Weekly Total and Estimated Weekly Earnings. - Monthly, yearly and custom views show an Estimated Earnings for Period total. - Clicking or tapping a shift row expands the shift details directly underneath. - Expanded details include truck, trailer, locations, work time, POA, break/rest, allowances, night out, defects and notes. - Added View Full Shift from each expanded record. - Expandable rows support keyboard activation. Database - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.7.10 -------------- Dashboard Polish & Shift History Period Filter Dashboard - Service/MOT notifications remain in place but now render as a compact single line. - Maintenance due information now uses a week-commencing date (w/c) instead of week numbers. - Transport statistics moved above Estimated Earnings. - 10-Hour Drives Remaining and Reduced Rests Remaining use the standard KPI value size again. Shift History - Added period filtering for This Week, Last Week, This Month, Last Month, This Year and All Shifts. - Shift results are limited to the selected period and shown newest first. Database - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.7.9 ------------- Operational Dashboard & Carry-Over Destination Fix Dashboard - Added Shift History directly below Add Shift using matching full-width buttons. - Removed the Quick Actions strip. - Removed Holiday Remaining from the Dashboard. - Removed the Recent Shifts / Shift History cards from the bottom of the Dashboard. - Removed Last Daily Rest from the Dashboard. - Moved 10-Hour Drives Remaining and Reduced Rests Remaining to the first KPI positions. - Added a dedicated Stats section above Transport. - Stats contains Driving This Week, Fortnight Driving, Working Time and Duty Time. - Estimated Earnings is positioned prominently between Stats and Transport. - Transport now contains Vehicles Moved and Mileage only. - Weekly Rest Due and Rest Compensation remain with compliance information. Carried-Over Loads - Open carry-over loads now retain their intended Deliver To location. - Vehicles Already on Trailer displays the pending destination when one was recorded. - Selecting Deliver This Load automatically populates the Deliver To field from the previous shift. - The destination remains editable if the delivery plan has changed. Database - Run upgrade-2.13.8.4.sql after deployment to normalise existing vehicle registrations and trailer numbers; no schema changes are made. Version 2.7.8 ------------- Current-Week Dashboard, History & Actionable Asset Alerts Dashboard - Dashboard is fixed back to the current week so drivers see their most relevant figures immediately after login. - Removed the Dashboard period selector. - Current-week KPI drill-downs continue to open the focused detail reports. History - Restored the former Statistics page and renamed it History. - History is available under My Work for previous-period reporting and filtering. - Dashboard remains a separate top-level navigation item. Asset Maintenance - Maintenance warning window increased to 14 days. - Dashboard notifications identify the exact vehicle or trailer, maintenance type, due date and due week. - Each maintenance notification links directly to the relevant asset. - Asset detail pages allow users with Assets view permission to inspect the asset while Edit and maintenance controls require Assets manage/admin permission. Navigation - Asset Back buttons now return to the previous browser view, with Dashboard as the explicit fallback when opened from a Dashboard maintenance notification. Database - No database migration required from v2.7.3. Version 2.7.7 ------------- Dashboard Periods, Calendar Detail & UI Consistency Dashboard - Added period filter: This Week, Last Week, This Month and This Year. - Driving, mileage, vehicles moved, duty time, working time and estimated earnings recalculate for the selected period. - KPI drill-down links inherit the selected Dashboard period. - Regulatory counters such as 10-Hour Drives and Reduced Rests continue to use their correct current compliance windows. - Removed the Statistics button from the Dashboard. Statistics - Removed Statistics from My Work navigation. - Retired the Statistics page route. - Removed Statistics from the user module-permission selector. Daily Rest - Reduced-rest rows now display a clear Reduced badge instead of an exclamation icon. - Regular rest retains a green confirmation icon. - Potential infringements retain a warning icon. Two-Factor Authentication - Login 2FA challenge now uses the same HGV Driver Log layout, branding, card sizing and styling as the normal login screen. Tables - Global table alignment standard: first column left aligned; every subsequent column centred horizontally. Calendar - Shift cards now show start time, finish time, duty duration and estimated earnings. - Calendar shift indicators show Reduced rest, 10-hour drive extension, reported defects and submitted-timesheet Locked status. - Month view uses compact indicators to preserve mobile usability. Database - No database migration required from v2.7.3. Version 2.7.6 ------------- Unlocked Shift Fix, Timesheet Earnings & Rest Report Cleanup Shift Locking - Administrator unlock now clears every active lock row for the selected user and payroll week. - Shift edit visibility is based only on the current active lock state, so unlocked shifts regain Edit actions immediately. - Existing server-side lock protection remains in place while a timesheet is genuinely locked. Timesheets - Timesheet History now displays estimated earnings for each working week. - Earnings use the same PayCalculator rules as the dashboard and cover the timesheet's Sunday-to-Saturday payroll period. - History period dates use short dates. Daily Rest Report - Removed the large rest-information connector blocks between shifts. - Daily Rest now displays a compact shift table. - Each row ends with a status icon for Regular Rest, Reduced Rest or Potential Infringement. - The detailed classification reason remains available as the icon tooltip without cluttering the table. Database - No database migration required from v2.7.3. Version 2.7.5 ------------- Focused Dashboard Reports & Locked Shift UX Compliance / Dashboard - Safety > Compliance remains the general compliance overview. - Dashboard KPI drill-downs moved to dedicated report pages that are reached from the dashboard tiles. - Focused reports no longer display unrelated compliance sections underneath. - Each focused report has a Period selector: This Week, Last Week, This Month or This Year. - Removed Shift Number columns from all focused dashboard reports. - Dates use short mobile-friendly formats. - Daily Rest remains a connected duty/rest timeline. - Driving, 10-Hour Drives, Mileage, Vehicles Moved, Duty Time, Working Time and Estimated Earnings each show only their relevant data and total. Shift Locking - Shift History checks submitted-timesheet locks for every displayed shift. - Locked shifts show a Shift Locked status. - Edit Shift actions are removed from locked shifts on desktop and mobile. - View Shift displays a clear locked-timesheet status and hides the Edit Shift button. - Directly opening Edit Shift for a locked shift now shows the locked message rather than the edit form. - Existing server-side timesheet lock enforcement remains in place. Database - No database migration required from v2.7.3. Version 2.7.4 ------------- Dashboard Drill-Downs & Daily Rest Compliance Fixed - Reduced daily-rest calculation now distinguishes actual time off between shifts from qualifying rest inside the 24-hour duty window. - A duty exceeding 13 hours is classified as a reduced-rest duty when at least 9 hours qualifying rest remains inside the 24-hour window, even if the actual gap before the next shift is 11 hours or more. - Sub-9-hour qualifying rest is shown as a potential infringement. - Actual inter-shift rest remains the duration displayed to the driver. Added - Reduced Rests dashboard tile opens a Daily Rest Compliance timeline. - Daily Rest Compliance shows consecutive duties, actual rest, qualifying rest inside the 24-hour window and the reason for each classification. - 10 Hour Drives tile opens a weekly driving-extension table. - Driving This Week opens a shift-by-shift driving table with weekly total. - Mileage This Week opens a shift mileage breakdown with total. - Vehicles Moved opens a shift-by-shift vehicle-movement breakdown. - Duty Time opens a shift-by-shift duty-time table with total. - Working Time opens a shift-by-shift driving + other-work table with total. - Estimated Weekly Pay opens a shift-by-shift estimated earnings table with total. UI - Clickable dashboard KPI cards now use a consistent drill-down affordance. - Compliance drill-downs stay within the existing Safety > Compliance area. Database - No database migration required from v2.7.3. Version 2.7.3b -------------- 2FA QR Code Hotfix Fixed - Authenticator setup QR code is now generated by HGV Driver Log itself. - Removed the external CDN dependency that could leave an empty QR outline. - QR generation is bundled locally and works without loading third-party scripts at setup time. - Manual authenticator setup key remains available as fallback. - Includes the v2.7.3a timesheet display correction. Database - No database migration required from v2.7.3. Version 2.7.3a -------------- Timesheet Display Hotfix Fixed - Timesheet review data now loads during normal page views. - The seven-day timesheet row builder had accidentally been scoped inside the POST-only submission handler. - Reviewing an existing week no longer shows only the header/footer with empty timesheet data. - Timesheet submission and locking behaviour from v2.7.3 remains unchanged. Database - No database migration required from v2.7.3. Version 2.7.3 ------------- Division Safety, 2FA Fix & Timesheet Locking Divisions - Added Delete action for Divisions. - Deletion checks for users assigned to the division. - Deletion is blocked while any users remain assigned, with Inactive retained as the safe alternative. Two-Factor Authentication - Fixed login enforcement: enabled 2FA now always requires the 6-digit authenticator code after password validation. - Authenticator setup now presents a scannable QR code. - Manual setup key remains available as fallback. - 2FA setup actions no longer trigger the normal My Account settings save. Timesheets - Successful payroll submission automatically locks the payroll period. - Locked periods reject shift additions, edits and deletions. - Locked periods reject holiday additions, edits, moves and deletions. - A locked timesheet cannot be submitted again until it is unlocked. - Administrators can unlock a timesheet for correction. - Unlocking requires a reason and is recorded in the Audit Log. - Existing successful submissions are locked by the migration. Database - Run migration_v2.7.3.sql. Version 2.7.2 ------------- Navigation Restructure & Account Authentication Navigation - Shifts is now My Work. - Settings is now My Account. - Holidays / Time Off moved under My Account. - My Account includes Account / Profile, Holidays and Add Holiday / Time Off. - Driver-facing Assets menu removed. - Administration is grouped into Company, Assets, Users and System. - Company: Locations, Location Categories, Divisions. - Assets: Vehicles, Trailers, Defect Categories. - Users: Users & Permissions. - System: Email / SMTP, Audit Log. - Vehicle/trailer/location administration is administrator-only; drivers can still select/search assets inside operational forms. Authentication - New accounts use SMTP activation emails rather than administrator-supplied passwords. - Activation link confirms the email address and lets the user choose their own password. - Activation tokens are hashed in the database and expire after 72 hours. - Administrators can resend an activation email. - Existing accounts are marked verified during migration. - Optional authenticator-app two-factor authentication (TOTP) added under My Account. - Login now requests a 6-digit authenticator code when 2FA is enabled. - WebAuthn/passkey/biometric login is intentionally deferred to a later release. Database - Run migration_v2.7.2.sql. Version 2.7.1 ------------- Permissions UI & Default Driver Access Changed - All application switch controls now use a consistent rounded slider style. - Only the switch itself toggles a switch; surrounding labels/rows no longer toggle it. - New Driver accounts default to all standard modules enabled except Assets, Defects and Settings. - Administrator role selection enables all modules by default. Improved - Restricted module access now returns the user to the application and displays a friendly Access Restricted modal instead of a plain full-page permission message. - Server-side permission enforcement remains in place for direct URL access. - Users & Permissions table now shows User Name, Role, Status and shortened Last Log-on. - Removed email/User ID clutter from the main Users table. - Renamed Support action to Help. Database - Run migration_v2.7.1.sql to update the Driver role defaults. Version 2.7.0b -------------- User Permission Layout Hotfix Changed - Add User and Edit User module permissions now use compact one-line rows. - Replaced oversized permission cards with right-aligned toggle switches. - Removed repeated "Module access" text from every permission. - Reduced vertical spacing so more permissions are visible at once on mobile. - Add User and Edit User use the same permission layout. Database - No database migration required from v2.7.0a. Version 2.7.0a -------------- User Administration Modal Hotfix Fixed - Add User modal now uses the full mobile viewport and scrolls correctly. - Edit User modal uses the same mobile-safe behaviour. - Module Access controls remain reachable on small screens. - Modal footer remains visible/reachable while the form body scrolls independently. - Safe-area padding is retained for mobile devices. Database - No database migration required from v2.7.0. Version 2.7.0 ------------- Users, Roles, Permissions & Administrator Support Access Added - Administration > Users & Permissions. - Create user accounts with Administrator or Driver roles. - Active, Suspended and Inactive account states. - Last-login tracking. - Temporary-password creation and administrator password reset. - Database-backed permissions with role defaults and per-user overrides. - Module access controls for Dashboard, Shifts, Holidays, Timesheets, Calendar, Statistics, Assets, Defects, Compliance, Settings and Pay/Earnings. - Server-side permission enforcement in addition to hiding unavailable navigation. - Administrator Support Mode for opening another driver's operational data. - Persistent banner clearly identifies when an administrator is working on behalf of another user. - Support-mode changes retain the target driver's data ownership while Audit Log records the administrator as actor. Security / Behaviour - Public self-registration is not enabled. - Normal drivers remain restricted to their own data. - Administrators retain full system access and can support any user. - Administrators cannot accidentally suspend or remove administrator access from their own current account. Database - Run migration_v2.7.0.sql after uploading the application files. Next - Invitation emails, first-login password setup and guided onboarding are planned for a later v2.7.x release. Version 2.6.10a --------------- Defect Markup, Holiday Balance & Shift Continuity Hotfix Fixed - Removed stray HTML characters rendered beneath the Defect Category dropdown on Edit Shift. - Edit Shift now preserves the defect's currently selected category in the dropdown. - Dashboard Holiday Remaining now reads the driver's current saved holiday entitlement instead of accidentally reusing the preceding maintenance query result. - Holidays page uses the current saved entitlement value directly when calculating remaining leave. Changed - Add Shift Start Location automatically defaults to the most recent shift's Night Out location. - If the previous shift had no Night Out, Start Location falls back to its effective end/delivery location, then its start location. - The suggested Start Location remains fully editable by the driver. Database - No database migration required from v2.6.10. Version 2.6.10 -------------- Carry-Over Destination & Defect Management Fixed - Carried-over loads now retain their intended delivery location. - Deliver This Load on the following shift pre-populates both collection and delivery locations. - Vehicle/trailer live-search results now render on an opaque foreground panel with improved stacking on mobile. Changed - Defect Category is now a standard dropdown rather than live search. - Defect Category dropdowns are populated from active Administration > Defect Categories in configured display order. - Shift-entry defect categories use the same dropdown reference data. Added - Clear Manage action for defects on the Defects page. - Defect status can be updated to Reported, Awaiting Repair, Ongoing / Monitoring, Rectified or Asset Changed. - Action Taken / Rectification Notes can be entered while updating status. - Marking a defect Rectified records the rectification timestamp automatically. - The same Manage Defect workflow is available when viewing a shift. - Defect status changes from Shift View and the Defects page update the same underlying record. Database - No schema migration required from v2.6.9. Version 2.6.9 ------------- Edit Shift Carry-Over Delivery Hotfix Fixed - Carried-over vehicle loads shown on Edit Shift are now actionable rather than read-only. - An undelivered carried-over load has the same "Deliver This Load" action available on Add Shift. - Selecting a carried-over load creates a Delivered From Previous Load movement on the edited shift while retaining the original carryover_source_id linkage. - Loads already delivered on the edited shift remain clearly marked and cannot be added a second time. - Carry-over action buttons disable after selection to prevent accidental duplicate movement rows. Database - No database migration required from v2.6.8. Version 2.6.8 ------------- Defect Usability, Mobile Modals & Carry-Over Visibility Added - Searchable Related Shift selector on Add Defect, showing shift date/time, vehicle and route. - Searchable Vehicle/Trailer asset references backed by the user's asset tables. - Searchable Defect Categories. - Administration > Defect Categories with Add/Edit/Order/Active controls. - Edit Shift now shows vehicles carried over into the shift from earlier shifts. Changed - Vehicle asset search also matches fleet number. - Defect categories used during shift entry use the same searchable Administration reference data. - All application modals receive a shared mobile-safe scrollable layout. Mobile - Modal body scrolls independently while header/footer controls remain reachable. - On small screens modals use the full available device viewport, including dynamic viewport height. Database - Run migration_v2.6.8.sql to create admin-managed Defect Categories. Version 2.6.7 ------------- Daily Rest, Holidays Navigation & Defects Fixed - Daily Rest History uses the actual previous shift end and actual next recorded shift start. - The 24-hour compliance boundary is no longer displayed as a next-shift start. Changed - Holidays is now a dropdown with View Holidays and Add Holiday. - Add Holiday has been removed from the Shifts dropdown. Added - Add defects directly from the Defects page. - Direct and shift-recorded defects use the same defect records. - Direct defects may optionally be linked to a shift. - Existing Defects editing remains available. Database - Run migration_v2.6.7.sql. Version 2.6.6 ------------- Daily Rest & Holiday Booking Patch Fixed - Last Daily Rest now uses the actual previous shift finish and next shift start. - Rest duration displays exact hours/minutes rather than a rounded regulatory boundary. Added - Holidays top-level navigation entry. - Grouped Holiday Bookings. - Consecutive working-day leave is displayed as one booking. - Edit dates/type/hours/notes for a whole booking from one modal. - Delete an entire booking in one action. - Existing holiday rows are grouped during migration. Database - Run the separately supplied migration_v2.6.6.sql after uploading application files. Version 2.6.5 ------------- Usability & Data Accuracy Fixed - Improved spacing around the timesheet PDF logo panel. - Shift End Location now uses Night Out location when one is recorded. - Dashboard weekly distance follows the user's configured distance unit. - Last Daily Rest is calculated from the most recent completed inter-shift rest period. - Location edit modal remains scrollable on mobile with Save reachable. Added - Start and finish times on shift cards. - Holiday calendar view. - Holiday records can be edited, moved, or deleted. - Add Holiday supports selecting individual calendar dates as well as Start Date + Number of Days. Database - No database migration required from v2.6.4. Version 2.6.4 ------------- Payroll PDF Layout Polish Changed - Replaced the text-only logo treatment with the real WS Transportation logo embedded at its correct aspect ratio. - Reworked PDF table headings with explicit wrapping and accurate horizontal/vertical centring. - Improved column widths and spacing to better match the payroll form. - Long Explanation and Night Out values can wrap onto two lines instead of being crudely truncated. - Refined driver information, sign-off and WST Approval sections. - Generate PDF and Send to Payroll now use the same server-side PDF template, so the preview/download and emailed attachment remain consistent. Database - No database migration required from v2.6.3. Version 2.6.3 ------------- PDF Timesheet Submission Added - Payroll timesheets are now generated server-side as a real PDF attachment when using Send to Payroll. - PDF uses an A4 landscape layout with driver, division, depot, weekly payroll rows, sign-off and company mobile details. Changed - SMTP submission attachment changed from printable HTML to application/pdf. - Email body now identifies the attachment as a PDF. - Existing SMTP sender identity, Reply-To, submission history and audit behaviour are retained. Database - No database migration required from v2.6.2b. Version 2.6.2b -------------- SMTP Preview / Navigation Hotfix Fixed - Corrected the SMTP Administration preview so user identity is resolved on every page load, not only after sending a test email. - The resolved personal email address now displays on its own line for clear mobile visibility. - Added robust navbar dropdown initialisation and a fallback handler if the Bootstrap JavaScript bundle is unavailable. - Increased navbar dropdown stacking priority so menus remain visible above Administration cards on mobile. Database - No database migration required from v2.6.2a. Version 2.6.2a -------------- SMTP User Identity Hotfix Fixed - SMTP preview and timesheet submission now use one shared user-identity lookup. - Personal email is read directly from the logged-in users record, the same record edited by Personal Details. - SMTP Administration now displays the logged-in user ID and an explicit diagnostic if no valid email is stored. - Timesheet submission stops with a clear error if Reply-To is enabled but the logged-in user has no valid personal email. Database - No database migration required from v2.6.2. Version 2.6.2 ------------- SMTP Identity / Reply-To Refinement Fixed - Timesheet From name now always resolves from the logged-in driver's Personal Details. - Timesheet sender is formatted as "Driver Name via HGV Driver Log". - Reply-To now explicitly resolves from the logged-in user's personal email address when enabled. - Reply-To includes the driver's display name as well as their personal email address. Added - SMTP Administration page now shows the resolved personal Reply-To address for the current account. - SMTP Administration page now shows a live Timesheet sender preview. - Timesheet submission audit details now include sender and Reply-To information. Database - No database migration required from v2.6.1. Version 2.6.1 ------------- SMTP & Payroll Submission Added - Admin-only Email / SMTP configuration module. - Dedicated sender defaults to hgvlog@techresolve.co.uk. - Configurable SMTP host, port, TLS/SSL/none, username and password. - Configurable From Address, From Name template and payroll recipient. - Optional Reply-To using the submitting driver's email address. - SMTP connection test facility. - Send to Payroll button on Timesheet Review. - Timesheet sent as a printable HTML attachment using the edited review values. - Successful and failed submission records. - Submitted status shown in Timesheet History. - SMTP configuration and timesheet submissions are included in the Audit Log. Security / Behaviour - SMTP password is never displayed back in the browser. - Timesheets are only marked Submitted after the SMTP server accepts the message. - Failed SMTP attempts are recorded separately and do not mark a week as submitted. Database - Run the separately supplied migration_v2.6.1.sql after uploading the application files. Version 2.6.0 ------------- Administration Foundation Added - Administrator and Driver account roles. - Administration menu visible only to administrator accounts. - Administration dashboard. - Database-managed Location Categories. - Database-managed Divisions. - Add/Edit/Activate/Deactivate controls for Location Categories and Divisions. - Renaming a Location Category updates existing saved locations. - Renaming a Division updates existing user division settings. - Audit Log foundation recording administrative reference-data changes. Changed - Location forms now obtain categories from Administration rather than hard-coded PHP values. - Employment Division choices now come from Administration. - Existing accounts are promoted to Administrator during migration so existing installations are not locked out. - New accounts default to Driver. Deferred - SMTP / timesheet submission is intentionally reserved for the next 2.6.x release. - User invitations and detailed driver permissions will build on this role framework. Database - Run the separately supplied migration_v2.6.0.sql after uploading the v2.6.0 application files. Version 2.5.5 ------------- Fixed - Calendar Month and Week views render correctly again. - Add Holiday Notes layout corrected. Added - Delete Vehicle/Trailer maintenance records with automatic recalculation. - Multi-day holiday entry with automatic working-day Calendar records. - Services location category. - End Location on shift card summaries. Changed - Meal allowance now applies only to shifts longer than six hours. - Removed redundant Overnight wording from shift forms; Night Out remains available. Database - No database migration required from v2.5.4. Next - SMTP and timesheet submission planned for v2.6.0. Version 2.5.4 ------------- Fixed - Corrected PDO parameter binding when saving MOT / Prep maintenance records for both vehicles and trailers. Added - Maintenance history records can now be edited from Vehicle and Trailer detail pages. - Editing a maintenance record recalculates the asset's current Last Service, Last MOT and next due predictions from the full maintenance history. - Service/MOT record notes, type and date can all be amended. Database - No database migration is required from v2.5.3B. Version 2.5.3B -------------- Fixed - Edit Location modal now remains fully scrollable on mobile with the Save button reachable. Added - Dedicated Holidays page with current and next holiday-year balances. - Holiday years run from 1 December to 30 November. - Dashboard Holiday Remaining card is clickable. - Vehicle and Trailer detail pages now have Back and Edit controls. - Service and MOT are shown in separate maintenance cards. - Asset maintenance history records actual Service and MOT / Prep events. - Last Service Date predicts the next service week on the fixed nine-week cycle. - Last MOT Date predicts the next annual MOT date/week. - MOT / Prep resets the nine-week service cycle. Database - Run the separately supplied migration_v2.5.3B.sql after uploading application files. Next - SMTP / timesheet submission will be developed as v2.6.0. Version 2.5.3A -------------- Changed - Employment settings reorganised into Personal / Account Details and Employment Details. - Company Issued Mobile moved into Personal / Account Details with first name, last name and email. - Division moved directly below Company under Employment Details. - Removed Company Defaults section. - Removed First Registration Date from vehicle maintenance. - Vehicle and trailer servicing now follows the fleet service-week system. - Both vehicles and trailers use a fixed nine-week service cycle. - Service and MOT / Prep both reset the nine-week maintenance cycle. Added - Last Maintenance Year, Service Week and Maintenance Type for vehicles and trailers. - ISO week rollover handling when the next nine-week service falls into a new year. - Clickable Dashboard asset-maintenance warning. - Asset Maintenance drill-down page showing what is due and linking to the relevant asset. - Existing full defect history remains available from vehicle/trailer detail pages. Database - Run the separately supplied migration_v2.5.3A.sql after uploading the application files. Version 2.5.3 ------------- Changed - Home Depot renamed Home Branch and only Branch-category locations can be selected. - Company defaults no longer duplicate the Depot field. - Vehicle/trailer maintenance now records actual Last Service and Last MOT dates and derives next due dates. - Holiday pay uses a rolling 52-week average: total gross pay divided by worked hours. Added - Vehicle and trailer defect-history views including rectified defects. - Annual holiday entitlement setting, Dashboard balance and Calendar holiday visibility. Database - Run the separately supplied migration_v2.5.3.sql. Version 2.5.2 ------------- Changed - Settings simplified to two tabs: Employment and Pay. - Payroll identity fields are now included under Employment. - Holiday pay fields are now included under Pay. - Settings tabs use the HGV Driver Log navy/grey palette instead of default link styling. - Settings tabs are sized and styled for easier use on mobile devices. - Add Holiday removed from Add Shift and moved to its own Work menu item/page. Added - Vehicle Service Interval selector with 6-week and 9-week options. - Vehicle First Registration Date. - When MOT Due is blank, the system derives the next annual MOT anniversary from First Registration Date. - Vehicles under one year old therefore do not show an MOT warning until the first anniversary approaches. Database - Run the separately supplied migration_v2.5.2.sql once after uploading the application files. - Adds vehicles.service_interval_weeks and vehicles.first_registration_date. Version 2.5.1 ------------- Added - Calendar now shows shift earnings and total distance. - Configurable default daily unpaid break, auto-populated on Add Shift. - Vehicle and trailer Next Service and MOT due dates. - Seven-day service/MOT warnings and Dashboard Asset Maintenance alerts. - Paid and unpaid holiday day records, available from Add Shift via Add Holiday Instead. - Configurable paid holiday hours and manual holiday hourly rate. - Holiday records appear on the Calendar and weekly Timesheet review. - Settings are organised into horizontal Employment, Payroll, Pay and Holiday tabs with one Save Settings action. Changed - Vehicle management now follows the Trailers pattern with an Add Vehicle modal. - Vehicle list uses a mobile card layout on smaller displays. - Timesheet date/day typography reduced to fit the payroll form more cleanly. Notes - Holiday hourly rate remains manual until the exact payroll averaging formula is confirmed. - Expenses and SMTP payroll submission remain planned for a later release. Database - Run the separately supplied migration_v2.5.1.sql once after uploading the application files. Version 2.5.0 ------------- Added - Driver Calendar with Month and Week views. - Calendar shifts colour coded: green standard, amber duty over 13h, blue driving over 9h, purple when both apply. - Calendar entries link directly to Shift Details. - Defect counts shown on calendar shift entries. - Timesheets page now lists working weeks generated from recorded shifts. - Current week marked In Progress; previous weeks marked Complete. - Timesheet history shows shift count, night-outs and week range. Changed - Timesheet weekday names abbreviated to Sun/Mon/Tue/Wed/Thu/Fri/Sat. - Navigation now includes Calendar. Deferred - Expenses and SMTP payroll submission are intentionally deferred to v2.5.1. Database - No database migration required from v2.4.8. Version 2.4.8 ------------- Added - Vehicles can now be edited directly from the Vehicles page. - Add Vehicle now includes Fleet Number. - Edit Vehicle supports registration, fleet number, make, model, notes and active/inactive status. - Vehicle edits preserve all historical shift relationships. - Dashboard Quick Actions now show contextual counts for Locations, open Defects and shifts recorded this week. - Open Defects count is visually highlighted when greater than zero. Changed - Vehicle list now displays Fleet Number. - Shift Details defect section now uses a stronger warning treatment. - Open defects use a red attention treatment; rectified/asset-changed defects use a resolved green treatment. Database - No new database migration is required from v2.4.7. - This release expects the vehicles.fleet_number column introduced by migration_v2.4.7.sql. Version 2.4.7 ------------- Added - Defect icon/count indicators to Dashboard Recent Shifts, Shift History and Statistics shift breakdown. - Defects page now switches to individual cards on smaller displays. - Locations page now switches to individual cards on smaller displays. - Division is now selected from Curtains, Flats, High & Heavy, Hi-Ab or Plant. - High & Heavy remains the default payroll division. - Vehicles now support an optional fleet number (for example 1512). Fixed - Add Shift calculated Shift Distance now displays the user's configured km/mi unit rather than a hardcoded miles label. Changed - Timesheet Lead In and Lead Out fields now pre-populate from the recorded shift start and finish times. - Timesheet Lead In and Lead Out remain editable before payroll output is generated. Database - Requires migration_v2.4.7.sql when upgrading from v2.4.6. - Adds vehicles.fleet_number. Version 2.4.6 ------------- Fixed - Editing an older shift no longer makes an already-delivered carry-over load reappear as still on the trailer. - Existing movement IDs are now preserved when a shift is edited. - Later delivered-carryover movements therefore keep their link to the original carried load. - Newly added movements still receive new movement IDs, while removed movements are deleted cleanly. Database - No database migration required from v2.4.5. Version 2.4.5 ------------- Changed - Tachograph total fields now use native time-picker controls on supported browsers/devices. - Tachograph duration values continue to save in HH:MM format. Added - Defects can now be edited directly from the Defects page. - Edit Defect supports asset type/reference, category, description, action taken and status. - Vehicle/trailer asset reference retains live-search support while editing. Fixed - Deliver This Load now inserts the carried-over delivery movement before the existing blank movement row on Add Shift. Database - No database migration required from v2.4.4. Version 2.4.4 ------------- Fixed - Edit Shift no longer produces a blank screen after saving. - Successful edits now refresh the edited shift in place and display the success message. - Edit Shift deletion uses a safe client-side redirect after deletion because the page header has already been rendered. Changed - Removed the year from the Timesheet Date column heading. - Timesheet column headings are now more strongly bolded. - Days of the week are now bold in both the preview and printable payroll sheet. Database - No database migration required from v2.4.3. Version 2.4.3 ------------- Changed - Timesheet preview rebuilt as a fixed A4-landscape style document rather than a full-width web table. - Reduced row heights and excess whitespace throughout the payroll form. - Driver/division/depot strip and payroll table proportions now more closely match the supplied original. - WS Transportation logo now sits on a navy corporate panel so the supplied white wordmark remains readable. - Preview and print layouts now use matching dimensions and spacing. - Added the original form version line: Version 2.0 (Nov-20). Database - No database migration required from v2.4.2. Version 2.4.2 ------------- Changed - Replaced the extracted WS Transportation logo with the user-supplied company website logo. - Timesheet preview proportions tightened to more closely match the supplied payroll form. - Printable A4 landscape timesheet layout refined for closer visual fidelity. - Lead In and Lead Out fields are now blank by default instead of copying shift start/end times. - Payroll guidance text clarified to reflect that Lead In/Lead Out are only completed when required. Database - No database migration required from v2.4.1. Version 2.4.1 ------------- Fixed - Timesheets page failed after the application header because it queried a non-existent users.name column. - Driver name now correctly uses users.first_name + users.last_name. - The same fix has been applied to the printable/PDF timesheet output. - Payroll preference reads now fall back safely to defaults if a setting is unavailable. Database - No database migration required from v2.4.0. Version 2.4.0 ------------- Added - Payroll Timesheets page with week selector and editable preview. - WS Transportation logo reproduced from the supplied payroll timesheet. - Payroll layout mirrors the supplied PAYE Driver - Adjustment & Bonus Request form. - Sunday-to-Saturday rows with Lead In, Lead Out, explanation, London Tip, Night Tip and Night Out columns. - London Tip and Night Tip retained but blank by default. - Night-out locations populate from recorded shifts. - Division, Depot and Company Issued Mobile settings. - Print/PDF payroll output in A4 landscape format. Notes - Lead In/Lead Out default to recorded shift start/end times and remain editable because the static shift model does not record tachograph mode-change timestamps. - Explanations are entered on the weekly preview when required. Database - No database migration required from v2.3.6; new payroll preferences use the existing settings table. Version 2.3.6 ------------- Changed - Compliance disclosure rewritten to match the current static shift-entry model. - Removed obsolete reference to timeline/other-work entries. - Compliance page now clearly distinguishes legal limits from shift-based estimates. - Disclosure now documents limitations around split rest, multi-manning, ferry/train rules, other employment and activity not recorded in HGV Driver Log. - Statistics Shift & Earnings Breakdown redesigned using spacious desktop summary rows. - Statistics mobile breakdown now uses dedicated cards. - Statistics now respects the user's km/mi distance-unit preference throughout. Database - No database migration required from v2.3.5. Version 2.3.5 ------------- Fixed - Footer now remains at the bottom of the viewport on short pages. - Application shell now uses a full-height flex layout. - Footer remains part of the normal document flow and never overlays page content. Database - No database migration required from v2.3.4. Version 2.3.4 ------------- Added - Footer copyright credit for Tony Chambers. - Dashboard Quick Actions for Add Shift, Locations, Defects and Shift History. - Standardised page headers with section labels and descriptions. - Improved empty states with icons, explanations and primary actions. - Location category badges with clearer visual differentiation. Changed - Settings page grouped more clearly with stronger section headings. - Mobile spacing and footer presentation refined. - Action styling remains standardised: primary/navy for View/primary actions, grey for Edit, red for Delete. Database - No database migration required from v2.3.3. Version 2.3.3 ------------- Fixed - Corrected Shift History rendering failure introduced in v2.3.2. - Replaced the dashboard-only hm() helper with the Shift History page's fmtMinutes() helper. - Mobile Shift History now renders correctly. - Distance unit is loaded explicitly from the user's settings. Changed - Rebuilt the spacious Shift History desktop and mobile layouts from the stable v2.3.1 page. - Retained the existing View and Edit actions without adding unsupported delete handling. Database - No database migration required from v2.3.1 or v2.3.2. Version 2.3.1 ------------- Changed - Dashboard Recent Shifts redesigned for better readability. - Desktop view now uses spacious two-line summary rows instead of a condensed table. - Mobile view now uses dedicated shift summary cards. - Dashboard now shows the five most recent shifts. - Added View All Shifts links above and below the Recent Shifts section. - Recent shift summaries now emphasise duty time, driving, distance, vehicles moved, truck, trailer and start location. Database - No database migration required from v2.3.0. Version 2.3.0 ------------- Changed - Complete visual refresh with square corners throughout the app. - Header/navigation changed to a deeper dark navy theme. - Footer changed to a neutral grey bar with clearer version display. - Cards, tables, forms, modals, alerts and buttons now use a consistent visual system. - Dashboard section headings improved with stronger hierarchy. - Mobile dropdown navigation, spacing and table density refined. - Primary action colour unified around the navy theme. - Form focus states and table headers improved for clarity. - Overall page spacing tightened for a cleaner, more professional appearance. Database - No database migration required from v2.2.6. Version 2.2.6 ------------- Added - Parking location category. - Parking locations hide contact, phone, opening and delivery-time fields. - Parking locations keep address/postcode, What3words, latitude/longitude and notes. - Parking-specific field visibility works on Add, Edit and Location Details forms. Changed - Saving a Parking location clears customer-specific contact/opening/delivery-time values. Database - No database migration required from v2.2.5. Version 2.2.5 ------------- Added - Application version number in the footer. - Add Location directly from the Locations page. - Full Edit Location form directly from the Locations page. - Delete Location action with safe usage checks. - Location Category field. - Categories include Branch, Customer, Port / Terminal, Dealer, Workshop, Storage and Other. - Location category appears in the Locations table and live search. Changed - Navigation reorganised into categorised dropdown menus for Shifts, Assets and Safety. - Locations cannot be deleted while referenced by a shift, movement or Home Branch setting. Database - Requires migration_v2.2.5.sql when upgrading from v2.2.4. Version 2.2.4 ------------- Added - Home Branch setting linked to saved Locations. - First recorded shift of each week pre-fills Start Location from Home Branch. - Defects now have an explicit Asset Reference field. - Defect Asset Reference auto-fills from the selected truck or trailer. - Defect Asset Reference can still be changed manually. - Live search added for truck registrations and trailer numbers in defect rows. Database - Requires migration_v2.2.4.sql when upgrading from v2.2.3. Version 2.2.3 ------------- Added - Full movement editing on Edit Shift. - Existing movements can now change movement type, collection, delivery, vehicle quantity, and notes. - Carry-over movement linkage is preserved when editing. - Movements can be added or removed directly from Edit Shift. Changed - Edit Shift movement editor now matches the Add Shift movement workflow. Database - No database migration required from v2.2.2. Version 2.2.2 ------------- Added - User distance-unit preference: kilometres or miles. - Reusable Trailers table and Trailers page. - Default Trailer user setting. - Trailer selection on Add/Edit Shift. - Carry-over loads for collections not delivered on the same shift. - Open carried-over loads are shown on Add Shift and can be delivered on a later shift. - Defect entry on Add/Edit Shift. - Defects can be linked to the truck, trailer, or another asset. - Defect statuses include Reported, Awaiting Repair, Monitor / Next Service, Rectified, and Asset Changed. - Dedicated Defects page. - Shift Details now shows trailer and recorded defects. Changed - Mileage/distance labels now use the user's configured distance unit. - Existing stored odometer values are not converted. Database - Requires migration_v2.2.2.sql when upgrading from v2.2.1. Version 2.2.1 ------------- Added - Default Vehicle setting for each user. - Add Shift automatically selects the user's default vehicle. - Start Mileage is automatically populated from that vehicle's most recent recorded End Mileage. - Changing the selected vehicle reloads the latest mileage for that vehicle. Database - Requires migration_v2.2.1.sql when upgrading from v2.2. Version 2.2 ----------- - Expanded saved location records. - Added address and postcode details. - Added contact name and phone number. - Added opening time. - Added earliest and latest delivery times. - Added What3words reference. - Added optional latitude and longitude for accurate map links. - Added driver/location notes. - Added dedicated Location Details page. - Added Google Maps link using coordinates or address/postcode. - Location Details includes delivery history. - Added CHANGELOG.txt to release packages. Version 2.1.2 ------------- - Added Edit Location feature. - Added duplicate-name protection. Version 2.1.1 ------------- - Added Locations navigation link. - Fixed Dashboard Recent Shifts layout. Version 2.1 ----------- - Added Locations page with alphabetical list and live search. - Added delivery counts and vehicles-delivered statistics. - Added per-location delivery history. Version 2.0 ----------- - Dashboard polish and section grouping. - Added dedicated Shift Details page. - Separated View and Edit shift actions. Version 1.9.4 ------------- - Fixed Company live-search endpoint. Version 1.9.3 ------------- - Added Company live search. Version 1.9.2 ------------- - Fixed Company Settings form submission. Version 1.9.1 ------------- - Moved Company from shifts to user/account settings. Version 1.9 ----------- - Added Company support. - Changed tachograph duration fields to single HH:MM inputs. Version 1.8 ----------- - Added Statistics & Reports section.