Fix bids module

parent 69d8d25c
......@@ -19,11 +19,24 @@ class Bid extends \common\components\ActiveRecordModel
{
const SCENARIO_PROJECT = 'project';
const SCENARIO_CALLBACK = 'callback';
const SCENARIO_SUBSCRIBE = 'subscribe';
const FORM_SUBSCRIBE = 'subscribe';
const FORM_CALLBACK = 'callback';
const FORM_PROJECT = 'project';
const FORM_MESSAGE = 'message';
const FILE_FOLDER = '/uploads/bids/';
public $file;
public static $form_titles = [
self::FORM_PROJECT => 'Расчитать проект',
self::FORM_CALLBACK => 'Обратный звонок',
self::FORM_SUBSCRIBE => 'Подписка',
self::FORM_MESSAGE => 'Сообщение с сайта',
];
/**
* @inheritdoc
*/
......@@ -47,16 +60,18 @@ class Bid extends \common\components\ActiveRecordModel
{
return [
[['name', 'phone', 'email'], 'required', 'on' => self::SCENARIO_PROJECT],
[['email'], 'email', 'on' => self::SCENARIO_PROJECT],
[['email'], 'email'],
[['name', 'phone'], 'required', 'on' => self::SCENARIO_CALLBACK],
[['email'], 'required', 'on' => self::SCENARIO_SUBSCRIBE],
[['file'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg, gif, xls, xlsx, doc, docx, pdf'],
[['text'], 'string'],
[['name'], 'string', 'max' => 100],
[['phone'], 'string', 'max' => 30],
[['email'], 'string', 'max' => 70],
[['filename'], 'string', 'max' => 50],
[['filename', 'form'], 'string', 'max' => 50],
];
}
......@@ -73,6 +88,7 @@ class Bid extends \common\components\ActiveRecordModel
'filename' => 'Прикрепленный файл',
'file' => 'Прикрепленный файл',
'text' => 'Сообщение',
'form' => 'Форма отправки',
'created_at' => 'Дата добавления',
'updated_at' => 'Дата обновления',
];
......
......@@ -19,7 +19,7 @@ class SearchBid extends Bid
{
return [
[['id'], 'integer'],
[['name', 'phone', 'email', 'filename', 'text', 'created_at'], 'safe'],
[['name', 'phone', 'email', 'filename', 'text', 'created_at', 'form'], 'safe'],
];
}
......@@ -60,6 +60,7 @@ class SearchBid extends Bid
// grid filtering conditions
$query->andFilterWhere([
'id' => $this->id,
'form' => $this->form,
'created_at' => ($this->created_at?strtotime($this->created_at):$this->created_at),
]);
......
......@@ -34,6 +34,14 @@ $this->params['breadcrumbs'][] = $this->title;
}
],
'text:ntext',
[
'attribute' => 'form',
'filter' => Bid::$form_titles,
'value' => function($model)
{
return ($model->form?Bid::$form_titles[$model->form]:null);
}
],
[
'attribute' => 'created_at',
'format' => ['date', 'php:d.m.Y H:i:s']
......
<?php
use yii\db\Schema;
use yii\db\Migration;
class m160205_084445_addcolumn_bids extends Migration
{
// Use safeUp/safeDown to run migration code within a transaction
public function safeUp()
{
$this->addColumn('bids', 'form', Schema::TYPE_STRING . '(50) DEFAULT NULL');
}
public function safeDown()
{
$this->dropColumn('bids', 'form');
}
}
......@@ -22,7 +22,9 @@ use common\modules\bids\models\Bid;
],
]); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
<?php echo Html::hiddenInput('Bid[form]', Bid::FORM_CALLBACK, ['class' => 'not_clear']); ?>
<?php echo $form->field($model, 'name', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
......
<?php
use yii\widgets\ActiveForm;
use yii\helpers\Html;
use common\modules\bids\models\Bid;
?>
<div class="row">
<div class="col-md-12 col-xs-12 col-sm-12">
<div class="keys_send_mail">
<p>Процесс создания кейса очень трудоемкий.Поэтому мы занимаемся созданием кейсов свободное от работы время. Подпишитесь, чтобы следить за обновлениями.</p>
<form class="keys_mail_form">
<input type="email" placeholder="E-mail*" class="field-input required email"></input>
<button class="save-button">Подписаться</button>
</form>
<div class="send_secce">Вы успешно подписались на обновление раздела «Кейсы». Нам приятно, что вы следите за нашим развитием :-)</div>
<?php
$model = new Bid;
$model->scenario = Bid::SCENARIO_SUBSCRIBE;
$form = ActiveForm::begin([
'action' => '/',
'options' => [
'class' => 'keys_mail_form bids-form',
],
]); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
<?php echo Html::hiddenInput('Bid[form]', Bid::FORM_SUBSCRIBE, ['class' => 'not_clear']); ?>
<?php echo $form->field($model, 'email', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
'errorOptions' => []
])->textInput([
'placeholder' => 'E-mail*'
]); ?>
<?php echo Html::submitButton('Подписаться', ['class' => 'save-button']); ?>
<?php ActiveForm::end(); ?>
<div class="send_secce" style="display:none;">Вы успешно подписались на обновление раздела «Кейсы». Нам приятно, что вы следите за нашим развитием :-)</div>
</div>
</div>
</div>
\ No newline at end of file
......@@ -28,7 +28,9 @@ use common\modules\bids\models\Bid;
],
]); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
<?php echo Html::hiddenInput('Bid[form]', Bid::FORM_PROJECT, ['class' => 'not_clear']); ?>
<?php echo $form->field($model, 'name', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
......
......@@ -92,7 +92,9 @@ use \common\modules\bids\models\Bid;
],
]); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario); ?>
<?php echo Html::hiddenInput('scenario', $model->scenario, ['class' => 'not_clear']); ?>
<?php echo Html::hiddenInput('Bid[form]', Bid::FORM_MESSAGE, ['class' => 'not_clear']); ?>
<?php echo $form->field($model, 'name', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>',
......
......@@ -34,7 +34,8 @@ $('form.bids-form').on('beforeSubmit', function(e) {
if(response.success)
{
form.find('input[name!="scenario"], textarea').val('');
form.find('input:not(.not_clear), textarea').val('');
$('.send_secce').show();
}
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment