Fixes:
- Fix bug that can cause a period of Dispatch timeouts when the server is told that a worker signed out more times than they signed in.
- Fix for logging issue that could cause extremely high CPU usage.
- Increased the level of detail reported when errors are logged to the server in Dispatch.
- Fixed Dispatch UI panel crash after dragging an unassigned job to a route
- Standardized all push notifications to only send notifications for workers with read own/all jobs privilege and a valid reason to know about the job being edited.
- Let workers' apps know about jobs that are updated to remove them from responsibility for the job with push notifications.

Features:
- Choose between a docked or inline and expandable unassigned tray in Dispatch panel using a setting
- In edit mode pick unassigned jobs into your routes directly from their map markers
- Job map marker right click menus now include a "Show Only This" helper that will let operators quickly find the job in the panel using a filter.
- Job cards now also include lateness icons to more clearly show an overview of which jobs have started running behind schedule.

Fixes:
- Fix for scrollbar issues in unassigned panel
- Auto-dispatch feature now works immediately for any future time rather than starting on the next calendar day
- Fixed issue caused by custom fields lists with no options.
- Fix for Automation - Automatic dispatch - Time setting not respecting the timezone of the application upon saving
- Sort worker cards in Dispatch panel using new natural sort strategy.

Dispatch build 2607 Released: 2018-12-13

Highlights

All of our changes this month are about making Dispatch easier to use for new customers and improving the core workflow for everyone. We added inline help text and changed a lot of our labelling so that you can get started without feeling like you need to read a manual. The new drag and drop card workflow makes it easy for operators to assign jobs and routes. Operators receive guidance to get workers online and completing jobs with the Dispatch app. More powerful search and a clutter-free panel ensures operators aren't wasting time looking for things instead of managing the workforce. Read our full notes below.

Features

User interface

Redesigned job cards - job progress displayed at top, full job info in main body. Handles make 'drag and drop' between workers simple.
One card route display - open the card to see the full details. 'Drag and drop' route cards between workers. Hovering now brings up a summary panel with stats on the jobs inside
Unassigned jobs tray in Dispatch panel - always shows at the top for quick job distribution. Can be collapsed to save screen space
Onboard your workers quickly. An icon will now appear next to workers that do not have the app and let you invite them via SMS to download it and connect

Workflow

Our CSV import feature now offers line by line feedback on import errors and the option to export only the failed lines to a new CSV file for fast turnaround on fixes
Workers can now discuss their jobs with operators by adding comments to their jobs at any time in the app
A new automation window now contains the previously available "autocomplete jobs" feature and a new feature called "automatic dispatch."
Operators can configure a time of day where all jobs that have been assigned to a worker but not yet dispatched, will be dispatched to their worker

Usability

The Dispatch panel now guides you through getting started step by step with inline help text. It will walk you through creating workers all the way through to dispatching jobs to a worker's app
The search filter now works on any text in a job or in a route (e.g. description, location, ID and worker name). It even supports special characters in the filter
Dispatch app errors from your workers are now logged to your own GpsGate server log files
You are now able to export any worker's job list as a CSV file for use in your own systems

Improvements

Workflow

Jobs scheduled in the future will no longer incorrectly autocomplete. A new setting defaults to only allowing completion of jobs that are scheduled for within an hour of the location visit.
A new setting allows operators to configure whether or not completed jobs should show as map markers.
Worker marker-pins now save and load with the active workspace.
Real-time push of updated job comments to workers.

Usability

Logging out of the Dispatch app will now not clear the server setting. You can optionally clear this whilst you are logged out
Newly created jobs now appear immediately on the map if the worker is selected or marker-pinned.
Select the default add button behavior in the Dispatch panel. Choose between job, route and schedule.

Technical

Job synchronization with Garmin devices has been made much more robust.
The performance and resource usage of Dispatch event expression scripts has been significantly improved.
Rewrite of the Dispatch app networking code, eliminating some reported data synchronisation issues

Developer

Send custom push notifications to your workers' apps with our new scripting 'notify worker' function.
Check if a worker has a recently active Dispatch app with our new scripting 'has active app' function.
Our point to point ETA feature is now available in Dispatch scripting
When creating a job with scripting, a scheduled date is now optional just like it is in the Dispatch panel.

Fixes

