Commit a679569431d6e10eb7e9562b88e09d3ee681525a

Authored by Timur Kastemirov
1 parent 740e8bee

feedback calculator almost

common/mail/calculator.php 0 → 100644
  1 +<?php
  2 + use common\models\Feedback;
  3 + use yii\web\View;
  4 +
  5 + /**
  6 + * @var View $this
  7 + * @var Feedback $model
  8 + */
  9 +
  10 +?>
  11 +
  12 +<table>
  13 + <tbody>
  14 + <tr>
  15 + <td><b><?= \Yii::t('app', 'Name: ') ?></b></td>
  16 + <td><?= $model->name ?></td>
  17 + </tr>
  18 + <tr>
  19 + <td><b><?= \Yii::t('app', 'Topic: ') ?></b></td>
  20 + <td><?= $model->topic ?></td>
  21 + </tr>
  22 + <tr>
  23 + <td><b><?= \Yii::t('app', 'Phone: ') ?></b></td>
  24 + <td><?= $model->phone ?></td>
  25 + </tr>
  26 + <tr>
  27 + <td><b><?= \Yii::t('app', 'Email: ') ?></b></td>
  28 + <td><?= $model->email ?></td>
  29 + </tr>
  30 + <tr>
  31 + <td><b><?= \Yii::t('app', 'JSON string: ') ?></b></td>
  32 + <td><?= $model->calc_json_info ?></td>
  33 + </tr>
  34 + </tbody>
  35 +</table>
... ...
common/models/Feedback.php
... ... @@ -24,16 +24,18 @@
24 24 const calculator_attributes = [
25 25 'adress', 'module_install_angle', 'latitude', 'longitude',
26 26 'south_deviation', 'power_station_type', 'area', 'power',
27   - 'budget', 'day_consumption', 'month_consumption', 'consumptors_total_power',
28   - 'autonomous_days'
  27 + 'budget', 'auth_day', 'auth_month', 'auth_pwr_all',
  28 + 'auth_pwr_days'
29 29 ];
30   -
31   - private $attributeValues = [];
  30 +
  31 + public $attributeValues = [];
32 32  
33 33 public function __set($name, $value)
34 34 {
35 35 if(in_array($name, self::calculator_attributes)){
36   - $this->attributeValues[$name] = $value;
  36 + if(isset($value) && !empty($value)){
  37 + $this->attributeValues[$name] = $value;
  38 + }
37 39 }
38 40 else{
39 41 parent::__set($name, $value);
... ... @@ -111,7 +113,6 @@
111 113 'name',
112 114 'phone',
113 115 'email',
114   - 'returnUrl',
115 116 'topic',
116 117 'calc_json_info',
117 118  
... ... @@ -125,9 +126,9 @@
125 126 );
126 127 }
127 128  
128   - public function setCalcJsonInfo( array $value)
  129 + public function setCalcJsonInfo()
