Loading l10n_community/l10n_community.routing.yml +3 −16 Original line number Diff line number Diff line Loading @@ -65,21 +65,8 @@ l10n_community.project.export: parameters: project: type: entity:l10n_server_project l10n_community.project.releases.release: path: '/translate/projects/{project}/releases/{release}' defaults: _title: 'Overview' _controller: '\Drupal\l10n_community\Controller\L10nCommunityProjectsController::release' requirements: _permission: 'access localization community' options: parameters: project: type: entity:l10n_server_project release: type: entity:l10n_server_release l10n_community.language.translate.reset: path: '/translate/languages/{language}/translate/reset/{project}/{release}' path: '/group/{group}/reset/{project}/{release}' defaults: _title: 'Export' _controller: '\Drupal\l10n_community\Controller\L10nCommunityLanguagesController::reset' Loading @@ -87,8 +74,8 @@ l10n_community.language.translate.reset: _permission: 'access localization community' options: parameters: language: type: language group: type: entity:group project: type: entity:l10n_server_project release: Loading l10n_community/src/Controller/L10nCommunityLanguagesController.php +16 −4 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ class L10nCommunityLanguagesController extends ControllerBase { * * @var \Drupal\Core\Database\Connection */ protected $connection; protected Connection $connection; /** * The config manager. Loading Loading @@ -202,6 +202,10 @@ class L10nCommunityLanguagesController extends ControllerBase { * * @return array * An associative render array. * * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException * @throws \Drupal\Core\TypedData\Exception\MissingDataException */ public function translate(Group $group): array { $langcode = $group->get('field_translation_language')->first()->getValue()['target_id']; Loading Loading @@ -276,6 +280,8 @@ class L10nCommunityLanguagesController extends ControllerBase { * Title callback. * * @return \Drupal\Core\StringTranslation\TranslatableMarkup * * @throws \Drupal\Core\TypedData\Exception\MissingDataException */ public function importTitle() { /** @var \Drupal\group\Entity\Group $group */ Loading @@ -293,6 +299,8 @@ class L10nCommunityLanguagesController extends ControllerBase { * * @return array * An associative render array. * * @throws \Drupal\Core\TypedData\Exception\MissingDataException */ public function export(Group $group): array { $langcode = $group->get('field_translation_language')->first()->getValue()['target_id']; Loading @@ -315,16 +323,20 @@ class L10nCommunityLanguagesController extends ControllerBase { /** * Builds the response. * * @param \Drupal\Core\Language\Language $language * @param \Drupal\group\Entity\Group $group * @param \Drupal\l10n_server\Entity\L10nServerProjectInterface $project * @param \Drupal\l10n_server\Entity\L10nServerReleaseInterface $release * * @return array * * @throws \Drupal\Core\TypedData\Exception\MissingDataException */ public function reset(Language $language, L10nServerProjectInterface $project, L10nServerReleaseInterface $release) { public function reset(Group $group, L10nServerProjectInterface $project, L10nServerReleaseInterface $release) { $langcode = $group->get('field_translation_language')->first()->getValue()['target_id']; $language = \Drupal::languageManager()->getLanguage($langcode); $build['content'] = [ '#type' => 'item', '#markup' => __METHOD__ . '::' . $project->label() . '::' . $release->label() . '::' . $language->getId(), '#markup' => __METHOD__ . '::' . $group->label() . '::' . $project->label() . '::' . $release->label() . '::' . $language->getId(), ]; return $build; } Loading l10n_community/src/Controller/L10nCommunityProjectsController.php +0 −19 Original line number Diff line number Diff line Loading @@ -213,25 +213,6 @@ class L10nCommunityProjectsController extends ControllerBase { return $build; } /** * Builds the response. * * @param \Drupal\l10n_server\Entity\L10nServerProjectInterface $project * The project entity. * @param \Drupal\l10n_server\Entity\L10nServerReleaseInterface $release * The release entity. * * @return array * A render array. */ public function release(L10nServerProjectInterface $project, L10nServerReleaseInterface $release) { $build['content'] = [ '#type' => 'item', '#markup' => __METHOD__ . '::' . $project->label() . '::' . $release->label(), ]; return $build; } /** * Provides a list of projects from the database, ordered by uri. * Loading l10n_community/src/Controller/L10nCommunityWelcomePageController.php +14 −6 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ class L10nCommunityWelcomePageController extends ControllerBase { $projects = \Drupal::entityTypeManager() ->getStorage('l10n_server_project') ->loadByProperties(['title' => $project_name]); /** @var \Drupal\l10n_server\Entity\L10nServerProjectInterface $project */ if (!$project = reset($projects)) { $build['content'] = [ '#type' => 'item', Loading @@ -104,6 +105,11 @@ class L10nCommunityWelcomePageController extends ControllerBase { return $build; } $releases = \Drupal::entityTypeManager() ->getStorage('l10n_server_release') ->loadByProperties(['pid' => $project->id()]); $release = reset($releases); $languages = \Drupal::languageManager()->getLanguages(); // Check for l10n_packager, for faster queries but only on latest release. Loading Loading @@ -141,19 +147,20 @@ class L10nCommunityWelcomePageController extends ControllerBase { ]; } else { $stats = $this->statistics->getLanguageStatisticsByLanguage($langcode); $stats = $this->statistics->getProjectsStringCount($language->getId()); $stats['users'] = $this->statistics->getLanguageStatisticsByLanguage($language->getId())['users']; $progress = [ 'data' => [ '#theme' => 'l10n_community_progress_columns', '#sum' => $stats['strings'], '#translated' => $stats['translations'], '#has_suggestion' => $stats['suggestions'], '#sum' => @$stats[$project->id()]['count'], '#translated' => @$stats[$project->id()]['translations'], '#has_suggestion' => @$stats[$project->id()]['suggestions'], ], ]; $table_rows[] = [ [ 'data' => new FormattableMarkup('<a href=":link">@name</a>', [ ':link' => Url::fromUri('internal:/translate/languages/' . $langcode)->toString(), ':link' => Url::fromUri('internal:/translate/languages/' . $langcode . '/translate', ['query' => ['project' => $project->getUri(), 'status' => 1, 'release' => ($release ? $release->id() : 'all')]])->toString(), '@name' => $language->getName(), ]), 'sortdata' => $this->t('@language', [ Loading Loading @@ -204,7 +211,8 @@ class L10nCommunityWelcomePageController extends ControllerBase { ], ], '#cache' => [ 'max-age' => Cache::PERMANENT, // @todo Fix cache handling. // 'max-age' => Cache::PERMANENT, ], ]; $build['#attached']['library'][] = 'l10n_community/tables'; Loading Loading
l10n_community/l10n_community.routing.yml +3 −16 Original line number Diff line number Diff line Loading @@ -65,21 +65,8 @@ l10n_community.project.export: parameters: project: type: entity:l10n_server_project l10n_community.project.releases.release: path: '/translate/projects/{project}/releases/{release}' defaults: _title: 'Overview' _controller: '\Drupal\l10n_community\Controller\L10nCommunityProjectsController::release' requirements: _permission: 'access localization community' options: parameters: project: type: entity:l10n_server_project release: type: entity:l10n_server_release l10n_community.language.translate.reset: path: '/translate/languages/{language}/translate/reset/{project}/{release}' path: '/group/{group}/reset/{project}/{release}' defaults: _title: 'Export' _controller: '\Drupal\l10n_community\Controller\L10nCommunityLanguagesController::reset' Loading @@ -87,8 +74,8 @@ l10n_community.language.translate.reset: _permission: 'access localization community' options: parameters: language: type: language group: type: entity:group project: type: entity:l10n_server_project release: Loading
l10n_community/src/Controller/L10nCommunityLanguagesController.php +16 −4 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ class L10nCommunityLanguagesController extends ControllerBase { * * @var \Drupal\Core\Database\Connection */ protected $connection; protected Connection $connection; /** * The config manager. Loading Loading @@ -202,6 +202,10 @@ class L10nCommunityLanguagesController extends ControllerBase { * * @return array * An associative render array. * * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException * @throws \Drupal\Core\TypedData\Exception\MissingDataException */ public function translate(Group $group): array { $langcode = $group->get('field_translation_language')->first()->getValue()['target_id']; Loading Loading @@ -276,6 +280,8 @@ class L10nCommunityLanguagesController extends ControllerBase { * Title callback. * * @return \Drupal\Core\StringTranslation\TranslatableMarkup * * @throws \Drupal\Core\TypedData\Exception\MissingDataException */ public function importTitle() { /** @var \Drupal\group\Entity\Group $group */ Loading @@ -293,6 +299,8 @@ class L10nCommunityLanguagesController extends ControllerBase { * * @return array * An associative render array. * * @throws \Drupal\Core\TypedData\Exception\MissingDataException */ public function export(Group $group): array { $langcode = $group->get('field_translation_language')->first()->getValue()['target_id']; Loading @@ -315,16 +323,20 @@ class L10nCommunityLanguagesController extends ControllerBase { /** * Builds the response. * * @param \Drupal\Core\Language\Language $language * @param \Drupal\group\Entity\Group $group * @param \Drupal\l10n_server\Entity\L10nServerProjectInterface $project * @param \Drupal\l10n_server\Entity\L10nServerReleaseInterface $release * * @return array * * @throws \Drupal\Core\TypedData\Exception\MissingDataException */ public function reset(Language $language, L10nServerProjectInterface $project, L10nServerReleaseInterface $release) { public function reset(Group $group, L10nServerProjectInterface $project, L10nServerReleaseInterface $release) { $langcode = $group->get('field_translation_language')->first()->getValue()['target_id']; $language = \Drupal::languageManager()->getLanguage($langcode); $build['content'] = [ '#type' => 'item', '#markup' => __METHOD__ . '::' . $project->label() . '::' . $release->label() . '::' . $language->getId(), '#markup' => __METHOD__ . '::' . $group->label() . '::' . $project->label() . '::' . $release->label() . '::' . $language->getId(), ]; return $build; } Loading
l10n_community/src/Controller/L10nCommunityProjectsController.php +0 −19 Original line number Diff line number Diff line Loading @@ -213,25 +213,6 @@ class L10nCommunityProjectsController extends ControllerBase { return $build; } /** * Builds the response. * * @param \Drupal\l10n_server\Entity\L10nServerProjectInterface $project * The project entity. * @param \Drupal\l10n_server\Entity\L10nServerReleaseInterface $release * The release entity. * * @return array * A render array. */ public function release(L10nServerProjectInterface $project, L10nServerReleaseInterface $release) { $build['content'] = [ '#type' => 'item', '#markup' => __METHOD__ . '::' . $project->label() . '::' . $release->label(), ]; return $build; } /** * Provides a list of projects from the database, ordered by uri. * Loading
l10n_community/src/Controller/L10nCommunityWelcomePageController.php +14 −6 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ class L10nCommunityWelcomePageController extends ControllerBase { $projects = \Drupal::entityTypeManager() ->getStorage('l10n_server_project') ->loadByProperties(['title' => $project_name]); /** @var \Drupal\l10n_server\Entity\L10nServerProjectInterface $project */ if (!$project = reset($projects)) { $build['content'] = [ '#type' => 'item', Loading @@ -104,6 +105,11 @@ class L10nCommunityWelcomePageController extends ControllerBase { return $build; } $releases = \Drupal::entityTypeManager() ->getStorage('l10n_server_release') ->loadByProperties(['pid' => $project->id()]); $release = reset($releases); $languages = \Drupal::languageManager()->getLanguages(); // Check for l10n_packager, for faster queries but only on latest release. Loading Loading @@ -141,19 +147,20 @@ class L10nCommunityWelcomePageController extends ControllerBase { ]; } else { $stats = $this->statistics->getLanguageStatisticsByLanguage($langcode); $stats = $this->statistics->getProjectsStringCount($language->getId()); $stats['users'] = $this->statistics->getLanguageStatisticsByLanguage($language->getId())['users']; $progress = [ 'data' => [ '#theme' => 'l10n_community_progress_columns', '#sum' => $stats['strings'], '#translated' => $stats['translations'], '#has_suggestion' => $stats['suggestions'], '#sum' => @$stats[$project->id()]['count'], '#translated' => @$stats[$project->id()]['translations'], '#has_suggestion' => @$stats[$project->id()]['suggestions'], ], ]; $table_rows[] = [ [ 'data' => new FormattableMarkup('<a href=":link">@name</a>', [ ':link' => Url::fromUri('internal:/translate/languages/' . $langcode)->toString(), ':link' => Url::fromUri('internal:/translate/languages/' . $langcode . '/translate', ['query' => ['project' => $project->getUri(), 'status' => 1, 'release' => ($release ? $release->id() : 'all')]])->toString(), '@name' => $language->getName(), ]), 'sortdata' => $this->t('@language', [ Loading Loading @@ -204,7 +211,8 @@ class L10nCommunityWelcomePageController extends ControllerBase { ], ], '#cache' => [ 'max-age' => Cache::PERMANENT, // @todo Fix cache handling. // 'max-age' => Cache::PERMANENT, ], ]; $build['#attached']['library'][] = 'l10n_community/tables'; Loading