Fix for issue when dragging unassigned jobs into an unsaved route caused an error when the route was first saved.
Fix for bug that could cause the last worker in the list to be selected regardless of user click in Assign To field.
Fix for Assign To field in jobs and routes not sorting workers by distance correctly when a worker had never sent location information to the server.
Fix for very long words overflowing the message panel in the comments field.
Fix for jobs with no scheduled date appearing on the worker stats for 'today' even if they were completed on a different day in the past week.
Fix for custom field name labels sometimes failing to load the first time a job was opened for editing.
Fix for excessive CPU utilization on Firefox.
Fix for scrollbar not appearing in unassigned panel when the panel overflowed its parent window
Fix for bug where partial routes could be returned when searching on route details
Fix for no error feedback given when trying to import a route job with no scheduled time
Fix for route card sometimes showing an incorrect start/end time
Fix for invalid routes returned from routing service causing the Edit route window to stall
Fix for date picker showing null dates in certain locales
Fix for bug where paging did not activate in some cases when there were more jobs than could be displayed on a worker

Fixes:
- Do not allow schedule templates to return when using GetXById calls in scripting
- Fix for infinite loading bar in some cases after a route is dispatched and then deleted whilst still dispatched
- Fix for Jobs sometimes not appearing in Dispatch app despite having correct privileges
- Fix for worker sometimes not being correctly assigned to a job when they are added to an existing route with drag and drop (this also fixes the side effect of certain jobs in a route not appearing in worker apps as expected)
- Fixed a bug that could cause disappearing unassigned jobs if they were dragged into an unsaved route and then immediately save/dispatched to a worker
- Fix another edge case cause of infinite loadbar
- Fixed a bug that could cause the job panel and stats screen to get out of sync

Dispatch v5.0.0.2222 Released: 2018-10-18

Fixes:
- POI ID property is now visible in reporting when jobs are created from POIs
- Fixed bug causing push notifications to sometimes be sent for jobs that were not visible to a worker

Dispatch v5.0.0.2141 Released: 2018-09-20

Features:
- More robust text search for jobs available in Dispatch panel. Searching for locations, job descriptions and worker names should now give you much better results
- Added "Extract to schedule" option on right clicking a route, allowing already created routes to be converted to reoccurring schedules
- Scheduled routes may now be created pre-assigned to workers
- Worker cards now automatically expand to show all jobs if there aren't very large quantities of jobs on the worker. The threshold for this is configurable in the Dispatch settings menu
- Assigning a schedule to a worker will now cause all existing and future routes on this schedule to be assigned to the worker
- A "Create schedule" button is now available in the schedule list for convenience
- Loading bar and state shown on Dispatch panel until jobs and routes for the day are finished downloading from the server to give a clear indication of what a day contains
- Jobs now display their job description instead of location information on their map marker
- A route will now be created for "today" when saving a schedule if today is one of the days of the week now included in the schedule
- Deleted and 5 week and older historical Routes now included in Cleanup for Dispatch plugin actions
- Large optimisations to the speed of loading jobs on "today" page
- Jobs and routes are now sorted in the order in which they were created if there is no scheduled time available for them

Fixes:
- Bug fix for newly created routes without any custom fields sometimes incorrectly showing the custom fields section in the Edit Route window
- Bug fix for deleted routes from a schedule being re-created when revisiting the day in the Dispatch panel
- Bug fix for an edited, future scheduled route containing a media custom field failing to re-save
- Bug fix for schedules sometimes not loading into schedule window when schedule window is opened quickly after a service start
- Bug fix for job count in worker panel including jobs that were since moved off the day until the day was reloaded
- Bug fix for routes from schedule sometimes taking an extremely long time to load when visiting a future date
- Bug fix for deleted schedule still appearing in schedule list until list is reopened
- Removal of "pin start only" route optimisation strategy due to lack of use cases and misleading results
- "Dispatched" state now not available for jobs when creating a new schedule as it can cause a lot of un-intuitive workflow side effects for operators
- Deleting a schedule will now remove all future routes, but leave all historical and in-progress routes intact for reporting purposes

Dispatch v5.0.0.2007 Released: 2018-08-16

Features
- Custom fields now accessible on Jobs and Routes in Dispatch scripting.
- Now both pay as you go and legacy license holders are migrated to our new route optimization service. Route path drawing and optimization will be much faster and more reliable.
- Localization support added to Dispatch app.

Fixes:
- Jobs in Routes may now be edited no matter which state they are currently in.
- Dispatching Jobs and Routes to Garmin devices will be less affected by network conditions.
- Schedules now copy custom field media files to their child routes.
- Removal of VC++ dependency from Dispatch 5

Dispatch v4.0.0.5891 Released: 2017-10-31
Developers:
- Fixed an issue in Dispatch scripting causing dispatch.getJob(id) to fail in some cases.
- Fixed an issue in Dispatch scripting causing dispatch.getJob(id) to throw an error if no job with the matching ID was present in the system.

Dispatch v4.0.0.5872 Released: 2017-10-19
Developers:
- Changes to internal implementation of GetAssignableWorkers to prevent performance problems on servers with many thousands of users.

Dispatch v4.0.0.5817 Released: 2017-09-14
Developer:
- Sort GetAssignableWorkers results by nearest workers to submitted job.
- Allow restricting of GetAssignableWorkers results to a specific number of returned workers. Use this parameter to improve performance on larger servers.
- Increase performance of GetAssignableWorkers calls by reducing the amount of needed database calls even on larger result sets.

Dispatch v4.0.0.5743 Released: 2017-08-15
Features:
- CSV import in the Dispatch plugin now supports the "duration" column in CSV file allowing the duration of jobs to be set at import time. This value should be supplied in seconds.
Fixes:
- Fix: Custom field errors when dispatching or importing jobs
- Fix for Route Job sometimes failing to pass user to navigation software when page is loaded over http.
Developer:
- 'tags' exposed to job click scripts

Scripting / Developer:
- Extend Web Service Scripts with "dispatch" object
- Extend SOAP API with new methods:
UnassignJob: unassign a given job from the current worker
UnassignRoute: unassign a given route from the current worker
GetJobsInRange: return jobs in the given datetime range based on scheduled time

Improvement
- Spanish translations added to Dispatch
- DispatchRoute and DispatchJob SOAP methods now allow reassignment to another worker
- MoveJob call added to Dispatch SOAP API
- Added AssignRoute and AssignJob SOAP API call
- CSV Imported jobs now optionally allow addresses to be added from the application's configured geocoder
- Initial load of jobs in VehicleTracker now streams data to the client to give more feedback on progress for large servers
- Scripting now returns editable Job types when inspecting Jobs array in Routes
- Added a counter to the Dispatch Panel to show loaded jobs
- When editing a Route all jobs from the route will be included in the window regardless of the currently set date filter on the main panel
- Historical completed Jobs with no scheduled date cluttering "today" screen

Bug
- Compatible layout with new mobile
- EditRoute window collapses onto time field when custom fields added
- Some Dispatch Mobile translation keys missing
- Duplicate POI name in CSV import causes exception
- Job marker labels not appearing in certain circumstances
- SetRouteSchedule call in SOAP API doesn't refresh UI
- Print directions Button not showing in some circumstances
- Deleting a Job will now remove that Job's marker even if it was pinned
- Long addresses from geocoding cause Jobs to fail to save correctly
- Hide empty list settings now again working as intended

Dispatch v4.0.0.4652 Released: 2016-10-11
Fixes
- Vertical scrolling does not work in both Edit Job and Route windows
- Double scrollbar in Dispatch panel
- When creating Routes using CreateRoute in SOAP the order property is not set
- Jobs for certain dates being requested from the server but not displayed in UI
- Today button re-displaying jobs from previously selected date on click

Improvement
- Dispatch all button on job list inactive when jobs imported
- Import by POI ID in CSV Job import
- GetRouteSchedule and SetRouteSchedule added to SOAP API
- Change default job list behavior to only show jobs and routes on the day they are scheduled
- VehicleTracker Job List map makers only display when pinned when job list contains large number of jobs

Scripting:
-Dispatch scripting exposes POI ID property on jobs in event and app scripts.
Nullable number property. Null result implies job was not created from a POI. Number result specifies which POI was the location source for the job.

Dispatch v4.0.0.4460 Released: 2016-09-13
Features:
– Add new Job to Route location search now orders results by distance closest to current Job in Edit Route window
- Option to "pin" a Job list’s job markers to the map to stay showing while browsing other Job lists
- Printable Route driving directions feature added
- Exposed new "ETA" property on dispatch scripting to allow scripts to update their integration points with live ETA details
– Route scheduling now allows the option to opt into having schedule created routes automatically assign to a worker

Updates:
- Alpha GraphHopper strategy implementation added to Routing Service as an alternative to OSRM. Not currently used in live.
- Maximum steps for Click Scripting only extended to allow significantly larger scripts
- Order property exposed in dispatch event and app scripting to allow scripts to loop through a routes jobs in the order they are saved in

Dispatch v4.0.0.4117 Released: 2016-05-23
Features
- SOAP call to alter "Comment" field on Dispatch service with update to SOAPKit documentation
- Drawn route lines available when clicking route spring-out as well as in edit route window
- Dispatch "Job" click event publisher for Apps added to Dispatch plugin
- Migration of Dispatch web service to new NMEA JSON RPC service
- Add Worker filters now available in the Edit Route window. Show closest workers with no jobs, or closest with no active job.
- Support for "Native" mobile app
- Support for Cleanup plugin in Dispatch
- Dispatch integration with reporting extended
- Allow set custom fields in Mobile Dispatch

Fixes
- Dispatch app scripting switched to use set application time zone instead of UTC (more intuitive for scripters)
- Fix for deleting a POI will break jobs, routes and job reports
- Fix for CreateRoute SOAP API call defaulting all job scheduled time to now

