Revision 912:5e80956cc792 app/views/projects

View differences:

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