Commit cb6044e9 authored by MARCO Jonathan's avatar MARCO Jonathan
Browse files

Add a button to go to the edition page in the renderer

parent 1b6c5878
<template>
<v-form
ref="form"
lazy-validation
@submit.prevent="submitForm"
>
<section>
<v-btn
@click="$emit('form-edition')"
color="primary"
v-if="isHybridForm && !autoCompletionIsActive"
@click="onActiveAutoCompletion"
v-if="isPreviewMode"
>
<span v-if="userIsConnected">{{ _uct('builder.renderer.autoCompletion.button') }}</span>
<span v-else>{{ _uct('builder.renderer.autoCompletion.connection') }}</span>
{{ _uct('renderer.edition.button')}}
</v-btn>
<usf-field
v-for="(field, index) in root"
:key="field.id"
:field-id="field"
:field-index="index"
/>
<v-btn
v-if="isSubmitButtonDisplayed"
block
:color="submitButtonColor"
:disabled="isSubmitButtonDisabled"
:type="submitButtonType"
<v-form
ref="form"
lazy-validation
@submit.prevent="submitForm"
>
{{ submitButtonText }}
</v-btn>
</v-form>
<v-btn
color="primary"
v-if="isHybridForm && !autoCompletionIsActive"
@click="onActiveAutoCompletion"
>
<span v-if="userIsConnected">{{ _uct('renderer.autoCompletion.button') }}</span>
<span v-else>{{ _uct('renderer.autoCompletion.connection') }}</span>
</v-btn>
<usf-field
v-for="(field, index) in root"
:key="field.id"
:field-id="field"
:field-index="index"
/>
<v-btn
v-if="isSubmitButtonDisplayed"
block
:color="submitButtonColor"
:disabled="isSubmitButtonDisabled"
:type="submitButtonType"
>
{{ submitButtonText }}
</v-btn>
</v-form>
</section>
</template>
<script lang="ts">
......@@ -49,6 +59,11 @@ export default Vue.extend({
},
props: {
isPreviewMode: {
required: false,
type: Boolean as PropType<boolean>,
default: false,
},
isSubmitButtonDisplayed: {
type: Boolean as PropType<boolean>,
default: true,
......
import { AppMessages } from '#form-plugin/index';
export const fr: AppMessages = {
builder: {
actionButtons: {
preview: 'Visualisation',
previewDisabled: 'Vous ne pouvez pas visualiser un formulaire vide',
previewInfo: 'Si vous visualisez le formulaire, ce dernier sera enregistré dans son format actuel.',
save: 'Enregistrer',
saveDisabled: 'Vous ne pouvez pas enregistrer un formulaire vide',
settings: 'Options',
},
controls: {
fields: {
checkboxSwitch: 'Case à cocher & switch',
column: 'Colonne',
content: 'Texte enrichi',
dateTime: 'Date & Heure',
file: 'Fichier',
panel: 'Accordéon',
radioGroup: 'Groupe de boutons radio',
row: 'Ligne',
select: 'Liste d\'options',
text: 'Texte',
textArea: 'Texte multiligne',
},
groups: {
customs: 'Champ(s) personnalisé(s)',
inputs: 'Champs',
layouts: 'Mise en page',
},
},
duplicate: {
dialog: {
buttons: {
cancel: 'Annuler',
duplicate: 'Dupliquer',
},
information: 'Le mot-clé "copy" a été ajouté au nom du champ, pour plus de clarté lors de la soumission du formulaire vous pouvez modifier la valeur dans l\'onglet "API".',
title: 'Dupliquer un champ',
},
},
tabs: {
actions: {
close: 'Fermer',
},
api: {
nameLabel: 'Nom du champ',
protectedLabel: 'Protégé',
},
conditional: {
actions: {
add: 'Ajouter une nouvelle condition',
cancel: 'Annuler',
valid: 'Valider',
},
fieldSelection: {
otherFields: 'Les autres champs',
user: 'Données de l\'utilisateur',
},
noValue: 'Ce champ n\'a pas de condition associée',
title: 'Les conditions liées à ce champ',
types: {
error: 'Vous devez sélectionner le type de condition',
labelDisplayed: 'Ce champ est affiché si...',
labelExist: 'Ce champ existe dans le DOM si...',
labelRequired: 'Ce champ est requis si...',
label: 'Type de condition',
},
valueLabels: {
equal: '... la valeur est égale à...',
in: '... la valeur est dans...',
operator: '...opérateur...',
},
},
data: {
dataTable: {
displayBy: {
other: 'autres',
noDisplayed: 'Jamais affiché',
filter: 'Filtrer',
},
headers: {
actions: 'Actions',
defaultValue: 'Par défaut',
displayBy: 'Affiché si...',
label: 'Libellé',
userAttributeValue: 'Valeur associée à l\'utilisateur',
value: 'Valeur',
},
},
dialogNewOption: {
actions: {
cancel: 'Annuler',
builder: {
actionButtons: {
preview: 'Visualisation',
previewDisabled: 'Vous ne pouvez pas visualiser un formulaire vide',
previewInfo: 'Si vous visualisez le formulaire, ce dernier sera enregistré dans son format actuel.',
save: 'Enregistrer',
},
label: 'Libellé',
title: 'Nouvelle option',
value: 'Valeur',
},
displayedBy: 'Afficher par...',
multiple: 'Multiple',
options: {
dependsOn: 'Dépend de...',
search: 'Rechercher',
title: 'Options',
},
richTextDefaultValue: 'Entrez une nouvelle valeur ici.',
selectAll: 'Tout sélectionner',
uniqueValue: 'Valeur unique',
fileSystem: {
cancel: 'Annuler',
infoFormat: 'Les valeurs dans le CSV doivent être séparées par un ; et être entourées par des "',
title: 'Importer des options avec un fichier CSV',
warning: 'Attention ! Si vous importez des options avec un fichier CSV, les options actuelles seront supprimées.',
},
},
display: {
content: {
label: 'Libellé',
placeholder: 'Valeur exemple',
hint: 'Message d\'information',
hintPersistent: 'Le message d\'information reste toujours visible',
prefix: 'Préfixe',
suffix: 'Suffixe',
title: 'Contenu',
tooltipTitle: 'Ces données sont liées aux valeurs dans l\'onglet "Internationalisation" pour la langue par défaut.',
saveDisabled: 'Vous ne pouvez pas enregistrer un formulaire vide',
settings: 'Options',
},
controls: {
fields: {
checkboxSwitch: 'Case à cocher & switch',
column: 'Colonne',
content: 'Texte enrichi',
dateTime: 'Date & Heure',
file: 'Fichier',
panel: 'Accordéon',
radioGroup: 'Groupe de boutons radio',
row: 'Ligne',
select: 'Liste d\'options',
text: 'Texte',
textArea: 'Texte multiligne',
},
groups: {
customs: 'Champ(s) personnalisé(s)',
inputs: 'Champs',
layouts: 'Mise en page',
},
},
accordion: {
title: "Entêtes",
label: "Entête n°{num}",
add: "Ajouter un Panneau"
duplicate: {
dialog: {
buttons: {
cancel: 'Annuler',
duplicate: 'Dupliquer',
},
information: 'Le mot-clé "copy" a été ajouté au nom du champ, pour plus de clarté lors de la soumission du formulaire vous pouvez modifier la valeur dans l\'onglet "API".',
title: 'Dupliquer un champ',
},
},
layout: {
add: 'Ajouter une colonne',
columns: 'Colonnes',
dialog: {
tabs: {
actions: {
add: 'Ajouter',
cancel: 'Annuler',
close: 'Fermer',
},
api: {
nameLabel: 'Nom du champ',
protectedLabel: 'Protégé',
},
conditional: {
actions: {
add: 'Ajouter une nouvelle condition',
cancel: 'Annuler',
valid: 'Valider',
},
fieldSelection: {
otherFields: 'Les autres champs',
user: 'Données de l\'utilisateur',
},
noValue: 'Ce champ n\'a pas de condition associée',
title: 'Les conditions liées à ce champ',
types: {
error: 'Vous devez sélectionner le type de condition',
labelDisplayed: 'Ce champ est affiché si...',
labelExist: 'Ce champ existe dans le DOM si...',
labelRequired: 'Ce champ est requis si...',
label: 'Type de condition',
},
valueLabels: {
equal: '... la valeur est égale à...',
in: '... la valeur est dans...',
operator: '...opérateur...',
},
},
data: {
dataTable: {
displayBy: {
other: 'autres',
noDisplayed: 'Jamais affiché',
filter: 'Filtrer',
},
headers: {
actions: 'Actions',
defaultValue: 'Par défaut',
displayBy: 'Affiché si...',
label: 'Libellé',
userAttributeValue: 'Valeur associée à l\'utilisateur',
value: 'Valeur',
},
},
dialogNewOption: {
actions: {
cancel: 'Annuler',
save: 'Enregistrer',
},
label: 'Libellé',
title: 'Nouvelle option',
value: 'Valeur',
},
displayedBy: 'Afficher par...',
multiple: 'Multiple',
options: {
dependsOn: 'Dépend de...',
search: 'Rechercher',
title: 'Options',
},
richTextDefaultValue: 'Entrez une nouvelle valeur ici.',
selectAll: 'Tout sélectionner',
uniqueValue: 'Valeur unique',
fileSystem: {
cancel: 'Annuler',
infoFormat: 'Les valeurs dans le CSV doivent être séparées par un ; et être entourées par des "',
title: 'Importer des options avec un fichier CSV',
warning: 'Attention ! Si vous importez des options avec un fichier CSV, les options actuelles seront supprimées.',
},
},
display: {
content: {
label: 'Libellé',
placeholder: 'Valeur exemple',
hint: 'Message d\'information',
hintPersistent: 'Le message d\'information reste toujours visible',
prefix: 'Préfixe',
suffix: 'Suffixe',
title: 'Contenu',
tooltipTitle: 'Ces données sont liées aux valeurs dans l\'onglet "Internationalisation" pour la langue par défaut.',
},
accordion: {
title: 'Entêtes',
label: 'Entête n°{num}',
add: 'Ajouter un Panneau',
},
layout: {
add: 'Ajouter une colonne',
columns: 'Colonnes',
dialog: {
actions: {
add: 'Ajouter',
cancel: 'Annuler',
},
title: 'Ajouter une colonne',
},
vertical: 'Vertical',
width: 'Largeur de la colonne',
},
style: {
horizontal: 'Horizontal',
options: {
autoGrow: 'Taille automatique',
chips: 'Mode puce',
clearable: 'Effaçable',
filled: 'Fond plein',
outlined: 'Avec bordure',
rounded: 'Arrondi',
rows: 'Nombre de ligne',
shaped: 'Bords supérieurs arrondis',
},
style: 'Style prédéfini',
title: 'Style',
type: 'Type de composant',
},
repeatable: {
errors: {
defaultMustBeNumeric: 'Le nombre de répétition par défaut doit être un nombre',
defaultMustBeInt: 'Le nombre de répétition par défaut doit être un nombre entier',
defaultMustBeAboveZero: 'Le nombre de répétition par défaut doit être supérieur à 0',
defaultMustBeBelowMaxRepeat: 'Le nombre de répétition par défaut doit être inférieur ou égal à la valeur max : {maxRepeat}',
mustBeNumeric: 'Le nombre de répétition doit être un nombre',
mustBeInt: 'Le nombre de répétition doit être un nombre entier',
mustBeAboveZero: 'Le nombre de répétition doit être supérieur à 0',
},
initial: 'Répétition initiale',
interdependentFields: 'Les valeurs de ce champ seront interdépendantes',
max: 'Répétition maximale',
repeatable: 'Ce champ est répétable',
title: 'Répétable',
tooltips: {
repeatMin: 'Vous ne pouvez pas indiquer une valeur inférieure à 1',
defaultRepeatMax: 'Vous ne pouvez pas indiquer une valeur supérieure à la valeur de répétition max',
defaultRepeatMin: 'Vous ne pouvez pas indiquer une valeur inférieure à 0',
},
},
type: {
date: 'Date',
time: 'Heure',
standard: 'Standard',
birthday: 'Anniversaire',
},
visibility: {
exist: 'Ce champ existe dans le DOM',
title: 'Visibilité',
visible: 'Ce champ est visible',
},
},
internationalization: {
buttonAdd: 'Ajouter',
dataTable: {
noTextMessage: 'Pas de langage créer. Rendez-vous dans les options de ce formulaire pour en ajouter un.',
headers: {
attribute: 'Attributs',
delete: 'Supprimer',
fallback: 'Langue par défaut',
locale: 'Langue',
rtl: 'RTL',
translation: 'Traduction',
},
},
localeName: 'Initiales de la langue',
rtlHelp: 'RTL = Right To Left = pour les langues qui s\'écrivent de droite à gauche',
title: 'Ajouter une langue',
},
names: {
api: 'Nom',
conditional: 'Conditions',
data: 'Données',
display: 'Affichage',
internationalization: 'Internationalisation',
validation: 'Validation',
},
validation: {
customRules: 'Règles personnalisées',
date: {
days: 'jour(s)',
months: 'moi(s)',
weeks: 'semaine(s)',
years: 'année(s)',
},
defaultValue: 'Valeur par défaut',
fileSizeMax: 'Taille de fichier maximale',
fileTitle: 'Taille du fichier',
maximum: 'Maximum',
maxValue: 'Valeur maximale',
minimum: 'Minimum',
minValue: 'Valeur minimale',
futureLabel: 'dans le futur',
required: 'Champ requis',
unit: 'Unité',
tokenField: {
selectLabel: 'Champ du token associé',
switchLabel: 'La valeur de ce champ est associée au token.',
},
},
title: 'Ajouter une colonne',
},
vertical: 'Vertical',
width: 'Largeur de la colonne',
},
style: {
horizontal: 'Horizontal',
options: {
autoGrow: 'Taille automatique',
chips: 'Mode puce',
clearable: 'Effaçable',
filled: 'Fond plein',
outlined: 'Avec bordure',
rounded: 'Arrondi',
rows: 'Nombre de ligne',
shaped: 'Bords supérieurs arrondis',
},
style: 'Style prédéfini',
title: 'Style',
type: 'Type de composant',
},
repeatable: {
errors: {
defaultMustBeNumeric: 'Le nombre de répétition par défaut doit être un nombre',
defaultMustBeInt: 'Le nombre de répétition par défaut doit être un nombre entier',
defaultMustBeAboveZero: 'Le nombre de répétition par défaut doit être supérieur à 0',
defaultMustBeBelowMaxRepeat: 'Le nombre de répétition par défaut doit être inférieur ou égal à la valeur max : {maxRepeat}',
mustBeNumeric: 'Le nombre de répétition doit être un nombre',
mustBeInt: 'Le nombre de répétition doit être un nombre entier',
mustBeAboveZero: 'Le nombre de répétition doit être supérieur à 0',
},
initial: 'Répétition initiale',
interdependentFields: 'Les valeurs de ce champ seront interdépendantes',
max: 'Répétition maximale',
repeatable: 'Ce champ est répétable',
title: 'Répétable',
tooltips: {
repeatMin: 'Vous ne pouvez pas indiquer une valeur inférieure à 1',
defaultRepeatMax: 'Vous ne pouvez pas indiquer une valeur supérieure à la valeur de répétition max',
defaultRepeatMin: 'Vous ne pouvez pas indiquer une valeur inférieure à 0',
},
},
type: {
date: 'Date',
time: 'Heure',
standard: 'Standard',
birthday: 'Anniversaire',
},
visibility: {
exist: 'Ce champ existe dans le DOM',
title: 'Visibilité',
visible: 'Ce champ est visible',
},
},
internationalization: {
buttonAdd: 'Ajouter',
dataTable: {
noTextMessage: 'Pas de langage créer. Rendez-vous dans les options de ce formulaire pour en ajouter un.',
headers: {
attribute: 'Attributs',
delete: 'Supprimer',
fallback: 'Langue par défaut',
locale: 'Langue',
rtl: 'RTL',
translation: 'Traduction',
},
},
renderer: {
autoCompletion: {
connection: 'Me connecter pour préremplir le formulaire',
button: 'Préremplir le formulaire',
},
localeName: 'Initiales de la langue',
rtlHelp: 'RTL = Right To Left = pour les langues qui s\'écrivent de droite à gauche',
title: 'Ajouter une langue',
},
names: {
api: 'Nom',
conditional: 'Conditions',
data: 'Données',
display: 'Affichage',
internationalization: 'Internationalisation',
validation: 'Validation',
},
validation: {
customRules: 'Règles personnalisées',
date: {
days: 'jour(s)',
months: 'moi(s)',
weeks: 'semaine(s)',
years: 'année(s)',
edition: {
button: 'Éditer le formulaire',
},
defaultValue: 'Valeur par défaut',
fileSizeMax: 'Taille de fichier maximale',
fileTitle: 'Taille du fichier',
maximum: 'Maximum',
maxValue: 'Valeur maximale',
minimum: 'Minimum',
minValue: 'Valeur minimale',
futureLabel: 'dans le futur',
required: 'Champ requis',
unit: 'Unité',
tokenField: {
selectLabel: 'Champ du token associé',
switchLabel: 'La valeur de ce champ est associée au token.',
}
},
},
renderer: {
autoCompletion: {
connection: 'Me connecter pour préremplir le formulaire',
button: 'Préremplir le formulaire'
}
}
},
};
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment