jenkins-bot has submitted this change and it was merged.

Change subject: Flash campaign input data back to view when there were failures 
due to errors
......................................................................


Flash campaign input data back to view when there were failures due to errors

Don't make the admin re-fill the whole form due to errors in some 
fields/missing data

Change-Id: I742b3e1c3512f80ea0c3b4dedf205fc0bbf716df
---
M data/templates/admin/campaign.html
M src/Controllers/Admin/Campaign.php
2 files changed, 25 insertions(+), 6 deletions(-)

Approvals:
  Niharika29: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/data/templates/admin/campaign.html 
b/data/templates/admin/campaign.html
index 19fe016..245e442 100644
--- a/data/templates/admin/campaign.html
+++ b/data/templates/admin/campaign.html
@@ -2,7 +2,7 @@
 
 {% set errors = flash.form_errors|default([]) %}
 {% if flash.form_defaults|default(false) %}
-{% set campaign = flash.form_defaults %}
+{% set ques = flash.form_defaults %}
 {% endif %}
 
 {% block javascript %}
@@ -62,17 +62,17 @@
   </div>
 
 {% for row in ques %}
-  <div class="form-group {{ "questions[#{row.id}]" in errors ? 'has-error' }}">
+  <div class="form-group">
     <label for="questions[{{ row.id }}]" class="col-sm-2 control-label">
       {{ 'admin-campaign-question'|message( loop.index ) }}
     </label>
-    <div class="col-sm-10">
+    <div class="col-sm-10 {{ "qtitles[#{row.id}]" in errors ? 'has-error' }}">
       <input type="text" class="form-control" name="qtitles[{{ row.id }}]" 
value="{{ row.question_title }}" placeholder="Add question title here" required>
     </div>
-    <div class="col-sm-10 col-sm-offset-2">
+    <div class="col-sm-10 col-sm-offset-2 {{ "questions[#{row.id}]" in errors 
? 'has-error' }}">
       <textarea class="form-control" rows="6" name="questions[{{ row.id }}]" 
placeholder="{{ 'admin-campaign-question-placeholder'|message }}">{{ 
row.question_body }}</textarea>
     </div>
-    <div class="col-sm-10 col-sm-offset-2">
+    <div class="col-sm-10 col-sm-offset-2 {{ "qfooters[#{row.id}]" in errors ? 
'has-error' }}">
       <input type="text" class="form-control" name="qfooters[{{ row.id }}]" 
value="{{ row.question_footer }}" placeholder="Add question footer string here" 
required>
     </div>
   </div>
diff --git a/src/Controllers/Admin/Campaign.php 
b/src/Controllers/Admin/Campaign.php
index e026043..4dfcecc 100644
--- a/src/Controllers/Admin/Campaign.php
+++ b/src/Controllers/Admin/Campaign.php
@@ -169,7 +169,26 @@
                } else {
                        $this->flash( 'error', 'Invalid submission.' );
                        $this->flash( 'form_errors', $this->form->getErrors() );
-                       // TODO: pass inputs to GET view (see Admin\User)
+
+                       $id = $this->request->post( 'id' );
+                       $questions = $this->form->get( 'questions' );
+                       $questionTitles = $this->form->get( 'qtitles' );
+                       $questionFooters = $this->form->get( 'qfooters' );
+                       $quesDefaults = array();
+                       if( $id == 'new' ) {
+                               for ( $idx = 0; $idx < 5; $idx ++ ) {
+                                       $quesDefaults[$idx] = array(
+                                               'id' => $idx,
+                                               'question_title' =>
+                                                       isset( 
$questionTitles[$idx] ) ? $questionTitles[$idx] : '',
+                                               'question_body' =>
+                                                       isset( $questions[$idx] 
) ? $questions[$idx] : '',
+                                               'question_footer' =>
+                                                       isset( 
$questionFooters[$idx] ) ? $questionFooters[$idx] : '',
+                                       );
+                               }
+                       }
+                       $this->flash( 'form_defaults', $quesDefaults );
                }
 
                $this->redirect( $this->urlFor( 'admin_campaign', array( 'id' 
=> $id ) ) );

-- 
To view, visit https://gerrit.wikimedia.org/r/197313
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I742b3e1c3512f80ea0c3b4dedf205fc0bbf716df
Gerrit-PatchSet: 4
Gerrit-Project: wikimedia/iegreview
Gerrit-Branch: master
Gerrit-Owner: Niharika29 <[email protected]>
Gerrit-Reviewer: BryanDavis <[email protected]>
Gerrit-Reviewer: Niharika29 <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to