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,4 +168,15 @@ | ||
| 168 | 168 | ||
| 169 | return $out; | 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 | \ No newline at end of file | 183 | \ No newline at end of file |
frontend/views/author/_book.php
| 1 | <?php | 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,7 +85,7 @@ $model = new ChangePassword(); | ||
| 85 | </ul> | 85 | </ul> |
| 86 | </div> | 86 | </div> |
| 87 | <div class="style card-form-add-wrapp"> | 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 | <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']])?> | 89 | <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']])?> |
| 90 | <div class="add-book-form-column"> | 90 | <div class="add-book-form-column"> |
| 91 | <div class="input-wr"> | 91 | <div class="input-wr"> |
| @@ -144,7 +144,7 @@ $model = new ChangePassword(); | @@ -144,7 +144,7 @@ $model = new ChangePassword(); | ||
| 144 | </div> | 144 | </div> |
| 145 | <?php ActiveForm::end()?> | 145 | <?php ActiveForm::end()?> |
| 146 | </div> | 146 | </div> |
| 147 | - <div class="style tabs-account-forms"> | 147 | + <div class="style tabs-account-forms" id="tab2"> |
| 148 | <div class="style add-project-btn"> | 148 | <div class="style add-project-btn"> |
| 149 | <a href="<?=Url::to(['book/add'])?>">додати проект</a> | 149 | <a href="<?=Url::to(['book/add'])?>">додати проект</a> |
| 150 | </div> | 150 | </div> |
| @@ -153,10 +153,13 @@ $model = new ChangePassword(); | @@ -153,10 +153,13 @@ $model = new ChangePassword(); | ||
| 153 | /* @var \yii\data\ActiveDataProvider $dataProvider*/ | 153 | /* @var \yii\data\ActiveDataProvider $dataProvider*/ |
| 154 | $count = round($dataProvider->getCount()/2, 0, PHP_ROUND_HALF_DOWN); | 154 | $count = round($dataProvider->getCount()/2, 0, PHP_ROUND_HALF_DOWN); |
| 155 | 155 | ||
| 156 | - ListView::widget([ | 156 | + echo ListView::widget([ |
| 157 | 'dataProvider' => $dataProvider, | 157 | 'dataProvider' => $dataProvider, |
| 158 | 'itemView' => '_book', | 158 | 'itemView' => '_book', |
| 159 | 'options' => ['class' => 'account-columns'], | 159 | 'options' => ['class' => 'account-columns'], |
| 160 | + 'itemOptions' => [ | ||
| 161 | + 'class' => 'account-columns-row', | ||
| 162 | + ], | ||
| 160 | 'afterItem' => function ($model, $key, $index) use ($count) { | 163 | 'afterItem' => function ($model, $key, $index) use ($count) { |
| 161 | if ($index == $count){ | 164 | if ($index == $count){ |
| 162 | return " | 165 | return " |
frontend/views/layouts/main.php
| @@ -105,7 +105,7 @@ JS; | @@ -105,7 +105,7 @@ JS; | ||
| 105 | </div> | 105 | </div> |
| 106 | <?php } else { ?> | 106 | <?php } else { ?> |
| 107 | <div class="col-xs-12 hidden-xs hidden-sm col-sm-2 col-md-2"> | 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 | </a> | 110 | </a> |
| 111 | </div> | 111 | </div> |
frontend/web/js/script.js
| @@ -283,9 +283,41 @@ $(document).ready(function() { | @@ -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 | function success(message) { | 321 | function success(message) { |
| 290 | document.querySelector('#success_form .txt-success').innerHTML = message; | 322 | document.querySelector('#success_form .txt-success').innerHTML = message; |
| 291 | var pos = ($(window) | 323 | var pos = ($(window) |