bug fixed
This commit is contained in:
parent
b161bf6d66
commit
83665af16f
|
@ -96,11 +96,16 @@
|
||||||
<div class="content-container" fxFlexFill>
|
<div class="content-container" fxFlexFill>
|
||||||
<mat-sidenav-container autosize="true" fxFlexFill>
|
<mat-sidenav-container autosize="true" fxFlexFill>
|
||||||
<mat-sidenav #leftSidenav class="left-sidenav" mode="side" opened="true">
|
<mat-sidenav #leftSidenav class="left-sidenav" mode="side" opened="true">
|
||||||
<ng-container fxFlexFill *ngComponentOutlet="leftSectionComponent">
|
<ng-container
|
||||||
|
fxFlexFill
|
||||||
|
*ngComponentOutlet="sidenavComponent; injector: sidenavInjector"
|
||||||
|
>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</mat-sidenav>
|
</mat-sidenav>
|
||||||
<div fxFlex="1 1 auto">
|
<div fxFlex="1 1 auto">
|
||||||
<ng-container *ngComponentOutlet="contentSectionComponent">
|
<ng-container
|
||||||
|
*ngComponentOutlet="contentComponent; injector: contentInjector"
|
||||||
|
>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
</mat-sidenav-container>
|
</mat-sidenav-container>
|
||||||
|
|
|
@ -1,7 +1,14 @@
|
||||||
import { Subscription } from 'rxjs';
|
import { Subscription } from 'rxjs';
|
||||||
|
|
||||||
import { Component, ViewChild, OnDestroy, OnInit, Type } from '@angular/core';
|
import {
|
||||||
import { Router, ActivatedRoute } from '@angular/router';
|
Component,
|
||||||
|
ViewChild,
|
||||||
|
OnDestroy,
|
||||||
|
OnInit,
|
||||||
|
Type,
|
||||||
|
Injector
|
||||||
|
} from '@angular/core';
|
||||||
|
import { Router, NavigationEnd } from '@angular/router';
|
||||||
|
|
||||||
import { MatTabChangeEvent } from '@angular/material/tabs';
|
import { MatTabChangeEvent } from '@angular/material/tabs';
|
||||||
import { MatSidenav } from '@angular/material/sidenav';
|
import { MatSidenav } from '@angular/material/sidenav';
|
||||||
|
@ -11,6 +18,7 @@ import { Store, select } from '@ngrx/store';
|
||||||
import { LogService } from '@ucap/ng-logger';
|
import { LogService } from '@ucap/ng-logger';
|
||||||
|
|
||||||
import { AppSelector } from '@app/store/state';
|
import { AppSelector } from '@app/store/state';
|
||||||
|
import { UCAP_PATH_PARAM } from '@app/types/tokens';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-layouts-default',
|
selector: 'app-layouts-default',
|
||||||
|
@ -21,20 +29,25 @@ export class DefaultLayoutComponent implements OnInit, OnDestroy {
|
||||||
@ViewChild('leftSidenav', { static: true })
|
@ViewChild('leftSidenav', { static: true })
|
||||||
leftSidenav: MatSidenav;
|
leftSidenav: MatSidenav;
|
||||||
|
|
||||||
leftSectionComponent: Type<any>;
|
sidenavComponent: Type<any>;
|
||||||
contentSectionComponent: Type<any>;
|
sidenavInjector: Injector;
|
||||||
|
contentComponent: Type<any>;
|
||||||
|
contentInjector: Injector;
|
||||||
|
|
||||||
private windowSizeSubscription: Subscription;
|
private windowSizeSubscription: Subscription;
|
||||||
private routerEventSubscription: Subscription;
|
private routerEventSubscription: Subscription;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private router: Router,
|
private router: Router,
|
||||||
private activatedRoute: ActivatedRoute,
|
private injector: Injector,
|
||||||
private store: Store<any>,
|
private store: Store<any>,
|
||||||
private logService: LogService
|
private logService: LogService
|
||||||
) {
|
) {
|
||||||
this.routerEventSubscription = this.router.events.subscribe((event) => {
|
this.routerEventSubscription = this.router.events.subscribe((event) => {
|
||||||
this.logService.debug('DefaultLayoutComponent', event);
|
if (event instanceof NavigationEnd) {
|
||||||
|
this.logService.debug('DefaultLayoutComponent', event);
|
||||||
|
this.onRoute(event.url);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,28 +95,40 @@ export class DefaultLayoutComponent implements OnInit, OnDestroy {
|
||||||
|
|
||||||
onRoute(url: string) {
|
onRoute(url: string) {
|
||||||
this.logService.debug('onRoute', url);
|
this.logService.debug('onRoute', url);
|
||||||
|
|
||||||
|
this.sidenavInjector = Injector.create({
|
||||||
|
providers: [{ provide: UCAP_PATH_PARAM, useValue: 'sidenav' }],
|
||||||
|
parent: this.injector
|
||||||
|
});
|
||||||
|
this.contentInjector = Injector.create({
|
||||||
|
providers: [{ provide: UCAP_PATH_PARAM, useValue: 'content' }],
|
||||||
|
parent: this.injector
|
||||||
|
});
|
||||||
|
|
||||||
switch (url) {
|
switch (url) {
|
||||||
case '/organization':
|
case '/organization':
|
||||||
import('@app/sections/organization/organization.section.module').then(
|
import('@app/pages/organization/organization.page.module').then((m) => {
|
||||||
(m) => {
|
this.sidenavComponent = m.SidenavPageComponent;
|
||||||
this.leftSectionComponent = m.TreeListSectionComponent;
|
this.contentComponent = m.IndexPageComponent;
|
||||||
}
|
});
|
||||||
);
|
|
||||||
import('@app/sections/organization/organization.section.module').then(
|
|
||||||
(m) => {
|
|
||||||
this.contentSectionComponent = m.MembersSectionComponent;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
case '/group':
|
case '/group':
|
||||||
|
import('@app/pages/group/group.page.module').then((m) => {
|
||||||
|
this.sidenavComponent = m.SidenavPageComponent;
|
||||||
|
this.contentComponent = m.IndexPageComponent;
|
||||||
|
});
|
||||||
break;
|
break;
|
||||||
case '/chat':
|
case '/chat':
|
||||||
import('@app/pages/chat/chat.page.module').then((m) => {
|
import('@app/pages/chat/chat.page.module').then((m) => {
|
||||||
this.leftSectionComponent = m.RoomListPageComponent;
|
this.sidenavComponent = m.SidenavPageComponent;
|
||||||
this.contentSectionComponent = m.IndexPageComponent;
|
this.contentComponent = m.IndexPageComponent;
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case '/message':
|
case '/message':
|
||||||
|
import('@app/pages/message/message.page.module').then((m) => {
|
||||||
|
this.sidenavComponent = m.SidenavPageComponent;
|
||||||
|
this.contentComponent = m.IndexPageComponent;
|
||||||
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -1,14 +1,7 @@
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { Routes, RouterModule } from '@angular/router';
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { IndexPageComponent } from './components/index.page.component';
|
const routes: Routes = [];
|
||||||
|
|
||||||
const routes: Routes = [
|
|
||||||
{
|
|
||||||
path: 'index',
|
|
||||||
component: IndexPageComponent
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [RouterModule.forChild(routes)],
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
|
|
@ -5,7 +5,12 @@ import { FlexLayoutModule } from '@angular/flex-layout';
|
||||||
|
|
||||||
import { AppCallRoutingPageModule } from './call-routing.page.module';
|
import { AppCallRoutingPageModule } from './call-routing.page.module';
|
||||||
|
|
||||||
import { COMPONENTS } from './components';
|
import { IndexPageComponent } from './components/index.page.component';
|
||||||
|
import { SidenavPageComponent } from './components/sidenav.page.component';
|
||||||
|
|
||||||
|
export const COMPONENTS = [IndexPageComponent, SidenavPageComponent];
|
||||||
|
|
||||||
|
export { IndexPageComponent, SidenavPageComponent };
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [CommonModule, FlexLayoutModule, AppCallRoutingPageModule],
|
imports: [CommonModule, FlexLayoutModule, AppCallRoutingPageModule],
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<div fxFlexFill>
|
||||||
|
sidenav page of call is works!
|
||||||
|
</div>
|
|
@ -1,28 +1,28 @@
|
||||||
import { TestBed, async } from '@angular/core/testing';
|
import { TestBed, async } from '@angular/core/testing';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { RoomListPageComponent } from './room-list.page.component';
|
import { SidenavPageComponent } from './sidenav.page.component';
|
||||||
|
|
||||||
describe('app::pages::chat::RoomListPageComponent', () => {
|
describe('app::pages::call::SidenavPageComponent', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [RouterTestingModule],
|
imports: [RouterTestingModule],
|
||||||
declarations: [RoomListPageComponent]
|
declarations: [SidenavPageComponent]
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('should create the app', () => {
|
it('should create the app', () => {
|
||||||
const fixture = TestBed.createComponent(RoomListPageComponent);
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
const app = fixture.componentInstance;
|
const app = fixture.componentInstance;
|
||||||
expect(app).toBeTruthy();
|
expect(app).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`should have as title 'ucap-lg-web'`, () => {
|
it(`should have as title 'ucap-lg-web'`, () => {
|
||||||
const fixture = TestBed.createComponent(RoomListPageComponent);
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
const app = fixture.componentInstance;
|
const app = fixture.componentInstance;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render title', () => {
|
it('should render title', () => {
|
||||||
const fixture = TestBed.createComponent(RoomListPageComponent);
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
const compiled = fixture.nativeElement;
|
const compiled = fixture.nativeElement;
|
||||||
expect(compiled.querySelector('.content span').textContent).toContain(
|
expect(compiled.querySelector('.content span').textContent).toContain(
|
20
src/app/pages/call/components/sidenav.page.component.ts
Normal file
20
src/app/pages/call/components/sidenav.page.component.ts
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
import { Component, Inject } from '@angular/core';
|
||||||
|
import { Router } from '@angular/router';
|
||||||
|
|
||||||
|
import { LogService } from '@ucap/ng-logger';
|
||||||
|
|
||||||
|
import { UCAP_PATH_PARAM } from '@app/types/tokens';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-pages-call-sidenav',
|
||||||
|
templateUrl: './sidenav.page.component.html',
|
||||||
|
styleUrls: ['./sidenav.page.component.scss']
|
||||||
|
})
|
||||||
|
export class SidenavPageComponent {
|
||||||
|
constructor(
|
||||||
|
@Inject(UCAP_PATH_PARAM) private pathParam: string,
|
||||||
|
private logService: LogService
|
||||||
|
) {
|
||||||
|
this.logService.info('app-pages-call-sidenav', 'pathParam', this.pathParam);
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,11 +6,11 @@ import { FlexLayoutModule } from '@angular/flex-layout';
|
||||||
import { AppChatRoutingPageModule } from './chat-routing.page.module';
|
import { AppChatRoutingPageModule } from './chat-routing.page.module';
|
||||||
|
|
||||||
import { IndexPageComponent } from './components/index.page.component';
|
import { IndexPageComponent } from './components/index.page.component';
|
||||||
import { RoomListPageComponent } from './components/room-list.page.component';
|
import { SidenavPageComponent } from './components/sidenav.page.component';
|
||||||
|
|
||||||
export const COMPONENTS = [IndexPageComponent, RoomListPageComponent];
|
export const COMPONENTS = [IndexPageComponent, SidenavPageComponent];
|
||||||
|
|
||||||
export { IndexPageComponent, RoomListPageComponent };
|
export { IndexPageComponent, SidenavPageComponent };
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [CommonModule, FlexLayoutModule, AppChatRoutingPageModule],
|
imports: [CommonModule, FlexLayoutModule, AppChatRoutingPageModule],
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
<div fxFlexFill>
|
|
||||||
Room list page of chat is works!
|
|
||||||
</div>
|
|
|
@ -1,13 +0,0 @@
|
||||||
import { Component } from '@angular/core';
|
|
||||||
import { Router } from '@angular/router';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'app-pages-chat-room-list',
|
|
||||||
templateUrl: './room-list.page.component.html',
|
|
||||||
styleUrls: ['./room-list.page.component.scss']
|
|
||||||
})
|
|
||||||
export class RoomListPageComponent {
|
|
||||||
constructor(private router: Router) {
|
|
||||||
console.log('RoomListPageComponent', this.router.url, this.router);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<div fxFlexFill>
|
||||||
|
sidenav page of chat is works!
|
||||||
|
</div>
|
|
@ -1,28 +1,28 @@
|
||||||
import { TestBed, async } from '@angular/core/testing';
|
import { TestBed, async } from '@angular/core/testing';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { MembersSectionComponent } from './members.section.component';
|
import { SidenavPageComponent } from './sidenav.page.component';
|
||||||
|
|
||||||
describe('app::sections::organization::MembersSectionComponent', () => {
|
describe('app::pages::chat::SidenavPageComponent', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [RouterTestingModule],
|
imports: [RouterTestingModule],
|
||||||
declarations: [MembersSectionComponent]
|
declarations: [SidenavPageComponent]
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('should create the app', () => {
|
it('should create the app', () => {
|
||||||
const fixture = TestBed.createComponent(MembersSectionComponent);
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
const app = fixture.componentInstance;
|
const app = fixture.componentInstance;
|
||||||
expect(app).toBeTruthy();
|
expect(app).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`should have as title 'ucap-lg-web'`, () => {
|
it(`should have as title 'ucap-lg-web'`, () => {
|
||||||
const fixture = TestBed.createComponent(MembersSectionComponent);
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
const app = fixture.componentInstance;
|
const app = fixture.componentInstance;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render title', () => {
|
it('should render title', () => {
|
||||||
const fixture = TestBed.createComponent(MembersSectionComponent);
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
const compiled = fixture.nativeElement;
|
const compiled = fixture.nativeElement;
|
||||||
expect(compiled.querySelector('.content span').textContent).toContain(
|
expect(compiled.querySelector('.content span').textContent).toContain(
|
20
src/app/pages/chat/components/sidenav.page.component.ts
Normal file
20
src/app/pages/chat/components/sidenav.page.component.ts
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
import { Component, Inject } from '@angular/core';
|
||||||
|
import { Router } from '@angular/router';
|
||||||
|
|
||||||
|
import { LogService } from '@ucap/ng-logger';
|
||||||
|
|
||||||
|
import { UCAP_PATH_PARAM } from '@app/types/tokens';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-pages-chat-sidenav',
|
||||||
|
templateUrl: './sidenav.page.component.html',
|
||||||
|
styleUrls: ['./sidenav.page.component.scss']
|
||||||
|
})
|
||||||
|
export class SidenavPageComponent {
|
||||||
|
constructor(
|
||||||
|
@Inject(UCAP_PATH_PARAM) private pathParam: string,
|
||||||
|
private logService: LogService
|
||||||
|
) {
|
||||||
|
this.logService.info('app-pages-chat-sidenav', 'pathParam', this.pathParam);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,8 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component, Inject } from '@angular/core';
|
||||||
import { Store } from '@ngrx/store';
|
|
||||||
|
import { LogService } from '@ucap/ng-logger';
|
||||||
|
|
||||||
|
import { UCAP_PATH_PARAM } from '@app/types/tokens';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-pages-group-index',
|
selector: 'app-pages-group-index',
|
||||||
|
@ -7,5 +10,10 @@ import { Store } from '@ngrx/store';
|
||||||
styleUrls: ['./index.page.component.scss']
|
styleUrls: ['./index.page.component.scss']
|
||||||
})
|
})
|
||||||
export class IndexPageComponent {
|
export class IndexPageComponent {
|
||||||
constructor(private store: Store<any>) {}
|
constructor(
|
||||||
|
@Inject(UCAP_PATH_PARAM) private pathParam: string,
|
||||||
|
private logService: LogService
|
||||||
|
) {
|
||||||
|
this.logService.info('app-pages-group-index', 'pathParam', this.pathParam);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
import { IndexPageComponent } from './index.page.component';
|
|
||||||
|
|
||||||
export const COMPONENTS = [IndexPageComponent];
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<div fxFlexFill>
|
||||||
|
sidenav page of group is works!
|
||||||
|
</div>
|
|
@ -1,28 +1,28 @@
|
||||||
import { TestBed, async } from '@angular/core/testing';
|
import { TestBed, async } from '@angular/core/testing';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { TreeListSectionComponent } from './tree-list.section.component';
|
import { SidenavPageComponent } from './sidenav.page.component';
|
||||||
|
|
||||||
describe('app::sections::organization::TreeListSectionComponent', () => {
|
describe('app::pages::group::SidenavPageComponent', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [RouterTestingModule],
|
imports: [RouterTestingModule],
|
||||||
declarations: [TreeListSectionComponent]
|
declarations: [SidenavPageComponent]
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('should create the app', () => {
|
it('should create the app', () => {
|
||||||
const fixture = TestBed.createComponent(TreeListSectionComponent);
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
const app = fixture.componentInstance;
|
const app = fixture.componentInstance;
|
||||||
expect(app).toBeTruthy();
|
expect(app).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`should have as title 'ucap-lg-web'`, () => {
|
it(`should have as title 'ucap-lg-web'`, () => {
|
||||||
const fixture = TestBed.createComponent(TreeListSectionComponent);
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
const app = fixture.componentInstance;
|
const app = fixture.componentInstance;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render title', () => {
|
it('should render title', () => {
|
||||||
const fixture = TestBed.createComponent(TreeListSectionComponent);
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
const compiled = fixture.nativeElement;
|
const compiled = fixture.nativeElement;
|
||||||
expect(compiled.querySelector('.content span').textContent).toContain(
|
expect(compiled.querySelector('.content span').textContent).toContain(
|
23
src/app/pages/group/components/sidenav.page.component.ts
Normal file
23
src/app/pages/group/components/sidenav.page.component.ts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
import { Component, Inject } from '@angular/core';
|
||||||
|
|
||||||
|
import { LogService } from '@ucap/ng-logger';
|
||||||
|
|
||||||
|
import { UCAP_PATH_PARAM } from '@app/types/tokens';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-pages-group-sidenav',
|
||||||
|
templateUrl: './sidenav.page.component.html',
|
||||||
|
styleUrls: ['./sidenav.page.component.scss']
|
||||||
|
})
|
||||||
|
export class SidenavPageComponent {
|
||||||
|
constructor(
|
||||||
|
@Inject(UCAP_PATH_PARAM) private pathParam: string,
|
||||||
|
private logService: LogService
|
||||||
|
) {
|
||||||
|
this.logService.info(
|
||||||
|
'app-pages-group-sidenav',
|
||||||
|
'pathParam',
|
||||||
|
this.pathParam
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,14 +1,7 @@
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { Routes, RouterModule } from '@angular/router';
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { IndexPageComponent } from './components/index.page.component';
|
const routes: Routes = [];
|
||||||
|
|
||||||
const routes: Routes = [
|
|
||||||
{
|
|
||||||
path: 'index',
|
|
||||||
component: IndexPageComponent
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [RouterModule.forChild(routes)],
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
|
|
@ -5,7 +5,12 @@ import { FlexLayoutModule } from '@angular/flex-layout';
|
||||||
|
|
||||||
import { AppGroupRoutingPageModule } from './group-routing.page.module';
|
import { AppGroupRoutingPageModule } from './group-routing.page.module';
|
||||||
|
|
||||||
import { COMPONENTS } from './components';
|
import { IndexPageComponent } from './components/index.page.component';
|
||||||
|
import { SidenavPageComponent } from './components/sidenav.page.component';
|
||||||
|
|
||||||
|
export const COMPONENTS = [IndexPageComponent, SidenavPageComponent];
|
||||||
|
|
||||||
|
export { IndexPageComponent, SidenavPageComponent };
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [CommonModule, FlexLayoutModule, AppGroupRoutingPageModule],
|
imports: [CommonModule, FlexLayoutModule, AppGroupRoutingPageModule],
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
import { IndexPageComponent } from './index.page.component';
|
|
||||||
|
|
||||||
export const COMPONENTS = [IndexPageComponent];
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<div fxFlexFill>
|
||||||
|
sidenav page of group is works!
|
||||||
|
</div>
|
|
@ -0,0 +1,32 @@
|
||||||
|
import { TestBed, async } from '@angular/core/testing';
|
||||||
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
|
import { SidenavPageComponent } from './sidenav.page.component';
|
||||||
|
|
||||||
|
describe('app::pages::group::SidenavPageComponent', () => {
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
imports: [RouterTestingModule],
|
||||||
|
declarations: [SidenavPageComponent]
|
||||||
|
}).compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should create the app', () => {
|
||||||
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
|
const app = fixture.componentInstance;
|
||||||
|
expect(app).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should have as title 'ucap-lg-web'`, () => {
|
||||||
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
|
const app = fixture.componentInstance;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should render title', () => {
|
||||||
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
|
fixture.detectChanges();
|
||||||
|
const compiled = fixture.nativeElement;
|
||||||
|
expect(compiled.querySelector('.content span').textContent).toContain(
|
||||||
|
'ucap-lg-web app is running!'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
23
src/app/pages/message/components/sidenav.page.component.ts
Normal file
23
src/app/pages/message/components/sidenav.page.component.ts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
import { Component, Inject } from '@angular/core';
|
||||||
|
|
||||||
|
import { LogService } from '@ucap/ng-logger';
|
||||||
|
|
||||||
|
import { UCAP_PATH_PARAM } from '@app/types/tokens';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-pages-group-sidenav',
|
||||||
|
templateUrl: './sidenav.page.component.html',
|
||||||
|
styleUrls: ['./sidenav.page.component.scss']
|
||||||
|
})
|
||||||
|
export class SidenavPageComponent {
|
||||||
|
constructor(
|
||||||
|
@Inject(UCAP_PATH_PARAM) private pathParam: string,
|
||||||
|
private logService: LogService
|
||||||
|
) {
|
||||||
|
this.logService.info(
|
||||||
|
'app-pages-group-sidenav',
|
||||||
|
'pathParam',
|
||||||
|
this.pathParam
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,7 +5,12 @@ import { FlexLayoutModule } from '@angular/flex-layout';
|
||||||
|
|
||||||
import { AppMessageRoutingPageModule } from './message-routing.page.module';
|
import { AppMessageRoutingPageModule } from './message-routing.page.module';
|
||||||
|
|
||||||
import { COMPONENTS } from './components';
|
import { IndexPageComponent } from './components/index.page.component';
|
||||||
|
import { SidenavPageComponent } from './components/sidenav.page.component';
|
||||||
|
|
||||||
|
export const COMPONENTS = [IndexPageComponent, SidenavPageComponent];
|
||||||
|
|
||||||
|
export { IndexPageComponent, SidenavPageComponent };
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [CommonModule, FlexLayoutModule, AppMessageRoutingPageModule],
|
imports: [CommonModule, FlexLayoutModule, AppMessageRoutingPageModule],
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
import { IndexPageComponent } from './index.page.component';
|
|
||||||
|
|
||||||
export const COMPONENTS = [IndexPageComponent];
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<div fxFlexFill>
|
||||||
|
sidenav page of ogranization is works!
|
||||||
|
</div>
|
|
@ -0,0 +1,32 @@
|
||||||
|
import { TestBed, async } from '@angular/core/testing';
|
||||||
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
|
import { SidenavPageComponent } from './sidenav.page.component';
|
||||||
|
|
||||||
|
describe('app::pages::group::SidenavPageComponent', () => {
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
imports: [RouterTestingModule],
|
||||||
|
declarations: [SidenavPageComponent]
|
||||||
|
}).compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should create the app', () => {
|
||||||
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
|
const app = fixture.componentInstance;
|
||||||
|
expect(app).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should have as title 'ucap-lg-web'`, () => {
|
||||||
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
|
const app = fixture.componentInstance;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should render title', () => {
|
||||||
|
const fixture = TestBed.createComponent(SidenavPageComponent);
|
||||||
|
fixture.detectChanges();
|
||||||
|
const compiled = fixture.nativeElement;
|
||||||
|
expect(compiled.querySelector('.content span').textContent).toContain(
|
||||||
|
'ucap-lg-web app is running!'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { Component, Inject } from '@angular/core';
|
||||||
|
|
||||||
|
import { LogService } from '@ucap/ng-logger';
|
||||||
|
|
||||||
|
import { UCAP_PATH_PARAM } from '@app/types/tokens';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-pages-ogranization-sidenav',
|
||||||
|
templateUrl: './sidenav.page.component.html',
|
||||||
|
styleUrls: ['./sidenav.page.component.scss']
|
||||||
|
})
|
||||||
|
export class SidenavPageComponent {
|
||||||
|
constructor(
|
||||||
|
@Inject(UCAP_PATH_PARAM) private pathParam: string,
|
||||||
|
private logService: LogService
|
||||||
|
) {
|
||||||
|
this.logService.info(
|
||||||
|
'app-pages-ogranization-sidenav',
|
||||||
|
'pathParam',
|
||||||
|
this.pathParam
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,14 +1,7 @@
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { Routes, RouterModule } from '@angular/router';
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { IndexPageComponent } from './components/index.page.component';
|
const routes: Routes = [];
|
||||||
|
|
||||||
const routes: Routes = [
|
|
||||||
{
|
|
||||||
path: 'index',
|
|
||||||
component: IndexPageComponent
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [RouterModule.forChild(routes)],
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
|
|
@ -5,7 +5,12 @@ import { FlexLayoutModule } from '@angular/flex-layout';
|
||||||
|
|
||||||
import { AppOrganizationRoutingPageModule } from './organization-routing.page.module';
|
import { AppOrganizationRoutingPageModule } from './organization-routing.page.module';
|
||||||
|
|
||||||
import { COMPONENTS } from './components';
|
import { IndexPageComponent } from './components/index.page.component';
|
||||||
|
import { SidenavPageComponent } from './components/sidenav.page.component';
|
||||||
|
|
||||||
|
export const COMPONENTS = [IndexPageComponent, SidenavPageComponent];
|
||||||
|
|
||||||
|
export { IndexPageComponent, SidenavPageComponent };
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [CommonModule, FlexLayoutModule, AppOrganizationRoutingPageModule],
|
imports: [CommonModule, FlexLayoutModule, AppOrganizationRoutingPageModule],
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
<div fxFlexFill>
|
|
||||||
members
|
|
||||||
</div>
|
|
|
@ -1,19 +0,0 @@
|
||||||
import { Subscription } from 'rxjs';
|
|
||||||
import { take, filter } from 'rxjs/operators';
|
|
||||||
|
|
||||||
import { Component, OnInit, OnDestroy, Input, ViewChild } from '@angular/core';
|
|
||||||
|
|
||||||
import { LogService } from '@ucap/ng-logger';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'app-sections-organization-members',
|
|
||||||
templateUrl: './members.section.component.html',
|
|
||||||
styleUrls: ['./members.section.component.scss']
|
|
||||||
})
|
|
||||||
export class MembersSectionComponent implements OnInit, OnDestroy {
|
|
||||||
constructor(private logService: LogService) {}
|
|
||||||
|
|
||||||
ngOnInit(): void {}
|
|
||||||
|
|
||||||
ngOnDestroy(): void {}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
<div fxFlexFill>
|
|
||||||
tree list
|
|
||||||
</div>
|
|
|
@ -1,19 +0,0 @@
|
||||||
import { Subscription } from 'rxjs';
|
|
||||||
import { take, filter } from 'rxjs/operators';
|
|
||||||
|
|
||||||
import { Component, OnInit, OnDestroy, Input, ViewChild } from '@angular/core';
|
|
||||||
|
|
||||||
import { LogService } from '@ucap/ng-logger';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'app-sections-organization-tree-list',
|
|
||||||
templateUrl: './tree-list.section.component.html',
|
|
||||||
styleUrls: ['./tree-list.section.component.scss']
|
|
||||||
})
|
|
||||||
export class TreeListSectionComponent implements OnInit, OnDestroy {
|
|
||||||
constructor(private logService: LogService) {}
|
|
||||||
|
|
||||||
ngOnInit(): void {}
|
|
||||||
|
|
||||||
ngOnDestroy(): void {}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
import { NgModule } from '@angular/core';
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
|
|
||||||
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
||||||
|
|
||||||
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
||||||
|
|
||||||
import { I18nModule, UCAP_I18N_NAMESPACE } from '@ucap/ng-i18n';
|
|
||||||
|
|
||||||
import { AuthenticationUiModule } from '@ucap/ng-ui-authentication';
|
|
||||||
|
|
||||||
import { MembersSectionComponent } from './components/members.section.component';
|
|
||||||
import { TreeListSectionComponent } from './components/tree-list.section.component';
|
|
||||||
|
|
||||||
const COMPONENTS = [MembersSectionComponent, TreeListSectionComponent];
|
|
||||||
|
|
||||||
export { MembersSectionComponent, TreeListSectionComponent };
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [
|
|
||||||
CommonModule,
|
|
||||||
FlexLayoutModule,
|
|
||||||
MatCheckboxModule,
|
|
||||||
I18nModule,
|
|
||||||
AuthenticationUiModule
|
|
||||||
],
|
|
||||||
exports: [...COMPONENTS],
|
|
||||||
declarations: [...COMPONENTS],
|
|
||||||
entryComponents: [],
|
|
||||||
providers: [
|
|
||||||
{
|
|
||||||
provide: UCAP_I18N_NAMESPACE,
|
|
||||||
useValue: ['organization']
|
|
||||||
}
|
|
||||||
]
|
|
||||||
})
|
|
||||||
export class AppOrganizationSectionModule {}
|
|
5
src/app/types/tokens.ts
Normal file
5
src/app/types/tokens.ts
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
import { InjectionToken } from '@angular/core';
|
||||||
|
|
||||||
|
export const UCAP_PATH_PARAM = new InjectionToken<string>(
|
||||||
|
'@ucap/app PATH_PARAM'
|
||||||
|
);
|
|
@ -178,6 +178,6 @@ export const environment: Environment = {
|
||||||
},
|
},
|
||||||
pingProtocolModuleConfig: {
|
pingProtocolModuleConfig: {
|
||||||
statusCode: 'O',
|
statusCode: 'O',
|
||||||
interval: 5
|
interval: 20
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user