Skip to content

Conversation

@XK4MiLX
Copy link
Member

@XK4MiLX XK4MiLX commented Nov 6, 2025

TERMINAL IMPROVEMENTS:

  • Add multi-tab terminal interface supporting multiple terminals per app
  • Implement TerminalWindowManager component for floating terminal windows
  • Add drag and resize functionality for detached terminal windows
  • Support multiple layout modes: grid, horizontal split, vertical split
  • Add 'pop out all' button to detach all terminals simultaneously
  • Add individual unpin/pin functionality for each terminal
  • Add terminal manager UI with grid/list view toggle
  • Improve terminal state management and visibility control

BUG FIXES:

  • Fix logout race condition preventing API calls during logout process
  • Add logoutTrigger checks in executeLocalCommand, getInstancesForDropDown, getInstalledApplicationSpecifics, and getDecryptedEnterpriseFields
  • Mark user as unauthorized immediately on logout to prevent new API calls
  • Suppress error messages during auto-logout for better UX
  • Add 300ms delay to display logout toast before clearing auth data
  • Auto-populate repoauth field for v7+ app compose components
  • Auto-add secrets field for v7 app compose components
  • Fix localStorage key inconsistency: change 'logintype' to 'loginType' in Login.vue and LoginModal.vue for SSP login
  • Add auto-reload on chunk load failures after deployment
  • Prevent infinite reload loops with sessionStorage flag
  • Fix Cost Calculator
  • Fix Logout in managment

UI/UX IMPROVEMENTS:

  • Fix InstallDialog close button size (x-small -> default)
  • Add light theme support for hardware selection cards
  • Improve hardware card hover effects in light mode
  • Update VolumeBrowser deprecated ::v-deep syntax to :deep()
  • Fix progress spinner glow effect and overflow handling
  • Landing Page Refactor

Backend IP Selector Enhancements:

  • Add searchable dropdown for backend IP selection in app management view
  • Implement independent search field in dropdown prepend-item slot that filters available IPs without affecting current selection
  • Add ipSearchQuery ref and filteredIPs computed property for reactive IP filtering
  • Configure dropdown to prevent auto-scroll to selected item, keeping search field visible at top
  • Add watcher to force scroll to top when menu opens, ensuring search field is always accessible
  • Clear search query automatically after IP selection
  • Style list items with success (green) color for better visual feedback
  • Import nextTick from Vue for proper DOM update handling

DEPENDENCIES:

TRANSLATIONS:

  • Add terminal manager translations for English and Polish

… and bug fixes

TERMINAL IMPROVEMENTS:
- Add multi-tab terminal interface supporting multiple terminals per app
- Implement TerminalWindowManager component for floating terminal windows
- Add drag and resize functionality for detached terminal windows
- Support multiple layout modes: grid, horizontal split, vertical split
- Add 'pop out all' button to detach all terminals simultaneously
- Add individual unpin/pin functionality for each terminal
- Fix terminal resize issues when unpinning to floating windows
- Fix terminal disposal addon errors when closing terminals
- Add terminal manager UI with grid/list view toggle
- Improve terminal state management and visibility control

BUG FIXES:
- Fix logout race condition preventing API calls during logout process
- Add logoutTrigger checks in executeLocalCommand, getInstancesForDropDown,
  getInstalledApplicationSpecifics, and getDecryptedEnterpriseFields
- Mark user as unauthorized immediately on logout to prevent new API calls
- Suppress error messages during auto-logout for better UX
- Add 300ms delay to display logout toast before clearing auth data
- Auto-populate repoauth field for v7+ app compose components
- Auto-add secrets field for v7 app compose components
- Fix localStorage key inconsistency: change 'logintype' to 'loginType'
  in Login.vue and LoginModal.vue for SSP login
- Add auto-reload on chunk load failures after deployment
- Prevent infinite reload loops with sessionStorage flag

UI/UX IMPROVEMENTS:
- Fix InstallDialog close button size (x-small -> default)
- Add light theme support for hardware selection cards
- Improve hardware card hover effects in light mode
- Update VolumeBrowser deprecated ::v-deep syntax to :deep()
- Fix progress spinner glow effect and overflow handling

DEPENDENCIES:
- Add [email protected] for floating window functionality

