Commit Graph

694 Commits

Author SHA1 Message Date
3cb608cb6b Sync remaining local tracked changes 2026-04-13 15:43:47 +02:00
d095a23944 Fix Run Checks remark network error and prepare v0.2.5 changelog 2026-04-13 15:42:50 +02:00
e33fc22cf0 Release v0.2.5 on branch v20260402-01 (bump type 1) 2026-04-13 13:24:08 +02:00
7874ceecb6 Apply pending updates excluding .last-branch 2026-04-02 17:04:08 +02:00
bbfb554411 Update TODO-documentation header metadata 2026-03-26 13:18:51 +01:00
7b4b889911 Finalize documentation audit batches and settings docs 2026-03-26 13:16:57 +01:00
3dae203cf6 Hotfix Run Checks mail visibility and Autotask cross-company linking 2026-03-26 11:29:44 +01:00
adcda8b778 Release v0.2.4 on branch v20260323-01 (bump type 1) 2026-03-26 10:40:18 +01:00
282601269c Release prep v0.2.3 fixes and changelog updates 2026-03-23 13:46:42 +01:00
9edeb8eab9 Release v0.2.3 on branch main (bump type 1) 2026-03-23 13:02:40 +01:00
cf3b5fced6 Release v0.2.2 on branch main (bump type 1) 2026-03-23 09:54:14 +01:00
46ef515d4f Update technical notes to v0.2.1
- Add schedule inference / missed run detection section (90d/180d windows, cadence guard, MIN_OCCURRENCES)
- Add jobs export/import schema v2 section (Cove + Cloud Connect account links)
- Add inbox batch re-parse section (POST /inbox/reparse-batch, progress modal)
- Add CloudConnectAccount to data model, Job model CC link note
- Add inject_inbox_count context processor to architecture section
- Add Layout v2 UI notes
- Extend Quick References with Cloud Connect, Inbox, Settings routes
- Add Recent Changes entries for v0.2.0 and v0.2.1
- Update last-updated date to 2026-03-20

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 16:32:07 +01:00
15347e0715 Release v0.2.1 on branch 25 (bump type 1) 2026-03-20 16:18:54 +01:00
855e5e2aac Auto-commit local changes before build (2026-03-20 16:09:04) 2026-03-20 16:09:04 +01:00
6998b3aa7d Auto-commit local changes before build (2026-03-20 15:51:54) 2026-03-20 15:51:54 +01:00
7ae04c59fe Auto-commit local changes before build (2026-03-20 15:09:58) 2026-03-20 15:09:58 +01:00
5fdf0f130b Auto-commit local changes before build (2026-03-20 15:01:28) 2026-03-20 15:01:28 +01:00
c5a6759112 Auto-commit local changes before build (2026-03-20 14:53:36) 2026-03-20 14:53:36 +01:00
75e0678410 Release v0.2.0 on branch v20260320-02-cove-historical-runs-and-detail (bump type 2) 2026-03-20 14:14:57 +01:00
d15cadbf8e Auto-commit local changes before build (2026-03-20 14:13:13) 2026-03-20 14:13:13 +01:00
d1e1ef9d16 Add v0.2.0 changelog entry (minor bump since v0.1.27)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 14:06:36 +01:00
c2b5fa7b2e Cove: historical run backfill, run detail popup, and docs update
- cove_importer.py: add _backfill_colorbar_runs() to reconstruct up to
  27 days of history from the D09F08 28-day colorbar when a new run is
  created; idempotent via external_id deduplication
- routes_cove.py: add GET /cove/run/<run_id>/detail endpoint returning
  structured Cove account info and per-datasource objects for popups
- routes_run_checks.py: add cove_summary to run payload for cove_api runs
  with readable datasource labels; hide mail section for Cove runs
- routes_jobs.py: add source_type to history_rows dict
- job_detail.html: Cove run rows clickable; JS routes to cove_run_detail;
  Cove summary panel added, mail section hidden for Cove runs
