Merge branch 'master' of https://git.loafle.net/ucap-web/next-ucap-messenger
This commit is contained in:
commit
3f43eb802a
|
@ -228,9 +228,18 @@ export class CommonApiService {
|
|||
): Promise<{ accept: boolean; rejected: string[] }> {
|
||||
return new Promise<{ accept: boolean; rejected: string[] }>(
|
||||
async (resolve, reject) => {
|
||||
const mediaFiles = this.mediaFiles(files);
|
||||
if (!mediaFiles) {
|
||||
resolve({
|
||||
accept: true,
|
||||
rejected: undefined
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
let accept = true;
|
||||
const rejected: string[] = [];
|
||||
for (const file of files) {
|
||||
for (const file of mediaFiles) {
|
||||
const info = await MimeUtil.getMimeFromBlob(file);
|
||||
// console.log('mime info', info);
|
||||
if (
|
||||
|
|
|
@ -1140,41 +1140,35 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
|||
return;
|
||||
}
|
||||
|
||||
const mediaFiles = this.commonApiService.mediaFiles(
|
||||
const fakeMedia = await this.commonApiService.checkInvalidMediaMimeForFileTalk(
|
||||
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;
|
||||
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) {
|
||||
|
|
|
@ -34,7 +34,8 @@
|
|||
>
|
||||
{{
|
||||
'group.errors.bannedWords'
|
||||
| translate: { bannedWords: bannedWords.join(',') }
|
||||
| translate
|
||||
: { bannedWords: appService.bannedGroupNames.join(',') }
|
||||
}}
|
||||
</mat-error>
|
||||
<mat-error
|
||||
|
|
|
@ -4,7 +4,8 @@ import {
|
|||
OnInit,
|
||||
OnDestroy,
|
||||
Inject,
|
||||
ChangeDetectorRef
|
||||
ChangeDetectorRef,
|
||||
NgZone
|
||||
} from '@angular/core';
|
||||
import {
|
||||
FormGroup,
|
||||
|
@ -73,6 +74,7 @@ import {
|
|||
import { TranslateService, TranslateParser } from '@ngx-translate/core';
|
||||
import { environment } from '../../../../../environments/environment';
|
||||
import { StringUtil } from '@ucap-webmessenger/core';
|
||||
import { AppService } from '@app/services/app.service';
|
||||
|
||||
export interface CreateChatDialogData {
|
||||
type?: string;
|
||||
|
@ -124,44 +126,13 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy {
|
|||
private logger: NGXLogger,
|
||||
private dialogService: DialogService,
|
||||
private translateService: TranslateService,
|
||||
private translateParser: TranslateParser,
|
||||
private changeDetectorRef: ChangeDetectorRef
|
||||
public appService: AppService,
|
||||
private changeDetectorRef: ChangeDetectorRef,
|
||||
private ngZone: NgZone
|
||||
) {
|
||||
this.sessionVerinfo = this.sessionStorageService.get<VersionInfo2Response>(
|
||||
KEY_VER_INFO
|
||||
);
|
||||
|
||||
const banKeys: string[] = [
|
||||
'group.nameFavorite',
|
||||
'group.nameMyDept',
|
||||
'group.nameDefault'
|
||||
];
|
||||
|
||||
const currentLang = this.translateService.currentLang;
|
||||
const langs = ['ko', 'en'];
|
||||
const translationObservables: Observable<any>[] = [];
|
||||
|
||||
langs.forEach(lang => {
|
||||
translationObservables.push(this.translateService.getTranslation(lang));
|
||||
});
|
||||
|
||||
forkJoin(translationObservables)
|
||||
.pipe(take(1))
|
||||
.subscribe(
|
||||
translations => {
|
||||
for (const translation of translations) {
|
||||
banKeys.forEach(banKey => {
|
||||
this.bannedWords.push(
|
||||
this.translateParser.getValue(translation, banKey)
|
||||
);
|
||||
});
|
||||
}
|
||||
},
|
||||
error => {},
|
||||
() => {
|
||||
this.translateService.use(currentLang);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
currentTabIndex: number;
|
||||
|
@ -205,8 +176,6 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy {
|
|||
|
||||
inputForm: FormGroup;
|
||||
|
||||
bannedWords: string[] = [];
|
||||
|
||||
groupTreeActivatedSubject = new BehaviorSubject<boolean>(false);
|
||||
|
||||
ngOnInit() {
|
||||
|
@ -356,7 +325,10 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy {
|
|||
return null;
|
||||
}
|
||||
const ban =
|
||||
-1 < this.bannedWords.indexOf((control.value as string).trim());
|
||||
-1 <
|
||||
this.appService.bannedGroupNames.indexOf(
|
||||
(control.value as string).trim()
|
||||
);
|
||||
return ban ? { groupNameBanned: { value: control.value } } : null;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -7,20 +7,25 @@ import { NativeService, UCAP_NATIVE_SERVICE } from '@ucap-webmessenger/native';
|
|||
import { AppNativeService } from './native.service';
|
||||
import { TranslateService as UCapTranslateService } from '@ucap-webmessenger/ui';
|
||||
import { DateService as UCapDateService } from '@ucap-webmessenger/ui';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { TranslateService, TranslateParser } from '@ngx-translate/core';
|
||||
import { EnviromentsService } from '@ucap-webmessenger/enviroments';
|
||||
import { NGXLogger, NgxLoggerLevel } from 'ngx-logger';
|
||||
|
||||
import { environment } from '../../environments/environment';
|
||||
import { Observable, forkJoin } from 'rxjs';
|
||||
import { take } from 'rxjs/operators';
|
||||
|
||||
@Injectable()
|
||||
export class AppService {
|
||||
bannedGroupNames: string[] = [];
|
||||
|
||||
constructor(
|
||||
private enviromentsService: EnviromentsService,
|
||||
private sessionStorageService: SessionStorageService,
|
||||
private appNotificationService: AppNotificationService,
|
||||
private appNativeService: AppNativeService,
|
||||
private translateService: TranslateService,
|
||||
private translateParser: TranslateParser,
|
||||
private ucapTranslateService: UCapTranslateService,
|
||||
private ucapDateService: UCapDateService,
|
||||
@Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService,
|
||||
|
@ -42,6 +47,41 @@ export class AppService {
|
|||
}
|
||||
|
||||
public postInit(): Promise<any> {
|
||||
const bannedGroupNamesPromise = new Promise<void>((resolve, reject) => {
|
||||
const banKeys: string[] = [
|
||||
'group.nameFavorite',
|
||||
'group.nameMyDept',
|
||||
'group.nameDefault'
|
||||
];
|
||||
|
||||
const currentLang = this.translateService.currentLang;
|
||||
const langs = ['ko', 'en'];
|
||||
const translationObservables: Observable<any>[] = [];
|
||||
|
||||
langs.forEach(lang => {
|
||||
translationObservables.push(this.translateService.getTranslation(lang));
|
||||
});
|
||||
|
||||
forkJoin(translationObservables)
|
||||
.pipe(take(1))
|
||||
.subscribe(
|
||||
translations => {
|
||||
for (const translation of translations) {
|
||||
banKeys.forEach(banKey => {
|
||||
this.bannedGroupNames.push(
|
||||
this.translateParser.getValue(translation, banKey)
|
||||
);
|
||||
});
|
||||
}
|
||||
},
|
||||
error => {},
|
||||
() => {
|
||||
this.translateService.use(currentLang);
|
||||
resolve();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
const initPromise = new Promise<void>((resolve, reject) => {
|
||||
try {
|
||||
let deviceType: DeviceType;
|
||||
|
@ -71,6 +111,6 @@ export class AppService {
|
|||
}
|
||||
});
|
||||
|
||||
return Promise.all([initPromise]);
|
||||
return Promise.all([initPromise, bannedGroupNamesPromise]);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user