datasurvey/src/main/webapp/app/admin/user-management/user-management.route.ts

54 lines
1.4 KiB
TypeScript

import { Injectable } from '@angular/core';
import { Resolve, ActivatedRouteSnapshot, Routes } from '@angular/router';
import { Observable, of } from 'rxjs';
import { User, IUser } from './user-management.model';
import { UserManagementService } from './service/user-management.service';
import { UserManagementComponent } from './list/user-management.component';
import { UserManagementDetailComponent } from './detail/user-management-detail.component';
import { UserManagementUpdateComponent } from './update/user-management-update.component';
@Injectable({ providedIn: 'root' })
export class UserManagementResolve implements Resolve<IUser> {
constructor(private service: UserManagementService) {}
resolve(route: ActivatedRouteSnapshot): Observable<IUser> {
const id = route.params['login'];
if (id) {
return this.service.find(id);
}
return of(new User());
}
}
export const userManagementRoute: Routes = [
{
path: '',
component: UserManagementComponent,
data: {
defaultSort: 'id,asc',
},
},
{
path: ':login/view',
component: UserManagementDetailComponent,
resolve: {
user: UserManagementResolve,
},
},
{
path: 'new',
component: UserManagementUpdateComponent,
resolve: {
user: UserManagementResolve,
},
},
{
path: ':login/edit',
component: UserManagementUpdateComponent,
resolve: {
user: UserManagementResolve,
},
},
];