Merge branch 'language-validation' into 'master'

Language and  validation

See merge request mohit.panjvani/crater-web!6
This commit is contained in:
Mohit Panjwani
2019-11-12 10:03:57 +00:00
11 changed files with 116 additions and 198064 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -35,6 +35,8 @@
<div v-if="$v.formData.price.$error">
<span v-if="!$v.formData.price.required" class="text-danger">{{ $tc('validation.required') }}</span>
<span v-if="!$v.formData.price.numeric" class="text-danger">{{ $tc('validation.numbers_only') }}</span>
<span v-if="!$v.formData.price.maxLength" class="text-danger">{{ $t('validation.price_maxlength') }}</span>
<span v-if="!$v.formData.price.minValue" class="text-danger">{{ $t('validation.price_minvalue') }}</span>
</div>
</div>
</div>
@ -138,7 +140,8 @@ export default {
price: {
required,
numeric,
minValue: minValue(0.1)
minValue: minValue(0.1),
maxLength: maxLength(10)
},
description: {
maxLength: maxLength(255)

View File

@ -761,7 +761,9 @@ export default {
payment_greater_than_due_amount: 'Entered Payment is more than due amount of this invoice.',
quantity_maxlength: 'Quantity should not be greater than 10 digits.',
price_maxlength: 'Price should not be greater than 10 digits.',
price_minvalue: 'Price should be greater than 0 digits',
amount_maxlength: 'Amount should not be greater than 10 digits.',
amount_minvalue: 'Amount should be greater than 0 digits',
description_maxlength: 'Description should not be greater than 255 characters.',
maximum_options_error: 'Maximum of {max} options selected. First remove a selected option to select another.',
notes_maxlength: 'Notes should not be greater than 255 characters.',

View File

@ -549,7 +549,7 @@ export default {
right: 'Derecho',
left: 'Izquierda',
action: 'Acción',
add_currency: 'Agregar moneda',
add_currency: 'Agregar moneda'
},
pdf: {
title: 'Configuración de PDF',
@ -596,8 +596,6 @@ export default {
estimate_viewed_desc: 'Cuando su cliente ve la estimación enviada a través del panel de control del cráter.',
save: 'Salvar',
email_save_message: 'Correo electrónico guardado con éxito',
invoice_viewed_message: 'Factura vista',
estimate_viewed_message: 'Estimación vista',
please_enter_email: 'Por favor, introduzca su correo electrónico'
},
tax_types: {
@ -642,7 +640,6 @@ export default {
preference: 'Preferencia | Preferencias',
general_settings: 'Preferencias predeterminadas para el sistema.',
updated_message: 'Preferencias actualizadas exitosamente',
set_discount_per_item_message: 'Descuento establecido por artículo',
select_language: 'seleccione el idioma',
select_time_zone: 'selecciona la zona horaria',
select_date_formate: 'seleccione formato de fecha',
@ -668,7 +665,7 @@ export default {
state: 'Estado',
city: 'Ciudad',
address: 'Habla a',
street: 'Calle1 '| 'Calle # 2',
street: 'Calle1 ' | 'Calle # 2',
phone: 'Teléfono',
zip_code: 'Código postal',
go_back: 'Regresa',
@ -676,7 +673,52 @@ export default {
language: 'Idioma',
time_zone: 'Zona horaria',
fiscal_year: 'Año financiero',
date_format: 'Formato de fecha'
date_format: 'Formato de fecha',
from_address: 'De la Dirección',
username: 'Nombre de usuario',
next: 'Próximo',
continue: 'Hacer continuación',
database: {
database: 'URL del sitio y base de datose',
connection: 'Conexión de base de datos',
host: 'Database Host',
port: 'Host de base de datos',
password: 'Contraseña de base de datos',
app_url: 'URL de la aplicación',
username: 'Nombre de usuario de la base de datos',
db_name: 'Nombre de la base de datos',
desc: 'Cree una base de datos en su servidor y establezca las credenciales utilizando el siguiente formulario.'
},
permissions: {
permissions: 'Permisos',
permission_desc: 'A continuación se muestra la lista de permisos de carpeta necesarios para que la aplicación funcione. Si la verificación de permisos falla, asegúrese de actualizar los permisos de su carpeta.'
},
mail: {
host: 'Host de correo',
port: 'Puerto de correo',
driver: 'Conductor de correo',
password: 'Contraseña de correo',
username: 'Nombre de usuario de correo',
mail_config: 'Configuración de correo',
encryption: 'Cifrado de correo',
mail_config_desc: 'Los detalles a continuación se utilizarán para actualizar el entorno de correo. También puede cambiar los detalles en cualquier momento después de iniciar sesión.'
},
req: {
system_req: 'Requisitos del sistema',
php_req_version: 'Php (versión {version} necesario)',
check_req: 'Consultar requisitos',
system_req_desc: 'Crater tiene algunos requisitos de servidor. Asegúrese de que su servidor tenga la versión de php requerida y todas las extensiones mencionadas a continuación.'
},
errors: {
migrate_failed: 'La migración falló',
database_variables_save_error: 'No se puede conectar a la base de datos con los valores proporcionados.',
mail_variables_save_error: 'La configuración del correo electrónico ha fallado.',
connection_failed: 'Conexión de base de datos fallida'
},
success: {
mail_variables_save_successfully: 'Correo electrónico configurado correctamente',
database_variables_save_successfully: 'Base de datos configurada con éxito.'
}
},
layout_login: {
copyright_crater: 'Copyright @ Crater - 2019',
@ -707,7 +749,9 @@ export default {
payment_greater_than_due_amount: 'El pago ingresado es mayor al monto adeudado de esta factura.',
quantity_maxlength: 'La cantidad no debe ser mayor de 10 dígitos.',
price_maxlength: 'El precio no debe ser mayor de 10 dígitos.',
price_minvalue: 'El precio debe ser mayor que 0 dígitos',
amount_maxlength: 'La cantidad no debe ser mayor de 10 dígitos.',
amount_minvalue: 'La cantidad debe ser mayor que 0 dígitos',
description_maxlength: 'La descripción no debe tener más de 255 caracteres.',
maximum_options_error: 'Máximo de {max} opciones seleccionadas. Primero elimine una opción seleccionada para seleccionar otra.',
notes_maxlength: 'Las notas no deben tener más de 255 caracteres.',

View File

@ -667,7 +667,7 @@ export default {
state: 'Etat',
city: 'Ville',
address: 'Adresse',
street: 'Street1 '| 'Rue # 2',
street: 'Street1 ' | 'Rue # 2',
phone: 'Téléphone',
zip_code: 'Code postal',
go_back: 'Retourner',
@ -675,7 +675,52 @@ export default {
language: 'La langue',
time_zone: 'Fuseau horaire',
fiscal_year: 'Année financière',
date_format: 'Format de date'
date_format: 'Format de date',
from_address: "De l'adresse",
username: "Nom d'utilisateur",
next: 'Suivant',
continue: 'Continuer',
database: {
database: 'URL du site et base de données',
connection: 'Connexion à la base de données',
host: 'Hôte de base de données',
port: 'Port de base de données',
password: 'Mot de passe de base de données',
app_url: 'Application URL',
username: "Nom d'utilisateur de la base de données",
db_name: 'Nom de la base de données',
desc: "Créez une base de données sur votre serveur et définissez les informations d'identification à l'aide du formulaire ci-dessous."
},
permissions: {
permissions: 'Les permissions',
permission_desc: "Vous trouverez ci-dessous la liste des autorisations de dossier requises pour le fonctionnement de l'application. Si la vérification des autorisations échoue, veillez à mettre à jour vos autorisations de dossier."
},
mail: {
host: 'Mail Host',
port: 'Port mail',
driver: 'Pilote de courrier',
password: 'Mot de passe mail',
username: "Mail Nom d'utilisateur",
mail_config: 'Configuration du courrier',
encryption: 'Chiffrement du courrier',
mail_config_desc: "Les détails ci-dessous seront utilisés pour mettre à jour l'environnement de messagerie. Aussi, vous pouvez modifier les détails à tout moment après la connexion."
},
req: {
system_req: 'Configuration requise',
php_req_version: 'Php (version {version} nécessaire)',
check_req: 'Vérifier les exigences',
system_req_desc: 'Crater a quelques exigences de serveur. Assurez-vous que votre serveur dispose de la version PHP requise et de toutes les extensions mentionnées ci-dessous.'
},
errors: {
migrate_failed: 'Migration impossible',
database_variables_save_error: 'Impossible de se connecter à la base de données avec les valeurs fournies.',
mail_variables_save_error: 'La configuration du courrier électronique a échoué.',
connection_failed: 'La connexion à la base de données a échoué'
},
success: {
mail_variables_save_successfully: 'Email configuré avec succès',
database_variables_save_successfully: 'Base de données configurée avec succès.'
}
},
layout_login: {
copyright_crater: 'Copyright @ Crater - 2019',
@ -706,7 +751,9 @@ export default {
payment_greater_than_due_amount: 'Le paiement entré est plus que le montant dû de cette facture.',
quantity_maxlength: 'La quantité ne doit pas dépasser 10 chiffres.',
price_maxlength: 'Le prix ne doit pas dépasser 10 chiffres.',
price_minvalue: 'Le prix doit être supérieur à 0 chiffre',
amount_maxlength: 'Le montant ne doit pas dépasser 10 chiffres.',
amount_minvalue: 'Le montant doit être supérieur à 0 chiffre',
description_maxlength: 'La description ne doit pas dépasser 255 caractères.',
maximum_options_error: 'Maximum de {max} options sélectionnées. Commencez par supprimer une option sélectionnée pour en sélectionner une autre.',
notes_maxlength: 'Les notes ne doivent pas dépasser 255 caractères.',

View File

@ -92,13 +92,14 @@
<money
v-model="amount"
v-bind="defaultCurrencyForInput"
:class="{'invalid' : $v.formData.amount.$error}"
class="input-field"
@input="$v.formData.amount.$touch()"
/>
</div>
<div v-if="$v.formData.amount.$error">
<span v-if="!$v.formData.amount.required" class="text-danger">{{ $t('validation.required') }}</span>
<span v-if="!$v.formData.amount.maxLength" class="text-danger">{{ $t('validation.amount_maxlength') }}</span>
<span v-if="!$v.formData.amount.maxValue" class="text-danger">{{ $t('validation.amount_minvalue') }}</span>
</div>
</div>
<div class="form-group col-sm-6">

View File

@ -34,16 +34,16 @@
<label>{{ $t('items.price') }}</label><span class="text-danger"> *</span>
<div class="base-input">
<money
:invalid="$v.formData.price.$error"
:class="{'invalid' : $v.formData.price.$error}"
v-model="price"
v-bind="defaultCurrencyForInput"
class="input-field"
@input="$v.formData.price.$touch()"
/>
</div>
<div v-if="$v.formData.price.$error">
<span v-if="!$v.formData.price.required" class="text-danger">{{ $t('validation.required') }} </span>
<span v-if="!$v.formData.price.maxLength" class="text-danger">{{ $t('validation.price_maxlength') }}</span>
<span v-if="!$v.formData.price.minValue" class="text-danger">{{ $t('validation.price_minvalue') }}</span>
</div>
</div>
<div class="form-group">
@ -92,7 +92,8 @@
<script>
import { validationMixin } from 'vuelidate'
import { mapActions, mapGetters } from 'vuex'
const { required, minLength, numeric, alpha, minValue, maxLength} = require('vuelidate/lib/validators')
const { required, minLength, numeric, alpha, minValue, maxLength } = require('vuelidate/lib/validators')
export default {
mixins: {
validationMixin

View File

@ -113,7 +113,11 @@
<h3 class="page-title">{{ $t('settings.preferences.discount_setting') }}</h3>
<div class="flex-box">
<div class="left">
<base-switch v-model="discount_per_item" class="btn-switch" @change="setDiscount" />
<base-switch
v-model="discount_per_item"
class="btn-switch"
@change="setDiscount"
/>
</div>
<div class="right ml-15">
<p class="box-title"> {{ $t('settings.preferences.discount_per_item') }} </p>