Files
2026-02-09 15:08:13 +01:00

141 lines
4.9 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.
++#%>
<%=
render(Primer::OpenProject::PageHeader.new) do |header|
header.with_title { @forum.name }
header.with_description { @forum.description }
header.with_breadcrumbs(
[{ href: project_overview_path(@project.id), text: @project.name },
{ href: project_forums_path(@project), text: t(:label_forum_plural) },
@forum.name]
)
watcher_action_button(header, @forum)
end
%>
<% if authorize_for(:messages, :new) %>
<%=
render(Primer::OpenProject::SubHeader.new) do |subheader|
if authorize_for(:messages, :new)
subheader.with_action_button(scheme: :primary,
leading_icon: :plus,
label: t(:label_message_new),
tag: :a,
href: url_for({ controller: "/messages", action: "new", forum_id: @forum })) do
t(:label_message)
end
end
end
%>
<% end %>
<% if @topics.any? %>
<div class="generic-table--container">
<div class="generic-table--results-container">
<table class="generic-table" data-controller="table-highlighting">
<colgroup>
<col>
<col>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= Message.human_attribute_name(:subject) %>
</span>
</div>
</div>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= Message.human_attribute_name(:author) %>
</span>
</div>
</div>
</th>
<%= sort_header_tag("created_on", caption: Message.human_attribute_name(:created_at)) %>
<%= sort_header_tag("replies", caption: t(:label_reply_plural)) %>
<%= sort_header_tag("updated_at", caption: t(:label_message_last)) %>
</tr>
</thead>
<tbody>
<% @topics.each do |message| %>
<tr>
<td class="subject">
<% if message.sticky? %>
<%= op_icon("icon-wiki", title: I18n.t("js.label_board_sticky")) %>
<% end %>
<% if message.locked? %>
<%= op_icon("icon-locked", title: I18n.t("js.label_board_locked")) %>
<% end %>
<%= link_to message.subject, project_forum_topic_path(message.forum.project, message.forum, message) %>
</td>
<td class="author">
<% if message.author %>
<%= link_to_user message.author %>
<% end %>
</td>
<td class="created_at">
<%= format_time message.created_at %>
</td>
<td class="replies"><%= message.replies_count %></td>
<td class="last_message">
<% if message.last_reply %>
<%= authoring message.last_reply.created_at, message.last_reply.author %><br>
<br>
<%= link_to_message message.last_reply, no_root: true %>
<% end %>
</td>
</tr>
<% end %>
</tbody>
</table>
</div>
</div>
<%= pagination_links_full @topics %>
<% else %>
<%= no_results_box %>
<% end %>
<%= other_formats_links do |f| %>
<%= f.link_to "Atom", url: { key: User.current.rss_key } %>
<% end %>
<% html_title h(@forum.name) %>
<% content_for :header_tags do %>
<%= auto_discovery_link_tag(:atom, { format: "atom", key: User.current.rss_key }, title: "#{@project}: #{@forum}") %>
<% end %>