From: Vincent Vanwaelscappel Date: Thu, 7 Sep 2023 08:06:11 +0000 (+0200) Subject: wip #6251 @1 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=c7f5c3a45ea1a71427bb77743863895a3797d4d3;p=fluidbook-toolbox.git wip #6251 @1 --- diff --git a/app/Models/Quiz.php b/app/Models/Quiz.php index 644f8256a..dc675528d 100644 --- a/app/Models/Quiz.php +++ b/app/Models/Quiz.php @@ -164,8 +164,15 @@ class Quiz extends ToolboxModel 'default' => true, 'type' => 'Checkbox', ]); - $this->addField('instant_success_messages', Textarea::class, __('Petits messages accompagnant une bonne réponse'), ['placeholder' => __('Bonne réponse'), 'hint' => __('Une phrase par ligne, la phrase affichée sera sélectionnée aléatoirement dans cette liste.') . ' ' . __(' Par défaut "Bonne réponse" dans la langue du quiz')]); - $this->addField('instant_fail_messages', Textarea::class, __('Petits messages accompagnant une mauvaise réponse'), ['placeholder' => __('Mauvaise réponse'), 'hint' => __('Une phrase par ligne, la phrase affichée sera sélectionnée aléatoirement dans cette liste.') . ' ' . __(' Par défaut "Mauvaise réponse" dans la langue du quiz')]); + $this->addField('instant_success_messages', Textarea::class, __('Petits messages accompagnant une bonne réponse'), + [ + 'when' => ['instantReview' => ['1']], + 'placeholder' => __('Bonne réponse'), 'hint' => __('Une phrase par ligne, la phrase affichée sera sélectionnée aléatoirement dans cette liste.') . ' ' . __(' Par défaut "Bonne réponse" dans la langue du quiz') + ]); + $this->addField('instant_fail_messages', Textarea::class, __('Petits messages accompagnant une mauvaise réponse'), [ + 'when' => ['instantReview' => ['1']], + 'placeholder' => __('Mauvaise réponse'), 'hint' => __('Une phrase par ligne, la phrase affichée sera sélectionnée aléatoirement dans cette liste.') . ' ' . __(' Par défaut "Mauvaise réponse" dans la langue du quiz') + ]); $this->addField('section_theme', FormBigSection::class, __('Thème graphique')); $this->addField('theme', \App\Fields\FluidbookTheme::class, __('Thème'), ['non_default_tracking' => false, 'default' => 3]); @@ -252,7 +259,8 @@ class Quiz extends ToolboxModel 'label' => $label, 'hint' => __('Code Javascript'), 'type' => Code::class, - 'when' => ['type' => 'quiz', 'language' => 'js'], + 'when' => ['type' => 'quiz'], + 'language' => 'js', ]); } @@ -264,10 +272,6 @@ class Quiz extends ToolboxModel 'add_label' => __('Nouveau résultat'), 'when' => ['type' => 'test'], ]); - - $this->addField('section_legacy', FormBigSection::class, __('Paramètres à supprimer')); - $this->addField('css', Code::class, __('Code CSS supplémentaire'), ['language' => 'css']); - } public function registerMediaConversions(Media $media = null): void diff --git a/app/SubForms/Quiz/Answer.php b/app/SubForms/Quiz/Answer.php index a11d251b9..9dbe95f3d 100644 --- a/app/SubForms/Quiz/Answer.php +++ b/app/SubForms/Quiz/Answer.php @@ -5,6 +5,7 @@ namespace App\SubForms\Quiz; use Cubist\Backpack\Magic\Fields\Integer; use Cubist\Backpack\Magic\Fields\SelectFromArray; +use Cubist\Backpack\Magic\Fields\Text; use Cubist\Backpack\Magic\Fields\Textarea; use Cubist\Backpack\Magic\SubForm; @@ -16,16 +17,22 @@ class Answer extends SubForm parent::init(); $this->addField(['name' => 'answer', - 'type' => 'Text', - 'label' => __('Titre de la réponse') + 'type' => Textarea::class, + 'rows' => 1, + 'label' => __('Réponse') ]); $this->addField(['name' => 'answer_text', 'type' => Textarea::class, 'label' => __('Texte de la réponse'), + 'rows' => 3, 'when' => ['type' => ['draganddrop']], - ], - ); + ]); + + $this->addField('proposition', Textarea::class, __('Proposition correspondante'), [ + 'rows' => 2, + 'when' => ['type' => ['match']], + ]); $this->addField(['name' => 'drop_area', 'type' => SelectFromArray::class, @@ -48,6 +55,7 @@ class Answer extends SubForm $this->addField(['name' => 'score', 'type' => Integer::class, 'label' => __('Score'), - 'default' => 1]); + 'default' => 1, + 'when' => ['type' => ['multiple']]]); } } diff --git a/app/SubForms/Quiz/Proposition.php b/app/SubForms/Quiz/Proposition.php new file mode 100644 index 000000000..c91062fe0 --- /dev/null +++ b/app/SubForms/Quiz/Proposition.php @@ -0,0 +1,15 @@ +addField('content', Textarea::class, '', ['rows' => 2]); + } +} diff --git a/app/SubForms/Quiz/Question.php b/app/SubForms/Quiz/Question.php index 94e5ba5e5..29f27afc3 100644 --- a/app/SubForms/Quiz/Question.php +++ b/app/SubForms/Quiz/Question.php @@ -5,6 +5,7 @@ namespace App\SubForms\Quiz; use App\SubForms\TitleAndText; use Cubist\Backpack\Magic\Fields\BunchOfFields; +use Cubist\Backpack\Magic\Fields\BunchOfFieldsMultiple; use Cubist\Backpack\Magic\Fields\Checkbox; use Cubist\Backpack\Magic\Fields\FormSeparator; use Cubist\Backpack\Magic\Fields\Integer; @@ -35,7 +36,7 @@ class Question extends SubForm 'options' => [ 'multiple' => __('Question à choix multiple'), 'draganddrop' => __('Classer les propositions'), - 'draganddropmatch' => __('Faire correspondre des propositions'), + 'match' => __('Faire correspondre des propositions'), 'text' => __('Texte'), 'textarea' => __('Texte long'), 'email' => __('E-mail'), @@ -43,8 +44,6 @@ class Question extends SubForm ] ]); - $this->addField('area_1', BunchOfFields::class, __('Zone 1'), ['when' => ['type' => 'draganddrop'], 'bunch' => TitleAndText::class]); - $this->addField('area_2', BunchOfFields::class, __('Zone 2'), ['when' => ['type' => 'draganddrop'], 'bunch' => TitleAndText::class]); $this->addField(['name' => 'placeholder', 'type' => 'Text', @@ -61,6 +60,9 @@ class Question extends SubForm $this->addField('', FormSeparator::class); + $this->addField('area_1', BunchOfFields::class, __('Zone 1'), ['when' => ['type' => 'draganddrop'], 'bunch' => TitleAndText::class]); + $this->addField('area_2', BunchOfFields::class, __('Zone 2'), ['when' => ['type' => 'draganddrop'], 'bunch' => TitleAndText::class]); + $this->addField(['name' => 'multiple', 'type' => 'Checkbox', 'label' => __('Plusieurs réponses possibles'), @@ -82,8 +84,16 @@ class Question extends SubForm 'bunch' => Answer::class, 'add_label' => __('Nouvelle réponse'), 'label' => __('Réponses'), - 'when' => ['type' => ['multiple', 'draganddrop']] + 'when' => ['type' => ['multiple', 'draganddrop', 'match']] ]); + + $this->addField('additional_proposition', BunchOfFieldsMultiple::class, __('Propositions supplémentaires'), + [ + 'when' => ['type' => ['match']], + 'bunch' => Proposition::class, 'add_label' => __('Nouvelle proposition'), 'hint' => __('Ces propositions ne correspondent à aucune réponse') + ] + ); + $this->addField('', FormSeparator::class); $this->addField('countdown_enable', Checkbox::class, __('Définir un temps de réponse limite')); $this->addField('countdown_time', Integer::class, __('Limite de durée de réponse'), ['suffix' => __('secondes'), 'default' => 60, 'when' => ['countdown_enable' => '1']]); diff --git a/app/SubForms/TitleAndText.php b/app/SubForms/TitleAndText.php index db79f016a..6ff8a470a 100644 --- a/app/SubForms/TitleAndText.php +++ b/app/SubForms/TitleAndText.php @@ -12,7 +12,7 @@ class TitleAndText extends SubForm { parent::init(); $this->addField('title', Text::class, '', ['placeholder' => __('Titre')]); - $this->addField('text', Textarea::class, '', ['placeholder' => __('Texte')]); + $this->addField('text', Textarea::class, '', ['rows' => 2, 'placeholder' => __('Texte')]); } }