54 lines
1.4 KiB
TypeScript
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,
|
||
|
},
|
||
|
},
|
||
|
];
|