Browse Source

Navigation improvements. (#1073)

pull/1074/head
Sebastian Stehle 2 years ago
committed by GitHub
parent
commit
60ce0f0a25
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      backend/i18n/source/backend_en.json
  2. 1
      frontend/src/app/features/administration/pages/event-consumers/event-consumers-page.component.html
  3. 1
      frontend/src/app/features/administration/pages/restore/restore-page.component.html
  4. 1
      frontend/src/app/features/administration/pages/users/users-page.component.html
  5. 1
      frontend/src/app/features/assets/pages/assets-page.component.html
  6. 3
      frontend/src/app/features/content/pages/content/content-page.component.html
  7. 12
      frontend/src/app/features/content/pages/content/content-page.component.ts
  8. 2
      frontend/src/app/features/content/pages/contents/contents-page.component.html
  9. 1
      frontend/src/app/features/rules/pages/rule/rule-page.component.html
  10. 1
      frontend/src/app/features/rules/pages/rules/rules-page.component.html
  11. 2
      frontend/src/app/features/schemas/pages/schema/schema-page.component.html
  12. 2
      frontend/src/app/features/settings/pages/asset-scripts/asset-scripts-page.component.html
  13. 2
      frontend/src/app/features/settings/pages/clients/clients-page.component.html
  14. 2
      frontend/src/app/features/settings/pages/contributors/contributors-page.component.html
  15. 1
      frontend/src/app/features/settings/pages/jobs/jobs-page.component.html
  16. 2
      frontend/src/app/features/settings/pages/languages/languages-page.component.html
  17. 2
      frontend/src/app/features/settings/pages/more/more-page.component.html
  18. 2
      frontend/src/app/features/settings/pages/plans/plans-page.component.html
  19. 2
      frontend/src/app/features/settings/pages/roles/roles-page.component.html
  20. 2
      frontend/src/app/features/settings/pages/settings/settings-page.component.html
  21. 1
      frontend/src/app/features/settings/pages/templates/templates-page.component.html
  22. 2
      frontend/src/app/features/settings/pages/workflows/workflows-page.component.html
  23. 2
      frontend/src/app/features/teams/pages/contributors/contributors-page.component.html
  24. 2
      frontend/src/app/features/teams/pages/more/more-page.component.html
  25. 2
      frontend/src/app/features/teams/pages/plans/plans-page.component.html
  26. 2
      frontend/src/app/framework/angular/forms/editors/date-time-editor.component.html
  27. 2
      frontend/src/app/framework/angular/layout.component.html
  28. 1
      frontend/src/app/framework/internal.ts
  29. 23
      frontend/src/app/framework/services/previous-url.service.ts

1
backend/i18n/source/backend_en.json

@ -47,7 +47,6 @@
"common.defaultValue": "Default value",
"common.displayName": "Display name",
"common.documentation": "Documentation",
"common.editInNewTab": "Open in new tab",
"common.editor": "Editor",
"common.email": "Email",
"common.errorNoPermission": "You do not have the necessary permission.",

1
frontend/src/app/features/administration/pages/event-consumers/event-consumers-page.component.html

@ -43,6 +43,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

1
frontend/src/app/features/administration/pages/restore/restore-page.component.html

@ -71,6 +71,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

1
frontend/src/app/features/administration/pages/users/users-page.component.html

@ -59,6 +59,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

1
frontend/src/app/features/assets/pages/assets-page.component.html

@ -74,6 +74,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="filters"
routerLinkActive="active"
queryParamsHandling="preserve"

3
frontend/src/app/features/content/pages/content/content-page.component.html

@ -178,6 +178,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -189,6 +190,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="comments"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -201,6 +203,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="sidebar"
routerLinkActive="active"
queryParamsHandling="preserve"

12
frontend/src/app/features/content/pages/content/content-page.component.ts

@ -5,13 +5,13 @@
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved.
*/
import { AsyncPipe, NgIf, NgSwitch, NgSwitchCase } from '@angular/common';
import { AsyncPipe, Location, NgIf, NgSwitch, NgSwitchCase } from '@angular/common';
import { Component, OnInit } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ActivatedRoute, Router, RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';
import { Observable, of } from 'rxjs';
import { filter, map, tap } from 'rxjs/operators';
import { AnnotationCreate, AnnotationCreateAfterNavigate, AnnotationsSelect, AnnotationsSelectAfterNavigate, ApiUrlConfig, AppLanguageDto, AppsState, AuthService, AutoSaveKey, AutoSaveService, CanComponentDeactivate, CollaborationService, CommentsState, ConfirmClickDirective, ContentDto, ContentsState, defined, DialogService, DropdownMenuComponent, EditContentForm, LanguageSelectorComponent, LanguagesState, LayoutComponent, LocalStoreService, MessageBus, ModalDirective, ModalModel, ModalPlacementDirective, NotifoComponent, ResolveAssets, ResolveContents, SchemaDto, SchemasState, Settings, ShortcutDirective, SidebarMenuDirective, Subscriptions, TempService, TitleComponent, ToolbarComponent, ToolbarService, TooltipDirective, TourHintDirective, TourStepDirective, TranslatePipe, Types, Version, WatchingUsersComponent } from '@app/shared';
import { AnnotationCreate, AnnotationCreateAfterNavigate, AnnotationsSelect, AnnotationsSelectAfterNavigate, ApiUrlConfig, AppLanguageDto, AppsState, AuthService, AutoSaveKey, AutoSaveService, CanComponentDeactivate, CollaborationService, CommentsState, ConfirmClickDirective, ContentDto, ContentsState, defined, DialogService, DropdownMenuComponent, EditContentForm, LanguageSelectorComponent, LanguagesState, LayoutComponent, LocalStoreService, MessageBus, ModalDirective, ModalModel, ModalPlacementDirective, NotifoComponent, PreviousUrl, ResolveAssets, ResolveContents, SchemaDto, SchemasState, Settings, ShortcutDirective, SidebarMenuDirective, Subscriptions, TempService, TitleComponent, ToolbarComponent, ToolbarService, TooltipDirective, TourHintDirective, TourStepDirective, TranslatePipe, Types, Version, WatchingUsersComponent } from '@app/shared';
import { ContentExtensionComponent } from '../../shared/content-extension.component';
import { PreviewButtonComponent } from '../../shared/preview-button.component';
import { ContentEditorComponent } from './editor/content-editor.component';
@ -97,6 +97,8 @@ export class ContentPageComponent implements CanComponentDeactivate, OnInit {
private readonly messageBus: MessageBus,
private readonly languagesState: LanguagesState,
private readonly localStore: LocalStoreService,
private readonly location: Location,
private readonly previousUrl: PreviousUrl,
private readonly route: ActivatedRoute,
private readonly router: Router,
private readonly schemasState: SchemasState,
@ -290,7 +292,11 @@ export class ContentPageComponent implements CanComponentDeactivate, OnInit {
}
public back() {
this.router.navigate([this.schema.name], { relativeTo: this.route.parent!.parent, replaceUrl: true });
if (this.previousUrl.pathStartsWith(`/app/${this.contentsState.appName}/content/${this.schema.name}`)) {
this.location.back();
} else {
this.router.navigate([this.schema.name], { relativeTo: this.route.parent!.parent, replaceUrl: true });
}
}
public delete() {

2
frontend/src/app/features/content/pages/contents/contents-page.component.html

@ -147,6 +147,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="filters"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -157,6 +158,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="sidebar"
routerLinkActive="active"
queryParamsHandling="preserve"

1
frontend/src/app/features/rules/pages/rule/rule-page.component.html

@ -180,6 +180,7 @@
</ng-container>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

1
frontend/src/app/features/rules/pages/rules/rules-page.component.html

@ -54,6 +54,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/schemas/pages/schema/schema-page.component.html

@ -109,6 +109,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -119,6 +120,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/settings/pages/asset-scripts/asset-scripts-page.component.html

@ -38,6 +38,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -49,6 +50,7 @@
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/settings/pages/clients/clients-page.component.html

@ -29,6 +29,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -39,6 +40,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/settings/pages/contributors/contributors-page.component.html

@ -57,6 +57,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -67,6 +68,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

1
frontend/src/app/features/settings/pages/jobs/jobs-page.component.html

@ -32,6 +32,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/settings/pages/languages/languages-page.component.html

@ -28,6 +28,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -37,6 +38,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/settings/pages/more/more-page.component.html

@ -131,6 +131,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -141,6 +142,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/settings/pages/plans/plans-page.component.html

@ -52,6 +52,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -62,6 +63,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/settings/pages/roles/roles-page.component.html

@ -42,6 +42,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -52,6 +53,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/settings/pages/settings/settings-page.component.html

@ -150,6 +150,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -160,6 +161,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

1
frontend/src/app/features/settings/pages/templates/templates-page.component.html

@ -24,6 +24,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/settings/pages/workflows/workflows-page.component.html

@ -39,6 +39,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -49,6 +50,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/teams/pages/contributors/contributors-page.component.html

@ -46,6 +46,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -56,6 +57,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/teams/pages/more/more-page.component.html

@ -32,6 +32,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -41,6 +42,7 @@
<i class="icon-time"></i>
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/features/teams/pages/plans/plans-page.component.html

@ -48,6 +48,7 @@
<ng-template sidebarMenu>
<div class="panel-nav">
<a class="panel-link"
replaceUrl="true"
routerLink="history"
routerLinkActive="active"
queryParamsHandling="preserve"
@ -58,6 +59,7 @@
</a>
<a class="panel-link"
replaceUrl="true"
routerLink="help"
routerLinkActive="active"
queryParamsHandling="preserve"

2
frontend/src/app/framework/angular/forms/editors/date-time-editor.component.html

@ -1,5 +1,5 @@
<div class="d-flex root" (sqxResized)="setSize($event)" [class.mini]="size === 'Mini'" [class.compact]="size === 'Compact'">
<div class="form-group flex-grow me-1">
<div class="form-group flex-grow me-1 mb-0">
<div *ngIf="isDateTimeMode && shouldShowDateTimeModeButton">
<button type="button" class="btn btn-text-secondary btn-sm btn-time-mode" (click)="setLocalMode(false)" *ngIf="snapshot.isLocal">
{{ 'common.dateTimeEditor.local' | sqxTranslate }}

2
frontend/src/app/framework/angular/layout.component.html

@ -88,7 +88,7 @@
<div class="panel2-slice menu" *ngIf="!hideSidebar">
<div class="panel2-header menu">
<a class="btn panel2-collapse" [routerLink]="['./']" [queryParamsHandling]="closeQueryParamsHandling" [relativeTo]="route" *ngIf="firstChild | async">
<a class="btn panel2-collapse" [routerLink]="['./']" [queryParamsHandling]="closeQueryParamsHandling" [relativeTo]="route" replaceUrl="true" *ngIf="firstChild | async">
<i class="icon-angle-right"></i>
</a>
</div>

1
frontend/src/app/framework/internal.ts

@ -18,6 +18,7 @@ export * from './services/loading.service';
export * from './services/local-store.service';
export * from './services/localizer.service';
export * from './services/message-bus.service';
export * from './services/previous-url.service';
export * from './services/resize.service';
export * from './services/resource-loader.service';
export * from './services/shortcut.service';

23
frontend/src/app/framework/services/previous-url.service.ts

@ -0,0 +1,23 @@
/*
* Squidex Headless CMS
*
* @license
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved.
*/
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class PreviousUrl {
public pathStartsWith(path: string) {
try {
const url = new URL(document.referrer);
return url.pathname.startsWith(path);
} catch {
return false;
}
}
}
Loading…
Cancel
Save