From 9de05c74fbdc1c9ba77306f9186166ab2df4fe59 Mon Sep 17 00:00:00 2001 From: marina Date: Wed, 28 May 2025 12:51:01 +0300 Subject: [PATCH] ERP-417 --- erp24/controllers/WriteOffsErpController.php | 17 ++++++++++++ erp24/views/write_offs_erp/_form.php | 27 +++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/erp24/controllers/WriteOffsErpController.php b/erp24/controllers/WriteOffsErpController.php index f6434d12..6a9df064 100644 --- a/erp24/controllers/WriteOffsErpController.php +++ b/erp24/controllers/WriteOffsErpController.php @@ -1071,6 +1071,23 @@ class WriteOffsErpController extends Controller return 'error'; } + public function actionDeleteVideo($id) + { + Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; + + $filesDeleted = Files::deleteAll([ + 'entity_id' => $id, + 'entity' => WriteOffsProductsErp::WRITE_OFFS_VIDEO, + ]); + + if ($filesDeleted) { + return ['success' => true]; + } else { + return ['success' => false]; + } + } + + /** * Deletes an existing WriteOffsErp model. * If deletion is successful, the browser will be redirected to the 'index' page. diff --git a/erp24/views/write_offs_erp/_form.php b/erp24/views/write_offs_erp/_form.php index 58eb6a9b..fefe0188 100644 --- a/erp24/views/write_offs_erp/_form.php +++ b/erp24/views/write_offs_erp/_form.php @@ -256,6 +256,8 @@ $this->registerJsFile('/js/heic_to_jpg_replace.js', ['position' => \yii\web\View ->scalar(); } + $deleteUrl = Url::to(['write-offs-erp/delete-video', 'id' => $data['id']]); + return [ 'options' => [ 'multiple' => false, @@ -284,9 +286,32 @@ $this->registerJsFile('/js/heic_to_jpg_replace.js', ['position' => \yii\web\View 'initialPreviewConfig' => $videoUrl ? [[ 'type' => 'video', 'caption' => basename($videoUrl), - 'url' => Url::to(['delete-video', 'id' => $data['id']]), + 'url' => $deleteUrl, ]] : [], ], + 'pluginEvents' => [ + 'filebeforedelete' => new \yii\web\JsExpression('function(event, key, jqXHR, data) { + return new Promise(function(resolve, reject) { + $.ajax({ + url: "' . $deleteUrl . '", + type: "POST", + dataType: "json", + success: function(response) { + if (response.success) { + resolve(); + } else { + alert("Ошибка удаления видео"); + reject(); + } + }, + error: function() { + alert("Ошибка запроса на удаление видео"); + reject(); + } + }); + }); + }'), + ], ]; } ], -- 2.39.5