Commit b352704ae35faa9f8ba4787459c34eef977aa7e8
1 parent
33e98dba
Image delete functionality
Showing
5 changed files
with
69 additions
and
21 deletions
Show diff stats
controllers/BannerController.php
@@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
2 | 2 | ||
3 | namespace artweb\artbox\design\controllers; | 3 | namespace artweb\artbox\design\controllers; |
4 | 4 | ||
5 | + use artweb\artbox\design\models\BannerLang; | ||
5 | use Yii; | 6 | use Yii; |
6 | use artweb\artbox\design\models\Banner; | 7 | use artweb\artbox\design\models\Banner; |
7 | use artweb\artbox\design\models\BannerSearch; | 8 | use artweb\artbox\design\models\BannerSearch; |
@@ -141,6 +142,20 @@ | @@ -141,6 +142,20 @@ | ||
141 | 142 | ||
142 | return $this->redirect([ 'index' ]); | 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 | * Finds the Banner model based on its primary key value. | 161 | * Finds the Banner model based on its primary key value. |
controllers/SliderImageController.php
@@ -182,6 +182,17 @@ | @@ -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 | * Finds the SliderImage model based on its primary key value. | 198 | * Finds the SliderImage model based on its primary key value. |
views/banner/_form_language.php
@@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
2 | use artweb\artbox\components\artboximage\ArtboxImageHelper; | 2 | use artweb\artbox\components\artboximage\ArtboxImageHelper; |
3 | use artweb\artbox\design\models\BannerLang; | 3 | use artweb\artbox\design\models\BannerLang; |
4 | use artweb\artbox\language\models\Language; | 4 | use artweb\artbox\language\models\Language; |
5 | + use yii\helpers\Url; | ||
5 | use yii\web\View; | 6 | use yii\web\View; |
6 | use yii\widgets\ActiveForm; | 7 | use yii\widgets\ActiveForm; |
7 | 8 | ||
@@ -17,19 +18,33 @@ | @@ -17,19 +18,33 @@ | ||
17 | <?= $form->field($model_lang, '[' . $language->id . ']alt') | 18 | <?= $form->field($model_lang, '[' . $language->id . ']alt') |
18 | ->textInput([ 'maxlength' => true ]); ?> | 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 | \ No newline at end of file | 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 | \ No newline at end of file | 52 | \ No newline at end of file |
views/bg/_form.php
@@ -5,6 +5,7 @@ | @@ -5,6 +5,7 @@ | ||
5 | use artweb\artbox\design\models\BgLang; | 5 | use artweb\artbox\design\models\BgLang; |
6 | use artweb\artbox\language\widgets\LanguageForm; | 6 | use artweb\artbox\language\widgets\LanguageForm; |
7 | use yii\helpers\Html; | 7 | use yii\helpers\Html; |
8 | + use yii\helpers\Url; | ||
8 | use yii\web\View; | 9 | use yii\web\View; |
9 | use yii\widgets\ActiveForm; | 10 | use yii\widgets\ActiveForm; |
10 | 11 |
views/slider-image/_form.php
@@ -7,6 +7,7 @@ | @@ -7,6 +7,7 @@ | ||
7 | use artweb\artbox\language\widgets\LanguageForm; | 7 | use artweb\artbox\language\widgets\LanguageForm; |
8 | use kartik\select2\Select2; | 8 | use kartik\select2\Select2; |
9 | use yii\helpers\Html; | 9 | use yii\helpers\Html; |
10 | + use yii\helpers\Url; | ||
10 | use yii\web\View; | 11 | use yii\web\View; |
11 | use yii\widgets\ActiveForm; | 12 | use yii\widgets\ActiveForm; |
12 | use kartik\date\DatePicker; | 13 | use kartik\date\DatePicker; |
@@ -30,7 +31,9 @@ use kartik\date\DatePicker; | @@ -30,7 +31,9 @@ use kartik\date\DatePicker; | ||
30 | 'attribute' => 'image', | 31 | 'attribute' => 'image', |
31 | 'options' => [ | 32 | 'options' => [ |
32 | 'accept' => 'image/*', | 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 | 'pluginOptions' => [ | 38 | 'pluginOptions' => [ |
36 | 'allowedFileExtensions' => [ | 39 | 'allowedFileExtensions' => [ |
@@ -38,10 +41,13 @@ use kartik\date\DatePicker; | @@ -38,10 +41,13 @@ use kartik\date\DatePicker; | ||
38 | 'gif', | 41 | 'gif', |
39 | 'png', | 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 | <?= $form->field($model, 'end_at') | 53 | <?= $form->field($model, 'end_at') |