Merge branch 'master' of https://git.loafle.net/ucap-web/next-ucap-messenger
This commit is contained in:
commit
69ec1fc30e
|
@ -119,11 +119,7 @@
|
||||||
#chatContextMenuTrigger="matMenuTrigger"
|
#chatContextMenuTrigger="matMenuTrigger"
|
||||||
[matMenuTriggerFor]="chatContextMenu"
|
[matMenuTriggerFor]="chatContextMenu"
|
||||||
></div>
|
></div>
|
||||||
<mat-menu
|
<mat-menu #chatContextMenu="matMenu">
|
||||||
#chatContextMenu="matMenu"
|
|
||||||
[hasBackdrop]="false"
|
|
||||||
(ucapClickOutside)="chatContextMenuTrigger.closeMenu()"
|
|
||||||
>
|
|
||||||
<ng-template matMenuContent let-roomInfo="roomInfo">
|
<ng-template matMenuContent let-roomInfo="roomInfo">
|
||||||
<button mat-menu-item (click)="onClickContextMenu('SELECT_ROOM', roomInfo)">
|
<button mat-menu-item (click)="onClickContextMenu('SELECT_ROOM', roomInfo)">
|
||||||
{{ 'chat.openRoom' | translate }}
|
{{ 'chat.openRoom' | translate }}
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#groupMenuTrigger="matMenuTrigger"
|
#groupMenuTrigger="matMenuTrigger"
|
||||||
[matMenuTriggerFor]="groupMenu"
|
[matMenuTriggerFor]="groupMenu"
|
||||||
aria-label="group menu"
|
aria-label="group menu"
|
||||||
(ucapClickOutside)="groupMenuTrigger.closeMenu()"
|
|
||||||
>
|
>
|
||||||
<mat-icon>more_vert</mat-icon>
|
<mat-icon>more_vert</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
@ -71,12 +70,7 @@
|
||||||
</ucap-profile-user-list-item>
|
</ucap-profile-user-list-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<mat-menu
|
<mat-menu #groupMenu="matMenu" xPosition="after" yPosition="below">
|
||||||
#groupMenu="matMenu"
|
|
||||||
xPosition="after"
|
|
||||||
yPosition="below"
|
|
||||||
[hasBackdrop]="false"
|
|
||||||
>
|
|
||||||
<button mat-menu-item (click)="onClickGroupMenu('GROUP_NEW')">
|
<button mat-menu-item (click)="onClickGroupMenu('GROUP_NEW')">
|
||||||
<!--<mat-icon>group_add</mat-icon>-->
|
<!--<mat-icon>group_add</mat-icon>-->
|
||||||
<svg
|
<svg
|
||||||
|
@ -148,11 +142,7 @@
|
||||||
#profileContextMenuTrigger="matMenuTrigger"
|
#profileContextMenuTrigger="matMenuTrigger"
|
||||||
[matMenuTriggerFor]="profileContextMenu"
|
[matMenuTriggerFor]="profileContextMenu"
|
||||||
></div>
|
></div>
|
||||||
<mat-menu
|
<mat-menu #profileContextMenu="matMenu">
|
||||||
#profileContextMenu="matMenu"
|
|
||||||
[hasBackdrop]="false"
|
|
||||||
(ucapClickOutside)="profileContextMenuTrigger.closeMenu()"
|
|
||||||
>
|
|
||||||
<ng-template
|
<ng-template
|
||||||
matMenuContent
|
matMenuContent
|
||||||
let-userInfo="userInfo"
|
let-userInfo="userInfo"
|
||||||
|
@ -242,11 +232,7 @@
|
||||||
#groupContextMenuTrigger="matMenuTrigger"
|
#groupContextMenuTrigger="matMenuTrigger"
|
||||||
[matMenuTriggerFor]="groupContextMenu"
|
[matMenuTriggerFor]="groupContextMenu"
|
||||||
></div>
|
></div>
|
||||||
<mat-menu
|
<mat-menu #groupContextMenu="matMenu">
|
||||||
#groupContextMenu="matMenu"
|
|
||||||
[hasBackdrop]="false"
|
|
||||||
(ucapClickOutside)="groupContextMenuTrigger.closeMenu()"
|
|
||||||
>
|
|
||||||
<ng-template matMenuContent let-group="group">
|
<ng-template matMenuContent let-group="group">
|
||||||
<button
|
<button
|
||||||
mat-menu-item
|
mat-menu-item
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
></ucap-organization-tree>
|
></ucap-organization-tree>
|
||||||
</div>
|
</div>
|
||||||
<div class="select-list">
|
<div class="select-list">
|
||||||
<dl class="select-dept text-accent-color">
|
<dl class="select-dept">
|
||||||
<dt>
|
<dt>
|
||||||
<ng-container *ngIf="!isShowSearch">
|
<ng-container *ngIf="!isShowSearch">
|
||||||
<ng-container
|
<ng-container
|
||||||
|
@ -80,13 +80,7 @@
|
||||||
(openProfile)="onClickOpenProfile($event)"
|
(openProfile)="onClickOpenProfile($event)"
|
||||||
(click)="onToggleUser(userInfo)"
|
(click)="onToggleUser(userInfo)"
|
||||||
(contextmenu)="onContextMenuOrgUser($event, userInfo)"
|
(contextmenu)="onContextMenuOrgUser($event, userInfo)"
|
||||||
[matTooltip]="
|
[matTooltip]="getTooltip(userInfo)"
|
||||||
userInfo.companyName +
|
|
||||||
' / ' +
|
|
||||||
userInfo.lineNumber +
|
|
||||||
' / ' +
|
|
||||||
userInfo.hpNumber
|
|
||||||
"
|
|
||||||
matTooltipPosition="after"
|
matTooltipPosition="after"
|
||||||
>
|
>
|
||||||
</ucap-profile-user-list-item>
|
</ucap-profile-user-list-item>
|
||||||
|
@ -110,13 +104,7 @@
|
||||||
(openProfile)="onClickOpenProfile($event)"
|
(openProfile)="onClickOpenProfile($event)"
|
||||||
(click)="onToggleUser(userInfo)"
|
(click)="onToggleUser(userInfo)"
|
||||||
(contextmenu)="onContextMenuOrgUser($event, userInfo)"
|
(contextmenu)="onContextMenuOrgUser($event, userInfo)"
|
||||||
[matTooltip]="
|
[matTooltip]="getTooltip(userInfo)"
|
||||||
userInfo.companyName +
|
|
||||||
' / ' +
|
|
||||||
userInfo.lineNumber +
|
|
||||||
' / ' +
|
|
||||||
userInfo.hpNumber
|
|
||||||
"
|
|
||||||
matTooltipPosition="after"
|
matTooltipPosition="after"
|
||||||
>
|
>
|
||||||
</ucap-profile-user-list-item>
|
</ucap-profile-user-list-item>
|
||||||
|
@ -177,11 +165,7 @@
|
||||||
#orgUserContextMenuTrigger="matMenuTrigger"
|
#orgUserContextMenuTrigger="matMenuTrigger"
|
||||||
[matMenuTriggerFor]="orgUserContextMenu"
|
[matMenuTriggerFor]="orgUserContextMenu"
|
||||||
></div>
|
></div>
|
||||||
<mat-menu
|
<mat-menu #orgUserContextMenu="matMenu">
|
||||||
#orgUserContextMenu="matMenu"
|
|
||||||
[hasBackdrop]="false"
|
|
||||||
(ucapClickOutside)="orgUserContextMenuTrigger.closeMenu()"
|
|
||||||
>
|
|
||||||
<ng-template matMenuContent let-userInfo="userInfo">
|
<ng-template matMenuContent let-userInfo="userInfo">
|
||||||
<button
|
<button
|
||||||
mat-menu-item
|
mat-menu-item
|
||||||
|
|
|
@ -64,6 +64,7 @@ import {
|
||||||
SelectedUserListDialogData
|
SelectedUserListDialogData
|
||||||
} from '../../dialogs/organization/selected-user-list.dialog.component';
|
} from '../../dialogs/organization/selected-user-list.dialog.component';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
import { StringFormatterPhonePipe } from 'projects/ucap-webmessenger-ui/src/lib/pipes/string.pipe';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-layout-chat-left-sidenav-organization',
|
selector: 'app-layout-chat-left-sidenav-organization',
|
||||||
|
@ -604,4 +605,12 @@ export class OrganizationComponent
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getTooltip(userInfo: UserInfoSS): string {
|
||||||
|
return `${
|
||||||
|
userInfo.companyName
|
||||||
|
} / ${new StringFormatterPhonePipe().transform(
|
||||||
|
userInfo.lineNumber
|
||||||
|
)} / ${new StringFormatterPhonePipe().transform(userInfo.hpNumber)}`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
<button
|
<button
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="chats button"
|
aria-label="chats button"
|
||||||
class="bg-warn-color chat-timer"
|
class="responsive-chats-button chat-timer"
|
||||||
*ngIf="!!roomInfo && roomInfo.isTimeRoom"
|
*ngIf="!!roomInfo && roomInfo.isTimeRoom"
|
||||||
>
|
>
|
||||||
<mat-icon>timer</mat-icon>
|
<mat-icon>timer</mat-icon>
|
||||||
|
@ -120,12 +120,11 @@
|
||||||
#chatMenuTrigger="matMenuTrigger"
|
#chatMenuTrigger="matMenuTrigger"
|
||||||
[matMenuTriggerFor]="contactMenu"
|
[matMenuTriggerFor]="contactMenu"
|
||||||
aria-label="more"
|
aria-label="more"
|
||||||
(ucapClickOutside)="chatMenuTrigger.closeMenu()"
|
|
||||||
>
|
>
|
||||||
<mat-icon>more_vert</mat-icon>
|
<mat-icon>more_vert</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<mat-menu #contactMenu="matMenu" [hasBackdrop]="false">
|
<mat-menu #contactMenu="matMenu">
|
||||||
<button
|
<button
|
||||||
mat-menu-item
|
mat-menu-item
|
||||||
*ngIf="getShowContextMenu('OPEN_ALBUM_LIST')"
|
*ngIf="getShowContextMenu('OPEN_ALBUM_LIST')"
|
||||||
|
@ -322,8 +321,6 @@
|
||||||
></div>
|
></div>
|
||||||
<mat-menu
|
<mat-menu
|
||||||
#messageContextMenu="matMenu"
|
#messageContextMenu="matMenu"
|
||||||
[hasBackdrop]="false"
|
|
||||||
(ucapClickOutside)="messageContextMenuTrigger.closeMenu()"
|
|
||||||
>
|
>
|
||||||
<ng-template matMenuContent let-message="message" let-clicktype="clicktype">
|
<ng-template matMenuContent let-message="message" let-clicktype="clicktype">
|
||||||
<ng-container *ngIf="!isRecalledMessage(message.type)">
|
<ng-container *ngIf="!isRecalledMessage(message.type)">
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
.responsive-chats-button {
|
.responsive-chats-button {
|
||||||
display: none;
|
display: none;
|
||||||
line-height: normal;
|
line-height: normal;
|
||||||
|
cursor: unset;
|
||||||
&:last-child {
|
&:last-child {
|
||||||
display: block;
|
display: block;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
|
@ -103,6 +103,7 @@
|
||||||
.ps-content {
|
.ps-content {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: wrap;
|
flex-flow: wrap;
|
||||||
|
height: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
</div>
|
</div>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngIf="selectedFile">
|
<ng-container *ngIf="selectedFile">
|
||||||
|
<div class="select-filed">
|
||||||
<div class="select-flie">
|
<div class="select-flie">
|
||||||
<div
|
<div
|
||||||
[ngClass]="[
|
[ngClass]="[
|
||||||
|
@ -65,6 +66,7 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div class="select-file-option">
|
<div class="select-file-option">
|
||||||
<span
|
<span
|
||||||
matTooltip="{{ 'common.file.download' | translate }}"
|
matTooltip="{{ 'common.file.download' | translate }}"
|
||||||
|
@ -195,7 +197,7 @@
|
||||||
<div class="file-name">
|
<div class="file-name">
|
||||||
{{ element.info.name }}
|
{{ element.info.name }}
|
||||||
</div>
|
</div>
|
||||||
<div class="download-period text-accent-color">
|
<div class="download-period text-accent-darkest">
|
||||||
<!--{{ element.info.size | ucapBytes }}-->
|
<!--{{ element.info.size | ucapBytes }}-->
|
||||||
{{ element.info.sendDate | ucapDate: 'YYYY.MM.DD' }}
|
{{ element.info.sendDate | ucapDate: 'YYYY.MM.DD' }}
|
||||||
<span *ngIf="loginRes.fileRetentionPeriod > 0">
|
<span *ngIf="loginRes.fileRetentionPeriod > 0">
|
||||||
|
@ -221,9 +223,8 @@
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>
|
||||||
{{ 'chat.sentDate' | translate }}
|
{{ 'chat.sentDate' | translate }}
|
||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">
|
<td mat-cell *matCellDef="let element" class="file-size">
|
||||||
<!--{{ element.info.sendDate | ucapDate: 'YYYY.MM.DD' }}-->
|
<span>{{ element.info.size | ucapBytes }}</span>
|
||||||
{{ element.info.size | ucapBytes }}
|
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<tr
|
<tr
|
||||||
|
|
|
@ -30,18 +30,24 @@
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
border: 1px solid #cccccc;
|
border: 1px solid #cccccc;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
.select-filed {
|
||||||
|
height: calc(100% - 50px);
|
||||||
|
overflow-y: auto;
|
||||||
.select-flie {
|
.select-flie {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: row;
|
flex-flow: row;
|
||||||
align-items: center;
|
align-items: flex-start;
|
||||||
color: #212121;
|
color: #212121;
|
||||||
align-items: center;
|
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border-bottom: 1px dotted #dddddd;
|
border-bottom: 1px dotted #dddddd;
|
||||||
ul {
|
ul {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
.name {
|
.name {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
word-wrap: break-word;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,16 +94,19 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
th.infos {
|
th.infos {
|
||||||
padding: 10px;
|
padding: 16px;
|
||||||
}
|
}
|
||||||
tr.mat-row {
|
tr.mat-row {
|
||||||
height: 70px;
|
height: 70px;
|
||||||
|
.cdk-column-check {
|
||||||
|
width: 40px;
|
||||||
|
}
|
||||||
.file-info {
|
.file-info {
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
display: grid;
|
display: grid;
|
||||||
height: 70px;
|
height: 70px;
|
||||||
.file-name {
|
.file-name {
|
||||||
font-weight: 600;
|
font-weight: 500;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@include ellipsis(1);
|
@include ellipsis(1);
|
||||||
|
@ -116,12 +125,24 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.file-size {
|
||||||
|
span {
|
||||||
|
width: 100px;
|
||||||
|
text-align: right;
|
||||||
|
@include ellipsis(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.table-box {
|
.table-box {
|
||||||
height: calc(100% - 440px);
|
height: calc(100% - 440px);
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
th {
|
||||||
|
font-size: 1.1em;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mat-paginator-container {
|
.mat-paginator-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: column;
|
flex-flow: column;
|
||||||
|
|
|
@ -32,11 +32,7 @@
|
||||||
#roomUserContextMenuTrigger="matMenuTrigger"
|
#roomUserContextMenuTrigger="matMenuTrigger"
|
||||||
[matMenuTriggerFor]="roomUserContextMenu"
|
[matMenuTriggerFor]="roomUserContextMenu"
|
||||||
></div>
|
></div>
|
||||||
<mat-menu
|
<mat-menu #roomUserContextMenu="matMenu">
|
||||||
#roomUserContextMenu="matMenu"
|
|
||||||
[hasBackdrop]="false"
|
|
||||||
(ucapClickOutside)="roomUserContextMenuTrigger.closeMenu()"
|
|
||||||
>
|
|
||||||
<ng-template matMenuContent let-buddy="buddy">
|
<ng-template matMenuContent let-buddy="buddy">
|
||||||
<button mat-menu-item (click)="onClickContextMenu('FORCING_EXIT', buddy)">
|
<button mat-menu-item (click)="onClickContextMenu('FORCING_EXIT', buddy)">
|
||||||
{{ 'chat.ejectFromRoom' | translate }}
|
{{ 'chat.ejectFromRoom' | translate }}
|
||||||
|
|
|
@ -79,7 +79,6 @@
|
||||||
class="message-menu"
|
class="message-menu"
|
||||||
#messageMenuTrigger="matMenuTrigger"
|
#messageMenuTrigger="matMenuTrigger"
|
||||||
[matMenuTriggerFor]="messageMenu"
|
[matMenuTriggerFor]="messageMenu"
|
||||||
(ucapClickOutside)="messageMenuTrigger.closeMenu()"
|
|
||||||
>
|
>
|
||||||
<mat-icon>more_vert</mat-icon>
|
<mat-icon>more_vert</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
@ -242,7 +241,6 @@
|
||||||
#messageMenu="matMenu"
|
#messageMenu="matMenu"
|
||||||
xPosition="after"
|
xPosition="after"
|
||||||
yPosition="below"
|
yPosition="below"
|
||||||
[hasBackdrop]="false"
|
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
mat-menu-item
|
mat-menu-item
|
||||||
|
|
|
@ -31,7 +31,7 @@ import {
|
||||||
RetrieveResourceFileRequest,
|
RetrieveResourceFileRequest,
|
||||||
CancelRequest
|
CancelRequest
|
||||||
} from '@ucap-webmessenger/api-message';
|
} from '@ucap-webmessenger/api-message';
|
||||||
import { DeviceType, MimeUtil, FileUtil } from '@ucap-webmessenger/core';
|
import { MimeUtil, FileUtil } from '@ucap-webmessenger/core';
|
||||||
import { LoginResponse } from '@ucap-webmessenger/protocol-authentication';
|
import { LoginResponse } from '@ucap-webmessenger/protocol-authentication';
|
||||||
import { NGXLogger } from 'ngx-logger';
|
import { NGXLogger } from 'ngx-logger';
|
||||||
import { NativeService, UCAP_NATIVE_SERVICE } from '@ucap-webmessenger/native';
|
import { NativeService, UCAP_NATIVE_SERVICE } from '@ucap-webmessenger/native';
|
||||||
|
@ -589,12 +589,23 @@ export class MessageDetailDialogComponent implements OnInit {
|
||||||
take(1),
|
take(1),
|
||||||
map(async res => {
|
map(async res => {
|
||||||
if (res.responseCode === MessageStatusCode.Success) {
|
if (res.responseCode === MessageStatusCode.Success) {
|
||||||
this.receivers.forEach(user => {
|
this.receivers = [
|
||||||
|
...this.receivers.map(user => {
|
||||||
if (cancelUserSeqs.indexOf(user.userSeq) >= 0) {
|
if (cancelUserSeqs.indexOf(user.userSeq) >= 0) {
|
||||||
user.cancelYn = true;
|
return {
|
||||||
user.readYn = false;
|
userSeq: user.userSeq,
|
||||||
|
userName: user.userName,
|
||||||
|
cancelYn: true,
|
||||||
|
readDate: user.readDate,
|
||||||
|
readYn: false
|
||||||
|
};
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
return user;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
this.unReadUsers.deselectAll();
|
||||||
this.selectedUnreadUserSeqs = [];
|
this.selectedUnreadUserSeqs = [];
|
||||||
this.rightDrawer.close();
|
this.rightDrawer.close();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -121,7 +121,7 @@
|
||||||
*ngIf="updateInfo$ | async as updateInfo"
|
*ngIf="updateInfo$ | async as updateInfo"
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
class="button app-layout-native-title-bar-setting"
|
class="button app-layout-native-title-bar-setting"
|
||||||
matTooltip="업데이트"
|
matTooltip="{{ 'update.label' | translate }}"
|
||||||
(click)="onClickUpdate()"
|
(click)="onClickUpdate()"
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
|
@ -134,7 +134,7 @@
|
||||||
stroke-width="1.5"
|
stroke-width="1.5"
|
||||||
stroke-linecap="butt"
|
stroke-linecap="butt"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
alt="업데이트"
|
alt="Update"
|
||||||
>
|
>
|
||||||
<circle cx="12" cy="12" r="3"></circle>
|
<circle cx="12" cy="12" r="3"></circle>
|
||||||
<path
|
<path
|
||||||
|
|
|
@ -253,20 +253,7 @@ $ease-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*.sig {
|
::ng-deep .login-form-box {
|
||||||
position: fixed;
|
|
||||||
bottom: 8px;
|
|
||||||
right: 8px;
|
|
||||||
text-decoration: none;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 100;
|
|
||||||
font-family: sans-serif;
|
|
||||||
color: rgba(255, 255, 255, 0.4);
|
|
||||||
letter-spacing: 2px;
|
|
||||||
z-index: 9999;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
.login-form-box {
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: 70vh;
|
height: 70vh;
|
||||||
top: 15%;
|
top: 15%;
|
||||||
|
@ -274,6 +261,16 @@ $ease-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
.mat-form-field {
|
||||||
|
&:last-child {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.mat-form-field-infix {
|
||||||
|
input {
|
||||||
|
line-height: 1em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (max-width: 1400px) {
|
@media all and (max-width: 1400px) {
|
||||||
|
|
|
@ -112,6 +112,7 @@ import { Dictionary } from '@ngrx/entity';
|
||||||
import { MessageType } from '@ucap-webmessenger/api-message';
|
import { MessageType } from '@ucap-webmessenger/api-message';
|
||||||
import { LogoutInfo, KEY_LOGOUT_INFO } from '@app/types';
|
import { LogoutInfo, KEY_LOGOUT_INFO } from '@app/types';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
import { deleteMessageSuccess } from '@app/store/messenger/message';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AppNotificationService {
|
export class AppNotificationService {
|
||||||
|
@ -657,13 +658,19 @@ export class AppNotificationService {
|
||||||
noti
|
noti
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log('TODO :: remove state logic');
|
// Remove one Receive Message
|
||||||
// // Receive Message List refresh..
|
if (!!noti && !!noti.keyId) {
|
||||||
// this.store.dispatch(
|
this.store.dispatch(
|
||||||
// MessageStore.retrieveMessage({
|
deleteMessageSuccess({
|
||||||
// messageType: MessageType.Receive
|
messageType: MessageType.Receive,
|
||||||
// })
|
msgList: [
|
||||||
// );
|
{
|
||||||
|
msgId: Number(noti.keyId)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -305,6 +305,9 @@
|
||||||
"haveNoPermission": "You do not have SMS permissions."
|
"haveNoPermission": "You do not have SMS permissions."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"update": {
|
||||||
|
"label": "Update"
|
||||||
|
},
|
||||||
"notification": {
|
"notification": {
|
||||||
"titleChatEventArrived": "A message of chat has arrived.",
|
"titleChatEventArrived": "A message of chat has arrived.",
|
||||||
"titleMessageArrived": "A message has arrived."
|
"titleMessageArrived": "A message has arrived."
|
||||||
|
|
|
@ -305,6 +305,9 @@
|
||||||
"haveNoPermission": "SMS 사용 권한이 없습니다."
|
"haveNoPermission": "SMS 사용 권한이 없습니다."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"update": {
|
||||||
|
"label": "업데이트"
|
||||||
|
},
|
||||||
"notification": {
|
"notification": {
|
||||||
"titleChatEventArrived": "메세지가 도착했습니다.",
|
"titleChatEventArrived": "메세지가 도착했습니다.",
|
||||||
"titleMessageArrived": "쪽지가 도착했습니다."
|
"titleMessageArrived": "쪽지가 도착했습니다."
|
||||||
|
|
|
@ -127,7 +127,7 @@ export const environment: Environment = {
|
||||||
hostConfig: {
|
hostConfig: {
|
||||||
protocol: 'http',
|
protocol: 'http',
|
||||||
domain: '15.164.139.105',
|
domain: '15.164.139.105',
|
||||||
port: 9098
|
port: 9097
|
||||||
},
|
},
|
||||||
urls: messageApiUrls
|
urls: messageApiUrls
|
||||||
},
|
},
|
||||||
|
|
|
@ -68,12 +68,12 @@ export const decodeDataUser: ProtocolDecoder<DataUserResponse> = (
|
||||||
employeeType: info[28] as EmployeeType,
|
employeeType: info[28] as EmployeeType,
|
||||||
|
|
||||||
// [daesang]
|
// [daesang]
|
||||||
companyName: info[29],
|
companyName: !!info[29] ? info[29].trim() : '',
|
||||||
responsibilities: info[30],
|
responsibilities: !!info[30] ? info[30].trim() : '',
|
||||||
workstatus: info[31] as WorkStatusType,
|
workstatus: info[31] as WorkStatusType,
|
||||||
job: info[32],
|
job: !!info[32] ? info[32].trim() : '',
|
||||||
customerInfo: info[33],
|
customerInfo: !!info[33] ? info[33].trim() : '',
|
||||||
workplace: info[34]
|
workplace: !!info[34] ? info[34].trim() : ''
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return decodeProtocolMessage(message, {
|
return decodeProtocolMessage(message, {
|
||||||
|
|
|
@ -117,12 +117,12 @@ export const decodeDeptUserData: ProtocolDecoder<DeptUserData> = (
|
||||||
employeeType: info[28] as EmployeeType,
|
employeeType: info[28] as EmployeeType,
|
||||||
|
|
||||||
// [daesang]
|
// [daesang]
|
||||||
companyName: info[29],
|
companyName: !!info[29] ? info[29].trim() : '',
|
||||||
responsibilities: info[30],
|
responsibilities: !!info[30] ? info[30].trim() : '',
|
||||||
workstatus: info[31] as WorkStatusType,
|
workstatus: info[31] as WorkStatusType,
|
||||||
job: info[32],
|
job: !!info[32] ? info[32].trim() : '',
|
||||||
customerInfo: info[33],
|
customerInfo: !!info[33] ? info[33].trim() : '',
|
||||||
workplace: info[34]
|
workplace: !!info[34] ? info[34].trim() : ''
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
return decodeProtocolMessage(message, {
|
return decodeProtocolMessage(message, {
|
||||||
|
|
|
@ -12,6 +12,8 @@ export interface UmgDeleteNotiNotification extends ProtocolNotification {
|
||||||
senderSeq: number;
|
senderSeq: number;
|
||||||
/** { 송신자정보 } */
|
/** { 송신자정보 } */
|
||||||
senderInfo: SenderInfo;
|
senderInfo: SenderInfo;
|
||||||
|
/** keyID(s) */
|
||||||
|
keyId: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const decodeUmgDeleteNotiNotification: ProtocolDecoder<UmgDeleteNotiNotification> = (
|
export const decodeUmgDeleteNotiNotification: ProtocolDecoder<UmgDeleteNotiNotification> = (
|
||||||
|
@ -31,6 +33,8 @@ export const decodeUmgDeleteNotiNotification: ProtocolDecoder<UmgDeleteNotiNotif
|
||||||
/** 송신자SEQ(n) */
|
/** 송신자SEQ(n) */
|
||||||
senderSeq: Number(message.bodyList[0]),
|
senderSeq: Number(message.bodyList[0]),
|
||||||
/** { 송신자정보 } */
|
/** { 송신자정보 } */
|
||||||
senderInfo
|
senderInfo,
|
||||||
|
/** keyID(s) */
|
||||||
|
keyId: message.bodyList[2]
|
||||||
} as UmgDeleteNotiNotification);
|
} as UmgDeleteNotiNotification);
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.mat-title {
|
.mat-title {
|
||||||
margin: 10px 0 50px 0;
|
margin: 10px 0 40px 0;
|
||||||
text-indent: -10000000px;
|
text-indent: -10000000px;
|
||||||
width: 160px;
|
width: 160px;
|
||||||
height: 160px;
|
height: 160px;
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
class="send-message-button bg-primary-darkest"
|
class="send-message-button bg-accent-darkest"
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
type="submit"
|
type="submit"
|
||||||
aria-label="Send message"
|
aria-label="Send message"
|
||||||
|
|
|
@ -26,7 +26,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
textarea[name='message'] {
|
textarea[name='message'] {
|
||||||
min-height: 30px;
|
min-height: 2em;
|
||||||
|
line-height: 1.2em;
|
||||||
|
font-size: 0.9em;
|
||||||
}
|
}
|
||||||
.mat-form-field-underline {
|
.mat-form-field-underline {
|
||||||
background-color: none;
|
background-color: none;
|
||||||
|
|
|
@ -170,11 +170,11 @@
|
||||||
<dt>{{ 'profile.fieldworkplace' | translate }}</dt>
|
<dt>{{ 'profile.fieldworkplace' | translate }}</dt>
|
||||||
<dd>{{ userInfo.workplace | ucapStringEmptycheck }}</dd>
|
<dd>{{ userInfo.workplace | ucapStringEmptycheck }}</dd>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li *ngIf="userInfo.job">
|
||||||
<dt class="division">{{ 'profile.fieldJob' | translate }}</dt>
|
<dt class="division">{{ 'profile.fieldJob' | translate }}</dt>
|
||||||
<dd>{{ userInfo.job | ucapStringEmptycheck }}</dd>
|
<dd>{{ userInfo.job | ucapStringEmptycheck }}</dd>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li *ngIf="userInfo.customerInfo">
|
||||||
<dt>{{ 'profile.fieldCustomerInfo' | translate }}</dt>
|
<dt>{{ 'profile.fieldCustomerInfo' | translate }}</dt>
|
||||||
<dd>{{ userInfo.customerInfo | ucapStringEmptycheck }}</dd>
|
<dd>{{ userInfo.customerInfo | ucapStringEmptycheck }}</dd>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -17,13 +17,23 @@
|
||||||
(click)="onClickSendTranslationMessage(translationPreviewInfo)"
|
(click)="onClickSendTranslationMessage(translationPreviewInfo)"
|
||||||
>
|
>
|
||||||
<!--{{ 'chat.send' | translate }}-->
|
<!--{{ 'chat.send' | translate }}-->
|
||||||
<svg _ngcontent-smu-c52="" fill="none" height="20" stroke="currentColor" stroke-linecap="butt" stroke-linejoin="round"
|
<svg
|
||||||
stroke-width="2" viewBox="0 0 24 24" width="20" xmlns="http://www.w3.org/2000/svg">
|
_ngcontent-smu-c52=""
|
||||||
|
fill="none"
|
||||||
|
height="20"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-width="2"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
width="20"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
<path _ngcontent-smu-c52="" d="M12 19V6M5 12l7-7 7 7"></path>
|
<path _ngcontent-smu-c52="" d="M12 19V6M5 12l7-7 7 7"></path>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="btn-close-translatebox bg-accent-dark"
|
class="btn-close-translatebox bg-accent-color"
|
||||||
aria-label="Close"
|
aria-label="Close"
|
||||||
(click)="onClickTranslationCancel()"
|
(click)="onClickTranslationCancel()"
|
||||||
>
|
>
|
||||||
|
|
|
@ -10,29 +10,26 @@
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
|
|
||||||
.translate-text {
|
.translate-text {
|
||||||
margin: 10px 10px 10px 30px;
|
margin: 14px 20px 14px 30px;
|
||||||
max-height: 100px;
|
max-height: 100px;
|
||||||
word-break: break-all;
|
word-wrap: break-word;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
|
word-break: break-word;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
}
|
}
|
||||||
.btn-translation-send {
|
.btn-translation-send {
|
||||||
/* min-width: 80px;
|
align-self: center;
|
||||||
background-color: rgb(255, 255, 255,0.1);
|
stroke: #ffffff;
|
||||||
border-radius: 0;
|
|
||||||
border: none;*/
|
|
||||||
background-color: #ffffff;
|
|
||||||
color: #333333;
|
|
||||||
border-radius: 0;
|
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
|
min-width: 40px;
|
||||||
|
border: 2px solid #ffffff;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
min-width: 40px;
|
line-height: 1;
|
||||||
align-self: center;
|
|
||||||
}
|
}
|
||||||
.btn-close-translatebox {
|
.btn-close-translatebox {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user