From 2aeb4eadec348fc4cfcd92a1d87d15c4b3a94fac Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 11 Aug 2020 06:14:17 +0200 Subject: [PATCH] Remove empty translates to have actual statistic --- controllers/actions/SaveAction.php | 26 +++++++++++++++++++++----- services/Optimizer.php | 4 ++++ 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/controllers/actions/SaveAction.php b/controllers/actions/SaveAction.php index e4c92f7..63c83a4 100644 --- a/controllers/actions/SaveAction.php +++ b/controllers/actions/SaveAction.php @@ -27,12 +27,28 @@ public function run() $id = Yii::$app->request->post('id', 0); $languageId = Yii::$app->request->post('language_id', Yii::$app->language); + $translation = Yii::$app->request->post('translation', ''); + + $languageTranslate = LanguageTranslate::findOne(['id' => $id, 'language' => $languageId]); + + $regenerate = false; + + if ('' == trim($translation)) { + if ($languageTranslate && $languageTranslate->delete()) { + $regenerate = true; + } else { + return []; + } + } else { + $languageTranslate = $languageTranslate ?: + new LanguageTranslate(['id' => $id, 'language' => $languageId]); + $languageTranslate->translation = $translation; + if ($languageTranslate->validate() && $languageTranslate->save()) { + $regenerate = true; + } + } - $languageTranslate = LanguageTranslate::findOne(['id' => $id, 'language' => $languageId]) ?: - new LanguageTranslate(['id' => $id, 'language' => $languageId]); - - $languageTranslate->translation = Yii::$app->request->post('translation', ''); - if ($languageTranslate->validate() && $languageTranslate->save()) { + if ($regenerate) { $generator = new Generator($this->controller->module, $languageId); $generator->run(); diff --git a/services/Optimizer.php b/services/Optimizer.php index 65e525f..c692656 100644 --- a/services/Optimizer.php +++ b/services/Optimizer.php @@ -4,6 +4,7 @@ use yii\helpers\Console; use lajax\translatemanager\models\LanguageSource; +use lajax\translatemanager\models\LanguageTranslate; /** * Optimizer class for optimizing database tables @@ -53,6 +54,9 @@ public function run() LanguageSource::deleteAll(['id' => $languageSourceIds]); + $numberOfDeletetRows = LanguageTranslate::deleteAll(['translation' => '']); + $this->_scanner->stdout('Removed empty elements - ' . $numberOfDeletetRows, Console::FG_RED); + $this->_scanner->stdout('Deleted language elements - END', Console::FG_RED); return count($languageSourceIds);