- run_checks.html: Cove summary panel added; JS handles cove_summary
- technical-notes-codex.md: document new route, popup behaviour, and
  historical backfill

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 14:01:36 +01:00
b4c1ec0bf3 Update changelog with login page layout fix details
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 13:57:00 +01:00
a51650dd6e Auto-commit local changes before build (2026-03-20 13:27:58) 2026-03-20 13:27:58 +01:00
5eb8aeeba6 Auto-commit local changes before build (2026-03-20 13:16:06) 2026-03-20 13:16:06 +01:00
ac9c7ba280 Auto-commit local changes before build (2026-03-20 13:12:46) 2026-03-20 13:12:46 +01:00
bd2e71cd62 Auto-commit local changes before build (2026-03-20 13:04:24) 2026-03-20 13:04:24 +01:00
4dff0303a3 Auto-commit local changes before build (2026-03-20 12:57:55) 2026-03-20 12:57:55 +01:00
ad9611e862 Auto-commit local changes before build (2026-03-20 12:18:18) 2026-03-20 12:18:18 +01:00
0cbd3e59b1 Auto-commit local changes before build (2026-03-20 12:13:27) 2026-03-20 12:13:27 +01:00
fb841fb4e6 Auto-commit local changes before build (2026-03-20 12:04:24) 2026-03-20 12:04:24 +01:00
22a12348cb Auto-commit local changes before build (2026-03-20 12:02:04) 2026-03-20 12:02:04 +01:00
6dfbab3354 Auto-commit local changes before build (2026-03-20 11:47:41) 2026-03-20 11:47:41 +01:00
924a012a7d Auto-commit local changes before build (2026-03-20 11:39:05) 2026-03-20 11:39:05 +01:00
e46d4be1c2 Auto-commit local changes before build (2026-03-20 11:36:15) 2026-03-20 11:36:15 +01:00
c7021d393d Auto-commit local changes before build (2026-03-20 11:31:49) 2026-03-20 11:31:49 +01:00
44214cc2c6 Auto-commit local changes before build (2026-03-20 11:04:11) 2026-03-20 11:04:11 +01:00
af84039daf Auto-commit local changes before build (2026-03-20 10:22:35) 2026-03-20 10:22:35 +01:00
461c46b0ff Auto-commit local changes before build (2026-03-20 09:56:22) 2026-03-20 09:56:22 +01:00
5da3137adc Auto-commit local changes before build (2026-03-20 09:37:26) 2026-03-20 09:37:26 +01:00
702de68098 Auto-commit local changes before build (2026-03-20 09:36:17) 2026-03-20 09:36:17 +01:00
56f904bde3 Fix Cloud Connect accounts page: serialize customers as dicts for tojson
Pass customer_rows (list of {id, name} dicts) instead of SQLAlchemy
objects so the Jinja tojson filter can serialize them in JavaScript.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 09:00:51 +01:00
64f686e275 Auto-commit local changes before build (2026-03-20 08:58:47) 2026-03-20 08:58:47 +01:00
e3c7a5ddac Cloud Connect: clickable rows with shared modal (Inbox-style UX)
- Remove per-row Link/Create Job button and inline modals
- Make unmatched rows clickable to open a single shared modal
- Create new job tab: customer via datalist (auto-complete),
  job name and backup type shown read-only (derived from user/section)
- Route: derive job_name and backup_type server-side, not from form

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 08:58:18 +01:00
4eac589625 Cloud Connect: add scan-inbox to process existing inbox mails
- POST /cloud-connect/accounts/scan-inbox: queries all inbox mails with
  backup_type 'cloud connect report', calls upsert_cloud_connect_report()
  for each, flashes a summary of accounts upserted and runs created
- 'Scan inbox mails' button added to Cloud Connect Accounts page header

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 17:17:14 +01:00
ea134f49f3 Add Veeam Cloud Connect importer (inbox-style staging flow)
- cloud_connect_importer.py: parse Cloud Connect daily report HTML,
  upsert tenant rows into cloud_connect_accounts, create JobRuns for
  linked accounts (deduped via external_id)
- routes_cloud_connect.py + cloud_connect_accounts.html: inbox-style
  review page with create/link/unlink actions (mirrors Cove flow)
- CloudConnectAccount model: staging table unique on user × section
- migrate_cloud_connect_accounts_table(): creates table + indexes,
  registered in run_all_migrations()
- mail_importer.py: detect btype=="cloud connect report", call
  upsert_cloud_connect_report(), auto-approve on success
- base.html: sidebar link "Cloud Connect" for admin/operator

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 17:13:58 +01:00
7a8f1aa4e5 Remove light mode and theme switcher: dark mode only
- base.html: hardcode data-bs-theme="dark", remove theme detection JS
  and theme selector form from sidebar footer
- layout.css: replace dark/light theme selectors with unconditional
  dark background for .bc-main

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 16:24:02 +01:00
5163ca7b4a Layout v2 template fixes: style blocks and heading levels
- inbox.html, admin_all_mail.html: move <style> block into {% block head %}
  (styles outside Jinja blocks are silently dropped in template inheritance)
- feedback.html, feedback_detail.html, feedback_new.html, user_settings.html:
  replace <h1 class="h4"> with <h2> to match app-wide heading convention

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 16:00:33 +01:00
96e4e8c143 Dashboard redesign: bc-stat-grid with colored values
- Replace Bootstrap display-6 stats with bc-stat-grid layout:
  Inbox card spans 2 columns; status values colored by type
  (success=green, warning=yellow, failed=red, override=blue, muted=grey)
- Fix extra </div> that caused large empty space below stats
- Compact Legend to horizontal flex-wrap row
- Move System status card above description text
- Shorten description to 3 paragraphs
- Add bc-stat-grid / bc-stat-card CSS to layout.css

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:48:11 +01:00
e39e5359a6 Layout v2 template cleanup: remove container wrappers, fix changelog offset
- settings_orphaned_jobs.html: remove outer container-fluid div (bc-content
  already provides padding in the new sidebar layout)
- changelog.html: reduce sticky-top offset from 80px to 24px (no topnav
  anymore, only sidebar)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:38:33 +01:00