Merge branch 'master' of https://git.loafle.net/ucap-web/next-ucap-messenger
This commit is contained in:
commit
4531d5d0bc
|
@ -4,4 +4,6 @@ import { Urls } from './urls';
|
|||
|
||||
export interface ModuleConfig extends CoreModuleConfig<Urls> {
|
||||
acceptableFileExtensions: string[];
|
||||
acceptableFileExtensionsForImage: string[];
|
||||
acceptableFileExtensionsForVideo: string[];
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ import {
|
|||
import { _MODULE_CONFIG } from '../config/token';
|
||||
import { ModuleConfig } from '../config/module-config';
|
||||
import { Urls } from '../config/urls';
|
||||
import { UrlConfig, MimeUtil } from '@ucap-webmessenger/core';
|
||||
import { UrlConfig, MimeUtil, FileUtil } from '@ucap-webmessenger/core';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
|
@ -223,7 +223,7 @@ export class CommonApiService {
|
|||
};
|
||||
}
|
||||
|
||||
public acceptableMimeForFileTalk(
|
||||
public checkInvalidMediaMimeForFileTalk(
|
||||
files: File[]
|
||||
): Promise<{ accept: boolean; rejected: string[] }> {
|
||||
return new Promise<{ accept: boolean; rejected: string[] }>(
|
||||
|
@ -236,10 +236,8 @@ export class CommonApiService {
|
|||
if (
|
||||
!file ||
|
||||
!info ||
|
||||
-1 ===
|
||||
this.moduleConfig.acceptableFileExtensions.indexOf(
|
||||
info.ext.toLocaleLowerCase()
|
||||
)
|
||||
(-1 === info.mime.indexOf('video/') &&
|
||||
-1 === info.mime.indexOf('image/'))
|
||||
) {
|
||||
rejected.push(file.name);
|
||||
accept = false;
|
||||
|
@ -253,6 +251,30 @@ export class CommonApiService {
|
|||
);
|
||||
}
|
||||
|
||||
mediaFiles(files: File[]): File[] {
|
||||
const filtered: File[] = [];
|
||||
|
||||
for (const file of files) {
|
||||
const extension = FileUtil.getExtension(file.name).toLocaleLowerCase();
|
||||
if (
|
||||
!!file &&
|
||||
-1 !==
|
||||
this.moduleConfig.acceptableFileExtensionsForImage.indexOf(extension)
|
||||
) {
|
||||
filtered.push(file);
|
||||
}
|
||||
if (
|
||||
!!file &&
|
||||
-1 !==
|
||||
this.moduleConfig.acceptableFileExtensionsForVideo.indexOf(extension)
|
||||
) {
|
||||
filtered.push(file);
|
||||
}
|
||||
}
|
||||
|
||||
return 0 < filtered.length ? filtered : undefined;
|
||||
}
|
||||
|
||||
/** @deprecated */
|
||||
public mimeCheckForImageAndVideoFiles(files: File[]) {
|
||||
files.forEach(file => {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Component, OnInit } from '@angular/core';
|
||||
import { ucapAnimations, StatusBarService } from '@ucap-webmessenger/ui';
|
||||
import { ucapAnimations } from '@ucap-webmessenger/ui';
|
||||
import { environment } from '../../../../environments/environment';
|
||||
|
||||
@Component({
|
||||
|
@ -9,7 +9,7 @@ import { environment } from '../../../../environments/environment';
|
|||
animations: ucapAnimations
|
||||
})
|
||||
export class IntroComponent implements OnInit {
|
||||
constructor(private statusBarService: StatusBarService) {}
|
||||
constructor() {}
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
|
@ -18,14 +18,4 @@ export class IntroComponent implements OnInit {
|
|||
? environment.title
|
||||
: 'UCapMessenger';
|
||||
}
|
||||
|
||||
private toggle = false;
|
||||
onClickStatusBar() {
|
||||
if (!this.toggle) {
|
||||
this.statusBarService.open('');
|
||||
} else {
|
||||
this.statusBarService.dismiss();
|
||||
}
|
||||
this.toggle = !this.toggle;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1111,49 +1111,27 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
|||
// fileUploadItems.map(fui => fui.file)
|
||||
// );
|
||||
|
||||
const checkExt = await this.commonApiService.acceptableMimeForFileTalk(
|
||||
fileUploadItems.map(fui => fui.file)
|
||||
const checkExt = this.commonApiService.acceptableExtensionForFileTalk(
|
||||
fileUploadItems.map(fui => FileUtil.getExtension(fui.file.name))
|
||||
);
|
||||
|
||||
// const checkExt = this.commonApiService.acceptableExtensionForFileTalk(
|
||||
// fileUploadItems.map(fui => FileUtil.getExtension(fui.file.name))
|
||||
// );
|
||||
if (!checkExt.accept) {
|
||||
if (!!this.fileUploadQueue) {
|
||||
this.fileUploadQueue.onUploadComplete();
|
||||
}
|
||||
|
||||
// this.snackBarService.openFromComponent<
|
||||
// AlertSnackbarComponent,
|
||||
// AlertSnackbarData
|
||||
// >(AlertSnackbarComponent, {
|
||||
// duration: 1000,
|
||||
// verticalPosition: 'bottom',
|
||||
// horizontalPosition: 'center',
|
||||
// data: {
|
||||
// html: this.translateService.instant(
|
||||
// 'common.file.errors.notSupporedType',
|
||||
// {
|
||||
// supporedType:
|
||||
// checkExt.reject.length > 0 ? checkExt.reject.join(',') : ''
|
||||
// }
|
||||
// )
|
||||
// }
|
||||
// });
|
||||
|
||||
this.snackBarService.openFromComponent<
|
||||
AlertSnackbarComponent,
|
||||
AlertSnackbarData
|
||||
>(AlertSnackbarComponent, {
|
||||
duration: 3000,
|
||||
duration: 1000,
|
||||
verticalPosition: 'bottom',
|
||||
horizontalPosition: 'center',
|
||||
data: {
|
||||
html: this.translateService.instant(
|
||||
'common.file.errors.notAcceptableMime',
|
||||
'common.file.errors.notSupporedType',
|
||||
{
|
||||
supporedType:
|
||||
checkExt.rejected.length > 0 ? checkExt.rejected.join(',') : ''
|
||||
checkExt.reject.length > 0 ? checkExt.reject.join(',') : ''
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -1162,6 +1140,43 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
|||
return;
|
||||
}
|
||||
|
||||
const mediaFiles = this.commonApiService.mediaFiles(
|
||||
fileUploadItems.map(fui => fui.file)
|
||||
);
|
||||
|
||||
if (!!mediaFiles) {
|
||||
const fakeMedia = await this.commonApiService.checkInvalidMediaMimeForFileTalk(
|
||||
fileUploadItems.map(fui => fui.file)
|
||||
);
|
||||
if (!fakeMedia.accept) {
|
||||
if (!!this.fileUploadQueue) {
|
||||
this.fileUploadQueue.onUploadComplete();
|
||||
}
|
||||
|
||||
this.snackBarService.openFromComponent<
|
||||
AlertSnackbarComponent,
|
||||
AlertSnackbarData
|
||||
>(AlertSnackbarComponent, {
|
||||
duration: 3000,
|
||||
verticalPosition: 'bottom',
|
||||
horizontalPosition: 'center',
|
||||
data: {
|
||||
html: this.translateService.instant(
|
||||
'common.file.errors.notAcceptableMime',
|
||||
{
|
||||
supporedType:
|
||||
fakeMedia.rejected.length > 0
|
||||
? fakeMedia.rejected.join(',')
|
||||
: ''
|
||||
}
|
||||
)
|
||||
}
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (const fileUploadItem of fileUploadItems) {
|
||||
let thumbnail: File;
|
||||
if (
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
></app-layout-messenger-left-side>
|
||||
</mat-drawer>
|
||||
<div class="chat-messages bg-accent-brightest">
|
||||
<div
|
||||
<!-- <div
|
||||
#statusbarContainer
|
||||
class="messenger-statusbar-container bg-accent-darkest"
|
||||
>
|
||||
|
@ -23,7 +23,7 @@
|
|||
업데이트가 존재합니다.
|
||||
</div>
|
||||
<div class="messenger-statusbar-actions"></div>
|
||||
</div>
|
||||
</div> -->
|
||||
<app-layout-messenger-intro
|
||||
*ngIf="!(this.selectedChat$ | async)"
|
||||
></app-layout-messenger-intro>
|
||||
|
|
|
@ -27,8 +27,7 @@ import {
|
|||
AlertDialogComponent,
|
||||
AlertDialogResult,
|
||||
AlertDialogData,
|
||||
ConfirmDialogData,
|
||||
StatusBarService
|
||||
ConfirmDialogData
|
||||
} from '@ucap-webmessenger/ui';
|
||||
import {
|
||||
ProfileDialogComponent,
|
||||
|
@ -99,7 +98,6 @@ export class MainPageComponent implements OnInit, OnDestroy {
|
|||
private sessionStorageService: SessionStorageService,
|
||||
private translateService: TranslateService,
|
||||
private dialogService: DialogService,
|
||||
private statusBarService: StatusBarService,
|
||||
private logger: NGXLogger
|
||||
) {
|
||||
this.environmentsInfo = this.sessionStorageService.get<EnvironmentsInfo>(
|
||||
|
@ -108,8 +106,6 @@ export class MainPageComponent implements OnInit, OnDestroy {
|
|||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.statusBarService.container = this.statusbarContainer;
|
||||
|
||||
this.selectedChat$ = this.store.pipe(
|
||||
select(AppStore.MessengerSelector.ChatSelector.selectedRoom),
|
||||
tap(selectedRoom => {
|
||||
|
|
|
@ -7,7 +7,9 @@ import {
|
|||
piUrls,
|
||||
protocolUrls,
|
||||
messageApiUrls,
|
||||
promptUrls
|
||||
promptUrls,
|
||||
commonApiAcceptableFileExtensionsForImage,
|
||||
commonApiAcceptableFileExtensionsForVideo
|
||||
} from './environment.type';
|
||||
import { DeviceType, NotificationMethod } from '@ucap-webmessenger/core';
|
||||
|
||||
|
@ -102,7 +104,9 @@ export const environment: Environment = {
|
|||
port: 8011
|
||||
},
|
||||
urls: commonApiUrls,
|
||||
acceptableFileExtensions: commonApiacceptableFileExtensions
|
||||
acceptableFileExtensions: commonApiacceptableFileExtensions,
|
||||
acceptableFileExtensionsForImage: commonApiAcceptableFileExtensionsForImage,
|
||||
acceptableFileExtensionsForVideo: commonApiAcceptableFileExtensionsForVideo
|
||||
},
|
||||
|
||||
publicApiModuleConfig: {
|
||||
|
|
|
@ -7,7 +7,9 @@ import {
|
|||
piUrls,
|
||||
protocolUrls,
|
||||
messageApiUrls,
|
||||
promptUrls
|
||||
promptUrls,
|
||||
commonApiAcceptableFileExtensionsForImage,
|
||||
commonApiAcceptableFileExtensionsForVideo
|
||||
} from './environment.type';
|
||||
import { DeviceType, NotificationMethod } from '@ucap-webmessenger/core';
|
||||
|
||||
|
@ -102,7 +104,9 @@ export const environment: Environment = {
|
|||
port: 443
|
||||
},
|
||||
urls: commonApiUrls,
|
||||
acceptableFileExtensions: commonApiacceptableFileExtensions
|
||||
acceptableFileExtensions: commonApiacceptableFileExtensions,
|
||||
acceptableFileExtensionsForImage: commonApiAcceptableFileExtensionsForImage,
|
||||
acceptableFileExtensionsForVideo: commonApiAcceptableFileExtensionsForVideo
|
||||
},
|
||||
|
||||
publicApiModuleConfig: {
|
||||
|
|
|
@ -7,7 +7,9 @@ import {
|
|||
piUrls,
|
||||
protocolUrls,
|
||||
messageApiUrls,
|
||||
promptUrls
|
||||
promptUrls,
|
||||
commonApiAcceptableFileExtensionsForImage,
|
||||
commonApiAcceptableFileExtensionsForVideo
|
||||
} from './environment.type';
|
||||
import { DeviceType, NotificationMethod } from '@ucap-webmessenger/core';
|
||||
|
||||
|
@ -98,7 +100,9 @@ export const environment: Environment = {
|
|||
port: 8011
|
||||
},
|
||||
urls: commonApiUrls,
|
||||
acceptableFileExtensions: commonApiacceptableFileExtensions
|
||||
acceptableFileExtensions: commonApiacceptableFileExtensions,
|
||||
acceptableFileExtensionsForImage: commonApiAcceptableFileExtensionsForImage,
|
||||
acceptableFileExtensionsForVideo: commonApiAcceptableFileExtensionsForVideo
|
||||
},
|
||||
|
||||
publicApiModuleConfig: {
|
||||
|
|
|
@ -7,7 +7,9 @@ import {
|
|||
piUrls,
|
||||
protocolUrls,
|
||||
messageApiUrls,
|
||||
promptUrls
|
||||
promptUrls,
|
||||
commonApiAcceptableFileExtensionsForImage,
|
||||
commonApiAcceptableFileExtensionsForVideo
|
||||
} from './environment.type';
|
||||
import { DeviceType, NotificationMethod } from '@ucap-webmessenger/core';
|
||||
|
||||
|
@ -98,7 +100,9 @@ export const environment: Environment = {
|
|||
port: 8011
|
||||
},
|
||||
urls: commonApiUrls,
|
||||
acceptableFileExtensions: commonApiacceptableFileExtensions
|
||||
acceptableFileExtensions: commonApiacceptableFileExtensions,
|
||||
acceptableFileExtensionsForImage: commonApiAcceptableFileExtensionsForImage,
|
||||
acceptableFileExtensionsForVideo: commonApiAcceptableFileExtensionsForVideo
|
||||
},
|
||||
|
||||
publicApiModuleConfig: {
|
||||
|
|
|
@ -194,8 +194,7 @@ export const protocolUrls: ProtocolUrls = {
|
|||
base: '/'
|
||||
};
|
||||
|
||||
export const commonApiacceptableFileExtensions: string[] = [
|
||||
// 문서
|
||||
export const commonApiAcceptableFileExtensionsForDocumnet: string[] = [
|
||||
'doc',
|
||||
'docx',
|
||||
'dot',
|
||||
|
@ -214,9 +213,10 @@ export const commonApiacceptableFileExtensions: string[] = [
|
|||
'txt',
|
||||
'csv',
|
||||
'pdf',
|
||||
'hwp',
|
||||
'hwp'
|
||||
];
|
||||
|
||||
// 이미지
|
||||
export const commonApiAcceptableFileExtensionsForImage: string[] = [
|
||||
'tif',
|
||||
'ogg',
|
||||
'psd',
|
||||
|
@ -225,9 +225,9 @@ export const commonApiacceptableFileExtensions: string[] = [
|
|||
'gif',
|
||||
'jpg',
|
||||
'jpeg',
|
||||
'png',
|
||||
|
||||
// 압축
|
||||
'png'
|
||||
];
|
||||
export const commonApiAcceptableFileExtensionsForArchive: string[] = [
|
||||
'zip',
|
||||
'alz',
|
||||
'a00',
|
||||
|
@ -239,18 +239,18 @@ export const commonApiacceptableFileExtensions: string[] = [
|
|||
'a06',
|
||||
'a07',
|
||||
'a08',
|
||||
'a09',
|
||||
|
||||
// 오디오
|
||||
'a09'
|
||||
];
|
||||
export const commonApiAcceptableFileExtensionsForAudio: string[] = [
|
||||
'wav',
|
||||
'mp3',
|
||||
'm4a',
|
||||
|
||||
// 플래쉬
|
||||
'm4a'
|
||||
];
|
||||
export const commonApiAcceptableFileExtensionsForFlash: string[] = [
|
||||
'swf',
|
||||
'fla',
|
||||
|
||||
// 동영상
|
||||
'fla'
|
||||
];
|
||||
export const commonApiAcceptableFileExtensionsForVideo: string[] = [
|
||||
'avi',
|
||||
'mp4',
|
||||
'wmv',
|
||||
|
@ -261,13 +261,36 @@ export const commonApiacceptableFileExtensions: string[] = [
|
|||
'webm',
|
||||
'm4v',
|
||||
'mpg',
|
||||
'mpeg',
|
||||
|
||||
// 폴더전송
|
||||
'mpeg'
|
||||
];
|
||||
export const commonApiAcceptableFileExtensionsForFolder: string[] = [
|
||||
'zdr',
|
||||
'dat'
|
||||
];
|
||||
|
||||
export const commonApiacceptableFileExtensions: string[] = [
|
||||
// 문서
|
||||
...commonApiAcceptableFileExtensionsForDocumnet,
|
||||
|
||||
// 이미지
|
||||
...commonApiAcceptableFileExtensionsForImage,
|
||||
|
||||
// 압축
|
||||
...commonApiAcceptableFileExtensionsForArchive,
|
||||
|
||||
// 오디오
|
||||
...commonApiAcceptableFileExtensionsForAudio,
|
||||
|
||||
// 플래쉬
|
||||
...commonApiAcceptableFileExtensionsForFlash,
|
||||
|
||||
// 동영상
|
||||
...commonApiAcceptableFileExtensionsForVideo,
|
||||
|
||||
// 폴더전송
|
||||
...commonApiAcceptableFileExtensionsForFolder
|
||||
];
|
||||
|
||||
// export abstract class UrlConfig {
|
||||
// constructor(
|
||||
// protected useSsl: boolean,
|
||||
|
|
|
@ -56,7 +56,6 @@ import { SplashScreenService } from './services/splash-screen.service';
|
|||
import { TranslateService } from './services/translate.service';
|
||||
import { DateService } from './services/date.service';
|
||||
import { PaginatorIntlService } from './services/paginator-intl.service';
|
||||
import { StatusBarService } from './services/status-bar.service';
|
||||
|
||||
import { ClickOutsideDirective } from './directives/click-outside.directive';
|
||||
import { FileUploadForDirective } from './directives/file-upload-for.directive';
|
||||
|
@ -138,8 +137,7 @@ const SERVICES = [
|
|||
SplashScreenService,
|
||||
TranslateService,
|
||||
DateService,
|
||||
PaginatorIntlService,
|
||||
StatusBarService
|
||||
PaginatorIntlService
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
|
Loading…
Reference in New Issue
Block a user