TRANSLATIONS:
- Add terminal manager translations for English and Polish
- New keys: newTerminal, popOutAll, manager.title, manager.layoutGrid,
  manager.layoutHorizontal, manager.layoutVertical, manager.unpinToTabs,
  manager.closeTerminal

FILES CHANGED:
- Modified: Terminal.vue (1289 lines), [appName].vue (35 lines),
  SubscriptionManager.vue (14 lines), InstallDialog.vue (13 lines),
  VolumeBrowser.vue (20 lines), main.js (28 lines), Login.vue (2 lines),
  LoginModal.vue (2 lines), en.json (10 lines), pl.json (12 lines),
  package.json (1 line), components.d.ts (3 lines)
- Added: TerminalWindowManager.vue

Total: 12 modified files, 1 new file, ~1,400 lines changed
…rminal event naming

Backend IP Selector Enhancements:
- Add searchable dropdown for backend IP selection in app management view
- Implement independent search field in dropdown prepend-item slot that filters available IPs without affecting current selection
- Add ipSearchQuery ref and filteredIPs computed property for reactive IP filtering
- Configure dropdown to prevent auto-scroll to selected item, keeping search field visible at top
- Add watcher to force scroll to top when menu opens, ensuring search field is always accessible
- Clear search query automatically after IP selection
- Style list items with success (green) color for better visual feedback
- Import nextTick from Vue for proper DOM update handling

Terminal Component Fixes:
- Convert all custom event names from kebab-case to camelCase to comply with Vue linting standards
- Update event emitters in TerminalWindowManager.vue: close-window → closeWindow, unpin-terminal → unpinTerminal, close-terminal → closeTerminal, terminal-ready → terminalReady, reorder-terminals → reorderTerminals
- Update corresponding event listeners in Terminal.vue to match camelCase naming
- Add code formatting improvements and blank line consistency throughout terminal components

Other Changes:
- Fix trailing comma formatting in SubscriptionManager.vue
- Add blank lines for better code readability across multiple components
- Fix minor whitespace and indentation issues
@XK4MiLX XK4MiLX requested a review from Cabecinha84 November 6, 2025 21:15
@XK4MiLX XK4MiLX changed the title [WIP] [FEAT] Terminal improvements with multi-tab support, bug fixes [FEAT] Terminal improvements with multi-tab support, bug fixes Nov 6, 2025
…vements

## Landing Page Refactor
- Renamed BannerSlider.vue → LandingServices.vue to better reflect purpose
- Added complete i18n support for all text content
- Reduced spacing for better visual density:
  - Section top padding: 2rem → 1.5rem
  - Section bottom padding: 4rem → 1rem
  - Features grid top margin: 3rem → 0.5rem
- Updated component registry and home.vue imports

## i18n Translations Added
- English and Polish translations for landingServices section
- Translation keys for 6 services (Flux Cloud, Flux AI, Flux Drive, Flux Edge, Flux Marketplace, WordPress on Flux)
- Each service includes: name, description, and category
- Added "Our Services" title and "Explore" button translations

## Top Navbar Responsive Improvements
- BackendSelector: Show icon-only button on mobile, full button on desktop
- FluxAIToggler: Responsive button sizing (icon-only on mobile, text+icon on desktop)
- Added responsive gap spacing in navbar (0.5rem default, adjusts per breakpoint)
- Removed unnecessary d-none d-md-flex wrapper from BackendSelector
- Added backend URL tooltip for mobile icon button

## App Management UI Fixes
- AppDetailsCard: Hide hash, registeredOnBlockheight, and expiresIn fields in expired apps tab
- Added expiredAppsTab prop to control field visibility
- Updated tabView.vue to pass expiredAppsTab prop

## Terminal Security Enhancement
- Added logout callback prop to Terminal component
- Implemented authorization error detection in socket error handler
- Auto-logout on "not authorized" socket errors to prevent security issues
- Passed logout function from [appName].vue to Terminal component

## Dependencies
- Added element-plus@^2.11.7 to package.json

Files changed: 13 files, 320 insertions(+), 365 deletions(-)
- Deleted: src/components/BannerSlider.vue
- Added: src/components/LandingServices.vue
Copy link
Member

@Cabecinha84 Cabecinha84 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ack to be tested on development

@XK4MiLX XK4MiLX merged commit 8171163 into development Nov 10, 2025
1 check 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.

3 participants