129 130 {
130   - $this->calc_json_info = json_encode($value);
  131 + $this->calc_json_info = json_encode($this->attributeValues);
131 132 }
132 133  
133 134 public function getCalcJsonInfo() : array
... ...
frontend/controllers/SiteController.php
... ... @@ -160,8 +160,8 @@
160 160 if (empty(Yii::$app->request->post())) {
161 161 throw new BadRequestHttpException();
162 162 } else {
163   -
164   - switch (Yii::$app->request->post('topic')){
  163 + $post = Yii::$app->request->post('Feedback');
  164 + switch ($post['topic']){
165 165 case Feedback::SCENARIO_FEEDBACK :
166 166 $model = new Feedback(['scenario' => Feedback::SCENARIO_FEEDBACK]);
167 167 $view = 'feedback';
... ... @@ -178,14 +178,7 @@
178 178 $model = new Feedback(['scenario' => Feedback::SCENARIO_CALCULATOR]);
179 179 $view = 'calculator';
180 180 $isLoaded = $model->load(Yii::$app->request->post());
181   - $newPost = [];
182   - foreach (Feedback::calculator_attributes as $calculator_attribute_name){
183   - $calculator_attribute_value = Yii::$app->request->post($calculator_attribute_name);
184   - if( isset($calculator_attribute_value) && !empty($calculator_attribute_value) ){
185   - $newPost[$calculator_attribute_name] = $calculator_attribute_value;
186   - }
187   - }
188   - $model->setCalcJsonInfo($newPost);
  181 + $model->setCalcJsonInfo();
189 182 break;
190 183  
191 184 default:
... ... @@ -216,6 +209,8 @@
216 209 return [
217 210 'success' => true,
218 211 'message' => 'Success message',
  212 + 'view' => $view,
  213 + 'model' => $model->attributeValues,
219 214 'alert' => $this->renderPartial('success_alert'),
220 215 ];
221 216 } else {
... ...
frontend/views/layouts/main.php
... ... @@ -565,165 +565,98 @@
565 565 <div class="col-md-12">
566 566 <div class="row">
567 567 <div class="col-md-4">
568   - <div class="form-group field-calculate-email">
569   - <label class="control-label"><?= \Yii::t(
570   - 'app',
571   - 'info_area'
572   - ) ?></label>
573   - <input type="text" class="form-control">
574   -
575   - <p class="help-block help-block-error"></p>
576   - </div>
  568 + <?= $form->field($feedback, "area")
  569 + ->textInput()
  570 + ->label(
  571 + \Yii::t(
  572 + 'app',
  573 + 'info_area'
  574 + )
  575 + )?>
577 576 </div>
578 577 <div class="col-md-4">
579   - <div class="form-group field-calculate-email">
580   - <label class="control-label"><?= \Yii::t(
581   - 'app',
582   - 'info_power'
583   - ) ?></label>
584   - <input type="text" class="form-control">
585   -
586   - <p class="help-block help-block-error"></p>
587   - </div>
  578 + <?= $form->field($feedback, "power")
  579 + ->textInput()
  580 + ->label(
  581 + \Yii::t(
  582 + 'app',
  583 + 'info_power'
  584 + )
  585 + )?>
588 586 </div>
589 587 <div class="col-md-4">
590   - <div class="form-group field-calculate-email">
591   - <label class="control-label"><?= \Yii::t(
592   - 'app',
593   - 'info_budget'
594   - ) ?></label>
595   - <input type="text" class="form-control">
596   -
597   - <p class="help-block help-block-error"></p>
598   - </div>
  588 + <?= $form->field($feedback, "budget")
  589 + ->textInput()
  590 + ->label(
  591 + \Yii::t(
  592 + 'app',
  593 + 'info_budget'
  594 + )
  595 + )?>
599 596 </div>
600 597 </div>
601 598 </div>
602 599 </div>
603 600 </div>
604 601 </div>
605   -
606   - <?php $form::end()?>
607 602  
608   - <form action="" id="calculate-form">
609   -
610   - <div class="row">
611   - <div class="col-md-12">
612   - <p style="font-weight:bold;"><?= \Yii::t('app', 'info_power_ses') ?></p>
613   - <div class="row">
614   - <div class="col-md-12">
615   - <div class="row" style="margin-bottom: 15px;">
616   - <div class="col-md-3 col-sm-12 col-xs-12">
617   - <input class="custom-radio" id="custom-radio-Автономная" type="radio" name="Calculate[mode]" value="Автономная"><label for="custom-radio-Автономная"></label><span style="margin-left:5px;"><?= \Yii::t(
618   - 'app',
619   - 'authonomous'
620   - ) ?></span></div>
621   - <div class="col-md-3 col-sm-12 col-xs-12">
622   - <input class="custom-radio" id="custom-radio-Сетевая" type="radio" name="Calculate[mode]" value="Сетевая"><label for="custom-radio-Сетевая"></label><span style="margin-left:5px;"><?= \Yii::t(
623   - 'app',
624   - 'ses_network'
625   - ) ?></span></div>
626   - </div>
627   - </div>
628   - <div class="col-md-12">
629   - <div class="row">
630   - <div class="col-md-4">
631   - <div class="form-group field-calculate-email">
632   - <label class="control-label"><?= \Yii::t(
633   - 'app',
634   - 'info_area'
635   - ) ?></label>
636   - <input type="text" class="form-control">
637   -
638   - <p class="help-block help-block-error"></p>
639   - </div>
640   - </div>
641   - <div class="col-md-4">
642   - <div class="form-group field-calculate-email">
643   - <label class="control-label"><?= \Yii::t(
644   - 'app',
645   - 'info_power'
646   - ) ?></label>
647   - <input type="text" class="form-control">
648   -
649   - <p class="help-block help-block-error"></p>
650   - </div>
651   - </div>
652   - <div class="col-md-4">
653   - <div class="form-group field-calculate-email">
654   - <label class="control-label"><?= \Yii::t(
655   - 'app',
656   - 'info_budget'
657   - ) ?></label>
658   - <input type="text" class="form-control">
659   -
660   - <p class="help-block help-block-error"></p>
661   - </div>
662   - </div>
663   - </div>
664   - </div>
665   - </div>
666   - </div>
667   - </div>
668   -
669   - <div class="row">
670   - <div class="col-md-12">
671   - <p style="font-weight:bold;"><?= \Yii::t(
672   - 'app',
673   - 'info_power_ses_auth'
674   - ) ?></p>
675   - <div class="row">
676   - <div class="col-md-6">
677   - <div class="form-group field-calculate-email">
678   - <label class="control-label"><?= \Yii::t(
  603 + <div class="row">
  604 + <div class="col-md-12">
  605 + <p style="font-weight:bold;"><?= \Yii::t(
  606 + 'app',
  607 + 'info_power_ses_auth'
  608 + ) ?></p>
  609 + <div class="row">
  610 + <div class="col-md-6">
  611 + <?=$form->field($feedback, "auth_day")
  612 + ->textInput()
  613 + ->label(
  614 + \Yii::t(
679 615 'app',
680 616 'info_auth_day'
681   - ) ?></label>
682   - <input type="text" class="form-control">
683   -
684   - <p class="help-block help-block-error"></p>
685   - </div>
686   - <div class="form-group field-calculate-email">
687   - <label class="control-label"><?= \Yii::t(
  617 + )
  618 + )?>
  619 +
  620 + <?=$form->field($feedback, "auth_month")
  621 + ->textInput()
  622 + ->label(
  623 + \Yii::t(
688 624 'app',
689 625 'info_auth_month'
690   - ) ?></label>
691   - <input type="text" class="form-control">
692   -
693   - <p class="help-block help-block-error"></p>
694   - </div>
695   - </div>
696   - <div class="col-md-6">
697   - <div class="form-group field-calculate-email">
698   - <label class="control-label"><?= \Yii::t(
  626 + )
  627 + )?>
  628 + </div>
  629 +
  630 + <div class="col-md-6">
  631 + <?=$form->field($feedback, "auth_pwr_all")
  632 + ->textInput()
  633 + ->label(
  634 + \Yii::t(
699 635 'app',
700 636 'info_auth_pwr_all'
701   - ) ?></label>
702   - <input type="text" class="form-control">
703   -
704   - <p class="help-block help-block-error"></p>
705   - </div>
706   - <div class="form-group field-calculate-email">
707   - <label class="control-label"><?= \Yii::t(
  637 + )
  638 + )?>
  639 + <?=$form->field($feedback, "auth_pwr_days")
  640 + ->textInput()
  641 + ->label(
  642 + \Yii::t(
708 643 'app',
709 644 'info_auth_pwr_days'
710   - ) ?></label>
711   - <input type="text" class="form-control">
712   -
713   - <p class="help-block help-block-error"></p>
714   - </div>
715   - </div>
  645 + )
  646 + )?>
716 647 </div>
717 648 </div>
718 649 </div>
719   -
720   - <p class="text-center submit-wr">
721   - <button type="submit" class="send-form btn btn-lg btn-template-primary"><?= \Yii::t(
722   - 'app',
723   - 'info_calculate'
724   - ) ?></button>
725   - </p>
726   - </form>
  650 + </div>
  651 +
  652 + <p class="text-center submit-wr">
  653 + <button type="submit" class="send-form btn btn-lg btn-template-primary"><?= \Yii::t(
  654 + 'app',
  655 + 'info_calculate'
  656 + ) ?></button>
  657 + </p>
  658 +
  659 + <?php $form::end()?>
727 660  
728 661 </div>
729 662 </div>
... ...
frontend/web/js/script.js
... ... @@ -6,7 +6,7 @@ $(
6 6 */
7 7 $(document)
8 8 .on(
9   - 'beforeSubmit', '#feedback-form', function(e) {
  9 + 'beforeSubmit', '#calculate-form, #feedback-form', function(e) {
10 10 var f = this;
11 11 var form = $(this);
12 12 var formData = form.serialize();
... ... @@ -17,7 +17,7 @@ $(
17 17 data: formData,
18 18 success: function(data) {
19 19 f.reset();
20   - $('#feedback-modal')
  20 + $('#feedback-modal,#calculate-modal')
21 21 .modal('hide');
22 22 form.data('yiiActiveForm').validated = false;
23 23 $('#success-modal')
... ... @@ -32,7 +32,7 @@ $(
32 32 }
33 33 )
34 34 .on(
35   - 'submit', '#feedback-form', function(e) {
  35 + 'submit', '#calculate-form, #feedback-form', function(e) {
36 36 e.preventDefault();
37 37 }
38 38 );
... ...