Commit 1cd398eaec5d4d6cc0ff7bf39d1a5e4b55b0237b
Merge remote-tracking branch 'origin/master'
Showing
6 changed files
with
145 additions
and
60 deletions
Show diff stats
controllers/OrderController.php
... | ... | @@ -229,6 +229,9 @@ |
229 | 229 | } |
230 | 230 | |
231 | 231 | $model = new Order(); |
232 | + $model->phone = '+38(000)000-00-00'; | |
233 | + $model->name = \Yii::t('app', 'Новый заказ'); | |
234 | + $model->save(); | |
232 | 235 | |
233 | 236 | $dataProvider = new ActiveDataProvider( |
234 | 237 | [ |
... | ... | @@ -324,7 +327,13 @@ |
324 | 327 | |
325 | 328 | if ($model->load(Yii::$app->request->post()) && $model->save()) { |
326 | 329 | $this->unblockOrder($model->id); |
327 | - return $this->redirect([ 'index' ]); | |
330 | + return $this->render( | |
331 | + 'update', | |
332 | + [ | |
333 | + 'model' => $model, | |
334 | + 'dataProvider' => $dataProvider, | |
335 | + ] | |
336 | + ); | |
328 | 337 | } else { |
329 | 338 | return $this->render( |
330 | 339 | 'update', |
... | ... | @@ -401,7 +410,10 @@ |
401 | 410 | |
402 | 411 | public function actionExitOrder($id) |
403 | 412 | { |
404 | - $this->unblockOrder($id); | |
413 | + $model = $this->findModel($id); | |
414 | + if ($model->edit_id == \Yii::$app->user->id) { | |
415 | + $this->unblockOrder($id); | |
416 | + } | |
405 | 417 | return $this->redirect('index'); |
406 | 418 | } |
407 | 419 | |
... | ... | @@ -412,6 +424,9 @@ |
412 | 424 | |
413 | 425 | $model = $this->findModel(\Yii::$app->request->post('id')); |
414 | 426 | |
427 | + $user = User::find() | |
428 | + ->where([ 'id' => $model->edit_id ]) | |
429 | + ->one(); | |
415 | 430 | $model->edit_time = time(); |
416 | 431 | $model->edit_id = \Yii::$app->user->id; |
417 | 432 | |
... | ... | @@ -421,6 +436,7 @@ |
421 | 436 | if ($model->save()) { |
422 | 437 | return [ |
423 | 438 | 'time' => $date, |
439 | + 'user' => !empty( $user ) ? $user->username : '', | |
424 | 440 | ]; |
425 | 441 | } else { |
426 | 442 | return [ | ... | ... |
models/Order.php
models/OrderSearch.php
... | ... | @@ -75,6 +75,7 @@ |
75 | 75 | $dataProvider = new ActiveDataProvider( |
76 | 76 | [ |
77 | 77 | 'query' => $query, |
78 | + 'sort' => [ 'defaultOrder' => [ 'id' => SORT_DESC ] ], | |
78 | 79 | ] |
79 | 80 | ); |
80 | 81 | |
... | ... | @@ -155,7 +156,7 @@ |
155 | 156 | $query->andFilterWhere( |
156 | 157 | [ |
157 | 158 | 'manager_id' => $this->manager_id, |
158 | - | |
159 | + | |
159 | 160 | ] |
160 | 161 | ); |
161 | 162 | $query->andFilterWhere( | ... | ... |
views/order/_form.php
... | ... | @@ -63,9 +63,14 @@ $(document).on('change', '#sms-template-selector', function(event) { |
63 | 63 | }); |
64 | 64 | |
65 | 65 | $(document).on('click', '#send-sms-action', function(event) { |
66 | - console.log('click'); | |
67 | - var content = $('#sms-text-area').val() | |
68 | - var phone = $('input#order-phone').val(); | |
66 | + var variant = $('input[name=send-phone]:checked').val(); | |
67 | + var content = $('#sms-text-area').val(); | |
68 | + if (variant == 1) { | |
69 | + var phone = $('input#order-phone').val(); | |
70 | + } else if (variant == 2) { | |
71 | + var phone = $('input#order-phone2').val(); | |
72 | + } | |
73 | + console.log(phone); | |
69 | 74 | $.ajax({ |
70 | 75 | url: "/admin/ecommerce/order/send-sms", |
71 | 76 | method: "POST", |
... | ... | @@ -87,9 +92,18 @@ $(document).on('click', '#send-sms-action', function(event) { |
87 | 92 | JS; |
88 | 93 | |
89 | 94 | $this->registerJs($js, View::POS_READY); |
95 | + | |
96 | + $js = <<< JS | |
97 | +$(document).on('click', '#page-submit', function() { | |
98 | + $('#main-form').trigger('submit'); | |
99 | +}); | |
100 | +JS; | |
101 | + | |
102 | + $this->registerJs($js, View::POS_READY); | |
103 | + | |
90 | 104 | ?> |
91 | 105 | |
92 | -<?php $form = ActiveForm::begin(); ?> | |
106 | +<?php $form = ActiveForm::begin([ 'id' => 'main-form' ]); ?> | |
93 | 107 | <div class="container"> |
94 | 108 | <div class="form-group"> |
95 | 109 | <br> |
... | ... | @@ -215,24 +229,40 @@ JS; |
215 | 229 | ); |
216 | 230 | ?> |
217 | 231 | <br> |
218 | - <?php | |
219 | - if ($model->isNewRecord) { | |
220 | - echo Html::button( | |
221 | - \Yii::t('app', 'Отправить'), | |
222 | - [ | |
223 | - 'class' => 'btn btn-warning disabled', | |
224 | - ] | |
225 | - ); | |
226 | - } else { | |
227 | - echo Html::button( | |
228 | - \Yii::t('app', 'Отправить'), | |
229 | - [ | |
230 | - 'class' => 'btn btn-warning', | |
231 | - 'id' => 'send-sms-action', | |
232 | - ] | |
233 | - ); | |
234 | - } | |
235 | - ?> | |
232 | + <div class="row"> | |
233 | + <div class="col-md-6"> | |
234 | + <?php | |
235 | + if ($model->isNewRecord) { | |
236 | + echo Html::button( | |
237 | + \Yii::t('app', 'Отправить'), | |
238 | + [ | |
239 | + 'class' => 'btn btn-warning disabled', | |
240 | + ] | |
241 | + ); | |
242 | + } else { | |
243 | + echo Html::button( | |
244 | + \Yii::t('app', 'Отправить'), | |
245 | + [ | |
246 | + 'class' => 'btn btn-warning', | |
247 | + 'id' => 'send-sms-action', | |
248 | + ] | |
249 | + ); | |
250 | + } | |
251 | + ?> | |
252 | + </div> | |
253 | + <div class="col-md-6"> | |
254 | + <?php | |
255 | + echo Html::radioList( | |
256 | + 'send-phone', | |
257 | + '1', | |
258 | + [ | |
259 | + '1' => 'Первый номер', | |
260 | + '2' => 'Второй номер', | |
261 | + ] | |
262 | + ); | |
263 | + ?> | |
264 | + </div> | |
265 | + </div> | |
236 | 266 | |
237 | 267 | </div> |
238 | 268 | <div class="col-sm-6"> |
... | ... | @@ -280,38 +310,6 @@ JS; |
280 | 310 | </div> |
281 | 311 | </div> |
282 | 312 | </div> |
283 | - <br> | |
284 | - <div class="row"> | |
285 | - <?= Html::submitButton( | |
286 | - $model->isNewRecord ? \Yii::t('app', 'Создать') : \Yii::t('app', 'Обновить'), | |
287 | - [ 'class' => $model->isNewRecord ? 'btn btn-success btn-lg' : 'btn btn-primary btn-lg' ] | |
288 | - ) ?> | |
289 | - <?= Html::a( | |
290 | - \Yii::t('app', 'Печать'), | |
291 | - yii\helpers\Url::to( | |
292 | - [ | |
293 | - 'order/print', | |
294 | - 'order_id' => $model->id, | |
295 | - ] | |
296 | - ), | |
297 | - [ | |
298 | - 'class' => $model->isNewRecord ? 'btn btn-info disabled btn-lg' : 'btn btn-info btn-lg', | |
299 | - 'target' => '_blank', | |
300 | - ] | |
301 | - ) ?> | |
302 | - <?= Html::a( | |
303 | - \Yii::t('app', 'Выйти'), | |
304 | - yii\helpers\Url::to( | |
305 | - [ | |
306 | - 'exit-order', | |
307 | - 'id' => $model->id, | |
308 | - ] | |
309 | - ), | |
310 | - [ | |
311 | - 'class' => $model->isNewRecord ? 'btn btn-info disabled btn-lg' : 'btn btn-info btn-lg', | |
312 | - ] | |
313 | - ) ?> | |
314 | - </div> | |
315 | 313 | </div> |
316 | 314 | |
317 | 315 | <?php ActiveForm::end(); ?> |
... | ... | @@ -377,8 +375,12 @@ JS; |
377 | 375 | 'attribute' => 'status', |
378 | 376 | 'editableOptions' => [ |
379 | 377 | 'header' => \Yii::t('app', 'Статус'), |
380 | - 'inputType' => kartik\editable\Editable::INPUT_TEXT, | |
378 | + 'inputType' => kartik\editable\Editable::INPUT_SELECT2, | |
381 | 379 | 'options' => [ |
380 | + 'data' => [ | |
381 | + 0 => 'adsas', | |
382 | + 2 => 'dSSSSasda', | |
383 | + ], | |
382 | 384 | 'pluginOptions' => [ |
383 | 385 | 'min' => 0, |
384 | 386 | 'max' => 20, |
... | ... | @@ -516,6 +518,43 @@ JS; |
516 | 518 | ->label(false) ?> |
517 | 519 | <?php ActiveForm::end(); ?> |
518 | 520 | </div> |
521 | + | |
522 | + <br> | |
523 | + <div class="row"> | |
524 | + <?= Html::button( | |
525 | + $model->isNewRecord ? \Yii::t('app', 'Создать') : \Yii::t('app', 'Сохранить'), | |
526 | + [ | |
527 | + 'class' => $model->isNewRecord ? 'btn btn-success btn-lg' : 'btn btn-primary btn-lg', | |
528 | + 'id' => 'page-submit', | |
529 | + ] | |
530 | + ) ?> | |
531 | + <?= Html::a( | |
532 | + \Yii::t('app', 'Печать'), | |
533 | + yii\helpers\Url::to( | |
534 | + [ | |
535 | + 'order/print', | |
536 | + 'order_id' => $model->id, | |
537 | + ] | |
538 | + ), | |
539 | + [ | |
540 | + 'class' => $model->isNewRecord ? 'btn btn-info disabled btn-lg' : 'btn btn-info btn-lg', | |
541 | + 'target' => '_blank', | |
542 | + ] | |
543 | + ) ?> | |
544 | + <?= Html::a( | |
545 | + \Yii::t('app', 'Выйти'), | |
546 | + yii\helpers\Url::to( | |
547 | + [ | |
548 | + 'exit-order', | |
549 | + 'id' => $model->id, | |
550 | + ] | |
551 | + ), | |
552 | + [ | |
553 | + 'class' => $model->isNewRecord ? 'btn btn-info disabled btn-lg' : 'btn btn-info btn-lg', | |
554 | + ] | |
555 | + ) ?> | |
556 | + </div> | |
557 | + | |
519 | 558 | </div> |
520 | 559 | <br> |
521 | 560 | <br> | ... | ... |
views/order/index.php
... | ... | @@ -189,6 +189,14 @@ JS; |
189 | 189 | 'attribute' => 'id', |
190 | 190 | 'filter' => $searchForm->field($searchModel, 'id') |
191 | 191 | ->textInput(), |
192 | + 'content' => function($model) { | |
193 | + $manager = $model->manager; | |
194 | + if (empty($manager)) { | |
195 | + return $model->id; | |
196 | + } else { | |
197 | + return $model->id . ' ' . $manager->username; | |
198 | + } | |
199 | + } | |
192 | 200 | ], |
193 | 201 | [ |
194 | 202 | 'attribute' => 'created_at', | ... | ... |
views/order/update.php
... | ... | @@ -25,8 +25,12 @@ $.ajax({ |
25 | 25 | id: ' . $model->id . ' |
26 | 26 | }, |
27 | 27 | success: function(data) { |
28 | + var message = data.time; | |
29 | + if (data.user != "") { | |
30 | + message += " " + data.user; | |
31 | + } | |
28 | 32 | $.notify({ |
29 | - message: data.time | |
33 | + message: message | |
30 | 34 | },{ |
31 | 35 | type: "info" |
32 | 36 | }); |
... | ... | @@ -35,6 +39,23 @@ $.ajax({ |
35 | 39 | |
36 | 40 | $this->registerJs($js, View::POS_READY); |
37 | 41 | |
42 | + $js = ' | |
43 | + window.onbeforeunload = function(e) { | |
44 | + $.ajax({ | |
45 | + type: "GET", | |
46 | + url: "/admin/ecommerce/order/exit-order", | |
47 | + data: { | |
48 | + id: ' . $model->id . ', | |
49 | + }, | |
50 | + success: function() { | |
51 | + console.log("Exit order"); | |
52 | + } | |
53 | + }); | |
54 | +}; | |
55 | +'; | |
56 | + | |
57 | + $this->registerJs($js, View::POS_READY); | |
58 | + | |
38 | 59 | ?> |
39 | 60 | <div class="order-update"> |
40 | 61 | <div class="container"><h1><?php echo Html::encode($this->title) ?></h1></div> | ... | ... |