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