Commit 0e25b1791e93d4b9c2a556ca0b521ff365802530

Authored by Anastasia
1 parent db1feeef

author page projects

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)
... ...