Commit f0f915df9a171a77beb555d456c6e382e3e13397
1 parent
77092529
add Vitaliy's widgets
Showing
7 changed files
with
102 additions
and
70 deletions
Show diff stats
backend/web/js/option.js
@@ -17,14 +17,7 @@ function checkboxerInit() { | @@ -17,14 +17,7 @@ function checkboxerInit() { | ||
17 | $(value).trigger('change'); | 17 | $(value).trigger('change'); |
18 | }); | 18 | }); |
19 | } | 19 | } |
20 | -function accountRedraw() { | ||
21 | - var type = $('input[name="User[type]"]:checked').val(); | ||
22 | - if(type == 2) { | ||
23 | - $('#form_definition').addClass('form_for_company'); | ||
24 | - } else { | ||
25 | - $('#form_definition').removeClass('form_for_company'); | ||
26 | - } | ||
27 | -} | 20 | + |
28 | $(function() { | 21 | $(function() { |
29 | var counter = 0; | 22 | var counter = 0; |
30 | $(document).on('click', '.add_row', function() { | 23 | $(document).on('click', '.add_row', function() { |
frontend/config/main.php
@@ -47,6 +47,7 @@ return [ | @@ -47,6 +47,7 @@ return [ | ||
47 | 'showScriptName' => false, | 47 | 'showScriptName' => false, |
48 | 'rules' => [ | 48 | 'rules' => [ |
49 | 'landing/<view:[\w-]+>' => 'landing/view', | 49 | 'landing/<view:[\w-]+>' => 'landing/view', |
50 | + 'site/city/<query:[\d]+>' => 'site/city', | ||
50 | ] | 51 | ] |
51 | ], | 52 | ], |
52 | ], | 53 | ], |
frontend/controllers/SiteController.php
@@ -12,6 +12,7 @@ use frontend\models\ContactForm; | @@ -12,6 +12,7 @@ use frontend\models\ContactForm; | ||
12 | use frontend\models\Options; | 12 | use frontend\models\Options; |
13 | use frontend\models\OptionValues; | 13 | use frontend\models\OptionValues; |
14 | use yii\base\InvalidParamException; | 14 | use yii\base\InvalidParamException; |
15 | +use yii\db\Query; | ||
15 | use yii\web\BadRequestHttpException; | 16 | use yii\web\BadRequestHttpException; |
16 | use yii\web\Controller; | 17 | use yii\web\Controller; |
17 | use yii\filters\VerbFilter; | 18 | use yii\filters\VerbFilter; |
@@ -48,6 +49,23 @@ class SiteController extends Controller | @@ -48,6 +49,23 @@ class SiteController extends Controller | ||
48 | 49 | ||
49 | 50 | ||
50 | 51 | ||
52 | + public function actionCity($query){ | ||
53 | + \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; | ||
54 | + $out = ['results' => ['id' => '', 'text' => '']]; | ||
55 | + if (!is_null($query)) { | ||
56 | + $query = new Query(); | ||
57 | + $query->select('id, name AS text') | ||
58 | + ->from('city') | ||
59 | + ->where(['like', 'name', $query]) | ||
60 | + ->limit(20); | ||
61 | + $command = $query->createCommand(); | ||
62 | + $data = $command->queryAll(); | ||
63 | + $out['results'] = array_values($data); | ||
64 | + } | ||
65 | + | ||
66 | + return $out; | ||
67 | + } | ||
68 | + | ||
51 | 69 | ||
52 | public function actionFormsModal() | 70 | public function actionFormsModal() |
53 | { | 71 | { |
frontend/models/SignupForm.php
@@ -13,6 +13,10 @@ class SignupForm extends Model | @@ -13,6 +13,10 @@ class SignupForm extends Model | ||
13 | public $username; | 13 | public $username; |
14 | public $email; | 14 | public $email; |
15 | public $password; | 15 | public $password; |
16 | + public $firstname; | ||
17 | + public $lastname; | ||
18 | + public $verifyCode; | ||
19 | + public $location; | ||
16 | 20 | ||
17 | /** | 21 | /** |
18 | * @inheritdoc | 22 | * @inheritdoc |
@@ -25,12 +29,16 @@ class SignupForm extends Model | @@ -25,12 +29,16 @@ class SignupForm extends Model | ||
25 | ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'], | 29 | ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'], |
26 | ['username', 'string', 'min' => 2, 'max' => 255], | 30 | ['username', 'string', 'min' => 2, 'max' => 255], |
27 | 31 | ||
32 | + ['location', 'string', 'min' => 2, 'max' => 255], | ||
33 | + | ||
28 | ['email', 'filter', 'filter' => 'trim'], | 34 | ['email', 'filter', 'filter' => 'trim'], |
29 | ['email', 'required'], | 35 | ['email', 'required'], |
30 | ['email', 'email'], | 36 | ['email', 'email'], |
31 | ['email', 'string', 'max' => 255], | 37 | ['email', 'string', 'max' => 255], |
32 | ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'], | 38 | ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'], |
33 | 39 | ||
40 | + ['verifyCode', 'captcha'], | ||
41 | + | ||
34 | ['password', 'required'], | 42 | ['password', 'required'], |
35 | ['password', 'string', 'min' => 6], | 43 | ['password', 'string', 'min' => 6], |
36 | ]; | 44 | ]; |
frontend/views/accounts/general.php
@@ -70,29 +70,23 @@ | @@ -70,29 +70,23 @@ | ||
70 | </div> | 70 | </div> |
71 | <div class="general-who style border-general"> | 71 | <div class="general-who style border-general"> |
72 | <div class="general-who-title gen-admin-title">Кто вы:</div> | 72 | <div class="general-who-title gen-admin-title">Кто вы:</div> |
73 | + | ||
73 | <?= $form->field ($user, 'type') | 74 | <?= $form->field ($user, 'type') |
74 | - ->label ('Кто вы') | ||
75 | - ->radioList ([1 => 'Частное лицо', 2 => 'Компания']); | ||
76 | - ?> | ||
77 | - | ||
78 | -<!-- --><?//= $form->field ($user, 'type') | ||
79 | -// ->label (false) | ||
80 | -// ->radioList ( | ||
81 | -// [1 => 'Male', 0 => 'Female'], | ||
82 | -// [ | ||
83 | -// 'item' => function($index, $label, $name, $checked, $value) { | ||
84 | -// | ||
85 | -// $return = '<label class="modal-radio">'; | ||
86 | -// $return .= '<input type="radio" name="' . $name . '" value="' . $value . '" tabindex="3">'; | ||
87 | -// $return .= '<i></i>'; | ||
88 | -// $return .= '<span>' . ucwords($label) . '</span>'; | ||
89 | -// $return .= '</label>'; | ||
90 | -// | ||
91 | -// return $return; | ||
92 | -// } | ||
93 | -// ] | ||
94 | -// ); | ||
95 | -// ?> | 75 | + ->label (false) |
76 | + ->radioList ( | ||
77 | + [1 => 'Частное лицо', 2 => 'Компания'], | ||
78 | + [ | ||
79 | + 'item' => function($index, $label, $name, $checked, $value) { | ||
80 | + $return = '<label>'; | ||
81 | + $return .= '<input type="radio" name="' . $name . '" value="' . $value . '" '.($checked ? "checked" :"").' >'; | ||
82 | + $return .= '<span></span>' . ucwords($label); | ||
83 | + $return .= '</label>'; | ||
84 | + | ||
85 | + return $return; | ||
86 | + } | ||
87 | + ] | ||
88 | + ); | ||
89 | + ?> | ||
96 | 90 | ||
97 | 91 | ||
98 | </div> | 92 | </div> |
frontend/views/site/registration.php
@@ -3,7 +3,9 @@ | @@ -3,7 +3,9 @@ | ||
3 | * @var $user common\models\User | 3 | * @var $user common\models\User |
4 | * @var $user_info common\models\UserInfo | 4 | * @var $user_info common\models\UserInfo |
5 | */ | 5 | */ |
6 | + use yii\captcha\Captcha; | ||
6 | use yii\widgets\ActiveForm; | 7 | use yii\widgets\ActiveForm; |
8 | + $this->registerJsFile('/js/selectize.js'); | ||
7 | ?> | 9 | ?> |
8 | <div class="section-box content"> | 10 | <div class="section-box content"> |
9 | <div class="section-box registration"> | 11 | <div class="section-box registration"> |
@@ -15,13 +17,7 @@ | @@ -15,13 +17,7 @@ | ||
15 | 17 | ||
16 | <div class="input-blocks-wrapper"> | 18 | <div class="input-blocks-wrapper"> |
17 | <div class="input-blocks"> | 19 | <div class="input-blocks"> |
18 | - <?= $form->field($model, 'username')?> | ||
19 | - | ||
20 | - <div class="form-group field-accountsform-email require has-erro"> | ||
21 | - <label for="input-txt-1">Логин</label> | ||
22 | - <input class="custom-input-2" id="input-txt-1" type="text"> | ||
23 | - <div class="help-block">Значение «E-mail (Логин)» не является правильным email адресом.</div> | ||
24 | - </div> | 20 | + <?= $form->field($model, 'username')->textInput(['class'=>'custom-input-2'])?> |
25 | </div> | 21 | </div> |
26 | <div class="input-blocks-help-wr"> | 22 | <div class="input-blocks-help-wr"> |
27 | <div class="input-blocks-help">Логин должен содержать не менее 3-х символов, начинаться с английской буквы и заканчиваться буквой или цифрой. Допускаются английские буквы, цифры и знаки 'тире', 'подчеркивание', 'точка'</div> | 23 | <div class="input-blocks-help">Логин должен содержать не менее 3-х символов, начинаться с английской буквы и заканчиваться буквой или цифрой. Допускаются английские буквы, цифры и знаки 'тире', 'подчеркивание', 'точка'</div> |
@@ -31,8 +27,7 @@ | @@ -31,8 +27,7 @@ | ||
31 | <div class="input-blocks-wrapper"> | 27 | <div class="input-blocks-wrapper"> |
32 | <div class="input-blocks"> | 28 | <div class="input-blocks"> |
33 | 29 | ||
34 | - <label for="input-txt-2">Пароль</label> | ||
35 | - <input class="custom-input-2" id="input-txt-2" type="text"> | 30 | + <?= $form->field($model, 'password')->passwordInput(['class'=>'custom-input-2'])?> |
36 | 31 | ||
37 | </div> | 32 | </div> |
38 | <div class="input-blocks-help-wr"> | 33 | <div class="input-blocks-help-wr"> |
@@ -42,8 +37,7 @@ | @@ -42,8 +37,7 @@ | ||
42 | 37 | ||
43 | <div class="input-blocks-wrapper"> | 38 | <div class="input-blocks-wrapper"> |
44 | <div class="input-blocks"> | 39 | <div class="input-blocks"> |
45 | - <label for="input-txt-3">E-mail</label> | ||
46 | - <input class="custom-input-2" id="input-txt-3" type="text"> | 40 | + <?= $form->field($model, 'email')->textInput(['class'=>'custom-input-2'])?> |
47 | </div> | 41 | </div> |
48 | <div class="input-blocks-help-wr"> | 42 | <div class="input-blocks-help-wr"> |
49 | <div class="input-blocks-help">На этот адрес электронной почты будет отправлено уведомление о регистрации.</div> | 43 | <div class="input-blocks-help">На этот адрес электронной почты будет отправлено уведомление о регистрации.</div> |
@@ -55,6 +49,7 @@ | @@ -55,6 +49,7 @@ | ||
55 | <div class="who-you-are-form-wr style"> | 49 | <div class="who-you-are-form-wr style"> |
56 | <div class="who-you-are-form"> | 50 | <div class="who-you-are-form"> |
57 | <div class="check-radio-wr"> | 51 | <div class="check-radio-wr"> |
52 | + | ||
58 | <div class="custom-form-buttons"> | 53 | <div class="custom-form-buttons"> |
59 | <input class="custom-radio" id="custom-radio-1" name="group-1" checked="checked" type="radio"> | 54 | <input class="custom-radio" id="custom-radio-1" name="group-1" checked="checked" type="radio"> |
60 | <label for="custom-radio-1"><span></span>Частное лицо copy</label> | 55 | <label for="custom-radio-1"><span></span>Частное лицо copy</label> |
@@ -108,15 +103,6 @@ | @@ -108,15 +103,6 @@ | ||
108 | <option value="5">Черкасы</option> | 103 | <option value="5">Черкасы</option> |
109 | </select> | 104 | </select> |
110 | </div> | 105 | </div> |
111 | - | ||
112 | - <!--<div class="input-blocks">--> | ||
113 | - <!--<select name="" id="" >--> | ||
114 | - <!--<option selected disabled></option>--> | ||
115 | - <!--<option value="">Киев</option>--> | ||
116 | - <!--<option value="">Киев</option>--> | ||
117 | - <!--<option value="">Киев</option>--> | ||
118 | - <!--</select>--> | ||
119 | - <!--</div>--> | ||
120 | </div> | 106 | </div> |
121 | 107 | ||
122 | <div class="input-blocks-wrapper city-two"> | 108 | <div class="input-blocks-wrapper city-two"> |
@@ -126,18 +112,21 @@ | @@ -126,18 +112,21 @@ | ||
126 | </div> | 112 | </div> |
127 | <div class="form-help-two">Если вашего города нет в списке, введите его. </div> | 113 | <div class="form-help-two">Если вашего города нет в списке, введите его. </div> |
128 | </div> | 114 | </div> |
129 | - | ||
130 | - <div class="input-blocks-wrapper captcha"> | ||
131 | - <div class="input-blocks-captcha"> | ||
132 | - <img id="accountsform-verifycode-image" src="/images/captcha.png" alt=""> | ||
133 | - </div> | ||
134 | - </div> | ||
135 | - | ||
136 | <div class="input-blocks-wrapper"> | 115 | <div class="input-blocks-wrapper"> |
137 | - <div class="input-blocks"> | ||
138 | - <label for="input-txt-8">Введите проверочный код</label> | ||
139 | - <input class="custom-input-2" id="input-txt-8" type="text"> | ||
140 | - </div> | 116 | + <?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [ |
117 | + 'template' => ' | ||
118 | + <div class="input-blocks-wrapper"> | ||
119 | + <div class="input-blocks"> | ||
120 | + <label for="input-txt-8">Введите проверочный код</label> | ||
121 | + {input} | ||
122 | + </div> | ||
123 | + </div> | ||
124 | + <div class="input-blocks-wrapper captcha"> | ||
125 | + <div class="input-blocks-captcha"> | ||
126 | + {image} | ||
127 | + </div> | ||
128 | + </div>', | ||
129 | + ])->label(false) ?> | ||
141 | </div> | 130 | </div> |
142 | <div class="input-blocks-wrapper button"> | 131 | <div class="input-blocks-wrapper button"> |
143 | <button type="submit" value="Submit">Зарегистрироваться</button> | 132 | <button type="submit" value="Submit">Зарегистрироваться</button> |
frontend/web/js/selectize.js
@@ -3046,15 +3046,44 @@ | @@ -3046,15 +3046,44 @@ | ||
3046 | 3046 | ||
3047 | $(document).ready(function() { | 3047 | $(document).ready(function() { |
3048 | var $select = $('.control-group select').selectize({ | 3048 | var $select = $('.control-group select').selectize({ |
3049 | - create: true, | ||
3050 | - sortField: { | ||
3051 | - field: 'text', | ||
3052 | - direction: 'asc' | ||
3053 | - }, | ||
3054 | - dropdownParent: null, | ||
3055 | - onDropdownClose: function() { | ||
3056 | - $("#btnClear").css({display:'block'}) | ||
3057 | - } | 3049 | + valueField: 'AuthorId', |
3050 | + labelField: 'AuthorName', | ||
3051 | + searchField: ['AuthorName'], | ||
3052 | + maxOptions: 10, | ||
3053 | + minimumInputLength: 2, | ||
3054 | + //create: function (input, callback) { | ||
3055 | + // $.ajax({ | ||
3056 | + // url: '/site/city', | ||
3057 | + // data: { 'AuthorName': input }, | ||
3058 | + // type: 'POST', | ||
3059 | + // dataType: 'json', | ||
3060 | + // success: function (response) { | ||
3061 | + // return callback(response); | ||
3062 | + // } | ||
3063 | + // }); | ||
3064 | + //}, | ||
3065 | + render: { | ||
3066 | + option: function (item, escape) { | ||
3067 | + return '<div>' + escape(item.AuthorName) + '</div>'; | ||
3068 | + } | ||
3069 | + }, | ||
3070 | + load: function (query, callback) { | ||
3071 | + if (!query.length) return callback(); | ||
3072 | + $.ajax({ | ||
3073 | + url: '/site/city/' + query, | ||
3074 | + type: 'POST', | ||
3075 | + dataType: 'json', | ||
3076 | + data: { | ||
3077 | + maxresults: 10 | ||
3078 | + }, | ||
3079 | + error: function () { | ||
3080 | + callback(); | ||
3081 | + }, | ||
3082 | + success: function (res) { | ||
3083 | + callback(res); | ||
3084 | + } | ||
3085 | + }); | ||
3086 | + } | ||
3058 | 3087 | ||
3059 | }); | 3088 | }); |
3060 | 3089 |