Commit Graph

515 Commits

Author SHA1 Message Date
a2895b6409 Auto-load Autotask reference data on settings page load
Fixed issue where Default Ticket Status dropdown was empty when
opening the settings page. Now automatically loads reference data
(queues, sources, statuses, priorities) when:
- Autotask integration is enabled
- API credentials are configured
- Reference data cache is empty

This eliminates the need to manually click "Refresh reference data"
before being able to select a default ticket status.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 23:28:28 +01:00
a555dc9c61 Filter out archived jobs and inactive customers from job lists
Added customer active status filtering to prevent jobs from deleted
(inactive) customers from appearing in the UI alongside existing
archived job filtering.

Changes:
- Daily Jobs: Filter jobs where customer is NULL or active=True
- Run Checks: Filter jobs where customer is NULL or active=True
- Jobs list: Filter jobs where customer is NULL or active=True

This prevents showing jobs with "-" status from archived jobs or
deleted customers on Daily Jobs and Run Checks pages.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 23:28:09 +01:00
28f094f80b Merge branches v20260203-01 through v20260205-13 into main
This commit consolidates all development work from the following branch series:
- v20260203-* (13 branches): Initial Autotask integration, graph config UI improvements
- v20260204-* (3 branches): Dashboard redirect setting, additional refinements
- v20260205-* (13 branches): Autotask resolution improvements, changelog restructuring

Key features merged:
- Autotask PSA integration with ticket creation, resolution, and search
- Graph/mail configuration UI improvements with credential testing
- Daily dashboard redirect setting (optional navigation control)
- Changelog restructuring with improved Python structure
- Various bug fixes and UI enhancements

All functionality has been consolidated from the final state of branch
v20260205-13-changelog-python-structure to preserve working features.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 13:41:08 +01:00
7693af9306 Merge branch 'v20260204-03-dashboard-redirect-setting' into main 2026-02-06 13:32:36 +01:00
5ed4c41b80 Merge branch 'v20260204-02-performance-optimizations' into main 2026-02-06 13:23:31 +01:00
a910cc4abc Merge branch 'v20260204-01-add-readme-changelog' into main 2026-02-06 13:23:31 +01:00
e12755321a Merge branch 'v20260203-13-autotask-resolution-item-wrapper' into main 2026-02-06 13:23:31 +01:00
240f8b5c90 Merge branch 'v20260203-12-autotask-resolution-v1-casing-fix' into main 2026-02-06 13:23:31 +01:00
02d7bdd5b8 Merge branch 'v20260203-11-autotask-resolution-get-put-required-fields' into main 2026-02-06 13:23:31 +01:00
753c14bb4e Merge branch 'v20260203-10-autotask-resolution-field-aliases' into main 2026-02-06 13:23:31 +01:00
ce245f7d49 Merge branch 'v20260203-09-autotask-resolution-from-note' into main 2026-02-06 13:23:31 +01:00
34ac317607 Merge branch 'v20260203-08-autotask-ticketnote-timezone-suffix' into main 2026-02-06 13:23:31 +01:00
3b087540cb Merge branch 'v20260203-07-autotask-notes-endpoint-fix' into main 2026-02-06 13:23:31 +01:00
e5123952b2 Merge branch 'v20260203-06-autotask-ticketnotes-child-endpoint' into main 2026-02-06 13:23:31 +01:00
4bbde92c8d Merge branch 'v20260203-04-autotask-resolve-user-note' into main 2026-02-06 13:23:31 +01:00
7b3b89f50c Merge branch 'v20260203-03-autotask-resolve-note-verify' into main 2026-02-06 13:23:31 +01:00
52cd75e420 Merge branch 'v20260203-02-autotask-resolve-button-enabled' into main 2026-02-06 13:23:31 +01:00
83d8d85f30 Merge branch 'v20260203-01-autotask-resolve-note' into main 2026-02-06 13:23:31 +01:00
90ad06cca2 Auto-commit local changes before build (2026-02-06 13:08:37) 2026-02-06 13:08:37 +01:00
d8ddec1fb1 Add direct Autotask ticket link in Run Checks modal
Added "Open in Autotask" button next to ticket number in Run Checks modal
for quick navigation to the ticket in Autotask PSA.

Changes:
- Enhanced renderAutotaskInfo() function in run_checks.html
- Button appears only when autotask_ticket_id exists
- Opens in new tab with proper Autotask URL format
- Styled as small outline button for compact layout
- URL format: https://ww19.autotask.net/Mvc/ServiceDesk/TicketDetail.mvc?workspace=False&ids[0]={id}&ticketId={id}

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 13:08:11 +01:00
cf35879c36 Auto-commit local changes before build (2026-02-06 12:54:28) 2026-02-06 12:54:28 +01:00
d08fbfecd4 Expand changelog entry with detailed implementation description
Added comprehensive breakdown of the Sandbox environment indicator feature
including all modified components (database, backend, frontend, CSS) with
specific technical details for better documentation and understanding.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 12:53:45 +01:00
0bf1151f01 Add Sandbox/Development environment indicator feature
This commit adds a new setting that displays a visual "SANDBOX" banner
when the environment is marked as development or sandbox.

Changes:
- Add is_sandbox_environment boolean column to SystemSettings model
- Add database migration for automatic schema update
- Add Environment section in Settings > General with toggle switch
- Create sandbox.css with diagonal banner styling (non-interactive)
- Inject system_settings into all template contexts
- Add sandbox banner to base.html layout
- Update changelog with feature description

The banner appears as a red diagonal ribbon in the top-left corner and
uses pointer-events: none to remain non-interactive while keeping
underlying elements clickable.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 12:51:53 +01:00
d5cbba2f59 Auto-commit local changes before build (2026-02-06 11:36:11) 2026-02-06 11:36:11 +01:00
0e5294d1fa Add collapsible text functionality to Overall remark and Remark fields
Added ellipsis-field class to both "Overall remark" and "Remark" fields in
the Run Checks modal. This prevents long text from pushing action buttons
(like Autotask ticket creation) out of view. Users can click the field to
expand/collapse the full text.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 11:35:13 +01:00
865bcf6843 Auto-commit local changes before build (2026-02-06 11:24:58) 2026-02-06 11:24:58 +01:00
66ee14ca18 Change Autotask link modal button label from "Refresh" to "Search"
The button in the "Link existing Autotask ticket" modal performed a search
operation but was labeled "Refresh", which was confusing. Renamed to "Search"
to accurately reflect its functionality.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 11:10:58 +01:00
b0ed6c6fe2 Release v0.1.22 on branch v20260205-13-changelog-python-structure (bump type 1) 2026-02-05 23:29:46 +01:00
442981d52a Release v0.1.21 on branch v20260205-13-changelog-python-structure (bump type 1) 2026-02-05 23:29:38 +01:00
b007b9459b Update changelog-claude.md with detailed changelog redesign documentation 2026-02-05 23:28:03 +01:00
2505c8e337 Add all remaining changelog versions (v0.1.19 to v0.1.2) 2026-02-05 23:24:18 +01:00
3f0eff9f9c Further reduce version link spacing - tighter padding and smaller fonts 2026-02-05 23:19:58 +01:00
60a7fd1d44 Add head block to base.html to allow custom CSS per page 2026-02-05 23:15:36 +01:00
d54444eeca Force compact spacing with !important to override Bootstrap 2026-02-05 23:10:53 +01:00
fddba4e856 Further reduce version navigation spacing - more compact layout 2026-02-05 23:08:05 +01:00
8f2667d007 Reduce spacing in version navigation sidebar 2026-02-05 23:06:26 +01:00
a3b4bc939d Fix: rename 'items' to 'changes' to avoid dict.items() conflict 2026-02-05 23:02:28 +01:00
f51a511e64 Fix import path for changelog module (use relative import) 2026-02-05 22:59:43 +01:00
c1ea5d5b9d Auto-commit local changes before build (2026-02-05 22:57:59) 2026-02-05 22:57:59 +01:00
d0811304c6 Redesign changelog to use Python-based structure instead of Markdown
- Created app/changelog.py with structured changelog data (first 3 versions as example)
- Removed Gitea dependency for changelog rendering
- Added new changelog.html template with:
  - Sidebar navigation for version jumping
  - Bootstrap cards for each version
  - Color-coded type badges (feature/improvement/fixed/documentation)
  - Responsive design with sticky navigation
- Added changelog.css with modern styling and dark mode support
- Updated routes_changelog.py to use Python data structure
- No external dependencies, faster loading, always available

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 22:56:43 +01:00
00372a0e99 Auto-commit local changes before build (2026-02-05 22:16:20) 2026-02-05 22:16:20 +01:00
1d9f3662a1 Fix automatic mail import unable to be disabled once enabled
Fixed bug where unchecked automatic mail import checkbox was not
processed by the backend, preventing users from disabling the
automatic import after enabling it.

Root cause: HTML forms do not send unchecked checkbox values. The
existing check `if "auto_import_enabled" in request.form` would skip
updating the setting when the checkbox was unchecked.

Solution: Added import_form_touched flag to detect when the import
settings form is submitted, then update the checkbox value based on
presence (checked) or absence (unchecked) in form data.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 22:15:38 +01:00
948e9a49a5 Auto-commit local changes before build (2026-02-05 21:39:51) 2026-02-05 21:39:51 +01:00
9388ec4c01 Improve Autotask customer mapping with auto-search
Added automatic search for similar company names when opening unmapped
customers in the edit modal. This speeds up the mapping process by
eliminating manual searches.

Changes:
- Clear search box when opening customer edit modal
- Auto-populate search with customer name for unmapped customers
- Automatically display matching Autotask companies as suggestions
- Refactor search logic into reusable performAutotaskSearch() function

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 21:39:02 +01:00
282d34af2d Auto-commit local changes before build (2026-02-05 21:27:50) 2026-02-05 21:27:50 +01:00
873b22f225 Clear search box when opening Autotask Link existing modal
Fixed issue where the search input retained previous search text when
reopening the Link existing modal. The search box now always starts
empty for a better user experience.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 21:26:14 +01:00
d2d4888caf Auto-commit local changes before build (2026-02-05 17:16:12) 2026-02-05 17:16:12 +01:00
077e1fb176 Add cross-company ticket search for overarching issues
The "Link existing ticket" dialog now searches across all companies when
a ticket number is entered, enabling linking of overarching issues.

Changes:
- Added query_tickets_by_number() to Autotask client
- Route searches both customer's company and cross-company when ticket number detected
- Results are combined and deduplicated (customer tickets shown first)
- Enables linking multi-company infrastructure issues to any job

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 17:01:43 +01:00
e6847b8ec3 Auto-commit local changes before build (2026-02-05 16:47:19) 2026-02-05 16:47:19 +01:00
cc76068206 Make Autotask resolve messages dynamic based on time entries
The resolve confirmation dialog and ticket notes now correctly indicate
whether the ticket will be closed or remain open based on time entry check.

Changes:
- Frontend: Updated confirmation message to explain conditional closure
- Backend: Check time entries before creating note
- Dynamic message in ticket note:
  * "ticket will be closed in Autotask" (no time entries)
  * "ticket remains open in Autotask due to existing time entries" (has time entries)
- Updated route docstring to reflect conditional status behaviour

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 16:46:43 +01:00