From b2514d847a409412954cb2778f2f9a7ce9234179 Mon Sep 17 00:00:00 2001 From: Alexandre Caurrinhos Date: Wed, 19 Apr 2023 16:03:26 -0300 Subject: [PATCH] Version 4.16 --- package-lock.json | 2 +- package.json | 2 +- src/app/core/stored-file-cache.service.ts | 8 + src/app/shared/base-form-field.component.ts | 8 +- src/app/shared/images-field.component.html | 46 +- src/app/shared/images-field.component.ts | 3 +- src/app/shared/user-field.component.ts | 3 +- .../payment-step-confirm.component.html | 2 +- .../payment/payment-step-form.component.html | 4 +- .../payment/payment-step-form.component.ts | 10 + src/app/ui/core/user-helper.service.ts | 24 +- .../operations/run-operation.component.html | 4 +- src/app/ui/shared/address-form.component.html | 4 +- src/app/ui/shared/address-form.component.ts | 14 +- .../ui/shared/field-privacy.component.html | 2 +- .../users/profile/edit-profile.component.html | 14 +- .../users/profile/edit-profile.component.ts | 2 +- .../run-wizard-step-field.component.html | 62 ++- .../run-wizard-step-field.component.ts | 6 + src/app/ui/wizards/run-wizard.component.html | 3 +- src/app/ui/wizards/run-wizard.component.ts | 92 +++- src/i18n/i18n.af.json | 1 - src/i18n/i18n.de.json | 2 - src/i18n/i18n.es.json | 27 +- src/i18n/i18n.fr.json | 2 - src/i18n/i18n.it.json | 2 - src/i18n/i18n.json | 5 +- src/i18n/i18n.nl.json | 119 +++++- src/i18n/i18n.pt_BR.json | 5 +- src/i18n/i18n.ru.json | 392 +++++++++++++++++- src/openapi/cyclos-openapi.yaml | 298 +++++++------ src/tsconfig.pay.json | 14 - tsconfig.json | 12 - 33 files changed, 920 insertions(+), 274 deletions(-) delete mode 100644 src/tsconfig.pay.json diff --git a/package-lock.json b/package-lock.json index ca53072d1..a218d7574 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cyclos4-ui", - "version": "4.16-BETA.0", + "version": "4.16.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 85c98536e..8f657437d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Cyclos 4 UI", "description": "The new Cyclos 4 frontend", "icon": "cyclos.png", - "version": "4.16-BETA.0", + "version": "4.16.0", "license": "MIT", "author": { "name": "Cyclos development team", diff --git a/src/app/core/stored-file-cache.service.ts b/src/app/core/stored-file-cache.service.ts index 2d0baaaa1..44c3df957 100644 --- a/src/app/core/stored-file-cache.service.ts +++ b/src/app/core/stored-file-cache.service.ts @@ -56,6 +56,14 @@ export class StoredFileCacheService { return this.cache.get(id); } + /** + * Returns if the given id is in the cache + * @param key The stored file id + */ + contains(id: string): boolean { + return this.cache.has(id); + } + /** * Returns the cached elements count */ diff --git a/src/app/shared/base-form-field.component.ts b/src/app/shared/base-form-field.component.ts index e293f1028..8190a3f10 100644 --- a/src/app/shared/base-form-field.component.ts +++ b/src/app/shared/base-form-field.component.ts @@ -69,13 +69,7 @@ export abstract class BaseFormFieldComponent extends BaseControlComponent disabledFormat: ValueFormat = 'plain'; /** The field size */ - private _fieldSize: CustomFieldSizeEnum; - @Input() get fieldSize(): CustomFieldSizeEnum { - return this._fieldSize; - } - set fieldSize(size: CustomFieldSizeEnum) { - this._fieldSize = size; - } + @Input() fieldSize: CustomFieldSizeEnum; constructor(injector: Injector, protected controlContainer: ControlContainer) { super(injector, controlContainer); diff --git a/src/app/shared/images-field.component.html b/src/app/shared/images-field.component.html index 785d395bc..67d460ad1 100644 --- a/src/app/shared/images-field.component.html +++ b/src/app/shared/images-field.component.html @@ -16,31 +16,33 @@ [size]="avatarSize" [image]="img" [additionalImages]="images"> -
- - + + + - - - - -
+ + this.storedFileCacheService.read(id)) - .filter(sf => sf) + .filter(sf => sf && !this.images.find(i => i.id === sf.id)) .forEach(sf => this.images.push(sf)); } diff --git a/src/app/shared/user-field.component.ts b/src/app/shared/user-field.component.ts index 89eaed416..859f65dc4 100644 --- a/src/app/shared/user-field.component.ts +++ b/src/app/shared/user-field.component.ts @@ -143,8 +143,9 @@ export class UserFieldComponent filters.ignoreProfileFieldsInList = true; filters.pageSize = PageSize; filters.keywords = text; + filters.usersToExclude = [...(filters.usersToExclude || [])]; if (!this.allowSelf) { - filters.usersToExclude = [...(filters.usersToExclude || []), ApiHelper.SELF]; + filters.usersToExclude.push(ApiHelper.SELF); } this.nextRequestState.leaveNotification = true; return this.usersService.searchUsers(filters); diff --git a/src/app/ui/banking/payment/payment-step-confirm.component.html b/src/app/ui/banking/payment/payment-step-confirm.component.html index afb259c5c..76949e2ae 100644 --- a/src/app/ui/banking/payment/payment-step-confirm.component.html +++ b/src/app/ui/banking/payment/payment-step-confirm.component.html @@ -47,7 +47,7 @@ - + diff --git a/src/app/ui/banking/payment/payment-step-form.component.html b/src/app/ui/banking/payment/payment-step-form.component.html index b77dccf79..3cb16d51c 100644 --- a/src/app/ui/banking/payment/payment-step-form.component.html +++ b/src/app/ui/banking/payment/payment-step-form.component.html @@ -64,8 +64,8 @@ (null); private dataCache: Map; + usersToExclude: string[]; + allowSelf = false; + @Input() customValuesControlGetter: (cf: CustomFieldDetailed) => FormControl; constructor( @@ -86,6 +89,13 @@ export class PaymentStepFormComponent extends BaseComponent implements OnInit { this.toUser = this.data.toUser; this.toSelf = this.authHelper.isSelf(this.toUser); + // Initialize the users to exclude from autocomplete + this.usersToExclude = []; + if (this.fromUser) { + this.usersToExclude.push(this.fromUser.id); + } + this.allowSelf = !this.fromSelf; + if (this.fixedDestination || this.form.value?.type) { // When there's a fixed destination, the payment types are already present in the initial data | // When coming back from confirm payment (the type is set in the form) diff --git a/src/app/ui/core/user-helper.service.ts b/src/app/ui/core/user-helper.service.ts index 20b0850c8..ebe085bae 100644 --- a/src/app/ui/core/user-helper.service.ts +++ b/src/app/ui/core/user-helper.service.ts @@ -3,7 +3,7 @@ import { AbstractControl, AsyncValidatorFn, FormBuilder, FormControl, FormGroup, import { AddressConfigurationForUserProfile, AvailabilityEnum, BasicUserDataForNew, OperatorDataForNew, OperatorGroupAccountAccessEnum, ProfileFieldActions, TokenStatusEnum, User, - UserBasicData, UserDataForNew, UserNew, UserRegistrationResult, UserRegistrationStatusEnum, UserStatusEnum + UserBasicData, UserDataForNew, UserNew, UserRegistrationResult, UserRegistrationStatusEnum, UserStatusEnum, WizardStepField } from 'app/api/models'; import { UsersService } from 'app/api/services/users.service'; import { FieldHelperService } from 'app/core/field-helper.service'; @@ -195,7 +195,7 @@ export class UserHelperService { * according to the given configuration. When the configuration disables addresses, both are null. * Also returns an array of subscriptions, which should be unsubscribed when the calling component is disposed. */ - registrationAddressForm(configuration: AddressConfigurationForUserProfile): [FormGroup, FormControl, Subscription[]] { + registrationAddressForm(configuration: AddressConfigurationForUserProfile, wizardStepAddressField?: WizardStepField): [FormGroup, FormControl, Subscription[]] { const addressAvailability = configuration.availability; let addressForm: FormGroup = null; let defineControl: FormControl = null; @@ -206,14 +206,18 @@ export class UserHelperService { const address = configuration.address; addressForm.patchValue(address); // When any of the fields change, clear the location - for (const field of configuration.enabledFields) { - let previous = address[field] || null; - subscriptions.push(addressForm.get(field).valueChanges.subscribe(newVal => { - if (previous !== newVal) { - addressForm.get('location').patchValue({ latitude: null, longitude: null }); - } - previous = newVal; - })); + if (!wizardStepAddressField || !wizardStepAddressField.readOnly) { + for (const field of configuration.enabledFields) { + let previous = address[field] || null; + subscriptions.push(addressForm.get(field).valueChanges.subscribe(newVal => { + if (previous !== newVal) { + addressForm.get('location').patchValue({ latitude: null, longitude: null }); + } + previous = newVal; + })); + } + } else { + addressForm.clearValidators(); } } return [addressForm, defineControl, subscriptions]; diff --git a/src/app/ui/operations/run-operation.component.html b/src/app/ui/operations/run-operation.component.html index 2edd7adf3..08ac9a1c1 100644 --- a/src/app/ui/operations/run-operation.component.html +++ b/src/app/ui/operations/run-operation.component.html @@ -76,7 +76,9 @@
- +
+ +
diff --git a/src/app/ui/users/profile/edit-profile.component.html b/src/app/ui/users/profile/edit-profile.component.html index 7022ce0fd..77213f887 100644 --- a/src/app/ui/users/profile/edit-profile.component.html +++ b/src/app/ui/users/profile/edit-profile.component.html @@ -178,8 +178,7 @@

{{ i18n.phone.mobile }}

- + @@ -325,8 +324,7 @@

{{ i18n.address.address }}

[label]="i18n.phone.extension">
- + @@ -451,10 +449,10 @@

{{ i18n.address.address }}

- +

{{ i18n.address.address }}

[initialImages]="data.contactInfoBinaryValues[contactInfo['id']]?.image"> + formControlName="name" [label]="i18n.general.name" required> diff --git a/src/app/ui/users/profile/edit-profile.component.ts b/src/app/ui/users/profile/edit-profile.component.ts index b804bca56..9509b2cd2 100644 --- a/src/app/ui/users/profile/edit-profile.component.ts +++ b/src/app/ui/users/profile/edit-profile.component.ts @@ -392,7 +392,7 @@ export class EditProfileComponent this.removedContactInfos = []; if (data.contactInfoConfiguration && data.contactInfoConfiguration.availability !== AvailabilityEnum.DISABLED) { - // Additional contacts are enabled. Copy the fields to the address configuration + // Public contacts are enabled. Copy the fields to the address configuration data.addressConfiguration.contactInfoEnabled = true; data.addressConfiguration.contactInfoFields = data.contactInfoConfiguration.customFields; } diff --git a/src/app/ui/wizards/run-wizard-step-field.component.html b/src/app/ui/wizards/run-wizard-step-field.component.html index 3c22bb136..c166e6ab1 100644 --- a/src/app/ui/wizards/run-wizard-step-field.component.html +++ b/src/app/ui/wizards/run-wizard-step-field.component.html @@ -2,9 +2,10 @@ {{ field.kind }}: {{ field.basicProfileField }}{{ field.customProfileField }} {{ field.wizardField }} --> - + - + @@ -111,6 +112,58 @@ [control]="privacyControl"> + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ {{ pt.description }} @@ -149,7 +202,7 @@ @@ -162,7 +215,8 @@ - + diff --git a/src/app/ui/wizards/run-wizard-step-field.component.ts b/src/app/ui/wizards/run-wizard-step-field.component.ts index 38951d7c9..a88273492 100644 --- a/src/app/ui/wizards/run-wizard-step-field.component.ts +++ b/src/app/ui/wizards/run-wizard-step-field.component.ts @@ -52,6 +52,8 @@ export class RunWizardStepFieldComponent @Input() landLinePhone: FormGroup; @Input() defineAddress: FormControl; @Input() address: FormGroup; + @Input() defineContactInfo: FormControl; + @Input() contactInfo: FormGroup; @Input() customValues: FormGroup; @Input() emailValidation: FormControl; @Input() smsValidation: FormControl; @@ -266,4 +268,8 @@ export class RunWizardStepFieldComponent } }); } + + isContactInfoReadonly(): boolean { + return this.step.fields.find(f => f.kind === WizardStepFieldKind.CONTACT_INFO)?.readOnly; + } } diff --git a/src/app/ui/wizards/run-wizard.component.html b/src/app/ui/wizards/run-wizard.component.html index 159ff79ec..ee88fb3d9 100644 --- a/src/app/ui/wizards/run-wizard.component.html +++ b/src/app/ui/wizards/run-wizard.component.html @@ -29,7 +29,8 @@ [emailValidation]="emailValidation" [smsValidation]="smsValidation" [mobilePhone]="mobilePhone" [landLinePhone]="landLinePhone" [defineAddress]="defineAddress" - [address]="address" [customValues]="customValues" + [address]="address" [defineContactInfo]="defineContactInfo" + [contactInfo]="contactInfo" [customValues]="customValues" [submitAction]="resolveSubmitAction()"> diff --git a/src/app/ui/wizards/run-wizard.component.ts b/src/app/ui/wizards/run-wizard.component.ts index 53346ad5a..b052c8ea3 100644 --- a/src/app/ui/wizards/run-wizard.component.ts +++ b/src/app/ui/wizards/run-wizard.component.ts @@ -1,13 +1,14 @@ import { ChangeDetectionStrategy, Component, Injector, OnInit } from '@angular/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; import { - AddressNew, AvailabilityEnum, BasicProfileFieldEnum, CreateDeviceConfirmation, DeviceConfirmationTypeEnum, IdentityProvider, IdentityProviderCallbackStatusEnum, - PhoneKind, - PhoneNew, UserNew, WizardActionEnum, WizardExecutionData, WizardKind, WizardResultTypeEnum, WizardStepKind, WizardStepTransition + AddressNew, AvailabilityEnum, BasicProfileFieldEnum, ContactInfoConfigurationForUserProfile, CreateDeviceConfirmation, + DeviceConfirmationTypeEnum, IdentityProvider, IdentityProviderCallbackStatusEnum, PhoneKind, PhoneNew, StoredFile, UserNew, WizardActionEnum, + WizardExecutionData, WizardKind, WizardResultTypeEnum, WizardStepField, WizardStepFieldKind, WizardStepKind, WizardStepTransition } from 'app/api/models'; import { WizardsService } from 'app/api/services/wizards.service'; import { CaptchaHelperService } from 'app/core/captcha-helper.service'; import { NextRequestState } from 'app/core/next-request-state'; +import { StoredFileCacheService } from 'app/core/stored-file-cache.service'; import { empty, focusFirstInvalid, mergeValidity, validateBeforeSubmit } from 'app/shared/helper'; import { UserHelperService } from 'app/ui/core/user-helper.service'; import { BasePageComponent } from 'app/ui/shared/base-page.component'; @@ -43,6 +44,8 @@ export class RunWizardComponent landLinePhone: FormGroup; defineAddress: FormControl; address: FormGroup; + defineContactInfo: FormControl; + contactInfo: FormGroup; customValues: FormGroup; emailValidation: FormControl; smsValidation: FormControl; @@ -67,7 +70,8 @@ export class RunWizardComponent private userHelper: UserHelperService, private captchaHelper: CaptchaHelperService, private nextRequestState: NextRequestState, - private wizardsService: WizardsService) { + private wizardsService: WizardsService, + private storedFileCacheService: StoredFileCacheService) { super(injector); } @@ -183,6 +187,8 @@ export class RunWizardComponent this.customValues = null; this.address = null; this.defineAddress = null; + this.contactInfo = null; + this.defineContactInfo = null; this.verificationCode = null; // Then, according to the current step, initialize the corresponding ones @@ -204,13 +210,32 @@ export class RunWizardComponent const user = data.params.user; dataForNew.user = user; + // Update stored files cache if necessary + // This update of the cache also cover the case where the contact info is readonly + // Images are not added to the cache because they are initialized in the fields with "initialImages". + const currentBinaryValues: StoredFile[] = []; + for (let key in dataForNew.binaryValues?.fileValues) { + dataForNew.binaryValues.fileValues[key].forEach(f => currentBinaryValues.push(f)); + } + for (let key in dataForNew.binaryValues?.imageValues) { + dataForNew.binaryValues.imageValues[key].forEach(i => currentBinaryValues.push(i)); + } + for (let key in dataForNew.contactInfoBinaryValues?.fileValues) { + dataForNew.contactInfoBinaryValues.fileValues[key].forEach(f => currentBinaryValues.push(f)); + } + for (let key in dataForNew.contactInfoBinaryValues?.imageValues) { + dataForNew.contactInfoBinaryValues.imageValues[key].forEach(i => currentBinaryValues.push(i)); + } + if (currentBinaryValues.length > 0 && !this.storedFileCacheService.contains(currentBinaryValues[0].id)) { + currentBinaryValues.forEach(v => this.storedFileCacheService.write(v)); + } + this.user = this.formBuilder.group({ group: user.group, hiddenFields: [user.hiddenFields || []], }); // The profile fields and phones are handled by the helper - [this.mobilePhone, this.landLinePhone] = this.userHelper.setupRegistrationForm( - this.user, dataForNew, true); + [this.mobilePhone, this.landLinePhone] = this.userHelper.setupRegistrationForm(this.user, dataForNew, true); if (data.step.fields?.find(f => f.basicProfileField === BasicProfileFieldEnum.EMAIL && f.requireVerification)) { this.emailValidation = new FormControl(null); @@ -254,18 +279,46 @@ export class RunWizardComponent dataForNew.addressConfiguration.address = user.addresses[0]; } } + if (dataForNew.contactInfoConfiguration) { + if (!empty(user.contactInfos)) { + dataForNew.contactInfoConfiguration.contactInfo = user.contactInfos[0]; + } + } + const imageAvailability = dataForNew.imageConfiguration.availability; if (imageAvailability !== AvailabilityEnum.DISABLED) { this.user.addControl('images', new FormControl(user.images, imageAvailability === AvailabilityEnum.REQUIRED ? Validators.required : null)); } + // Contact info + const contactInfoField = step.fields.find(f => f.kind === WizardStepFieldKind.CONTACT_INFO); + if (contactInfoField) { + this.contactInfo = this.buildContactInfoForm(dataForNew.contactInfoConfiguration, contactInfoField); + this.defineContactInfo = this.formBuilder.control(!empty(user.contactInfos)); + this.addSub(this.defineContactInfo.valueChanges.subscribe(() => { + if (this.defineContactInfo.value && !contactInfoField.readOnly) { + this.contactInfo.get('name').addValidators(Validators.required); + } else { + this.contactInfo.get('name').removeValidators(Validators.required); + } + })); + if (contactInfoField.readOnly) { + this.contactInfo.disable(); + this.defineContactInfo.disable(); + } + } // Address + const addressField = step.fields.find(f => f.basicProfileField === BasicProfileFieldEnum.ADDRESS); let addressSubs: Subscription[]; - [this.address, this.defineAddress, addressSubs] = this.userHelper.registrationAddressForm(dataForNew.addressConfiguration); + [this.address, this.defineAddress, addressSubs] = this.userHelper.registrationAddressForm(dataForNew.addressConfiguration, addressField); if (this.defineAddress && !empty(user.addresses)) { this.defineAddress.setValue(true); } + if (addressField?.readOnly) { + this.address.disable(); + this.defineAddress.disable(); + } addressSubs.forEach(s => this.addSub(s)); // Passwords @@ -298,6 +351,23 @@ export class RunWizardComponent } } + private buildContactInfoForm(contactInfoData: ContactInfoConfigurationForUserProfile, contactInfoField: WizardStepField): FormGroup { + const form = this.formBuilder.group({ + id: null, + version: null, + hidden: null, + name: [null, contactInfoData.contactInfo?.name && !contactInfoField.readOnly ? Validators.required : null], + image: null, + email: null, + mobilePhone: null, + landLinePhone: null, + landLineExtension: null + }); + form.setControl('customValues', this.fieldHelper.customValuesFormGroup(contactInfoData.customFields)); + form.patchValue(contactInfoData.contactInfo); + return form; + } + resolveMenu(data: WizardExecutionData) { const wizard = data.wizard; const kind = wizard.kind; @@ -417,9 +487,12 @@ export class RunWizardComponent if (this.landLinePhone) { fullForm.addControl('landLinePhone', this.landLinePhone); } - if (this.address && this.defineAddress.value) { + if (this.address && this.defineAddress?.value) { fullForm.addControl('address', this.address); } + if (this.contactInfo && this.contactInfo?.value) { + fullForm.addControl('contactInfo', this.contactInfo); + } } const nonValid = validateBeforeSubmit(fullForm, true) as FormControl[]; @@ -440,6 +513,9 @@ export class RunWizardComponent user.landLinePhones = [landLine]; } } + if (this.contactInfo?.value && this.defineContactInfo?.value) { + user.contactInfos = [this.contactInfo.value]; + } if (this.address) { const address = (this.defineAddress && this.defineAddress.value ? this.address.value : null) as AddressNew; if (address) { diff --git a/src/i18n/i18n.af.json b/src/i18n/i18n.af.json index d8f2e1785..42c77a78f 100644 --- a/src/i18n/i18n.af.json +++ b/src/i18n/i18n.af.json @@ -358,7 +358,6 @@ "title": { "editProfile": "Redigeer profiel", "addresses": "Adresse", - "contactInfos": "Bykomende kontakte", "confirmation": "Bevestig", "contactList": "Kontaklys", "addContact": "Voeg nuwe kontak by", diff --git a/src/i18n/i18n.de.json b/src/i18n/i18n.de.json index 32a0ddaf1..b8366e648 100644 --- a/src/i18n/i18n.de.json +++ b/src/i18n/i18n.de.json @@ -1003,7 +1003,6 @@ "fields": "Profilfelder", "phones": "Telefone", "addresses": "Adressen", - "contactInfos": "Zusätzliche Kontakte", "confirmation": "Bestätigung", "registration": "Nutzerregistrierung", "registration.confirmation": "Registrierungsbestätigung", @@ -1068,7 +1067,6 @@ "contactInfo": "Kontaktinformationen", "contactInfo.add": "Kontakt hinzufügen", "contactInfo.remove": "Kontakt entfernen", - "contactInfo.none": "Es gibt derzeit keine zusätzlichen Kontakte", "contactInfo.atAddress": "Am", "profileSaved": "Das Profil wurde gespeichert", "newEmailConfirmed": "Ihre neue E-Mail-Adresse wurde erfolgreich bestätigt", diff --git a/src/i18n/i18n.es.json b/src/i18n/i18n.es.json index 34c275743..1d3c6f826 100644 --- a/src/i18n/i18n.es.json +++ b/src/i18n/i18n.es.json @@ -393,7 +393,7 @@ "sendMedium": "Enviar código de verificación a", "sendToEmail": "Enviar al correo {email}", "sendToPhone": "Enviar al teléfono {phone}", - "noMediums": "No hay medios posibles para recibir código de verificación", + "noMediums": "No hay medios posibles para recibir el código de verificación", "send": "Enviar código de verificación", "countdownLabel": "* Puede enviar el correo / SMS nuevamente en {seconds} segundos.", "receiveBy.sent": "{medium} enviado", @@ -515,10 +515,10 @@ "active": "La aplicación de autenticación está activa desde {date}", "neverCreated.managers": "La aplicación de autenticación no ha sido configurada para este usuario.", "neverCreated.message": "Activar una aplicación de autenticación, para poder confirmar operaciones:
    \n
  • Primero descargue e instale una aplicación de autenticación RFC 6238 compatible (como Google Authenticator o Microsoft Authenticator) desde tu tienda de aplicaciones del teléfono (Google Play o App Store);
  • \n
  • Envíe un código de verificación a su correo electrónico / teléfono (a través de SMS), para verificar su identidad;
  • \n
  • Ingrese el código de verificación recibido en el campo de abajo y envíelo;
  • \n
  • Se mostrará un código QR;
  • \n
  • Abra la aplicación de autenticación en su teléfono y lea el código QR. Se mostrará una secuencia numérica (que es renovada cada 30 segundos);
  • \n
  • Ingrese la secuencia numérica mostrada y confirmela
  • \n
  • Su aplicación de autenticación será configurada, y generará las secuencias numéricas que necesitará para confirmar otras operaciones.
", - "neverCreated.message.mobile": "Activar una aplicación de autenticación, para confirmar las operaciones:
  • Primero descarga e instala una aplicación de autenticación RFC 6238 compatible (como Google Authenticator o Microsoft Authenticator) de tu tienda de aplicaciones de teléfono (Google Play o App Store);
  • Envía un código de verificación a tu correo electrónico / teléfono (a través de SMS), para que podamos verificar tu identidad;
  • Escriba ese código de verificación en el campo de abajo y envío;
  • Se mostrará un botón para abrir la aplicación de autenticación. Haga clic en el botón y añada su cuenta en la aplicación.
  • Se mostrará una secuencia numérica (que es renovada cada 30 segundos);
  • Escriba esa secuencia numérica y confirmela
  • Tu aplicación de autenticación se configurará y generará las secuencias numéricas que necesitarás para confirmar más operaciones.
", + "neverCreated.message.mobile": "Activar una aplicación de autenticación, para confirmar las operaciones:
  • Primero descarga e instala una aplicación de autenticación RFC 6238 compatible (como Google Authenticator o Microsoft Authenticator) de tu tienda de aplicaciones de teléfono (Google Play o App Store);
  • Envía un código de verificación a tu correo electrónico / teléfono (a través de SMS), para que podamos verificar tu identidad;
  • Escriba ese código de verificación en el campo de abajo y envío;
  • Se mostrará un botón para abrir la aplicación de autenticación. Haga clic en el botón y añada su cuenta en la aplicación.
  • Se mostrará una secuencia numérica (que es renovada cada 30 segundos);
  • Escriba esa secuencia numérica y confirmela
  • Su aplicación de autenticación se configurará y generará las secuencias numéricas que necesitará para confirmar otras operaciones.
", "activated": "Su aplicación de autenticación ha sido configurada. Ahora puede utilizarla para confirmar operaciones.", "firstTotp": "Secuencia numérica generada por la aplicación de autenticación", - "scanQr": "Ahora, lea el código QR con la aplicación de autenticación e ingresa la secuencia numérica.", + "scanQr": "Ahora, lea el código QR con la aplicación de autenticación e ingrese la secuencia numérica.", "openApp": "Abra la aplicación de autenticación", "remove": "Eliminar", "remove.confirmation": "¿Está seguro de eliminar la aplicación de autenticación de esta cuenta?", @@ -799,7 +799,7 @@ "occurrenceInterval": "Ejecutar cada", "feesOnAuthorization": "Cargos que serán aplicados al autorizar", "noAccounts": "No posee ninguna cuenta para poder realizar el pago", - "noVisibleAccounts": "No tienes ninguna cuenta visible para realizar el pago, por favor revise la página {0}. En el caso de que la cuenta ya se encuentre marcada como visible, por favor contacte a la administración", + "noVisibleAccounts": "No tiene ninguna cuenta visible para realizar el pago, por favor revise la página {0}. En el caso de que la cuenta ya se encuentre marcada como visible, por favor contacte a la administración", "noExternalPaymentPrincipalTypes": "No hay métodos de identificación de usuario compatibles para realizar el pago", "noTypes": "No hay tipos de transacción posibles", "noTypesSelection": "No hay tipos de transacción posibles desde esta cuenta al usuario seleccionado", @@ -856,8 +856,8 @@ "done.addReceiverToContacts": "Añadir receptor a contactos", "done.userAddedToContacts": "El usuario {contact} fue añadido a los contactos", "orderBy": { - "dueDateDesc": "Fecha de vencimiento (nuevo primero)", - "dueDateAsc": "Fecha de vencimiento (antiguo primero)" + "dueDateDesc": "Fecha de vencimiento (nuevos primero)", + "dueDateAsc": "Fecha de vencimiento (antiguos primero)" }, "status": { "open": "Abierto", @@ -1281,8 +1281,8 @@ "voucher": "Cupón", "beginCreationDate": "Fecha inicial de creación", "endCreationDate": "Fecha final de creación", - "beginExpirationDate": "Fecha inicial de vencimiento", - "endExpirationDate": "Fecha final de vencimiento", + "beginExpirationDate": "Fecha de vencimiento inicial", + "endExpirationDate": "Fecha de vencimiento final", "info": { "title": "Información de cupón", "message.token": "Aquí puedes comprobar el estado de tu cupón. Escribe el código del cupón a continuación.", @@ -1434,7 +1434,7 @@ "fields": "Campos de perfil", "phones": "Teléfonos", "addresses": "Direcciones", - "contactInfos": "Contactos adicionales", + "contactInfos": "Contactos públicos", "confirmation": "Confirmación", "registration": "Registro de usuario", "registration.confirmation": "Confirmación de registro", @@ -1507,7 +1507,7 @@ "contactInfo": "Información de contacto", "contactInfo.add": "Agregar contacto", "contactInfo.remove": "Eliminar información de contacto adicional", - "contactInfo.none": "No se encontró información de contactos adicionales", + "contactInfo.none": "No hay contactos públicos", "contactInfo.atAddress": "En", "profileSaved": "El perfil se ha guardado", "newEmailConfirmed": "Su nuevo correo fue confirmado", @@ -1516,6 +1516,7 @@ "securityQuestion.empty": "Dejar en blanco", "captcha": "Verificación", "contact": "Contacto", + "contactInfo.define": "Definir información de contacto público", "invitedBy": "Invitado por", "invitedByMe": "Invitado por mí", "creationBegin": "Registrado después de", @@ -2713,7 +2714,7 @@ "creationDate": "Fecha de carga", "processingDate": "Fecha de procesado", "archivingDate": "Fecha de archivado", - "archivingDate.value": "Después de {date} este archivo será archivado, lo que significa que toda la información y el detalle de las líneas será eliminado.", + "archivingDate.value": "Después del {date} este archivo será archivado, lo que significa que toda la información y el detalle de las líneas será eliminado.", "sendNotifications": "Enviar notificaciones", "useGroupFromFile": "Usar grupos del archivo", "defaultGroup": "Grupo por defecto", @@ -2735,7 +2736,7 @@ }, "section": { "validation": "Validación de líneas", - "import": "Importando de líneas" + "import": "Importado de líneas" }, "skip": { "label": "Ignorar", @@ -2748,7 +2749,7 @@ "lineNumber": "Número de línea", "information": { "ready": "El archivo está listo para ser importado. Para continuar, seleccione la acción de importar.", - "userSendVouchers": "Puede enviar varios cupones a la vez importando un archivo CSV, usando {0} como separador.
\nEl archivo debe tener 2 columnas: name y email. Si se define usar el monto del archivo, también tiene que especificar la columna amount .
\nEn el campo del mensaje, puede utilizar los mismos nombres de cabecera que las variables rodeados de llaves: {name}, {email} y {amount}." + "userSendVouchers": "Puede enviar varios cupones a la vez importando un archivo CSV, usando {0} como separador.
\nEl archivo debe tener 2 columnas: name y email. Si define usar el monto del archivo, también tiene que especificar la columna amount .
\nEn el campo del mensaje, puede utilizar los mismos nombres de cabecera que las variables rodeados de llaves: {name}, {email} y {amount}." } }, "consent": { diff --git a/src/i18n/i18n.fr.json b/src/i18n/i18n.fr.json index e6bf94481..fd1db494c 100644 --- a/src/i18n/i18n.fr.json +++ b/src/i18n/i18n.fr.json @@ -1075,7 +1075,6 @@ "fields": "Champs de profil", "phones": "Téléphones", "addresses": "Adresses", - "contactInfos": "Contacts supplémentaires", "registration": "Enregistrement de l'utilisateur", "registration.confirmation": "Confirmation d'enregistrement", "registration.done": "Inscription réussie", @@ -1126,7 +1125,6 @@ "phone.none": "Il n'y a actuellement aucun téléphone", "contactInfo.add": "Ajouter le contact", "contactInfo.remove": "Supprimer le contact", - "contactInfo.none": "Il n'y a actuellement aucun contact supplémentaire", "profileSaved": "Le profil a été enregistré", "newEmailConfirmed": "Votre nouvelle adresse e-mail a été confirmée avec succès", "passwordConfirmation": "Confirmation {type}", diff --git a/src/i18n/i18n.it.json b/src/i18n/i18n.it.json index 97f7472f5..3c627c8e1 100644 --- a/src/i18n/i18n.it.json +++ b/src/i18n/i18n.it.json @@ -664,7 +664,6 @@ "fields": "Campi profilo", "phones": "Telefoni", "addresses": "Indirizzi", - "contactInfos": "Contatti aggiuntivi", "confirmation": "Conferma", "registration": "Registrazione utente", "registration.confirmation": "Conferma di registrazione", @@ -722,7 +721,6 @@ "contactInfo": "Informazioni di contatto", "contactInfo.add": "Aggiungi contatto", "contactInfo.remove": "Rimuovi Contatto", - "contactInfo.none": "Al momento non ci sono contatti aggiuntivi", "contactInfo.atAddress": "In", "profileSaved": "Il profilo è stato salvato", "newEmailConfirmed": "Il tuo nuovo indirizzo e-mail è stato confermato con successo", diff --git a/src/i18n/i18n.json b/src/i18n/i18n.json index ffe34f5b6..8a45593d5 100644 --- a/src/i18n/i18n.json +++ b/src/i18n/i18n.json @@ -1434,7 +1434,7 @@ "fields": "Profile fields", "phones": "Phones", "addresses": "Addresses", - "contactInfos": "Additional contacts", + "contactInfos": "Public contacts", "confirmation": "Confirmation", "registration": "User registration", "registration.confirmation": "Registration confirmation", @@ -1507,7 +1507,7 @@ "contactInfo": "Contact information", "contactInfo.add": "Add contact", "contactInfo.remove": "Remove contact", - "contactInfo.none": "There are currently no additional contacts", + "contactInfo.none": "There are currently no public contacts", "contactInfo.atAddress": "At", "profileSaved": "The profile was saved", "newEmailConfirmed": "Your new e-mail address was successfully confirmed", @@ -1516,6 +1516,7 @@ "securityQuestion.empty": "Leave blank", "captcha": "Verification", "contact": "Contact", + "contactInfo.define": "Define public contact information", "invitedBy": "Invited by", "invitedByMe": "Invited by me", "creationBegin": "Registered after", diff --git a/src/i18n/i18n.nl.json b/src/i18n/i18n.nl.json index 14e866313..0ff9ab548 100644 --- a/src/i18n/i18n.nl.json +++ b/src/i18n/i18n.nl.json @@ -71,6 +71,7 @@ "addNew": "Nieuw", "yes": "Ja", "no": "Nee", + "errorMessage": "Foutmelding", "notSet": "Niet ingesteld", "share": "Delen", "tiledView": "Verticale weergave", @@ -86,12 +87,14 @@ "currency": "Valuta", "images": "Afbeeldingen", "internalName": "Interne naam", + "progress": "Voortgang", "usersOfBroker": "Gebruikers van de makelaar", "administration": "Administratie", "maskHelp": "Deze maskers kunnen beperken welke tekens getypt kunnen worden, de grootte van de maskers beperken en de transformatie van de zaken uitvoeren door de volgende constructeurs te gebruiken.

  • #, 0 of 9 - Een nummer.
  • een of A - Een brief.
  • ? of _ - Elk teken.
  • l of L - een kleine letter.
  • u of U - Een hoofdletter.
  • c of C - Een hoofdletter.
  • \\\\, \\#, \\0, . . - Deze letterlijke karakters. Vergeet niet dat '\\\\' bij het schrijven van een tekenreeks een enkele backslash betekent. Om een backslash op het masker te gebruiken, heb je 4 op de string nodig.
", "sendMedium": { "email": "E-mail", - "sms": "SMS" + "sms": "SMS", + "app": "Mobiele telefoon" }, "sendCode": "Stuur code", "sentCodeTo": "De verificatiecode is verzonden naar {to}", @@ -267,6 +270,7 @@ "banking.externalPayments": "Externe betalingen", "banking.externalPaymentsOverview": "Overzicht van externe betalingen", "banking.pos": "Betaling ontvangen", + "banking.tickets": "Tickets", "banking.receiveQrPayment": "Genereer QR-code ", "banking.scheduledPayments": "Geagendeerde betalingen", "banking.scheduledPaymentsOverview": "Overzicht van geagendeerde betalingen", @@ -280,11 +284,14 @@ "banking.userBalancesOverview": "Overzicht gebruiker saldi", "banking.accountBalanceLimits": "Rekeningsaldo limieten", "banking.accountPaymentLimits": "Rekening betalingslimieten", + "banking.importedPayments": "Importeer betalingen", + "banking.userImportedPayments": "Batch betalingen", "operators": "Operators", "operators.operators": "Operators", "operators.register": "Registreer operator", "operators.groups": "Operator groepen", "brokering": "Makelaars", + "brokering.ads": "Advertenties", "brokering.users": "Gebruikers", "brokering.register": "Registreer gebruiker", "marketplace": "Marktplaats", @@ -313,6 +320,7 @@ "personal.contacts": "Contacten", "personal.password": "Wachtwoord", "personal.passwords": "Wachtwoorden", + "personal.totp": "Authenticator app", "personal.identityProviders": "Identity providers", "personal.agreements": "Overeenkomsten", "personal.messages": "Berichten", @@ -320,6 +328,7 @@ "personal.settings": "Instellingen", "personal.references": "Referenties", "personal.feedbacks": "Commentaren", + "personal.quickAccessSettings": "Snelle toegang instellingen", "content": "Informatie" }, "login": { @@ -346,12 +355,48 @@ "reset": "Inloggen mislukt. Uw wachtwoord is gereset. Neem contact op met de administratie.", "indefinitelyBlocked": "Inloggen mislukt. Uw wachtwoord is uitgeschakeld wegens overschrijding van het maximum aantal pogingen. Neem contact op met de administratie.", "temporarilyBlocked": "Uw wachtwoord is tijdelijk geblokkeerd wegens overschrijding van het maximum aantal pogingen" + }, + "confirmation": { + "missing": { + "device": "Inloggen mislukt. U dient uw login te bevestigen met een beveiligd mobiel apparaat, maar dat heeft u niet ingesteld. Installeer eerst de mobiele app en activeer een beveiligd apparaat.", + "password": "Inloggen mislukt. U dient de login te bevestigen met uw {0} , maar dat is niet actief. Neem contact op met de administratie.", + "totp": "Inloggen mislukt. U dient de login te bevestigen met uw authenticator app, maar die heeft u niet ingesteld. Neem contact op met de administratie." + }, + "notActive": { + "multiple": "Om je aanmelding te voltooien, heb je een {password} of je authenticatie app nodig, maar u heeft geen van beide actief. Activeer één van hen en ga verder." + } } } }, "password": { "confirm.mode": "Bevestigen met", + "confirm.mode.device": "Mobiele app", + "confirm.mode.totp": "Authenticator app", + "confirmation": { + "device": "Scan deze QR-code in met uw mobiele telefoon, om te bevestigen.", + "password": "Om te bevestigen, voer uw {passwordType} in.", + "totp": "Geef om te bevestigen een code op die is gegenereerd door je authenticator app.", + "notPossible": "Door een configuratiefout is het niet mogelijk om deze bewerking te bevestigen. Neem contact op met de administratie.", + "notActive": { + "multiple": "Om te bevestigen heeft u een van de volgende gegevens nodig, maar die heeft u niet: {credentials}.", + "device": "Om te bevestigen moet u de mobiele app hebben geïnstalleerd en geactiveerd als een vertrouwd apparaat. Download de app en ga verder met de activatie.", + "password": "Om te bevestigen heeft u uw {passwordType}nodig, maar u heeft dit niet actief. Bezoek uw wachtwoord instellingen pagina of neem contact op met de administratie.", + "totp": "Om te bevestigen moet u een authenticatie app configureren. Ga naar uw wachtwoordinstellingen pagina en activeer deze." + } + }, "confirm.password.placeholder": "Typ hier: {password}", + "otp": { + "verificationCode": "Verificatiecode", + "sendMedium": "Stuur verificatiecode naar", + "sendToEmail": "Stuur naar e-mail {email}", + "sendToPhone": "Stuur naar telefoon {phone}", + "send": "Stuur verificatiecode", + "countdownLabel": "* Je kunt de e-mail / sms opnieuw verzenden over {seconds} seconden.", + "receiveBy.sent": "{medium} verzonden", + "sent": "Het wachtwoord is verstuurd naar {dest}", + "sentToEmail": "E-mail verzonden naar {mail}", + "sentToPhone": "SMS-bericht verzonden naar {phone}" + }, "oldPassword": "Oud wachtwoord", "newPassword": "Nieuw wachtwoord", "passwordConfirmation": "Bevestiging van het wachtwoord", @@ -360,7 +405,9 @@ "temporarilyBlocked": "Uw wachtwoord wordt tijdelijk geblokkeerd door overschrijding van het maximaal aantal pogingen. Probeer het later opnieuw.", "expired": "Uw wachtwoord is verlopen. Gelieve contact op te nemen met de administratie.", "invalid": "Wachtwoord type: {type} is ongeldig", - "otpInvalidated": "Het eenmalige wachtwoord is niet meer geldig. Vraag een nieuwe aan." + "otpInvalidated": "Het eenmalige wachtwoord is niet meer geldig. Vraag een nieuwe aan.", + "invalidTotp": "De ingegeven code is ongeldig. Voer een geldige code in vanuit uw authenticator app.", + "blockedByTotp": "U bent geblokkeerd door overschrijding van de pogingen van de authenticator app code. Neem contact op met de administratie." }, "title": { "change.self": "Wijzig wachtwoord", @@ -371,7 +418,8 @@ "manage.single.user": "Beheer wachtwoord gebruiker", "manage.multiple.user": "Beheer wachtwoorden gebruiker", "securityAnswer": "Stel uw beveiligingsantwoord in", - "history": "Wachtwoorden geschiedenis" + "history": "Wachtwoorden geschiedenis", + "totp": "Authenticator app" }, "mobileTitle": { "change.self": "Wachtwoord wijzigen", @@ -381,7 +429,8 @@ "manage.single.user": "Wachtwoord gebruiker", "manage.multiple.user": "Wachtwoorden gebruiker", "securityAnswer": "Antwoord op beveiligingsvraag", - "history": "Wachtwoorden geschiedenis" + "history": "Wachtwoorden geschiedenis", + "totp": "Authenticator app" }, "forgotten": { "preface": "Hier kunt u uw gebruiker herstellen en uw wachtwoord wijzigen door een herstelcode aan te vragen. U kunt één van de volgende identificatiemethoden in het onderstaande gebruikersveld gebruiken:", @@ -446,6 +495,29 @@ "allowGeneration": "Genereren toestaan", "allowGeneration.confirm": "Weet u zeker dat u de gebruiker wilt toestaan hun {type} te genereren?", "allowGeneration.done": "De gebruiker kan nu hun {type} genereren" + }, + "hints": { + "ok": "{text} ✓", + "fail": "{text} ✗", + "preface": "Het wachtwoord moet bevatten:", + "fixedLength": "Precies {length} tekens", + "minLength": "Ten minste {count} tekens", + "lowerCaseLetters": "Minstens 1 kleine letter", + "upperCaseLetters": "Minstens 1 hoofdletter", + "numbers": "Minstens 1 cijfer", + "specialCharacters": "Minstens 1 speciaal teken" + }, + "totp": { + "active": "De authenticator app is actief sinds {date}", + "neverCreated.managers": "De authenticator app is niet geconfigureerd voor deze gebruiker.", + "neverCreated.message": "Schakel een authenticatie-app in zodat u de bewerkingen kunt bevestigen:
  • Download en installeer eerst een RFC 6238 compatibele authenticator app (zoals Google Authenticator of Microsoft Authenticator) uit uw App Store (Google Play of App Store);
  • Stuur een verificatiecode naar je e-mail / telefoon (via SMS), zodat we uw identiteit kunnen verifiëren;
  • Typ de verificatiecode in het veld hieronder en druk op 'Verzenden';
  • Een QR-code zal worden weergegeven;
  • Open de authenticator app op uw telefoon en scan de QR-code. Er wordt een numerieke reeks weergegeven (en elke 30 seconden vernieuwd);
  • Type die numerieke reeks in en bevestig;
  • Uw authenticator app wordt geconfigureerd en zal de numerieke sequenties genereren die u in het vervolg nodig hebt om verdere handelingen te bevestigen.
", + "neverCreated.message.mobile": "Schakel een authenticator app in zodat u de bewerkingen kunt bevestigen:
  • Download en installeer eerst een RFC 6238 compatibele authenticator app (zoals Google Authenticator of Microsoft Authenticator) uit uw App Store (Google Play of App Store);
  • Stuur een verificatiecode naar je e-mail / telefoon (via SMS), zodat we uw identiteit kunnen verifiëren;
  • Typ de verificatiecode in het veld hieronder en druk op 'Verzenden';
  • Een knop om de authenticator app te openen wordt weergegeven. Klik erop en voeg je account toe aan de app.
  • Er wordt een numerieke reeks weergegeven (en elke 30 seconden vernieuwd);
  • Type die numerieke reeks in en bevestig;
  • Uw authenticator app wordt geconfigureerd en zal de numerieke sequenties genereren die u in het vervolg nodig hebt om verdere handelingen te bevestigen.
", + "activated": "Je authenticator app is geconfigureerd. Je kunt deze nu gebruiken om de bewerking te bevestigen.", + "firstTotp": "Numerieke reeks gegenereerd door de authenticator app", + "scanQr": "Scan nu de QR-code met de authenticator app en typ de numerieke reeks in.", + "openApp": "Open de authenticator app", + "remove": "Verwijderen", + "remove.confirmation": "Weet u zeker dat u de authenticator app voor dit account wilt verwijderen?" } }, "pendingAgreements": { @@ -473,13 +545,19 @@ "action": { "account": "Rekening", "accounts": "Rekeningen", + "balancesOverview": "Saldi overzicht", + "externalPayments": "Externe betalingen", "payUser": "Betaal", "paySystem": "Betaal aan systeemrekening", "pos": "Betaling ontvangen", "receiveQrPayment": "Ontvang QR-code betaling", "contacts": "Contacten", "directory": "Bedrijven", + "brokeredUsers": "Geregistreerde gebruikers", + "registerUser": "Registreer gebruiker", "advertisements": "Marktplaats", + "adInterests": "Advertentie interesses", + "purchases": "Mijn aankopen", "editProfile": "Profiel bewerken", "password": "Wachtwoord", "passwords": "Wachtwoorden", @@ -497,7 +575,19 @@ "paymentRequests": "Betalingsverzoeken", "settings": "Instellingen", "scheduledPayments": "Geautoriseerde betalingen", - "payExternalUser": "Betaling aan externe gebruiker" + "payExternalUser": "Betaling aan externe gebruiker", + "myAds": "Mijn advertenties", + "createAd": "Plaats advertentie", + "myWebshop": "Mijn webshop", + "sales": "Mijn verkopen", + "createWebshopAd": "Plaats webshop advertentie", + "documents": "Documenten", + "inviteUser": "Gebruiker uitnodigen", + "messages": "Berichten", + "sendMessage": "Verstuur bericht", + "notifications": "Meldingen", + "references": "Mijn referenties", + "feedbacks": "Mijn feedback" }, "accounts": "Rekeningen", "accountStatus": "Rekening status", @@ -511,6 +601,7 @@ "pending": "Uw {type} is in afwachting van genereren.", "neverCreated": "Uw {type} moet worden ingesteld.", "securityAnswer": "U moet de beveiligingsvraag instellen, die vereist is voor het geval u uw wachtwoord moet resetten.", + "totp": "U moet een authenticator app configureren om de bewerking te bevestigen.", "proceed": "Klik hier om verder te gaan" } }, @@ -694,6 +785,7 @@ "installments": "Termijnbetalingen", "installmentNumber": "Nummer", "installmentNumberOfTotal": "{number} van {total}", + "occurrences": "Gebeurtenissen", "occurrenceInterval": "Verwerk alle", "feesOnAuthorization": "Heffingen die toegepast moeten worden wanneer geautoriseerd", "noAccounts": "U heeft geen rekeningen om de betaling uit te voeren", @@ -845,6 +937,9 @@ "boughtVouchers": "Gekochte waardebonnen", "editRecurringPayment": "Bewerk periodieke betaling" }, + "receiveQrPayment.generateQrCode": "QR code genereren", + "receiveQrPayment.generateNewQrCode": "Genereer nieuwe QR code", + "receiveQrPayment.pendingConfirmation": "Wachten op bevestiging", "ticketShareTitle": "Uitnodiging om een betaling uit te voeren", "ticketShareText": "{user} heeft u uitgenodigd om {amount} te betalen", "ticketShareUrl": "URL om te delen", @@ -923,9 +1018,15 @@ "firstInstallmentIsImmediate": "De eerste termijnbetaling zal direct plaatsvinden", "voucher.redeemed": "Ingewisselde waardebon", "voucher.toppedUp": "Opgewaardeerde waardebon", + "posConfirmation": { + "device": "Om te kunnen bevestigen, moet de betaler deze QR-code scannen met de mobiele telefoon.", + "password": "Om te bevestigen moet de betaler zijn {passwordType} opgeven.", + "totp": "Geef om te bevestigen een code op die is gegenereerd door je authenticator app." + }, "error": { "minTime": "Een minimale periode moet worden afgewacht om een betaling van dit type te verwerken.", "balance": "Onvoldoende saldo voor deze bewerking", + "balance.voucher": "Onvoldoende saldo voor deze bewerking", "upperLimit": "U kan niet uitvoeren van deze betaling, omdat de bovenste balans grens van de bestemming account is overschreden", "daily.amount": "De maximale dagelijkse hoeveelheid {amount} werd overschreden", "daily.count": "Het maximaal toegestane aantal betalingen per dag is {count}", @@ -970,8 +1071,11 @@ "redeemer": "Plaats inwisseling", "date": "Inwisseldatum", "amount": "Bedrag inwisselen", + "amountAtCreation": "Bedrag (bij aanmaken)", + "amountToRedeem": "Bedrag om te verzilveren", "by": "Inwisselen uitgevoerd door", - "payment": "Inwisseling betaling" + "payment": "Inwisseling betaling", + "voucherBalance": "Waardebon saldo" }, "topUp": { "confirm": "De details van de waardebon aanvullen worden hieronder gegeven. Controleer het en bevestig deze actie.", @@ -1289,7 +1393,6 @@ "fields": "Aangepaste profiel velden", "phones": "Telefoons", "addresses": "Adressen", - "contactInfos": "Aanvullende contacten", "confirmation": "Bevestiging", "registration": "Gebruikersregistratie", "registration.confirmation": "Bevestiging van inschrijving", @@ -1356,7 +1459,6 @@ "contactInfo": "Contactinformatie", "contactInfo.add": "Contact toevoegen", "contactInfo.remove": "Contact verwijderen", - "contactInfo.none": "Er zijn momenteel geen extra contacten", "contactInfo.atAddress": "Op", "profileSaved": "Het profiel is opgeslagen", "newEmailConfirmed": "Uw nieuwe e-mailadres is succesvol bevestigd", @@ -1392,6 +1494,7 @@ "addContact.done": "{user} werd toegevoegd aan uw lijst met contactpersonen", "removeContact": "Verwijderen uit contacten", "removeContact.done": "{user} is verwijderd uit uw lijst met contactpersonen", + "validateRegistration": "Markeren als gevalideerd", "pay": "Volgende", "paySystemToUser": "Betaling van systeem naar gebruiker", "payAsUserToSystem": "Betaling van gebruiker naar systeem", diff --git a/src/i18n/i18n.pt_BR.json b/src/i18n/i18n.pt_BR.json index 5a4e86f14..cba35baa5 100644 --- a/src/i18n/i18n.pt_BR.json +++ b/src/i18n/i18n.pt_BR.json @@ -1434,7 +1434,7 @@ "fields": "Campos do perfil", "phones": "Telefones", "addresses": "Endereços", - "contactInfos": "Contatos adicionais", + "contactInfos": "Contatos públicos", "confirmation": "Confirmação", "registration": "Cadastro de usuário", "registration.confirmation": "Confirmação de Cadastro", @@ -1507,7 +1507,7 @@ "contactInfo": "Informações de contato", "contactInfo.add": "Adicionar contato", "contactInfo.remove": "Remover contato", - "contactInfo.none": "Atualmente não existem contatos adicionais", + "contactInfo.none": "Atualmente não existem contatos públicos", "contactInfo.atAddress": "Em", "profileSaved": "O perfil foi salvo", "newEmailConfirmed": "Seu novo endereço de e-mail foi confirmado com sucesso", @@ -1516,6 +1516,7 @@ "securityQuestion.empty": "Deixar em branco", "captcha": "Verificação", "contact": "Contato", + "contactInfo.define": "Definir informações de contato público", "invitedBy": "Convidado por", "invitedByMe": "Convidado por mim", "creationBegin": "Registro após", diff --git a/src/i18n/i18n.ru.json b/src/i18n/i18n.ru.json index 9e26dfeeb..84cb73f45 100644 --- a/src/i18n/i18n.ru.json +++ b/src/i18n/i18n.ru.json @@ -1 +1,391 @@ -{} \ No newline at end of file +{ + "general": { + "by": "От", + "changedBy": "Изменил", + "type": "Тип", + "category": "Категория", + "period": "Период", + "period.to": "кому", + "now": "Сейчас", + "performedBy": "Исполнитель", + "status": "Статус", + "notApplied": "Не применяется", + "user": "Пользователь", + "keywords": "Поиск", + "orderBy": "Сорт. по", + "orderBy.relevance": "Релевантность", + "print": "Печать", + "printed": "Распечатано", + "showFilters": "Показать фильтр", + "hideFilters": "Скрыть фильтр", + "showMoreFilters": "Фильтр", + "showLessFilters": "Фильтр", + "previous": "Назад", + "next": "Далее", + "view": "Просмотр", + "submit": "Принять", + "save": "Сохранить", + "share": "Поделиться", + "tiledView": "Вид плитки", + "listView": "Вид списком", + "noOptionSelected": "Опции не выбраны", + "removeItemConfirm": "Вы уверены, что хотите удалить этот элемент?", + "removeAllItemsConfirm": "Вы уверены, что хотите удалить все элементы?", + "internalName": "Внутреннее имя", + "maskHelp": "Эти маски могут ограничивать ввод символов, ограничивать размер и применять преобразования регистра, используя следующие конструкторы.

  • #, 0 или 9 - число.
  • a или A - буква.
  • ? или _ - любой символ.
  • l или L - Строчная буква.
  • u или U - заглавная буква.
  • c или C - заглавная буква.
  • \\\\, \\#, \\0, ... - Эти буквальные символы. Помните, что '\\\\' означает единственную обратную косую черту. Чтобы использовать обратную косую черту в маске, вам нужно 4 в строке.
", + "sentCodeTo": "Код подтверждения был отправлен {to}", + "sessionExpired": { + "title": "Сессия истекла" + } + }, + "error": { + "invalidRequest": "Невозможно подключиться к серверу.
Пожалуйста, убедитесь, что вы подключены к Интернету. Если подключение к Интернету работает должным образом, и проблема не исчезнет, ​​обратитесь к администрации.", + "uploadSizeExceeded": "Загруженный файл превышает максимально допустимый размер {size}", + "validation": "Не удалось обработать действие из-за ошибок проверки.", + "staleEntity": "Эти данные не могут быть сохранены, так как они были изменены кем-то другим.
Пожалуйста, снова загрузите страницу и перезапустите операцию.", + "notFound": { + "type": "Запрошенные данные не найдены\\: {type}", + "typeKey": "Запрошенные данные не найдены\\: {type} с ключом {key}" + }, + "login": "Указанный логин или пароль неверны.\nПожалуйста, попробуйте еще раз.", + "remoteAddressBlocked": "Ваш IP-адрес заблокирован за превышение количества попыток входа в систему", + "loggedOut": "Вы были отключены.\nПожалуйста, войдите снова и повторите операцию.", + "field": { + "invalid": "Это поле недействительно", + "required": "Это поле обязательно к заполнению" + } + }, + "menu": { + "register": "Регистрация", + "personal": "Личное", + "personal.viewProfile": "Мой профиль", + "personal.editProfile": "Изменить профиль", + "personal.contacts": "Контакты", + "personal.password": "Пароль", + "personal.messages": "Сообщения", + "personal.notifications": "Уведомления", + "personal.settings": "Настройки", + "personal.feedbacks": "Отзывы" + }, + "login": { + "title": "Вход", + "mobileTitle": "Вход", + "title.confirmation": "Подтверждение входа", + "mobileTitle.confirmation": "Подтверждение входа", + "message": "Вы можете войти под своим логином и паролем", + "principal": "Логин", + "password": "Пароль", + "register": "Нет аккаунта?\nЗарегистрируйтесь здесь.", + "error": { + "user": { + "pending": "Не удалось войти. Ваша учетная запись ожидает активации. Вы должны были получить письмо с инструкциями для активации учетной записи. Если нет, пожалуйста, свяжитесь с администрацией." + }, + "confirmation": { + "missing": { + "device": "Не удалось войти в систему. Вам необходимо подтвердить вход с помощью доверенного мобильного устройства, но оно не существует. Сначала установите мобильное приложение и активируйте его как доверенное устройство.", + "password": "Не удалось войти. Вам необходимо подтвердить вход с {0}, но такой метод не активирован. Пожалуйста, свяжитесь с администрацией.", + "totp": "Не удалось выполнить вход. Вам необходимо подтвердить свой логин с помощью приложения-аутентификатора, но оно неактивно. Пожалуйста, свяжитесь с администрацией.", + "multiple": "Не удалось войти. Вы должны подтвердить свой вход одним из способов, которых у вас нет: {credentials}. Пожалуйста, свяжитесь с администрацией." + }, + "notActive": { + "multiple": "Для завершения авторизации вам необходимо {password} или приложение-аутентификатор, но они не активны. Пожалуйста, выполните активацию перед продолжением." + } + } + } + }, + "password": { + "confirmation": { + "notActive": { + "device": "Для подтверждения вам необходимо установить и активировать мобильное приложение в качестве доверенного устройства. Пожалуйста, скачайте приложение и приступайте к его активации.", + "password": "Для подтверждения вам нужен ваш {passwordType}, но он не активен. Пожалуйста, посетите страницу настройки ваших паролей или свяжитесь с администрацией." + } + }, + "passwordConfirmation": "Подтверждение пароля", + "forgotten": { + "preface": "Здесь вы можете восстановить пользователя и изменить пароль, запросив код восстановления. Вы можете использовать один из следующих методов идентификации в поле пользователя ниже:", + "invalidUser": "Данный идентификатор пользователя либо недействителен, либо принадлежит пользователю, который не может использовать функцию \"Забыли пароль\". Пожалуйста, свяжитесь с администрацией." + }, + "expired": { + "message.generated": "Чтобы продолжить, необходимо сгенерировать новое значение.
Это значение будет отображено только один раз, поэтому либо запомните его, либо запишите.", + "generatedValue": "Значением для {type} является {value}.
Это значение больше не будет отображаться, поэтому убедитесь, что вы либо запомнили его, либо запишите." + }, + "statusSince": "От {date}", + "totp": { + "neverCreated.message": "Включите приложение-аутентификатор, чтобы вы могли подтверждать операции:
    \n
  • Сначала загрузите и установите приложение-аутентификатор, совместимое с RFC 6238 (например, Google Authenticator или Microsoft Authenticator), из магазина приложений вашего телефона (Google Play или App Store);
  • \n
  • Отправьте проверочный код на свой электронный адрес / телефон (через SMS), чтобы мы могли подтвердить вашу личность;
  • \n
  • Введите этот проверочный код в поле ниже и отправьте;
  • \n
  • Будет отображен QR-код;
  • \n
  • Откройте приложение authenticator в своем телефоне и отсканируйте QR-код. Будет отображена числовая последовательность (она будет обновляться каждые 30 секунд);
  • \n
  • Введите эту числовую последовательность и подтвердите;
  • \n
  • Ваше приложение-аутентификатор будет настроено. Это приложение генерирует числовые последовательности, которые понадобятся вам для подтверждения дальнейших операций.
", + "neverCreated.message.mobile": "Включите приложение-аутентификатор, чтобы вы могли подтверждать операции:
    \n
  • Сначала загрузите и установите приложение-аутентификатор, совместимое с RFC 6238 (например, Google Authenticator или Microsoft Authenticator), из магазина приложений вашего телефона (Google Play или App Store);
  • \n
  • Отправьте проверочный код на свой электронный адрес / телефон (через SMS), чтобы мы могли подтвердить вашу личность;
  • \n
  • Введите этот проверочный код в поле ниже и отправьте;
  • \n
  • Появится кнопка для открытия приложения-аутентификатора. Нажмите на него и добавьте свою учетную запись в приложении.
  • \n
  • Откройте приложение authenticator в своем телефоне и отсканируйте QR-код. Будет отображена числовая последовательность (она будет обновляться каждые 30 секунд);
  • \n
  • Введите эту числовую последовательность и подтвердите;
  • \n
  • Ваше приложение-аутентификатор будет настроено. Это приложение генерирует числовые последовательности, которые понадобятся вам для подтверждения дальнейших операций.
" + } + }, + "pendingAgreements": { + "preface": "Настоящим заявляю, что прочитал и согласен со следующим\\:" + }, + "securityQuestion": { + "message": "Секретный вопрос необходим на случай, если вам потребуется сбросить свой пароль. После установки, если вам нужно его изменить, обратитесь к администрации." + }, + "dashboard": { + "quickAccess": "Быстрый доступ", + "lastPayments": "Последние платежи", + "noPayments": "Нет платежей" + }, + "account": { + "transferFilter": "Фильтр", + "minAmount": "От", + "maxAmount": "До", + "direction": "Направление", + "incoming": "Входящие", + "outgoing": "Исходящие", + "balance": "Баланс", + "balanceOn": "Баланс на {date}", + "totalIncome": "Всего получено", + "totalOutflow": "Итого", + "netInflow": "Поступления", + "visibilitySettings": { + "information": "На этой странице вы можете определить, какие счета вы хотите видеть. Когда счет скрыт, он не будет отображаться в сводке счетов. Вы не сможете совершать платежи со счета, если он скрыт, но скрытые счета всегда могут получать платежи." + }, + "balanceLimits": { + "confirm": "Вы должны подтвердить, чтобы применить новые лимиты баланса", + "saved": "Лимиты баланса сохранены" + }, + "paymentLimits": { + "saved": "Лимиты платежей сохранены" + } + }, + "transaction": { + "type": "Тип платежа", + "noVisibleAccounts": "У вас нет видимых у счетов для осуществления платежа, пожалуйста, проверьте страницу {0}. В случае, если счет уже был отмечен как видимый, пожалуйста, свяжитесь с администрацией.", + "transferStatus": "Статус", + "posConfirmation": { + "notActive": { + "device": "Для подтверждения плательщику необходимо установить и активировать мобильное приложение в качестве доверенного устройства. Ему нужно загрузить приложение и приступить к его активации.", + "password": "Для подтверждения плательщику необходим {passwordType}, но он не активен. Ему нужно авторизоваться в системе и посетить страницу настройки пароля или связаться с администрацией.", + "totp": "Для подтверждения плательщику необходимо настроить приложение-аутентификатор. Ему нужно авторизоваться в системе и посетить страницу настроек пароля, чтобы активировать его." + } + } + }, + "voucher": { + "error": { + "totalOpenAmount": "Общая сумма всех открытых ваучеров превысит {maxAmount}, как определено в этом типе ваучера. Текущая открытая сумма равна {currentAmount}.", + "buy": { + "openAmount": "Текущий пользователь превышает максимально допустимую открытую сумму {MaxAmount} для ваучеров этого типа. Текущая открытая сумма равна {currentAmount}." + } + } + }, + "field": { + "privacy": { + "private.tooltip": "Это поле является частным.\nНажмите, чтобы разрешить другим просматривать его.", + "public.tooltip": "Это поле видно другим.\nНажмите, чтобы сделать его приватным." + }, + "image": { + "upload": "Загрузить изображение", + "manage": "Изменить/Удалить", + "remove": "Удалить это изображение", + "manageMessage": "Вы можете перетаскивать изображения, чтобы изменить их порядок", + "manageAfterConfirm": "После подтверждения обязательно нажмите кнопку «Сохранить», чтобы изменения вступили в силу." + }, + "file": { + "manage": "Изменить порядок или удалить файлы", + "remove": "Удалить этот файл", + "manage.message": "Вы можете перетаскивать файлы, чтобы изменить их порядок" + }, + "html": { + "undo": "Отменить", + "redo": "Повторить", + "size": "Размер", + "size.1": "Крошечный", + "size.2": "Маленький", + "size.3": "Средний", + "size.4": "Средний-крупный", + "size.5": "Большой", + "size.6": "Огромный", + "size.7": "Максимум", + "italic": "Курсив", + "underline": "Подчеркнуть", + "strikethrough": "Зачеркнутый", + "removeFormat": "Удалить формат", + "list.bulleted": "Маркированный список", + "list.numbered": "Нумерованный список", + "indent.less": "Уменьшить отступ", + "indent.more": "Увеличить отступ", + "source": "Отредактируйте исходный код HTML", + "link": { + "tooltip": "Вставить гиперссылку" + }, + "unlink": "Удалить гиперссылку", + "image": { + "tooltip": "Вставить изображение", + "title.insert": "Выберите изображение для вставки", + "source.url": "Вставьте картинку из интернета" + } + } + }, + "user": { + "username": "Логин", + "securityQuestion.message": "Если вы случайно забыли свой пароль, вам нужно будет правильно ответить на секретный вопрос, чтобы сбросить пароль.
Это можно сделать позже, но имейте в виду, что восстановление пароля работать не будет.", + "registration": { + "inactive.public": "Ваша учетная запись была успешно создана.
Однако вам нужно быть активированным администрацией.
Вы будете уведомлены, когда ваша учетная запись станет активной.", + "pending.public": "Ваш запрос на регистрацию был отправлен, и находится на проверке.
В ближайшее время вы должны получить электронное письмо с инструкциями о том, как активировать вашу учетную запись.
Если вы не получили электронное письмо, обязательно проверьте свою папку со спамом / нежелательной почтой." + } + }, + "operatorGroup": { + "performPayments": "Выполнять платежи", + "paymentNotifications": "Уведомления об оплате", + "paymentNotifications.above": "Уведомлять только о платежах выше", + "paymentNotifications.below": "Уведомлять только о платежах ниже", + "receivePayments": "Получать платежи", + "requestPayments": "Запрос платежей", + "restrictPaymentsToUsers": "Ограничить платежи", + "saved": "Группа операторов сохранена" + }, + "agreements": { + "optional.saved": "Выбранные соглашения сохранены" + }, + "address": { + "address": "Адрес", + "buildingNumber": "Номер здания", + "city": "Город", + "complement": "Дополнение", + "country": "Страна", + "neighborhood": "Район", + "street": "Улица", + "zip": "Почтовый индекс" + }, + "ad": { + "adjustedQuantity": { + "max": "- запрошенная величина не может быть доставлена, т.к. достигнуто максимальное количество элементов, которые разрешается иметь в корзине. Количество оставшегося товара автоматически уменьшено.
", + "min": "- запрошенное количество не может быть доставлена, т.к. достигнуто минимальное количество единиц, которые можно иметь в корзине. Количество оставшегося товара автоматически увеличено.
", + "stock": "- запрошенная величина не может быть доставлена, т.к. товара почти не осталось на складе. Количество товара автоматически уменьшилось.
" + }, + "adInterestSaved": "Интерес к рекламе сохранен", + "adSaved": "Объявление было сохранено", + "cartEmpty": "Эта корзина пуста. \nИщите товары и услуги, чтобы купить", + "choosePaymentType": "Выберите тип оплаты", + "error": { + "noAvailableAccounts": "Объявление не может быть сохранено, потому что стоимость не может быть установлена, из-за отсутствия доступных счетов. Пожалуйста, свяжитесь с администрацией" + }, + "deliveryPriceToBeConfirmed": "Цена доставки пока еще не известна, и общая сумма не является окончательной. После того как продавец установит цену доставки, вы сможете отклонить или подтвердить заказ.", + "deliveryMethodSaved": "Способ доставки сохранен.", + "pickupAddress": "Пункт выдачи", + "name": "Заголовок", + "orderSavedAsDraft": "Заказ сохранен как черновик", + "publicationPeriod": "Период публикации", + "promotionalPeriod": "Рекламный период", + "prefix": "Префикс", + "saveAndInsertNew": "Сохранить и вставить новый", + "saveDraft": "Сохранить черновик", + "setPromotionalPeriod": "Установить рекламный период", + "submitToBuyerConfirmation": "Вы уверены, передать этот заказ покупателю? После этого шага, дальнейшие изменения будут запрещены, необходимо будет ждать подтверждение покупателя.", + "lowStockNotification": "Уведомление о низком запасе", + "reserveAmount": "Эта сумма будет зарезервирована при подтверждении заказа и будет списана с вашего счета, как только заказ будет принят продавцом.", + "webshopSettingsSaved": "Настройки интернет-магазина сохранены", + "orderBy": { + "relevance": "Релевантность" + }, + "remarks": "Примечания", + "warningDisabledAd": "Это объявление имеет недействительный статус и не может рассматриваться другими пользователями. Для того чтобы активировать объявление, пожалуйста, выберите цену и валюту и сохраните объявление снова", + "mobileTitle": { + "paymentType": "Тип платежа" + } + }, + "message": { + "mobileTitle": { + "search": "Сообщения", + "newMessage": "Новое сообщение" + }, + "messageBox": { + "messageBox": "Окно сообщения", + "sent": "Отправленные", + "trash": "Корзина" + }, + "messageRestored": "Это сообщение было восстановлено из корзины", + "replies": "Ответы", + "moveToTrashDone": "Это сообщение было перемещено в корзину", + "sentBy": "Отправлено от", + "sentTo": "Отправлено", + "sendTo": "Отправить", + "subject": "Тема", + "toUsers": "Пользователю", + "replyBody": "От {date}, {user} сообщение\\:", + "messageDestination": { + "user": "Пользователь", + "system": "Администрация" + }, + "messageSent": "Сообщение успешно отправлено" + }, + "notification": { + "title": "Уведомления", + "onlyUnread": "Только непрочитанные" + }, + "notificationSettings": { + "personal": "Личное", + "payments": "Платежи", + "paymentNotifications.above": "Уведомлять только о платежах выше", + "paymentNotifications.below": "Уведомлять только о платежах ниже", + "saved": "Настройки уведомлений сохранены" + }, + "identityProvider": { + "login.noMatch": "Пользователь с e-mail {0} не найден. Вам нужно войти с помощью вашего имени пользователя и пароля. После входа в систему, ваш аккаунт {1} будет автоматически привязан, и в следующий раз, функциональность «Продолжить с {1}» будет работать напрямую.", + "login.noEmail": "Не удалось прочитать адрес электронной почты из вашей учетной записи {provider}. Вам нужно войти с помощью имени пользователя и пароля. После входа в систему, ваш аккаунт {app} будет автоматически привязан, и в следующий раз, функциональность «Продолжить с {provider}» будет работать напрямую.", + "registration.disclaimer": "Отказ от ответственности: Ваши личные данные {app} не будут переданы этим поставщикам авторизации. Единственная цель обработки ваших персональных данных - заполнить регистрационную форму и войти в систему после того, как вы зарегистрируетесь." + }, + "operation": { + "transfer": "Транзакция" + }, + "wizard": { + "verification": { + "sentToEmail": "Проверочный код был отправлен на адрес электронной почты {email}.
Пожалуйста, проверьте свой почтовый ящик и скопируйте полученный код в поле ниже.", + "sentToPhone": "Проверочный код был отправлен через СМС на {phone}.
Пожалуйста, проверьте свой мобильный телефон и скопируйте полученный код в поле ниже." + } + }, + "setting": { + "title": "Настройки", + "theme": "Тема", + "theme.light": "Светлая", + "theme.dark": "Темная" + }, + "privacySettings": { + "title": "Настройки конфиденциальности", + "saved": "Настройки конфиденциальности сохранены" + }, + "record": { + "saved": "{name} сохранено" + }, + "document": { + "savedSuccessfully": "Успешно сохранено" + }, + "token": { + "action": { + "message": { + "cancel": "Вы собираетесь отозвать токен. Имейте в виду, что это необратимое действие. Вы уверены, что хотите изменить статус токена на отозванный?" + } + } + }, + "reference": { + "to": "Кому" + }, + "feedback": { + "viewAwaitingFeedback": "Просмотрите платежи, ожидающие ответа", + "mobileTitle": { + "search": "Отзывы", + "searchAwaiting": "Платежи ожидают ответа" + }, + "remove.confirm": "Вы уверены, что хотите удалить этот отзыв об оплате?", + "reply": "Ответить", + "paymentFeedbackDisabledFor": "Обратная связь по платежам отключена для" + }, + "invite": { + "title": "Пригласить пользователя в систему", + "mobileTitle": "Пригласить пользователя", + "toEmails": "На эл. почту", + "subject": "Тема", + "send": "Отправить", + "sent.single": "Приглашение отправлено\\!", + "sent.multiple": "Письма с приглашением отправлены" + }, + "quickAccessSettings": { + "information": "На этой странице вы можете настроить, какие значки быстрого доступа будут отображаться на вашей панели управления и в каком порядке. Включите / отключите элемент, нажав на него. Вы также можете изменить порядок включенных элементов, перетаскивая их." + }, + "imports": { + "information": { + "userSendVouchers": "Вы можете отправить несколько ваучеров одновременно, импортировав CSV-файл, используя {separator} в качестве разделителя.
\nФайл должен содержать 2 столбца: name и email. Если вы настроили использование суммы из файла, вам также необходимо указать столбец amount.
\nВ поле сообщения вы можете использовать те же имена заголовков, что и переменные, заключенные в фигурные скобки: {name}, {email} и {amount}." + } + } +} \ No newline at end of file diff --git a/src/openapi/cyclos-openapi.yaml b/src/openapi/cyclos-openapi.yaml index f9348dd17..d0c066f97 100644 --- a/src/openapi/cyclos-openapi.yaml +++ b/src/openapi/cyclos-openapi.yaml @@ -68,9 +68,9 @@ info: For details of the deprecated elements (operations and model) please visit the [deprecation notes - page](https://documentation.cyclos.org/4.16-BETA/api-deprecation.html) + page](https://documentation.cyclos.org/4.16/api-deprecation.html) for this version. - version: '4.16-BETA' + version: '4.16' servers: - url: 'http://root/api' @@ -127,7 +127,7 @@ tags: profile fields. - name: ContactInfos description: >- - Management of user's additional contact information, which can either + Management of user's public contact information, which can either represent contact information for specific employees (e.g. a salesman) or distinct subsidiary offices of the same company. - name: Images @@ -4971,8 +4971,8 @@ A note for dynamic custom fields: If a script is used to generate possible value description: >- The returned data contains all profile-related elements of a user or operator - profile fields, phones, addresses, images - and additional contact information. Operators cannot have - addresses, images or additional contact information, so these + and public contact information. Operators cannot have + addresses, images or public contact information, so these will not be sent. parameters: - $ref: '#/components/parameters/fields' @@ -5038,8 +5038,8 @@ A note for dynamic custom fields: If a script is used to generate possible value description: >- Saves in a single, transactional operation, the full user / operator profile: edition of the profile fields and creating / modifying / - removing phones, addresses, additional contacts and images. Operators - can never have addresses, additional contacts or images, so they don't + removing phones, addresses, public contacts and images. Operators + can never have addresses, public contacts or images, so they don't apply to operators. parameters: - $ref: '#/components/parameters/fields' @@ -8280,10 +8280,10 @@ A note for dynamic custom fields: If a script is used to generate possible value get: operationId: getUserContactInfosListData summary: >- - Returns data for listing additional contact informations of the given + Returns data for listing public contact informations of the given user. description: >- - Returns data containing the (visible) user additional contact + Returns data containing the (visible) user public contact informations, plus additional data related to them. tags: - ContactInfos @@ -8297,7 +8297,7 @@ A note for dynamic custom fields: If a script is used to generate possible value responses: '200': description: >- - The data for listing additional contact informations + The data for listing public contact informations content: application/json: schema: @@ -8343,9 +8343,9 @@ A note for dynamic custom fields: If a script is used to generate possible value get: operationId: listContactInfosByUser summary: >- - Lists all (visible) additional contact informations for the user + Lists all (visible) public contact informations for the user description: >- - Returns a list with all additional contact informations of the given user + Returns a list with all public contact informations of the given user that the currently authenticated user can see. tags: - ContactInfos @@ -8359,7 +8359,7 @@ A note for dynamic custom fields: If a script is used to generate possible value responses: '200': description: >- - The list of visible additional contact information + The list of visible public contact information content: application/json: schema: @@ -8405,9 +8405,9 @@ A note for dynamic custom fields: If a script is used to generate possible value post: operationId: createContactInfo summary: >- - Creates a new additional contact information for the given user + Creates a new public contact information for the given user description: >- - Creates a new additional contact information for the given user. + Creates a new public contact information for the given user. tags: - ContactInfos parameters: @@ -8416,11 +8416,11 @@ A note for dynamic custom fields: If a script is used to generate possible value responses: '201': description: >- - Returns the identifier of the new additional contact information + Returns the identifier of the new public contact information headers: Location: description: >- - URL for viewing the additional contact information details + URL for viewing the public contact information details schema: type: string content: @@ -8473,7 +8473,7 @@ A note for dynamic custom fields: If a script is used to generate possible value $ref: '#/components/schemas/Error' requestBody: description: >- - The additional contact information to be created + The public contact information to be created required: true content: application/json: @@ -8484,9 +8484,9 @@ A note for dynamic custom fields: If a script is used to generate possible value get: operationId: getContactInfoDataForNew summary: >- - Returns data to create a new additional contact information + Returns data to create a new public contact information description: >- - Returns configuration data for creating an additional contact information + Returns configuration data for creating a public contact information for the given user tags: - ContactInfos @@ -8500,7 +8500,7 @@ A note for dynamic custom fields: If a script is used to generate possible value responses: '200': description: >- - The data for creating an additional contact information + The data for creating a public contact information content: application/json: schema: @@ -8546,9 +8546,9 @@ A note for dynamic custom fields: If a script is used to generate possible value get: operationId: getContactInfoDataForEdit summary: >- - Returns data to edit an existing additional contact information + Returns data to edit an existing public contact information description: >- - Returns configuration data for editing an additional contact information, + Returns configuration data for editing a public contact information, plus the current ContactInfoEdit object that can be altered and posted back. tags: @@ -8609,9 +8609,9 @@ A note for dynamic custom fields: If a script is used to generate possible value get: operationId: viewContactInfo summary: >- - Returns details of a specific additional contact information + Returns details of a specific public contact information description: >- - Returns information about an additional contact information by id + Returns information about a public contact information by id tags: - ContactInfos security: @@ -8624,7 +8624,7 @@ A note for dynamic custom fields: If a script is used to generate possible value responses: '200': description: >- - The additional contact information data + The public contact information data content: application/json: schema: @@ -8668,9 +8668,9 @@ A note for dynamic custom fields: If a script is used to generate possible value put: operationId: updateContactInfo summary: >- - Updates an existing additional contact information + Updates an existing public contact information description: >- - Updates an existing additional contact information + Updates an existing public contact information tags: - ContactInfos security: @@ -8683,7 +8683,7 @@ A note for dynamic custom fields: If a script is used to generate possible value responses: '204': description: >- - The additional contact information was updated + The public contact information was updated '409': description: >- This operation expected an entity state, but it has resulted in a conflict @@ -8737,7 +8737,7 @@ A note for dynamic custom fields: If a script is used to generate possible value $ref: '#/components/schemas/Error' requestBody: description: >- - The additional contact information to be edited + The public contact information to be edited required: true content: application/json: @@ -8746,9 +8746,9 @@ A note for dynamic custom fields: If a script is used to generate possible value delete: operationId: deleteContactInfo summary: >- - Removes an existing additional contact information + Removes an existing public contact information description: >- - Removes an existing additional contact information + Removes an existing public contact information tags: - ContactInfos security: @@ -8761,7 +8761,7 @@ A note for dynamic custom fields: If a script is used to generate possible value responses: '204': description: >- - The additional contact information was deleted + The public contact information was deleted '409': description: >- This operation expected an entity state, but it has resulted in a conflict @@ -8810,10 +8810,10 @@ A note for dynamic custom fields: If a script is used to generate possible value get: operationId: getPasswordInputForRemoveContactInfo summary: >- - Returns a confirmation `PasswordInput` for removing an additional contact + Returns a confirmation `PasswordInput` for removing a public contact information, if any. description: >- - If a confirmation password is required to remove an additional contact + If a confirmation password is required to remove a public contact infomation, clients should invoke this operation prior to effectively removing it, which will return the data regarding the confirmation password. @@ -11191,10 +11191,10 @@ A note for dynamic custom fields: If a script is used to generate possible value post: operationId: uploadContactInfoImage summary: >- - Uploads a new image for the given additional contact information. + Uploads a new image for the given public contact information. description: >- - Saves the given image for the additional contact information. If the given - additional contact information already has an image, the old one is + Saves the given image for the public contact information. If the given + public contact information already has an image, the old one is removed, and the current image is saved in its place. tags: - Images @@ -41525,10 +41525,10 @@ A note for dynamic custom fields: If a script is used to generate possible value get: operationId: listOperationsByContactInfo summary: >- - Lists the custom operations over the given additional contact information + Lists the custom operations over the given public contact information description: >- Returns the custom operations the authenticated user can run over the - given additional contact iformation. All returned operations have the + given public contact iformation. All returned operations have the scope `contactInfo`. tags: - Operations @@ -41590,10 +41590,10 @@ A note for dynamic custom fields: If a script is used to generate possible value get: operationId: getContactInfoOperationDataForRun summary: >- - Returns configuration data for running a custom operation over an - additional contact information + Returns configuration data for running a custom operation over a + public contact information description: >- - Returns data to run a specific custom operation over an additional contact + Returns data to run a specific custom operation over a public contact information. The operation scope must be `contactInfo`. tags: @@ -41661,9 +41661,9 @@ A note for dynamic custom fields: If a script is used to generate possible value post: operationId: runContactInfoOperation summary: >- - Runs a custom operation over an additional contact information + Runs a custom operation over a public contact information description: >- - Runs a specific custom operation over a given additional contact + Runs a specific custom operation over a given public contact information. The operation scope must be `contactInfo`. If the operation resulted in a file download (either because the `resultType` is @@ -41771,10 +41771,10 @@ A note for dynamic custom fields: If a script is used to generate possible value post: operationId: runContactInfoOperationWithUpload summary: >- - Runs a custom operation over an additional contact information while + Runs a custom operation over a public contact information while uploading a file description: >- - Runs a specific custom operation over a given additional contact + Runs a specific custom operation over a given public contact information. The operation scope must be `contactInfo`. This path allows uploading a file, by using a `multipart-form-data` post. If the operation resulted in a file @@ -54574,7 +54574,7 @@ components: - `contact`: Contact fields. - - `contactInfo`: Additional contact information fields. + - `contactInfo`: Public contact information fields. - `custom_operation`: Custom operation fields. @@ -54831,7 +54831,7 @@ components: - `manageAuthorization`: A confirmation for managing a pending payment authorization - - `manageContactInfo`: A confirmation for managing an additional contact information of his own + - `manageContactInfo`: A confirmation for managing a public contact information of his own - `manageDevice`: A confirmation for managing a trusted device @@ -55428,7 +55428,7 @@ components: Possible values are: - - `contactInfo`: An image of an additional contact information + - `contactInfo`: An image of a public contact information - `customFieldValue`: An image used as custom field value @@ -56827,7 +56827,7 @@ components: - `contact`: A custom operation which is executed over a contact in a user's contact list - - `contactInfo`: A custom operation which is executed over an additional contact information, which is part of the user profile + - `contactInfo`: A custom operation which is executed over a public contact information, which is part of the user profile - `internal`: A custom operation which is executed by another custom operation @@ -58011,7 +58011,7 @@ components: - `advertisement`: The image will be used for an advertisement of a specific user - - `contactInfo`: The image will be used for an additional contact information of a specific user + - `contactInfo`: The image will be used for a public contact information of a specific user - `customValue`: The image will be used for a value of a specific custom field @@ -59100,6 +59100,8 @@ components: - `captcha`: The CAPTCHA verification to prevent registrations by bots. + - `contactInfo`: The input for the public contact information. + - `customProfileField`: A custom user profile field. - `passwords`: The input for the password (or passwords). @@ -59112,6 +59114,7 @@ components: - agreements - basicProfileField - captcha + - contactInfo - customProfileField - passwords - securityQuestion @@ -60987,10 +60990,10 @@ components: contactInfoEnabled: type: boolean description: >- - Can the address have additional contact information fields? + Can the address have public contact information fields? contactInfoFields: description: >- - The additional contact information custom fields. + The public contact information custom fields. Only returned if `contactInfoEnabled` is true. type: array items: @@ -61094,19 +61097,19 @@ components: email: type: string description: >- - The e-mail for this additional contact information + The e-mail for this public contact information mobilePhone: type: string description: >- - The formatted mobile phone for this additional contact information + The formatted mobile phone for this public contact information landLinePhone: type: string description: >- - The formatted landline phone for this additional contact information + The formatted landline phone for this public contact information landLineExtension: type: string description: >- - The landline phone extension for this additional contact information + The landline phone extension for this public contact information normalizedMobilePhone: type: string description: >- @@ -61117,15 +61120,14 @@ components: The land-line phone, normalized to the E.164 format customValues: description: >- - The list of custom field values on this additional contact - information + The list of custom field values on this public contact information type: array items: $ref: '#/components/schemas/CustomFieldValue' AddressContactInfoManage: description: >- - Common fields for either creating or editing an additional contact + Common fields for either creating or editing a public contact information type: object x-implements: IContactInfo @@ -61133,19 +61135,19 @@ components: email: type: string description: >- - The e-mail for this additional contact information + The e-mail for this public contact information mobilePhone: type: string description: >- - The formatted mobile phone for this additional contact information + The formatted mobile phone for this public contact information landLinePhone: type: string description: >- - The formatted landline phone for this additional contact information + The formatted landline phone for this public contact information landLineExtension: type: string description: >- - The landline phone extension for this additional contact information + The landline phone extension for this public contact information customValues: type: object description: >- @@ -61320,7 +61322,7 @@ components: type: boolean contactInfo: description: >- - If enabled, contains additional contact information for the address + If enabled, contains public contact information for the address allOf: - $ref: '#/components/schemas/AddressContactInfo' @@ -64239,7 +64241,7 @@ components: ContactInfo: description: >- - An additional contact information reference + A public contact information reference x-implements: IContactInfo, INormalizedPhones allOf: - $ref: '#/components/schemas/NamedEntity' @@ -64248,19 +64250,19 @@ components: email: type: string description: >- - The e-mail for this additional contact information + The e-mail for this public contact information mobilePhone: type: string description: >- - The formatted mobile phone for this additional contact information + The formatted mobile phone for this public contact information landLinePhone: type: string description: >- - The formatted landline phone for this additional contact information + The formatted landline phone for this public contact information landLineExtension: type: string description: >- - The landline phone extension for this additional contact information + The landline phone extension for this public contact information normalizedMobilePhone: type: string description: >- @@ -64282,7 +64284,7 @@ components: properties: customFields: description: >- - The additional contact information custom fields + The public contact information custom fields type: array items: $ref: '#/components/schemas/CustomFieldDetailed' @@ -64312,7 +64314,7 @@ components: ContactInfoBinaryValuesForUserProfile: description: >- - Holds the current additional contact image and binary field values + Holds the current public contact image and binary field values allOf: - $ref: '#/components/schemas/CustomFieldBinaryValues' - type: object @@ -64322,45 +64324,45 @@ components: ContactInfoConfigurationForUserProfile: description: >- - User additional contacts data sent when editing the full profile + User public contacts data sent when editing the full profile type: object properties: contactInfo: description: >- - Contains the default values for a new additional contact + Contains the default values for a new public contact allOf: - $ref: '#/components/schemas/ContactInfoNew' customFields: description: >- - The custom fields for additional contact informations + The custom fields for public contact informations type: array items: $ref: '#/components/schemas/CustomFieldDetailed' edit: type: boolean description: >- - Can the authenticated user edit additional contacts? + Can the authenticated user edit public contacts? managePrivacy: type: boolean description: >- - Can the authenticated user manage the privacy of additional contacts? + Can the authenticated user manage the privacy of public contacts? maxContactInfos: type: integer description: >- - The maximum number of additional contacts the user can own + The maximum number of public contacts the user can own availability: $ref: '#/components/schemas/AvailabilityEnum' ContactInfoDataForEdit: description: >- - Contains data for editing an existing additional contact information + Contains data for editing an existing public contact information allOf: - $ref: '#/components/schemas/ContactInfoBasicData' - type: object properties: contactInfo: description: >- - The additional contact information that is being edited. This value + The public contact information that is being edited. This value can be modified and sent back on `PUT /contactInfos/{id}`. allOf: - $ref: '#/components/schemas/ContactInfoEdit' @@ -64385,14 +64387,14 @@ components: ContactInfoDataForNew: description: >- - Contains data for creating a new additional contact information + Contains data for creating a new public contact information allOf: - $ref: '#/components/schemas/ContactInfoBasicData' - type: object properties: contactInfo: description: >- - The additional contact information populated with the default + The public contact information populated with the default fields. This value can be modified and sent back on `POST /{user}/contactInfos`. allOf: @@ -64400,29 +64402,22 @@ components: ContactInfoDetailed: description: >- - Contains extra details of an additional contact information + Contains extra details of an public contact information allOf: - - $ref: '#/components/schemas/ContactInfo' + - $ref: '#/components/schemas/ContactInfoWithFields' - type: object properties: - customValues: - description: >- - The list of custom field values on this additional contact - information - type: array - items: - $ref: '#/components/schemas/CustomFieldValue' operations: description: >- The list of custom operations the logged user can run over this - additional contact information + public contact information type: array items: $ref: '#/components/schemas/Operation' ContactInfoEdit: description: >- - Fields for editing an additional contact information + Fields for editing a public contact information allOf: - $ref: '#/components/schemas/ContactInfoManage' - type: object @@ -64440,7 +64435,7 @@ components: ContactInfoEditWithId: description: >- - Parameters for editing an existing additional contact + Parameters for editing an existing public contact allOf: - $ref: '#/components/schemas/ContactInfoEdit' - type: object @@ -64452,7 +64447,7 @@ components: ContactInfoManage: description: >- - Common fields for either creating or editing an additional contact + Common fields for either creating or editing a public contact information type: object x-implements: IContactInfo @@ -64465,33 +64460,33 @@ components: email: type: string description: >- - The e-mail for this additional contact information + The e-mail for this public contact information mobilePhone: type: string description: >- - The formatted mobile phone for this additional contact information + The formatted mobile phone for this public contact information landLinePhone: type: string description: >- - The formatted landline phone for this additional contact information + The formatted landline phone for this public contact information landLineExtension: type: string description: >- - The landline phone extension for this additional contact information + The landline phone extension for this public contact information image: type: string description: >- The identifier of either an uploaded temporary image, or an existing - additional contact image. + public contact image. address: type: string description: >- The identifier for the user address to be used as address of this - additional contact information + public contact information hidden: type: boolean description: >- - Whether this additional contact information should be hidden for other + Whether this public contact information should be hidden for other users customValues: type: object @@ -64505,13 +64500,13 @@ components: ContactInfoNew: description: >- - Fields for a new additional contact information + Fields for a new public contact information allOf: - $ref: '#/components/schemas/ContactInfoManage' ContactInfoResult: description: >- - An additional contact information as a result item + A public contact information as a result item allOf: - $ref: '#/components/schemas/ContactInfo' - type: object @@ -64519,7 +64514,7 @@ components: hidden: type: boolean description: >- - Indicates whether this additional contact information is hidden for + Indicates whether this public contact information is hidden for other users. customValues: type: object @@ -64533,27 +64528,42 @@ components: ContactInfoView: description: >- - Contains details of an additional contact information + Contains details of a public contact information allOf: - $ref: '#/components/schemas/ContactInfoDetailed' - type: object properties: user: description: >- - The user which owns this additional contact information + The user which owns this public contact information allOf: - $ref: '#/components/schemas/User' canEdit: type: boolean description: >- Indicates whether the logged user can remove / edit this - additional contact information + public contact information hidden: type: boolean description: >- - Indicates whether this additional contact information should be + Indicates whether this public contact information should be hidden for other users + ContactInfoWithFields: + description: >- + Contains the custom fields of a public contact information + allOf: + - $ref: '#/components/schemas/ContactInfo' + - type: object + properties: + customValues: + description: >- + The list of custom field values on this public contact + information + type: array + items: + $ref: '#/components/schemas/CustomFieldValue' + ContactListDataForSearch: description: >- Data for searching an user's contact list @@ -65686,13 +65696,13 @@ components: $ref: '#/components/schemas/ContactInfoConfigurationForUserProfile' contactInfos: description: >- - The existing additional contacts that can be modified and posted back + The existing public contacts that can be modified and posted back type: array items: $ref: '#/components/schemas/ContactInfoEditWithId' contactInfoBinaryValues: description: >- - Values for images and binary custom fields for additional contacts, + Values for images and binary custom fields for public contacts, keyed by contact info id. type: object additionalProperties: @@ -68129,21 +68139,21 @@ components: type: string createContactInfos: description: >- - Additional contacts to be created. If not sent / empty, no additional + Public contacts to be created. If not sent / empty, no public contacts are created. type: array items: $ref: '#/components/schemas/ContactInfoNew' modifyContactInfos: description: >- - Additional contacts to be modified. If not sent / empty, no additional + Public contacts to be modified. If not sent / empty, no public contacts are modified. type: array items: $ref: '#/components/schemas/ContactInfoEditWithId' removeContactInfos: description: >- - Additional contacts to be removed. If not sent / empty, no additional + Public contacts to be removed. If not sent / empty, no public contacts are removed. type: array items: @@ -68185,7 +68195,7 @@ components: type: string createdContactInfos: description: >- - Identifiers of created additional contacts + Identifiers of created public contacts type: array items: type: string @@ -68735,19 +68745,19 @@ components: email: type: string description: >- - The e-mail for this additional contact information + The e-mail for this public contact information mobilePhone: type: string description: >- - The formatted mobile phone for this additional contact information + The formatted mobile phone for this public contact information landLinePhone: type: string description: >- - The formatted landline phone for this additional contact information + The formatted landline phone for this public contact information landLineExtension: type: string description: >- - The landline phone extension for this additional contact information + The landline phone extension for this public contact information INormalizedPhones: description: >- @@ -72031,7 +72041,7 @@ components: - $ref: '#/components/schemas/Contact' contactInfo: description: >- - The additional contact for which this custom operation will be executed. + The public contact for which this custom operation will be executed. Only returned if `scope` is `contactInfo` allOf: - $ref: '#/components/schemas/ContactInfo' @@ -79932,7 +79942,7 @@ components: UserContactInfosListData: description: >- - Contains, besides the user's additional contact informations, data for + Contains, besides the user's public contact informations, data for managing them type: object properties: @@ -79943,28 +79953,28 @@ components: - $ref: '#/components/schemas/User' canEdit: description: >- - Indicates whether the additional contact informations can be edited by + Indicates whether the public contact informations can be edited by the authenticated user type: boolean canCreate: description: >- - Indicates whether new additional contact informations can be created by + Indicates whether new public contact informations can be created by the authenticated user type: boolean maxContactInfos: description: >- - Indicates the maximum number of additional contact informations the user + Indicates the maximum number of public contact informations the user can have type: integer customFields: description: >- - The list of additional contact informations custom fields + The list of public contact informations custom fields type: array items: $ref: '#/components/schemas/CustomFieldDetailed' contactInfos: description: >- - The additional contact information list + The public contact information list type: array items: $ref: '#/components/schemas/ContactInfoResult' @@ -80147,6 +80157,18 @@ components: type: array items: $ref: '#/components/schemas/Image' + contactInfoImage: + description: >- + The image which is already assigned to the new user public contact + information. + allOf: + - $ref: '#/components/schemas/Image' + contactInfoBinaryValues: + description: >- + Holds the current values for file / image custom fields of the new + user public contact information as lists of `StoredFile`s / `Image`s. + allOf: + - $ref: '#/components/schemas/CustomFieldBinaryValues' agreements: description: >- The agreements that needs to be accepted by the user to be able to @@ -80565,7 +80587,7 @@ components: items: $ref: '#/components/schemas/ContactInfoNew' description: >- - Additional contacts to be registered together with the user + Public contacts to be registered together with the user images: type: array items: @@ -81175,7 +81197,7 @@ components: type: boolean manageContactInfos: description: >- - Can manage additional contact informations? + Can manage public contact informations? type: boolean canCreateAddress: description: >- @@ -81203,9 +81225,9 @@ components: type: boolean canCreateContactInfo: description: >- - Will be true if the authenticated user can manage additional contact + Will be true if the authenticated user can manage public contact informations and the user for whom we are viewing its profile has not - reached the maximum allowed additional contact informations. Only if + reached the maximum allowed public contact informations. Only if `manageContactInfos` is true. type: boolean maxAddresses: @@ -81230,7 +81252,7 @@ components: type: integer maxContactInfos: description: >- - The maximum number of additional contacts the user can own. + The maximum number of public contacts the user can own. Only if `manageContactInfos` is true. type: integer addressAvailability: @@ -81255,7 +81277,7 @@ components: - $ref: '#/components/schemas/AvailabilityEnum' contactInfoAvailability: description: >- - The availability for additional contacts. Only if `manageContactInfos` + The availability for public contacts. Only if `manageContactInfos` is true allOf: - $ref: '#/components/schemas/AvailabilityEnum' @@ -81787,7 +81809,7 @@ components: items: $ref: '#/components/schemas/ContactInfoDetailed' description: >- - Visible additional contact information + Visible public contact information contact: description: >- When this user is in the contact list of the currently logged user, @@ -84114,10 +84136,14 @@ components: to the next step. The only fields that support verification are email and mobile phone. type: boolean - readOnlyValue: + readOnlyFieldValue: description: >- - When a value was entered in a previous step and this step is set + When a value was entered in a previous step and this field is set to be read-only, contains the field value previously entered. + Only if `readOnly` is true and `kind` is + `basicProfileField` (except for address), + `customProfileField` or + `wizardField`. allOf: - $ref: '#/components/schemas/CustomFieldValue' diff --git a/src/tsconfig.pay.json b/src/tsconfig.pay.json deleted file mode 100644 index ea4c30ed2..000000000 --- a/src/tsconfig.pay.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../tsconfig.base.json", - "compilerOptions": { - "outDir": "../out-tsc/pay", - "types": [] - }, - "files": [ - "pay/main.ts", - "polyfills.ts" - ], - "include": [ - "*.d.ts" - ] -} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 5eb0ae25d..81d24017e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,18 +9,6 @@ "references": [ { "path": "./src/tsconfig.ui.json" - }, - { - "path": "./src/tsconfig.pay.json" - }, - { - "path": "./src/tsconfig.consent.json" - }, - { - "path": "./src/tsconfig.unsubscribe.json" - }, - { - "path": "./src/tsconfig.voucher.json" } ] } \ No newline at end of file