bug fixed

This commit is contained in:
richard-loafle 2020-02-14 15:57:59 +09:00
parent 64ea49ae09
commit 106ba524fb
3 changed files with 54 additions and 41 deletions

View File

@ -34,7 +34,8 @@
>
{{
'group.errors.bannedWords'
| translate: { bannedWords: bannedWords.join(',') }
| translate
: { bannedWords: appService.bannedGroupNames.join(',') }
}}
</mat-error>
<mat-error

View File

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

View File

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