Connection manager fixes: folder select, open-all-in-tabs, stable hover
- Folder select showed '(none)' regardless of the actual folder (Angular sets [value] on the select before its options render), so 'move out of folder' silently saved the old folderId. Per-option [selected] bindings fix both the display and the save. - Folder rows gain 'Open all in tabs': each connection opens in its own new tab with the left panel connecting (right stays local); manager closes. - Folder-row action buttons no longer shift the row on hover (opacity toggle instead of display toggle); also canonicalized accent-primary classes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Injectable, computed, signal, type WritableSignal } from '@angular/core';
|
||||
import type { ConnectionConfig, FileEntry } from '@shared/types';
|
||||
import type { ConnectionConfig, FileEntry, SavedConnection } from '@shared/types';
|
||||
import { RpcService } from './rpc.service';
|
||||
import { ToastService } from './toast.service';
|
||||
|
||||
@@ -280,6 +280,16 @@ export class PanelsService {
|
||||
}
|
||||
}
|
||||
|
||||
/** One new tab per connection, its left panel connecting (right stays local). */
|
||||
openInNewTabs(connections: SavedConnection[]): void {
|
||||
for (const connection of connections) {
|
||||
this.newWorkspace();
|
||||
// connectPanel resolves the panel synchronously (before awaiting), so
|
||||
// firing these back-to-back binds each connection to its own tab
|
||||
void this.connectPanel('left', connection, connection.name);
|
||||
}
|
||||
}
|
||||
|
||||
/** Reorder a tab (drag & drop). Order is purely visual; ids stay stable. */
|
||||
moveWorkspace(id: number, toIndex: number): void {
|
||||
this.workspaces.update((list) => {
|
||||
|
||||
Reference in New Issue
Block a user