-
-
Notifications
You must be signed in to change notification settings - Fork 19
mobile: widgets page, AI panel, sidebar polish + quick-filter chips #1822
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 4 commits
8cedb77
0893e98
78617cf
f7d0979
37cf40e
84f5b7c
aa15566
6a3079e
bb8d0d7
bd40f6b
de3b4a2
c2a46f8
e9366ae
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -5,8 +5,8 @@ | |||||||||||||||
| class="main-menu-sidenav" | ||||||||||||||||
| > | ||||||||||||||||
| <mat-toolbar>Rocketadmin</mat-toolbar> | ||||||||||||||||
| <mat-nav-list *ngIf="userLoggedIn === true"> | ||||||||||||||||
| <a mat-list-item routerLink="/connections-list" | ||||||||||||||||
| <mat-nav-list *ngIf="userLoggedIn === true" (click)="drawer.close()"> | ||||||||||||||||
| <a *ngIf="!connectionID" mat-list-item routerLink="/connections-list" | ||||||||||||||||
| routerLinkActive="nav-bar__button_active" | ||||||||||||||||
| aria-label="List of connections"> | ||||||||||||||||
| <mat-icon matListItemIcon class="connection-navigation__icon"> | ||||||||||||||||
|
|
@@ -21,7 +21,7 @@ | |||||||||||||||
| {{navigationTabs[tab].caption}} | ||||||||||||||||
| </a> | ||||||||||||||||
| </mat-nav-list> | ||||||||||||||||
| <a mat-list-item routerLink="/user-settings" class="connection-navigation__item_user" data-testid="account-link-account-menu"> | ||||||||||||||||
| <a mat-list-item routerLink="/user-settings" class="connection-navigation__item_user account-section-item" data-testid="account-link-account-menu"> | ||||||||||||||||
| <mat-icon matListItemIcon class="connection-navigation__icon connection-navigation__icon_account" | ||||||||||||||||
| matBadge="1" [matBadgeHidden]="currentUser.isActive" | ||||||||||||||||
| matBadgeColor="accent" matBadgeSize="small"> | ||||||||||||||||
|
|
@@ -30,35 +30,44 @@ | |||||||||||||||
| <div matListItemTitle>Account</div> | ||||||||||||||||
| <div matListItemLine>{{currentUser.email}}</div> | ||||||||||||||||
| </a> | ||||||||||||||||
| <a mat-list-item routerLink="/company" data-testid="company-link-account-menu"> | ||||||||||||||||
| <a mat-list-item routerLink="/company" class="account-section-item" data-testid="company-link-account-menu"> | ||||||||||||||||
| <mat-icon matListItemIcon class="connection-navigation__icon"> | ||||||||||||||||
| apartment | ||||||||||||||||
| </mat-icon> | ||||||||||||||||
| <div matListItemTitle>Company</div> | ||||||||||||||||
| </a> | ||||||||||||||||
| <a mat-list-item routerLink="/secrets" data-testid="secrets-link-account-menu"> | ||||||||||||||||
| <a mat-list-item routerLink="/hosted-databases" | ||||||||||||||||
| routerLinkActive="nav-bar__button_active" | ||||||||||||||||
| aria-label="Hosted databases"> | ||||||||||||||||
| <mat-icon matListItemIcon fontSet="material-symbols-outlined" class="connection-navigation__icon"> | ||||||||||||||||
| database | ||||||||||||||||
| </mat-icon> | ||||||||||||||||
| <div matListItemTitle>Hosted databases</div> | ||||||||||||||||
| </a> | ||||||||||||||||
|
Comment on lines
+39
to
+46
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Finish wiring the new Hosted databases entry across both account menus. This adds the route in the mobile sidenav, but the desktop 🤖 Prompt for AI Agents |
||||||||||||||||
| <a mat-list-item routerLink="/secrets" class="account-section-item" data-testid="secrets-link-account-menu"> | ||||||||||||||||
| <mat-icon matListItemIcon class="connection-navigation__icon"> | ||||||||||||||||
| key | ||||||||||||||||
| </mat-icon> | ||||||||||||||||
| <div matListItemTitle>Secrets</div> | ||||||||||||||||
| </a> | ||||||||||||||||
| <a mat-list-item *ngIf="isSaas" routerLink="/zapier" data-testid="zapier-link-account-menu"> | ||||||||||||||||
| <a mat-list-item *ngIf="isSaas" routerLink="/zapier" class="account-section-item" data-testid="zapier-link-account-menu"> | ||||||||||||||||
| <mat-icon matListItemIcon class="connection-navigation__icon"> | ||||||||||||||||
| electric_bolt | ||||||||||||||||
| </mat-icon> | ||||||||||||||||
| <div matListItemTitle>Zapier</div> | ||||||||||||||||
| </a> | ||||||||||||||||
| <a mat-list-item href="https://docs.rocketadmin.com/" target="_blank"> | ||||||||||||||||
| <a mat-list-item class="account-section-item" href="https://docs.rocketadmin.com/" target="_blank"> | ||||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add Opening a new tab with Suggested fix- <a mat-list-item class="account-section-item" href="https://docs.rocketadmin.com/" target="_blank">
+ <a
+ mat-list-item
+ class="account-section-item"
+ href="https://docs.rocketadmin.com/"
+ target="_blank"
+ rel="noopener noreferrer">📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||
| <mat-icon matListItemIcon class="connection-navigation__icon" fontSet="material-symbols-outlined">help</mat-icon> | ||||||||||||||||
| <div matListItemTitle>Help center</div> | ||||||||||||||||
| </a> | ||||||||||||||||
| <mat-list-item (click)="logOut()" data-testid="logout-button-account-menu"> | ||||||||||||||||
| <mat-list-item class="account-section-item" (click)="logOut()" data-testid="logout-button-account-menu"> | ||||||||||||||||
| <mat-icon matListItemIcon class="connection-navigation__icon">logout</mat-icon> | ||||||||||||||||
| <div matListItemTitle>Log out</div> | ||||||||||||||||
| </mat-list-item> | ||||||||||||||||
|
Comment on lines
+63
to
66
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
# 1) Show the referenced region with line numbers
sed -n '40,90p' frontend/src/app/app.component.html | nl -ba | sed -n '1,120p'
# 2) Search for the logout handler usage
rg -n "logOut\\(" frontend/src/app/app.component.html frontend/src/app -S || true
# 3) Find other mat-list-item + click patterns for keyboard/a11y precedents
rg -n "mat-list-item\\b[^\\n]*\\(click\\)" frontend/src/app -S || true
# 4) Check whether mat-list-item is used as a button anywhere else
rg -n "<button[^>]*\\bmat-list-item\\b|\\bmat-list-item\\b[^\\n]*routerLink|mat-list-item\\b[^\\n]*href" frontend/src/app -S || trueRepository: rocket-admin/rocketadmin Length of output: 111 🏁 Script executed: #!/bin/bash
set -euo pipefail
# 1) Show referenced region with line numbers (avoid nl)
sed -n '55,80p' frontend/src/app/app.component.html | cat -n
# 2) Search for the logout handler usage
rg -n "logOut\\(" frontend/src/app/app.component.html frontend/src/app -S || true
# 3) Find mat-list-item + click patterns for accessibility precedent
rg -n "mat-list-item\\b[^\\n]*\\(click\\)" frontend/src/app -S || true
# 4) Check for any existing pattern of using a real button with mat-list-item in this repo
rg -n "<button[^>]*\\bmat-list-item\\b|mat-list-item\\b[^\\n]*\\brole=\\\"button\\\"|mat-list-item\\b[^\\n]*\\btabindex=" frontend/src/app -S || trueRepository: rocket-admin/rocketadmin Length of output: 3280 🏁 Script executed: #!/bin/bash
set -euo pipefail
# A) Show the logout list-item region precisely
sed -n '55,75p' frontend/src/app/app.component.html | cat -n
# B) Show the other logout button usage near line ~222
sed -n '205,235p' frontend/src/app/app.component.html | cat -n
# C) Find all mat-list-item elements with (click)=
rg -n "mat-list-item\\b[^>]*\\(click\\)=" frontend/src/app -S || true
# D) Find whether repo already uses <button ... mat-list-item ...>
rg -n "<button[^>]*\\bmat-list-item\\b" frontend/src/app -S || true
# E) Find other mat-list-item usages to see intended pattern (a vs button vs bare mat-list-item)
rg -n "mat-list-item\\b" frontend/src/app -S | head -n 80Repository: rocket-admin/rocketadmin Length of output: 8002 Use a real button for the “Log out” row (account menu) In <mat-list-item class="account-section-item" (click)="logOut()" data-testid="logout-button-account-menu">
<mat-icon matListItemIcon class="connection-navigation__icon">logout</mat-icon>
<div matListItemTitle>Log out</div>
</mat-list-item>Suggested fix- <mat-list-item class="account-section-item" (click)="logOut()" data-testid="logout-button-account-menu">
+ <button type="button" mat-list-item class="account-section-item" (click)="logOut()" data-testid="logout-button-account-menu">
<mat-icon matListItemIcon class="connection-navigation__icon">logout</mat-icon>
<div matListItemTitle>Log out</div>
- </mat-list-item>
+ </button>🤖 Prompt for AI Agents |
||||||||||||||||
| </mat-nav-list> | ||||||||||||||||
| <a mat-flat-button color="accent" *ngIf="isSaas && currentUser && currentUser.role === 'ADMIN'" class="connection-navigation__upgrade-button" routerLink="/upgrade" | ||||||||||||||||
| routerLinkActive="nav-bar__button_active"> | ||||||||||||||||
| routerLinkActive="nav-bar__button_active" | ||||||||||||||||
| (click)="drawer.close()"> | ||||||||||||||||
| Upgrade | ||||||||||||||||
| </a> | ||||||||||||||||
| </mat-sidenav> | ||||||||||||||||
|
|
@@ -88,7 +97,7 @@ | |||||||||||||||
| class="logo__image"> | ||||||||||||||||
| <ng-template #defaultRocketLogo> | ||||||||||||||||
| <picture> | ||||||||||||||||
| <source media="(max-width: 600px)" srcset="../assets/rocketadmin_logo_white-short.svg"> | ||||||||||||||||
| <source *ngIf="connectionID" media="(max-width: 600px)" srcset="../assets/rocketadmin_logo_white-short.svg"> | ||||||||||||||||
| <img src="../assets/rocketadmin_logo_white.svg" alt="Rocketadmin logo" class="logo__image"> | ||||||||||||||||
| </picture> | ||||||||||||||||
| </ng-template> | ||||||||||||||||
|
|
@@ -125,6 +134,11 @@ | |||||||||||||||
| [ngClass]="{'connection_active': connectionID === connection.connection.id}"> | ||||||||||||||||
| {{connection.displayTitle}} | ||||||||||||||||
| </a> | ||||||||||||||||
| <mat-divider></mat-divider> | ||||||||||||||||
| <a mat-menu-item routerLink="/hosted-databases"> | ||||||||||||||||
| <mat-icon class="nav-menu__list-link-icon" fontSet="material-symbols-outlined">database</mat-icon> | ||||||||||||||||
| <span>Hosted databases</span> | ||||||||||||||||
| </a> | ||||||||||||||||
| </ng-template> | ||||||||||||||||
| </mat-menu> | ||||||||||||||||
| <span *ngIf="isDemo" class="logo__demo-mark">demo</span> | ||||||||||||||||
|
|
||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: rocket-admin/rocketadmin
Length of output: 175
🏁 Script executed:
Repository: rocket-admin/rocketadmin
Length of output: 1145
🏁 Script executed:
Repository: rocket-admin/rocketadmin
Length of output: 6033
🏁 Script executed:
Repository: rocket-admin/rocketadmin
Length of output: 208
🏁 Script executed:
Repository: rocket-admin/rocketadmin
Length of output: 229
🏁 Script executed:
Repository: rocket-admin/rocketadmin
Length of output: 5357
🌐 Web query:
stylelint-config-standard-scss selector-pseudo-element-no-unknown default enabled💡 Result:
The rule selector-pseudo-element-no-unknown is enabled by default in stylelint-config-standard-scss [1][2]. This is because stylelint-config-standard-scss extends the standard Stylelint configuration (stylelint-config-standard), which includes core Stylelint rules such as selector-pseudo-element-no-unknown to enforce standard CSS practices [1][3][2]. If this rule causes issues in your project (for example, by flagging valid SCSS-specific selectors or non-standard vendor-prefixed pseudo-elements), you can disable or customize it by adding it to the rules section of your Stylelint configuration file [1][4][3]. Example of how to disable the rule: { "extends": "stylelint-config-standard-scss", "rules": { "selector-pseudo-element-no-unknown": null } } Example of how to allow specific pseudo-elements: { "extends": "stylelint-config-standard-scss", "rules": { "selector-pseudo-element-no-unknown": [true, { "ignorePseudoElements": ["your-custom-pseudo-element"] }] } }
Citations:
🏁 Script executed:
Repository: rocket-admin/rocketadmin
Length of output: 12806
🏁 Script executed:
Repository: rocket-admin/rocketadmin
Length of output: 6299
Remove
::ng-deepfromfrontend/src/app/app.component.css(lines 44-46)::ng-deepin the backdrop override (.main-menu-container ::ng-deep .mat-drawer-backdrop...) will be flagged by Stylelint because.stylelintrc.jsonextendsstylelint-config-standard-scsswithout disablingselector-pseudo-element-no-unknown. Move this backdrop override to a global stylesheet (or otherwise apply it outside view encapsulation) to avoid deep selectors.🧰 Tools
🪛 Stylelint (17.12.0)
[error] 44-44: Unknown pseudo-element selector "::ng-deep" (selector-pseudo-element-no-unknown)
(selector-pseudo-element-no-unknown)
🤖 Prompt for AI Agents