fix(admin): P0 user-reported bugs - raw keys, table overflow, builder escape route

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

- Transactions: 'adminTransactions.flag'/'clearFlag' raw keys rendered on the fraud toggle button (missed by earlier audit because the key sits inside a ternary); added en/ru/hy strings with merchant wording ('Flag as suspicious')
- Table overflow on Customers/Transactions root-caused: app-table host is a grid item with default min-width:auto, so wide tables stretched their parent card instead of scrolling inside the wrapper; shared TableComponent now declares display:block/min-width:0/max-width:100% on its element selector (encapsulation None - :host would not match), fixing every admin table at once; verified in browser: cards contained, wrapper scrolls internally
- Builder trap root-caused: section editor pages (/:lang/edit/<section>) had zero routes to the backoffice - only a link back to the builder overview - so admins inside a section could not return to the dashboard; sidebar now has a persistent 'Back to dashboard' link (new builder.backToDashboard key, en/ru/hy); verified navigation lands on /ru/backoffice/dashboard
This commit is contained in:
sdarbinyan
2026-07-19 08:25:29 +04:00
parent 16dec127c9
commit c452d28eca
8 changed files with 53 additions and 0 deletions

View File

@@ -686,6 +686,7 @@ export const en: Translations = {
linkUrlDesc: 'Path or URL this navigation link points to.',
linkVisibleDesc: 'Whether this navigation link is shown to shoppers.',
appName: 'Marketplace Builder',
backToDashboard: 'Back to dashboard',
breadcrumbRoot: 'Marketplace Builder',
statusComplete: 'Complete',
statusInProgress: 'In progress',
@@ -1628,6 +1629,8 @@ export const en: Translations = {
method: 'Payment method',
fraud: 'Fraud check',
flagged: 'Flagged',
flag: 'Flag as suspicious',
clearFlag: 'Clear flag',
retry: 'Retry',
audit: 'History',
emptyTitle: 'No transactions found',

View File

@@ -686,6 +686,7 @@ export const hy: Translations = {
linkUrlDesc: 'Ուղին կամ URL-ը, որին ուղղորդում է այս նավիգացիոն հղումը։',
linkVisibleDesc: 'Արդյո՞ք այս նավիգացիոն հղումը ցուցադրվում է գնորդներին։',
appName: 'Մարկետփլեյսի կոնստրուկտոր',
backToDashboard: 'Վերադառնալ կառավարման վահանակ',
breadcrumbRoot: 'Մարկետփլեյսի կոնստրուկտոր',
statusComplete: 'Ավարտված',
statusInProgress: 'Ընթացքի մեջ',
@@ -1623,6 +1624,8 @@ export const hy: Translations = {
method: 'Վճարման եղանակ',
fraud: 'Խարդախության ստուգում',
flagged: 'Նշված',
flag: 'Նշել որպես կասկածելի',
clearFlag: 'Հանել նշումը',
retry: 'Կրկնել',
audit: 'Պատմություն',
emptyTitle: 'Գործարքներ չեն գտնվել',

View File

@@ -686,6 +686,7 @@ export const ru: Translations = {
linkUrlDesc: 'Путь или URL, на который ведёт эта ссылка навигации.',
linkVisibleDesc: 'Показывать ли эту ссылку навигации покупателям.',
appName: 'Конструктор маркетплейса',
backToDashboard: 'Назад в панель управления',
breadcrumbRoot: 'Конструктор маркетплейса',
statusComplete: 'Готово',
statusInProgress: 'В процессе',
@@ -1623,6 +1624,8 @@ export const ru: Translations = {
method: 'Способ оплаты',
fraud: 'Проверка на мошенничество',
flagged: 'Помечено',
flag: 'Пометить как подозрительную',
clearFlag: 'Снять пометку',
retry: 'Повторить',
audit: 'История',
emptyTitle: 'Транзакции не найдены',

View File

@@ -684,6 +684,7 @@ export interface Translations {
linkUrlDesc: string;
linkVisibleDesc: string;
appName: string;
backToDashboard: string;
breadcrumbRoot: string;
statusComplete: string;
statusInProgress: string;
@@ -1635,6 +1636,8 @@ export interface Translations {
method: string;
fraud: string;
flagged: string;
flag: string;
clearFlag: string;
retry: string;
audit: string;
emptyTitle: string;