towerops/lib/towerops_web/live
Graham McIntire 4b4bb2668f
feat: add billing tab to organization settings
Implements Phase 6 of Stripe billing integration:
- Add Billing tab to organization settings page
- Display subscription status, device usage, and estimated costs
- "Upgrade to Paid Plan" button for free tier orgs
- "Manage Billing" button to access Stripe Customer Portal
- Billing information panel showing subscription details
- Support for dark mode and responsive design

Also fixes organization name truncation in top navigation:
- Long organization names now show with ellipsis instead of being cut off
- Added max-w-xs constraint and truncate class to org switcher button
2026-03-06 11:08:05 -06:00
..
account_live Fix dark mode inconsistencies across all pages 2026-02-16 10:31:52 -06:00
admin fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
agent_live fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
alert_live fix: update alert_type atom comparisons to strings in AlertLive 2026-03-05 09:49:47 -06:00
check_live Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
components refactor: fix all credo strict issues, format all code, fix broken routes 2026-02-13 19:34:40 -06:00
device_live fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
graph_live fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
help_live Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
helpers refactor: centralize LiveView access control checks 2026-02-04 17:51:05 -06:00
insights_live i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
maintenance_live Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
map_live i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
mikrotik_backup_live i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
org feat: add billing tab to organization settings 2026-03-06 11:08:05 -06:00
org_live fix: org switching now correctly updates session 2026-03-04 17:04:49 -06:00
site_live fix: correct subscriber counts by filtering CGNAT IPs and excluding routers 2026-02-18 09:15:10 -06:00
trace_live Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
user_settings_live feat: add 12/24-hour time format setting with consistent timezone display 2026-02-13 15:16:29 -06:00
activity_feed_live.ex fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
activity_feed_live.html.heex fix: netbox url field type, gaiia ipRange→block, remove unknown webhook log 2026-02-14 17:44:01 -06:00
changelog_live.ex refactor: fix all credo strict issues, format all code, fix broken routes 2026-02-13 19:34:40 -06:00
config_timeline_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
dashboard_live.ex feat: dynamic favicon reflects real-time system health status 2026-03-05 13:47:54 -06:00
dashboard_live.html.heex feat: dynamic favicon reflects real-time system health status 2026-03-05 13:47:54 -06:00
mobile_qr_live.ex fix: comprehensive bug fixes from reliability audit 2026-03-05 08:53:30 -06:00
network_map_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
network_map_live.html.heex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
onboarding_live.ex Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
onboarding_live.html.heex Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
user_registration_live.ex stripe and email after signup 2026-03-06 10:07:27 -06:00
user_reset_password_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
user_settings_live.ex i18n: wrap all user-facing strings in gettext() 2026-02-14 17:44:01 -06:00
user_settings_live.html.heex ui: polish device detail, site detail, and user settings 2026-02-14 21:11:33 -06:00