Commit b352704ae35faa9f8ba4787459c34eef977aa7e8

Authored by Yarik
1 parent 33e98dba

Image delete functionality

controllers/BannerController.php
... ... @@ -2,6 +2,7 @@
2 2  
3 3 namespace artweb\artbox\design\controllers;
4 4  
  5 + use artweb\artbox\design\models\BannerLang;
5 6 use Yii;
6 7 use artweb\artbox\design\models\Banner;
7 8 use artweb\artbox\design\models\BannerSearch;
... ... @@ -141,6 +142,20 @@
141 142  
142 143 return $this->redirect([ 'index' ]);
143 144 }
  145 +
  146 + public function actionDeleteImage($id, $lang_id)
  147 + {
  148 + /**
  149 + * @var BannerLang $model
  150 + */
  151 + $model = BannerLang::find()->where(['banner_id' => $id, 'language_id' => $lang_id])->one();
  152 + if(empty($model)) {
  153 + throw new NotFoundHttpException();
  154 + }
  155 + $model->image = null;
  156 + $model->updateAttributes(['image']);
  157 + return true;
  158 + }
144 159  
145 160 /**
146 161 * Finds the Banner model based on its primary key value.
... ...
controllers/SliderImageController.php
... ... @@ -182,6 +182,17 @@
182 182 ]
183 183 );
184 184 }
  185 +
  186 + public function actionDeleteImage($id)
  187 + {
  188 + $model = SliderImage::findOne($id);
  189 + if(empty($model)) {
  190 + throw new NotFoundHttpException();
  191 + }
  192 + $model->image = null;
  193 + $model->updateAttributes(['image']);
  194 + return true;
  195 + }
185 196  
186 197 /**
187 198 * Finds the SliderImage model based on its primary key value.
... ...
views/banner/_form_language.php
... ... @@ -2,6 +2,7 @@
2 2 use artweb\artbox\components\artboximage\ArtboxImageHelper;
3 3 use artweb\artbox\design\models\BannerLang;
4 4 use artweb\artbox\language\models\Language;
  5 + use yii\helpers\Url;
5 6 use yii\web\View;
6 7 use yii\widgets\ActiveForm;
7 8  
... ... @@ -17,19 +18,33 @@
17 18 <?= $form->field($model_lang, '[' . $language->id . ']alt')
18 19 ->textInput([ 'maxlength' => true ]); ?>
19 20  
20   -<?= $form->field($model_lang, '['.$language->id.']image')->widget(\kartik\file\FileInput::className(), [
21   - 'model' => $model_lang,
22   - 'attribute' => 'image',
23   - 'options' => [
24   - 'accept' => 'image/*',
25   - 'multiple' => false
26   - ],
27   - 'pluginOptions' => [
28   - 'allowedFileExtensions' => ['jpg','gif','png'],
29   - 'initialPreview' => $model_lang->imageUrl ? ArtboxImageHelper::getImage($model_lang->imageUrl, 'slider') : '',
30   - 'showRemove' => false,
31   - 'overwriteInitial' => true,
32   - 'showUpload' => false,
33   - 'showClose' => false,
34   - ],
35   -]); ?>
36 21 \ No newline at end of file
  22 +<?= $form->field($model_lang, '[' . $language->id . ']image')
  23 + ->widget(
  24 + \kartik\file\FileInput::className(),
  25 + [
  26 + 'language' => 'ru',
  27 + 'options' => [
  28 + 'accept' => 'image/*',
  29 + 'multiple' => false,
  30 + 'deleteurl' => $model_lang->isNewRecord?false:Url::to(['/design/banner/delete-image', 'id' => $model_lang->banner_id, 'lang_id' => $model_lang->language_id]),
  31 + 'class' => $model_lang->isNewRecord?'':'artbox-delete-file',
  32 + ],
  33 + 'pluginOptions' => [
  34 + 'allowedFileExtensions' => [
  35 + 'jpg',
  36 + 'gif',
  37 + 'png',
  38 + ],
  39 + 'initialPreview' => !empty( $model_lang->getImageUrl(
  40 + 0,
  41 + false
  42 + ) ) ? ArtboxImageHelper::getImage($model_lang->imageUrl, 'slider') : '',
  43 + 'initialPreviewShowDelete' => false,
  44 + 'overwriteInitial' => true,
  45 + 'showRemove' => true,
  46 + 'showUpload' => false,
  47 + 'showClose' => false,
  48 + 'previewFileType' => 'image',
  49 + ],
  50 + ]
  51 + ); ?>
37 52 \ No newline at end of file
... ...
views/bg/_form.php
... ... @@ -5,6 +5,7 @@
5 5 use artweb\artbox\design\models\BgLang;
6 6 use artweb\artbox\language\widgets\LanguageForm;
7 7 use yii\helpers\Html;
  8 + use yii\helpers\Url;
8 9 use yii\web\View;
9 10 use yii\widgets\ActiveForm;
10 11  
... ...
views/slider-image/_form.php
... ... @@ -7,6 +7,7 @@
7 7 use artweb\artbox\language\widgets\LanguageForm;
8 8 use kartik\select2\Select2;
9 9 use yii\helpers\Html;
  10 + use yii\helpers\Url;
10 11 use yii\web\View;
11 12 use yii\widgets\ActiveForm;
12 13 use kartik\date\DatePicker;
... ... @@ -30,7 +31,9 @@ use kartik\date\DatePicker;
30 31 'attribute' => 'image',
31 32 'options' => [
32 33 'accept' => 'image/*',
33   - 'multiple' => true,
  34 + 'multiple' => false,
  35 + 'deleteurl' => $model->isNewRecord?false:Url::to(['/design/slider-image/delete-image', 'id' => $model->id]),
  36 + 'class' => $model->isNewRecord?'':'artbox-delete-file',
34 37 ],
35 38 'pluginOptions' => [
36 39 'allowedFileExtensions' => [
... ... @@ -38,10 +41,13 @@ use kartik\date\DatePicker;
38 41 'gif',
39 42 'png',
40 43 ],
41   - 'initialPreview' => $model->imageUrl ? ArtboxImageHelper::getImage($model->imageUrl, 'slider') : '',
42   - 'overwriteInitial' => true,
43   - 'showRemove' => true,
44   - 'showUpload' => false,
  44 + 'initialPreview' => !empty($model->getImageUrl(0, false)) ? ArtboxImageHelper::getImage($model->imageUrl, 'slider') : '',
  45 + 'initialPreviewShowDelete' => false,
  46 + 'overwriteInitial' => true,
  47 + 'showRemove' => true,
  48 + 'showUpload' => false,
  49 + 'showClose' => false,
  50 + 'previewFileType' => 'image',
45 51 ],
46 52 ]); ?>
47 53 <?= $form->field($model, 'end_at')
... ...