Compare commits

..

2 Commits

Author SHA1 Message Date
gitea-actions
191e071957 chore : bump version to v1.9.25
All checks were successful
Auto Tag Develop / tag (push) Successful in 8s
Build & Push Docker Image / build (push) Successful in 35s
2026-04-06 16:54:32 +00:00
f964df76b9 feat(custom-fields) : messages warning champs obligatoires + commandes make frontend
All checks were successful
Auto Tag Develop / tag (push) Successful in 10s
Ajoute des messages visuels (warning + error) quand des champs perso
obligatoires ne sont pas renseignés sur les pages composant (création
et édition). Ajoute make test-front et make test-front-watch au Makefile.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 18:54:22 +02:00
4 changed files with 25 additions and 1 deletions

View File

@@ -1,2 +1,2 @@
parameters: parameters:
app.version: '1.9.24' app.version: '1.9.25'

View File

@@ -408,6 +408,9 @@
</header> </header>
<template v-if="isEditMode"> <template v-if="isEditMode">
<CustomFieldInputGrid :fields="customFieldInputs" :disabled="!canEdit || saving" /> <CustomFieldInputGrid :fields="customFieldInputs" :disabled="!canEdit || saving" />
<p v-if="hasRequiredCustomFields && !requiredCustomFieldsFilled" class="text-xs text-warning">
Certains champs personnalisés sont obligatoires. Veuillez les renseigner avant de valider.
</p>
</template> </template>
<template v-else> <template v-else>
<div class="grid grid-cols-1 gap-4 md:grid-cols-2"> <div class="grid grid-cols-1 gap-4 md:grid-cols-2">
@@ -468,6 +471,9 @@
Enregistrer les modifications Enregistrer les modifications
</button> </button>
</div> </div>
<p v-if="isEditMode && hasRequiredCustomFields && !requiredCustomFieldsFilled" class="text-xs text-error text-right">
Merci de renseigner tous les champs personnalisés obligatoires.
</p>
</div> </div>
</section> </section>
</main> </main>
@@ -511,6 +517,7 @@ const {
constructeurLinks, constructeurLinks,
constructeurIdsFromForm, constructeurIdsFromForm,
customFieldInputs, customFieldInputs,
requiredCustomFieldsFilled,
historyFieldLabels, historyFieldLabels,
canSubmit, canSubmit,
componentTypeList, componentTypeList,
@@ -538,6 +545,8 @@ const {
formatStructurePreview, formatStructurePreview,
} = useComponentEdit(String(route.params.id)) } = useComponentEdit(String(route.params.id))
const hasRequiredCustomFields = computed(() => customFieldInputs.value.some(f => f.required))
const submitEdition = async () => { const submitEdition = async () => {
await _submitEdition() await _submitEdition()
if (!saving.value) { if (!saving.value) {

View File

@@ -223,6 +223,9 @@
</p> </p>
</header> </header>
<CustomFieldInputGrid :fields="customFieldInputs" :disabled="!canEdit || submitting" /> <CustomFieldInputGrid :fields="customFieldInputs" :disabled="!canEdit || submitting" />
<p v-if="hasRequiredCustomFields && !requiredCustomFieldsFilled" class="text-xs text-warning">
Certains champs personnalisés sont obligatoires. Veuillez les renseigner avant de valider.
</p>
</div> </div>
<EmptyState <EmptyState
v-else v-else
@@ -242,6 +245,9 @@
Créer le composant Créer le composant
</button> </button>
</div> </div>
<p v-if="selectedType && hasRequiredCustomFields && !requiredCustomFieldsFilled" class="text-xs text-error text-right">
Merci de renseigner tous les champs personnalisés obligatoires avant de créer le composant.
</p>
</div> </div>
</section> </section>
</main> </main>
@@ -290,8 +296,11 @@ const {
resolveProductLabel, resolveProductLabel,
resolveSubcomponentLabel, resolveSubcomponentLabel,
submitCreation, submitCreation,
requiredCustomFieldsFilled,
} = useComponentCreate() } = useComponentCreate()
const hasRequiredCustomFields = computed(() => customFieldInputs.value.some(f => f.required))
const entityTabs = computed(() => [ const entityTabs = computed(() => [
{ key: 'general', label: 'Général' }, { key: 'general', label: 'Général' },
{ key: 'structure', label: 'Structure' }, { key: 'structure', label: 'Structure' },

View File

@@ -127,6 +127,12 @@ php-cs-fixer-allow-risky:
test: test:
$(EXEC_PHP) php -d memory_limit="512M" vendor/bin/phpunit $(FILES) $(EXEC_PHP) php -d memory_limit="512M" vendor/bin/phpunit $(FILES)
test-front:
cd frontend && npx vitest run $(FILES)
test-front-watch:
cd frontend && npx vitest --watch $(FILES)
test-setup: test-setup:
$(SYMFONY_CONSOLE) doctrine:database:create --if-not-exists --env=test $(SYMFONY_CONSOLE) doctrine:database:create --if-not-exists --env=test
$(SYMFONY_CONSOLE) doctrine:schema:update --force --env=test $(SYMFONY_CONSOLE) doctrine:schema:update --force --env=test