Release v0.6.71 - #348
Merged
Merged
Release v0.6.71#348
Conversation
Opt-in via OrderConfig meta; orders whose config does not opt in keep the default dispatch lifecycle and presentation. Backend (meta.lifecycle): - OrderConfig helpers: initial/completed/canceled/terminal codes, allowsDispatch, strict transitions, canTransition over the flow graph - createRecord starts at the configured initial activity and never dispatches when dispatch is disabled - Tracking number initial status comes from the owner when provided - Order::cancel uses the config's canceled activity - updateActivity validates targets against the configured graph when strict_transitions is set; dispatch endpoints refuse non-dispatch configs Frontend: - order-presentation service: extensions register profiles (by meta.presentation_profile) that compose the order form/details, hide fields/actions and route edits to the profiled form - Kanban derives columns/labels from a configured lifecycle instead of injecting default dispatch columns - Activity flow editor roots at the configured initial activity Tests: OrderConfigLifecycleTest; existing suite unchanged (ReportSchemaContractsTest fails on main as well). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…figured-order-lifecycle
Extensions can add columns, row actions, bulk actions and toolbar buttons to fleet-ops tables through fleet-ops:table:<resource>:<slot>, and buttons and menu items to its details panels through fleet-ops:details:<resource>:<slot>. - @registry on every top-level Tabular/TabularActions index view and Panel details view; the contacts header follows the open tab's registry - *-actions panel.view passes registry: this.detailsRegistry, so the side panels merge the same buttons (customer and schedule map to their resource) - stable ids on built-in columns, actions and buttons; index query params include registered filter params; registries declared in extension.js Fixes found on the way: - driver, vehicle and trailer registeredTabs deleted `route` from the shared registry items (breaking those tabs in the routed details view once a side panel had opened) and kept only tabs without a component, which are the ones a panel cannot render; they now use registeredPanelTabs like the rest - the sensor details view read the place tab registry Requires @fleetbase/ember-core 0.3.25 and @fleetbase/ember-ui 0.4.5.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #348 +/- ##
===========================================
Coverage 100.00% 100.00%
Complexity 12329 12329
===========================================
Files 600 600
Lines 46419 46419
===========================================
Hits 46419 46419
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
ember-core 0.3.25's loadSubjectCustomFields rejects instead of resolving with undefined when the fields cannot be loaded. Every other caller already catches; this one now does too, leaving the form without custom fields as before.
feat: resource view registries for fleet-ops tables and panels
…nfigured-order-lifecycle # Conflicts: # addon/controllers/operations/orders/index/details.js
- Profiles hide actions by the built-in ids the order table and details use in the resource view registries (assign-driver, unassign-driver, update-activity, edit-order-details, view-label, listen-to-socket-channel, view-metadata, ...). The details assign/unassign item now has those ids too. - The orders table applies a profile's hidden.actions to every row action by id, as the details panel does, instead of only dispatch and assign driver. - isClosed counts the configured completed and canceled codes as terminal, matching OrderConfig::getTerminalActivityCodes(). - bulkDispatch no longer fatals for an order without a config. - Restore Order::config()'s docblock, which getInitialTrackingStatus() split off.
… and initial tracking status
…ycle Configured order lifecycles and order presentation profiles
…meline - Order Config: add a Lifecycle tab to view and edit `meta.lifecycle` (initial, completed, canceled and terminal activities, dispatch, strict transitions), with validation against the activity flow. - Order Config: always fetch the config list. `findAll` resolved with the subset the store already held (e.g. an order's embedded config) and only refreshed in the background, so configs created later were missing from the manager. - Order details: reload the activity timeline when the order's status changes outside the Update Activity modal (configured lifecycle advancing on save, extension actions, realtime updates).
…agement Order config lifecycle management, full config list, live activity timeline
A configured lifecycle can loop back (active -> extended -> active) and an activity can have several parents. addChildActivities walked the flow as a tree and recursed forever on a cycle until JointJS overflowed the stack when opening the Activity Flow tab. An activity already on the graph now only gets a link from the additional parent. The Lifecycle tab's save button sits under the form instead of in a separate collapsible Controls panel.
Enabling a configured lifecycle only let you pick among the activities the flow already had, which for a new config are the default dispatch ones, so a custom lifecycle could not be built from the Order Config screen. The tab now edits the flow too: add and remove activities (label, code, details, colour), set the activities each one can move to, or start from a blank flow; the first activity added becomes the initial one. Flow and meta.lifecycle save together.
The details route loaded driverAssigned but not vehicleAssigned, so a vehicle assigned without a driver (configured lifecycles, extension flows) showed as unassigned in the details and the edit form until something else fetched it.
….4.5 Lockfile refreshed with pnpm 12.9.1, the version CI installs with.
…er from core-api 1.6.68
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release branch for v0.6.71, cut from
main.This branch collects #347: resource view registries, so extensions can add columns, actions and buttons to this engine's tables and details views.
Before merging
It depends on fleetbase/ember-core v0.3.25 (fleetbase/ember-core#96) and fleetbase/ember-ui v0.4.5 (fleetbase/ember-ui#187). Once both are published:
@fleetbase/ember-coreto^0.3.25and@fleetbase/ember-uito^0.4.5inpackage.json.pnpm-lock.yaml.Merging this tags
v0.6.71. The version comes from the branch name and is checked against the version files and the first line ofRELEASE.md.