Dispatch v4.0.0.3965 Released: 2016-04-25
Features
- Route scheduling added to Dispatch. Create routes that can be set to re-occur on a schedule
- Scripting added to Dispatch. Read-only in-memory cached entities available to event rule scripting and interactive, queryable entities available to Apps
- New in-memory caching layer for dispatch jobs and dispatch schedules.
- Show execution progress compared to planned progress on jobs, routes, job lists and markers in Vehicle Tracker
- Display driver comments in route window
- Show jobs clustered by their parent route in Mobile Dispatch

Changes
- Custom fields shown in read only format in the Vehicle Tracker Job List
- Pan and zoom to the contents of a job list when selecting one in the Dispatch panel
- Added delete operation for jobs to route batch operations
- Merge "complete" and "remove" operations in mobile dispatch to one “finish” button for workflow simplification
- Re-opening a minimised route through the Dispatch panel restores the minimized window
- Opening a route when another is open will switch open route if there are no unsaved changes
- Do not restore route edit window when adding stop to route to allow quick addition of many stops from the map
- Interactions with edit route window now blocked with new “loading…” UI spinner while a save is in progress

Bug Fixes
- DI1001 Report includes job comment field
- Batch migration of jobs from dispatched route doesn't un-dispatch jobs on devices
- Overlay not found when switching dispatch job date and map hidden in Firefox
- Map blank when interacting with dispatch while map hidden in all browsers
- Edited job details inside a route are not cleared on edit window cancel click
- Do not display empty route labels as ‘null’ in route tooltips
- Commands not functional after latest performance optimization patch
- Any number of jobs in a route should be allowed while editing a route
- Route marker in Mobile jobs list now aligned left
- New stops added to Routes now use the application local time instead of browser

Mobile Dispatch
- Lateness should be visible on jobs in Mobile Dispatch

Features
* Routing and route optimisation added to Dispatch
* Can now use latitude and longitude to create a job in UI
* Jobs in route clickable to select and pan map to job
* Scroll bar now appears on jobs panel inside Edit Route window for easier reading of route information
* Selecting a job in the job list table pans to the selected job position on map
* "Save and Dispatch" button now available to new routes
* "Dispatch Route" added to context menu on routes in Dispatch panel
* Adding a job to a route now re-centres the map including all route locations
* "Zoom to Route" button added to route interface for quickly re-centring map
* Optimise button now only available when paths can be drawn between jobs in route

* FEATURE: Print button added to Job Lists #88
* FEATURE: See the status of individual jobs in the Edit Route window with a status indicator light
* FEATURE: All jobs including those within a Route now displayed as a marker when selecting a job list in the Dispatch panel

* FIX: Job List now again displays jobs respecting job states (hidden and completed are hidden)
* FIX: Jobs inside a route were sometimes in an incorrect order in a Job List
* FIX: Status field for jobs inside a route was not updated in real time in a Job List
* FIX: External ID field in Dispatch CSV Import now can be any string of characters instead of a number
* FIX: False positive warnings on rows with an empty worker username in Dispatch CSV Import removed
* FIX: Date field on jobs in Edit Route window would not update when changed after initial creation

Dispatch v4.0.0.2756 Released: 2015-06-02
* FIX: Various bugs fixed for reordering jobs
* FIX: Job order in mobile should now reflect the order in the Job List
* FIX: Job order in mobile was changed when changing state of the job sometimes

* FIX: Save and Dispatch sometimes did not update the state of the job to dispatched
* FIX: Time can be manually entered (not just select from the list of time)
* FIX: Various translation keys added
* FIX: Stability improvements when using Garmin FMI devices
* FIX: Job status changes was sometime not reflected in the UI

Dispatch v4.0.0.2343 Released: 2015-02-09
* FEATURE: Time can be added to jobs along with the date
* FEATURE: Number of dispatched jobs as column in vehicle list
* FEATURE: Current job status as icon column in vehicle list
* FEATURE: Create job and open job list from vehicles panel
* FEATURE: Setting to show/hide empty job lists
* FEATURE: "Save and Dispatch" option when creating a new job
* FEATURE: Columns in lists can be re-arranged
* FEATURE: "Pick", "All" and "Un-assign" list is now sortable

* FIX: Buttons (not only context menu) to open job lists and pick jobs
* FIX: Marker is removed when deleting a job
* FIX: Validation of address
* FIX: Dragging the address picker on map will update job location properly
* FIX: Jobs was not properly loaded on startup (mainly IE issue)
* FIX: Map got sluggish when having many markers
* FIX: Space is used more efficiently in job panel
* FIX: Skipping back and forth in time using date picker now works
* FIX: Various other minor bugs fixes and UX improvements

* FIX: Dispatch related objects such as User Types and Roles was created in application where dispatch plugin was not enabled.
* FIX: Date picker for browsing dates added
* FIX: job number included in description