mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
396de9362f
* Use new async FilterableTreeView for global project selector * Remove replaced angular component * Fine tune sorting and expansion state of the new project selector * Update primer to 0.86.1 * Add workspace information and filter results hierarchy information to project selector * Include review feedback: Harmonize I18n keys, fix visible scope, use guarded local storage * Add a turboFrame in the project select overlay to only load the projects when it is actually opened * Restore BIM tab styles which were broken for a while already but the new project selector changes made it so bad that the test broke because the plus icon was overlapping the checkbox * Clarify spec expectation
76 lines
2.5 KiB
Plaintext
76 lines
2.5 KiB
Plaintext
<%#-- copyright
|
|
OpenProject is an open source project management software.
|
|
Copyright (C) the OpenProject GmbH
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License version 3.
|
|
|
|
OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
|
|
Copyright (C) 2006-2013 Jean-Philippe Lang
|
|
Copyright (C) 2010-2013 the ChiliProject Team
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
See COPYRIGHT and LICENSE files for more details.
|
|
|
|
++#%>
|
|
|
|
<% add_icons = ->(tree_node) do
|
|
if current?
|
|
tree_node.with_trailing_action_button(
|
|
icon: :"x-circle",
|
|
tag: :a,
|
|
href: home_path(jump: @jump),
|
|
show_tooltip: false,
|
|
aria: { label: t("header.project_select_component.leave_project") },
|
|
data: { test_selector: "op-header-project-select--remove-item" }
|
|
)
|
|
end
|
|
end %>
|
|
|
|
<% if children.any? %>
|
|
<% @component.with_sub_tree(
|
|
label:,
|
|
select_variant: :none,
|
|
current: current?,
|
|
expanded: expanded?,
|
|
href:,
|
|
disabled: !matches_query?,
|
|
data: { node_id: project.id, test_selector: "op-header-project-select--item" }
|
|
) do |sub| %>
|
|
<% add_icons.call(sub) %>
|
|
<% children.each do |child_node| %>
|
|
<%= render Header::Projects::NodeComponent.new(
|
|
component: sub,
|
|
node: child_node,
|
|
current_project_id: @current_project_id,
|
|
favorited_ids: @favorited_ids,
|
|
jump: @jump
|
|
) %>
|
|
<% end %>
|
|
<% end %>
|
|
<% else %>
|
|
<% @component.with_leaf(
|
|
label:,
|
|
select_variant: :none,
|
|
current: current?,
|
|
href:,
|
|
disabled: !matches_query?,
|
|
data: { node_id: project.id, test_selector: "op-header-project-select--item" }
|
|
) do |leaf| %>
|
|
<% add_icons.call(leaf) %>
|
|
<% end %>
|
|
<% end %>
|