diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index ff9fafaf4d00..1cfd925aa018 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -308,3 +308,20 @@ jobs: with: subject: "Docker build failed" body: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + trigger_helm_release: + needs: [setup, build, merge] + permissions: + contents: none + if: github.repository == 'opf/openproject' + runs-on: ubuntu-latest + steps: + - name: Trigger Helm charts release + env: + TOKEN: ${{ secrets.OPENPROJECT_CI_TOKEN }} + REPOSITORY: opf/helm-charts + WORKFLOW_ID: core_release.yml + run: | + curl -i --fail-with-body -H"authorization: Bearer $TOKEN" \ + -XPOST -H"Accept: application/vnd.github.v3+json" \ + https://api.github.com/repos/$REPOSITORY/actions/workflows/$WORKFLOW_ID/dispatches \ + -d '{"ref": "dev", "inputs": { "tag" : "${{ needs.setup.outputs.version }}" }}' diff --git a/app/controllers/work_packages/menus_controller.rb b/app/controllers/work_packages/menus_controller.rb index a4d8d3c570c8..8ede9319d366 100644 --- a/app/controllers/work_packages/menus_controller.rb +++ b/app/controllers/work_packages/menus_controller.rb @@ -30,7 +30,7 @@ class MenusController < ApplicationController before_action :load_and_authorize_in_optional_project def show - @sidebar_menu_items = WorkPackages::Menu.new(project: @project, params:, request:).menu_items + @sidebar_menu_items = WorkPackages::Menu.new(project: @project, params:).menu_items render layout: nil end end diff --git a/app/menus/work_packages/menu.rb b/app/menus/work_packages/menu.rb index e2415fa4fc92..ca1c96b59922 100644 --- a/app/menus/work_packages/menu.rb +++ b/app/menus/work_packages/menu.rb @@ -29,9 +29,8 @@ module WorkPackages class Menu < Submenu attr_reader :view_type, :project, :params - def initialize(project: nil, params: nil, request: nil) + def initialize(project: nil, params: nil) @view_type = "work_packages_table" - @request = request super(view_type:, project:, params:) end @@ -66,16 +65,17 @@ def query_path(query_params) def selected?(query_params) return true if check_for_redirected_urls(query_params) - - if query_params[:work_package_default] && - (%i[filters query_props query_id name].none? { |k| params.key? k }) && - @request.referer.include?("work_packages") - return true - end + return true if highlight_on_work_packages?(query_params) super end + def highlight_on_work_packages?(query_params) + query_params[:work_package_default] && + (%i[filters query_props query_id name].none? { |k| params.key? k }) && + params[:on_work_package_path] == "true" + end + def ee_upsale_path(query_params) share_upsale_work_packages_path({ name: query_params[:name] }) end diff --git a/app/views/work_packages/menus/_menu.html.erb b/app/views/work_packages/menus/_menu.html.erb index 6391327f2b94..5cf2f9bd53c7 100644 --- a/app/views/work_packages/menus/_menu.html.erb +++ b/app/views/work_packages/menus/_menu.html.erb @@ -1,5 +1,14 @@ +<% + on_work_package_path = request.path.include?('/work_packages') + path = + if @project + menu_project_work_packages_path(@project, **params.permit(:query_props, :query_id, :name), on_work_package_path:) + else + work_packages_menu_path(**params.permit(:query_props, :query_id, :name), on_work_package_path:) + end +%> <%= turbo_frame_tag "work_packages_sidemenu", - src: @project ? menu_project_work_packages_path(@project, params.permit(:query_props, :query_id, :name)) : work_packages_menu_path(params.permit(:query_props, :query_id, :name)), + src: path, target: "_top", data: { turbo: false }, loading: :lazy %> diff --git a/config/locales/crowdin/de.yml b/config/locales/crowdin/de.yml index 9be1b3f132dc..5d638f0d60e2 100644 --- a/config/locales/crowdin/de.yml +++ b/config/locales/crowdin/de.yml @@ -3142,14 +3142,14 @@ de: Dies legt fest, was als "Tag" angesehen wird, wenn eine zeitliche Dauer angezeigt werden (zum Beispiel: Wenn die Länge eines Tages 8 Stunden beträgt, wird eine Eingabe von 32 Stunden als 4 Tage angezeigt). setting_invitation_expiration_days: "Aktivierungs-Mail läuft ab nach" setting_work_package_done_ratio: "Modus der Fortschrittsberechnung" - setting_work_package_done_ratio_field: "Arbeitsbezogen" + setting_work_package_done_ratio_field: "Aufwandsbezogen" setting_work_package_done_ratio_field_caption_html: >- % abgeschlossen kann auf jeden beliebigen Wert gesetzt werden. Wenn Sie optional einen Wert für Aufwand eingeben, wird verbleibender Aufwand automatisch abgeleitet. setting_work_package_done_ratio_status: "Statusbezogen" setting_work_package_done_ratio_status_caption_html: >- Jeder Status ist mit einem Wert für % abgeschlossen verbunden. Wenn Sie den Status ändern, ändert sich auch % abgeschlossen. setting_work_package_done_ratio_explanation_html: > - Im arbeitsbezogenen Modus ist % abgeschlossen frei wählbar. Falls Sie einen Wert für Aufwand angeben, wird Verbleibender Aufand automatisch abgeleitet. Im statusbasierten Modus ist jedem Status ein Wert für % abgeschlossen zugeordnet. Wenn Sie den Status ändern, ändert sich % abgeschlossen. + Im aufwandsbezogenen Modus ist % abgeschlossen frei wählbar. Falls Sie einen Wert für Aufwand angeben, wird Verbleibender Aufand automatisch abgeleitet. Im statusbasierten Modus ist jedem Status ein Wert für % abgeschlossen zugeordnet. Wenn Sie den Status ändern, ändert sich % abgeschlossen. setting_work_package_properties: "Arbeitspaket-Eigenschaften" setting_work_package_startdate_is_adddate: "Neue Arbeitspakete haben \"Heute\" als Anfangsdatum" setting_work_packages_projects_export_limit: "Arbeitspakete / Exportlimit für Projekte" diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 6d97ad57d414..e42e23b1ddbd 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -374,7 +374,7 @@ zh-TW: will_remove_all_group_access_priveleges: "刪除該成員將刪除該組對項目的所有訪問權限。該組仍將作為實例的一部分存在。" cannot_delete_inherited_membership: "您不能刪除此成員,因為他們所屬的組本身就是此項目的成員。" cannot_delete_inherited_membership_note_admin_html: "您可以在 %{administration_settings_link} 中刪除作為項目成員的組或組中的特定成員。" - cannot_delete_inherited_membership_note_non_admin: "您可以將該組作為項目成員移除,或者聯繫管理員將該特定成員從組中移除。" + cannot_delete_inherited_membership_note_non_admin: "您可以將該群組作為專案成員移除,或者聯繫管理員將該特定成員從組中移除。" delete_work_package_shares_dialog: title: "撤銷已共用的工作項目" shared_with_this_user_html: @@ -804,7 +804,7 @@ zh-TW: blank: "不可空白" blank_nested: "需要設置屬性 '%{property}' " cannot_delete_mapping: "必需項,不能刪除" - is_for_all_cannot_modify: "is for all projects and can therefore not be modified." + is_for_all_cannot_modify: "適用於所有專案,因此無法修改。" cant_link_a_work_package_with_a_descendant: "一個工作項目不能聯結到它的一個子項目" circular_dependency: "這個關係會建立一個循環依賴" confirmation: "不吻合 %{attribute}。" @@ -2628,7 +2628,7 @@ zh-TW: body: "您的 %{app_title} 帳戶已關聯到外部身份驗證服務提供商 (%{name})。" subtext: "無法在應用程序中更改外部帳戶的密碼。請使用您的身份驗證服務提供商的密碼丟失功能。" mail_body_register: "歡迎使用 %{app_title}。請點擊此鏈接啟用您的帳戶:" - mail_body_register_header_title: "項目成員邀請電子郵件" + mail_body_register_header_title: "專案成員邀請電子郵件" mail_body_register_user: "親 %{name}," mail_body_register_links_html: | 請隨時瀏覽我們提供網絡研討會 (%{webinar_link}) 的 YouTube 頻道 (%{youtube_link}) diff --git a/docs/release-notes/14-6-1/README.md b/docs/release-notes/14-6-1/README.md new file mode 100644 index 000000000000..e02c0df4efe3 --- /dev/null +++ b/docs/release-notes/14-6-1/README.md @@ -0,0 +1,28 @@ +--- +title: OpenProject 14.6.1 +sidebar_navigation: + title: 14.6.1 +release_version: 14.6.1 +release_date: 2024-10-10 +--- + +# OpenProject 14.6.1 + +Release date: 2024-10-10 + +We released OpenProject [OpenProject 14.6.1](https://community.openproject.org/versions/2130). +The release contains several bug fixes and we recommend updating to the newest version. +In these Release Notes, we will give an overview of important feature changes. +At the end, you will find a complete list of all changes and bug fixes. + + + +## Bug fixes and changes + + + + +- Bugfix: Side menu for work package lists not displayed \[[#57663](https://community.openproject.org/wp/57663)\] + + + diff --git a/docs/release-notes/README.md b/docs/release-notes/README.md index 2a9754b263f3..8c33113d8586 100644 --- a/docs/release-notes/README.md +++ b/docs/release-notes/README.md @@ -13,6 +13,13 @@ Stay up to date and get an overview of the new features included in the releases +## 14.6.1 + +Release date: 2024-10-10 + +[Release Notes](14-6-1/) + + ## 14.6.0 Release date: 2024-10-09 diff --git a/lib/open_project/version.rb b/lib/open_project/version.rb index 843934d97407..5686820abc52 100644 --- a/lib/open_project/version.rb +++ b/lib/open_project/version.rb @@ -33,7 +33,7 @@ module OpenProject module VERSION # :nodoc: MAJOR = 14 MINOR = 6 - PATCH = 0 + PATCH = 1 class << self # Used by semver to define the special version (if any). diff --git a/modules/storages/config/locales/crowdin/zh-TW.yml b/modules/storages/config/locales/crowdin/zh-TW.yml index 6720545c9368..e22a8e821715 100644 --- a/modules/storages/config/locales/crowdin/zh-TW.yml +++ b/modules/storages/config/locales/crowdin/zh-TW.yml @@ -114,8 +114,8 @@ zh-TW: hide_inactive_folders: permission_not_set: 無法在 %{path} 上設定權限。 remote_folders: - not_allowed: The %{username} doesn't have access to the %{group_folder} folder. Please check the folder permissions on Nextcloud. - not_found: "%{group_folder} folder wasn't found. Please check your Nextcloud setup." + not_allowed: '%{username} 無法存取 %{group_folder}。請檢查 Nextcloud 上的資料夾權限。' + not_found: "%{group_folder} 未找到。請檢查您的 Nextcloud 設定。" remove_user_from_group: conflict: '使用者 %{user} 無法從 %{group} 群組中移除,原因如下: %{reason}' failed_to_remove: '使用者 %{user} 無法從 %{group} 群組中移除,原因如下: %{reason}' @@ -128,7 +128,7 @@ zh-TW: group_does_not_exist: "%{group} 不存在。請檢查您的 Nextcloud 實例配置。" insufficient_privileges: OpenProject 沒有足夠的權限將 %{user} 加入 %{group}。請檢查 Nextcloud 中的群組設定。 not_allowed: Nextcloud 封鎖該請求。 - unauthorized: OpenProject could not sync with Nextcloud. Please check your storage and Nextcloud configuration. + unauthorized: OpenProject 無法與 Nextcloud 同步。請檢查您的儲存空間和 Nextcloud 設定。 user_does_not_exist: "%{user} 在 Nextcloud 中不存在。" one_drive_sync_service: attributes: @@ -147,7 +147,7 @@ zh-TW: permission_not_set: 無法在 %{path} 上設定權限。 error: 發生意外錯誤。請確保您的 Nextcloud 可以連線,並檢查 OpenProject 日誌以取得更多資訊。 not_allowed: OpenProject 不允許存取您的 OneDrive 磁碟機。請檢查 Azure 應用程式上設定的權限。 - unauthorized: OpenProject could not sync with OneDrive. Please check your storage and Azure Application configuration. + unauthorized: OpenProject 無法與 OneDrive 同步。請檢查您的儲存空間和 Azure 應用程式設定。 user_does_not_exist: "%{user} 在 Nextcloud 中不存在。" upload_link_service: not_found: 在 %{storage_name} 上找不到目標資料夾 %{folder}。 @@ -385,7 +385,7 @@ zh-TW: storage_list_blank_slate: description: 新增的儲存空間將在此顯示 heading: 目前沒有任何儲存空間 - successful_storage_connection: Storage connected successfully! Remember to activate the storage in the Projects tab for each desired project to use it. + successful_storage_connection: 儲存已成功連接!請記住在每個所需專案的專案索引標籤中啟動儲存,以便使用。 upsale: description: |- 整合您的 OneDrive/SharePoint 作為 OpenProject 的檔案儲存空間。上傳檔案並將其直接連結至專案中的