1. 파일 에러시 발생하는 snackbar 에 '확인' 버튼 추가.
2. snackbar 다국어 처리. 3. 화상회의 권한으로 처리.
This commit is contained in:
parent
0f72beeca9
commit
ebc5744442
|
@ -115,7 +115,8 @@ export class FileViewerDialogComponent implements OnInit, OnDestroy {
|
||||||
this.snackBarService.open(
|
this.snackBarService.open(
|
||||||
this.translateService.instant(
|
this.translateService.instant(
|
||||||
'common.file.errors.failToSave'
|
'common.file.errors.failToSave'
|
||||||
)
|
),
|
||||||
|
this.translateService.instant('common.file.errors.label')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -123,7 +124,8 @@ export class FileViewerDialogComponent implements OnInit, OnDestroy {
|
||||||
this.snackBarService.open(
|
this.snackBarService.open(
|
||||||
this.translateService.instant(
|
this.translateService.instant(
|
||||||
'common.file.errors.failToSave'
|
'common.file.errors.failToSave'
|
||||||
)
|
),
|
||||||
|
this.translateService.instant('common.file.errors.label')
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
|
@ -33,7 +33,6 @@ import { ExpansionPanelComponent as GroupExpansionPanelComponent } from '@ucap-w
|
||||||
|
|
||||||
import { LoginResponse } from '@ucap-webmessenger/protocol-authentication';
|
import { LoginResponse } from '@ucap-webmessenger/protocol-authentication';
|
||||||
import { UserInfo, GroupDetailData } from '@ucap-webmessenger/protocol-sync';
|
import { UserInfo, GroupDetailData } from '@ucap-webmessenger/protocol-sync';
|
||||||
import { StatusProtocolService } from '@ucap-webmessenger/protocol-status';
|
|
||||||
import {
|
import {
|
||||||
DeptSearchType,
|
DeptSearchType,
|
||||||
UserInfoSS,
|
UserInfoSS,
|
||||||
|
@ -74,6 +73,7 @@ import {
|
||||||
MessageWriteDialogData
|
MessageWriteDialogData
|
||||||
} from '../../dialogs/message/message-write.dialog.component';
|
} from '../../dialogs/message/message-write.dialog.component';
|
||||||
import { environment } from '../../../../../environments/environment';
|
import { environment } from '../../../../../environments/environment';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-layout-chat-left-sidenav-group',
|
selector: 'app-layout-chat-left-sidenav-group',
|
||||||
|
@ -125,7 +125,7 @@ export class GroupComponent implements OnInit, OnDestroy {
|
||||||
private sessionStorageService: SessionStorageService,
|
private sessionStorageService: SessionStorageService,
|
||||||
private dialogService: DialogService,
|
private dialogService: DialogService,
|
||||||
private queryProtocolService: QueryProtocolService,
|
private queryProtocolService: QueryProtocolService,
|
||||||
private statusProtocolService: StatusProtocolService,
|
private translateService: TranslateService,
|
||||||
private logger: NGXLogger
|
private logger: NGXLogger
|
||||||
) {
|
) {
|
||||||
this.environmentsInfo = this.sessionStorageService.get<EnvironmentsInfo>(
|
this.environmentsInfo = this.sessionStorageService.get<EnvironmentsInfo>(
|
||||||
|
@ -506,8 +506,16 @@ export class GroupComponent implements OnInit, OnDestroy {
|
||||||
>(ConfirmDialogComponent, {
|
>(ConfirmDialogComponent, {
|
||||||
width: '360px',
|
width: '360px',
|
||||||
data: {
|
data: {
|
||||||
title: 'Delete Member in Group',
|
title: this.translateService.instant(
|
||||||
html: `[${userInfo.name} ${userInfo.grade}]를 [${group.name}]그룹에서 삭제하시겠습니까?`
|
'group.removeBuddyFromGroup'
|
||||||
|
),
|
||||||
|
html: this.translateService.instant(
|
||||||
|
'group.confirmRemoveBuddyFromGroupInContextMenu',
|
||||||
|
{
|
||||||
|
target: `${userInfo.name} ${userInfo.grade}`,
|
||||||
|
targetGroup: `${group.name}`
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -533,7 +541,7 @@ export class GroupComponent implements OnInit, OnDestroy {
|
||||||
>(SelectGroupDialogComponent, {
|
>(SelectGroupDialogComponent, {
|
||||||
width: '600px',
|
width: '600px',
|
||||||
data: {
|
data: {
|
||||||
title: 'Group Select'
|
title: this.translateService.instant('group.selectTargetGroup')
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -572,7 +580,7 @@ export class GroupComponent implements OnInit, OnDestroy {
|
||||||
>(SelectGroupDialogComponent, {
|
>(SelectGroupDialogComponent, {
|
||||||
width: '600px',
|
width: '600px',
|
||||||
data: {
|
data: {
|
||||||
title: 'Group Select'
|
title: this.translateService.instant('group.selectTargetGroup')
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -707,7 +715,7 @@ export class GroupComponent implements OnInit, OnDestroy {
|
||||||
EditGroupDialogResult
|
EditGroupDialogResult
|
||||||
>(EditGroupDialogComponent, {
|
>(EditGroupDialogComponent, {
|
||||||
data: {
|
data: {
|
||||||
title: 'Group Name Edit',
|
title: this.translateService.instant('group.changeGroupName'),
|
||||||
group
|
group
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -735,7 +743,7 @@ export class GroupComponent implements OnInit, OnDestroy {
|
||||||
width: '600px',
|
width: '600px',
|
||||||
data: {
|
data: {
|
||||||
type: UserSelectDialogType.EditMember,
|
type: UserSelectDialogType.EditMember,
|
||||||
title: 'Group Member Edit',
|
title: this.translateService.instant('group.modifyGroupMember'),
|
||||||
group
|
group
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -764,8 +772,10 @@ export class GroupComponent implements OnInit, OnDestroy {
|
||||||
>(ConfirmDialogComponent, {
|
>(ConfirmDialogComponent, {
|
||||||
width: '360px',
|
width: '360px',
|
||||||
data: {
|
data: {
|
||||||
title: 'Delete group',
|
title: this.translateService.instant('group.removeGroup'),
|
||||||
html: `그룹(${group.name})을 삭제하시겠습니까?<br/>그룹 멤버는 해당 그룹에서만 삭제됩니다.`
|
html: this.translateService.instant('group.confirmRemoveGroup', {
|
||||||
|
nameOfGroup: `${group.name}`
|
||||||
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -156,7 +156,7 @@
|
||||||
{{ 'organization.startChat' | translate }}
|
{{ 'organization.startChat' | translate }}
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li *ngIf="!!authInfo && authInfo.canVideoConference">
|
||||||
<button
|
<button
|
||||||
mat-flat-button
|
mat-flat-button
|
||||||
[disabled]="selectedUserList.length > 0 ? 'false' : 'true'"
|
[disabled]="selectedUserList.length > 0 ? 'false' : 'true'"
|
||||||
|
|
|
@ -8,11 +8,7 @@ import {
|
||||||
ViewChild,
|
ViewChild,
|
||||||
AfterViewChecked
|
AfterViewChecked
|
||||||
} from '@angular/core';
|
} from '@angular/core';
|
||||||
import {
|
import { ucapAnimations, DialogService } from '@ucap-webmessenger/ui';
|
||||||
ucapAnimations,
|
|
||||||
DialogService,
|
|
||||||
TranslateService
|
|
||||||
} from '@ucap-webmessenger/ui';
|
|
||||||
import { Observable, Subscription, of } from 'rxjs';
|
import { Observable, Subscription, of } from 'rxjs';
|
||||||
import {
|
import {
|
||||||
DeptInfo,
|
DeptInfo,
|
||||||
|
@ -24,7 +20,8 @@ import {
|
||||||
UserInfoDN,
|
UserInfoDN,
|
||||||
SSVC_TYPE_QUERY_DEPT_USER_DATA,
|
SSVC_TYPE_QUERY_DEPT_USER_DATA,
|
||||||
SSVC_TYPE_QUERY_DEPT_USER_RES,
|
SSVC_TYPE_QUERY_DEPT_USER_RES,
|
||||||
DeptUserData
|
DeptUserData,
|
||||||
|
AuthResponse
|
||||||
} from '@ucap-webmessenger/protocol-query';
|
} from '@ucap-webmessenger/protocol-query';
|
||||||
import { UserInfo, GroupDetailData } from '@ucap-webmessenger/protocol-sync';
|
import { UserInfo, GroupDetailData } from '@ucap-webmessenger/protocol-sync';
|
||||||
import { Store, select } from '@ngrx/store';
|
import { Store, select } from '@ngrx/store';
|
||||||
|
@ -41,7 +38,8 @@ import {
|
||||||
KEY_LOGIN_INFO,
|
KEY_LOGIN_INFO,
|
||||||
KEY_VER_INFO,
|
KEY_VER_INFO,
|
||||||
EnvironmentsInfo,
|
EnvironmentsInfo,
|
||||||
KEY_ENVIRONMENTS_INFO
|
KEY_ENVIRONMENTS_INFO,
|
||||||
|
KEY_AUTH_INFO
|
||||||
} from '@app/types';
|
} from '@app/types';
|
||||||
import { take, map, tap, delay, catchError } from 'rxjs/operators';
|
import { take, map, tap, delay, catchError } from 'rxjs/operators';
|
||||||
import { VersionInfo2Response } from '@ucap-webmessenger/api-public';
|
import { VersionInfo2Response } from '@ucap-webmessenger/api-public';
|
||||||
|
@ -65,6 +63,7 @@ import {
|
||||||
SelectedUserListDialogResult,
|
SelectedUserListDialogResult,
|
||||||
SelectedUserListDialogData
|
SelectedUserListDialogData
|
||||||
} from '../../dialogs/organization/selected-user-list.dialog.component';
|
} from '../../dialogs/organization/selected-user-list.dialog.component';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-layout-chat-left-sidenav-organization',
|
selector: 'app-layout-chat-left-sidenav-organization',
|
||||||
|
@ -144,6 +143,7 @@ export class OrganizationComponent
|
||||||
loginRes: LoginResponse;
|
loginRes: LoginResponse;
|
||||||
sessionVerinfo: VersionInfo2Response;
|
sessionVerinfo: VersionInfo2Response;
|
||||||
environmentsInfo: EnvironmentsInfo;
|
environmentsInfo: EnvironmentsInfo;
|
||||||
|
authInfo: AuthResponse;
|
||||||
|
|
||||||
isShowSearch = false;
|
isShowSearch = false;
|
||||||
searchUserInfos: UserInfoSS[] = [];
|
searchUserInfos: UserInfoSS[] = [];
|
||||||
|
@ -166,6 +166,7 @@ export class OrganizationComponent
|
||||||
this.environmentsInfo = this.sessionStorageService.get<EnvironmentsInfo>(
|
this.environmentsInfo = this.sessionStorageService.get<EnvironmentsInfo>(
|
||||||
KEY_ENVIRONMENTS_INFO
|
KEY_ENVIRONMENTS_INFO
|
||||||
);
|
);
|
||||||
|
this.authInfo = this.sessionStorageService.get<AuthResponse>(KEY_AUTH_INFO);
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
@ -448,7 +449,7 @@ export class OrganizationComponent
|
||||||
SelectedUserListDialogResult
|
SelectedUserListDialogResult
|
||||||
>(SelectedUserListDialogComponent, {
|
>(SelectedUserListDialogComponent, {
|
||||||
data: {
|
data: {
|
||||||
title: '선택된 유저',
|
title: this.translateService.instant('organization.selectedUser'),
|
||||||
selectedUserList: this.selectedUserList
|
selectedUserList: this.selectedUserList
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -470,7 +471,7 @@ export class OrganizationComponent
|
||||||
>(SelectGroupDialogComponent, {
|
>(SelectGroupDialogComponent, {
|
||||||
width: '600px',
|
width: '600px',
|
||||||
data: {
|
data: {
|
||||||
title: 'Group Select'
|
title: this.translateService.instant('group.selectTargetGroup')
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -271,11 +271,15 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
this.searchEventListProcessing = process;
|
this.searchEventListProcessing = process;
|
||||||
if (!process && this.isShowSearchArea) {
|
if (!process && this.isShowSearchArea) {
|
||||||
this.doSearchTextInEvent(this.searchText);
|
this.doSearchTextInEvent(this.searchText);
|
||||||
this.snackBarService.open('대화검색을 마쳤습니다.', '확인', {
|
this.snackBarService.open(
|
||||||
duration: 3000,
|
this.translateService.instant('chat.searchEventByTextEnd'),
|
||||||
verticalPosition: 'top',
|
this.translateService.instant('common.messages.confirm'),
|
||||||
horizontalPosition: 'center'
|
{
|
||||||
});
|
duration: 3000,
|
||||||
|
verticalPosition: 'top',
|
||||||
|
horizontalPosition: 'center'
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
@ -580,7 +584,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
info.sentMessageJson || info.sentMessage
|
info.sentMessageJson || info.sentMessage
|
||||||
);
|
);
|
||||||
|
|
||||||
this.snackBarPreviewEvent = this.snackBarService.open(message, 'GO', {
|
this.snackBarPreviewEvent = this.snackBarService.open(message, this.translateService.instant('common.messages.confirm'), {
|
||||||
// duration: 3000,
|
// duration: 3000,
|
||||||
verticalPosition: 'bottom',
|
verticalPosition: 'bottom',
|
||||||
horizontalPosition: 'center',
|
horizontalPosition: 'center',
|
||||||
|
@ -1010,7 +1014,8 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
this.snackBarService.open(
|
this.snackBarService.open(
|
||||||
this.translateService.instant(
|
this.translateService.instant(
|
||||||
'common.file.errors.failToSave'
|
'common.file.errors.failToSave'
|
||||||
)
|
),
|
||||||
|
this.translateService.instant('common.file.errors.label')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -1018,7 +1023,8 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
this.snackBarService.open(
|
this.snackBarService.open(
|
||||||
this.translateService.instant(
|
this.translateService.instant(
|
||||||
'common.file.errors.failToSave'
|
'common.file.errors.failToSave'
|
||||||
)
|
),
|
||||||
|
this.translateService.instant('common.file.errors.label')
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
@ -1638,7 +1644,11 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
contents = (event.sentMessageJson as FileEventJson).fileName;
|
contents = (event.sentMessageJson as FileEventJson).fileName;
|
||||||
} else if (event.type === EventType.MassText && !!event.sentMessageJson) {
|
} else if (event.type === EventType.MassText && !!event.sentMessageJson) {
|
||||||
contents = (event.sentMessageJson as MassTextEventJson).content;
|
contents = (event.sentMessageJson as MassTextEventJson).content;
|
||||||
} else if ((event.type === EventType.Translation || event.type === EventType.MassTranslation) && !!event.sentMessageJson) {
|
} else if (
|
||||||
|
(event.type === EventType.Translation ||
|
||||||
|
event.type === EventType.MassTranslation) &&
|
||||||
|
!!event.sentMessageJson
|
||||||
|
) {
|
||||||
contents = (event.sentMessageJson as TranslationEventJson).original;
|
contents = (event.sentMessageJson as TranslationEventJson).original;
|
||||||
contents += (event.sentMessageJson as TranslationEventJson).translation;
|
contents += (event.sentMessageJson as TranslationEventJson).translation;
|
||||||
}
|
}
|
||||||
|
|
|
@ -250,7 +250,8 @@ export class AlbumBoxComponent implements OnInit, OnDestroy {
|
||||||
this.snackBarService.open(
|
this.snackBarService.open(
|
||||||
this.translateService.instant(
|
this.translateService.instant(
|
||||||
'common.file.errors.failToSave'
|
'common.file.errors.failToSave'
|
||||||
)
|
),
|
||||||
|
this.translateService.instant('common.file.errors.label')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -258,7 +259,8 @@ export class AlbumBoxComponent implements OnInit, OnDestroy {
|
||||||
this.snackBarService.open(
|
this.snackBarService.open(
|
||||||
this.translateService.instant(
|
this.translateService.instant(
|
||||||
'common.file.errors.failToSave'
|
'common.file.errors.failToSave'
|
||||||
)
|
),
|
||||||
|
this.translateService.instant('common.file.errors.label')
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
|
@ -294,7 +294,8 @@ export class FileBoxComponent implements OnInit, OnDestroy {
|
||||||
this.snackBarService.open(
|
this.snackBarService.open(
|
||||||
this.translateService.instant(
|
this.translateService.instant(
|
||||||
'common.file.errors.failToSave'
|
'common.file.errors.failToSave'
|
||||||
)
|
),
|
||||||
|
this.translateService.instant('common.file.errors.label')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -302,7 +303,8 @@ export class FileBoxComponent implements OnInit, OnDestroy {
|
||||||
this.snackBarService.open(
|
this.snackBarService.open(
|
||||||
this.translateService.instant(
|
this.translateService.instant(
|
||||||
'common.file.errors.failToSave'
|
'common.file.errors.failToSave'
|
||||||
)
|
),
|
||||||
|
this.translateService.instant('common.file.errors.label')
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
[isBuddy]="isBuddy"
|
[isBuddy]="isBuddy"
|
||||||
[isFavorit]="isFavorit"
|
[isFavorit]="isFavorit"
|
||||||
[openProfileOptions]="data.openProfileOptions"
|
[openProfileOptions]="data.openProfileOptions"
|
||||||
|
[authInfo]="authInfo"
|
||||||
(openChat)="onClickChat($event)"
|
(openChat)="onClickChat($event)"
|
||||||
(sendMessage)="onClickSendMessage($event)"
|
(sendMessage)="onClickSendMessage($event)"
|
||||||
(sendCall)="onClickSendClickToCall($event)"
|
(sendCall)="onClickSendClickToCall($event)"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, OnInit, Inject, ViewChild, OnDestroy } from '@angular/core';
|
import { Component, OnInit, Inject, ViewChild, OnDestroy } from '@angular/core';
|
||||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
||||||
import { KEY_LOGIN_RES_INFO, KEY_VER_INFO } from '@app/types';
|
import { KEY_LOGIN_RES_INFO, KEY_VER_INFO, KEY_AUTH_INFO } from '@app/types';
|
||||||
import { SessionStorageService } from '@ucap-webmessenger/web-storage';
|
import { SessionStorageService } from '@ucap-webmessenger/web-storage';
|
||||||
|
|
||||||
import { Store, select } from '@ngrx/store';
|
import { Store, select } from '@ngrx/store';
|
||||||
|
@ -13,7 +13,8 @@ import { UserInfo, GroupDetailData } from '@ucap-webmessenger/protocol-sync';
|
||||||
import {
|
import {
|
||||||
UserInfoSS,
|
UserInfoSS,
|
||||||
UserInfoF,
|
UserInfoF,
|
||||||
UserInfoDN
|
UserInfoDN,
|
||||||
|
AuthResponse
|
||||||
} from '@ucap-webmessenger/protocol-query';
|
} from '@ucap-webmessenger/protocol-query';
|
||||||
import {
|
import {
|
||||||
DialogService,
|
DialogService,
|
||||||
|
@ -71,6 +72,7 @@ export class ProfileDialogComponent implements OnInit, OnDestroy {
|
||||||
loginRes: LoginResponse;
|
loginRes: LoginResponse;
|
||||||
sessionVerinfo: VersionInfo2Response;
|
sessionVerinfo: VersionInfo2Response;
|
||||||
environmentsInfo: EnvironmentsInfo;
|
environmentsInfo: EnvironmentsInfo;
|
||||||
|
authInfo: AuthResponse;
|
||||||
|
|
||||||
isMe: boolean;
|
isMe: boolean;
|
||||||
isBuddy: boolean;
|
isBuddy: boolean;
|
||||||
|
@ -101,6 +103,7 @@ export class ProfileDialogComponent implements OnInit, OnDestroy {
|
||||||
this.environmentsInfo = this.sessionStorageService.get<EnvironmentsInfo>(
|
this.environmentsInfo = this.sessionStorageService.get<EnvironmentsInfo>(
|
||||||
KEY_ENVIRONMENTS_INFO
|
KEY_ENVIRONMENTS_INFO
|
||||||
);
|
);
|
||||||
|
this.authInfo = this.sessionStorageService.get<AuthResponse>(KEY_AUTH_INFO);
|
||||||
|
|
||||||
this.userInfo = data.userInfo;
|
this.userInfo = data.userInfo;
|
||||||
|
|
||||||
|
|
|
@ -146,76 +146,6 @@
|
||||||
*ngIf="(!!weblink && weblink.length > 0) || (updateInfo$ | async)"
|
*ngIf="(!!weblink && weblink.length > 0) || (updateInfo$ | async)"
|
||||||
class="stroke-bar"
|
class="stroke-bar"
|
||||||
></span>
|
></span>
|
||||||
<!--S[삭제예정] 마이프로필 설정을 이동
|
|
||||||
<button
|
|
||||||
mat-icon-button
|
|
||||||
class="button app-layout-native-title-bar-setting"
|
|
||||||
matTooltip="공지사항"
|
|
||||||
(click)="onClickNotice()"
|
|
||||||
>
|
|
||||||
<svg class="svg-icon" viewBox="0 0 24 24" fill="currentColor">
|
|
||||||
<path
|
|
||||||
d="M22.13,8.91h-1.94V1.56c0-0.31-0.18-0.58-0.47-0.7c-0.28-0.12-0.61-0.05-0.82,0.16c-3.35,3.35-6.25,4.95-8.09,5.7
|
|
||||||
C8.82,7.54,7.61,7.56,7.6,7.56H1.87c-0.42,0-0.76,0.34-0.76,0.76v6.76c0,0.42,0.34,0.76,0.76,0.76h0.77l2.86,6.9
|
|
||||||
c0.12,0.28,0.39,0.47,0.7,0.47h4.19c0,0,0,0,0,0c0.42,0,0.76-0.34,0.76-0.76c0-0.12-0.03-0.23-0.08-0.33l-2.55-6.16
|
|
||||||
c1.69,0.33,5.57,1.6,10.38,6.42c0.14,0.14,0.34,0.22,0.53,0.22c0,0,0.01,0,0.01,0c0.41-0.01,0.74-0.34,0.74-0.76
|
|
||||||
c0-0.02,0-0.03,0-0.05l0-7.31h1.94c0.42,0,0.76-0.34,0.76-0.76V9.67C22.88,9.25,22.54,8.91,22.13,8.91z M2.63,9.07h4.22v5.25H2.63
|
|
||||||
V9.07z M6.7,21.68l-2.35-5.67h2.55l2.35,5.67H6.7z M8.36,14.39V9c1.57-0.24,5.45-1.26,10.31-5.68v6.34v0v4.05c0,0,0,0,0,0l0,6.34
|
|
||||||
C13.81,15.65,9.93,14.63,8.36,14.39z M21.37,12.97h-1.19v-2.54h1.19V12.97z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button
|
|
||||||
mat-icon-button
|
|
||||||
class="button app-layout-native-title-bar-setting"
|
|
||||||
matTooltip="환경설정"
|
|
||||||
(click)="onClickSettings()"
|
|
||||||
>
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="18"
|
|
||||||
height="18"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="1.5"
|
|
||||||
stroke-linecap="butt"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
matTooltip="환경설정"
|
|
||||||
>
|
|
||||||
<circle cx="12" cy="12" r="3"></circle>
|
|
||||||
<path
|
|
||||||
d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"
|
|
||||||
></path>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button
|
|
||||||
mat-icon-button
|
|
||||||
class="button app-layout-native-title-bar-logout"
|
|
||||||
matTooltip="로그아웃"
|
|
||||||
(click)="onClickLogout()"
|
|
||||||
>
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="18"
|
|
||||||
height="18"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="none"
|
|
||||||
stroke="currentColor"
|
|
||||||
stroke-width="1.5"
|
|
||||||
stroke-linecap="butt"
|
|
||||||
stroke-linejoin="round"
|
|
||||||
matTooltip="로그아웃"
|
|
||||||
class="stroke-warn-color"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M10 3H6a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h4M16 17l5-5-5-5M19.8 12H9"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
E[삭제예정] 마이프로필 설정을 이동-->
|
|
||||||
</div>
|
</div>
|
||||||
<ucap-profile-my-profile-widget
|
<ucap-profile-my-profile-widget
|
||||||
[profileImageRoot]="sessionVerinfo.profileRoot"
|
[profileImageRoot]="sessionVerinfo.profileRoot"
|
||||||
|
|
|
@ -28,7 +28,8 @@ import {
|
||||||
KEY_LOGIN_INFO,
|
KEY_LOGIN_INFO,
|
||||||
EnvironmentsInfo,
|
EnvironmentsInfo,
|
||||||
KEY_ENVIRONMENTS_INFO,
|
KEY_ENVIRONMENTS_INFO,
|
||||||
KEY_URL_INFO
|
KEY_URL_INFO,
|
||||||
|
KEY_AUTH_INFO
|
||||||
} from '@app/types';
|
} from '@app/types';
|
||||||
import { InnerProtocolService } from '@ucap-webmessenger/protocol-inner';
|
import { InnerProtocolService } from '@ucap-webmessenger/protocol-inner';
|
||||||
import {
|
import {
|
||||||
|
@ -39,7 +40,10 @@ import {
|
||||||
|
|
||||||
import * as AuthenticationStore from '@app/store/account/authentication';
|
import * as AuthenticationStore from '@app/store/account/authentication';
|
||||||
import { NGXLogger } from 'ngx-logger';
|
import { NGXLogger } from 'ngx-logger';
|
||||||
import { QueryProtocolService } from '@ucap-webmessenger/protocol-query';
|
import {
|
||||||
|
QueryProtocolService,
|
||||||
|
AuthResponse
|
||||||
|
} from '@ucap-webmessenger/protocol-query';
|
||||||
import { OptionProtocolService } from '@ucap-webmessenger/protocol-option';
|
import { OptionProtocolService } from '@ucap-webmessenger/protocol-option';
|
||||||
|
|
||||||
import { TranslateService as UCapTranslateService } from '@ucap-webmessenger/ui';
|
import { TranslateService as UCapTranslateService } from '@ucap-webmessenger/ui';
|
||||||
|
@ -203,6 +207,11 @@ export class AppMessengerResolver implements Resolve<void> {
|
||||||
this.store.dispatch(
|
this.store.dispatch(
|
||||||
OptionStore.regViewSuccess({ res: regViewRes })
|
OptionStore.regViewSuccess({ res: regViewRes })
|
||||||
);
|
);
|
||||||
|
|
||||||
|
this.sessionStorageService.set<AuthResponse>(KEY_AUTH_INFO, {
|
||||||
|
...authRes
|
||||||
|
});
|
||||||
|
|
||||||
this.store.dispatch(QueryStore.authSuccess({ res: authRes }));
|
this.store.dispatch(QueryStore.authSuccess({ res: authRes }));
|
||||||
|
|
||||||
this.store.dispatch(
|
this.store.dispatch(
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export const KEY_AUTH_INFO = 'ucap::AUTH_INFO';
|
|
@ -1,3 +1,4 @@
|
||||||
|
export * from './auth-info.type';
|
||||||
export * from './environment.type';
|
export * from './environment.type';
|
||||||
export * from './login-info.type';
|
export * from './login-info.type';
|
||||||
export * from './logout-info.type';
|
export * from './logout-info.type';
|
||||||
|
|
|
@ -137,6 +137,8 @@
|
||||||
"confirmAddNewWith": "Do you want to add a new ({{nameOfGroup}}) group?",
|
"confirmAddNewWith": "Do you want to add a new ({{nameOfGroup}}) group?",
|
||||||
"confirmAddNewWithout": "Do you want to add a new group?<br/>Created as an empty group.",
|
"confirmAddNewWithout": "Do you want to add a new group?<br/>Created as an empty group.",
|
||||||
"confirmRemoveBuddyFromGroup": "Do you want to remove [{{target}}] from group?<br/>Deleting it from your profile will remove it from all groups.",
|
"confirmRemoveBuddyFromGroup": "Do you want to remove [{{target}}] from group?<br/>Deleting it from your profile will remove it from all groups.",
|
||||||
|
"confirmRemoveBuddyFromGroupInContextMenu": "Do you want to remove [{{target}}] from [{{targetGroup}}] group?",
|
||||||
|
"confirmRemoveGroup": "Are you sure you want to delete the group {{nameOfGroup}}?<br/>Group members will only be deleted from that group.",
|
||||||
"errors": {
|
"errors": {
|
||||||
"label": "Group errors",
|
"label": "Group errors",
|
||||||
"requireName": "Group name is required."
|
"requireName": "Group name is required."
|
||||||
|
@ -148,6 +150,7 @@
|
||||||
"send": "Send",
|
"send": "Send",
|
||||||
"searchRoomByName": "Search by room name",
|
"searchRoomByName": "Search by room name",
|
||||||
"searchEventByText": "Search by chat",
|
"searchEventByText": "Search by chat",
|
||||||
|
"searchEventByTextEnd": "Complate Search by chat",
|
||||||
"nameOfRoom": "Name of chat room",
|
"nameOfRoom": "Name of chat room",
|
||||||
"scopeOfChangeNameOfRoom": "Scope of Changing",
|
"scopeOfChangeNameOfRoom": "Scope of Changing",
|
||||||
"newTimerChat": "New Timer Chat",
|
"newTimerChat": "New Timer Chat",
|
||||||
|
@ -228,7 +231,8 @@
|
||||||
"makeExtensionCall": "Make extension call",
|
"makeExtensionCall": "Make extension call",
|
||||||
"makeMobileCall": "Make mobile call",
|
"makeMobileCall": "Make mobile call",
|
||||||
"sendMessage": "Send message",
|
"sendMessage": "Send message",
|
||||||
"sendSMS": "Send SMS"
|
"sendSMS": "Send SMS",
|
||||||
|
"selectedUser": "Selected User"
|
||||||
},
|
},
|
||||||
"message": {
|
"message": {
|
||||||
"label": "Message",
|
"label": "Message",
|
||||||
|
|
|
@ -137,6 +137,8 @@
|
||||||
"confirmAddNewWith": "새로운 그룹({{nameOfGroup}})을 추가하시겠습니까?",
|
"confirmAddNewWith": "새로운 그룹({{nameOfGroup}})을 추가하시겠습니까?",
|
||||||
"confirmAddNewWithout": "새로운 그룹을 추가하시겠습니까?<br/>빈 그룹으로 생성됩니다.",
|
"confirmAddNewWithout": "새로운 그룹을 추가하시겠습니까?<br/>빈 그룹으로 생성됩니다.",
|
||||||
"confirmRemoveBuddyFromGroup": "[{{target}}]를 그룹에서 삭제하시겠습니까?<br/>프로필에서 삭제하면 모든 그룹에서 삭제됩니다.",
|
"confirmRemoveBuddyFromGroup": "[{{target}}]를 그룹에서 삭제하시겠습니까?<br/>프로필에서 삭제하면 모든 그룹에서 삭제됩니다.",
|
||||||
|
"confirmRemoveBuddyFromGroupInContextMenu": "[{{target}}]를 [{{targetGroup}}]그룹에서 삭제하시겠습니까?",
|
||||||
|
"confirmRemoveGroup": "그룹({{nameOfGroup}})을 삭제하시겠습니까?<br/>그룹 멤버는 해당 그룹에서만 삭제됩니다.",
|
||||||
"errors": {
|
"errors": {
|
||||||
"label": "그룹 에러",
|
"label": "그룹 에러",
|
||||||
"requireName": "그룹명은 필수입력입니다."
|
"requireName": "그룹명은 필수입력입니다."
|
||||||
|
@ -148,6 +150,7 @@
|
||||||
"send": "보내기",
|
"send": "보내기",
|
||||||
"searchRoomByName": "대화방 이름 검색",
|
"searchRoomByName": "대화방 이름 검색",
|
||||||
"searchEventByText": "대화 내용 검색",
|
"searchEventByText": "대화 내용 검색",
|
||||||
|
"searchEventByTextEnd": "대화 검색을 마쳤습니다.",
|
||||||
"nameOfRoom": "대화방 이름",
|
"nameOfRoom": "대화방 이름",
|
||||||
"scopeOfChangeNameOfRoom": "변경 범위",
|
"scopeOfChangeNameOfRoom": "변경 범위",
|
||||||
"newTimerChat": "새로운 타이머 대화",
|
"newTimerChat": "새로운 타이머 대화",
|
||||||
|
@ -228,7 +231,8 @@
|
||||||
"makeExtensionCall": "내선번호 전화걸기",
|
"makeExtensionCall": "내선번호 전화걸기",
|
||||||
"makeMobileCall": "모바일 전화걸기",
|
"makeMobileCall": "모바일 전화걸기",
|
||||||
"sendMessage": "쪽지 보내기",
|
"sendMessage": "쪽지 보내기",
|
||||||
"sendSMS": "SMS 보내기"
|
"sendSMS": "SMS 보내기",
|
||||||
|
"selectedUser": "선택된 유저"
|
||||||
},
|
},
|
||||||
"message": {
|
"message": {
|
||||||
"label": "쪽지",
|
"label": "쪽지",
|
||||||
|
|
|
@ -328,7 +328,10 @@
|
||||||
<span class="button-text">{{ 'profile.fieldSMS' | translate }}</span>
|
<span class="button-text">{{ 'profile.fieldSMS' | translate }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="button-text-item" *ngIf="!isMe">
|
<div
|
||||||
|
class="button-text-item"
|
||||||
|
*ngIf="!isMe && !!authInfo && authInfo.canVideoConference"
|
||||||
|
>
|
||||||
<button
|
<button
|
||||||
mat-mini-fab
|
mat-mini-fab
|
||||||
class="mat-elevation-z bg-accent-darkest"
|
class="mat-elevation-z bg-accent-darkest"
|
||||||
|
|
|
@ -9,7 +9,7 @@ import {
|
||||||
Inject
|
Inject
|
||||||
} from '@angular/core';
|
} from '@angular/core';
|
||||||
|
|
||||||
import { UserInfoSS } from '@ucap-webmessenger/protocol-query';
|
import { UserInfoSS, AuthResponse } from '@ucap-webmessenger/protocol-query';
|
||||||
import { OpenProfileOptions } from '@ucap-webmessenger/protocol-buddy';
|
import { OpenProfileOptions } from '@ucap-webmessenger/protocol-buddy';
|
||||||
import { FileUploadItem } from '@ucap-webmessenger/api';
|
import { FileUploadItem } from '@ucap-webmessenger/api';
|
||||||
import { FormControl } from '@angular/forms';
|
import { FormControl } from '@angular/forms';
|
||||||
|
@ -40,6 +40,8 @@ export class ProfileComponent implements OnInit {
|
||||||
myMadn?: string;
|
myMadn?: string;
|
||||||
@Input()
|
@Input()
|
||||||
openProfileOptions?: OpenProfileOptions;
|
openProfileOptions?: OpenProfileOptions;
|
||||||
|
@Input()
|
||||||
|
authInfo: AuthResponse;
|
||||||
|
|
||||||
@Output()
|
@Output()
|
||||||
openChat = new EventEmitter<UserInfoSS>();
|
openChat = new EventEmitter<UserInfoSS>();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user