This commit is contained in:
Richard Park 2020-01-10 16:51:41 +09:00
commit 69ec1fc30e
27 changed files with 188 additions and 164 deletions

View File

@ -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 }}

View File

@ -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

View File

@ -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

View File

@ -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)}`;
}
} }

View File

@ -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)">

View File

@ -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;

View File

@ -103,6 +103,7 @@
.ps-content { .ps-content {
display: flex; display: flex;
flex-flow: wrap; flex-flow: wrap;
height: auto;
} }
} }
} }

View File

@ -32,38 +32,40 @@
</div> </div>
</ng-container> </ng-container>
<ng-container *ngIf="selectedFile"> <ng-container *ngIf="selectedFile">
<div class="select-flie"> <div class="select-filed">
<div <div class="select-flie">
[ngClass]="[ <div
'mime-icon', [ngClass]="[
'light', 'mime-icon',
'ico-' + getExtention(selectedFile.info.name) 'light',
]" 'ico-' + getExtention(selectedFile.info.name)
> ]"
<div class="ico"></div> >
<div class="ico"></div>
</div>
<ul>
<li class="name">{{ selectedFile.info.name }}</li>
<li>
<span class="text-accent-color"
>{{ 'common.file.size' | translate }} :</span
>
{{ selectedFile.info.size | ucapBytes }}
</li>
<li>
<span class="text-accent-color"
>{{ 'chat.validityPeriod' | translate }} :</span
>
{{ selectedFile.info.sendDate | ucapDate: 'YYYY.MM.DD' }}
<span *ngIf="loginRes.fileRetentionPeriod > 0">
~
{{
selectedFile.info.sendDate
| ucapDate: 'YYYY.MM.DD':fileRetentionPeriodOptions
}}
</span>
</li>
</ul>
</div> </div>
<ul>
<li class="name">{{ selectedFile.info.name }}</li>
<li>
<span class="text-accent-color"
>{{ 'common.file.size' | translate }} :</span
>
{{ selectedFile.info.size | ucapBytes }}
</li>
<li>
<span class="text-accent-color"
>{{ 'chat.validityPeriod' | translate }} :</span
>
{{ selectedFile.info.sendDate | ucapDate: 'YYYY.MM.DD' }}
<span *ngIf="loginRes.fileRetentionPeriod > 0">
~
{{
selectedFile.info.sendDate
| ucapDate: 'YYYY.MM.DD':fileRetentionPeriodOptions
}}
</span>
</li>
</ul>
</div> </div>
<div class="select-file-option"> <div class="select-file-option">
<span <span
@ -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

View File

@ -30,18 +30,24 @@
margin: 10px; margin: 10px;
border: 1px solid #cccccc; border: 1px solid #cccccc;
border-radius: 4px; border-radius: 4px;
.select-flie { .select-filed {
display: flex; height: calc(100% - 50px);
flex-flow: row; overflow-y: auto;
align-items: center; .select-flie {
color: #212121; display: flex;
align-items: center; flex-flow: row;
padding: 10px; align-items: flex-start;
border-bottom: 1px dotted #dddddd; color: #212121;
ul { padding: 10px;
padding: 0; border-bottom: 1px dotted #dddddd;
.name { ul {
font-weight: 600; padding: 0;
.name {
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;

View File

@ -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 }}

View File

@ -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

View File

@ -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 = [
if (cancelUserSeqs.indexOf(user.userSeq) >= 0) { ...this.receivers.map(user => {
user.cancelYn = true; if (cancelUserSeqs.indexOf(user.userSeq) >= 0) {
user.readYn = false; return {
} 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 {

View File

@ -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

View File

@ -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) {

View File

@ -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;

View File

@ -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."

View File

@ -305,6 +305,9 @@
"haveNoPermission": "SMS 사용 권한이 없습니다." "haveNoPermission": "SMS 사용 권한이 없습니다."
} }
}, },
"update": {
"label": "업데이트"
},
"notification": { "notification": {
"titleChatEventArrived": "메세지가 도착했습니다.", "titleChatEventArrived": "메세지가 도착했습니다.",
"titleMessageArrived": "쪽지가 도착했습니다." "titleMessageArrived": "쪽지가 도착했습니다."

View File

@ -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
}, },

View File

@ -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, {

View File

@ -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, {

View File

@ -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);
}; };

View File

@ -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;

View File

@ -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"

View File

@ -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;

View File

@ -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>

View File

@ -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()"
> >

View File

@ -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%;