diff --git a/apps/cloud/src/app/@core/constants/app.constants.ts b/apps/cloud/src/app/@core/constants/app.constants.ts index 63d6db16f..e1498df91 100644 --- a/apps/cloud/src/app/@core/constants/app.constants.ts +++ b/apps/cloud/src/app/@core/constants/app.constants.ts @@ -1,4 +1,5 @@ import { API_PREFIX } from '@metad/cloud/state' +export const API_EMAIL_TEMPLATE = API_PREFIX + '/email-template' export const API_VISITS = API_PREFIX + '/visits' export const API_FEEDS = API_PREFIX + '/feeds' export const API_TAG = API_PREFIX + '/tags' diff --git a/apps/cloud/src/app/@core/services/email-template.service.ts b/apps/cloud/src/app/@core/services/email-template.service.ts index e755037cf..ec3000475 100644 --- a/apps/cloud/src/app/@core/services/email-template.service.ts +++ b/apps/cloud/src/app/@core/services/email-template.service.ts @@ -1,32 +1,33 @@ import { HttpClient } from '@angular/common/http' import { Injectable } from '@angular/core' +import { API_PREFIX, OrganizationBaseCrudService } from '@metad/cloud/state' import { ICustomizableEmailTemplate, ICustomizeEmailTemplateFindInput, IEmailTemplate, - IEmailTemplateFindInput, IEmailTemplateSaveInput } from '@metad/contracts' -import { API_PREFIX } from '@metad/cloud/state' import { firstValueFrom } from 'rxjs' +import { API_EMAIL_TEMPLATE } from '../constants/app.constants' @Injectable({ providedIn: 'root' }) -export class EmailTemplateService { - constructor(private http: HttpClient) {} - - getAll( - relations?: string[], - findInput?: IEmailTemplateFindInput - ): Promise<{ items: IEmailTemplate[]; total: number }> { - const data = JSON.stringify({ relations, findInput }) - return firstValueFrom( - this.http.get<{ items: IEmailTemplate[]; total: number }>(`${API_PREFIX}/email-template`, { - params: { data } - }) - ) +export class EmailTemplateService extends OrganizationBaseCrudService { + constructor(private http: HttpClient) { + super(API_EMAIL_TEMPLATE) } + + // getAll( + // relations?: string[], + // findInput?: IEmailTemplateFindInput + // ) { + // const data = JSON.stringify({ relations, findInput }) + // return this.http.get<{ items: IEmailTemplate[]; total: number }>(`${API_PREFIX}/email-template`, { + // params: { data } + // }) + // } + getTemplate(findInput?: ICustomizeEmailTemplateFindInput): Promise { const data = JSON.stringify({ findInput }) return firstValueFrom( diff --git a/apps/cloud/src/app/@core/services/languages.service.ts b/apps/cloud/src/app/@core/services/languages.service.ts index 994486652..e6b101f48 100644 --- a/apps/cloud/src/app/@core/services/languages.service.ts +++ b/apps/cloud/src/app/@core/services/languages.service.ts @@ -11,6 +11,10 @@ import { toParams } from '@metad/ocap-angular/core'; export class LanguagesService { constructor(private http: HttpClient) { } + getAll() { + return this.http.get<{ items: ILanguage[] }>(`${API_PREFIX}/languages`) + } + insertLanguage(createLanguage: ILanguage): Promise { return firstValueFrom( this.http.post(`${API_PREFIX}/languages`, createLanguage) diff --git a/apps/cloud/src/app/@shared/language/language-selector/language-selector.component.html b/apps/cloud/src/app/@shared/language/language-selector/language-selector.component.html index e8751dcff..63f95606d 100644 --- a/apps/cloud/src/app/@shared/language/language-selector/language-selector.component.html +++ b/apps/cloud/src/app/@shared/language/language-selector/language-selector.component.html @@ -2,6 +2,9 @@ [(ngModel)]="selectedLanguageCode" [selectOptions]="languagesOptions()" [valueKey]="'key'" + searchable > - + @if (loading()) { + + } diff --git a/apps/cloud/src/app/@shared/language/language-selector/language-selector.component.ts b/apps/cloud/src/app/@shared/language/language-selector/language-selector.component.ts index 16bb94199..53d5e28eb 100644 --- a/apps/cloud/src/app/@shared/language/language-selector/language-selector.component.ts +++ b/apps/cloud/src/app/@shared/language/language-selector/language-selector.component.ts @@ -6,9 +6,8 @@ import { filter, tap } from 'rxjs/operators'; import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms'; import { CommonModule } from '@angular/common'; import { MatFormFieldAppearance } from '@angular/material/form-field'; -import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { TranslationBaseComponent } from '../translation-base.component'; -import { NgmSelectComponent } from '@metad/ocap-angular/common'; +import { NgmSelectComponent, NgmSpinComponent } from '@metad/ocap-angular/common'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; @Component({ @@ -18,8 +17,8 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; FormsModule, TranslateModule, - MatProgressSpinnerModule, - NgmSelectComponent + NgmSelectComponent, + NgmSpinComponent ], selector: 'pac-language-selector', templateUrl: './language-selector.component.html', @@ -36,8 +35,6 @@ export class LanguageSelectorComponent extends TranslationBaseComponent implemen readonly destroyRef = inject(DestroyRef) languages = signal([]) - // languages: ILanguage[]; - loading: boolean; onChange: any = () => { } onTouch: any = () => { } @@ -111,6 +108,9 @@ export class LanguageSelectorComponent extends TranslationBaseComponent implemen @Output() selectedLanguageEvent = new EventEmitter(); + // States + readonly loading = signal(false) + constructor( private readonly languagesService: LanguagesService, private readonly store: Store, @@ -165,11 +165,11 @@ export class LanguageSelectorComponent extends TranslationBaseComponent implemen color: '#' + Math.floor(Math.random() * 16777215).toString(16), description: '' }; - this.loading = true; + this.loading.set(true); const language = await this.languagesService.insertLanguage( newLanguage ); - this.loading = false; + this.loading.set(false); return language; }; diff --git a/apps/cloud/src/app/@shared/smtp/smtp.component.html b/apps/cloud/src/app/@shared/smtp/smtp.component.html index ec7ca727f..35ea5f958 100644 --- a/apps/cloud/src/app/@shared/smtp/smtp.component.html +++ b/apps/cloud/src/app/@shared/smtp/smtp.component.html @@ -1,15 +1,18 @@ - +
- + - +
diff --git a/apps/cloud/src/app/@shared/smtp/smtp.component.ts b/apps/cloud/src/app/@shared/smtp/smtp.component.ts index c0c1f8b43..b06242dba 100644 --- a/apps/cloud/src/app/@shared/smtp/smtp.component.ts +++ b/apps/cloud/src/app/@shared/smtp/smtp.component.ts @@ -1,4 +1,4 @@ -import { AfterViewInit, ChangeDetectorRef, Component, DestroyRef, Input, OnChanges, OnInit, SimpleChanges, inject } from '@angular/core' +import { AfterViewInit, ChangeDetectorRef, Component, DestroyRef, Input, OnChanges, OnInit, SimpleChanges, inject, signal } from '@angular/core' import { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms' import { MatButtonModule } from '@angular/material/button' import { ActivatedRoute } from '@angular/router' @@ -49,7 +49,7 @@ export class SMTPComponent extends TranslationBaseComponent implements OnInit, O ] customSmtp: ICustomSmtp = {} as ICustomSmtp user: IUser - isValidated: boolean + readonly isValidated = signal(false) /* * Income Mutation Form @@ -199,7 +199,7 @@ export class SMTPComponent extends TranslationBaseComponent implements OnInit, O const newVal = values[1] if ((newVal.username && oldVal.username) || (newVal.host && oldVal.host)) { if (newVal.username !== oldVal.username || newVal.host !== oldVal.host) { - this.isValidated = false + this.isValidated.set(false) } } }) @@ -244,7 +244,7 @@ export class SMTPComponent extends TranslationBaseComponent implements OnInit, O */ patchValue() { if (this.customSmtp) { - this.isValidated = this.customSmtp.isValidate ? true : false + this.isValidated.set(this.customSmtp.isValidate ? true : false) this.form.patchValue({ id: this.customSmtp.id, host: this.customSmtp.host, @@ -325,10 +325,10 @@ export class SMTPComponent extends TranslationBaseComponent implements OnInit, O try { const smtp = this.form.getRawValue() await this.customSmtpService.validateSMTPSetting(smtp) - this.isValidated = true + this.isValidated.set(true) this.toastrService.success(this.getTranslation('TOASTR.TITLE.SUCCESS', { Default: 'Success' })) } catch (error) { - this.isValidated = false + this.isValidated.set(false) this.toastrService.error(this.getTranslation('TOASTR.MESSAGE.ERRORS', { Default: 'Errors' })) } } diff --git a/apps/cloud/src/app/features/setting/email-templates/email-templates-routing.module.ts b/apps/cloud/src/app/features/setting/email-templates/email-templates-routing.module.ts deleted file mode 100644 index 047b42a71..000000000 --- a/apps/cloud/src/app/features/setting/email-templates/email-templates-routing.module.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Routes, RouterModule } from '@angular/router'; -import { NgModule } from '@angular/core'; -import { EmailTemplatesComponent } from './email-templates.component'; -import { NgxPermissionsGuard } from 'ngx-permissions'; -import { PermissionsEnum } from '@metad/contracts'; - -const routes: Routes = [ - { - path: '', - component: EmailTemplatesComponent, - canActivate: [NgxPermissionsGuard], - data: { - permissions: { - only: [PermissionsEnum.VIEW_ALL_EMAIL_TEMPLATES], - redirectTo: '/settings' - }, - selectors: { - project: false, - employee: false, - date: false, - organization: true - } - } - } -]; - -@NgModule({ - imports: [RouterModule.forChild(routes)], - exports: [RouterModule] -}) -export class EmailTemplatesRoutingModule {} diff --git a/apps/cloud/src/app/features/setting/email-templates/email-templates.component.html b/apps/cloud/src/app/features/setting/email-templates/email-templates.component.html index 5b18dd666..4bc7ab6bb 100644 --- a/apps/cloud/src/app/features/setting/email-templates/email-templates.component.html +++ b/apps/cloud/src/app/features/setting/email-templates/email-templates.component.html @@ -1,82 +1,130 @@ -
-
- -
-
{{ 'PAC.MENU.Email Template' | translate: {Default: "Email Template"} }}
-
{{ 'PAC.MENU.ForOrganization' | translate: {Default: "For Organization"} }}: - {{ organization?.name }}
-
- -
- - +
+

+ {{ 'PAC.MENU.Email Template' | translate: {Default: "Email Template"} }} +

+ @if (organization()) { +
{{ 'PAC.MENU.ForOrganization' | translate: {Default: "For Organization"} }}: + {{ organization()?.name }} +
+ } +
- +
+ -
- -
+
+ @for (item of templates(); track item.name) { +
+
+
+ +
+
{{item.name}}
+

{{item.subject.hbs}}

+
+
+ +
+ {{item.html.mjml}} +
+ +
+ +
+
+
+ + +
+ } +
- -
-
-
-

{{ 'PAC.KEY_WORDS.Subject' | translate: {Default: "Subject"} }}

- -
+ -
-

{{ 'PAC.KEY_WORDS.EmailBody' | translate: {Default: "Email Body"} }}

- -
-
+@if (opened()) { +
+
-
-
- {{ 'PAC.KEY_WORDS.Subject' | translate: {Default: "Subject"} }}: -
-
+
+ +
+
+} -
-

{{ 'PAC.KEY_WORDS.EmailBody' | translate: {Default: "Email Body"} }}

-
-
-
-
-
-
- - + +
+ + + + +
+
+ +
+
+
+ +
+ + +
+ + + +
+
diff --git a/apps/cloud/src/app/features/setting/email-templates/email-templates.component.scss b/apps/cloud/src/app/features/setting/email-templates/email-templates.component.scss index 1b39e3efb..25ee19575 100644 --- a/apps/cloud/src/app/features/setting/email-templates/email-templates.component.scss +++ b/apps/cloud/src/app/features/setting/email-templates/email-templates.component.scss @@ -2,6 +2,7 @@ flex: 1; display: flex; flex-direction: column; + position: relative; } .pac-page-header { diff --git a/apps/cloud/src/app/features/setting/email-templates/email-templates.component.ts b/apps/cloud/src/app/features/setting/email-templates/email-templates.component.ts index dc3b27656..dc364a714 100644 --- a/apps/cloud/src/app/features/setting/email-templates/email-templates.component.ts +++ b/apps/cloud/src/app/features/setting/email-templates/email-templates.component.ts @@ -1,193 +1,169 @@ -import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, SecurityContext } from '@angular/core' -import { FormBuilder, FormGroup, Validators } from '@angular/forms' -import { DomSanitizer, SafeHtml } from '@angular/platform-browser' -import { EmailTemplateNameEnum, IOrganization, LanguagesEnum, LanguagesMap } from '@metad/contracts' -import { ISelectOption } from '@metad/ocap-angular/core' -import { isEqual } from 'lodash-es' -import { Subject, combineLatest } from 'rxjs' -import { debounceTime, distinctUntilChanged, filter, map, tap } from 'rxjs/operators' -import { EmailTemplateService, Store, ToastrService } from '../../../@core/services' -import { TranslationBaseComponent } from '../../../@shared' -import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop' -import { EditorThemeMap } from '@metad/ocap-angular/formula' - +import { CdkMenuModule } from '@angular/cdk/menu' +import { CommonModule } from '@angular/common' +import { Component, computed, effect, inject, model, signal, TemplateRef, viewChild } from '@angular/core' +import { toSignal } from '@angular/core/rxjs-interop' +import { FormsModule, ReactiveFormsModule } from '@angular/forms' +import { RouterModule } from '@angular/router' +import { DynamicGridDirective } from '@metad/core' +import { NgmSelectComponent, NgmTagsComponent } from '@metad/ocap-angular/common' +import { TranslateModule } from '@ngx-translate/core' +import { map } from 'rxjs/operators' +import { EmailTemplateNameEnum, getErrorMessage } from '../../../@core/types' +import { EmailTemplateService, injectToastr, LanguagesService } from '../../../@core/services' +import { CardCreateComponent, LanguageSelectorComponent } from '../../../@shared' +import { groupBy } from 'lodash-es' +import { Dialog, DialogRef } from '@angular/cdk/dialog' +import { injectOrganization } from '@metad/cloud/state' +import { LanguagesEnum } from '@metad/contracts' +import { EmailTemplateComponent } from './template/template.component' +import { MatIconModule } from '@angular/material/icon' +import { MatButtonModule } from '@angular/material/button' +import { ButtonGroupDirective } from '@metad/ocap-angular/core' +import { combineLatest } from 'rxjs' @Component({ + standalone: true, + imports: [ + CommonModule, + RouterModule, + FormsModule, + ReactiveFormsModule, + TranslateModule, + CdkMenuModule, + + MatIconModule, + MatButtonModule, + + NgmSelectComponent, + NgmTagsComponent, + CardCreateComponent, + DynamicGridDirective, + ButtonGroupDirective, + + LanguageSelectorComponent, + EmailTemplateComponent + ], templateUrl: './email-templates.component.html', styleUrls: ['./email-templates.component.scss'] }) -export class EmailTemplatesComponent extends TranslationBaseComponent implements AfterViewInit { - previewEmail: SafeHtml - previewSubject: SafeHtml - organization: IOrganization - - templateNames: ISelectOption[] = Object.values(EmailTemplateNameEnum).map((name) => ({ key: name, caption: name })) - subject$: Subject = new Subject() - - readonly form: FormGroup = EmailTemplatesComponent.buildForm(this.fb) - static buildForm(fb: FormBuilder): FormGroup { - return fb.group({ - name: [EmailTemplateNameEnum.WELCOME_USER], - languageCode: [LanguagesEnum.English], - subject: ['', [Validators.required, Validators.maxLength(60)]], - mjml: ['', Validators.required] - }) +export class EmailTemplatesComponent { + readonly emailTemplateService = inject(EmailTemplateService) + readonly languagesService = inject(LanguagesService) + readonly #dialog = inject(Dialog) + readonly #toastr = injectToastr() + readonly organization = injectOrganization() + + readonly emailTemplates = toSignal(this.emailTemplateService.getAllInOrg().pipe(map(({ items }) => items))) + readonly allLanguages = toSignal(this.languagesService.getAll().pipe(map(({items}) => items))) + + readonly langGroup = computed(() => { + const languages = groupBy(this.emailTemplates(), 'languageCode') + return languages + }) + readonly languages = computed(() => { + const allLanguages = this.allLanguages() + const languages = this.langGroup() + return Object.keys(languages).map((l) => ({ + key: l, + caption: allLanguages?.find((_) => _.code === l)?.name, + color: ['red', 'green', 'blue', 'yellow', 'gray'][Math.floor(Math.random() * 5)] + })) + }) + + readonly newTempl = viewChild('newTempl', { read: TemplateRef }) + + readonly languageCodes = model([LanguagesEnum.English]) + get languageCode() { + return this.languageCodes()[0] } - - readonly theme = toSignal(this.store.primaryTheme$.pipe(map((theme) => EditorThemeMap[theme]))) - - private _templateSub = this.subject$ - .pipe( - debounceTime(500), - tap(() => this.getTemplate()), - takeUntilDestroyed() - ) - .subscribe() - private _selectedOrganizationSub = combineLatest([this.store.selectedOrganization$, this.store.preferredLanguage$]) - .pipe( - distinctUntilChanged(isEqual), - filter(([organization, language]) => !!language), - tap(([organization, language]) => { - this.organization = organization - this.form.patchValue({ languageCode: LanguagesMap[language] ?? language }) - }), - tap(() => this.subject$.next(true)), - takeUntilDestroyed() - ) - .subscribe() - constructor( - private readonly sanitizer: DomSanitizer, - private readonly store: Store, - private readonly fb: FormBuilder, - private readonly toastrService: ToastrService, - private readonly emailTemplateService: EmailTemplateService, - private _cdr: ChangeDetectorRef - ) { - super() + set languageCode(value) { + this.languageCodes.set([value]) } + readonly name = model(null) - ngAfterViewInit() { - this.form - .get('subject') - .valueChanges.pipe(debounceTime(1000), distinctUntilChanged()) - .subscribe((value) => { - this.onSubjectChange(value) - }) - this.form - .get('mjml') - .valueChanges.pipe(debounceTime(1000), distinctUntilChanged()) - .subscribe((value) => { - this.onEmailChange(value) - }) - - // this.themeService - // .getJsTheme() - // .pipe(untilDestroyed(this)) - // .subscribe( - // ({ - // name - // }: { - // name: 'dark' | 'cosmic' | 'corporate' | 'default'; - // }) => { - // switch (name) { - // case 'dark': - // case 'cosmic': - // this.emailEditor.setTheme('tomorrow_night'); - // this.subjectEditor.setTheme('tomorrow_night'); - // break; - // default: - // this.emailEditor.setTheme('sqlserver'); - // this.subjectEditor.setTheme('sqlserver'); - // break; - // } - // } - // ); - - const editorOptions = { - enableBasicAutocompletion: true, - enableLiveAutocompletion: true, - printMargin: false, - showLineNumbers: true, - tabSize: 2 + readonly templates = computed(() => { + const items = this.langGroup()[this.languageCodes()[0]] + if (!items) { + return null } + + const g = groupBy(items.map((item) => ({ + ...item, + name: item.name.split('/')[0], + type: item.name.split('/')[1], + })), 'name') + return Object.keys(g).map((name) => ({ + name: name as EmailTemplateNameEnum, + html: g[name].find((_) => _.type === 'html'), + subject: g[name].find((_) => _.type === 'subject'), + })) + }) + + readonly templateNames = signal(Object.values(EmailTemplateNameEnum).map((name) => ({ + key: name, + caption: name + }))) + + readonly opened = signal(false) + + private dialogRef: DialogRef = null + + constructor() { + effect(() => { + // console.log(this.languageCodes()) + }) + } - // this.emailEditor.getEditor().setOptions(editorOptions); - // this.subjectEditor - // .getEditor() - // .setOptions({ ...editorOptions, maxLines: 2 }); + newEmailTemplate() { + this.dialogRef = this.#dialog.open(this.newTempl(),) + + this.dialogRef.closed.subscribe({ + next: () => { + + } + }) } - async getTemplate() { - try { - const { tenantId } = this.store.user - const { id: organizationId } = this.organization ?? {} - const { languageCode = LanguagesEnum.English, name = EmailTemplateNameEnum.WELCOME_USER } = this.form.value - const result = await this.emailTemplateService.getTemplate({ - languageCode, - name, - organizationId, - tenantId - }) - - this.form.patchValue({ - subject: result.subject, - mjml: result.template - }) - this.form.markAsPristine() - const { html: email } = await this.emailTemplateService.generateTemplatePreview(result.template) - const { html: subject } = await this.emailTemplateService.generateTemplatePreview(result.subject) - this.previewEmail = this.sanitizer.bypassSecurityTrustHtml(email) - - this.previewSubject = this.sanitizer.sanitize(SecurityContext.HTML, subject) - } catch (error) { - this.form.patchValue({ - subject: '', - mjml: '' - }) - this.form.markAsPristine() - this.toastrService.danger(error) - } + async create() { + this.opened.set(true) + this.dialogRef.close() + + // try { + // await this.emailTemplateService.saveEmailTemplate({ + // name: this.name(), + // languageCode: this.languageCodes()[0], + // mjml: null, + // subject: null + // }) + + // this.opened.set(true) + // } catch(err) { + // this.#toastr.error(getErrorMessage(err)) + // } } - async onSubjectChange(code: string) { - // this.form.get('subject').setValue(code); - const { html } = await this.emailTemplateService.generateTemplatePreview(code) - this.previewSubject = this.sanitizer.bypassSecurityTrustHtml(html) - this._cdr.detectChanges() + open(name: EmailTemplateNameEnum) { + this.name.set(name) + this.opened.set(true) } - async onEmailChange(code: string) { - // this.form.get('mjml').setValue(code); - const { html } = await this.emailTemplateService.generateTemplatePreview(code) - this.previewEmail = this.sanitizer.bypassSecurityTrustHtml(html) - this._cdr.detectChanges() + edit(name: EmailTemplateNameEnum) { + this.name.set(name) + this.opened.set(true) } - selectedLanguage(event) { - this.form.patchValue({ - languageCode: event.code + delete(item) { + combineLatest([ + this.emailTemplateService.delete(item.subject.id), + this.emailTemplateService.delete(item.html.id), + ]).subscribe({ + next: () => { + + } }) } - async submitForm() { - try { - const { tenantId } = this.store.user - const { id: organizationId } = this.organization ?? {} - await this.emailTemplateService.saveEmailTemplate({ - ...this.form.value, - organizationId, - tenantId - }) - - this.form.markAsPristine() - this._cdr.detectChanges() - - this.toastrService.success('TOASTR.MESSAGE.EMAIL_TEMPLATE_SAVED', { - templateName: this.getTranslation('EMAIL_TEMPLATES_PAGE.TEMPLATE_NAMES.' + this.form.get('name').value), - Default: 'Email Template saved' - }) - } catch (error) { - this.toastrService.danger(error) - } + close() { + this.opened.set(false) } } diff --git a/apps/cloud/src/app/features/setting/email-templates/email-templates.module.ts b/apps/cloud/src/app/features/setting/email-templates/email-templates.module.ts deleted file mode 100644 index 8e31f24ea..000000000 --- a/apps/cloud/src/app/features/setting/email-templates/email-templates.module.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { ButtonGroupDirective } from '@metad/ocap-angular/core'; -import { TranslateModule } from '@ngx-translate/core'; -import { MonacoEditorModule } from 'ngx-monaco-editor'; -import { LanguageSelectorComponent, MaterialModule, SharedModule } from '../../../@shared'; -import { EmailTemplatesRoutingModule } from './email-templates-routing.module'; -import { EmailTemplatesComponent } from './email-templates.component'; -import { NgmSelectComponent } from '@metad/ocap-angular/common'; - - -@NgModule({ - imports: [ - CommonModule, - FormsModule, - ReactiveFormsModule, - EmailTemplatesRoutingModule, - TranslateModule, - - SharedModule, - MaterialModule, - - LanguageSelectorComponent, - - MonacoEditorModule.forRoot(), - - ButtonGroupDirective, - NgmSelectComponent - ], - providers: [], - declarations: [EmailTemplatesComponent] -}) -export class EmailTemplatesModule {} diff --git a/apps/cloud/src/app/features/setting/email-templates/routing.ts b/apps/cloud/src/app/features/setting/email-templates/routing.ts new file mode 100644 index 000000000..e4f3a8a5c --- /dev/null +++ b/apps/cloud/src/app/features/setting/email-templates/routing.ts @@ -0,0 +1,31 @@ +import { Routes } from '@angular/router' +import { NgxPermissionsGuard } from 'ngx-permissions' +import { PermissionsEnum } from '../../../@core' +import { EmailTemplatesComponent } from './email-templates.component' +import { EmailTemplateComponent } from './template/template.component' + +export default [ + { + path: '', + component: EmailTemplatesComponent, + canActivate: [NgxPermissionsGuard], + data: { + permissions: { + only: [PermissionsEnum.VIEW_ALL_EMAIL_TEMPLATES], + redirectTo: '/settings' + }, + selectors: { + project: false, + employee: false, + date: false, + organization: true + } + }, + children: [ + { + path: ':id', + component: EmailTemplateComponent + } + ] + } +] as Routes diff --git a/apps/cloud/src/app/features/setting/email-templates/template/template.component.html b/apps/cloud/src/app/features/setting/email-templates/template/template.component.html new file mode 100644 index 000000000..332d344bd --- /dev/null +++ b/apps/cloud/src/app/features/setting/email-templates/template/template.component.html @@ -0,0 +1,85 @@ +
+
+
+
{{ 'PAC.MENU.Email Template' | translate: {Default: "Email Template"} }}
+
{{ 'PAC.MENU.ForOrganization' | translate: {Default: "For Organization"} }}: + {{ organization?.name }} +
+
+ +
+ + +
+
+ +
+
+
+

{{ 'PAC.KEY_WORDS.Subject' | translate: {Default: "Subject"} }}

+ +
+ +
+

{{ 'PAC.KEY_WORDS.EmailBody' | translate: {Default: "Email Body"} }}

+ +
+
+ +
+
+ {{ 'PAC.KEY_WORDS.Subject' | translate: {Default: "Subject"} }}: +
+
+ +
+

{{ 'PAC.KEY_WORDS.EmailBody' | translate: {Default: "Email Body"} }}

+
+
+
+
+ +
+
+ +
+
+
+ +
+ +
diff --git a/apps/cloud/src/app/features/setting/email-templates/template/template.component.scss b/apps/cloud/src/app/features/setting/email-templates/template/template.component.scss new file mode 100644 index 000000000..1b39e3efb --- /dev/null +++ b/apps/cloud/src/app/features/setting/email-templates/template/template.component.scss @@ -0,0 +1,9 @@ +:host { + flex: 1; + display: flex; + flex-direction: column; +} + +.pac-page-header { + @apply flex flex-row items-center justify-between; +} \ No newline at end of file diff --git a/apps/cloud/src/app/features/setting/email-templates/template/template.component.ts b/apps/cloud/src/app/features/setting/email-templates/template/template.component.ts new file mode 100644 index 000000000..10da02b96 --- /dev/null +++ b/apps/cloud/src/app/features/setting/email-templates/template/template.component.ts @@ -0,0 +1,210 @@ +import { AfterViewInit, ChangeDetectorRef, Component, computed, inject, OnDestroy, SecurityContext, signal } from '@angular/core' +import { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms' +import { DomSanitizer, SafeHtml } from '@angular/platform-browser' +import { EmailTemplateNameEnum, IOrganization, LanguagesEnum, LanguagesMap } from '@metad/contracts' +import { ButtonGroupDirective, ISelectOption } from '@metad/ocap-angular/core' +import { isEqual } from 'lodash-es' +import { Subject, combineLatest } from 'rxjs' +import { debounceTime, distinctUntilChanged, filter, map, tap } from 'rxjs/operators' +import { EmailTemplateService, Store, ToastrService } from '../../../../@core/' +import { TranslationBaseComponent } from '../../../../@shared' +import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop' +import { EditorThemeMap } from '@metad/ocap-angular/formula' +import { CommonModule } from '@angular/common' +import { TranslateModule } from '@ngx-translate/core' +import { MonacoEditorModule } from 'ngx-monaco-editor' +import { NgmSelectComponent } from '@metad/ocap-angular/common' +import { MatButtonModule } from '@angular/material/button' +import { MatIconModule } from '@angular/material/icon' +import { EmailTemplatesComponent } from '../email-templates.component' + + +@Component({ + standalone: true, + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + TranslateModule, + + MatButtonModule, + MatIconModule, + MonacoEditorModule, + + ButtonGroupDirective, + NgmSelectComponent + ], + selector: 'pac-email-template', + templateUrl: './template.component.html', + styleUrls: ['./template.component.scss'] +}) +export class EmailTemplateComponent extends TranslationBaseComponent implements AfterViewInit { + + readonly homeComponent = inject(EmailTemplatesComponent) + + // Signals + readonly languageCode = computed(() => + this.homeComponent.languageCodes()[0] + ) + readonly name = computed(() => + this.homeComponent.name() + ) + + previewSubject: SafeHtml + organization: IOrganization + + templateNames: ISelectOption[] = Object.values(EmailTemplateNameEnum).map((name) => ({ key: name, caption: name })) + subject$: Subject = new Subject() + + readonly form: FormGroup = EmailTemplateComponent.buildForm(this.fb) + static buildForm(fb: FormBuilder): FormGroup { + return fb.group({ + // name: [EmailTemplateNameEnum.WELCOME_USER], + // languageCode: [LanguagesEnum.English], + subject: ['', [Validators.required, Validators.maxLength(60)]], + mjml: ['', Validators.required] + }) + } + + readonly theme = toSignal(this.store.primaryTheme$.pipe(map((theme) => EditorThemeMap[theme]))) + + readonly previewEmail = signal(null) + + private _templateSub = this.subject$ + .pipe( + debounceTime(500), + tap(() => this.getTemplate()), + takeUntilDestroyed() + ) + .subscribe() + + private _selectedOrganizationSub = combineLatest([this.store.selectedOrganization$, this.store.preferredLanguage$]) + .pipe( + distinctUntilChanged(isEqual), + filter(([organization, language]) => !!language), + tap(([organization, language]) => { + this.organization = organization + this.form.patchValue({ languageCode: LanguagesMap[language] ?? language }) + }), + tap(() => this.subject$.next(true)), + takeUntilDestroyed() + ) + .subscribe() + constructor( + private readonly sanitizer: DomSanitizer, + private readonly store: Store, + private readonly fb: FormBuilder, + private readonly toastrService: ToastrService, + private readonly emailTemplateService: EmailTemplateService, + private _cdr: ChangeDetectorRef + ) { + super() + + } + + ngAfterViewInit() { + this.form + .get('subject') + .valueChanges.pipe(debounceTime(1000), distinctUntilChanged()) + .subscribe((value) => { + this.onSubjectChange(value) + }) + this.form + .get('mjml') + .valueChanges.pipe(debounceTime(1000), distinctUntilChanged()) + .subscribe((value) => { + this.onEmailChange(value) + }) + + const editorOptions = { + enableBasicAutocompletion: true, + enableLiveAutocompletion: true, + printMargin: false, + showLineNumbers: true, + tabSize: 2 + } + + // this.emailEditor.getEditor().setOptions(editorOptions); + // this.subjectEditor + // .getEditor() + // .setOptions({ ...editorOptions, maxLines: 2 }); + } + + async getTemplate() { + try { + const { tenantId } = this.store.user + const { id: organizationId } = this.organization ?? {} + const languageCode = this.languageCode() + const name = this.name() + // const { languageCode = LanguagesEnum.English, name = EmailTemplateNameEnum.WELCOME_USER } = this.form.value + const result = await this.emailTemplateService.getTemplate({ + languageCode, + name, + organizationId, + tenantId + }) + + this.form.patchValue({ + subject: result.subject, + mjml: result.template + }) + this.form.markAsPristine() + const { html: email } = await this.emailTemplateService.generateTemplatePreview(result.template) + const { html: subject } = await this.emailTemplateService.generateTemplatePreview(result.subject) + this.previewEmail.set(this.sanitizer.bypassSecurityTrustHtml(email)) + + this.previewSubject = this.sanitizer.sanitize(SecurityContext.HTML, subject) + } catch (error) { + this.form.patchValue({ + subject: '', + mjml: '' + }) + this.form.markAsPristine() + this.toastrService.danger(error) + } + } + + async onSubjectChange(code: string) { + // this.form.get('subject').setValue(code); + const { html } = await this.emailTemplateService.generateTemplatePreview(code) + this.previewSubject = this.sanitizer.bypassSecurityTrustHtml(html) + this._cdr.detectChanges() + } + + async onEmailChange(code: string) { + // this.form.get('mjml').setValue(code); + const { html } = await this.emailTemplateService.generateTemplatePreview(code) + this.previewEmail.set(this.sanitizer.bypassSecurityTrustHtml(html)) + this._cdr.detectChanges() + } + + selectedLanguage(event) { + this.form.patchValue({ + languageCode: event.code + }) + } + + async submitForm() { + try { + const { tenantId } = this.store.user + const { id: organizationId } = this.organization ?? {} + await this.emailTemplateService.saveEmailTemplate({ + ...this.form.value, + name: this.name(), + languageCode: this.languageCode(), + organizationId, + tenantId + }) + + this.form.markAsPristine() + this._cdr.detectChanges() + + this.toastrService.success('TOASTR.MESSAGE.EMAIL_TEMPLATE_SAVED', { + templateName: this.getTranslation('EMAIL_TEMPLATES_PAGE.TEMPLATE_NAMES.' + this.name()), + Default: 'Email Template saved' + }) + } catch (error) { + this.toastrService.danger(error) + } + } +} diff --git a/apps/cloud/src/app/features/setting/integration/home.component.ts b/apps/cloud/src/app/features/setting/integration/home.component.ts index 22fc6e06b..acc889946 100644 --- a/apps/cloud/src/app/features/setting/integration/home.component.ts +++ b/apps/cloud/src/app/features/setting/integration/home.component.ts @@ -1,4 +1,4 @@ -import { AsyncPipe, DatePipe } from '@angular/common' +import { DatePipe } from '@angular/common' import { Component, inject } from '@angular/core' import { toSignal } from '@angular/core/rxjs-interop' import { MatDialog } from '@angular/material/dialog' @@ -18,7 +18,6 @@ import { DynamicGridDirective } from '@metad/core' templateUrl: './home.component.html', styleUrls: ['./home.component.scss'], imports: [ - AsyncPipe, DatePipe, RouterModule, TranslateModule, diff --git a/apps/cloud/src/app/features/setting/setting-routing.module.ts b/apps/cloud/src/app/features/setting/setting-routing.module.ts index eaaedbaf1..b7ab10dbc 100644 --- a/apps/cloud/src/app/features/setting/setting-routing.module.ts +++ b/apps/cloud/src/app/features/setting/setting-routing.module.ts @@ -153,7 +153,7 @@ const routes: Routes = [ }, { path: 'email-templates', - loadChildren: () => import('./email-templates/email-templates.module').then((m) => m.EmailTemplatesModule), + loadChildren: () => import('./email-templates/routing').then((m) => m.default), data: { title: 'settings/email-templates' } diff --git a/apps/cloud/src/app/features/xpert/studio/components/knowledge/knowledge.component.html b/apps/cloud/src/app/features/xpert/studio/components/knowledge/knowledge.component.html index 2783850ca..b3d17c13a 100644 --- a/apps/cloud/src/app/features/xpert/studio/components/knowledge/knowledge.component.html +++ b/apps/cloud/src/app/features/xpert/studio/components/knowledge/knowledge.component.html @@ -1,6 +1,6 @@
-
+
{{knowledge().name}} diff --git a/apps/cloud/src/app/features/xpert/studio/components/knowledge/knowledge.component.scss b/apps/cloud/src/app/features/xpert/studio/components/knowledge/knowledge.component.scss index bd8e3d7b6..def086661 100644 --- a/apps/cloud/src/app/features/xpert/studio/components/knowledge/knowledge.component.scss +++ b/apps/cloud/src/app/features/xpert/studio/components/knowledge/knowledge.component.scss @@ -1,5 +1,5 @@ :host { - @apply flex flex-col justify-start items-start; + @apply flex flex-col justify-start items-start pb-2; } .f-component.f-node-input { diff --git a/apps/cloud/src/app/features/xpert/studio/panel/agent-execution/execution.component.ts b/apps/cloud/src/app/features/xpert/studio/panel/agent-execution/execution.component.ts index 8abda360f..10d08ecf1 100644 --- a/apps/cloud/src/app/features/xpert/studio/panel/agent-execution/execution.component.ts +++ b/apps/cloud/src/app/features/xpert/studio/panel/agent-execution/execution.component.ts @@ -202,7 +202,7 @@ export function processEvents(event, executionService: XpertExecutionService) { break; } case ChatMessageEventTypeEnum.ON_TOOL_ERROR: { - executionService.setToolExecution(event.data.name, {status: XpertAgentExecutionEnum.FAILED}) + executionService.setToolExecution(event.data.name, {status: XpertAgentExecutionEnum.FAILED, error: event.data.error }) break; } case ChatMessageEventTypeEnum.ON_AGENT_START: @@ -219,7 +219,7 @@ export function processEvents(event, executionService: XpertExecutionService) { break; } case ChatMessageEventTypeEnum.ON_RETRIEVER_ERROR: { - executionService.setKnowledgeExecution(event.data.name, {status: XpertAgentExecutionEnum.FAILED}) + executionService.setKnowledgeExecution(event.data.name, {status: XpertAgentExecutionEnum.FAILED, error: event.data.error}) break; } default: { diff --git a/apps/cloud/src/app/features/xpert/studio/panel/preview/preview.component.html b/apps/cloud/src/app/features/xpert/studio/panel/preview/preview.component.html index 03b773ef8..8b3426cc2 100644 --- a/apps/cloud/src/app/features/xpert/studio/panel/preview/preview.component.html +++ b/apps/cloud/src/app/features/xpert/studio/panel/preview/preview.component.html @@ -126,7 +126,7 @@ } } } @empty { -
+
@@ -141,11 +141,10 @@ {{ 'PAC.Xpert.StartDebuggingDigitalExpert' | translate: {Default: 'Enter your content in the box below to start debugging Digital Expert'} }}
+ @if (starters()?.length) {
-
-
{{ 'PAC.Xpert.YouMightAsk' | translate: {Default: 'You might want to ask'} }}
-
+
{{ 'PAC.Xpert.YouMightAsk' | translate: {Default: 'You might want to ask'} }}
@@ -156,6 +155,7 @@ >{{starter}}
}
+ }
} @@ -178,15 +178,22 @@
{{inputLength()}}
- + @if (loading()) { + + } @else { + + }
diff --git a/apps/cloud/src/app/features/xpert/studio/panel/preview/preview.component.ts b/apps/cloud/src/app/features/xpert/studio/panel/preview/preview.component.ts index 2acb657a1..52eac8baa 100644 --- a/apps/cloud/src/app/features/xpert/studio/panel/preview/preview.component.ts +++ b/apps/cloud/src/app/features/xpert/studio/panel/preview/preview.component.ts @@ -3,7 +3,7 @@ import { TextFieldModule } from '@angular/cdk/text-field' import { CommonModule } from '@angular/common' import { Component, computed, DestroyRef, effect, inject, model, signal } from '@angular/core' import { FormsModule } from '@angular/forms' -import { appendMessageContent, stringifyMessageContent } from '@metad/copilot' +import { appendMessageContent, nonBlank, stringifyMessageContent } from '@metad/copilot' import { TranslateModule } from '@ngx-translate/core' import { ChatConversationService, @@ -16,6 +16,7 @@ import { import { MaterialModule, XpertParametersCardComponent } from 'apps/cloud/src/app/@shared' import { EmojiAvatarComponent } from 'apps/cloud/src/app/@shared/avatar' import { MarkdownModule } from 'ngx-markdown' +import { Subscription } from 'rxjs' import { XpertStudioApiService } from '../../domain' import { XpertExecutionService } from '../../services/execution.service' import { XpertStudioComponent } from '../../studio.component' @@ -54,7 +55,7 @@ export class XpertStudioPreviewComponent { readonly xpert = this.studioComponent.xpert readonly parameters = computed(() => this.apiService.primaryAgent()?.parameters) readonly avatar = computed(() => this.xpert()?.avatar) - readonly starters = computed(() => this.xpert()?.starters) + readonly starters = computed(() => this.xpert()?.starters?.filter(nonBlank)) readonly input = model() readonly inputLength = computed(() => this.input()?.length) @@ -72,6 +73,7 @@ export class XpertStudioPreviewComponent { return this.executionService.messages() }) + private chatSubscription: Subscription constructor() { effect(() => { // console.log(this.lastMessage(), this.messages()) @@ -96,7 +98,10 @@ export class XpertStudioPreviewComponent { }) // Send to server chat - this.xpertService + if (this.chatSubscription && !this.chatSubscription?.closed) { + this.chatSubscription.unsubscribe() + } + this.chatSubscription = this.xpertService .chat( this.xpert().id, { @@ -144,10 +149,19 @@ export class XpertStudioPreviewComponent { this.executionService.appendMessage({ ...this.lastMessage() }) } this.lastMessage.set(null) - } + }, }) } + stop() { + if (this.chatSubscription && !this.chatSubscription?.closed) { + this.chatSubscription.unsubscribe() + } + this.loading.set(false) + this.lastMessage.set(null) + this.executionService.clear() + } + restart() { this.executionService.setConversation(null) } @@ -172,5 +186,4 @@ export class XpertStudioPreviewComponent { event.preventDefault() } } - } diff --git a/apps/cloud/src/app/features/xpert/studio/services/execution.service.ts b/apps/cloud/src/app/features/xpert/studio/services/execution.service.ts index 40e8c7658..98e744b2f 100644 --- a/apps/cloud/src/app/features/xpert/studio/services/execution.service.ts +++ b/apps/cloud/src/app/features/xpert/studio/services/execution.service.ts @@ -5,7 +5,6 @@ import { CopilotChatMessage, IChatConversation, IXpertAgentExecution, - XpertAgentExecutionEnum, } from 'apps/cloud/src/app/@core' import { of, switchMap } from 'rxjs' @@ -48,8 +47,8 @@ export class XpertExecutionService { return agentExecutions }) - readonly toolExecutions = signal>({}) - readonly knowledgeExecutions = signal>({}) + readonly toolExecutions = signal>>({}) + readonly knowledgeExecutions = signal>>({}) // Subsribe conversation private conversationSub = toObservable(this.conversationId).pipe( @@ -81,20 +80,20 @@ export class XpertExecutionService { } setConversation(value: IChatConversation) { + this.clear() this.conversation.set(null) this.conversationId.set(value?.id) - this.#agentExecutions.set({}) this.#messages.set([]) } - setToolExecution(name: string, execution) { + setToolExecution(name: string, execution: Partial) { this.toolExecutions.update((state) => ({ ...state, [name]: execution })) } - setKnowledgeExecution(name: string, execution: { status: XpertAgentExecutionEnum }) { + setKnowledgeExecution(name: string, execution: Partial) { this.knowledgeExecutions.update((state) => ({ ...state, [name]: execution diff --git a/apps/cloud/src/assets/i18n/zh-Hans.json b/apps/cloud/src/assets/i18n/zh-Hans.json index 1b1e0a002..f754d28f5 100644 --- a/apps/cloud/src/assets/i18n/zh-Hans.json +++ b/apps/cloud/src/assets/i18n/zh-Hans.json @@ -3401,7 +3401,9 @@ "welcome-user": "欢迎用户", "invite-user": "邀请用户", "TEMPLATE_NAMES": "模板名称" - } + }, + "AddTemplate": "添加模版", + "AddTemplateHelp": "学习更多关于自定义邮件模板" }, "TOASTR": { "TITLE": { diff --git a/libs/apps/state/src/lib/store.service.ts b/libs/apps/state/src/lib/store.service.ts index f02406054..1b5f6c788 100644 --- a/libs/apps/state/src/lib/store.service.ts +++ b/libs/apps/state/src/lib/store.service.ts @@ -613,4 +613,9 @@ export class Store { export function injectOrganizationId() { const store = inject(Store) return toSignal(store.selectOrganizationId()) +} + +export function injectOrganization() { + const store = inject(Store) + return toSignal(store.selectedOrganization$) } \ No newline at end of file diff --git a/packages/angular/common/table/table/table.component.ts b/packages/angular/common/table/table/table.component.ts index 9b834f1b5..60aef7989 100644 --- a/packages/angular/common/table/table/table.component.ts +++ b/packages/angular/common/table/table/table.component.ts @@ -35,7 +35,6 @@ import { DisplayDensity, OcapCoreModule } from '@metad/ocap-angular/core' import { TranslateModule, TranslateService } from '@ngx-translate/core' import get from 'lodash-es/get' import { Subject } from 'rxjs' -import { NgmSearchComponent } from '../../search/search.component' import { TableColumn } from '../types' @Injectable() @@ -120,7 +119,7 @@ export class MyCustomPaginatorIntl implements MatPaginatorIntl { //OCAP Modules OcapCoreModule, - NgmSearchComponent + // NgmSearchComponent ] }) export class NgmTableComponent { diff --git a/packages/angular/core/models/theme.ts b/packages/angular/core/models/theme.ts index dfc4c507c..5cb1c6295 100644 --- a/packages/angular/core/models/theme.ts +++ b/packages/angular/core/models/theme.ts @@ -15,13 +15,15 @@ export function prefersColorScheme() { const mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)') function onChange({ matches }) { if (matches) { - subscriber.next(ThemesEnum.dark) + // subscriber.next(ThemesEnum.dark) // @todo change back when dark theme complete + subscriber.next(ThemesEnum.light) } else { subscriber.next(ThemesEnum.light) } } mediaQueryList.addEventListener('change', onChange) - subscriber.next(mediaQueryList.matches ? ThemesEnum.dark : ThemesEnum.light) + // subscriber.next(mediaQueryList.matches ? ThemesEnum.dark : ThemesEnum.light) + subscriber.next(mediaQueryList.matches ? ThemesEnum.light : ThemesEnum.light) return () => mediaQueryList.removeEventListener('change', onChange) }) } diff --git a/packages/server-ai/src/ai-model/model_providers/ollama/text-embedding/text-embedding.ts b/packages/server-ai/src/ai-model/model_providers/ollama/text-embedding/text-embedding.ts index b98288cef..97bc246f6 100644 --- a/packages/server-ai/src/ai-model/model_providers/ollama/text-embedding/text-embedding.ts +++ b/packages/server-ai/src/ai-model/model_providers/ollama/text-embedding/text-embedding.ts @@ -18,7 +18,7 @@ export class OllamaTextEmbeddingModel extends TextEmbeddingModelManager { const modelProperties = options.modelProperties as OllamaCredentials return new OllamaEmbeddings({ baseUrl: modelProperties.base_url, - model: copilotModel.model || copilotModel.copilot.defaultModel + model: copilotModel.model || copilotModel.copilot.copilotModel?.model }) } diff --git a/packages/server-ai/src/copilot-provider/copilot-provider.controller.ts b/packages/server-ai/src/copilot-provider/copilot-provider.controller.ts index 16df5f039..f0024000d 100644 --- a/packages/server-ai/src/copilot-provider/copilot-provider.controller.ts +++ b/packages/server-ai/src/copilot-provider/copilot-provider.controller.ts @@ -3,6 +3,7 @@ import { CrudController, PaginationParams, ParseJsonPipe, + RequestContext, RoleGuard, Roles, TransformInterceptor, @@ -63,6 +64,7 @@ export class CopilotProviderController extends CrudController { @Param('id', UUIDValidationPipe) id: string, @Query('data', ParseJsonPipe) params?: PaginationParams ): Promise { + const organizationId = RequestContext.getOrganizationId() const one = await this.service.findOneInOrganizationOrTenant(id, params) if (one) { const providers = await this.queryBus.execute( @@ -72,7 +74,7 @@ export class CopilotProviderController extends CrudController { one.provider = providers[0] } - if (!one.organizationId) { + if (organizationId && !one.organizationId) { return new CopilotProviderPublicDto(one, this.baseUrl) } return new CopilotProviderDto(one, this.baseUrl) diff --git a/packages/server-ai/src/knowledgebase/retriever.ts b/packages/server-ai/src/knowledgebase/retriever.ts index 500d7e008..67bd19b07 100644 --- a/packages/server-ai/src/knowledgebase/retriever.ts +++ b/packages/server-ai/src/knowledgebase/retriever.ts @@ -3,6 +3,8 @@ import { Document, DocumentInterface } from '@langchain/core/documents' import { BaseRetriever } from '@langchain/core/retrievers' import { Logger } from '@nestjs/common' import { QueryBus } from '@nestjs/cqrs' +import { dispatchCustomEvent } from "@langchain/core/callbacks/dispatch" +import { getErrorMessage } from '@metad/server-common' import { KnowledgeSearchQuery } from './queries' /** @@ -28,27 +30,31 @@ export class KnowledgeRetriever extends BaseRetriever { this.metadata.knowledgebaseId = this.knowledgebaseId - const results = await this.queryBus.execute< - KnowledgeSearchQuery, - { - doc: DocumentInterface> - score: number - }[] - >( - new KnowledgeSearchQuery({ - tenantId: this.tenantId, - organizationId: this.organizationId, - knowledgebases: this.knowledgebaseId ? [this.knowledgebaseId] : [], - query - }) - ) - - return results.map(({ doc }) => doc) + try { + const results = await this.queryBus.execute< + KnowledgeSearchQuery, + { + doc: DocumentInterface> + score: number + }[] + >( + new KnowledgeSearchQuery({ + tenantId: this.tenantId, + organizationId: this.organizationId, + knowledgebases: this.knowledgebaseId ? [this.knowledgebaseId] : [], + query + }) + ) + + return results.map(({ doc }) => doc) + } catch(error) { + await dispatchCustomEvent("on_retriever_error", {knowledgebaseId: this.knowledgebaseId, error: getErrorMessage(error)}) + throw error + } } } export function createKnowledgeRetriever(queryBus: QueryBus, knowledgebaseId: string) { - class DynamicKnowledgeRetriever extends KnowledgeRetriever { // To enable langchain to obtain the actual knowledgebaseId of the Retriever as the event name static lc_name(): string { diff --git a/packages/server-ai/src/xpert-agent/commands/handlers/execute.handler.ts b/packages/server-ai/src/xpert-agent/commands/handlers/execute.handler.ts index b84d3bfd1..78515d228 100644 --- a/packages/server-ai/src/xpert-agent/commands/handlers/execute.handler.ts +++ b/packages/server-ai/src/xpert-agent/commands/handlers/execute.handler.ts @@ -359,6 +359,27 @@ ${agent.prompt} } as MessageEvent) break } + case 'on_custom_event': { + this.#logger.verbose(data, rest) + switch(rest.name) { + case 'on_retriever_error': { + subscriber.next({ + data: { + type: ChatMessageTypeEnum.EVENT, + event: ChatMessageEventTypeEnum.ON_RETRIEVER_ERROR, + data: { + tags, + ...rest, + name: data.knowledgebaseId, + error: data.error + } + } + } as MessageEvent) + break + } + } + break + } } return null }), diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/bg/html.mjml deleted file mode 100644 index 5f7a43e74..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/bg/html.mjml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - Отмяна на резервация - - -

домакин: {{host}}

-

дневен ред: {{agenda}}

-

описание: {{description}}

-

Имейли на участници: {{emails}}

-

местоположение: {{location}}

-

продължителност: {{duration}}

-
- ** Резервацията ви се анулира** Изпратен е имейл до домакина, както и до всички - участници за тази среща. - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/bg/subject.hbs deleted file mode 100644 index b87e0d183..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Назначението е потвърдено diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/en/html.mjml deleted file mode 100644 index 21932cd74..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/en/html.mjml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - Booking Cancellation - - -

Host: {{host}}

-

Agenda: {{agenda}}

-

Description: {{description}}

-

Participant Emails: {{emails}}

-

Location: {{location}}

-

Duration: {{duration}}

-
- ** Your booking canceled** An email has been sent to the host as well as to all the - participants for this meeting. - - -

- Reschedule Appointment: - {{rescheduleAppointment}} -

-
- - CANCEL APPOINTMENT - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/en/subject.hbs deleted file mode 100644 index 9ec869a0b..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Appointment Cancellation diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/he/html.mjml deleted file mode 100644 index e7406adfc..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/he/html.mjml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - ביטול הזמנה - - -

מנחה: {{host}}

-

סֵדֶר הַיוֹם: {{agenda}}

-

תיאור: {{description}}

-

דוא"ל משתתפים: {{emails}}

-

מקום: {{location}}

-

מֶשֶׁך: {{duration}}

-
- ** ההזמנה שלך בוטלה** דוא"ל נשלח למארח וכן לכל המשתתפים בפגישה זו. - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/he/subject.hbs deleted file mode 100644 index 6d91ec87c..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -אישור המינוי diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/ru/html.mjml deleted file mode 100644 index 1f5ce6640..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/ru/html.mjml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - Отмена бронирования - - -

хозяин: {{host}}

-

Повестка дня: {{agenda}}

-

Описание: {{description}}

-

- Электронные письма участников: {{emails}} -

-

Расположение: {{location}}

-

продолжительность: {{duration}}

-
- ** Ваше бронирование отменено** Электронное письмо было отправлено организатору, а также - всем участникам встречи. - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/ru/subject.hbs deleted file mode 100644 index a8c988cb0..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-cancellation/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Отмена встречи diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/bg/html.mjml deleted file mode 100644 index d26183e42..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/bg/html.mjml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - Детайли за резервация - - -

домакин: {{host}}

-

дневен ред: {{agenda}}

-

описание: {{description}}

-

Имейли на участници: {{emails}}

-

местоположение: {{location}}

-

продължителност: {{duration}}

-
- ** Изпратен е имейл до домакина, както и до всички - участници за тази среща. - - -

- Разсрочване на назначаване: - {{rescheduleAppointment}} -

-
- - НАЗНАЧАВАНЕ НА ОТМЕНА - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/bg/subject.hbs deleted file mode 100644 index b87e0d183..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Назначението е потвърдено diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/en/html.mjml deleted file mode 100644 index b9d3be381..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/en/html.mjml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - Booking Details - - -

Host: {{host}}

-

Agenda: {{agenda}}

-

Description: {{description}}

-

Participant Emails: {{emails}}

-

Location: {{location}}

-

Duration: {{duration}}

-
- ** An email has been sent to the host as well as to all the - participants for this meeting. - - -

- Reschedule Appointment: - {{rescheduleAppointment}} -

-
- - CANCEL APPOINTMENT - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/en/subject.hbs deleted file mode 100644 index cf48f30f9..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Appointment Confirmed diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/he/html.mjml deleted file mode 100644 index 3e37e3769..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/he/html.mjml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - פרטי הזמנה - - -

מנחה: {{host}}

-

סֵדֶר הַיוֹם: {{agenda}}

-

תיאור: {{description}}

-

דוא"ל משתתפים: {{emails}}

-

מקום: {{location}}

-

מֶשֶׁך: {{duration}}

-
- ** דוא"ל נשלח למארח וכן לכל המשתתפים בפגישה זו. - - -

- קביעת תור מחדש: {{rescheduleAppointment}} -

-
- - בטל פגישה - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/he/subject.hbs deleted file mode 100644 index 6d91ec87c..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -אישור המינוי diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/ru/html.mjml deleted file mode 100644 index bda618b78..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/ru/html.mjml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - Детали бронирования - - -

хозяин: {{host}}

-

Повестка дня: {{agenda}}

-

Описание: {{description}}

-

- Электронные письма участников: {{emails}} -

-

Расположение: {{location}}

-

продолжительность: {{duration}}

-
- ** Электронное письмо было отправлено организатору, а также - всем участникам этой встречи.. - - -

- Перенести встречу: - {{rescheduleAppointment}} -

-
- - ОТМЕНА НАЗНАЧЕНИЯ - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/ru/subject.hbs deleted file mode 100644 index de1c3b6aa..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/appointment-confirmation/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Назначение подтверждено diff --git a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/bg/html.mjml deleted file mode 100644 index 66e94a7ee..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/bg/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - График за интервю - -

скъп {{candidateName}},

-

- Вашият график за интервюта на {{date}} от {{duration}} с - {{interviewerName}}! -

-
- -

С Най-Добри Пожелания,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/bg/subject.hbs deleted file mode 100644 index d39bb1f5f..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -График за интервю diff --git a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/en/html.mjml deleted file mode 100644 index f8cf2e76d..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/en/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Interview schedule - -

Dear {{candidateName}},

-

- Your interview schedule on {{date}} from {{duration}} - with {{interviewerName}}! -

-
- -

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/en/subject.hbs deleted file mode 100644 index 239c80be2..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Interview Schedule diff --git a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/he/html.mjml deleted file mode 100644 index 4028468e2..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/he/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - לוח הזמנים לראיון - -

יָקָר {{candidateName}},

-

- לוח הזמנים של הראיונות שלך בתאריך {{date}} מ - {{duration}} עם {{interviewerName}}! -

-
- -

כל טוב,

-

צוות גאוזי

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/he/subject.hbs deleted file mode 100644 index a9714649e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -לוח הזמנים לראיון diff --git a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/ru/html.mjml deleted file mode 100644 index d7aaf6fdd..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/ru/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Расписание интервью - -

Уважаемые {{candidateName}},

-

- Расписание вашего собеседования на {{date}} из - {{duration}} с участием {{interviewerName}}! -

-
- -

С уважением,

-

Команда Гаузи

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/ru/subject.hbs deleted file mode 100644 index 0e2fff4e5..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/candidate-schedule-interview/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Расписание интервью diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-appointment/bg/html.mjml deleted file mode 100644 index 7c6f85878..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/bg/html.mjml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - You've a new appointment! - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-appointment/bg/subject.hbs deleted file mode 100644 index ab6c13dc3..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New Appointment {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-appointment/en/html.mjml deleted file mode 100644 index 7c6f85878..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/en/html.mjml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - You've a new appointment! - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-appointment/en/subject.hbs deleted file mode 100644 index ab6c13dc3..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New Appointment {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-appointment/he/html.mjml deleted file mode 100644 index 7c6f85878..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/he/html.mjml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - You've a new appointment! - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-appointment/he/subject.hbs deleted file mode 100644 index ab6c13dc3..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New Appointment {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-appointment/ru/html.mjml deleted file mode 100644 index 7c6f85878..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/ru/html.mjml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - You've a new appointment! - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-appointment/ru/subject.hbs deleted file mode 100644 index ab6c13dc3..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-appointment/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New Appointment {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-estimate/bg/html.mjml deleted file mode 100644 index 6754f5153..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/bg/html.mjml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - You've received a new estimate! - - View your estimates - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-estimate/bg/subject.hbs deleted file mode 100644 index 1cced71f2..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New estimate received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-estimate/en/html.mjml deleted file mode 100644 index 5c39d64eb..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/en/html.mjml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - You've received a new estimate! - - Accept - - - Reject - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-estimate/en/subject.hbs deleted file mode 100644 index 1cced71f2..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New estimate received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-estimate/he/html.mjml deleted file mode 100644 index 6754f5153..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/he/html.mjml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - You've received a new estimate! - - View your estimates - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-estimate/he/subject.hbs deleted file mode 100644 index 1cced71f2..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New estimate received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-estimate/ru/html.mjml deleted file mode 100644 index 6754f5153..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/ru/html.mjml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - You've received a new estimate! - - View your estimates - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-estimate/ru/subject.hbs deleted file mode 100644 index 1cced71f2..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-estimate/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New estimate received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-invoice/bg/html.mjml deleted file mode 100644 index ead8429f4..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/bg/html.mjml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - You've received a new invoice! - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-invoice/bg/subject.hbs deleted file mode 100644 index 7e0336aff..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New invoice received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-invoice/en/html.mjml deleted file mode 100644 index ead8429f4..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/en/html.mjml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - You've received a new invoice! - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-invoice/en/subject.hbs deleted file mode 100644 index 7e0336aff..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New invoice received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-invoice/he/html.mjml deleted file mode 100644 index ead8429f4..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/he/html.mjml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - You've received a new invoice! - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-invoice/he/subject.hbs deleted file mode 100644 index 7e0336aff..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New invoice received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-invoice/ru/html.mjml deleted file mode 100644 index ead8429f4..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/ru/html.mjml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - You've received a new invoice! - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-invoice/ru/subject.hbs deleted file mode 100644 index 7e0336aff..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-invoice/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -New invoice received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-verification/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-verification/bg/html.mjml deleted file mode 100644 index 4f59f56f9..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-verification/bg/html.mjml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - Добре дошли в Peanut™ - -

Уважаеми {{email}},

-

- Благодарим за Вашата регистрация в Peanut™ - Платформа за - споделяне на печалби с отворен код -

-

Радваме се да Ви приветстваме на борда!

-

С най-добри пожелания,

-

Екипът на Peanut™

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-verification/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-verification/bg/subject.hbs deleted file mode 100644 index c704b28b8..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-verification/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добре дошли в Peanut™ {{email}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-verification/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-verification/en/html.mjml index a7ec362e7..0c36653dc 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/email-verification/en/html.mjml +++ b/packages/server/src/core/seeds/data/default-email-templates/email-verification/en/html.mjml @@ -11,32 +11,32 @@ border-width="1px" > Welcome to Metad Analytics Cloud!Welcome to Xpert AI Cloud!

Dear {{email}},

- Thank you for your registration in Metad™. + Thank you for your registration in Xpert AI™.

We are happy to have you on board!


{{generatedUrl}}


Best regards,

-

Metad Analytics Cloud Team

+

Xpert AI Team

© 2019, + >© 2024, Metad Analytics CloudXpert AI Cloud by Metad Co. LTD.XpertAI Co. LTD. All rights reserved. diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-verification/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-verification/en/subject.hbs index 41dc7209d..264e075d7 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/email-verification/en/subject.hbs +++ b/packages/server/src/core/seeds/data/default-email-templates/email-verification/en/subject.hbs @@ -1 +1 @@ -Welcome to Metad Analytics Cloud {{email}} \ No newline at end of file +Welcome to Xpert AI Cloud {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-verification/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-verification/he/html.mjml deleted file mode 100644 index c49aa3ea1..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-verification/he/html.mjml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - ברוך הבא לגוזי! - -

{{email}} היקר,

-

- תודה על הרשמתך ל- Peanut ™ - שיתוף רווחים הוגנים פלטפורמת - קוד פתוח -

-

אנו שמחים לקבל אותך על הסיפון!

-

בברכה ,

-

צוות גאוזי

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-verification/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-verification/he/subject.hbs deleted file mode 100644 index 4d873851a..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-verification/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -ברוך הבא לגוזי! {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-verification/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-verification/ru/html.mjml deleted file mode 100644 index c30e4fe6b..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-verification/ru/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - Добро пожаловать в Peanut! - -

Уважаемый {{email}},

-

- Благодарим вас за регистрацию в Peanut ™ - платформе с - открытым исходным кодом для справедливого распределения - прибыли -

-

Мы рады, что вы на борту!

-

С уважением,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-verification/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/email-verification/ru/subject.hbs deleted file mode 100644 index 8ecbfc21e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/email-verification/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добро пожаловать в Peanut {{email}}! \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/email-verification/zh/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/email-verification/zh/html.mjml index 8dc2612df..0a2a32b98 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/email-verification/zh/html.mjml +++ b/packages/server/src/core/seeds/data/default-email-templates/email-verification/zh/html.mjml @@ -11,20 +11,20 @@ border-width="1px" > 欢迎加入 Metad 分析云!欢迎加入 Xpert AI 云!

你好 {{email}},


- 感谢您注册使用 Metad™ Analytics Cloud - 免费的企业级多维分析云. + 感谢您注册使用 Xpert AI 云.

欢迎点击下方链接激活使用:


{{generatedUrl}}


致敬,

-

元数分析云团队

+

Xpert AI 团队

© 2024, 元数分析云Xpert AI 由 - - - - - - {{employeeName}} just joined your team - -

- Congratulations for adding another employee to your {{organizationName}} -

-
- -

We are happy to have you on board!

-

Best regards,

-

Peanut Team

-
- - © 2019, -
Metad - by - Metad Co. LTD. - All rights reserved. - - - - - diff --git a/packages/server/src/core/seeds/data/default-email-templates/employee-join/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/employee-join/bg/subject.hbs deleted file mode 100644 index 9dbfb93ff..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/employee-join/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -{{employeeName}} joined {{organizationName}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/employee-join/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/employee-join/en/html.mjml deleted file mode 100644 index 4c6ed4d49..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/employee-join/en/html.mjml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - {{employeeName}} just joined your team - -

- Congratulations for adding another employee to your {{organizationName}} -

-
- -

We are happy to have you on board!

-

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/employee-join/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/employee-join/en/subject.hbs deleted file mode 100644 index 9dbfb93ff..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/employee-join/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -{{employeeName}} joined {{organizationName}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/employee-join/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/employee-join/he/html.mjml deleted file mode 100644 index 4c6ed4d49..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/employee-join/he/html.mjml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - {{employeeName}} just joined your team - -

- Congratulations for adding another employee to your {{organizationName}} -

-
- -

We are happy to have you on board!

-

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/employee-join/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/employee-join/he/subject.hbs deleted file mode 100644 index 9dbfb93ff..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/employee-join/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -{{employeeName}} joined {{organizationName}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/employee-join/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/employee-join/ru/html.mjml deleted file mode 100644 index 4c6ed4d49..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/employee-join/ru/html.mjml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - {{employeeName}} just joined your team - -

- Congratulations for adding another employee to your {{organizationName}} -

-
- -

We are happy to have you on board!

-

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/employee-join/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/employee-join/ru/subject.hbs deleted file mode 100644 index 9dbfb93ff..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/employee-join/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -{{employeeName}} joined {{organizationName}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/equipment-request/bg/html.mjml deleted file mode 100644 index 170bd3425..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/bg/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Заявка за оборудване - -

скъп {{name}},

-

- Вашето записване за оборудване е {{equipment_status}}, - защото {{reason}} -

-
- -

С Най-Добри Пожелания,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/equipment-request/bg/subject.hbs deleted file mode 100644 index 5244887d7..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Заявка за оборудване {{equipment_status}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/equipment-request/en/html.mjml deleted file mode 100644 index aedd2e16c..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/en/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Request for Equipment - -

Dear {{name}},

-

- Your request for equipment is {{equipment_status}}, - because {{reason}} -

-
- -

Best regards,

-

Peanut Team

p - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/equipment-request/en/subject.hbs deleted file mode 100644 index 17bc22436..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Equipment Request {{equipment_status}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/equipment-request/he/html.mjml deleted file mode 100644 index 9e72c9558..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/he/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - בקשה לציוד - -

יָקָר {{name}},

-

- Вашето запитване за оборудване {{equipment_status}}, - מכיוון ש {{reason}} -

-
- -

כל טוב,

-

צוות גאוזי

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/equipment-request/he/subject.hbs deleted file mode 100644 index 78255b34e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -בקשת ציוד {{equipment_status}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/equipment-request/ru/html.mjml deleted file mode 100644 index c8162e5d4..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/ru/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Запрос на оборудование - -

Уважаемые {{name}},

-

- Вашето запитване за оборудване {{equipment_status}}, - потому что {{reason}} -

-
- -

С уважением,

-

Команда Гаузи

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/equipment-request/ru/subject.hbs deleted file mode 100644 index a2df62a24..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment-request/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Запрос на оборудование {{equipment_status}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/equipment/bg/html.mjml deleted file mode 100644 index a479b2fee..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment/bg/html.mjml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - Детайли за оборудването - - -

име: {{equipment_name}}

-

Тип: {{equipment_type}}

-

- Сериен номер: {{equipment_serial_number}} -

-

- Година на производство: - {{manufactured_year}} -

-

Начална цена: {{initial_cost}}

-

Валута: {{currency}}

-

- Максимален период на споделяне: - {{max_share_period}} -

-
- ** Автоматичното ви споделяне е одобрено: - {{autoApproveShare}} - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/equipment/bg/subject.hbs deleted file mode 100644 index 041912483..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Създадено оборудване diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/equipment/en/html.mjml deleted file mode 100644 index 00744ddb6..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment/en/html.mjml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - Equipment Details - - -

Name: {{equipment_name}}

-

Type: {{equipment_type}}

-

- Serial Number: {{equipment_serial_number}} -

-

Manufactured Year: {{manufactured_year}}

-

Initial Cost: {{initial_cost}}

-

Currency: {{currency}}

-

Max Share Period: {{max_share_period}}

-
- ** Your share auto approved: {{autoApproveShare}} - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/equipment/en/subject.hbs deleted file mode 100644 index 7a002645c..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Equipment created diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/equipment/he/html.mjml deleted file mode 100644 index fc58d1b93..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment/he/html.mjml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - פרטי ציוד - - -

שֵׁם: {{equipment_name}}

-

סוּג: {{equipment_type}}

-

מספר סידורי: {{equipment_serial_number}}

-

שנה מיוצרת: {{manufactured_year}}

-

עלות ראשונית: {{initial_cost}}

-

מַטְבֵּעַ: {{currency}}

-

- תקופת שיתוף מקסימליתd: {{max_share_period}} -

-
- ** המניה שלך אושרה אוטומטית: {{autoApproveShare}} - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/equipment/he/subject.hbs deleted file mode 100644 index 5476144fd..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -ציוד שנוצר diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/equipment/ru/html.mjml deleted file mode 100644 index e928abe3a..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment/ru/html.mjml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - Детали оборудования0 - - -

название: {{equipment_name}}

-

Тип: {{equipment_type}}

-

- Серийный номер: {{equipment_serial_number}} -

-

Год выпуска: {{manufactured_year}}

-

Начальная стоимость: {{initial_cost}}

-

валюта: {{currency}}

-

- Максимальный период доли: - {{max_share_period}} -

-
- ** Ваша акция одобрена автоматически: - {{autoApproveShare}} - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/equipment/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/equipment/ru/subject.hbs deleted file mode 100644 index 416c22d48..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/equipment/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Создано оборудование diff --git a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/bg/html.mjml deleted file mode 100644 index 8b7c22a93..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/bg/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - График за интервю - -

скъп {{interviewerName}},

-

- Вашият график за интервюта на {{date}} от {{duration}} с - {{candidateName}}! -

-
- -

С Най-Добри Пожелания,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/bg/subject.hbs deleted file mode 100644 index d39bb1f5f..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -График за интервю diff --git a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/en/html.mjml deleted file mode 100644 index 81a5ac1df..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/en/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Interview schedule - -

Dear {{interviewerName}},

-

- Your interview schedule on {{date}} from {{duration}} - with {{candidateName}}! -

-
- -

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/en/subject.hbs deleted file mode 100644 index 239c80be2..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Interview Schedule diff --git a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/he/html.mjml deleted file mode 100644 index 29db7d0d3..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/he/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - לוח הזמנים לראיון - -

יָקָר {{interviewerName}},

-

- לוח הזמנים של הראיונות שלך בתאריך {{date}} מ - {{duration}} עם {{candidateName}}! -

-
- -

כל טוב,

-

צוות גאוזי

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/he/subject.hbs deleted file mode 100644 index a9714649e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -לוח הזמנים לראיון diff --git a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/ru/html.mjml deleted file mode 100644 index 6752b28b0..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/ru/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Расписание интервью - -

Уважаемые {{interviewerName}},

-

- Расписание вашего собеседования на {{date}} из - {{duration}} с участием {{candidateName}}! -

-
- -

С уважением,

-

Команда Гаузи

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/ru/subject.hbs deleted file mode 100644 index 0e2fff4e5..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/interviewer-interview-schedule/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Расписание интервью diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-employee/bg/html.mjml deleted file mode 100644 index a4b66d193..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/bg/html.mjml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - -

Здравейте!

-

Бяхте поканени в {{organizationName}}

-

Използвайте бутона по-долу, за да се регистрирате:

-
- - Регистрация - - -

- Ако имате някакви въпроси, можете да се свържете с нас - като отговорите на този имейл. -

-

Поздрави,

-

Екипът на {{organizationName}}

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-employee/bg/subject.hbs deleted file mode 100644 index 70204c261..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добре дошли в Peanut {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-employee/en/html.mjml deleted file mode 100644 index edbc5ddd6..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/en/html.mjml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - -

Hi!

-

You have been invited to {{organizationName}}

-

To accept your invitation

-
- - Click here - - -

- If you have any questions, you can reply to this email. -

-

Best regards,

-

The {{organizationName}} Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-employee/en/subject.hbs deleted file mode 100644 index cc87989be..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Welcome to Peanut {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-employee/he/html.mjml deleted file mode 100644 index 3e943b588..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/he/html.mjml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - -

הַיי!

-

הוזמנת ל {{organizationName}}

-

כדי לקבל את ההזמנה שלך וליצור את חשבונך

-
- - לחץ כאן - - -

אם יש לך שאלות, תוכל לענות להודעת דוא"ל זו

-

כל טוב,

-

ה {{organizationName}} צוות

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-employee/he/subject.hbs deleted file mode 100644 index 4d873851a..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -ברוך הבא לגוזי! {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-employee/ru/html.mjml deleted file mode 100644 index f9e14ec88..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/ru/html.mjml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - -

Здравствуйте!

-

Вы были приглашены {{organizationName}}

-

Используйте кнопку ниже, чтобы зарегистрироваться:

-
- - Кликните сюда - - -

- Если у вас есть какие-либо вопросы, вы можете связаться - с нами, ответив на это письмо. -

-

Поздравления,

-

Команда {{organizationName}}

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-employee/ru/subject.hbs deleted file mode 100644 index 8ecbfc21e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-employee/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добро пожаловать в Peanut {{email}}! \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/bg/html.mjml deleted file mode 100644 index fa29ec882..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/bg/html.mjml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - You've been invited to Peanut! - -

Dear {{name}},

-

- {{organizationName}} has invited you to join Peanut™ - - Open-Source ERP Platform focused on Fairness and - Transparency! -

-
- - Завършете регистрацията си сега - - -

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/bg/subject.hbs deleted file mode 100644 index c704b28b8..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добре дошли в Peanut™ {{email}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/en/html.mjml deleted file mode 100644 index 2921c625f..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/en/html.mjml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - You've been invited to Peanut! - -

Dear {{name}},

-

- {{organizationName}} has invited you to join Peanut™ - - Open-Source ERP Platform focused on Fairness and - Transparency! -

-
- - Complete Your Sign up Now - - -

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/en/subject.hbs deleted file mode 100644 index 651ce6872..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -{{name}}, you've been invited to Peanut! diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/he/html.mjml deleted file mode 100644 index a2c93ecd4..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/he/html.mjml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - You've been invited to Peanut! - -

Dear {{name}},

-

- {{organizationName}} has invited you to join Peanut™ - - Open-Source ERP Platform focused on Fairness and - Transparency! -

-
- - השלם את ההרשמה שלך עכשיו - - -

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/he/subject.hbs deleted file mode 100644 index 4d873851a..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -ברוך הבא לגוזי! {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/ru/html.mjml deleted file mode 100644 index d0bd216eb..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/ru/html.mjml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - You've been invited to Peanut! - -

Dear {{name}},

-

- {{organizationName}} has invited you to join Peanut™ - - Open-Source ERP Platform focused on Fairness and - Transparency! -

-
- - Завершите регистрацию сейчас - - -

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/ru/subject.hbs deleted file mode 100644 index 8ecbfc21e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-organization-client/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добро пожаловать в Peanut {{email}}! \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-user/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-user/bg/html.mjml deleted file mode 100644 index 2c3255c62..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-user/bg/html.mjml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - -

Здравейте!

-

- Бяхте поканени в {{organizationName}} в качеството Ви на - {{role}} -

-

Използвайте бутона по-долу, за да се регистрирате:

-
- - Регистрация - - -

- Ако имате някакви въпроси, можете да се свържете с нас - като отговорите на този имейл. -

-

Поздрави,

-

Екипът на {{organizationName}}

-
- -

- Ако имате проблем с отварянето на връзката след - натискане на бутона, копирайте приложеният по-долу адрес - в лентата на браузера: -

-

http://localhost:4200/#/pages/income

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-user/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-user/bg/subject.hbs deleted file mode 100644 index 70204c261..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-user/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добре дошли в Peanut {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-user/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-user/en/html.mjml index 32cdebcd0..782d3df41 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-user/en/html.mjml +++ b/packages/server/src/core/seeds/data/default-email-templates/invite-user/en/html.mjml @@ -4,7 +4,7 @@ © 2019, + >© 2024, MetadXpert AI by Metad Co. LTD.XpertAI Co. LTD. All rights reserved. diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-user/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-user/en/subject.hbs index cc87989be..264e075d7 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-user/en/subject.hbs +++ b/packages/server/src/core/seeds/data/default-email-templates/invite-user/en/subject.hbs @@ -1 +1 @@ -Welcome to Peanut {{email}} \ No newline at end of file +Welcome to Xpert AI Cloud {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-user/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-user/he/html.mjml deleted file mode 100644 index c61af60b0..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-user/he/html.mjml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - -

הַיי!

-

הוזמנת ל {{organizationName}} כ {{role}}

-

לקבל את ההזמנה שלך

-
- - לחץ כאן - - -

אם יש לך שאלות, תוכל לענות להודעת דוא"ל זו

-

כל טוב,

-

ה {{organizationName}} צוות

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-user/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-user/he/subject.hbs deleted file mode 100644 index 4d873851a..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-user/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -ברוך הבא לגוזי! {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-user/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-user/ru/html.mjml deleted file mode 100644 index b0d2622ae..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-user/ru/html.mjml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - -

Здравствуйте!

-

Вы были приглашены {{organizationName}} как {{role}}

-

Используйте кнопку ниже, чтобы зарегистрироваться:

-
- - Кликните сюда - - -

- Если у вас есть какие-либо вопросы, вы можете связаться - с нами, ответив на это письмо. -

-

Поздравления,

-

Команда {{organizationName}}

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-user/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-user/ru/subject.hbs deleted file mode 100644 index 8ecbfc21e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-user/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добро пожаловать в Peanut {{email}}! \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-user/zh/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/invite-user/zh/html.mjml index 0d17f2a6c..16bb132e3 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-user/zh/html.mjml +++ b/packages/server/src/core/seeds/data/default-email-templates/invite-user/zh/html.mjml @@ -4,19 +4,17 @@ -

Hi!

-

- You have been invited to {{organizationName}} as a - {{role}} +

你好!

+

你被邀请加入组织 {{organizationName}} 作为 {{role}}

-

To accept your invitation

+

要接受邀请

- Click here + 点击这里 -

- If you have any questions, you can reply to this email. -

-

Best regards,

-

The {{organizationName}} Team

+

如果你有任何疑问,可以直接回复此邮件

+

此致,

+

{{organizationName}} 团队

© 2019, + >© 2024, Metad - by - Metad Co. LTD.Xpert AI - All rights reserved. + 由 + (南京)元数信息技术有限公司 + 版权所有.
diff --git a/packages/server/src/core/seeds/data/default-email-templates/invite-user/zh/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/invite-user/zh/subject.hbs index e64d8b58e..8a8d0eacd 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/invite-user/zh/subject.hbs +++ b/packages/server/src/core/seeds/data/default-email-templates/invite-user/zh/subject.hbs @@ -1 +1 @@ -欢迎使用元数分析云 {{email}} \ No newline at end of file +欢迎 {{email}} 加入 Xpert AI 云 \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/password/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/password/bg/html.mjml deleted file mode 100644 index 07bce7158..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/password/bg/html.mjml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - -

Здравейте!

-

- Получихме заявка за промяна на паролата Ви за достъп в - mtda.cloud -

-

Ako Вие сте заявили промяна на паролата

-

-
- - Кликнете тук - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/password/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/password/bg/subject.hbs deleted file mode 100644 index 70204c261..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/password/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добре дошли в Peanut {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/password/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/password/en/html.mjml index c3d8c963a..72cddfc8c 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/password/en/html.mjml +++ b/packages/server/src/core/seeds/data/default-email-templates/password/en/html.mjml @@ -4,7 +4,7 @@ © 2019, + >© 2024, MetadXpert AI by Metad Co. LTD.XpertAI Co. LTD. All rights reserved. diff --git a/packages/server/src/core/seeds/data/default-email-templates/password/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/password/en/subject.hbs index cc87989be..787da25b1 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/password/en/subject.hbs +++ b/packages/server/src/core/seeds/data/default-email-templates/password/en/subject.hbs @@ -1 +1 @@ -Welcome to Peanut {{email}} \ No newline at end of file +Reset Your Password for Account: {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/password/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/password/he/html.mjml deleted file mode 100644 index 0b1d8e8bf..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/password/he/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - -

שלום!

-

קיבלנו בקשה לשינוי סיסמה.

-

אם ביקשת לאפס את הסיסמה שלך

-

-
- - לחץ כאן - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/password/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/password/he/subject.hbs deleted file mode 100644 index 4d873851a..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/password/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -ברוך הבא לגוזי! {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/password/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/password/ru/html.mjml deleted file mode 100644 index 0e76553d1..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/password/ru/html.mjml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - -

Здравствуйте!

- > -

Мы получили запрос на изменение пароля.

-

Если вы просили сбросить пароль

-

-
- - Кликните сюда - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/password/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/password/ru/subject.hbs deleted file mode 100644 index 8ecbfc21e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/password/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добро пожаловать в Peanut {{email}}! \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/password/zh/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/password/zh/html.mjml index c3d8c963a..d5962bae0 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/password/zh/html.mjml +++ b/packages/server/src/core/seeds/data/default-email-templates/password/zh/html.mjml @@ -4,16 +4,16 @@ -

Hello!

-

We received a password change request.

-

If you requested to reset your password:

+

你好!

+

我们收到一个密码重置请求.

+

如果是你请求重置密码:

- Reset Password Now + 点击这里 © 2019, + >© 2024, MetadXpert AI - by + 由 Metad Co. LTD.(南京)元数信息技术有限公司 - All rights reserved. + 版权所有.
diff --git a/packages/server/src/core/seeds/data/default-email-templates/password/zh/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/password/zh/subject.hbs index cc87989be..9f848ec07 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/password/zh/subject.hbs +++ b/packages/server/src/core/seeds/data/default-email-templates/password/zh/subject.hbs @@ -1 +1 @@ -Welcome to Peanut {{email}} \ No newline at end of file +为你的账号 {{email}} 重置密码 \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/bg/html.mjml deleted file mode 100644 index 92a27b064..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/bg/html.mjml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - -

Dear {{contactName}},

-

- This is your payment receipt for Invoice - {{invoiceNumber}} for {{amount}} {{currency}} -

-

Best regards,

-

The {{organizationName}} Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/bg/subject.hbs deleted file mode 100644 index 88cc92760..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Payment receipt received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/en/html.mjml deleted file mode 100644 index 7f8726156..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/en/html.mjml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - -

Hi {{contactName}},

-

- This is your payment receipt for Invoice - {{invoiceNumber}} for {{amount}} {{currency}} -

-

Best regards,

-

The {{organizationName}} Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/en/subject.hbs deleted file mode 100644 index 88cc92760..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Payment receipt received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/he/html.mjml deleted file mode 100644 index 92a27b064..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/he/html.mjml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - -

Dear {{contactName}},

-

- This is your payment receipt for Invoice - {{invoiceNumber}} for {{amount}} {{currency}} -

-

Best regards,

-

The {{organizationName}} Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/he/subject.hbs deleted file mode 100644 index 88cc92760..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Payment receipt received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/ru/html.mjml deleted file mode 100644 index 92a27b064..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/ru/html.mjml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - -

Dear {{contactName}},

-

- This is your payment receipt for Invoice - {{invoiceNumber}} for {{amount}} {{currency}} -

-

Best regards,

-

The {{organizationName}} Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/ru/subject.hbs deleted file mode 100644 index 88cc92760..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/payment-receipt/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Payment receipt received {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/task-update/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/task-update/bg/html.mjml deleted file mode 100644 index de0dc6b6e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/task-update/bg/html.mjml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - Нова задача {{task_update_status}} - - -

Заглавие: {{task_update_title}}

-

описание: {{task_update_description}}

-

- приблизителна оценка: - {{task_update_estimate}} -

-

- Дата на плащане: {{task_update_due_date}} -

-

Статус: {{task_status}}

-

Име на проекта: {{task_update_project}}

-

- Присвояване от: {{task_update_assign_by}} -

-
- ** URL адрес на задача: {{task_update_url}} - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/task-update/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/task-update/bg/subject.hbs deleted file mode 100644 index e6af776ab..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/task-update/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Актуализация на задачата от Peanut diff --git a/packages/server/src/core/seeds/data/default-email-templates/task-update/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/task-update/en/html.mjml deleted file mode 100644 index 826bbf6c9..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/task-update/en/html.mjml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - New Task {{task_update_status}} - - -

Title: {{task_update_title}}

-

Description: {{task_update_description}}

-

Estimate: {{task_update_estimate}}

-

Due Date: {{task_update_due_date}}

-

Status: {{task_status}}

-

Project Name: {{task_update_project}}

-

Assign By: {{task_update_assign_by}}

-
- ** Task URL: {{task_update_url}} - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/task-update/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/task-update/en/subject.hbs deleted file mode 100644 index 1116922bb..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/task-update/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Task Update from Peanut diff --git a/packages/server/src/core/seeds/data/default-email-templates/task-update/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/task-update/he/html.mjml deleted file mode 100644 index 0bf7f156d..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/task-update/he/html.mjml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - משימה חדשה {{task_update_status}} - - -

כותרת: {{task_update_title}}

-

תיאור: {{task_update_description}}

-

לְהַעֲרִיך: {{task_update_estimate}}

-

תאריך להגשה: {{task_update_due_date}}

-

סטָטוּס: {{task_status}}

-

שם הפרוייקט: {{task_update_project}}

-

הקצה לפי: {{task_update_assign_by}}

-
- ** כתובת אתר למשימה: {{task_update_url}}. - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/task-update/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/task-update/he/subject.hbs deleted file mode 100644 index 0975b292e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/task-update/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -עדכון המשימה מגוזי diff --git a/packages/server/src/core/seeds/data/default-email-templates/task-update/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/task-update/ru/html.mjml deleted file mode 100644 index d38233af3..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/task-update/ru/html.mjml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - Новая задача {{task_update_status}} - - -

заглавие: {{task_update_title}}

-

Описание: {{task_update_description}}

-

Оценить: {{task_update_estimate}}

-

Срок: {{task_update_due_date}}

-

Положение дел: {{task_status}}

-

- название проекта: {{task_update_project}} -

-

Назначить: {{task_update_assign_by}}

-
- ** URL задачи: {{task_update_url}} - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/task-update/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/task-update/ru/subject.hbs deleted file mode 100644 index c36bcece8..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/task-update/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Обновление задачи от Гаузи diff --git a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/bg/html.mjml deleted file mode 100644 index e74a7fc9f..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/bg/html.mjml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - Политика за изключено време - {{time_off_policy_requires_approval}} - -

скъп {{candidateName}},

-

- Заявката Ви за политика на изключване е - {{time_off_policy_requires_approval}}, състоянието на - плащането е {{time_off_policy_paid_status}}..!! -

-
- -

С Най-Добри Пожелания,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/bg/subject.hbs deleted file mode 100644 index 2f9648d37..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Политика за изключено време {{time_off_policy_requires_approval}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/en/html.mjml deleted file mode 100644 index 93ef7aafb..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/en/html.mjml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - Time Off Policy - {{time_off_policy_requires_approval}} - -

Dear {{name}},

-

- Your Time Off Policy request is - {{time_off_policy_requires_approval}}, which payment - status is {{time_off_policy_paid_status}}..!! -

-
- -

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/en/subject.hbs deleted file mode 100644 index ab7816a65..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Time Off Policy {{time_off_policy_requires_approval}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/he/html.mjml deleted file mode 100644 index ec6ed8ee8..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/he/html.mjml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - מדיניות זמן המתנה - {{time_off_policy_requires_approval}} - -

יָקָר {{candidateName}},

-

- בקשת מדיניות הזמן החופשית שלך היא - {{time_off_policy_requires_approval}}, אשר מצב התשלום - הוא {{time_off_policy_paid_status}}..! -

-
- -

כל טוב,

-

צוות גאוזי

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/he/subject.hbs deleted file mode 100644 index c3025d60a..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -מדיניות זמן המתנה {{time_off_policy_requires_approval}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/ru/html.mjml deleted file mode 100644 index 335710cd0..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/ru/html.mjml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - Политика перерыва - {{time_off_policy_requires_approval}} - -

Уважаемые {{candidateName}},

-

- Ваш запрос в соответствии с политикой отсутствия на - работе: {{time_off_policy_requires_approval}}, статус - платежа: {{time_off_policy_paid_status}}..!! -

-
- -

С уважением,

-

Команда Гаузи

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/ru/subject.hbs deleted file mode 100644 index b184653af..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/time-off-report-action/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Политика перерыва {{time_off_policy_requires_approval}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/bg/html.mjml deleted file mode 100644 index dd6349d37..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/bg/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Времеви лист Действие - -

скъп {{candidateName}},

-

- Вашето искане на график за проекта {{project}} , е - {{timesheet_action}}.! -

-
- -

С Най-Добри Пожелания,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/bg/subject.hbs deleted file mode 100644 index f2df41017..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Времеви лист Действие diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/en/html.mjml deleted file mode 100644 index 2f11716d7..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/en/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Time sheet Action - -

Dear {{name}},

-

- Your request of time sheet for project {{project}}, is - {{timesheet_action}} -

-
- -

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/en/subject.hbs deleted file mode 100644 index 7d58d1df1..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Time sheet Action diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/he/html.mjml deleted file mode 100644 index 5da664b18..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/he/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - גיליון זמן פעולה - -

יָקָר {{candidateName}},

-

- בקשת גיליון הזמנים לפרויקט {{project}},הוא - {{timesheet_action}} .! -

-
- -

כל טוב,

-

צוות גאוזי

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/he/subject.hbs deleted file mode 100644 index 1e3089b6e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -גיליון זמן פעולה diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/ru/html.mjml deleted file mode 100644 index 31c0e59dc..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/ru/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Табель рабочего времени Действие - -

Уважаемые {{candidateName}},

-

- Ваш запрос расписания для проекта {{project}}, является - {{timesheet_action}}.! -

-
- -

С уважением,

-

Команда Гаузи

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/ru/subject.hbs deleted file mode 100644 index 0c5b3b512..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-action/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Табель рабочего времени Действие diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/bg/html.mjml deleted file mode 100644 index c0d086e86..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/bg/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Изтриване на графика - -

скъп {{candidateName}},

-

- Вашият лист за проект {{project}}, се изтрива успешно - ... !! -

-
- -

С Най-Добри Пожелания,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/bg/subject.hbs deleted file mode 100644 index 063b29801..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Изтриване на графика diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/en/html.mjml deleted file mode 100644 index 58f0cac28..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/en/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Time sheet Delete - -

Dear {{name}},

-

- Your time sheet for project {{project}}, is deleted - successfully...!! -

-
- -

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/en/subject.hbs deleted file mode 100644 index 9669c74b0..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Time sheet Delete diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/he/html.mjml deleted file mode 100644 index f247af71a..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/he/html.mjml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - מחק גיליון זמנים - -

יָקָר {{candidateName}},

-

- גיליון הזמן שלך לפרויקט {{project}} נמחק בהצלחה ... !! -

-
- -

כל טוב,

-

צוות גאוזי

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/he/subject.hbs deleted file mode 100644 index 8b8fc2d95..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -מחק גיליון זמנים diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/ru/html.mjml deleted file mode 100644 index d55d16de7..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/ru/html.mjml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - Расписание Удалить - -

Уважаемые {{candidateName}},

-

- Ваш табель для проекта {{project}} успешно удален ... !! -

-
- -

С уважением,

-

Команда Гаузи

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/ru/subject.hbs deleted file mode 100644 index 210f29641..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-delete/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Расписание Удалить diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/bg/html.mjml deleted file mode 100644 index 4372d1c5e..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/bg/html.mjml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - Преглед на хронологията - - -

Общо часове: {{total_hours}}

-

- Средно се активира: {{average_activates}} -

-

Проекти: {{projects}}

-

Тип журнал: {{log_type}}

-

източник: {{source}}

-
- ** Изпратен е и имейл до клиента и служителя. - - -

- Разсрочване на назначаване: - {{rescheduleAppointment}} -

-
- - НАЗНАЧАВАНЕ НА ОТМЕНА - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/bg/subject.hbs deleted file mode 100644 index bd51ef407..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Преглед на хронологията diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/en/html.mjml deleted file mode 100644 index 328fceb26..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/en/html.mjml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - Time sheet Overview - - -

Total hours: {{total_hours}}

-

Average activates: {{average_activates}}

-

Projects: {{projects}}

-

Log Type: {{log_type}}

-

Source: {{source}}

-
- ** An email has been sent to client and employee - too - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/en/subject.hbs deleted file mode 100644 index b9e92b5a5..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Time sheet Overview diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/he/html.mjml deleted file mode 100644 index ec8c5f29f..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/he/html.mjml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - סקירת גיליון זמנים - - -

סה"כ שעות: {{total_hours}}

-

ממוצע מופעל: {{average_activates}}

-

פרויקטים: {{projects}}

-

סוג יומן: {{log_type}}

-

מָקוֹר: {{source}}

-
- ** דוא"ל נשלח גם ללקוח ולעובד. - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/he/subject.hbs deleted file mode 100644 index 407ee6bca..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -סקירת גיליון זמנים diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/ru/html.mjml deleted file mode 100644 index f1eb446f5..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/ru/html.mjml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - Обзор табеля рабочего времени - - -

Все часы: {{total_hours}}

-

- Средний активирует: {{average_activates}} -

-

проектов: {{projects}}

-

Тип журнала: {{log_type}}

-

источник: {{source}}

-
- ** Письмо было отправлено клиенту и сотруднику. - - - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/ru/subject.hbs deleted file mode 100644 index 8fb372274..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-overview/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Обзор табеля рабочего времени diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/bg/html.mjml deleted file mode 100644 index 2414c6846..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/bg/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Изпращане на график - -

Dear {{email}},

-

- потребител {{candidateName}} на {{project}}, представете - график за време на проекта..!! -

-
- -

С Най-Добри Пожелания,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/bg/subject.hbs deleted file mode 100644 index 6a97a6753..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Изпращане на график diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/en/html.mjml deleted file mode 100644 index a2c540c0c..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/en/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Time sheet Submit - -

Dear {{email}},

-

- User {{candidateName}} of {{project}}, submit project - time sheet..!! -

-
- -

Best regards,

-

Peanut Team

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/en/subject.hbs deleted file mode 100644 index 095b7c336..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/en/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Time sheet Submit diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/he/html.mjml deleted file mode 100644 index ebb1a66f2..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/he/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - הגשת גיליון זמנים - -

Dear {{email}},

-

- מִשׁתַמֵשׁ {{candidateName}} שֶׁל {{project}}, הגש - גיליון זמן לפרויקט..!! -

-
- -

כל טוב,

-

צוות גאוזי

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/he/subject.hbs deleted file mode 100644 index fd0c8ef6d..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -הגשת גיליון זמנים diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/ru/html.mjml deleted file mode 100644 index a5a9ea289..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/ru/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - Отправить расписание - -

Dear {{email}},

-

- пользователь {{candidateName}} пользователь {{project}}, - отправить расписание проекта..!! -

-
- -

С уважением,

-

Команда Гаузи

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/ru/subject.hbs deleted file mode 100644 index bbfa362f3..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/timesheet-submit/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Отправить расписание diff --git a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/bg/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/bg/html.mjml deleted file mode 100644 index 43ab9dcb4..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/bg/html.mjml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - Добре дошли в Metad™ - -

Уважаеми {{email}},

-

- Благодарим за Вашата регистрация в Metad™ - Платформа за - споделяне на печалби с отворен код -

-

Радваме се да Ви приветстваме на борда!

-

С най-добри пожелания,

-

Екипът на Metad™

-
- - © 2019, - Metad - by - Metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/bg/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/bg/subject.hbs deleted file mode 100644 index 02982954c..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/bg/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добре дошли в Metad™ {{email}} diff --git a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/en/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/en/html.mjml index a4a79c8ee..cc71248fc 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/en/html.mjml +++ b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/en/html.mjml @@ -4,7 +4,7 @@

Dear {{email}},

- Thank you for your registration in Metad™ Analytics Cloud + Thank you for your registration in Xpert AI Cloud

We are happy to have you on board!

{{host}}

Best regards,

-

Metad Team

+

Xpert AI Team

© 2019, + >© 2024, Metad Analytics CloudXpert AI by Metad Co. LTD.XpertAI Co. LTD. All rights reserved. diff --git a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/en/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/en/subject.hbs index c986eea11..264e075d7 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/en/subject.hbs +++ b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/en/subject.hbs @@ -1 +1 @@ -Welcome to Metad Analytics Cloud {{email}} +Welcome to Xpert AI Cloud {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/he/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/he/html.mjml deleted file mode 100644 index 5ae601ae3..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/he/html.mjml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - ברוך הבא לגוזי! - -

{{email}} היקר,

-

- תודה על הרשמתך ל- metad ™ - שיתוף רווחים הוגנים פלטפורמת - קוד פתוח -

-

אנו שמחים לקבל אותך על הסיפון!

-

בברכה ,

-

צוות גאוזי

-
- - © 2019, - metad - by - metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/he/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/he/subject.hbs deleted file mode 100644 index 4d873851a..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/he/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -ברוך הבא לגוזי! {{email}} \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/ru/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/ru/html.mjml deleted file mode 100644 index 76d39917f..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/ru/html.mjml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - Добро пожаловать в metad! - -

Уважаемый {{email}},

-

- Благодарим вас за регистрацию в metad ™ - платформе с - открытым исходным кодом для справедливого распределения - прибыли -

-

Мы рады, что вы на борту!

-

С уважением,

-

metad Team

-
- - © 2019, - metad - by - metad Co. LTD. - All rights reserved. - -
-
-
-
diff --git a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/ru/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/ru/subject.hbs deleted file mode 100644 index 6a460e09c..000000000 --- a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/ru/subject.hbs +++ /dev/null @@ -1 +0,0 @@ -Добро пожаловать в metad {{email}}! \ No newline at end of file diff --git a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/zh/html.mjml b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/zh/html.mjml index 259c22333..5d0a82286 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/zh/html.mjml +++ b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/zh/html.mjml @@ -4,39 +4,34 @@ 欢迎加入元数分析云!欢迎加入 Xpert AI 云! -

Dear {{email}},

+

您好 {{email}},

- 感谢您注册使用 Metad™ Analytics Cloud - 免费的企业级多维分析云. + 感谢您注册使用 Xpert AI 云。

欢迎点击下方链接开始使用!

{{host}}

-

Best regards,

-

Metad Team

+

此致,

+

Xpert AI 团队

- © 2019, - 元数分析云 - by - Metad Co. LTD. - All rights reserved. + © 2024, + Xpert AI + 由 + (南京)元数信息技术有限公司 + 版权所有.
diff --git a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/zh/subject.hbs b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/zh/subject.hbs index 31444acaa..18277d4fd 100644 --- a/packages/server/src/core/seeds/data/default-email-templates/welcome-user/zh/subject.hbs +++ b/packages/server/src/core/seeds/data/default-email-templates/welcome-user/zh/subject.hbs @@ -1 +1 @@ -欢迎使用元数分析云 {{email}} +欢迎 {{email}} 使用 Xpert AI 云 diff --git a/packages/server/src/email-template/email-template.controller.ts b/packages/server/src/email-template/email-template.controller.ts index 9077d87d8..4bfccdb37 100644 --- a/packages/server/src/email-template/email-template.controller.ts +++ b/packages/server/src/email-template/email-template.controller.ts @@ -139,7 +139,14 @@ export class EmailTemplateController extends CrudController { @Query('data', ParseJsonPipe) filter: PaginationParams ): Promise> { return await this.queryBus.execute( - new EmailTemplateQuery(filter as PaginationParams) + new EmailTemplateQuery({ + ...(filter ?? {}), + where: { + ...(filter?.where ?? {}), + tenantId: RequestContext.currentTenantId(), + organizationId: RequestContext.getOrganizationId() + } + } as PaginationParams) ); } diff --git a/packages/server/src/email-template/email-template.entity.ts b/packages/server/src/email-template/email-template.entity.ts index ed7b798c5..26a521ac1 100644 --- a/packages/server/src/email-template/email-template.entity.ts +++ b/packages/server/src/email-template/email-template.entity.ts @@ -1,50 +1,42 @@ -import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; -import { Column, Entity, Index, OneToMany } from 'typeorm'; -import { IsNotEmpty, IsString, IsOptional } from 'class-validator'; -import { IEmailTemplate } from '@metad/contracts'; -import { Email, TenantOrganizationBaseEntity } from '../core/entities/internal'; +import { IEmailTemplate } from '@metad/contracts' +import { ApiProperty } from '@nestjs/swagger' +import { IsNotEmpty, IsOptional, IsString } from 'class-validator' +import { Column, Entity, Index } from 'typeorm' +import { TenantOrganizationBaseEntity } from '../core/entities/internal' @Entity('email_template') -export class EmailTemplate - extends TenantOrganizationBaseEntity - implements IEmailTemplate { +export class EmailTemplate extends TenantOrganizationBaseEntity implements IEmailTemplate { @ApiProperty({ type: () => String }) @IsString() @IsNotEmpty() @Index() @Column() - name: string; + name: string @ApiProperty({ type: () => String }) @IsString() @IsNotEmpty() @Index() @Column() - languageCode: string; + languageCode: string @ApiProperty({ type: () => String }) @IsString() @Column({ type: 'text', nullable: true }) @IsOptional() - mjml: string; + mjml: string @ApiProperty({ type: () => String }) @IsString() @IsNotEmpty() @Column() - hbs: string; + hbs: string - title?: string; + title?: string /* |-------------------------------------------------------------------------- | @OneToMany |-------------------------------------------------------------------------- */ - // Emails - @ApiPropertyOptional({ type: () => Email }) - @OneToMany(() => Email, (email) => email.emailTemplate, { - cascade: true - }) - emails?: IEmailTemplate[]; -} \ No newline at end of file +} diff --git a/packages/server/src/email-template/email-template.service.ts b/packages/server/src/email-template/email-template.service.ts index 9b6ebd52d..1fe9e6d21 100644 --- a/packages/server/src/email-template/email-template.service.ts +++ b/packages/server/src/email-template/email-template.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Brackets, Repository, SelectQueryBuilder, WhereExpression } from 'typeorm'; -import { IEmailTemplate, IListQueryInput, IPagination } from '@metad/contracts'; -import { CrudService } from './../core/crud'; +import { IPagination } from '@metad/contracts'; +import { CrudService, PaginationParams } from './../core/crud'; import { EmailTemplate } from './email-template.entity'; import { RequestContext } from './../core/context'; @@ -20,8 +20,8 @@ export class EmailTemplateService extends CrudService { * @param params * @returns */ - async findAll(params: IListQueryInput): Promise> { - const { findInput, relations } = params; + async findAll(params: PaginationParams): Promise> { + const { where, relations } = params; const [items, total] = await this.emailRepository.findAndCount({ relations: [ ...(relations ? relations : []) @@ -30,7 +30,7 @@ export class EmailTemplateService extends CrudService { qb.where( new Brackets((bck: WhereExpression) => { const tenantId = RequestContext.currentTenantId(); - const { organizationId, languageCode } = findInput; + const { organizationId, languageCode } = where; if (organizationId) { bck.andWhere(`"${qb.alias}"."organizationId" = :organizationId`, { organizationId diff --git a/packages/server/src/email-template/queries/email-template.query.ts b/packages/server/src/email-template/queries/email-template.query.ts index bdf3181bf..ccc051cb0 100644 --- a/packages/server/src/email-template/queries/email-template.query.ts +++ b/packages/server/src/email-template/queries/email-template.query.ts @@ -1,11 +1,11 @@ -import { IEmailTemplate } from '@metad/contracts'; import { IQuery } from '@nestjs/cqrs'; import { PaginationParams } from './../../core/crud/pagination-params'; +import { EmailTemplate } from '../email-template.entity'; export class EmailTemplateQuery implements IQuery { static readonly type = '[Email Template] Query All'; constructor( - public readonly input: PaginationParams, + public readonly options: PaginationParams, ) {} } \ No newline at end of file diff --git a/packages/server/src/email-template/queries/handlers/email-template.handler.ts b/packages/server/src/email-template/queries/handlers/email-template.handler.ts index b38ab3992..1e3ca3407 100644 --- a/packages/server/src/email-template/queries/handlers/email-template.handler.ts +++ b/packages/server/src/email-template/queries/handlers/email-template.handler.ts @@ -1,6 +1,5 @@ import { IQueryHandler, QueryHandler } from '@nestjs/cqrs'; -import { IEmailTemplate, IListQueryInput } from '@metad/contracts'; import { EmailTemplateService } from './../../email-template.service'; import { EmailTemplateQuery } from '../email-template.query'; @@ -13,10 +12,7 @@ export class EmailTemplateQueryHandler ) {} async execute(query: EmailTemplateQuery) { - const { input } = query; - return await this.emailTemplateService.findAll( - input as IListQueryInput - ); + const { options } = query; + return await this.emailTemplateService.findAll(options); } } - diff --git a/packages/server/src/email/email.entity.ts b/packages/server/src/email/email.entity.ts index 79180aeed..e7e2b8642 100644 --- a/packages/server/src/email/email.entity.ts +++ b/packages/server/src/email/email.entity.ts @@ -56,8 +56,11 @@ export class Email extends TenantOrganizationBaseEntity implements IEmail { @Column({ nullable: true }) userId?: string; + /** + * Email Template + */ @ApiProperty({ type: () => EmailTemplate }) - @ManyToOne(() => EmailTemplate, (template) => template.emails, { + @ManyToOne(() => EmailTemplate, { nullable: false, onDelete: 'CASCADE' }) diff --git a/packages/server/src/email/email.service.ts b/packages/server/src/email/email.service.ts index 111f9131c..974543068 100644 --- a/packages/server/src/email/email.service.ts +++ b/packages/server/src/email/email.service.ts @@ -6,6 +6,7 @@ import { IOrganization, IUser, LanguagesEnum, + LanguagesMap, } from '@metad/contracts'; import { forwardRef, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; @@ -145,25 +146,46 @@ export class EmailService extends TenantAwareCrudService { private render = (view, locals) => { return new Promise(async (resolve, reject) => { view = view.replace('\\', '/'); + + const languageCode = LanguagesMap[locals.locale] ?? locals.locale // Find email template for customized for given organization let emailTemplate: IEmailTemplate = await this.emailTemplateRepository.findOne({ name: view, - languageCode: locals.locale || LanguagesEnum.English, + languageCode, organizationId: locals.organizationId, tenantId: locals.tenantId }); + // Try to find default language `en` template + if (!emailTemplate) { + emailTemplate = await this.emailTemplateRepository.findOne({ + name: view, + languageCode: LanguagesEnum.English, + organizationId: locals.organizationId, + tenantId: locals.tenantId + }) + } + // if no email template present for given organization, use default email template if (!emailTemplate) { emailTemplate = await this.emailTemplateRepository.findOne({ name: view, - languageCode: locals.locale || LanguagesEnum.English, + languageCode, organizationId: IsNull(), tenantId: locals.tenantId }); } + if (!emailTemplate) { + emailTemplate = await this.emailTemplateRepository.findOne({ + name: view, + languageCode: LanguagesEnum.English, + organizationId: IsNull(), + tenantId: locals.tenantId + }) + } + if (!emailTemplate) { return resolve(''); } @@ -174,99 +196,6 @@ export class EmailService extends TenantAwareCrudService { }); }; - // async sendPaymentReceipt( - // languageCode: LanguagesEnum, - // email: string, - // contactName: string, - // invoiceNumber: number, - // amount: number, - // currency: string, - // organization: Organization, - // originUrl: string - // ) { - // const tenantId = RequestContext.currentTenantId(); - // const { id: organizationId, name: organizationName } = organization; - // const sendOptions = { - // template: 'payment-receipt', - // message: { - // to: `${email}` - // }, - // locals: { - // locale: languageCode, - // host: originUrl || env.clientBaseUrl, - // contactName, - // invoiceNumber, - // amount, - // currency, - // organizationId, - // tenantId, - // organizationName - // } - // } - // this.email - // .send(sendOptions) - // .then((res) => { - // this.createEmailRecord({ - // templateName: sendOptions.template, - // email, - // languageCode, - // organization, - // message: res.originalMessage - // }); - // }) - // .catch(console.error); - // } - - // emailInvoice( - // languageCode: LanguagesEnum, - // email: string, - // base64: string, - // invoiceNumber: number, - // invoiceId: string, - // isEstimate: boolean, - // token: any, - // originUrl: string, - // organization: IOrganization - // ) { - // const tenantId = RequestContext.currentTenantId(); - // const { id: organizationId } = organization; - // const baseUrl = originUrl || env.clientBaseUrl; - // const sendOptions = { - // template: isEstimate ? 'email-estimate' : 'email-invoice', - // message: { - // to: `${email}`, - // attachments: [ - // { - // filename: `${ isEstimate ? 'Estimate' : 'Invoice' }-${invoiceNumber}.pdf`, - // content: base64, - // encoding: 'base64' - // } - // ] - // }, - // locals: { - // tenantId, - // organizationId, - // locale: languageCode, - // host: baseUrl, - // acceptUrl: `${baseUrl}#/auth/estimate/?token=${token}&id=${invoiceId}&action=accept&email=${email}`, - // rejectUrl: `${baseUrl}#/auth/estimate/?token=${token}&id=${invoiceId}&action=reject&email=${email}` - // } - // }; - - // this.email - // .send(sendOptions) - // .then((res) => { - // this.createEmailRecord({ - // templateName: sendOptions.template, - // email, - // languageCode, - // organization, - // message: res.originalMessage - // }); - // }) - // .catch(console.error); - // } - async sendAcceptInvitationEmail(joinEmployeeModel: IJoinEmployeeModel, originUrl?: string) { const { email, @@ -523,46 +452,6 @@ export class EmailService extends TenantAwareCrudService { } } - // async sendAppointmentMail( - // email: string, - // languageCode: LanguagesEnum, - // organizationId?: string, - // originUrl?: string - // ) { - // let organization: Organization; - // if (organizationId) { - // organization = await this.organizationRepository.findOne( - // organizationId - // ); - // } - // const tenantId = (organization) ? organization.tenantId : RequestContext.currentTenantId(); - // const sendOptions = { - // template: 'email-appointment', - // message: { - // to: email - // }, - // locals: { - // locale: languageCode, - // email: email, - // host: originUrl || env.clientBaseUrl, - // organizationId: organizationId || IsNull(), - // tenantId: tenantId || IsNull() - // } - // }; - // this.email - // .send(sendOptions) - // .then((res) => { - // this.createEmailRecord({ - // templateName: sendOptions.template, - // email: email, - // languageCode, - // organization, - // message: res.originalMessage - // }); - // }) - // .catch(console.error); - // } - private async createEmailRecord(createEmailOptions: { templateName: string; email: string;