Skip to content

Commit 978ca44

Browse files
committed
Apply suggestions from code review
1 parent a598896 commit 978ca44

File tree

9 files changed

+32
-43
lines changed

9 files changed

+32
-43
lines changed

css/includes/components/form/_form-editor.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ input.value-selector {
394394
}
395395
}
396396

397-
.visibility-dropdown-card {
397+
.visibility-dropdown-card, .validation-dropdown-card {
398398
width: 700px;
399399
}
400400

src/Glpi/Controller/Form/Condition/EditorController.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
namespace Glpi\Controller\Form\Condition;
3636

3737
use Glpi\Controller\AbstractController;
38-
use Glpi\Exception\Http\NotFoundHttpException;
3938
use Glpi\Form\Condition\ConditionData;
4039
use Glpi\Form\Condition\EditorManager;
4140
use Glpi\Form\Condition\FormData;
@@ -95,7 +94,7 @@ public function validationEditor(Request $request): Response
9594
$question_uuid = $form_data->getSelectedItemUuid();
9695
$question_name = current(array_filter(
9796
$form_data->getQuestionsData(),
98-
fn (QuestionData $question) => $question->getUuid() === $question_uuid
97+
fn(QuestionData $question) => $question->getUuid() === $question_uuid
9998
))->getName();
10099

101100
// Retrieve the conditions data

src/Glpi/Form/AnswersHandler/AnswersHandler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public function validateAnswers(
111111

112112
// Validate answers for each question if validation conditions are defined
113113
foreach ($questions_container->getQuestions() as $question) {
114-
if ($question->getConfiguredValidationStrategy() === ValidationStrategy::ALWAYS_VALIDATED) {
114+
if ($question->getConfiguredValidationStrategy() === ValidationStrategy::NO_VALIDATION) {
115115
// Skip validation if the question is always validated
116116
continue;
117117
}

src/Glpi/Form/Condition/ConditionableValidationTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,6 @@ public function getConfiguredValidationStrategy(): ValidationStrategy
7474
$field_name = $this->getValidationStrategyFieldName();
7575
$strategy_value = $this->fields[$field_name] ?? "";
7676
$strategy = ValidationStrategy::tryFrom($strategy_value);
77-
return $strategy ?? ValidationStrategy::ALWAYS_VALIDATED;
77+
return $strategy ?? ValidationStrategy::NO_VALIDATION;
7878
}
7979
}

src/Glpi/Form/Condition/Engine.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ private function computeItemValidation(Question $question): array
174174
{
175175
// Stop immediatly if the strategy result is forced.
176176
$strategy = $question->getConfiguredValidationStrategy();
177-
if ($strategy == ValidationStrategy::ALWAYS_VALIDATED) {
177+
if ($strategy == ValidationStrategy::NO_VALIDATION) {
178178
return [];
179179
}
180180

src/Glpi/Form/Condition/ValidationStrategy.php

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,46 +38,46 @@
3838

3939
enum ValidationStrategy: string implements StrategyInterface
4040
{
41-
case ALWAYS_VALIDATED = 'always_validated';
42-
case VALIDATED_IF = 'validated_if';
43-
case NOT_VALIDATED = 'not_validated';
41+
case NO_VALIDATION = 'no_validation';
42+
case VALID_IF = 'valid_if';
43+
case INVALID_IF = 'invalid_if';
4444

4545
#[Override]
4646
public function getLabel(): string
4747
{
4848
return match ($this) {
49-
self::ALWAYS_VALIDATED => __('Always validated'),
50-
self::VALIDATED_IF => __('Validated if...'),
51-
self::NOT_VALIDATED => __('Not validated if...'),
49+
self::NO_VALIDATION => __('No validation'),
50+
self::VALID_IF => __('Valid if...'),
51+
self::INVALID_IF => __('Invalid if...'),
5252
};
5353
}
5454

5555
#[Override]
5656
public function getIcon(): string
5757
{
5858
return match ($this) {
59-
self::ALWAYS_VALIDATED => 'ti ti-filter',
60-
self::VALIDATED_IF => 'ti ti-filter-cog',
61-
self::NOT_VALIDATED => 'ti ti-filter-x',
59+
self::NO_VALIDATION => 'ti ti-filter',
60+
self::VALID_IF => 'ti ti-filter-cog',
61+
self::INVALID_IF => 'ti ti-filter-x',
6262
};
6363
}
6464

6565
#[Override]
6666
public function showEditor(): bool
6767
{
6868
return match ($this) {
69-
self::ALWAYS_VALIDATED => false,
70-
self::VALIDATED_IF => true,
71-
self::NOT_VALIDATED => true,
69+
self::NO_VALIDATION => false,
70+
self::VALID_IF => true,
71+
self::INVALID_IF => true,
7272
};
7373
}
7474

7575
public function mustBeValidated(bool $conditions_result): bool
7676
{
7777
return match ($this) {
78-
self::ALWAYS_VALIDATED => true,
79-
self::VALIDATED_IF => $conditions_result,
80-
self::NOT_VALIDATED => !$conditions_result,
78+
self::NO_VALIDATION => true,
79+
self::VALID_IF => $conditions_result,
80+
self::INVALID_IF => !$conditions_result,
8181
};
8282
}
8383
}

src/Glpi/Form/Condition/ValueOperator.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public function getErrorMessageForValidation(
9595
ValidationStrategy $validation_strategy,
9696
ConditionData $condition_data
9797
): string {
98-
if ($validation_strategy === ValidationStrategy::VALIDATED_IF) {
98+
if ($validation_strategy === ValidationStrategy::VALID_IF) {
9999
return match ($this) {
100100
self::GREATER_THAN => sprintf(__("The value must be greater than %s"), $condition_data->getValue()),
101101
self::GREATER_THAN_OR_EQUALS => sprintf(__("The value must be greater than or equal to %s"), $condition_data->getValue()),
@@ -106,7 +106,7 @@ public function getErrorMessageForValidation(
106106

107107
default => __("The value is not valid"),
108108
};
109-
} elseif ($validation_strategy === ValidationStrategy::NOT_VALIDATED) {
109+
} elseif ($validation_strategy === ValidationStrategy::INVALID_IF) {
110110
return match ($this) {
111111
self::GREATER_THAN => sprintf(__("The value must not be greater than %s"), $condition_data->getValue()),
112112
self::GREATER_THAN_OR_EQUALS => sprintf(__("The value must not be greater than or equal to %s"), $condition_data->getValue()),

templates/pages/admin/form/conditional_validation_dropdown.html.twig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
{# Compute strategy, with a fallback to "Always visible" for new questions #}
3636
{% if item is null %}
37-
{% set question_strategy = enum('Glpi\\Form\\Condition\\ValidationStrategy').ALWAYS_VALIDATED %}
37+
{% set question_strategy = enum('Glpi\\Form\\Condition\\ValidationStrategy').NO_VALIDATION %}
3838
{% else %}
3939
{% set question_strategy = item.getConfiguredValidationStrategy() %}
4040
{% endif %}
@@ -44,7 +44,7 @@
4444
data-glpi-form-editor-validation-dropdown-container
4545
data-glpi-form-editor-question-extra-details
4646

47-
{% set hide = question_strategy == enum('Glpi\\Form\\Condition\\ValidationStrategy').ALWAYS_VALIDATED %}
47+
{% set hide = question_strategy == enum('Glpi\\Form\\Condition\\ValidationStrategy').NO_VALIDATION %}
4848
class="btn-group ms-1 {{ hide ? 'd-none' : '' }}"
4949
>
5050
<button

templates/pages/admin/form/conditional_validation_editor.html.twig

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,13 @@
3030
# ---------------------------------------------------------------------
3131
#}
3232

33-
{% set last_condition_is_filled = false %}
34-
35-
{% for condition in defined_conditions %}
36-
{% set condition_is_filled = condition.getItemUuid() != '' %}
37-
{% set last_condition_is_filled = loop.last and condition_is_filled %}
38-
{% set value_operators = manager.getValueOperatorForValidationDropdownValues(
39-
condition.getItemUuid()
40-
) %}
41-
42-
{# If no value operator is available, display a message #}
43-
{% if value_operators is empty %}
44-
<div class="alert alert-info mt-3">
45-
{{ __('Conditional validation is not available for this question type.') }}
46-
</div>
47-
{% else %}
33+
{% set value_operators = manager.getValueOperatorForValidationDropdownValues(question_uuid) %}
34+
{% if value_operators is empty %}
35+
<div class="alert alert-info mt-3">
36+
{{ __('Conditional validation is not available for this question type.') }}
37+
</div>
38+
{% else %}
39+
{% for condition in defined_conditions %}
4840
<div
4941
class="row mt-3"
5042
data-glpi-conditions-editor-condition
@@ -152,10 +144,8 @@
152144
</div>
153145
</div>
154146
</div>
155-
{% endif %}
156-
{% endfor %}
147+
{% endfor %}
157148

158-
{% if last_condition_is_filled %}
159149
<button
160150
data-glpi-condition-editor-add-condition
161151
type="button"

0 commit comments

Comments
 (0)