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