Revision 912:5e80956cc792 app/views/projects
| app/views/projects/_edit.html.erb | ||
|---|---|---|
| 1 |
<% labelled_tabular_form_for @project do |f| %> |
|
| 2 |
<%= render :partial => 'form', :locals => { :f => f } %>
|
|
| 3 |
<%= submit_tag l(:button_save) %> |
|
| 4 |
<% end %> |
|
| app/views/projects/_edit.rhtml | ||
|---|---|---|
| 1 |
<% labelled_tabular_form_for :project, @project, :url => project_path(@project), :html => {:method => (@project.new_record? ? :post : :put) } do |f| %>
|
|
| 2 |
<%= render :partial => 'form', :locals => { :f => f } %>
|
|
| 3 |
<%= submit_tag l(:button_save) %> |
|
| 4 |
<% end %> |
|
| app/views/projects/_form.html.erb | ||
|---|---|---|
| 1 |
<%= error_messages_for 'project' %> |
|
| 2 |
|
|
| 3 |
<div class="box"> |
|
| 4 |
<!--[form:project]--> |
|
| 5 |
<p><%= f.text_field :name, :required => true, :size => 60 %> |
|
| 6 |
<br /> |
|
| 7 |
<em> <%= l(:text_project_name_info) %></em> |
|
| 8 |
</p> |
|
| 9 |
|
|
| 10 |
<% unless @project.allowed_parents.compact.empty? %> |
|
| 11 |
<p><%= label(:project, :parent_id, l(:field_parent)) %><%= parent_project_select_tag(@project) %></p> |
|
| 12 |
<% end %> |
|
| 13 |
|
|
| 14 |
<p><%= f.text_area :description, :rows => 5, :class => 'wiki-edit' %></p> |
|
| 15 |
<p><%= f.text_field :identifier, :required => true, :size => 60, :disabled => @project.identifier_frozen? %> |
|
| 16 |
<% unless @project.identifier_frozen? %> |
|
| 17 |
<br /> |
|
| 18 |
<em><%= l(:text_project_identifier_info) %></em> |
|
| 19 |
<% end %></p> |
|
| 20 |
<p><%= f.text_field :homepage, :size => 60 %> |
|
| 21 |
<br /> |
|
| 22 |
<em> <%= l(:text_project_homepage_info) %></em> |
|
| 23 |
</p> |
|
| 24 |
<p><%= f.check_box :is_public %> |
|
| 25 |
<br /> |
|
| 26 |
<em> <%= l(:text_project_visibility_info) %></em> |
|
| 27 |
</p> |
|
| 28 |
<%= wikitoolbar_for 'project_description' %> |
|
| 29 |
|
|
| 30 |
<% @project.custom_field_values.each do |value| %> |
|
| 31 |
<p><%= custom_field_tag_with_label :project, value %></p> |
|
| 32 |
<% end %> |
|
| 33 |
<%= call_hook(:view_projects_form, :project => @project, :form => f) %> |
|
| 34 |
</div> |
|
| 35 |
|
|
| 36 |
<% if @project.new_record? %> |
|
| 37 |
<fieldset class="box"><legend><%= l(:label_module_plural) %></legend> |
|
| 38 |
<% Redmine::AccessControl.available_project_modules.each do |m| %> |
|
| 39 |
<label class="floating"> |
|
| 40 |
<%= check_box_tag 'project[enabled_module_names][]', m, @project.module_enabled?(m), :id => "project_enabled_module_names_#{m}" %>
|
|
| 41 |
<%= l_or_humanize(m, :prefix => "project_module_") %> |
|
| 42 |
</label> |
|
| 43 |
<% end %> |
|
| 44 |
<%= hidden_field_tag 'project[enabled_module_names][]', '' %> |
|
| 45 |
<%= javascript_tag 'observeProjectModules()' %> |
|
| 46 |
</fieldset> |
|
| 47 |
<% end %> |
|
| 48 |
|
|
| 49 |
<% if @project.new_record? %> |
|
| 50 |
<% @trackers.each do |tracker| %> |
|
| 51 |
<%= hidden_field_tag 'project[tracker_ids][]', tracker.id %> |
|
| 52 |
<% end %> |
|
| 53 |
<%= hidden_field_tag 'project[tracker_ids][]', '' %> |
|
| 54 |
<% elsif @project.module_enabled?('issue_tracking') %>
|
|
| 55 |
<% unless @trackers.empty? %> |
|
| 56 |
<fieldset class="box" id="project_trackers"><legend><%=l(:label_tracker_plural)%></legend> |
|
| 57 |
<% @trackers.each do |tracker| %> |
|
| 58 |
<label class="floating"> |
|
| 59 |
<%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.include?(tracker) %> |
|
| 60 |
<%=h tracker %> |
|
| 61 |
</label> |
|
| 62 |
<% end %> |
|
| 63 |
<%= hidden_field_tag 'project[tracker_ids][]', '' %> |
|
| 64 |
</fieldset> |
|
| 65 |
<% end %> |
|
| 66 |
|
|
| 67 |
<% unless @issue_custom_fields.empty? %> |
|
| 68 |
<fieldset class="box" id="project_issue_custom_fields"><legend><%=l(:label_custom_field_plural)%></legend> |
|
| 69 |
<% @issue_custom_fields.each do |custom_field| %> |
|
| 70 |
<label class="floating"> |
|
| 71 |
<%= check_box_tag 'project[issue_custom_field_ids][]', custom_field.id, (@project.all_issue_custom_fields.include? custom_field), (custom_field.is_for_all? ? {:disabled => "disabled"} : {}) %>
|
|
| 72 |
<%=h custom_field.name %> |
|
| 73 |
</label> |
|
| 74 |
<% end %> |
|
| 75 |
<%= hidden_field_tag 'project[issue_custom_field_ids][]', '' %> |
|
| 76 |
</fieldset> |
|
| 77 |
<% end %> |
|
| 78 |
<% end %> |
|
| 79 |
<!--[eoform:project]--> |
|
| app/views/projects/_form.rhtml | ||
|---|---|---|
| 1 |
<%= error_messages_for 'project' %> |
|
| 2 |
|
|
| 3 |
<div class="box"> |
|
| 4 |
<!--[form:project]--> |
|
| 5 |
<p><%= f.text_field :name, :required => true, :size => 60 %> |
|
| 6 |
<br /> |
|
| 7 |
<em> <%= l(:text_project_name_info) %></em> |
|
| 8 |
</p> |
|
| 9 |
|
|
| 10 |
<% unless @project.allowed_parents.compact.empty? %> |
|
| 11 |
<p><%= label(:project, :parent_id, l(:field_parent)) %><%= parent_project_select_tag(@project) %></p> |
|
| 12 |
<% end %> |
|
| 13 |
|
|
| 14 |
<p><%= f.text_area :description, :rows => 5, :class => 'wiki-edit' %></p> |
|
| 15 |
<p><%= f.text_field :identifier, :required => true, :size => 60, :disabled => @project.identifier_frozen? %> |
|
| 16 |
<% unless @project.identifier_frozen? %> |
|
| 17 |
<br /> |
|
| 18 |
<em><%= l(:text_project_identifier_info) %></em> |
|
| 19 |
<% end %></p> |
|
| 20 |
<p><%= f.text_field :homepage, :size => 60 %> |
|
| 21 |
<br /> |
|
| 22 |
<em> <%= l(:text_project_homepage_info) %></em> |
|
| 23 |
</p> |
|
| 24 |
<p><%= f.check_box :is_public %> |
|
| 25 |
<br /> |
|
| 26 |
<em> <%= l(:text_project_visibility_info) %></em> |
|
| 27 |
</p> |
|
| 28 |
<%= wikitoolbar_for 'project_description' %> |
|
| 29 |
|
|
| 30 |
<% @project.custom_field_values.each do |value| %> |
|
| 31 |
<p><%= custom_field_tag_with_label :project, value %></p> |
|
| 32 |
<% end %> |
|
| 33 |
<%= call_hook(:view_projects_form, :project => @project, :form => f) %> |
|
| 34 |
</div> |
|
| 35 |
|
|
| 36 |
<% if @project.new_record? %> |
|
| 37 |
<fieldset class="box"><legend><%= l(:label_module_plural) %></legend> |
|
| 38 |
<% Redmine::AccessControl.available_project_modules.each do |m| %> |
|
| 39 |
<label class="floating"> |
|
| 40 |
<%= check_box_tag 'project[enabled_module_names][]', m, @project.module_enabled?(m), :id => "project_enabled_module_names_#{m}" %>
|
|
| 41 |
<%= l_or_humanize(m, :prefix => "project_module_") %> |
|
| 42 |
</label> |
|
| 43 |
<% end %> |
|
| 44 |
<%= hidden_field_tag 'project[enabled_module_names][]', '' %> |
|
| 45 |
<%= javascript_tag 'observeProjectModules()' %> |
|
| 46 |
</fieldset> |
|
| 47 |
<% end %> |
|
| 48 |
|
|
| 49 |
<% if @project.new_record? %> |
|
| 50 |
<% @trackers.each do |tracker| %> |
|
| 51 |
<%= hidden_field_tag 'project[tracker_ids][]', tracker.id %> |
|
| 52 |
<% end %> |
|
| 53 |
<%= hidden_field_tag 'project[tracker_ids][]', '' %> |
|
| 54 |
<% elsif @project.module_enabled?('issue_tracking') %>
|
|
| 55 |
<% unless @trackers.empty? %> |
|
| 56 |
<fieldset class="box" id="project_trackers"><legend><%=l(:label_tracker_plural)%></legend> |
|
| 57 |
<% @trackers.each do |tracker| %> |
|
| 58 |
<label class="floating"> |
|
| 59 |
<%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.include?(tracker) %> |
|
| 60 |
<%= tracker %> |
|
| 61 |
</label> |
|
| 62 |
<% end %> |
|
| 63 |
<%= hidden_field_tag 'project[tracker_ids][]', '' %> |
|
| 64 |
</fieldset> |
|
| 65 |
<% end %> |
|
| 66 |
|
|
| 67 |
<% unless @issue_custom_fields.empty? %> |
|
| 68 |
<fieldset class="box" id="project_issue_custom_fields"><legend><%=l(:label_custom_field_plural)%></legend> |
|
| 69 |
<% @issue_custom_fields.each do |custom_field| %> |
|
| 70 |
<label class="floating"> |
|
| 71 |
<%= check_box_tag 'project[issue_custom_field_ids][]', custom_field.id, (@project.all_issue_custom_fields.include? custom_field), (custom_field.is_for_all? ? {:disabled => "disabled"} : {}) %>
|
|
| 72 |
<%= custom_field.name %> |
|
| 73 |
</label> |
|
| 74 |
<% end %> |
|
| 75 |
<%= hidden_field_tag 'project[issue_custom_field_ids][]', '' %> |
|
| 76 |
</fieldset> |
|
| 77 |
<% end %> |
|
| 78 |
<% end %> |
|
| 79 |
<!--[eoform:project]--> |
|
| app/views/projects/_members_box.html.erb | ||
|---|---|---|
| 1 | 1 |
<% if @users_by_role.any? %> |
| 2 |
<div class="members box"> |
|
| 3 |
<h3><%=l(:label_member_plural)%></h3> |
|
| 4 |
<p><% @users_by_role.keys.sort.each do |role| %> |
|
| 5 |
<%=h role %>: <%= @users_by_role[role].sort.collect{|u| link_to_user u}.join(", ") %><br />
|
|
| 6 |
<% end %></p> |
|
| 7 |
</div> |
|
| 8 |
<% end %> |
|
| 2 |
<div class="members box"> |
|
| 3 |
<h3><%=l(:label_member_plural)%></h3> |
|
| 4 |
<p><% @users_by_role.keys.sort.each do |role| %> |
|
| 5 |
<%=h role %>: <%= @users_by_role[role].sort.collect{|u| link_to_user u}.join(", ") %><br />
|
|
| 6 |
<% end %></p> |
|
| 7 |
</div> |
|
| 8 |
<% end %> |
|
| app/views/projects/copy.html.erb | ||
|---|---|---|
| 1 |
<h2><%=l(:label_project_new)%></h2> |
|
| 2 |
|
|
| 3 |
<% labelled_tabular_form_for @project, :url => { :action => "copy" } do |f| %>
|
|
| 4 |
<%= render :partial => 'form', :locals => { :f => f } %>
|
|
| 5 |
|
|
| 6 |
<fieldset class="box"><legend><%= l(:button_copy) %></legend> |
|
| 7 |
<label class="block"><%= check_box_tag 'only[]', 'members', true %> <%= l(:label_member_plural) %> (<%= @source_project.members.count %>)</label> |
|
| 8 |
<label class="block"><%= check_box_tag 'only[]', 'versions', true %> <%= l(:label_version_plural) %> (<%= @source_project.versions.count %>)</label> |
|
| 9 |
<label class="block"><%= check_box_tag 'only[]', 'issue_categories', true %> <%= l(:label_issue_category_plural) %> (<%= @source_project.issue_categories.count %>)</label> |
|
| 10 |
<label class="block"><%= check_box_tag 'only[]', 'issues', true %> <%= l(:label_issue_plural) %> (<%= @source_project.issues.count %>)</label> |
|
| 11 |
<label class="block"><%= check_box_tag 'only[]', 'queries', true %> <%= l(:label_query_plural) %> (<%= @source_project.queries.count %>)</label> |
|
| 12 |
<label class="block"><%= check_box_tag 'only[]', 'boards', true %> <%= l(:label_board_plural) %> (<%= @source_project.boards.count %>)</label> |
|
| 13 |
<label class="block"><%= check_box_tag 'only[]', 'wiki', true %> <%= l(:label_wiki_page_plural) %> (<%= @source_project.wiki.nil? ? 0 : @source_project.wiki.pages.count %>)</label> |
|
| 14 |
<%= hidden_field_tag 'only[]', '' %> |
|
| 15 |
<br /> |
|
| 16 |
<label class="block"><%= check_box_tag 'notifications', 1, params[:notifications] %> <%= l(:label_project_copy_notifications) %></label> |
|
| 17 |
</fieldset> |
|
| 18 |
|
|
| 19 |
<%= submit_tag l(:button_copy) %> |
|
| 20 |
<% end %> |
|
| app/views/projects/copy.rhtml | ||
|---|---|---|
| 1 |
<h2><%=l(:label_project_new)%></h2> |
|
| 2 |
|
|
| 3 |
<% labelled_tabular_form_for :project, @project, :url => { :action => "copy" } do |f| %>
|
|
| 4 |
<%= render :partial => 'form', :locals => { :f => f } %>
|
|
| 5 |
|
|
| 6 |
<fieldset class="box"><legend><%= l(:button_copy) %></legend> |
|
| 7 |
<label class="block"><%= check_box_tag 'only[]', 'members', true %> <%= l(:label_member_plural) %> (<%= @source_project.members.count %>)</label> |
|
| 8 |
<label class="block"><%= check_box_tag 'only[]', 'versions', true %> <%= l(:label_version_plural) %> (<%= @source_project.versions.count %>)</label> |
|
| 9 |
<label class="block"><%= check_box_tag 'only[]', 'issue_categories', true %> <%= l(:label_issue_category_plural) %> (<%= @source_project.issue_categories.count %>)</label> |
|
| 10 |
<label class="block"><%= check_box_tag 'only[]', 'issues', true %> <%= l(:label_issue_plural) %> (<%= @source_project.issues.count %>)</label> |
|
| 11 |
<label class="block"><%= check_box_tag 'only[]', 'queries', true %> <%= l(:label_query_plural) %> (<%= @source_project.queries.count %>)</label> |
|
| 12 |
<label class="block"><%= check_box_tag 'only[]', 'boards', true %> <%= l(:label_board_plural) %> (<%= @source_project.boards.count %>)</label> |
|
| 13 |
<label class="block"><%= check_box_tag 'only[]', 'wiki', true %> <%= l(:label_wiki_page_plural) %> (<%= @source_project.wiki.nil? ? 0 : @source_project.wiki.pages.count %>)</label> |
|
| 14 |
<%= hidden_field_tag 'only[]', '' %> |
|
| 15 |
<br /> |
|
| 16 |
<label class="block"><%= check_box_tag 'notifications', 1, params[:notifications] %> <%= l(:label_project_copy_notifications) %></label> |
|
| 17 |
</fieldset> |
|
| 18 |
|
|
| 19 |
<%= submit_tag l(:button_copy) %> |
|
| 20 |
<% end %> |
|
| app/views/projects/destroy.html.erb | ||
|---|---|---|
| 1 |
<h2><%=l(:label_confirmation)%></h2> |
|
| 2 |
<div class="warning"> |
|
| 3 |
<p><strong><%=h @project_to_destroy %></strong><br /> |
|
| 4 |
<%=l(:text_project_destroy_confirmation)%> |
|
| 5 |
|
|
| 6 |
<% if @project_to_destroy.descendants.any? %> |
|
| 7 |
<br /><%= l(:text_subprojects_destroy_warning, content_tag('strong', h(@project_to_destroy.descendants.collect{|p| p.to_s}.join(', ')))) %>
|
|
| 8 |
<% end %> |
|
| 9 |
</p> |
|
| 10 |
<p> |
|
| 11 |
<% form_tag(project_path(@project_to_destroy), :method => :delete) do %> |
|
| 12 |
<label><%= check_box_tag 'confirm', 1 %> <%= l(:general_text_Yes) %></label> |
|
| 13 |
<%= submit_tag l(:button_delete) %> |
|
| 14 |
<% end %> |
|
| 15 |
</p> |
|
| 16 |
</div> |
|
| app/views/projects/destroy.rhtml | ||
|---|---|---|
| 1 |
<h2><%=l(:label_confirmation)%></h2> |
|
| 2 |
<div class="warning"> |
|
| 3 |
<p><strong><%=h @project_to_destroy %></strong><br /> |
|
| 4 |
<%=l(:text_project_destroy_confirmation)%> |
|
| 5 |
|
|
| 6 |
<% if @project_to_destroy.descendants.any? %> |
|
| 7 |
<br /><%= l(:text_subprojects_destroy_warning, content_tag('strong', h(@project_to_destroy.descendants.collect{|p| p.to_s}.join(', ')))) %>
|
|
| 8 |
<% end %> |
|
| 9 |
</p> |
|
| 10 |
<p> |
|
| 11 |
<% form_tag(project_path(@project_to_destroy), :method => :delete) do %> |
|
| 12 |
<label><%= check_box_tag 'confirm', 1 %> <%= l(:general_text_Yes) %></label> |
|
| 13 |
<%= submit_tag l(:button_delete) %> |
|
| 14 |
<% end %> |
|
| 15 |
</p> |
|
| 16 |
</div> |
|
| app/views/projects/index.api.rsb | ||
|---|---|---|
| 6 | 6 |
api.identifier project.identifier |
| 7 | 7 |
api.description project.description |
| 8 | 8 |
api.parent(:id => project.parent.id, :name => project.parent.name) if project.parent && project.parent.visible? |
| 9 |
|
|
| 9 |
|
|
| 10 | 10 |
render_api_custom_values project.visible_custom_field_values, api |
| 11 |
|
|
| 11 |
|
|
| 12 | 12 |
api.created_on project.created_on |
| 13 | 13 |
api.updated_on project.updated_on |
| 14 | 14 |
end |
| app/views/projects/index.html.erb | ||
|---|---|---|
| 1 |
<% content_for :header_tags do %> |
|
| 2 |
<%= auto_discovery_link_tag(:atom, {:action => 'index', :format => 'atom', :key => User.current.rss_key}) %>
|
|
| 3 |
<% end %> |
|
| 4 |
|
|
| 5 |
<div class="contextual"> |
|
| 6 |
<%= link_to l(:label_overall_activity), { :controller => 'activities', :action => 'index' }%>
|
|
| 7 |
<%= '| ' + link_to(l(:label_project_new), {:controller => 'projects', :action => 'new'}, :class => 'icon icon-add') if User.current.allowed_to?(:add_project, nil, :global => true) %>
|
|
| 8 |
</div> |
|
| 9 |
|
|
| 10 |
<% if @user_projects %> |
|
| 11 |
|
|
| 12 |
<%= render_my_project_hierarchy(@user_projects)%> |
|
| 13 |
|
|
| 14 |
<% end %> |
|
| 15 |
|
|
| 16 |
<h2> |
|
| 17 |
<%= l("label_project_all") %>
|
|
| 18 |
</h2> |
|
| 19 |
|
|
| 20 |
<%= render_project_table(@projects) %> |
|
| 21 |
|
|
| 22 |
<p class="pagination"><%= pagination_links_full @project_pages, @project_count %></p> |
|
| 23 |
|
|
| 24 |
|
|
| 25 |
<% other_formats_links do |f| %> |
|
| 26 |
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
|
| 27 |
<% end %> |
|
| 28 |
|
|
| 29 |
<% html_title(l(:label_project_plural)) -%> |
|
| app/views/projects/index.rhtml | ||
|---|---|---|
| 1 |
<% content_for :header_tags do %> |
|
| 2 |
<%= auto_discovery_link_tag(:atom, {:action => 'index', :format => 'atom', :key => User.current.rss_key}) %>
|
|
| 3 |
<% end %> |
|
| 4 |
|
|
| 5 |
<div class="contextual"> |
|
| 6 |
<%= link_to l(:label_overall_activity), { :controller => 'activities', :action => 'index' }%>
|
|
| 7 |
<%= '| ' + link_to(l(:label_project_new), {:controller => 'projects', :action => 'new'}, :class => 'icon icon-add') if User.current.allowed_to?(:add_project, nil, :global => true) %>
|
|
| 8 |
</div> |
|
| 9 |
|
|
| 10 |
<% if @user_projects %> |
|
| 11 |
|
|
| 12 |
<%= render_my_project_hierarchy(@user_projects)%> |
|
| 13 |
|
|
| 14 |
<% end %> |
|
| 15 |
|
|
| 16 |
<h2> |
|
| 17 |
<%= l("label_project_all") %>
|
|
| 18 |
</h2> |
|
| 19 |
|
|
| 20 |
<%= render_project_table(@projects) %> |
|
| 21 |
|
|
| 22 |
<p class="pagination"><%= pagination_links_full @project_pages, @project_count %></p> |
|
| 23 |
|
|
| 24 |
|
|
| 25 |
<% other_formats_links do |f| %> |
|
| 26 |
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
|
| 27 |
<% end %> |
|
| 28 |
|
|
| 29 |
<% html_title(l(:label_project_plural)) -%> |
|
| app/views/projects/list_members.html.erb | ||
|---|---|---|
| 1 |
<h2><%=l(:label_member_plural)%></h2> |
|
| 2 |
|
|
| 3 |
<% if @members.empty? %><p><i><%= l(:label_no_data) %></i></p><% end %> |
|
| 4 |
|
|
| 5 |
<% members = @members.group_by {|m| m.role } %>
|
|
| 6 |
<% members.keys.sort{|x,y| x.position <=> y.position}.each do |role| %>
|
|
| 7 |
<h3><%= h(role.name) %></h3> |
|
| 8 |
<ul> |
|
| 9 |
<% members[role].each do |m| %> |
|
| 10 |
<li><%= link_to_user m.user %> (<%= format_date m.created_on %>)</li> |
|
| 11 |
<% end %> |
|
| 12 |
</ul> |
|
| 13 |
<% end %> |
|
| app/views/projects/list_members.rhtml | ||
|---|---|---|
| 1 |
<h2><%=l(:label_member_plural)%></h2> |
|
| 2 |
|
|
| 3 |
<% if @members.empty? %><p><i><%= l(:label_no_data) %></i></p><% end %> |
|
| 4 |
|
|
| 5 |
<% members = @members.group_by {|m| m.role } %>
|
|
| 6 |
<% members.keys.sort{|x,y| x.position <=> y.position}.each do |role| %>
|
|
| 7 |
<h3><%= role.name %></h3> |
|
| 8 |
<ul> |
|
| 9 |
<% members[role].each do |m| %> |
|
| 10 |
<li><%= link_to_user m.user %> (<%= format_date m.created_on %>)</li> |
|
| 11 |
<% end %> |
|
| 12 |
</ul> |
|
| 13 |
<% end %> |
|
| app/views/projects/new.html.erb | ||
|---|---|---|
| 1 | 1 |
<h2><%=l(:label_project_new)%></h2> |
| 2 | 2 |
|
| 3 |
<% labelled_tabular_form_for :project, @project, :url => { :action => "create" } do |f| %>
|
|
| 3 |
<% labelled_tabular_form_for @project do |f| %>
|
|
| 4 | 4 |
<%= render :partial => 'form', :locals => { :f => f } %>
|
| 5 |
<%= submit_tag l(:button_save) %> |
|
| 5 |
<%= submit_tag l(:button_create) %> |
|
| 6 |
<%= submit_tag l(:button_create_and_continue), :name => 'continue' %> |
|
| 6 | 7 |
<%= javascript_tag "Form.Element.focus('project_name');" %>
|
| 7 | 8 |
<% end %> |
| app/views/projects/settings.html.erb | ||
|---|---|---|
| 1 |
<h2><%=l(:label_settings)%></h2> |
|
| 2 |
|
|
| 3 |
<%= render_tabs project_settings_tabs %> |
|
| 4 |
|
|
| 5 |
<% html_title(l(:label_settings)) -%> |
|
| app/views/projects/settings.rhtml | ||
|---|---|---|
| 1 |
<h2><%=l(:label_settings)%></h2> |
|
| 2 |
|
|
| 3 |
<%= render_tabs project_settings_tabs %> |
|
| 4 |
|
|
| 5 |
<% html_title(l(:label_settings)) -%> |
|
| app/views/projects/settings/_activities.html.erb | ||
|---|---|---|
| 1 |
<% form_tag(project_project_enumerations_path(@project), :method => :put, :class => "tabular") do %> |
|
| 2 |
|
|
| 3 |
<table class="list"> |
|
| 4 |
<thead><tr> |
|
| 5 |
<th><%= l(:field_name) %></th> |
|
| 6 |
<th><%= l(:enumeration_system_activity) %></th> |
|
| 7 |
<% TimeEntryActivity.new.available_custom_fields.each do |value| %> |
|
| 8 |
<th><%= h value.name %></th> |
|
| 9 |
<% end %> |
|
| 10 |
<th style="width:15%;"><%= l(:field_active) %></th> |
|
| 11 |
</tr></thead> |
|
| 12 |
|
|
| 13 |
<% @project.activities(true).each do |enumeration| %> |
|
| 14 |
<% fields_for "enumerations[#{enumeration.id}]", enumeration do |ff| %>
|
|
| 15 |
<tr class="<%= cycle('odd', 'even') %>">
|
|
| 16 |
<td> |
|
| 17 |
<%= ff.hidden_field :parent_id, :value => enumeration.id unless enumeration.project %> |
|
| 18 |
<%= h(enumeration) %> |
|
| 19 |
</td> |
|
| 20 |
<td align="center" style="width:15%;"><%= checked_image !enumeration.project %></td> |
|
| 21 |
<% enumeration.custom_field_values.each do |value| %> |
|
| 22 |
<td align="center"> |
|
| 23 |
<%= custom_field_tag "enumerations[#{enumeration.id}]", value %>
|
|
| 24 |
</td> |
|
| 25 |
<% end %> |
|
| 26 |
<td align="center" style="width:15%;"> |
|
| 27 |
<%= ff.check_box :active %> |
|
| 28 |
</td> |
|
| 29 |
</tr> |
|
| 30 |
<% end %> |
|
| 31 |
<% end %> |
|
| 32 |
</table> |
|
| 33 |
|
|
| 34 |
<div class="contextual"> |
|
| 35 |
<%= link_to(l(:button_reset), project_project_enumerations_path(@project), |
|
| 36 |
:method => :delete, |
|
| 37 |
:confirm => l(:text_are_you_sure), |
|
| 38 |
:class => 'icon icon-del') %> |
|
| 39 |
</div> |
|
| 40 |
|
|
| 41 |
<%= submit_tag l(:button_save) %> |
|
| 42 |
<% end %> |
|
| app/views/projects/settings/_activities.rhtml | ||
|---|---|---|
| 1 |
<% form_tag(project_project_enumerations_path(@project), :method => :put, :class => "tabular") do %> |
|
| 2 |
|
|
| 3 |
<table class="list"> |
|
| 4 |
<thead><tr> |
|
| 5 |
<th><%= l(:field_name) %></th> |
|
| 6 |
<th><%= l(:enumeration_system_activity) %></th> |
|
| 7 |
<% TimeEntryActivity.new.available_custom_fields.each do |value| %> |
|
| 8 |
<th><%= h value.name %></th> |
|
| 9 |
<% end %> |
|
| 10 |
<th style="width:15%;"><%= l(:field_active) %></th> |
|
| 11 |
</tr></thead> |
|
| 12 |
|
|
| 13 |
<% @project.activities(true).each do |enumeration| %> |
|
| 14 |
<% fields_for "enumerations[#{enumeration.id}]", enumeration do |ff| %>
|
|
| 15 |
<tr class="<%= cycle('odd', 'even') %>">
|
|
| 16 |
<td> |
|
| 17 |
<%= ff.hidden_field :parent_id, :value => enumeration.id unless enumeration.project %> |
|
| 18 |
<%= h(enumeration) %> |
|
| 19 |
</td> |
|
| 20 |
<td align="center" style="width:15%;"><%= checked_image !enumeration.project %></td> |
|
| 21 |
<% enumeration.custom_field_values.each do |value| %> |
|
| 22 |
<td align="center"> |
|
| 23 |
<%= custom_field_tag "enumerations[#{enumeration.id}]", value %>
|
|
| 24 |
</td> |
|
| 25 |
<% end %> |
|
| 26 |
<td align="center" style="width:15%;"> |
|
| 27 |
<%= ff.check_box :active %> |
|
| 28 |
</td> |
|
| 29 |
</tr> |
|
| 30 |
<% end %> |
|
| 31 |
<% end %> |
|
| 32 |
</table> |
|
| 33 |
|
|
| 34 |
<div class="contextual"> |
|
| 35 |
<%= link_to(l(:button_reset), project_project_enumerations_path(@project), |
|
| 36 |
:method => :delete, |
|
| 37 |
:confirm => l(:text_are_you_sure), |
|
| 38 |
:class => 'icon icon-del') %> |
|
| 39 |
</div> |
|
| 40 |
|
|
| 41 |
<%= submit_tag l(:button_save) %> |
|
| 42 |
<% end %> |
|
| app/views/projects/settings/_boards.html.erb | ||
|---|---|---|
| 1 |
<% if @project.boards.any? %> |
|
| 2 |
<table class="list"> |
|
| 3 |
<thead><tr> |
|
| 4 |
<th><%= l(:label_board) %></th> |
|
| 5 |
<th><%= l(:field_description) %></th> |
|
| 6 |
<th></th> |
|
| 7 |
<th></th> |
|
| 8 |
</tr></thead> |
|
| 9 |
<tbody> |
|
| 10 |
<% @project.boards.each do |board| |
|
| 11 |
next if board.new_record? %> |
|
| 12 |
<tr class="<%= cycle 'odd', 'even' %>"> |
|
| 13 |
<td><%=h board.name %></td> |
|
| 14 |
<td><%=h board.description %></td> |
|
| 15 |
<td align="center"> |
|
| 16 |
<% if authorize_for("boards", "edit") %>
|
|
| 17 |
<%= reorder_links('board', {:controller => 'boards', :action => 'edit', :project_id => @project, :id => board}) %>
|
|
| 18 |
<% end %> |
|
| 19 |
</td> |
|
| 20 |
<td class="buttons"> |
|
| 21 |
<%= link_to_if_authorized l(:button_edit), {:controller => 'boards', :action => 'edit', :project_id => @project, :id => board}, :class => 'icon icon-edit' %>
|
|
| 22 |
<%= link_to_if_authorized l(:button_delete), {:controller => 'boards', :action => 'destroy', :project_id => @project, :id => board}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %>
|
|
| 23 |
</td> |
|
| 24 |
</tr> |
|
| 25 |
<% end %> |
|
| 26 |
</tbody> |
|
| 27 |
</table> |
|
| 28 |
<% else %> |
|
| 29 |
<p class="nodata"><%= l(:label_no_data) %></p> |
|
| 30 |
<% end %> |
|
| 31 |
|
|
| 32 |
<p><%= link_to_if_authorized l(:label_board_new), {:controller => 'boards', :action => 'new', :project_id => @project}, :class => 'icon icon-add' %></p>
|
|
| app/views/projects/settings/_boards.rhtml | ||
|---|---|---|
| 1 |
<% if @project.boards.any? %> |
|
| 2 |
<table class="list"> |
|
| 3 |
<thead><tr> |
|
| 4 |
<th><%= l(:label_board) %></th> |
|
| 5 |
<th><%= l(:field_description) %></th> |
|
| 6 |
<th></th> |
|
| 7 |
<th></th> |
|
| 8 |
</tr></thead> |
|
| 9 |
<tbody> |
|
| 10 |
<% @project.boards.each do |board| |
|
| 11 |
next if board.new_record? %> |
|
| 12 |
<tr class="<%= cycle 'odd', 'even' %>"> |
|
| 13 |
<td><%=h board.name %></td> |
|
| 14 |
<td><%=h board.description %></td> |
|
| 15 |
<td align="center"> |
|
| 16 |
<% if authorize_for("boards", "edit") %>
|
|
| 17 |
<%= reorder_links('board', {:controller => 'boards', :action => 'edit', :project_id => @project, :id => board}) %>
|
|
| 18 |
<% end %> |
|
| 19 |
</td> |
|
| 20 |
<td class="buttons"> |
|
| 21 |
<%= link_to_if_authorized l(:button_edit), {:controller => 'boards', :action => 'edit', :project_id => @project, :id => board}, :class => 'icon icon-edit' %>
|
|
| 22 |
<%= link_to_if_authorized l(:button_delete), {:controller => 'boards', :action => 'destroy', :project_id => @project, :id => board}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %>
|
|
| 23 |
</td> |
|
| 24 |
</tr> |
|
| 25 |
<% end %> |
|
| 26 |
</tbody> |
|
| 27 |
</table> |
|
| 28 |
<% else %> |
|
| 29 |
<p class="nodata"><%= l(:label_no_data) %></p> |
|
| 30 |
<% end %> |
|
| 31 |
|
|
| 32 |
<p><%= link_to_if_authorized l(:label_board_new), {:controller => 'boards', :action => 'new', :project_id => @project} %></p>
|
|
| app/views/projects/settings/_issue_categories.html.erb | ||
|---|---|---|
| 1 |
<% if @project.issue_categories.any? %> |
|
| 2 |
<table class="list"> |
|
| 3 |
<thead><tr> |
|
| 4 |
<th><%= l(:label_issue_category) %></th> |
|
| 5 |
<th><%= l(:field_assigned_to) %></th> |
|
| 6 |
<th></th> |
|
| 7 |
</tr></thead> |
|
| 8 |
<tbody> |
|
| 9 |
<% for category in @project.issue_categories %> |
|
| 10 |
<% unless category.new_record? %> |
|
| 11 |
<tr class="<%= cycle 'odd', 'even' %>"> |
|
| 12 |
<td><%=h(category.name) %></td> |
|
| 13 |
<td><%=h(category.assigned_to.name) if category.assigned_to %></td> |
|
| 14 |
<td class="buttons"> |
|
| 15 |
<% if User.current.allowed_to?(:manage_categories, @project) %> |
|
| 16 |
<%= link_to l(:button_edit), edit_issue_category_path(category), :class => 'icon icon-edit' %> |
|
| 17 |
<%= link_to l(:button_delete), issue_category_path(category), :confirm => l(:text_are_you_sure), :method => :delete, :class => 'icon icon-del' %> |
|
| 18 |
<% end %> |
|
| 19 |
</td> |
|
| 20 |
</tr> |
|
| 21 |
<% end %> |
|
| 22 |
<% end %> |
|
| 23 |
</tbody> |
|
| 24 |
</table> |
|
| 25 |
<% else %> |
|
| 26 |
<p class="nodata"><%= l(:label_no_data) %></p> |
|
| 27 |
<% end %> |
|
| 28 |
|
|
| 29 |
<p><%= link_to l(:label_issue_category_new), new_project_issue_category_path(@project), :class => 'icon icon-add' if User.current.allowed_to?(:manage_categories, @project) %></p> |
|
| app/views/projects/settings/_issue_categories.rhtml | ||
|---|---|---|
| 1 |
<% if @project.issue_categories.any? %> |
|
| 2 |
<table class="list"> |
|
| 3 |
<thead><tr> |
|
| 4 |
<th><%= l(:label_issue_category) %></th> |
|
| 5 |
<th><%= l(:field_assigned_to) %></th> |
|
| 6 |
<th></th> |
|
| 7 |
</tr></thead> |
|
| 8 |
<tbody> |
|
| 9 |
<% for category in @project.issue_categories %> |
|
| 10 |
<% unless category.new_record? %> |
|
| 11 |
<tr class="<%= cycle 'odd', 'even' %>"> |
|
| 12 |
<td><%=h(category.name) %></td> |
|
| 13 |
<td><%=h(category.assigned_to.name) if category.assigned_to %></td> |
|
| 14 |
<td class="buttons"> |
|
| 15 |
<%= link_to_if_authorized l(:button_edit), { :controller => 'issue_categories', :action => 'edit', :id => category }, :class => 'icon icon-edit' %>
|
|
| 16 |
<%= link_to_if_authorized l(:button_delete), {:controller => 'issue_categories', :action => 'destroy', :id => category}, :method => :post, :class => 'icon icon-del' %>
|
|
| 17 |
</td> |
|
| 18 |
</tr> |
|
| 19 |
<% end %> |
|
| 20 |
<% end %> |
|
| 21 |
</tbody> |
|
| 22 |
</table> |
|
| 23 |
<% else %> |
|
| 24 |
<p class="nodata"><%= l(:label_no_data) %></p> |
|
| 25 |
<% end %> |
|
| 26 |
|
|
| 27 |
<p><%= link_to_if_authorized l(:label_issue_category_new), :controller => 'issue_categories', :action => 'new', :project_id => @project %></p> |
|
| app/views/projects/settings/_members.html.erb | ||
|---|---|---|
| 1 |
<%= error_messages_for 'member' %> |
|
| 2 |
<% roles = Role.find_all_givable |
|
| 3 |
members = @project.member_principals.find(:all, :include => [:roles, :principal]).sort %> |
|
| 4 |
|
|
| 5 |
<div class="splitcontentleft"> |
|
| 6 |
<% if members.any? %> |
|
| 7 |
<table class="list members"> |
|
| 8 |
<thead><tr> |
|
| 9 |
<th><%= l(:label_user) %> / <%= l(:label_group) %></th> |
|
| 10 |
<th><%= l(:label_role_plural) %></th> |
|
| 11 |
<th style="width:15%"></th> |
|
| 12 |
<%= call_hook(:view_projects_settings_members_table_header, :project => @project) %> |
|
| 13 |
</tr></thead> |
|
| 14 |
<tbody> |
|
| 15 |
<% members.each do |member| %> |
|
| 16 |
<% next if member.new_record? %> |
|
| 17 |
<tr id="member-<%= member.id %>" class="<%= cycle 'odd', 'even' %> member"> |
|
| 18 |
<td class="<%= member.principal.class.name.downcase %>"><%= link_to_user member.principal %></td> |
|
| 19 |
<td class="roles"> |
|
| 20 |
<span id="member-<%= member.id %>-roles"><%=h member.roles.sort.collect(&:to_s).join(', ') %></span>
|
|
| 21 |
<% if authorize_for('members', 'edit') %>
|
|
| 22 |
<% remote_form_for(:member, member, :url => {:controller => 'members', :action => 'edit', :id => member},
|
|
| 23 |
:method => :post, |
|
| 24 |
:html => { :id => "member-#{member.id}-roles-form", :class => 'hol' }) do |f| %>
|
|
| 25 |
<p><% roles.each do |role| %> |
|
| 26 |
<label><%= check_box_tag 'member[role_ids][]', role.id, member.roles.include?(role), |
|
| 27 |
:disabled => member.member_roles.detect {|mr| mr.role_id == role.id && !mr.inherited_from.nil?} %> <%=h role %></label><br />
|
|
| 28 |
<% end %></p> |
|
| 29 |
<%= hidden_field_tag 'member[role_ids][]', '' %> |
|
| 30 |
<p><%= submit_tag l(:button_change), :class => "small" %> |
|
| 31 |
<%= link_to_function l(:button_cancel), "$('member-#{member.id}-roles').show(); $('member-#{member.id}-roles-form').hide(); return false;" %></p>
|
|
| 32 |
<% end %> |
|
| 33 |
<% end %> |
|
| 34 |
</td> |
|
| 35 |
<td class="buttons"> |
|
| 36 |
<%= link_to_function l(:button_edit), "$('member-#{member.id}-roles').hide(); $('member-#{member.id}-roles-form').show(); return false;", :class => 'icon icon-edit' %>
|
|
| 37 |
<%= link_to_remote(l(:button_delete), { :url => {:controller => 'members', :action => 'destroy', :id => member},
|
|
| 38 |
:method => :post, |
|
| 39 |
:confirm => (!User.current.admin? && member.include?(User.current) ? l(:text_own_membership_delete_confirmation) : nil) |
|
| 40 |
}, :title => l(:button_delete), |
|
| 41 |
:class => 'icon icon-del') if member.deletable? %> |
|
| 42 |
</td> |
|
| 43 |
<%= call_hook(:view_projects_settings_members_table_row, { :project => @project, :member => member}) %>
|
|
| 44 |
</tr> |
|
| 45 |
<% end; reset_cycle %> |
|
| 46 |
</tbody> |
|
| 47 |
</table> |
|
| 48 |
<% else %> |
|
| 49 |
<p class="nodata"><%= l(:label_no_data) %></p> |
|
| 50 |
<% end %> |
|
| 51 |
</div> |
|
| 52 |
|
|
| 53 |
<% principals = Principal.active.find(:all, :limit => 100, :order => 'type, login, lastname ASC') - @project.principals %> |
|
| 54 |
|
|
| 55 |
<div class="splitcontentright"> |
|
| 56 |
<% if roles.any? && principals.any? %> |
|
| 57 |
<% remote_form_for(:member, @member, :url => {:controller => 'members', :action => 'new', :id => @project}, :method => :post,
|
|
| 58 |
:loading => '$(\'member-add-submit\').disable();', |
|
| 59 |
:complete => 'if($(\'member-add-submit\')) $(\'member-add-submit\').enable();') do |f| %> |
|
| 60 |
<fieldset><legend><%=l(:label_member_new)%></legend> |
|
| 61 |
|
|
| 62 |
<p><%= label_tag "principal_search", l(:label_principal_search) %><%= text_field_tag 'principal_search', nil %></p> |
|
| 63 |
<%= observe_field(:principal_search, |
|
| 64 |
:frequency => 0.5, |
|
| 65 |
:update => :principals, |
|
| 66 |
:url => { :controller => 'members', :action => 'autocomplete_for_member', :id => @project },
|
|
| 67 |
:with => 'q') |
|
| 68 |
%> |
|
| 69 |
|
|
| 70 |
<div id="principals"> |
|
| 71 |
<%= principals_check_box_tags 'member[user_ids][]', principals %> |
|
| 72 |
</div> |
|
| 73 |
|
|
| 74 |
<p><%= l(:label_role_plural) %>: |
|
| 75 |
<% roles.each do |role| %> |
|
| 76 |
<label><%= check_box_tag 'member[role_ids][]', role.id %> <%=h role %></label> |
|
| 77 |
<% end %></p> |
|
| 78 |
|
|
| 79 |
<p><%= submit_tag l(:button_add), :id => 'member-add-submit' %></p> |
|
| 80 |
</fieldset> |
|
| 81 |
<% end %> |
|
| 82 |
<% end %> |
|
| 83 |
</div> |
|
| app/views/projects/settings/_modules.html.erb | ||
|---|---|---|
| 1 |
<% form_for :project, @project, |
|
| 2 |
:url => { :action => 'modules', :id => @project },
|
|
| 3 |
:html => {:id => 'modules-form'} do |f| %>
|
|
| 4 |
|
|
| 5 |
<div class="box"> |
|
| 6 |
<fieldset> |
|
| 7 |
<legend><%= l(:text_select_project_modules) %></legend> |
|
| 8 |
|
|
| 9 |
<% Redmine::AccessControl.available_project_modules.each do |m| %> |
|
| 10 |
<p><label><%= check_box_tag 'enabled_module_names[]', m, @project.module_enabled?(m) -%> |
|
| 11 |
<%= l_or_humanize(m, :prefix => "project_module_") %></label></p> |
|
| 12 |
<% end %> |
|
| 13 |
</fieldset> |
|
| 14 |
</div> |
|
| 15 |
|
|
| 16 |
<p><%= check_all_links 'modules-form' %></p> |
|
| 17 |
<p><%= submit_tag l(:button_save) %></p> |
|
| 18 |
|
|
| 19 |
<% end %> |
|
| app/views/projects/settings/_modules.rhtml | ||
|---|---|---|
| 1 |
<% form_for :project, @project, |
|
| 2 |
:url => { :action => 'modules', :id => @project },
|
|
| 3 |
:html => {:id => 'modules-form'} do |f| %>
|
|
| 4 |
|
|
| 5 |
<div class="box"> |
|
| 6 |
<fieldset> |
|
| 7 |
<legend><%= l(:text_select_project_modules) %></legend> |
|
| 8 |
|
|
| 9 |
<% Redmine::AccessControl.available_project_modules.each do |m| %> |
|
| 10 |
<p><label><%= check_box_tag 'enabled_module_names[]', m, @project.module_enabled?(m) -%> |
|
| 11 |
<%= l_or_humanize(m, :prefix => "project_module_") %></label></p> |
|
| 12 |
<% end %> |
|
| 13 |
</fieldset> |
|
| 14 |
</div> |
|
| 15 |
|
|
| 16 |
<p><%= check_all_links 'modules-form' %></p> |
|
| 17 |
<p><%= submit_tag l(:button_save) %></p> |
|
| 18 |
|
|
| 19 |
<% end %> |
|
| app/views/projects/settings/_repository.html.erb | ||
|---|---|---|
| 1 |
|
|
| 2 |
<%= javascript_include_tag 'repository' %> |
|
| 3 |
|
|
| 4 |
<% remote_form_for :repository, @repository, |
|
| 5 |
:url => { :controller => 'repositories', :action => 'edit', :id => @project },
|
|
| 6 |
:builder => TabularFormBuilder, |
|
| 7 |
:lang => current_language do |f| %> |
|
| 8 |
|
|
| 9 |
<%= error_messages_for 'repository' %> |
|
| 10 |
|
|
| 11 |
<div class="box tabular"> |
|
| 12 |
|
|
| 13 |
<p> |
|
| 14 |
<% if @repository %> |
|
| 15 |
<%= l(:text_settings_repo_explanation) %></ br> |
|
| 16 |
<% if @repository.is_external %> |
|
| 17 |
<p><%= l(:text_settings_repo_is_external) %></ br> |
|
| 18 |
<% else %> |
|
| 19 |
<p><%= l(:text_settings_repo_is_internal) %></ br> |
|
| 20 |
<% end %> |
|
| 21 |
</p> |
|
| 22 |
|
|
| 23 |
|
|
| 24 |
|
|
| 25 |
|
|
| 26 |
|
|
| 27 |
<p> |
|
| 28 |
<%= label_tag('repository_is_external', l(:label_is_external_repository)) %>
|
|
| 29 |
<%= check_box :repository, :is_external, :onclick => "toggle_ext_url()" %> |
|
| 30 |
<br/><em><%= l(:setting_external_repository) %></em> |
|
| 31 |
</p> |
|
| 32 |
|
|
| 33 |
|
|
| 34 |
<p> |
|
| 35 |
<%= label_tag('repository_external_url', l(:label_repository_external_url)) %>
|
|
| 36 |
<%= text_field :repository, :external_url, :disabled => !(@repository and @repository.is_external) %> |
|
| 37 |
<br/><em><%= l(:setting_external_repository_url) %></em> |
|
| 38 |
</p> |
|
| 39 |
|
|
| 40 |
<p><%= l(:text_settings_repo_need_help) %></p> |
|
| 41 |
|
|
| 42 |
</div> |
|
| 43 |
|
|
| 44 |
<div class="contextual"> |
|
| 45 |
<% if @repository && !@repository.new_record? %> |
|
| 46 |
<%= link_to(l(:label_user_plural), |
|
| 47 |
{
|
|
| 48 |
:controller => 'repositories', |
|
| 49 |
:action => 'committers', |
|
| 50 |
:id => @project |
|
| 51 |
}, |
|
| 52 |
:class => 'icon icon-user') %> |
|
| 53 |
<% end %> |
|
| 54 |
</div> |
|
| 55 |
|
|
| 56 |
<%= submit_tag(l(:button_save), :onclick => remote_function(:url => { :controller => 'repositories', :action => 'edit', :id => @project }, :method => :get, :with => "Form.serialize(this.form)")) %>
|
|
| 57 |
|
|
| 58 |
<% else %> |
|
| 59 |
<%= l(:text_settings_repo_creation) %></ br> |
|
| 60 |
<% end %> |
|
| 61 |
|
|
| 62 |
<% end %> |
|
| app/views/projects/settings/_repository.rhtml | ||
|---|---|---|
| 1 |
|
|
| 2 |
<%= javascript_include_tag 'repository' %> |
|
| 3 |
|
|
| 4 |
<% remote_form_for :repository, @repository, |
|
| 5 |
:url => { :controller => 'repositories', :action => 'edit', :id => @project },
|
|
| 6 |
:builder => TabularFormBuilder, |
|
| 7 |
:lang => current_language do |f| %> |
|
| 8 |
|
|
| 9 |
<%= error_messages_for 'repository' %> |
|
| 10 |
|
|
| 11 |
<div class="box tabular"> |
|
| 12 |
|
|
| 13 |
<p> |
|
| 14 |
<% if @repository %> |
|
| 15 |
<%= l(:text_settings_repo_explanation) %></ br> |
|
| 16 |
<% if @repository.is_external %> |
|
| 17 |
<p><%= l(:text_settings_repo_is_external) %></ br> |
|
| 18 |
<% else %> |
|
| 19 |
<p><%= l(:text_settings_repo_is_internal) %></ br> |
|
| 20 |
<% end %> |
|
| 21 |
</p> |
|
| 22 |
|
|
| 23 |
|
|
| 24 |
|
|
| 25 |
|
|
| 26 |
|
|
| 27 |
<p> |
|
| 28 |
<%= label_tag('repository_is_external', l(:label_is_external_repository)) %>
|
|
| 29 |
<%= check_box :repository, :is_external, :onclick => "toggle_ext_url()" %> |
|
| 30 |
<br/><em><%= l(:setting_external_repository) %></em> |
|
| 31 |
</p> |
|
| 32 |
|
|
| 33 |
|
|
| 34 |
<p> |
|
| 35 |
<%= label_tag('repository_external_url', l(:label_repository_external_url)) %>
|
|
| 36 |
<%= text_field :repository, :external_url, :disabled => !(@repository and @repository.is_external) %> |
|
| 37 |
<br/><em><%= l(:setting_external_repository_url) %></em> |
|
| 38 |
</p> |
|
| 39 |
|
|
| 40 |
<p><%= l(:text_settings_repo_need_help) %></p> |
|
| 41 |
|
|
| 42 |
</div> |
|
| 43 |
|
|
| 44 |
<div class="contextual"> |
|
| 45 |
<% if @repository && !@repository.new_record? %> |
|
| 46 |
<%= link_to(l(:label_user_plural), |
|
| 47 |
{
|
|
| 48 |
:controller => 'repositories', |
|
| 49 |
:action => 'committers', |
|
| 50 |
:id => @project |
|
| 51 |
}, |
|
| 52 |
:class => 'icon icon-user') %> |
|
| 53 |
<% end %> |
|
| 54 |
</div> |
|
| 55 |
|
|
| 56 |
<%= submit_tag(l(:button_save), :onclick => remote_function(:url => { :controller => 'repositories', :action => 'edit', :id => @project }, :method => :get, :with => "Form.serialize(this.form)")) %>
|
|
| 57 |
|
|
| 58 |
<% else %> |
|
| 59 |
<%= l(:text_settings_repo_creation) %></ br> |
|
| 60 |
<% end %> |
|
| 61 |
|
|
| 62 |
<% end %> |
|
| app/views/projects/settings/_versions.html.erb | ||
|---|---|---|
| 1 |
<% if @project.shared_versions.any? %> |
|
| 2 |
<table class="list versions"> |
|
| 3 |
<thead><tr> |
|
| 4 |
<th><%= l(:label_version) %></th> |
|
| 5 |
<th><%= l(:field_effective_date) %></th> |
|
| 6 |
<th><%= l(:field_description) %></th> |
|
| 7 |
<th><%= l(:field_status) %></th> |
|
| 8 |
<th><%= l(:field_sharing) %></th> |
|
| 9 |
<th><%= l(:label_wiki_page) %></th> |
|
| 10 |
<th style="width:15%"></th> |
|
| 11 |
</tr></thead> |
|
| 12 |
<tbody> |
|
| 13 |
<% for version in @project.shared_versions.sort %> |
|
| 14 |
<tr class="version <%= cycle 'odd', 'even' %> <%=h version.status %> <%= 'shared' if version.project != @project %>"> |
|
| 15 |
<td class="name"><%= link_to_version version %></td> |
|
| 16 |
<td class="date"><%= format_date(version.effective_date) %></td> |
|
| 17 |
<td class="description"><%=h version.description %></td> |
|
| 18 |
<td class="status"><%= l("version_status_#{version.status}") %></td>
|
|
| 19 |
<td class="sharing"><%=h format_version_sharing(version.sharing) %></td> |
|
| 20 |
<td><%= link_to_if_authorized(h(version.wiki_page_title), {:controller => 'wiki', :action => 'show', :project_id => version.project, :id => Wiki.titleize(version.wiki_page_title)}) || h(version.wiki_page_title) unless version.wiki_page_title.blank? || version.project.wiki.nil? %></td>
|
|
| 21 |
<td class="buttons"> |
|
| 22 |
<% if version.project == @project && User.current.allowed_to?(:manage_versions, @project) %> |
|
| 23 |
<%= link_to l(:button_edit), edit_version_path(version), :class => 'icon icon-edit' %> |
|
| 24 |
<%= link_to l(:button_delete), version_path(version), :confirm => l(:text_are_you_sure), :method => :delete, :class => 'icon icon-del' %> |
|
| 25 |
<% end %> |
|
| 26 |
</td> |
|
| 27 |
</tr> |
|
| 28 |
<% end; reset_cycle %> |
|
| 29 |
</tbody> |
|
| 30 |
</table> |
|
| 31 |
<% else %> |
|
| 32 |
<p class="nodata"><%= l(:label_no_data) %></p> |
|
| 33 |
<% end %> |
|
| 34 |
|
|
| 35 |
<div class="contextual"> |
|
| 36 |
<% if @project.versions.any? %> |
|
| 37 |
<%= link_to l(:label_close_versions), close_completed_project_versions_path(@project), :method => :put %> |
|
| 38 |
<% end %> |
|
| 39 |
</div> |
|
| 40 |
|
|
| 41 |
<p><%= link_to l(:label_version_new), new_project_version_path(@project), :class => 'icon icon-add' if User.current.allowed_to?(:manage_versions, @project) %></p> |
|
| app/views/projects/settings/_versions.rhtml | ||
|---|---|---|
| 1 |
<% if @project.shared_versions.any? %> |
|
| 2 |
<table class="list versions"> |
|
| 3 |
<thead><tr> |
|
| 4 |
<th><%= l(:label_version) %></th> |
|
| 5 |
<th><%= l(:field_effective_date) %></th> |
|
| 6 |
<th><%= l(:field_description) %></th> |
|
| 7 |
<th><%= l(:field_status) %></th> |
|
| 8 |
<th><%= l(:field_sharing) %></th> |
|
| 9 |
<th><%= l(:label_wiki_page) %></th> |
|
| 10 |
<th style="width:15%"></th> |
|
| 11 |
</tr></thead> |
|
| 12 |
<tbody> |
|
| 13 |
<% for version in @project.shared_versions.sort %> |
|
| 14 |
<tr class="version <%= cycle 'odd', 'even' %> <%=h version.status %> <%= 'shared' if version.project != @project %>"> |
|
| 15 |
<td class="name"><%= link_to_version version %></td> |
|
| 16 |
<td class="date"><%= format_date(version.effective_date) %></td> |
|
| 17 |
<td class="description"><%=h version.description %></td> |
|
| 18 |
<td class="status"><%= l("version_status_#{version.status}") %></td>
|
|
| 19 |
<td class="sharing"><%=h format_version_sharing(version.sharing) %></td> |
|
| 20 |
<td><%= link_to_if_authorized(h(version.wiki_page_title), {:controller => 'wiki', :action => 'show', :project_id => version.project, :id => Wiki.titleize(version.wiki_page_title)}) || h(version.wiki_page_title) unless version.wiki_page_title.blank? || version.project.wiki.nil? %></td>
|
|
| 21 |
<td class="buttons"> |
|
| 22 |
<% if version.project == @project %> |
|
| 23 |
<%= link_to_if_authorized l(:button_edit), {:controller => 'versions', :action => 'edit', :id => version }, :class => 'icon icon-edit' %>
|
|
| 24 |
<%= link_to_if_authorized l(:button_delete), {:controller => 'versions', :action => 'destroy', :id => version}, :confirm => l(:text_are_you_sure), :method => :delete, :class => 'icon icon-del' %>
|
|
| 25 |
<% end %> |
|
| 26 |
</td> |
|
| 27 |
</tr> |
|
| 28 |
<% end; reset_cycle %> |
|
| 29 |
</tbody> |
|
| 30 |
</table> |
|
| 31 |
<% else %> |
|
| 32 |
<p class="nodata"><%= l(:label_no_data) %></p> |
|
| 33 |
<% end %> |
|
| 34 |
|
|
| 35 |
<div class="contextual"> |
|
| 36 |
<% if @project.versions.any? %> |
|
| 37 |
<%= link_to l(:label_close_versions), close_completed_project_versions_path(@project), :method => :put %> |
|
| 38 |
<% end %> |
|
| 39 |
</div> |
|
| 40 |
|
|
| 41 |
<p><%= link_to_if_authorized l(:label_version_new), :controller => 'versions', :action => 'new', :project_id => @project %></p> |
|
| app/views/projects/settings/_wiki.html.erb | ||
|---|---|---|
| 1 |
<% remote_form_for :wiki, @wiki, |
|
| 2 |
:url => { :controller => 'wikis', :action => 'edit', :id => @project },
|
|
| 3 |
:builder => TabularFormBuilder, |
|
| 4 |
:lang => current_language do |f| %> |
|
| 5 |
|
|
| 6 |
<%= error_messages_for 'wiki' %> |
|
| 7 |
|
|
| 8 |
<div class="box tabular"> |
|
| 9 |
<p><%= f.text_field :start_page, :size => 60, :required => true %><br /> |
|
| 10 |
<em><%= l(:text_unallowed_characters) %>: , . / ? ; : |</em></p> |
|
| 11 |
</div> |
|
| 12 |
|
|
| 13 |
<div class="contextual"> |
|
| 14 |
<%= link_to(l(:button_delete), {:controller => 'wikis', :action => 'destroy', :id => @project},
|
|
| 15 |
:class => 'icon icon-del') if @wiki && !@wiki.new_record? %> |
|
| 16 |
</div> |
|
| 17 |
|
|
| 18 |
<%= submit_tag((@wiki.nil? || @wiki.new_record?) ? l(:button_create) : l(:button_save)) %> |
|
| 19 |
<% end %> |
|
| app/views/projects/settings/_wiki.rhtml | ||
|---|---|---|
| 1 |
<% remote_form_for :wiki, @wiki, |
|
| 2 |
:url => { :controller => 'wikis', :action => 'edit', :id => @project },
|
|
| 3 |
:builder => TabularFormBuilder, |
|
| 4 |
:lang => current_language do |f| %> |
|
| 5 |
|
|
| 6 |
<%= error_messages_for 'wiki' %> |
|
| 7 |
|
|
| 8 |
<div class="box tabular"> |
|
| 9 |
<p><%= f.text_field :start_page, :size => 60, :required => true %><br /> |
|
| 10 |
<em><%= l(:text_unallowed_characters) %>: , . / ? ; : |</em></p> |
|
| 11 |
</div> |
|
| 12 |
|
|
| 13 |
<div class="contextual"> |
|
| 14 |
<%= link_to(l(:button_delete), {:controller => 'wikis', :action => 'destroy', :id => @project},
|
|
| 15 |
:class => 'icon icon-del') if @wiki && !@wiki.new_record? %> |
|
| 16 |
</div> |
|
| 17 |
|
|
| 18 |
<%= submit_tag((@wiki.nil? || @wiki.new_record?) ? l(:button_create) : l(:button_save)) %> |
|
| 19 |
<% end %> |
|
| app/views/projects/show.api.rsb | ||
|---|---|---|
| 5 | 5 |
api.description @project.description |
| 6 | 6 |
api.homepage @project.homepage |
| 7 | 7 |
api.parent(:id => @project.parent.id, :name => @project.parent.name) if @project.parent && @project.parent.visible? |
| 8 |
|
|
| 8 |
|
|
| 9 | 9 |
render_api_custom_values @project.visible_custom_field_values, api |
| 10 |
|
|
| 10 |
|
|
| 11 | 11 |
api.created_on @project.created_on |
| 12 | 12 |
api.updated_on @project.updated_on |
| 13 |
|
|
| 13 |
|
|
| 14 | 14 |
api.array :trackers do |
| 15 | 15 |
@project.trackers.each do |tracker| |
| 16 | 16 |
api.tracker(:id => tracker.id, :name => tracker.name) |
| 17 | 17 |
end |
| 18 | 18 |
end if include_in_api_response?('trackers')
|
| 19 |
|
|
| 20 |
api.array :issue_categories do |
|
| 21 |
@project.issue_categories.each do |category| |
|
| 22 |
api.issue_category(:id => category.id, :name => category.name) |
|
| 23 |
end |
|
| 24 |
end if include_in_api_response?('issue_categories')
|
|
| 19 | 25 |
end |
| app/views/projects/show.html.erb | ||
|---|---|---|
| 1 |
<div class="contextual"> |
|
| 2 |
<% if User.current.allowed_to?(:add_subprojects, @project) %> |
|
| 3 |
<%= link_to l(:label_subproject_new), {:controller => 'projects', :action => 'new', :parent_id => @project}, :class => 'icon icon-add' %>
|
|
| 4 |
<% end %> |
|
| 5 |
</div> |
|
| 6 |
|
|
| 7 |
<% if @project.has_welcome_page %> |
|
| 8 |
<% page = @project.wiki.find_page("Overview") %>
|
|
| 9 |
<% end %> |
|
| 10 |
|
|
| 11 |
<% if page %> |
|
| 12 |
|
|
| 13 |
<% if @project.module_enabled? :wiki %> |
|
| 14 |
<% if User.current.allowed_to?(:edit_wiki_pages, @project) %> |
|
| 15 |
<div class="contextual"> |
|
| 16 |
<%= link_to(l(:button_welcome_page_edit_this), {:controller => 'wiki', :action => 'edit', :project_id => @project, :id => Wiki.titleize("Overview")}, :class => 'icon icon-edit') %>
|
|
| 17 |
</div> |
|
| 18 |
<% end %> |
|
| 19 |
<% end %> |
|
| 20 |
|
|
| 21 |
<div class="contextual" style="clear: right"> |
|
| 22 |
<ul> |
|
| 23 |
<% unless @project.homepage.blank? %><li><%=l(:field_homepage)%>: <%= auto_link(h(@project.homepage)) %></li><% end %> |
|
| 24 |
<% if @subprojects.any? %> |
|
| 25 |
<li><%=l(:label_subproject_plural)%>: |
|
| 26 |
<%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ") %></li>
|
|
| 27 |
<% end %> |
|
| 28 |
</ul> |
|
| 29 |
</div> |
|
| 30 |
|
|
| 31 |
<%= render(:partial => "wiki/content", :locals => {:content => page.content_for_version()}) %>
|
|
| 32 |
|
|
| 33 |
<% else %> |
|
| 34 |
|
|
| 35 |
<h2><%=l(:label_overview)%></h2> |
|
| 36 |
|
|
| 37 |
<div class="splitcontentleft"> |
|
| 38 |
<div class="wiki"> |
|
| 39 |
<%= textilizable @project.description %> |
|
| 40 |
</div> |
|
| 41 |
<ul> |
|
| 42 |
<% unless @project.homepage.blank? %><li><%=l(:field_homepage)%>: <%= auto_link(h(@project.homepage)) %></li><% end %> |
|
| 43 |
<% if @subprojects.any? %> |
|
| 44 |
<li><%=l(:label_subproject_plural)%>: |
|
| 45 |
<%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ").html_safe %></li>
|
|
| 46 |
<% end %> |
|
| 47 |
<% @project.visible_custom_field_values.each do |custom_value| %> |
|
| 48 |
<% if !custom_value.value.blank? %> |
|
| 49 |
<li><%=h custom_value.custom_field.name %>: <%=h show_value(custom_value) %></li> |
|
| 50 |
<% end %> |
|
| 51 |
<% end %> |
|
| 52 |
</ul> |
|
| 53 |
|
|
| 54 |
<% if User.current.allowed_to?(:view_issues, @project) and @open_issues_by_tracker.values.any? %> |
|
| 55 |
|
|
| 56 |
<div class="issues box"> |
|
| 57 |
<h3><%=l(:label_issue_tracking)%></h3> |
|
| 58 |
<ul> |
|
| 59 |
<% for tracker in @trackers %> |
|
| 60 |
<li><%= link_to h(tracker.name), :controller => 'issues', :action => 'index', :project_id => @project, |
|
| 61 |
:set_filter => 1, |
|
| 62 |
"tracker_id" => tracker.id %>: |
|
| 63 |
<%= l(:label_x_open_issues_abbr_on_total, :count => @open_issues_by_tracker[tracker].to_i, |
|
| 64 |
:total => @total_issues_by_tracker[tracker].to_i) %> |
|
| 65 |
</li> |
|
| 66 |
<% end %> |
|
| 67 |
</ul> |
|
| 68 |
<p> |
|
| 69 |
<%= link_to l(:label_issue_view_all), :controller => 'issues', :action => 'index', :project_id => @project, :set_filter => 1 %> |
|
| 70 |
<% if User.current.allowed_to?(:view_calendar, @project, :global => true) %> |
|
| 71 |
| <%= link_to(l(:label_calendar), :controller => 'calendars', :action => 'show', :project_id => @project) %> |
|
| 72 |
<% end %> |
|
| 73 |
<% if User.current.allowed_to?(:view_gantt, @project, :global => true) %> |
|
| 74 |
| <%= link_to(l(:label_gantt), :controller => 'gantts', :action => 'show', :project_id => @project) %> |
|
| 75 |
<% end %> |
|
| 76 |
</p> |
|
| 77 |
</div> |
|
| 78 |
|
|
| 79 |
<% end %> |
|
| 80 |
|
|
| 81 |
<%= call_hook(:view_projects_show_left, :project => @project) %> |
|
| 82 |
</div> |
|
| 83 |
|
|
| 84 |
<div class="splitcontentright"> |
|
| 85 |
<%= render :partial => 'members_box' %> |
|
| 86 |
|
|
| 87 |
<% if @news.any? && authorize_for('news', 'index') %>
|
|
| 88 |
<div class="news box"> |
|
| 89 |
<h3><%=l(:label_news_latest)%></h3> |
|
| 90 |
<%= render :partial => 'news/news', :collection => @news %> |
|
| 91 |
<p><%= link_to l(:label_news_view_all), :controller => 'news', :action => 'index', :project_id => @project %></p> |
|
| 92 |
</div> |
|
| 93 |
<% end %> |
|
| 94 |
|
|
| 95 |
<%= render :partial => 'activities/recent' %> |
|
| 96 |
|
|
| 97 |
<%= call_hook(:view_projects_show_right, :project => @project) %> |
|
| 98 |
</div> |
|
| 99 |
|
|
| 100 |
<% content_for :sidebar do %> |
|
| 101 |
<%= call_hook(:view_projects_show_sidebar_top, :project => @project) %> |
|
| 102 |
<% if @total_hours.present? %> |
|
| 103 |
<h3><%= l(:label_spent_time) %></h3> |
|
| 104 |
<p><span class="icon icon-time"><%= l_hours(@total_hours) %></span></p> |
|
| 105 |
<p><%= link_to(l(:label_details), {:controller => 'timelog', :action => 'index', :project_id => @project}) %> |
|
|
| 106 |
<%= link_to(l(:label_report), {:controller => 'time_entry_reports', :action => 'report', :project_id => @project}) %></p>
|
|
| 107 |
<% end %> |
|
| 108 |
<%= call_hook(:view_projects_show_sidebar_bottom, :project => @project) %> |
|
| 109 |
<% end %> |
|
| 110 |
|
|
| 111 |
<% end %> |
|
| 112 |
|
|
| 113 |
<% content_for :header_tags do %> |
|
| 114 |
<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :key => User.current.rss_key}) %>
|
|
| 115 |
<% end %> |
|
| 116 |
|
|
| 117 |
<% html_title(l(:label_overview)) -%> |
|
| app/views/projects/show.rhtml | ||
|---|---|---|
| 1 |
<div class="contextual"> |
|
| 2 |
<% if User.current.allowed_to?(:add_subprojects, @project) %> |
|
| 3 |
<%= link_to l(:label_subproject_new), {:controller => 'projects', :action => 'new', :parent_id => @project}, :class => 'icon icon-add' %>
|
|
| 4 |
<% end %> |
|
| 5 |
</div> |
|
| 6 |
|
|
| 7 |
<% if @project.has_welcome_page %> |
|
| 8 |
<% page = @project.wiki.find_page("Overview") %>
|
|
| 9 |
<% end %> |
|
| 10 |
|
|
| 11 |
<% if page %> |
|
| 12 |
|
|
| 13 |
<% if @project.module_enabled? :wiki %> |
|
| 14 |
<% if User.current.allowed_to?(:edit_wiki_pages, @project) %> |
|
| 15 |
<div class="contextual"> |
|
| 16 |
<%= link_to(l(:button_welcome_page_edit_this), {:controller => 'wiki', :action => 'edit', :project_id => @project, :id => Wiki.titleize("Overview")}, :class => 'icon icon-edit') %>
|
|
| 17 |
</div> |
|
| 18 |
<% end %> |
|
| 19 |
<% end %> |
|
| 20 |
|
|
| 21 |
<div class="contextual" style="clear: right"> |
|
| 22 |
<ul> |
|
| 23 |
<% unless @project.homepage.blank? %><li><%=l(:field_homepage)%>: <%= auto_link(h(@project.homepage)) %></li><% end %> |
|
| 24 |
<% if @subprojects.any? %> |
|
| 25 |
<li><%=l(:label_subproject_plural)%>: |
|
| 26 |
<%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ") %></li>
|
|
| 27 |
<% end %> |
|
| 28 |
</ul> |
|
| 29 |
</div> |
|
| 30 |
|
|
| 31 |
<%= render(:partial => "wiki/content", :locals => {:content => page.content_for_version()}) %>
|
|
| 32 |
|
|
| 33 |
<% else %> |
|
| 34 |
|
|
| 35 |
<h2><%=l(:label_overview)%></h2> |
|
| 36 |
|
|
| 37 |
<div class="splitcontentleft"> |
|
| 38 |
<div class="wiki"> |
|
| 39 |
<%= textilizable @project.description %> |
|
| 40 |
</div> |
|
| 41 |
<ul> |
|
| 42 |
<% unless @project.homepage.blank? %><li><%=l(:field_homepage)%>: <%= auto_link(h(@project.homepage)) %></li><% end %> |
|
| 43 |
<% if @subprojects.any? %> |
|
| 44 |
<li><%=l(:label_subproject_plural)%>: |
|
| 45 |
<%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ") %></li>
|
|
| 46 |
<% end %> |
|
| 47 |
<% @project.visible_custom_field_values.each do |custom_value| %> |
|
| 48 |
<% if !custom_value.value.blank? %> |
|
| 49 |
<li><%= custom_value.custom_field.name%>: <%=h show_value(custom_value) %></li> |
|
| 50 |
<% end %> |
|
| 51 |
<% end %> |
|
| 52 |
</ul> |
|
| 53 |
|
|
| 54 |
<% if User.current.allowed_to?(:view_issues, @project) and @open_issues_by_tracker.values.any? %> |
|
| 55 |
|
|
| 56 |
<div class="issues box"> |
|
| 57 |
<h3><%=l(:label_issue_tracking)%></h3> |
|
| 58 |
<ul> |
|
| 59 |
<% for tracker in @trackers %> |
|
| 60 |
<li><%= link_to tracker.name, :controller => 'issues', :action => 'index', :project_id => @project, |
|
| 61 |
:set_filter => 1, |
|
| 62 |
"tracker_id" => tracker.id %>: |
|
| 63 |
<%= l(:label_x_open_issues_abbr_on_total, :count => @open_issues_by_tracker[tracker].to_i, |
|
| 64 |
:total => @total_issues_by_tracker[tracker].to_i) %> |
|
| 65 |
</li> |
|
| 66 |
<% end %> |
|
| 67 |
</ul> |
|
| 68 |
<p> |
|
| 69 |
<%= link_to l(:label_issue_view_all), :controller => 'issues', :action => 'index', :project_id => @project, :set_filter => 1 %> |
|
| 70 |
<% if User.current.allowed_to?(:view_calendar, @project, :global => true) %> |
|
| 71 |
| <%= link_to(l(:label_calendar), :controller => 'calendars', :action => 'show', :project_id => @project) %> |
|
| 72 |
<% end %> |
|
| 73 |
<% if User.current.allowed_to?(:view_gantt, @project, :global => true) %> |
|
| 74 |
| <%= link_to(l(:label_gantt), :controller => 'gantts', :action => 'show', :project_id => @project) %> |
|
| 75 |
<% end %> |
|
| 76 |
</p> |
|
| 77 |
</div> |
|
| 78 |
|
|
| 79 |
<% end %> |
|
| 80 |
|
|
| 81 |
<%= call_hook(:view_projects_show_left, :project => @project) %> |
|
| 82 |
</div> |
|
| 83 |
|
|
| 84 |
<div class="splitcontentright"> |
|
| 85 |
<%= render :partial => 'members_box' %> |
|
| 86 |
|
|
| 87 |
<% if @news.any? && authorize_for('news', 'index') %>
|
|
| 88 |
<div class="news box"> |
|
| 89 |
<h3><%=l(:label_news_latest)%></h3> |
|
| 90 |
<%= render :partial => 'news/news', :collection => @news %> |
|
| 91 |
<p><%= link_to l(:label_news_view_all), :controller => 'news', :action => 'index', :project_id => @project %></p> |
|
| 92 |
</div> |
|
| 93 |
<% end %> |
|
| 94 |
|
|
| 95 |
<%= render :partial => 'activities/recent' %> |
|
| 96 |
|
|
| 97 |
<%= call_hook(:view_projects_show_right, :project => @project) %> |
|
| 98 |
</div> |
|
| 99 |
|
|
| 100 |
<% content_for :sidebar do %> |
|
| 101 |
<%= call_hook(:view_projects_show_sidebar_top, :project => @project) %> |
|
| 102 |
<% if @total_hours.present? %> |
|
| 103 |
<h3><%= l(:label_spent_time) %></h3> |
|
| 104 |
<p><span class="icon icon-time"><%= l_hours(@total_hours) %></span></p> |
|
| 105 |
<p><%= link_to(l(:label_details), {:controller => 'timelog', :action => 'index', :project_id => @project}) %> |
|
|
| 106 |
<%= link_to(l(:label_report), {:controller => 'time_entry_reports', :action => 'report', :project_id => @project}) %></p>
|
|
| 107 |
<% end %> |
|
| 108 |
<%= call_hook(:view_projects_show_sidebar_bottom, :project => @project) %> |
|
| 109 |
<% end %> |
|
| 110 |
|
|
| 111 |
<% end %> |
|
| 112 |
|
|
| 113 |
<% content_for :header_tags do %> |
|
| 114 |
<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :key => User.current.rss_key}) %>
|
|
| 115 |
<% end %> |
|
| 116 |
|
|
| 117 |
<% html_title(l(:label_overview)) -%> |
|
Also available in: Unified diff