Skip to content

Master dev#361

Merged
OSPFNeighbour merged 13 commits intomasterfrom
master-dev
Mar 26, 2026
Merged

Master dev#361
OSPFNeighbour merged 13 commits intomasterfrom
master-dev

Conversation

@OSPFNeighbour
Copy link
Collaborator

  • Icems agency status
  • Blank opslog & radio log
  • incident card refresh ago timers
  • better field targeting for opening modals

OSPFNeighbour and others added 13 commits March 23, 2026 12:58
Introduce several UX and search improvements to the tasking page:

- Job autosuggest: add a fixed dropdown suggestion UI for the job search input (HTML, CSS, and VM logic). Provides category labels, highlighted matches, keyboard navigation, and token-aware matching; suggestions are generated from a computed pool of job fields.
- Spotlight search: implement tokenized, word-boundary-aware scoring and highlighting; add HTML-safe highlighted primary/secondary fields, AND-token matching, scroll-reset behavior, and smoother active-item scrolling.
- Alerts: add a new summary rule that warns about teams with multiple Enroute/Offsite/Onsite taskings and provides clickable items.
- Map/UI: add a Zoom-to-fit Leaflet control to fit visible job/asset markers; reorder toolbar controls to include it.
- Filtering & performance: make job filtering token-aware (multi-term AND matching across many job fields) and adjust computed observables' rate/track options; split filteredJobs subscriptions so markers are only updated for UI-filtered changes while initial fetch logic runs on config-filtered changes.
- Accessibility/focus: ensure several modals focus their main input when shown.
- Minor template/CSS tweaks: update tasking.html to support autosuggest and spotlight highlighted HTML fields, and add styles for the suggestion dropdown and dark-mode support.

These changes improve search relevance, usability, and map interactions across the tasking UI.
* tiny text align fix on trackable assets under teams

* config bundle fixup

removed redundant info from config LS

* update style on priority change (#349)

* function to complete a job (#350)

* function to complete a job

* and date is needed

* Lad reduce tasking search (#348)

* first

* removed too much! put it back

* shitty theme

* Bump flatted from 3.2.7 to 3.4.2 (#346)

Bumps [flatted](https://github.com/WebReflection/flatted) from 3.2.7 to 3.4.2.
- [Commits](WebReflection/flatted@v3.2.7...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add confirmation modal for refreshInterval changes

Prevent accidental changes to refreshInterval by tracking the last value and showing a confirmation modal whenever the observable is changed. A showRecklessModal helper is injected into the DOM (id: recklessModal) and requires the user to type "reckless" to confirm; onCancel reverts the observable to the previous value. Implementation uses bootstrap.Modal and creates/removes event handlers for confirm/cancel and the modal close button.

* gated

* lint fix

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Update static/pages/tasking.html to replace ambiguous "Edit" labels with "Open in Beacon" (and visible "Open in Beacon" text) for buttons that open job/team details in Beacon. This clarifies the action for users and improves accessibility/clarity for three buttons (job detail, job list button, and team edit button).
Add data refresh tracking and a small UI indicator. In Job.js: import observable, add self.dataLoading observable and self.lastDataUpdate observable, create lastRefreshedAgo computed (uses deps.relativeUpdateTick), and update lastDataUpdate in updateFromJson. Use dataLoading in refreshData (set/clear around fetch) and leave timestamp update to the JSON parse. In tasking.html: change several field labels (e.g. "Assigned HQ" -> "HQ", "Assigned Zone" -> "Zone", "Assigned Sector" -> "Sector", "Additional Address Info" -> "Extra Info"), change a button style from btn-outline-secondary to btn-outline-dark, and add conditional UI to show a spinner while j.dataLoading() and a "Refreshed X ago" text when not loading. These changes improve freshness feedback for job records.
Add quick-entry handlers and UI/VM enhancements for Ops and Radio logs. main.js: introduce openBlankOpsLogModal and openBlankRadioOpsLogModal to open a prefilled/blank modal, focus the text input and install hotkeys for radio logs. OpsLogModalVM: keep parentVM reference, add job/team autocomplete inputs and suggestion pickers, extend reset/init logic, add openForRadioLog (auto-selects Radio contact tag) and submitting state, and prefill job fields when opening. RadioLogModalVM: add submitting observable and toggle it during submit. tasking.html: add toolbar buttons for Ops/Radio logs, add job/team input UI and dropdowns inside the Ops Log modal, and make submit buttons show a disabled state and spinner while submitting. These changes improve quick log creation, radio-specific defaults, and overall UX/feedback.
Introduce a setIfChanged helper and use it to only update Knockout observables when the new value differs from the current one. Replace many direct assignments (scalars, address, entityAssignedTo fields, job types/status/priority) with conditional sets to reduce redundant notifications. Add conditional replacements for complex objects/arrays (sector, tags, actionRequiredTags, categories) using JSON.stringify comparisons, and adjust ParentEntity handling to avoid clearing/creating objects unnecessarily. Overall this reduces thrashy updates while preserving existing behavior.
Adjust static/pages/tasking.html to refine button icons and shorten labels: add a small plus icon and spacing (me-1) to Ops Log and Radio Log buttons in both header and job rows; rename label "Response Required:" to "Required:"; change button text "Task Team" to "Task". These are minor UI/clarity tweaks for more compact controls.
Update tasking.html to add a small plus icon next to the microphone icon on the Radio Log button. Adjusted markup to include 'me-1' on the mic icon for spacing and appended an 'fa-plus small' icon to indicate an add/create action.
Expose a New Ops Log action and update UI icons/layouts. Added openNewOpsLogModal to JobPopupViewModel and wired new Ops Log buttons in job popup (job_popup.js) and several tasking templates (static/pages/tasking.html). Replaced book icon with list icon for Timeline buttons and introduced a stacked book+plus visual for New Ops Log and Radio Log buttons. Also adjusted some column widths in the job details layout (col-md-8 -> col-md-7, col-md-4 -> col-md-5) to rebalance the details/actions columns.
Enhance job and team autocomplete UX by adding active-index tracking, keyboard handlers, mouse hover handling, and automatic scrolling. Introduces jobActiveIndex/teamActiveIndex observables, keydown handlers (ArrowUp/ArrowDown/Enter/Escape), on*MouseEnter helpers, and updated pick*Suggestion to stop propagation and reset active index. Adds a helper to scroll the active dropdown item into view (using requestAnimationFrame) and subscribes active index changes to trigger scrolling. Updates template bindings to attach keydown events, mark dropdown lists with data-ops-log-dropdown, and render items with active CSS and improved layout. These changes improve keyboard accessibility and navigation of the dropdowns.
@OSPFNeighbour OSPFNeighbour merged commit 05fe492 into master Mar 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant