When a container is opened from a stack, the detail tab kept the stack
trail (PR #7) but the attribute sub-tabs (Logs, Stats, Inspect, Console,
Attach) dropped it: those tabs were registered only under the global
docker.containers.container.* tree, so navigating to one left the stack
state (and its inherited params) behind, and each sub-view set a hardcoded
"Containers > ..." breadcrumb.
- Register stack-scoped child states docker.stacks.stack.container.{attach,
exec,inspect,logs,stats} mirroring the global ones, so the inherited stack
params survive and the trail can be kept.
- Centralize the breadcrumb logic in containerBreadcrumbs.ts (moved out of
ItemView, which re-exports it) and add isStackContainerState +
getContainerSubTabBreadcrumbs + buildStackContainerLinkParams.
- ActionLinksRow links sub-tabs into the stack tree (with stack+container
params) when opened from a stack, else the global states unchanged.
- InspectView + the logs/stats/console controllers render the stack-aware
trail; set up-front (no name) so it survives the load window and errors.
Covers regular/external/orphaned stacks and the non-stack fallback,
matching the existing ItemView breadcrumb behavior. New unit tests in
containerBreadcrumbs.test.ts.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* refactor(sidebar): migrate sidebar to react [EE-2907]
fixes [EE-2907]
feat(sidebar): show label for help
fix(sidebar): apply changes from ddExtension
fix(sidebar): resolve conflicts
style(ts): add explanation for ddExtension
fix(sidebar): use enum for status
refactor(sidebar): rename to EdgeComputeSidebar
refactor(sidebar): removed the need of `ident` prop
style(sidebar): add ref for mobile breakpoint
refactor(app): document testing props
refactor(sidebar): use single sidebar item
refactor(sidebar): use section for nav
refactor(sidebar): rename sidebarlink to link
refactor(sidebar): memoize menu paths
fix(kubectl-shell): infinite loop on hooks dependencies
refactor(sidebar): use authorized element
feat(k8s/shell): track open shell
refactor(k8s/shell): remove memoization
refactor(settings): move settings queries to queries
fix(sidebar): close sidebar on mobile
refactor(settings): use mutation helpers
refactor(sidebar): remove memo
refactor(sidebar): rename sidebar item for storybook
refactor(sidebar): move to react
gprefactor(sidebar): remove dependence on EndProvider
feat(environments): rename settings type
feat(kube): move kubeconfig button
fix(sidebar): open submenus
fix(sidebar): open on expand
fix(sibebar): show kube shell correctly
* fix(sidebar): import from react component
* chore(tests): fix missing prop
* Initial extension build
* Add auto login
fix auto auth
add some message
Add extension version
Double attempt to login
Add auto login from jwt check
Add autologin on logout
revert sidebar
Catch error 401 to relogin
cleanup login
Add password generator
Hide User block and collapse sidebar by default
hide user box and toggle sidebar
remove defailt dd
Integrate extension to portainer
Move extension to build
remove files from ignore
Move extension folder
fix alpine
try to copy folder
try add
Change base image
move folder extension
ignore folder build
Fix
relative path
Move ext to root
fix image name
versioned index
Update extension on same image
Update mod
* fix kubeshell baseurl
* Fix kube shell
* move build and remove https
* Tidy mod
* Remove space
* Fix hash test
* Password manager
* change to building locally
* Restore version variable and add local install command
* fix local dev image + hide users & auth
* Password manageListen on locahost onlyr
* FIxes base path
* Hide only username
* Move default to constants
* Update app/portainer/components/PageHeader/HeaderContent.html
Co-authored-by: Chaim Lev-Ari <chiptus@users.noreply.github.com>
* fix 2 failing FE tests [EE-2938]
* remove password autogeneration from v1
* fix webhooks
* fix docker container console and attach
* fix default for portainer IP
* update meta, dockerfile and makefile for new ver
* fix basepath in kube and docker console
* revert makefile changes
* add icon back
* Add remote short cut command
* make local methods the default
* default to 0.0.0 for version for local development
* simplify make commands
* small build fixes
* resolve conflicts
* Update api/filesystem/write.go
Co-authored-by: Chaim Lev-Ari <chiptus@users.noreply.github.com>
* use a more secure default pass
Co-authored-by: itsconquest <william.conquest@portainer.io>
Co-authored-by: Chaim Lev-Ari <chiptus@users.noreply.github.com>
* chore(project): install prettier and lint-staged
* chore(project): apply prettier to html too
* chore(project): git ignore eslintcache
* chore(project): add a comment about format script
* chore(prettier): update printWidth
* chore(prettier): remove useTabs option
* chore(prettier): add HTML validation
* refactor(prettier): fix closing tags
* feat(prettier): define angular parser for html templates
* style(prettier): run prettier on codebase
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* fix(api): add an authenticated access policy to the websocket endpoint
* refactor(api): centralize EndpointAccess validation
* feat(api): validate id query parameter for the /websocket/exec endpoint