Commit 0e25b1791e93d4b9c2a556ca0b521ff365802530
1 parent
db1feeef
author page projects
Showing
5 changed files
with
68 additions
and
14 deletions
Show diff stats
frontend/controllers/BookController.php
| ... | ... | @@ -168,4 +168,15 @@ |
| 168 | 168 | |
| 169 | 169 | return $out; |
| 170 | 170 | } |
| 171 | + | |
| 172 | + public function actionDelete($id){ | |
| 173 | + \Yii::$app->response->format = Response::FORMAT_JSON; | |
| 174 | + $book = Book::findOne($id); | |
| 175 | + if ($book->status == Book::STATUS_ACTIVE){ | |
| 176 | + $book->status = Book::STATUS_DELETED; | |
| 177 | + return $book->save(); | |
| 178 | + }elseif($book->status == Book::STATUS_MODERATION){ | |
| 179 | + return $book->delete(); | |
| 180 | + } | |
| 181 | + } | |
| 171 | 182 | } |
| 172 | 183 | \ No newline at end of file | ... | ... |
frontend/views/author/_book.php
| 1 | 1 | <?php |
| 2 | 2 | /** |
| 3 | - * Created by PhpStorm. | |
| 4 | - * User: stes | |
| 5 | - * Date: 26.06.18 | |
| 6 | - * Time: 10:32 | |
| 3 | + * @var \common\models\Book $model | |
| 4 | + * @var int $index; | |
| 7 | 5 | */ |
| 6 | + use yii\helpers\Url; | |
| 7 | + use common\models\Book; | |
| 8 | + | |
| 9 | + $count = $index+1; | |
| 10 | + if (\Yii::$app->request->get('page') and \Yii::$app->request->get('per-page')){ | |
| 11 | + $count += \Yii::$app->request->get('page') * \Yii::$app->request->get('per-page'); | |
| 12 | + } | |
| 8 | 13 | ?> |
| 9 | -<div class="account-columns-row"> | |
| 10 | - <div class="account-number">№1</div> | |
| 11 | - <div class="account-title"><b>Нова українська артилерія</b></div> | |
| 12 | - <div class="account-edit"><a href="#">редагувати</a></div> | |
| 13 | -</div> | |
| 14 | + <div class="account-number">№<?=$count?></div> | |
| 15 | + <div class="account-title"><b><?=$model->title?></b></div> | |
| 16 | +<?php if ($model->status == Book::STATUS_MODERATION){?> | |
| 17 | + <div class="account-edit"><a href="<?=Url::to(['book/edit', 'id' => $model->id])?>">редагувати</a></div> | |
| 18 | + <div class="account-delete"><a href="<?=Url::to(['book/delete', 'id' => $model->id])?>">видалити</a></div> | |
| 19 | +<?php } else if ($model->status == Book::STATUS_ACTIVE){?> | |
| 20 | + <div class="account-delete"><a href="<?=Url::to(['book/delete', 'id' => $model->id])?>">видалити</a></div> | |
| 21 | +<?php } ?> | ... | ... |
frontend/views/author/index.php
| ... | ... | @@ -85,7 +85,7 @@ $model = new ChangePassword(); |
| 85 | 85 | </ul> |
| 86 | 86 | </div> |
| 87 | 87 | <div class="style card-form-add-wrapp"> |
| 88 | - <div class="active style tabs-account-forms"> | |
| 88 | + <div class="active style tabs-account-forms" id="tab1"> | |
| 89 | 89 | <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']])?> |
| 90 | 90 | <div class="add-book-form-column"> |
| 91 | 91 | <div class="input-wr"> |
| ... | ... | @@ -144,7 +144,7 @@ $model = new ChangePassword(); |
| 144 | 144 | </div> |
| 145 | 145 | <?php ActiveForm::end()?> |
| 146 | 146 | </div> |
| 147 | - <div class="style tabs-account-forms"> | |
| 147 | + <div class="style tabs-account-forms" id="tab2"> | |
| 148 | 148 | <div class="style add-project-btn"> |
| 149 | 149 | <a href="<?=Url::to(['book/add'])?>">додати проект</a> |
| 150 | 150 | </div> |
| ... | ... | @@ -153,10 +153,13 @@ $model = new ChangePassword(); |
| 153 | 153 | /* @var \yii\data\ActiveDataProvider $dataProvider*/ |
| 154 | 154 | $count = round($dataProvider->getCount()/2, 0, PHP_ROUND_HALF_DOWN); |
| 155 | 155 | |
| 156 | - ListView::widget([ | |
| 156 | + echo ListView::widget([ | |
| 157 | 157 | 'dataProvider' => $dataProvider, |
| 158 | 158 | 'itemView' => '_book', |
| 159 | 159 | 'options' => ['class' => 'account-columns'], |
| 160 | + 'itemOptions' => [ | |
| 161 | + 'class' => 'account-columns-row', | |
| 162 | + ], | |
| 160 | 163 | 'afterItem' => function ($model, $key, $index) use ($count) { |
| 161 | 164 | if ($index == $count){ |
| 162 | 165 | return " | ... | ... |
frontend/views/layouts/main.php
| ... | ... | @@ -105,7 +105,7 @@ JS; |
| 105 | 105 | </div> |
| 106 | 106 | <?php } else { ?> |
| 107 | 107 | <div class="col-xs-12 hidden-xs hidden-sm col-sm-2 col-md-2"> |
| 108 | - <a href="<?=Url::to(['account/index'])?>"> | |
| 108 | + <a href="<?=Url::to(['author/index'])?>"> | |
| 109 | 109 | Особистий кабінет |
| 110 | 110 | </a> |
| 111 | 111 | </div> | ... | ... |
frontend/web/js/script.js
| ... | ... | @@ -283,9 +283,41 @@ $(document).ready(function() { |
| 283 | 283 | } |
| 284 | 284 | ); |
| 285 | 285 | |
| 286 | - }) | |
| 286 | + }); | |
| 287 | 287 | |
| 288 | + $(document).on('click', '.account-delete a', function(e) { | |
| 289 | + e.preventDefault(); | |
| 290 | + $.ajax( | |
| 291 | + { | |
| 292 | + url: $(this).attr('href'), | |
| 293 | + type: "GET", | |
| 294 | + success: function(data) { | |
| 295 | + if (data){ | |
| 296 | + reloadContent('/author/index'); | |
| 297 | + } | |
| 298 | + } | |
| 299 | + } | |
| 300 | + ); | |
| 301 | + }); | |
| 302 | + function reloadContent(url) { | |
| 303 | + $.get(url, { | |
| 304 | + }, function(data) { | |
| 305 | + var parser = new DOMParser(); | |
| 306 | + var el = parser.parseFromString(data, 'text/html'); | |
| 307 | + console.log(el.getElementById('tab1').innerHTML); | |
| 308 | + $('#tab1') | |
| 309 | + .html(el.getElementById('tab1').innerHTML); | |
| 310 | + $('#tab2') | |
| 311 | + .html(el.getElementById('tab2').innerHTML); | |
| 312 | + }) | |
| 313 | + .fail(function(data) { | |
| 314 | + console.log(data); | |
| 315 | + }); | |
| 316 | + } | |
| 288 | 317 | }); |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 289 | 321 | function success(message) { |
| 290 | 322 | document.querySelector('#success_form .txt-success').innerHTML = message; |
| 291 | 323 | var pos = ($(window) | ... | ... |