feat(web): English paths, and a portfolio that updates itself
/cartera, /explorar and /p/:key/proponer are /portfolio, /explore and /p/:key/propose now, like every other path; the Spanish ones redirect, so links already shared keep working. Settings sections go by ?section= with English names. The portfolio reads itself again, quietly, when a ticket, sprint or release of the projects shown changes, when my projects change, or when the live connection comes back; «En directo» replaces the refresh button. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -15066,7 +15066,7 @@
|
||||
"path": {
|
||||
"type": "string",
|
||||
"nullable": true,
|
||||
"example": "/p/WEB/proponer",
|
||||
"example": "/p/WEB/propose",
|
||||
"description": "The form in the web app, while it takes them"
|
||||
},
|
||||
"top": {
|
||||
|
||||
@@ -3012,7 +3012,7 @@ export interface components {
|
||||
open: boolean;
|
||||
/**
|
||||
* @description The form in the web app, while it takes them
|
||||
* @example /p/WEB/proponer
|
||||
* @example /p/WEB/propose
|
||||
*/
|
||||
path: string | null;
|
||||
/** @description Open proposals, most voted first */
|
||||
|
||||
@@ -12,6 +12,8 @@ describe('appRoutes', () => {
|
||||
const children = app?.children ?? [];
|
||||
expect(children.map((route) => route.path)).toEqual([
|
||||
'',
|
||||
'portfolio',
|
||||
'explore',
|
||||
'cartera',
|
||||
'explorar',
|
||||
'p/:key',
|
||||
@@ -19,7 +21,10 @@ describe('appRoutes', () => {
|
||||
expect(children[0].canActivate).toContain(authGuard);
|
||||
expect(children[1].canActivate).toContain(authGuard);
|
||||
expect(children[2].canActivate).toBeUndefined();
|
||||
expect(children[3].canActivate).toBeUndefined();
|
||||
expect(children[5].canActivate).toBeUndefined();
|
||||
// The Spanish paths of shared links lead to the English ones.
|
||||
expect(children[3].redirectTo).toBe('portfolio');
|
||||
expect(children[4].redirectTo).toBe('explore');
|
||||
});
|
||||
|
||||
it('exposes every project section', () => {
|
||||
@@ -28,8 +33,9 @@ describe('appRoutes', () => {
|
||||
?.children?.find((route) => route.path === 'p/:key');
|
||||
expect(project?.children?.map((route) => route.path)).toEqual([
|
||||
'',
|
||||
'board',
|
||||
'proponer',
|
||||
'board',
|
||||
'propose',
|
||||
'list',
|
||||
'issues/:issueKey',
|
||||
'backlog',
|
||||
|
||||
@@ -45,7 +45,7 @@ import {
|
||||
<a
|
||||
shellNav
|
||||
class="ts-nav-link"
|
||||
routerLink="/cartera"
|
||||
routerLink="/portfolio"
|
||||
routerLinkActive="is-active"
|
||||
>
|
||||
Cartera
|
||||
@@ -54,7 +54,7 @@ import {
|
||||
<a
|
||||
shellNav
|
||||
class="ts-nav-link"
|
||||
routerLink="/explorar"
|
||||
routerLink="/explore"
|
||||
routerLinkActive="is-active"
|
||||
>
|
||||
Explorar
|
||||
|
||||
Reference in New Issue
Block a user