Merge branch 'master' of https://git.loafle.net/ucap-web/next-ucap-messenger
This commit is contained in:
commit
f615979b44
|
@ -61,6 +61,7 @@ import {
|
||||||
} from '../../dialogs/message/message-write.dialog.component';
|
} from '../../dialogs/message/message-write.dialog.component';
|
||||||
import { UserInfo } from '@ucap-webmessenger/protocol-sync';
|
import { UserInfo } from '@ucap-webmessenger/protocol-sync';
|
||||||
import { EmployeeType } from '@ucap-webmessenger/protocol-room';
|
import { EmployeeType } from '@ucap-webmessenger/protocol-room';
|
||||||
|
import { map } from 'rxjs/operators';
|
||||||
|
|
||||||
export interface MessageTypeData {
|
export interface MessageTypeData {
|
||||||
displayName: string;
|
displayName: string;
|
||||||
|
@ -142,19 +143,39 @@ export class MessageBoxComponent
|
||||||
});
|
});
|
||||||
|
|
||||||
this.messageRetrieveList$ = this.store.pipe(
|
this.messageRetrieveList$ = this.store.pipe(
|
||||||
select(AppStore.MessengerSelector.MessageSelector.selectAllReceiveList)
|
select(AppStore.MessengerSelector.MessageSelector.selectAllReceiveList),
|
||||||
|
map(list =>
|
||||||
|
list.sort((a, b) =>
|
||||||
|
a.regDate > b.regDate ? -1 : a.regDate < b.regDate ? 1 : 0
|
||||||
|
)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
this.messageSendList$ = this.store.pipe(
|
this.messageSendList$ = this.store.pipe(
|
||||||
select(AppStore.MessengerSelector.MessageSelector.selectAllSendList)
|
select(AppStore.MessengerSelector.MessageSelector.selectAllSendList),
|
||||||
|
map(list =>
|
||||||
|
list.sort((a, b) =>
|
||||||
|
a.regDate > b.regDate ? -1 : a.regDate < b.regDate ? 1 : 0
|
||||||
|
)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
this.messageReservationList$ = this.store.pipe(
|
this.messageReservationList$ = this.store.pipe(
|
||||||
select(
|
select(
|
||||||
AppStore.MessengerSelector.MessageSelector.selectAllReservationList
|
AppStore.MessengerSelector.MessageSelector.selectAllReservationList
|
||||||
|
),
|
||||||
|
map(list =>
|
||||||
|
list.sort((a, b) =>
|
||||||
|
a.regDate > b.regDate ? -1 : a.regDate < b.regDate ? 1 : 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
this.messageSearchList$ = this.store.pipe(
|
this.messageSearchList$ = this.store.pipe(
|
||||||
select(AppStore.MessengerSelector.MessageSelector.selectAllSearchList)
|
select(AppStore.MessengerSelector.MessageSelector.selectAllSearchList),
|
||||||
|
map(list =>
|
||||||
|
list.sort((a, b) =>
|
||||||
|
a.regDate > b.regDate ? -1 : a.regDate < b.regDate ? 1 : 0
|
||||||
|
)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
this.messageDetailInfo = this.store
|
this.messageDetailInfo = this.store
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z setting-frame">
|
<mat-card class="confirm-card mat-elevation-z setting-frame">
|
||||||
<mat-card-header cdkDrag cdkDragRootElement=".cdk-overlay-pane" cdkDragHandle>
|
<mat-card-header>
|
||||||
<mat-card-title>{{ 'accounts.changePassword' | translate }}</mat-card-title>
|
<mat-card-title
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
>{{ 'accounts.changePassword' | translate }}</mat-card-title
|
||||||
|
>
|
||||||
</mat-card-header>
|
</mat-card-header>
|
||||||
<mat-card-content>
|
<mat-card-content>
|
||||||
<div fxFlex class="setting-tab">
|
<div fxFlex class="setting-tab">
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z setting-frame">
|
<mat-card class="confirm-card mat-elevation-z setting-frame">
|
||||||
<mat-card-header cdkDrag cdkDragRootElement=".cdk-overlay-pane" cdkDragHandle>
|
<mat-card-header>
|
||||||
<mat-card-title>{{ 'settings.label' | translate }}</mat-card-title>
|
<mat-card-title
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
>{{ 'settings.label' | translate }}</mat-card-title
|
||||||
|
>
|
||||||
<button class="icon-button btn-dialog-close" (click)="onClickChoice(false)">
|
<button class="icon-button btn-dialog-close" (click)="onClickChoice(false)">
|
||||||
<i class="mdi mdi-window-close"></i>
|
<i class="mdi mdi-window-close"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z dialog-creat-chat">
|
<mat-card class="confirm-card mat-elevation-z dialog-creat-chat">
|
||||||
<mat-card-header cdkDrag cdkDragRootElement=".cdk-overlay-pane" cdkDragHandle>
|
<mat-card-header>
|
||||||
<mat-card-title>{{ data.title }}</mat-card-title>
|
<mat-card-title
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
>{{ data.title }}</mat-card-title
|
||||||
|
>
|
||||||
<button class="icon-button btn-dialog-close" (click)="onClickChoice(false)">
|
<button class="icon-button btn-dialog-close" (click)="onClickChoice(false)">
|
||||||
<i class="mdi mdi-window-close"></i>
|
<i class="mdi mdi-window-close"></i>
|
||||||
</button>
|
</button>
|
||||||
|
@ -63,7 +68,7 @@
|
||||||
<i class="mid mid-24 mdi-account-multiple"></i>
|
<i class="mid mid-24 mdi-account-multiple"></i>
|
||||||
</button>
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<div class="mat-tab-frame">
|
<div class="mat-tab-frame dialog-tab-grouplist">
|
||||||
<div>
|
<div>
|
||||||
<ucap-organization-tenant-search
|
<ucap-organization-tenant-search
|
||||||
[companyList]="companyList$ | async"
|
[companyList]="companyList$ | async"
|
||||||
|
@ -76,7 +81,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
[style.display]="isShowSearch ? 'none' : 'block'"
|
[style.display]="isShowSearch ? 'none' : 'block'"
|
||||||
class="list-panel"
|
class="group"
|
||||||
>
|
>
|
||||||
<ucap-group-expansion-panel
|
<ucap-group-expansion-panel
|
||||||
#groupExpansionPanel
|
#groupExpansionPanel
|
||||||
|
@ -98,7 +103,7 @@
|
||||||
[checkDisabled]="!getCheckableUser(userInfo)"
|
[checkDisabled]="!getCheckableUser(userInfo)"
|
||||||
(checkUser)="onCheckUser($event)"
|
(checkUser)="onCheckUser($event)"
|
||||||
(click)="onToggleUser(userInfo)"
|
(click)="onToggleUser(userInfo)"
|
||||||
class="list-item-frame"
|
class="group-list-item"
|
||||||
>
|
>
|
||||||
</ucap-profile-user-list-item>
|
</ucap-profile-user-list-item>
|
||||||
</ucap-group-expansion-panel>
|
</ucap-group-expansion-panel>
|
||||||
|
@ -149,7 +154,7 @@
|
||||||
<i class="mid mid-24 mdi-file-tree"></i>
|
<i class="mid mid-24 mdi-file-tree"></i>
|
||||||
</button>
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<div>
|
<div class="dialog-tab-orglist">
|
||||||
<app-layout-chat-left-sidenav-organization
|
<app-layout-chat-left-sidenav-organization
|
||||||
[showTitle]="false"
|
[showTitle]="false"
|
||||||
[selectedUserList]="selectedUserList"
|
[selectedUserList]="selectedUserList"
|
||||||
|
@ -159,7 +164,7 @@
|
||||||
(checkAllUser)="onCheckAllUser($event)"
|
(checkAllUser)="onCheckAllUser($event)"
|
||||||
(checkUser)="onCheckUser($event)"
|
(checkUser)="onCheckUser($event)"
|
||||||
(toggleUser)="onToggleUser($event)"
|
(toggleUser)="onToggleUser($event)"
|
||||||
class="dialog-org"
|
class="oraganization"
|
||||||
>
|
>
|
||||||
</app-layout-chat-left-sidenav-organization>
|
</app-layout-chat-left-sidenav-organization>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,47 +1,67 @@
|
||||||
.mat-card-header {
|
.dialog-creat-chat {
|
||||||
.mat-card-header-text {
|
& > .mat-card-header {
|
||||||
margin: 0;
|
.btn-dialog-close {
|
||||||
}
|
font-size: 20px;
|
||||||
.btn-dialog-close {
|
display: flex;
|
||||||
font-size: 20px;
|
margin-left: auto;
|
||||||
display: flex;
|
align-self: flex-start;
|
||||||
margin-left: auto;
|
color: #444444;
|
||||||
align-self: flex-start;
|
}
|
||||||
color: #444444;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//조직도 레이아웃 변경
|
.dialog-tab-grouplist {
|
||||||
::ng-deep .dialog-org {
|
height: 380px;
|
||||||
.ps__rail-y {
|
width: 100%;
|
||||||
left: auto !important;
|
.group {
|
||||||
}
|
|
||||||
|
|
||||||
.oraganization-tab {
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 380px;
|
height: calc(100% - 50px);
|
||||||
border-bottom: 1px solid #dddddd;
|
&-expansion {
|
||||||
position: relative;
|
.list-item {
|
||||||
.oraganization-tab-tree {
|
height: 60px;
|
||||||
display: inline-flex;
|
|
||||||
width: 50%;
|
|
||||||
height: 100% !important;
|
|
||||||
border-right: 1px solid #dddddd;
|
|
||||||
overflow: auto;
|
|
||||||
.tab-tree-frame {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.select-list {
|
&-list-item {
|
||||||
display: inline-flex;
|
width: 100%;
|
||||||
flex-direction: column;
|
}
|
||||||
width: 50%;
|
}
|
||||||
height: 100% !important;
|
}
|
||||||
overflow: auto;
|
|
||||||
.search-list {
|
::ng-deep .dialog-tab-orglist {
|
||||||
|
width: 100%;
|
||||||
|
height: 380px;
|
||||||
|
border-bottom: 1px solid #dddddd;
|
||||||
|
position: relative;
|
||||||
|
.oraganization {
|
||||||
|
.ps__rail-y {
|
||||||
|
left: auto !important;
|
||||||
|
}
|
||||||
|
&-tab {
|
||||||
|
width: 100%;
|
||||||
|
height: 380px;
|
||||||
|
border-bottom: 1px solid #dddddd;
|
||||||
|
position: relative;
|
||||||
|
&-tree {
|
||||||
|
display: inline-flex;
|
||||||
|
width: 50%;
|
||||||
|
height: 100% !important;
|
||||||
|
border-right: 1px solid #dddddd;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
height: calc(100% - 40px);
|
.tab-tree-frame {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.select-list {
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 50%;
|
||||||
|
height: 100% !important;
|
||||||
|
overflow: auto;
|
||||||
|
.search-list {
|
||||||
|
overflow: auto;
|
||||||
|
height: calc(100% - 40px);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,7 +102,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::ng-deep .mat-dialog-container {
|
/*::ng-deep .mat-dialog-container {
|
||||||
.mat-tab-body-wrapper {
|
.mat-tab-body-wrapper {
|
||||||
height: 380px;
|
height: 380px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -123,3 +143,4 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z">
|
<mat-card class="confirm-card mat-elevation-z">
|
||||||
<mat-card-header cdkDrag cdkDragRootElement=".cdk-overlay-pane" cdkDragHandle>
|
<mat-card-header>
|
||||||
<mat-card-title>{{ data.title }}</mat-card-title>
|
<mat-card-title
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
>{{ data.title }}</mat-card-title
|
||||||
|
>
|
||||||
<button class="icon-button btn-dialog-close" (click)="onClickChoice(false)">
|
<button class="icon-button btn-dialog-close" (click)="onClickChoice(false)">
|
||||||
<i class="mdi mdi-window-close"></i>
|
<i class="mdi mdi-window-close"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z">
|
<mat-card class="confirm-card mat-elevation-z">
|
||||||
<mat-card-header>
|
<mat-card-header>
|
||||||
<mat-card-title>{{ data.title }}</mat-card-title>
|
<mat-card-title
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
>{{ data.title }}</mat-card-title
|
||||||
|
>
|
||||||
<button class="icon-button btn-dialog-close" (click)="onClickConfirm()">
|
<button class="icon-button btn-dialog-close" (click)="onClickConfirm()">
|
||||||
<i class="mdi mdi-window-close"></i>
|
<i class="mdi mdi-window-close"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z">
|
<mat-card class="confirm-card mat-elevation-z">
|
||||||
<mat-card-header cdkDrag cdkDragRootElement=".cdk-overlay-pane" cdkDragHandle>
|
<mat-card-header>
|
||||||
<mat-card-title>{{ data.title }}</mat-card-title>
|
<mat-card-title
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
>{{ data.title }}</mat-card-title
|
||||||
|
>
|
||||||
<button class="icon-button btn-dialog-close" (click)="onClickChoice(false)">
|
<button class="icon-button btn-dialog-close" (click)="onClickChoice(false)">
|
||||||
<i class="mdi mdi-window-close"></i>
|
<i class="mdi mdi-window-close"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z">
|
<mat-card class="confirm-card mat-elevation-z">
|
||||||
<mat-card-header cdkDrag cdkDragRootElement=".cdk-overlay-pane" cdkDragHandle>
|
<mat-card-header>
|
||||||
<mat-card-title>
|
<mat-card-title
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
>
|
||||||
<ng-container [ngSwitch]="messageInfo.type">
|
<ng-container [ngSwitch]="messageInfo.type">
|
||||||
<span *ngSwitchCase="MessageType.Receive">{{
|
<span *ngSwitchCase="MessageType.Receive">{{
|
||||||
'message.type.messageTypeReceiving' | translate
|
'message.type.messageTypeReceiving' | translate
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z">
|
<mat-card class="confirm-card mat-elevation-z">
|
||||||
<mat-card-header cdkDrag cdkDragRootElement=".cdk-overlay-pane" cdkDragHandle>
|
<mat-card-header>
|
||||||
<mat-card-title>
|
<mat-card-title
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
>
|
||||||
{{ (isModify ? 'message.modify' : 'message.sendTo') | translate }}
|
{{ (isModify ? 'message.modify' : 'message.sendTo') | translate }}
|
||||||
</mat-card-title>
|
</mat-card-title>
|
||||||
<button class="icon-button btn-dialog-close" (click)="onCancel()">
|
<button class="icon-button btn-dialog-close" (click)="onCancel()">
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z">
|
<mat-card class="confirm-card mat-elevation-z">
|
||||||
<mat-card-header>
|
<mat-card-header>
|
||||||
<mat-card-title class="title">
|
<mat-card-title
|
||||||
|
class="card-header title"
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
>
|
||||||
<span *ngIf="data.notice.topYn">
|
<span *ngIf="data.notice.topYn">
|
||||||
[{{ 'notice.important' | translate }}]
|
[{{ 'notice.important' | translate }}]
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z selected-user-dialog">
|
<mat-card class="confirm-card mat-elevation-z selected-user-dialog">
|
||||||
<mat-card-header>
|
<mat-card-header>
|
||||||
<mat-card-title>
|
<mat-card-title
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
class="card-header"
|
||||||
|
>
|
||||||
{{ data.title }}
|
{{ data.title }}
|
||||||
<span class="count text-accent-dark">
|
<span class="count text-accent-dark">
|
||||||
{{ selectedUserList.length }} / {{ data.selectedUserList.length }}
|
{{ selectedUserList.length }} / {{ data.selectedUserList.length }}
|
||||||
|
@ -34,6 +39,7 @@
|
||||||
<ucap-profile-user-list-item
|
<ucap-profile-user-list-item
|
||||||
*cdkVirtualFor="let userInfo of data.selectedUserList"
|
*cdkVirtualFor="let userInfo of data.selectedUserList"
|
||||||
[userInfo]="userInfo"
|
[userInfo]="userInfo"
|
||||||
|
[showPresence]="false"
|
||||||
[sessionVerinfo]="sessionVerinfo"
|
[sessionVerinfo]="sessionVerinfo"
|
||||||
[selectedUserList]="selectedUserList"
|
[selectedUserList]="selectedUserList"
|
||||||
[checkable]="userInfo.seq !== loginRes.userSeq"
|
[checkable]="userInfo.seq !== loginRes.userSeq"
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z">
|
<mat-card class="confirm-card mat-elevation-z">
|
||||||
<mat-card-header
|
<mat-card-header>
|
||||||
cdkDrag
|
<mat-card-title
|
||||||
cdkDragRootElement=".cdk-overlay-pane"
|
cdkDrag
|
||||||
cdkDragHandle
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
class="card-header"
|
cdkDragHandle
|
||||||
>
|
class="card-header"
|
||||||
<mat-card-title>{{ 'search.label' | translate }}</mat-card-title>
|
>{{ 'search.label' | translate }}</mat-card-title
|
||||||
|
>
|
||||||
<button class="icon-button btn-dialog-close" (click)="onCancel()">
|
<button class="icon-button btn-dialog-close" (click)="onCancel()">
|
||||||
<i class="mdi mdi-window-close"></i>
|
<i class="mdi mdi-window-close"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
<mat-card class="confirm-card mat-elevation-z setting-frame">
|
<mat-card class="confirm-card mat-elevation-z setting-frame">
|
||||||
<mat-card-header cdkDrag cdkDragRootElement=".cdk-overlay-pane" cdkDragHandle>
|
<mat-card-header>
|
||||||
<mat-card-title>{{ 'settings.label' | translate }}</mat-card-title>
|
<mat-card-title
|
||||||
|
cdkDrag
|
||||||
|
cdkDragRootElement=".cdk-overlay-pane"
|
||||||
|
cdkDragHandle
|
||||||
|
>{{ 'settings.label' | translate }}</mat-card-title
|
||||||
|
>
|
||||||
<button class="icon-button btn-dialog-close" (click)="onClickChoice(false)">
|
<button class="icon-button btn-dialog-close" (click)="onClickChoice(false)">
|
||||||
<i class="mdi mdi-window-close"></i>
|
<i class="mdi mdi-window-close"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<mat-drawer-container class="contents" autosize>
|
<mat-drawer-container class="contents" autosize>
|
||||||
<mat-drawer #leftSideDrawer mode="side" opened>
|
<mat-drawer #leftSideDrawer mode="side" [disableClose]="true" opened>
|
||||||
<app-layout-messenger-left-side
|
<app-layout-messenger-left-side
|
||||||
#leftSideContainer
|
#leftSideContainer
|
||||||
(openProfile)="onClickOpenProfile($event)"
|
(openProfile)="onClickOpenProfile($event)"
|
||||||
|
|
|
@ -26,7 +26,7 @@ import { NGXLogger } from 'ngx-logger';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
|
||||||
import { FileUtil } from '@ucap-webmessenger/core';
|
import { FileUtil } from '@ucap-webmessenger/core';
|
||||||
import { FormGroup, FormBuilder } from '@angular/forms';
|
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
|
||||||
import {
|
import {
|
||||||
ContentType,
|
ContentType,
|
||||||
CategoryType,
|
CategoryType,
|
||||||
|
@ -127,7 +127,7 @@ export class WriteComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.messageWriteForm = this.formBuilder.group({
|
this.messageWriteForm = this.formBuilder.group({
|
||||||
title: ['', []]
|
title: ['', [Validators.required]]
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.isModify) {
|
if (this.isModify) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user