From b906f688d9bc45d427f92848ea1e5692caab62a1 Mon Sep 17 00:00:00 2001 From: bstepanovski Date: Fri, 10 Apr 2026 18:15:27 -0400 Subject: [PATCH 1/5] Fix hardcoded string composition with internationalizations (#5293) --- .../app/helpers/batch_connect/sessions_helper.rb | 6 +++--- apps/dashboard/app/helpers/files_helper.rb | 12 ++++++------ .../app/views/batch_connect/sessions/index.html.erb | 2 +- .../app/views/module_browser/index.html.erb | 2 +- .../app/views/projects/_launcher_buttons.html.erb | 4 ++-- apps/dashboard/app/views/projects/show.html.erb | 2 +- .../shared/_insufficient_quota_resource.html.erb | 2 +- apps/dashboard/config/locales/en-CA.yml | 10 ++++++++++ apps/dashboard/config/locales/en.yml | 10 ++++++++++ apps/dashboard/config/locales/fr-CA.yml | 10 ++++++++++ apps/dashboard/config/locales/ja_JP.yml | 10 ++++++++++ apps/dashboard/config/locales/zh-CN.yml | 10 ++++++++++ .../helpers/batch_connect/sessions_helper_test.rb | 6 +++--- 13 files changed, 68 insertions(+), 18 deletions(-) diff --git a/apps/dashboard/app/helpers/batch_connect/sessions_helper.rb b/apps/dashboard/app/helpers/batch_connect/sessions_helper.rb index b1f003908f..9776c6b40a 100644 --- a/apps/dashboard/app/helpers/batch_connect/sessions_helper.rb +++ b/apps/dashboard/app/helpers/batch_connect/sessions_helper.rb @@ -99,7 +99,7 @@ def relaunch(session) user_context = session.user_context params = batch_connect_app.attributes.map{|attribute| ["batch_connect_session_context[#{attribute.id}]", user_context.fetch(attribute.id, nil)]}.to_h.compact - title = "#{t('dashboard.batch_connect_sessions_relaunch_title')} #{session.title} #{t('dashboard.batch_connect_sessions_word')}" + title = t('dashboard.batch_connect_sessions_relaunch_full_title', title: session.title) button_to( batch_connect_session_contexts_path(token: batch_connect_app.token), method: :post, @@ -139,7 +139,7 @@ def cancel_or_delete(session) end def delete(session) - title = "#{t('dashboard.batch_connect_sessions_delete_title')} #{session.title} #{t('dashboard.batch_connect_sessions_word')}" + title = t('dashboard.batch_connect_sessions_delete_full_title', title: session.title) button_to( batch_connect_session_path(session.id), method: :delete, @@ -153,7 +153,7 @@ def delete(session) end def cancel(session) - title = "#{t('dashboard.batch_connect_sessions_cancel_title')} #{session.title} #{t('dashboard.batch_connect_sessions_word')}" + title = t('dashboard.batch_connect_sessions_cancel_full_title', title: session.title) button_to( batch_connect_cancel_session_path(session.id), method: :post, diff --git a/apps/dashboard/app/helpers/files_helper.rb b/apps/dashboard/app/helpers/files_helper.rb index 85d9f9719a..4137726caf 100644 --- a/apps/dashboard/app/helpers/files_helper.rb +++ b/apps/dashboard/app/helpers/files_helper.rb @@ -1,13 +1,13 @@ # Helper for /files pages. module FilesHelper include ApplicationHelper - - def files_browse_page_title(path) - prefix = "#{t('dashboard.files_title')} - #{@user_configuration.dashboard_title}" - return prefix if path.blank? - dir_segment = (path.to_s == '/') ? 'Root' : path.basename.to_s - "#{prefix} - #{dir_segment}" + def files_browse_page_title(path) + site = @user_configuration.dashboard_title + page = t('dashboard.files_title') + return t('dashboard.page_title', page: page, site: site) unless path.present? + dir_segment = path.to_s == '/' ? t('dashboard.root') : path.basename.to_s + t('dashboard.page_title_with_dir', page: page, site: site, dir: dir_segment) end def path_segment_with_slash(filesystem, segment, counter, total) diff --git a/apps/dashboard/app/views/batch_connect/sessions/index.html.erb b/apps/dashboard/app/views/batch_connect/sessions/index.html.erb index 9f7471df32..a51d390d50 100644 --- a/apps/dashboard/app/views/batch_connect/sessions/index.html.erb +++ b/apps/dashboard/app/views/batch_connect/sessions/index.html.erb @@ -1,4 +1,4 @@ -<% content_for :title, "#{t('dashboard.breadcrumbs_my_sessions')} - #{@user_configuration.dashboard_title}" %> +<% content_for :title, t('dashboard.page_title', page: t('dashboard.breadcrumbs_my_sessions'), site: @user_configuration.dashboard_title) %> <%- any_apps = (@sys_app_groups + @usr_app_groups + @dev_app_groups).any? -%> diff --git a/apps/dashboard/app/views/module_browser/index.html.erb b/apps/dashboard/app/views/module_browser/index.html.erb index d560d24ee8..f996134bc1 100644 --- a/apps/dashboard/app/views/module_browser/index.html.erb +++ b/apps/dashboard/app/views/module_browser/index.html.erb @@ -1,4 +1,4 @@ -<% content_for :title, "#{t('dashboard.module_browser_title')} - #{@user_configuration.dashboard_title}" %> +<% content_for :title, t('dashboard.page_title', page: t('dashboard.module_browser_title'), site: @user_configuration.dashboard_title) %>

<%= t('dashboard.module_browser_title') %> diff --git a/apps/dashboard/app/views/projects/_launcher_buttons.html.erb b/apps/dashboard/app/views/projects/_launcher_buttons.html.erb index 1e3fe1f3e7..bad4b9c2cc 100644 --- a/apps/dashboard/app/views/projects/_launcher_buttons.html.erb +++ b/apps/dashboard/app/views/projects/_launcher_buttons.html.erb @@ -1,8 +1,8 @@ <%- disabled = !@valid_project disabled_class = disabled ? 'disabled' : '' - edit_title = "#{t('dashboard.edit')} launcher #{launcher.title}" - delete_title = "#{t('dashboard.delete')} launcher #{launcher.title}" + edit_title = t('dashboard.launcher_edit_title', title: launcher.title) + delete_title = t('dashboard.launcher_delete_title', title: launcher.title) remove_delete_button = @remove_delete_button show_job_info_button = @show_job_info_button -%> diff --git a/apps/dashboard/app/views/projects/show.html.erb b/apps/dashboard/app/views/projects/show.html.erb index c88a5ca1fc..2a2698187f 100644 --- a/apps/dashboard/app/views/projects/show.html.erb +++ b/apps/dashboard/app/views/projects/show.html.erb @@ -77,7 +77,7 @@
-

<%= "#{t('dashboard.project')} #{t('dashboard.directory')}" %>:  <%= @project.id %>

+

<%= t('dashboard.project_directory') %>:  <%= @project.id %>


<%= turbo_frame_tag 'project_directory', src: directory_frame_path( diff --git a/apps/dashboard/app/views/shared/_insufficient_quota_resource.html.erb b/apps/dashboard/app/views/shared/_insufficient_quota_resource.html.erb index 5e532f6149..281d70c4b6 100644 --- a/apps/dashboard/app/views/shared/_insufficient_quota_resource.html.erb +++ b/apps/dashboard/app/views/shared/_insufficient_quota_resource.html.erb @@ -8,7 +8,7 @@
  • - <%= quota.to_s %><%= ". #{t('dashboard.quota_additional_message')}" %> + <%= t('dashboard.quota_message', quota: quota.to_s, additional_message: t('dashboard.quota_additional_message')) %>
  • <%= diff --git a/apps/dashboard/config/locales/en-CA.yml b/apps/dashboard/config/locales/en-CA.yml index 15aac2764f..fa1afbeec4 100644 --- a/apps/dashboard/config/locales/en-CA.yml +++ b/apps/dashboard/config/locales/en-CA.yml @@ -66,12 +66,14 @@ en-CA: batch_connect_sandbox: " [Sandbox]" batch_connect_sessions_cancel_confirm: Are you sure? batch_connect_sessions_cancel_title: Cancel + batch_connect_sessions_cancel_full_title: "Cancel %{title} Session" batch_connect_sessions_data_html: | The %{title} session data for this session can be accessed under the %{data_link_tag}. batch_connect_sessions_delete_confirm: Are you sure? batch_connect_sessions_delete_hover: Delete Session batch_connect_sessions_delete_title: Delete + batch_connect_sessions_delete_full_title: "Delete %{title} Session" batch_connect_sessions_edit_title: Edit new %{title} with this session parameters batch_connect_sessions_error_invalid_job_name_html: | If this job failed to submit because of an invalid job name @@ -84,6 +86,7 @@ en-CA: batch_connect_sessions_path_selector_forbidden_error: You do not have permission to select that directory or file. batch_connect_sessions_relaunch_title: Relaunch batch_connect_sessions_staged_root: staged root directory + batch_connect_sessions_relaunch_full_title: "Relaunch %{title} Session" batch_connect_sessions_stats_created_at: 'Created at:' batch_connect_sessions_stats_host: 'Host:' batch_connect_sessions_stats_session_id: 'Session ID:' @@ -136,6 +139,8 @@ en-CA: directory: Directory edit: Edit file: File + launcher_delete_title: "Delete launcher %{title}" + launcher_edit_title: "Edit launcher %{title}" file_quotas: File Quotas files_directory_download_error_modal_title: Directory too large to download files_directory_download_unauthorized: You can only download a directory as zip that you have read and execute access to @@ -217,6 +222,9 @@ en-CA: module_browser_last_updated: 'Last updated: %{last_updated}' module_browser_title: Module Browser files_title: File browsing + page_title: "%{page} - %{site}" + page_title_with_dir: "%{page} - %{site} - %{dir}" + root: Root motd_erb_render_error: 'MOTD was not parsed or rendered correctly: %{error_message}' motd_title: Message of the Day name: Name @@ -248,10 +256,12 @@ en-CA: pinned_apps_category: Apps pinned_apps_title: Pinned Apps project: Project + project_directory: Project Directory project_balances: Project Balances project_zip_error_message: 'Error creating ZIP file: %{error}' project_zip_success_message: 'SUCCESS: project.zip was created in your project directory.' quota_additional_message: Consider deleting or archiving files to free up disk space. + quota_message: "%{quota}. %{additional_message}" quota_block: Using %{used} of quota %{available} quota_block_shared: "(%{used_exclusive} are yours)" quota_file: Using %{used} files of quota %{available} files diff --git a/apps/dashboard/config/locales/en.yml b/apps/dashboard/config/locales/en.yml index b6f93ea51c..61cc0e9c28 100644 --- a/apps/dashboard/config/locales/en.yml +++ b/apps/dashboard/config/locales/en.yml @@ -69,12 +69,14 @@ en: batch_connect_sandbox: " [Sandbox]" batch_connect_sessions_cancel_confirm: Are you sure? batch_connect_sessions_cancel_title: Cancel + batch_connect_sessions_cancel_full_title: "Cancel %{title} Session" batch_connect_sessions_data_html: | The %{title} session data for this session can be accessed under the %{data_link_tag}. batch_connect_sessions_delete_confirm: Are you sure? batch_connect_sessions_delete_hover: Delete Session batch_connect_sessions_delete_title: Delete + batch_connect_sessions_delete_full_title: "Delete %{title} Session" batch_connect_sessions_edit_title: Edit new %{title} with this session parameters batch_connect_sessions_error_invalid_job_name_html: | If this job failed to submit because of an invalid job name @@ -86,6 +88,7 @@ en: batch_connect_sessions_novnc_view_only: View Only (Share-able Link) batch_connect_sessions_path_selector_forbidden_error: You do not have permission to select that directory or file. batch_connect_sessions_relaunch_title: Relaunch + batch_connect_sessions_relaunch_full_title: "Relaunch %{title} Session" batch_connect_sessions_staged_root: staged root directory batch_connect_sessions_stats_created_at: 'Created at:' batch_connect_sessions_stats_host: 'Host:' @@ -138,6 +141,8 @@ en: development_apps_caption: Sandbox App directory: Directory edit: Edit + launcher_delete_title: "Delete launcher %{title}" + launcher_edit_title: "Edit launcher %{title}" file: File file_quotas: File Quotas files_directory_download_error_modal_title: Directory too large to download @@ -225,6 +230,9 @@ en: module_browser_last_updated: 'Last updated: %{last_updated}' module_browser_title: Module Browser files_title: File browsing + page_title: "%{page} - %{site}" + page_title_with_dir: "%{page} - %{site} - %{dir}" + root: Root motd_erb_render_error: 'MOTD was not parsed or rendered correctly: %{error_message}' motd_title: Message of the Day name: Name @@ -256,10 +264,12 @@ en: pinned_apps_category: Apps pinned_apps_title: Pinned Apps project: Project + project_directory: Project Directory project_balances: Project Balances project_zip_error_message: 'Error creating ZIP file: %{error}' project_zip_success_message: 'Success: project.zip has been created in your project directory.' quota_additional_message: Consider deleting or archiving files to free up disk space. + quota_message: "%{quota}. %{additional_message}" quota_block: Using %{used} of quota %{available} quota_block_shared: "(%{used_exclusive} are yours)" quota_file: Using %{used} files of quota %{available} files diff --git a/apps/dashboard/config/locales/fr-CA.yml b/apps/dashboard/config/locales/fr-CA.yml index 314b64cc98..e73362491b 100644 --- a/apps/dashboard/config/locales/fr-CA.yml +++ b/apps/dashboard/config/locales/fr-CA.yml @@ -66,12 +66,14 @@ fr-CA: batch_connect_sandbox: " [Bac à sable]" batch_connect_sessions_cancel_confirm: Êtes-vous sûr ? batch_connect_sessions_cancel_title: Annuler + batch_connect_sessions_cancel_full_title: "Annuler la session %{title}" batch_connect_sessions_data_html: | Les données de session %{title} pour cette session sont accessibles sous %{data_link_tag}. batch_connect_sessions_delete_confirm: Êtes-vous sûr ? batch_connect_sessions_delete_hover: Supprimer la session batch_connect_sessions_delete_title: Supprimer + batch_connect_sessions_delete_full_title: "Supprimer la session %{title}" batch_connect_sessions_edit_title: Modifier %{title} avec les paramètres de cette session batch_connect_sessions_error_invalid_job_name_html: | Si ce travail a échoué en raison d'un nom de travail invalide, @@ -83,6 +85,7 @@ fr-CA: batch_connect_sessions_novnc_view_only: Vue seule (Lien partageable) batch_connect_sessions_path_selector_forbidden_error: Vous n'avez pas la permission de sélectionner ce répertoire ou fichier. batch_connect_sessions_relaunch_title: Relancer + batch_connect_sessions_relaunch_full_title: "Relancer la session %{title}" batch_connect_sessions_staged_root: répertoire racine mis en scène batch_connect_sessions_stats_created_at: 'Créé le :' batch_connect_sessions_stats_host: 'Hôte :' @@ -135,6 +138,8 @@ fr-CA: development_apps_caption: Application bac à sable directory: Répertoire edit: Modifier + launcher_delete_title: "Supprimer le lancement %{title}" + launcher_edit_title: "Modifier le lancement %{title}" file: Fichier file_quotas: Quotas de fichiers files_directory_download_error_modal_title: Répertoire trop volumineux à télécharger @@ -218,6 +223,9 @@ fr-CA: module_browser_title: Navigateur de modules motd_erb_render_error: 'Le MOTD n’a pas été analysé ou rendu correctement : %{error_message}' files_title: Navigation de fichiers + page_title: "%{page} - %{site}" + page_title_with_dir: "%{page} - %{site} - %{dir}" + root: Racine motd_title: Message du jour name: Nom nav_all_apps: Toutes les applications @@ -248,10 +256,12 @@ fr-CA: pinned_apps_category: Applications pinned_apps_title: Applications épinglées project: Projet + project_directory: Répertoire du projet project_balances: Soldes de projet project_zip_error_message: 'Erreur lors de la création du fichier ZIP : %{error}' project_zip_success_message: 'SUCCÈS : project.zip a été créé dans votre répertoire de projet.' quota_additional_message: Envisagez de supprimer ou d’archiver des fichiers pour libérer de l’espace disque. + quota_message: "%{quota}. %{additional_message}" quota_block: Utilisation de %{used} sur quota %{available} quota_block_shared: "(%{used_exclusive} vous appartiennent)" quota_file: Utilisation de %{used} fichiers sur quota %{available} fichiers diff --git a/apps/dashboard/config/locales/ja_JP.yml b/apps/dashboard/config/locales/ja_JP.yml index 981a3b26a0..9004334b40 100644 --- a/apps/dashboard/config/locales/ja_JP.yml +++ b/apps/dashboard/config/locales/ja_JP.yml @@ -64,12 +64,14 @@ ja_JP: batch_connect_sandbox: " [サンドボックス]" batch_connect_sessions_cancel_confirm: 本当によろしいですか? batch_connect_sessions_cancel_title: キャンセル + batch_connect_sessions_cancel_full_title: "%{title} セッションをキャンセル" batch_connect_sessions_data_html: | このセッションの %{title} セッションデータは %{data_link_tag} の下でアクセスできます。 batch_connect_sessions_delete_confirm: 本当によろしいですか? batch_connect_sessions_delete_hover: セッションを削除 batch_connect_sessions_delete_title: 削除 + batch_connect_sessions_delete_full_title: "%{title} セッションを削除" batch_connect_sessions_edit_title: このセッションパラメータで新しい%{title}を編集 batch_connect_sessions_error_invalid_job_name_html: '無効なジョブ名のためにこのジョブの提出に失敗した場合は、管理者に依頼して OnDemand を構成し、環境変数 OOD_JOB_NAME_ILLEGAL_CHARS を設定してください。 @@ -80,6 +82,7 @@ ja_JP: batch_connect_sessions_novnc_view_only: 表示専用(共有可能なリンク) batch_connect_sessions_path_selector_forbidden_error: そのディレクトリまたはファイルを選択する権限がありません。 batch_connect_sessions_relaunch_title: 再起動 + batch_connect_sessions_relaunch_full_title: "%{title} セッションを再起動" batch_connect_sessions_staged_root: ステージングルートディレクトリ batch_connect_sessions_stats_created_at: 作成日時: batch_connect_sessions_stats_host: ホスト: @@ -132,6 +135,8 @@ ja_JP: development_apps_caption: サンドボックスアプリ directory: ディレクトリ edit: 編集 + launcher_delete_title: "ランチャー %{title} を削除" + launcher_edit_title: "ランチャー %{title} を編集" file: ファイル file_quotas: ファイルクォータ files_directory_download_error_modal_title: ダウンロードするにはディレクトリが大きすぎます @@ -214,6 +219,9 @@ ja_JP: module_browser_last_updated: '最終更新日: %{last_updated}' module_browser_title: モジュールブラウザ files_title: ファイルブラウジング + page_title: "%{page} - %{site}" + page_title_with_dir: "%{page} - %{site} - %{dir}" + root: ルート motd_erb_render_error: 'MOTD が正しく解析またはレンダリングされませんでした: %{error_message}' motd_title: 今日のメッセージ name: 名前 @@ -245,10 +253,12 @@ ja_JP: pinned_apps_category: アプリ pinned_apps_title: ピン留めされたアプリ project: プロジェクト + project_directory: プロジェクトディレクトリ project_balances: プロジェクト残高 project_zip_error_message: 'ZIP ファイルの作成中にエラーが発生しました: %{error}' project_zip_success_message: '成功: project.zip がプロジェクトディレクトリに作成されました。' quota_additional_message: ディスクスペースを空けるためにファイルを削除またはアーカイブすることを検討してください。 + quota_message: "%{quota}。%{additional_message}" quota_block: クォータ %{available} のうち %{used} を使用中 quota_block_shared: "(%{used_exclusive} はあなたのものです)" quota_file: クォータ %{available} ファイルのうち %{used} ファイルを使用中 diff --git a/apps/dashboard/config/locales/zh-CN.yml b/apps/dashboard/config/locales/zh-CN.yml index e521ecba7c..64cbee49ea 100644 --- a/apps/dashboard/config/locales/zh-CN.yml +++ b/apps/dashboard/config/locales/zh-CN.yml @@ -63,10 +63,12 @@ zh-CN: batch_connect_sandbox: " [沙盒]" batch_connect_sessions_cancel_confirm: 你确定吗? batch_connect_sessions_cancel_title: 取消 + batch_connect_sessions_cancel_full_title: "取消 %{title} 会话" batch_connect_sessions_data_html: 你可以通过%{data_link_tag}来获取会话数据%{title}。 batch_connect_sessions_delete_confirm: 你确定吗? batch_connect_sessions_delete_hover: 删除会话 batch_connect_sessions_delete_title: 删除 + batch_connect_sessions_delete_full_title: "删除 %{title} 会话" batch_connect_sessions_edit_title: 使用此会话参数编辑新的 %{title} batch_connect_sessions_error_invalid_job_name_html: 如果由于作业名称无效而导致该作业提交失败,请要求管理员配置OnDemand来设置环境变量OOD_JOB_NAME_ILLEGAL_CHARS。 batch_connect_sessions_errors_staging: 无法调用模板,并显示以下错误: @@ -75,6 +77,7 @@ zh-CN: batch_connect_sessions_novnc_view_only: 只读 (共享链接) batch_connect_sessions_path_selector_forbidden_error: 您没有权限选择该目录或文件。 batch_connect_sessions_relaunch_title: 重新启动 + batch_connect_sessions_relaunch_full_title: "重新启动 %{title} 会话" batch_connect_sessions_staged_root: 暂存根目录 batch_connect_sessions_stats_created_at: 创建于: batch_connect_sessions_stats_host: 主机: @@ -121,6 +124,8 @@ zh-CN: development_apps_caption: 沙盒应用 directory: 目录 edit: 编辑 + launcher_delete_title: "删除启动器 %{title}" + launcher_edit_title: "编辑启动器 %{title}" file: 文件 file_quotas: 文件配额 files_directory_download_error_modal_title: 目录太大,无法下载 @@ -203,6 +208,9 @@ zh-CN: module_browser_last_updated: 最后更新:%{last_updated} module_browser_title: 模块浏览器 files_title: 文件浏览 + page_title: "%{page} - %{site}" + page_title_with_dir: "%{page} - %{site} - %{dir}" + root: 根目录 motd_erb_render_error: MOTD 未正确解析或渲染:%{error_message} motd_title: 每日信息 name: 名称 @@ -234,10 +242,12 @@ zh-CN: pinned_apps_category: 应用 pinned_apps_title: 固定应用 project: 项目 + project_directory: 项目目录 project_balances: 项目余额 project_zip_error_message: 创建 ZIP 文件时出错:%{error} project_zip_success_message: 成功:project.zip 已在您的项目目录中创建。 quota_additional_message: 考虑删除或归档文件以释放磁盘空间。 + quota_message: "%{quota}。%{additional_message}" quota_block: 配额使用量%{used} 可用 %{available} quota_block_shared: "(您的配额%{used_exclusive} )" quota_file: 文件配额使用量%{used} 可用 %{available} diff --git a/apps/dashboard/test/helpers/batch_connect/sessions_helper_test.rb b/apps/dashboard/test/helpers/batch_connect/sessions_helper_test.rb index 5d98456240..fa9fa3dc07 100644 --- a/apps/dashboard/test/helpers/batch_connect/sessions_helper_test.rb +++ b/apps/dashboard/test/helpers/batch_connect/sessions_helper_test.rb @@ -62,7 +62,7 @@ class BatchConnect::SessionsHelperTest < ActionView::TestCase assert_equal true, form['class'].include?('relaunch') button = html.at_css('button') - assert_equal 'Relaunch AppName Session', button['title'] + assert_equal I18n.t('dashboard.batch_connect_sessions_relaunch_full_title', title: 'AppName'), button['title'] assert_equal true, button['class'].include?('relaunch') end @@ -80,10 +80,10 @@ def create_session(state = :running, valid: true) end def cancel_session_title - "#{I18n.t('dashboard.batch_connect_sessions_cancel_title')} AppName #{I18n.t('dashboard.batch_connect_sessions_word')}" + I18n.t('dashboard.batch_connect_sessions_cancel_full_title', title: 'AppName') end def delete_session_title - "#{I18n.t('dashboard.batch_connect_sessions_delete_title')} AppName #{I18n.t('dashboard.batch_connect_sessions_word')}" + I18n.t('dashboard.batch_connect_sessions_delete_full_title', title: 'AppName') end end \ No newline at end of file From 7bb1b5cf8a47c9145e92ed3cf9f3ee2397e7406c Mon Sep 17 00:00:00 2001 From: bstepanovski Date: Fri, 10 Apr 2026 18:53:43 -0400 Subject: [PATCH 2/5] Update E2E tests for portal reset and login wait --- spec/e2e/e2e_helper.rb | 3 +++ spec/e2e/nginx_stage_spec.rb | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/spec/e2e/e2e_helper.rb b/spec/e2e/e2e_helper.rb index 6c03cc3139..94a40e180f 100644 --- a/spec/e2e/e2e_helper.rb +++ b/spec/e2e/e2e_helper.rb @@ -27,6 +27,9 @@ def browser_login(browser) browser.text_field(id: 'username').set 'ood@localhost' browser.text_field(id: 'password').set 'password' browser.button(id: 'submit-login').click + Watir::Wait.until(timeout: 90, interval: 1) do + browser.title == 'Dashboard - Open OnDemand' + end end def hook_fixture(file) diff --git a/spec/e2e/nginx_stage_spec.rb b/spec/e2e/nginx_stage_spec.rb index 53a95b98a3..d62630ad06 100644 --- a/spec/e2e/nginx_stage_spec.rb +++ b/spec/e2e/nginx_stage_spec.rb @@ -7,6 +7,13 @@ def browser @browser ||= new_browser end + before(:all) do + upload_portal_config('portal.yml') + update_ood_portal + restart_apache + restart_dex + end + after do browser.close on hosts, '/opt/ood/nginx_stage/sbin/nginx_stage nginx_clean --force' From cdc9b97b4534aeef7ffbbe769266d07e4363c057 Mon Sep 17 00:00:00 2001 From: bstepanovski Date: Fri, 17 Apr 2026 15:07:48 -0400 Subject: [PATCH 3/5] Update E2E portal cleanup after dex_no_proxy test --- spec/e2e/dex_no_proxy_spec.rb | 4 ++++ spec/e2e/nginx_stage_spec.rb | 7 ------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/spec/e2e/dex_no_proxy_spec.rb b/spec/e2e/dex_no_proxy_spec.rb index 20a427830c..0c55a6ef91 100644 --- a/spec/e2e/dex_no_proxy_spec.rb +++ b/spec/e2e/dex_no_proxy_spec.rb @@ -14,6 +14,10 @@ def browser after(:all) do browser.close + upload_portal_config('portal.yml') + update_ood_portal + restart_apache + restart_dex end describe port(8080) do diff --git a/spec/e2e/nginx_stage_spec.rb b/spec/e2e/nginx_stage_spec.rb index d62630ad06..53a95b98a3 100644 --- a/spec/e2e/nginx_stage_spec.rb +++ b/spec/e2e/nginx_stage_spec.rb @@ -7,13 +7,6 @@ def browser @browser ||= new_browser end - before(:all) do - upload_portal_config('portal.yml') - update_ood_portal - restart_apache - restart_dex - end - after do browser.close on hosts, '/opt/ood/nginx_stage/sbin/nginx_stage nginx_clean --force' From 9d06195773901428aef5823bdaa249ded3aa92fc Mon Sep 17 00:00:00 2001 From: bstepanovski Date: Mon, 20 Apr 2026 09:23:57 -0400 Subject: [PATCH 4/5] Merge origin/master and resolve conflicts --- apps/dashboard/config/locales/en-CA.yml | 2 -- apps/dashboard/config/locales/en.yml | 2 -- apps/dashboard/config/locales/fr-CA.yml | 2 -- apps/dashboard/config/locales/ja_JP.yml | 2 -- apps/dashboard/config/locales/zh-CN.yml | 2 -- 5 files changed, 10 deletions(-) diff --git a/apps/dashboard/config/locales/en-CA.yml b/apps/dashboard/config/locales/en-CA.yml index e4d4f21141..4b5f6f22f3 100644 --- a/apps/dashboard/config/locales/en-CA.yml +++ b/apps/dashboard/config/locales/en-CA.yml @@ -142,8 +142,6 @@ en-CA: directory: Directory edit: Edit file: File - launcher_delete_title: "Delete launcher %{title}" - launcher_edit_title: "Edit launcher %{title}" file_quotas: File Quotas files_directory_download_error_modal_title: Directory too large to download files_directory_download_unauthorized: You can only download a directory as zip that you have read and execute access to diff --git a/apps/dashboard/config/locales/en.yml b/apps/dashboard/config/locales/en.yml index c24e148f3c..a948f2e1fd 100644 --- a/apps/dashboard/config/locales/en.yml +++ b/apps/dashboard/config/locales/en.yml @@ -145,8 +145,6 @@ en: development_apps_caption: Sandbox App directory: Directory edit: Edit - launcher_delete_title: "Delete launcher %{title}" - launcher_edit_title: "Edit launcher %{title}" file: File file_quotas: File Quotas files_directory_download_error_modal_title: Directory too large to download diff --git a/apps/dashboard/config/locales/fr-CA.yml b/apps/dashboard/config/locales/fr-CA.yml index 99c2ed1c13..013a34771e 100644 --- a/apps/dashboard/config/locales/fr-CA.yml +++ b/apps/dashboard/config/locales/fr-CA.yml @@ -141,8 +141,6 @@ fr-CA: development_apps_caption: Application bac à sable directory: Répertoire edit: Modifier - launcher_delete_title: "Supprimer le lancement %{title}" - launcher_edit_title: "Modifier le lancement %{title}" file: Fichier file_quotas: Quotas de fichiers files_directory_download_error_modal_title: Répertoire trop volumineux à télécharger diff --git a/apps/dashboard/config/locales/ja_JP.yml b/apps/dashboard/config/locales/ja_JP.yml index f6ab3f5ee3..48fcc98f38 100644 --- a/apps/dashboard/config/locales/ja_JP.yml +++ b/apps/dashboard/config/locales/ja_JP.yml @@ -138,8 +138,6 @@ ja_JP: development_apps_caption: サンドボックスアプリ directory: ディレクトリ edit: 編集 - launcher_delete_title: "ランチャー %{title} を削除" - launcher_edit_title: "ランチャー %{title} を編集" file: ファイル file_quotas: ファイルクォータ files_directory_download_error_modal_title: ダウンロードするにはディレクトリが大きすぎます diff --git a/apps/dashboard/config/locales/zh-CN.yml b/apps/dashboard/config/locales/zh-CN.yml index 770a228459..38be052cc9 100644 --- a/apps/dashboard/config/locales/zh-CN.yml +++ b/apps/dashboard/config/locales/zh-CN.yml @@ -127,8 +127,6 @@ zh-CN: development_apps_caption: 沙盒应用 directory: 目录 edit: 编辑 - launcher_delete_title: "删除启动器 %{title}" - launcher_edit_title: "编辑启动器 %{title}" file: 文件 file_quotas: 文件配额 files_directory_download_error_modal_title: 目录太大,无法下载 From 0ad3e093efd8c32c04503e844c5436b8526cf7d0 Mon Sep 17 00:00:00 2001 From: bstepanovski Date: Thu, 30 Apr 2026 19:35:08 -0400 Subject: [PATCH 5/5] Remove E2E test changes from i18n PR --- spec/e2e/dex_no_proxy_spec.rb | 4 ---- spec/e2e/e2e_helper.rb | 3 --- 2 files changed, 7 deletions(-) diff --git a/spec/e2e/dex_no_proxy_spec.rb b/spec/e2e/dex_no_proxy_spec.rb index 0c55a6ef91..20a427830c 100644 --- a/spec/e2e/dex_no_proxy_spec.rb +++ b/spec/e2e/dex_no_proxy_spec.rb @@ -14,10 +14,6 @@ def browser after(:all) do browser.close - upload_portal_config('portal.yml') - update_ood_portal - restart_apache - restart_dex end describe port(8080) do diff --git a/spec/e2e/e2e_helper.rb b/spec/e2e/e2e_helper.rb index b3022ce4c5..1ed63f014e 100644 --- a/spec/e2e/e2e_helper.rb +++ b/spec/e2e/e2e_helper.rb @@ -27,9 +27,6 @@ def browser_login(browser) browser.text_field(id: 'username').set 'ood@localhost' browser.text_field(id: 'password').set 'password' browser.button(id: 'submit-login').click - Watir::Wait.until(timeout: 90, interval: 1) do - browser.title == 'Dashboard - Open OnDemand' - end end def hook_fixture(file)