kanbanworkflowstimelinescrumrubyroadmapproject-planningproject-managementopenprojectangularissue-trackerifcgantt-chartganttbug-trackerboardsbcf
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
4.7 KiB
106 lines
4.7 KiB
<%#-- copyright
|
|
OpenProject is a project management system.
|
|
Copyright (C) 2012-2014 the OpenProject Foundation (OPF)
|
|
|
|
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 doc/COPYRIGHT.rdoc for more details.
|
|
|
|
++#%>
|
|
|
|
<%= include_gon %>
|
|
|
|
<% content_for :action_menu_specific do %>
|
|
<%= link_to_if_authorized l(:label_message_new),
|
|
{:controller => '/messages', :action => 'new', :board_id => @board},
|
|
:class => 'icon icon-add',
|
|
:onclick => 'Element.show("add-message"); Form.Element.focus("message_subject"); return false;' %>
|
|
<%= watcher_link(@board, User.current) %>
|
|
<% end %>
|
|
|
|
<div id="add-message" style="display:none;">
|
|
<% if authorize_for('messages', 'new') %>
|
|
<h2><%= link_to h(@board.name), project_board_path(@project, @board) %> » <%= l(:label_message_new) %></h2>
|
|
<%= form_for Message.new,
|
|
:url => board_topics_path(@board),
|
|
:html => { :multipart => true,
|
|
:id => 'message-form'} do |f| %>
|
|
<%= render :partial => 'messages/form', :locals => {:f => f} %>
|
|
<p><%= submit_tag l(:button_create) %>
|
|
<%= preview_link preview_board_topics_path(@board), 'message-form-preview' %>
|
|
<%= link_to l(:button_cancel), "#", :onclick => 'Element.hide("add-message")' %></p>
|
|
<% end %>
|
|
<div id="preview" class="wiki"></div>
|
|
<% end %>
|
|
</div>
|
|
|
|
<h2><%=h @board.name %></h2>
|
|
<p class="subtitle"><%=h @board.description %></p>
|
|
<%= render :partial => 'layouts/action_menu_specific' %>
|
|
|
|
|
|
<div ng-controller="MessagesController">
|
|
<% if @topics.any? %>
|
|
<table class="list messages">
|
|
<thead><tr>
|
|
<th><%= Message.human_attribute_name(:subject) %></th>
|
|
<th><%= Message.human_attribute_name(:author) %></th>
|
|
<th><sort-link sort-attr="created_on" sort-func="loadMessages()"><%= Message.human_attribute_name(:created_on) %></sort-link></th>
|
|
<th><sort-link sort-attr="replies" sort-func="loadMessages()"><%= l(:label_reply_plural) %></sort-link></th>
|
|
<th><sort-link sort-attr="updated_on" sort-func="loadMessages()"><%= l(:label_message_last) %></sort-link></th>
|
|
</tr></thead>
|
|
<tbody>
|
|
<tr ng-repeat="message in messages">
|
|
<td class="subject">
|
|
<icon-wrapper ng-if="message.isLocked == true" icon-name="locked" icon-title="{{I18n.t('js.label_board_locked')}}"></icon-wrapper>
|
|
<img ng-if="message.isSticky == true" ng-src="{{PathHelper.assetPath('bullet_go.png')}}" alt="{{I18n.t('js.label_board_sticky')}}"></img>
|
|
<a ng-href="{{PathHelper.messagePath(message.id)}}">{{message.subject}}</a>
|
|
</td>
|
|
<td class="author"><a ng-href="{{PathHelper.userPath(message.author.id)}}">{{message.author.name}}</a></td>
|
|
<td class="created_on" formatted-date="message.created_on"></td>
|
|
<td class="replies">{{message.replies_count}}</td>
|
|
<td class="last_message">
|
|
<span ng-if="message.last_reply !== undefined">
|
|
<authoring created-on="message.last_reply.created_on" author="message.last_reply.author"></authoring>
|
|
<br />
|
|
<a ng-href="{{PathHelper.messagePath(message.last_reply.id)}}">{{message.subject}}</a>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<table-pagination total-entries="totalMessageCount" update-results="loadMessages()"></table-pagination>
|
|
<modal-loading></modal-loading>
|
|
<% else %>
|
|
<p class="nodata"><%= l(:label_no_data) %></p>
|
|
<% end %>
|
|
</div>
|
|
|
|
<%= other_formats_links do |f| %>
|
|
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
|
<% end %>
|
|
|
|
<% html_title h(@board.name) %>
|
|
|
|
<% content_for :header_tags do %>
|
|
<%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@project}: #{@board}") %>
|
|
<% end %>
|
|
|