Activity form: add required class name on required field built with vue

This commit is contained in:
nobohan 2022-03-08 16:09:22 +01:00
parent fcc5d3d349
commit efcc602d53
3 changed files with 22 additions and 6 deletions

View File

@ -125,7 +125,9 @@ class ActivityType extends AbstractType
} }
if ($activityType->isVisible('socialIssues') && $accompanyingPeriod) { if ($activityType->isVisible('socialIssues') && $accompanyingPeriod) {
$builder->add('socialIssues', HiddenType::class); $builder->add('socialIssues', HiddenType::class, [
'required' => $activityType->getSocialIssuesVisible() === 2
]);
$builder->get('socialIssues') $builder->get('socialIssues')
->addModelTransformer(new CallbackTransformer( ->addModelTransformer(new CallbackTransformer(
static function (iterable $socialIssuesAsIterable): string { static function (iterable $socialIssuesAsIterable): string {
@ -151,7 +153,9 @@ class ActivityType extends AbstractType
} }
if ($activityType->isVisible('socialActions') && $accompanyingPeriod) { if ($activityType->isVisible('socialActions') && $accompanyingPeriod) {
$builder->add('socialActions', HiddenType::class); $builder->add('socialActions', HiddenType::class, [
'required' => $activityType->getSocialActionsVisible() === 2
]);
$builder->get('socialActions') $builder->get('socialActions')
->addModelTransformer(new CallbackTransformer( ->addModelTransformer(new CallbackTransformer(
static function (iterable $socialActionsAsIterable): string { static function (iterable $socialActionsAsIterable): string {
@ -338,7 +342,9 @@ class ActivityType extends AbstractType
} }
if ($activityType->isVisible('location')) { if ($activityType->isVisible('location')) {
$builder->add('location', HiddenType::class) $builder->add('location', HiddenType::class, [
'required' => $activityType->getLocationVisible() === 2
])
->get('location') ->get('location')
->addModelTransformer(new CallbackTransformer( ->addModelTransformer(new CallbackTransformer(
static function (?Location $location): string { static function (?Location $location): string {

View File

@ -1,7 +1,7 @@
<template> <template>
<teleport to="#location"> <teleport to="#location">
<div class="mb-3 row"> <div class="mb-3 row">
<label class="col-form-label col-sm-4"> <label :class="locationClassList">
{{ $t("activity.location") }} {{ $t("activity.location") }}
</label> </label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -41,6 +41,12 @@ export default {
NewLocation, NewLocation,
VueMultiselect, VueMultiselect,
}, },
data() {
return {
locationClassList:
`col-form-label col-sm-4 ${document.querySelector('input#chill_activitybundle_activity_location').getAttribute('required') ? 'required' : ''}`,
}
},
computed: { computed: {
...mapState(["activity", "availableLocations"]), ...mapState(["activity", "availableLocations"]),
...mapGetters(["suggestedEntities"]), ...mapGetters(["suggestedEntities"]),

View File

@ -3,7 +3,7 @@
<div class="mb-3 row"> <div class="mb-3 row">
<div class="col-4"> <div class="col-4">
<label class="col-form-label">{{ $t('activity.social_issues') }}</label> <label :class="socialIssuesClassList">{{ $t('activity.social_issues') }}</label>
</div> </div>
<div class="col-8"> <div class="col-8">
@ -42,7 +42,7 @@
<div class="mb-3 row"> <div class="mb-3 row">
<div class="col-4"> <div class="col-4">
<label class="col-form-label">{{ $t('activity.social_actions') }}</label> <label :class="socialActionsClassList">{{ $t('activity.social_actions') }}</label>
</div> </div>
<div class="col-8"> <div class="col-8">
@ -94,6 +94,10 @@ export default {
issueIsLoading: false, issueIsLoading: false,
actionIsLoading: false, actionIsLoading: false,
actionAreLoaded: false, actionAreLoaded: false,
socialIssuesClassList:
`col-form-label ${document.querySelector('input#chill_activitybundle_activity_socialIssues').getAttribute('required') ? 'required' : ''}`,
socialActionsClassList:
`col-form-label ${document.querySelector('input#chill_activitybundle_activity_socialActions').getAttribute('required') ? 'required' : ''}`,
} }
}, },
computed: { computed: {