From ec8ff59d238141100bf534f760997495e8b41294 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Wed, 6 Sep 2023 10:35:57 +0200 Subject: [PATCH] wip #6248 @0.5 --- app/Fields/FluidbookTranslatedString.php | 3 ++ .../ElearningTranslateCrudController.php | 30 ++++++++++++++ .../FluidbookTranslateCrudController.php | 6 +-- .../ExcelExportOperation.php | 11 +++-- .../ExcelImportOperation.php | 2 +- .../Admin/TranslateCrudController.php | 29 ++++++++++++++ app/Models/Base/ToolboxContentTranslate.php | 40 ++++++++++++++----- app/Models/ElearningTranslate.php | 17 ++------ app/Models/FluidbookTranslate.php | 24 +++-------- .../excel_export.blade.php | 0 .../excel_import.blade.php | 0 .../base/inc/sidebar_content.blade.php | 10 ++--- 12 files changed, 115 insertions(+), 57 deletions(-) create mode 100644 app/Http/Controllers/Admin/ElearningTranslateCrudController.php rename app/Http/Controllers/Admin/Operations/{FluidbookTranslate => ContentTranslate}/ExcelExportOperation.php (90%) rename app/Http/Controllers/Admin/Operations/{FluidbookTranslate => ContentTranslate}/ExcelImportOperation.php (97%) create mode 100644 app/Http/Controllers/Admin/TranslateCrudController.php rename resources/views/{fluidbook_translate => content_translate}/excel_export.blade.php (100%) rename resources/views/{fluidbook_translate => content_translate}/excel_import.blade.php (100%) diff --git a/app/Fields/FluidbookTranslatedString.php b/app/Fields/FluidbookTranslatedString.php index d93de4317..3082627b9 100644 --- a/app/Fields/FluidbookTranslatedString.php +++ b/app/Fields/FluidbookTranslatedString.php @@ -23,6 +23,9 @@ class FluidbookTranslatedString extends SelectFromArray return self::$__options; } + /** + * @throws \JsonException + */ protected function _getOptions() { $locale = 'en'; diff --git a/app/Http/Controllers/Admin/ElearningTranslateCrudController.php b/app/Http/Controllers/Admin/ElearningTranslateCrudController.php new file mode 100644 index 000000000..78c1833fc --- /dev/null +++ b/app/Http/Controllers/Admin/ElearningTranslateCrudController.php @@ -0,0 +1,30 @@ +getRawOriginal('content_translatable'), true); + $class = get_class($this); + + $alldata = json_decode($class::find(1)->getRawOriginal('content_translatable'), true); - $t = FluidbookTranslate::find(1); + $t = $class::find(1); if ($locale === 'en') { $ref = 'fr'; } else { @@ -79,7 +82,7 @@ trait ExcelExportOperation $tmp = Files::tempnam(); $writer->save($tmp); - return response()->download($tmp, 'fluidbook_translate_' . $locale . '.xlsx')->deleteFileAfterSend(); + return response()->download($tmp, $class::getName() . '_translate_' . $locale . '.xlsx')->deleteFileAfterSend(); } protected function _getTranslations($alldata, $locale) diff --git a/app/Http/Controllers/Admin/Operations/FluidbookTranslate/ExcelImportOperation.php b/app/Http/Controllers/Admin/Operations/ContentTranslate/ExcelImportOperation.php similarity index 97% rename from app/Http/Controllers/Admin/Operations/FluidbookTranslate/ExcelImportOperation.php rename to app/Http/Controllers/Admin/Operations/ContentTranslate/ExcelImportOperation.php index 62fdbcff3..0f37129ba 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookTranslate/ExcelImportOperation.php +++ b/app/Http/Controllers/Admin/Operations/ContentTranslate/ExcelImportOperation.php @@ -1,6 +1,6 @@ _availableLocales = \Cubist\Locale\Locale::getList(App::getLocale()); + $this->addEditAction('content_translate.excel_export'); + $this->addEditAction('content_translate.excel_import'); + + parent::__construct($attributes); + } + + public static function getName() + { + return static::$_name; + } protected function _getLanguageFile($locale) { - return self::getLanguageFile($locale); + return static::getLanguageFile($locale); } public static function getLanguageFile($locale) @@ -59,12 +79,12 @@ class ToolboxContentTranslate extends Translate }); } - return self::$_allTranslations; + return static::$_allTranslations; } public static function getCompiledTranslations() { - $raw = self::getAllTranslations(); + $raw = static::getAllTranslations(); $res = []; foreach ($raw as $code => $data) { $res[$code] = []; @@ -97,13 +117,11 @@ class ToolboxContentTranslate extends Translate /** * @param string $locale * @return array[]|null - * @throws \JsonException */ - public static function getTranslation($locale) + public static function getLocaleTranslations($locale) { - $all = static::getAllTranslations(); - $res = $all[$locale] ?? null; - return $res; + $all = static::getAllTranslations(false); + return $all[$locale] ?? []; } } diff --git a/app/Models/ElearningTranslate.php b/app/Models/ElearningTranslate.php index 6a5655aab..6abe4c465 100644 --- a/app/Models/ElearningTranslate.php +++ b/app/Models/ElearningTranslate.php @@ -3,8 +3,8 @@ namespace App\Models; -use App\Http\Controllers\Admin\Operations\FluidbookTranslate\ExcelExportOperation; -use App\Http\Controllers\Admin\Operations\FluidbookTranslate\ExcelImportOperation; +use App\Http\Controllers\Admin\Operations\ContentTranslate\ExcelExportOperation; +use App\Http\Controllers\Admin\Operations\ContentTranslate\ExcelImportOperation; use App\Models\Base\ToolboxContentTranslate; use App\Models\Traits\QuizBranches; use Cubist\Backpack\Facades\App; @@ -17,7 +17,7 @@ class ElearningTranslate extends ToolboxContentTranslate use QuizBranches; protected $table = 'elearning_translate'; - protected static $_name='elearning'; + protected static string $_name='elearning'; protected $_enableRevisions = false; @@ -29,17 +29,6 @@ class ElearningTranslate extends ToolboxContentTranslate protected $_operations = [ExcelExportOperation::class, ExcelImportOperation::class]; - public function __construct(array $attributes = []) - { - PHP::neverStop(); - - $this->_availableLocales = \Cubist\Locale\Locale::getList(App::getLocale()); - $this->addEditAction('elearning_translate.excel_export'); - $this->addEditAction('elearning_translate.excel_import'); - - parent::__construct($attributes); - } - public function getPaths() { $res = []; diff --git a/app/Models/FluidbookTranslate.php b/app/Models/FluidbookTranslate.php index ea8bde0f7..34df1d4e5 100644 --- a/app/Models/FluidbookTranslate.php +++ b/app/Models/FluidbookTranslate.php @@ -4,8 +4,8 @@ namespace App\Models; use App\Fields\NSISLocale; -use App\Http\Controllers\Admin\Operations\FluidbookTranslate\ExcelExportOperation; -use App\Http\Controllers\Admin\Operations\FluidbookTranslate\ExcelImportOperation; +use App\Http\Controllers\Admin\Operations\ContentTranslate\ExcelExportOperation; +use App\Http\Controllers\Admin\Operations\ContentTranslate\ExcelImportOperation; use App\Models\Base\ToolboxContentTranslate; use App\Models\Traits\FluidbookPlayerBranches; use Cubist\Backpack\Facades\App; @@ -19,7 +19,7 @@ class FluidbookTranslate extends ToolboxContentTranslate use FluidbookPlayerBranches; protected $table = 'fluidbook_translate'; - protected static $_name = 'elearning'; + protected static string $_name = 'elearning'; protected static $_allTranslations = null; @@ -30,20 +30,6 @@ class FluidbookTranslate extends ToolboxContentTranslate 'plural' => 'traductions', 'oneinstance' => true]; - protected $_operations = [ExcelExportOperation::class, ExcelImportOperation::class]; - - - public function __construct(array $attributes = []) - { - PHP::neverStop(); - - $this->_availableLocales = \Cubist\Locale\Locale::getList(App::getLocale()); - $this->addEditAction('fluidbook_translate.excel_export'); - $this->addEditAction('fluidbook_translate.excel_import'); - - parent::__construct($attributes); - } - public function setFields() { $this->addField(['name' => 'nsis', 'type' => NSISLocale::class, 'label' => __('Langue de l\'installeur') . ' (' . __('Version offline windows') . ')', 'translatable' => true, 'default' => 'English']); @@ -67,7 +53,7 @@ class FluidbookTranslate extends ToolboxContentTranslate { return static::getAllTranslations($force); } - + /** * @param string $locale * @return array[]|null @@ -75,7 +61,7 @@ class FluidbookTranslate extends ToolboxContentTranslate */ public static function getFluidbookTranslation($locale) { - return static::getTranslation($locale); + return static::getLocaleTranslations($locale); } } diff --git a/resources/views/fluidbook_translate/excel_export.blade.php b/resources/views/content_translate/excel_export.blade.php similarity index 100% rename from resources/views/fluidbook_translate/excel_export.blade.php rename to resources/views/content_translate/excel_export.blade.php diff --git a/resources/views/fluidbook_translate/excel_import.blade.php b/resources/views/content_translate/excel_import.blade.php similarity index 100% rename from resources/views/fluidbook_translate/excel_import.blade.php rename to resources/views/content_translate/excel_import.blade.php diff --git a/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php b/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php index c588e3fff..b94f683a7 100644 --- a/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php +++ b/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php @@ -73,10 +73,7 @@ @endcan - @can('quiztranslation:read') - - @endcan + @can('elearning-media:read') @endcan - + @can('quiztranslation:read') + + @endcan @endcanany -- 2.39.5