To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / app / views / projects @ 1531:ae8145b28b2b

1 1115:433d4f72a19b Chris
<%= labelled_form_for @project do |f| %>
2 0:513646585e45 Chris
<%= render :partial => 'form', :locals => { :f => f } %>
3
<%= submit_tag l(:button_save) %>
4
<% end %>
5
<%= error_messages_for 'project' %>
6
7 1115:433d4f72a19b Chris
<div class="box tabular">
8 0:513646585e45 Chris
<!--[form:project]-->
9 72:45aa8d16ec10 luisf
<p><%= f.text_field :name, :required => true, :size => 60 %>
10
  <br />
11 1239:e726dca6f7bd luis
  <em class="info"> <%= l(:text_project_name_info).html_safe %></em>
12 72:45aa8d16ec10 luisf
</p>
13 0:513646585e45 Chris
14 1464:261b3d9a4903 Chris
<p><%= f.text_area :description, :rows => 8, :class => 'wiki-edit' %></p>
15
<p><%= f.text_field :identifier, :required => true, :size => 60, :disabled => @project.identifier_frozen?, :maxlength => Project::IDENTIFIER_MAX_LENGTH %>
16 0:513646585e45 Chris
<% unless @project.identifier_frozen? %>
17 72:45aa8d16ec10 luisf
  <br />
18 1115:433d4f72a19b Chris
  <em class="info"><%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_project_identifier_info).html_safe %></em>
19 0:513646585e45 Chris
<% end %></p>
20 1484:51364c0cd58f Chris
21 72:45aa8d16ec10 luisf
<p><%= f.text_field :homepage, :size => 60 %>
22
<br />
23 1240:045e5984313c luis
  <em class="info"> <%= l(:text_project_homepage_info) %></em>
24 72:45aa8d16ec10 luisf
</p>
25 1034:ea5d9652c6f6 chris
<p>
26 1238:90a0ed1ca8cb luis
<label for="project_is_public_1"><%= l(:field_public_or_private)%> <span class="required">*</span></label>
27 1034:ea5d9652c6f6 chris
<%
28
   # if the project hasn't been created fully yet, then we don't
29
   # want to set either public or private (make the user decide)
30
   initialised = !@project.id.nil?
31
%>
32
  <%= f.radio_button :is_public, 1, :checked => (initialised && @project.is_public?) %>
33
  <%= l(:text_project_public_info) %>
34 72:45aa8d16ec10 luisf
<br />
35 1238:90a0ed1ca8cb luis
  <%= f.radio_button :is_public, 0, :checked => (initialised && !@project.is_public?) %>
36 1034:ea5d9652c6f6 chris
  <%= l(:text_project_private_info) %>
37
<br>
38 1240:045e5984313c luis
  <em class="info"><%= l(:text_project_visibility_info) %></em>
39 72:45aa8d16ec10 luisf
</p>
40 1464:261b3d9a4903 Chris
41
<% unless @project.allowed_parents.compact.empty? %>
42
    <p><%= label(:project, :parent_id, l(:field_parent)) %><%= parent_project_select_tag(@project) %></p>
43
<% end %>
44
45
<% if @project.safe_attribute? 'inherit_members' %>
46
<p><%= f.check_box :inherit_members %></p>
47
<% end %>
48
49 0:513646585e45 Chris
<%= wikitoolbar_for 'project_description' %>
50
51
<% @project.custom_field_values.each do |value| %>
52 909:cbb26bc654de Chris
  <p><%= custom_field_tag_with_label :project, value %></p>
53 0:513646585e45 Chris
<% end %>
54
<%= call_hook(:view_projects_form, :project => @project, :form => f) %>
55
</div>
56
57 117:af80e5618e9b Chris
<% if @project.new_record? %>
58 1115:433d4f72a19b Chris
<fieldset class="box tabular"><legend><%= l(:label_module_plural) %></legend>
59 117:af80e5618e9b Chris
<% Redmine::AccessControl.available_project_modules.each do |m| %>
60
    <label class="floating">
61
    <%= check_box_tag 'project[enabled_module_names][]', m, @project.module_enabled?(m), :id => "project_enabled_module_names_#{m}" %>
62
    <%= l_or_humanize(m, :prefix => "project_module_") %>
63
    </label>
64
<% end %>
65
<%= hidden_field_tag 'project[enabled_module_names][]', '' %>
66
</fieldset>
67
<% end %>
68
69 829:7a613c0eefe2 chris
<% if @project.new_record? %>
70
<% @trackers.each do |tracker| %>
71
    <%= hidden_field_tag 'project[tracker_ids][]', tracker.id %>
72
<% end %>
73
<%= hidden_field_tag 'project[tracker_ids][]', '' %>
74
<% elsif @project.module_enabled?('issue_tracking') %>
75 0:513646585e45 Chris
<% unless @trackers.empty? %>
76 1115:433d4f72a19b Chris
<fieldset class="box tabular" id="project_trackers"><legend><%=l(:label_tracker_plural)%></legend>
77 0:513646585e45 Chris
<% @trackers.each do |tracker| %>
78
    <label class="floating">
79 1517:dffacf8a6908 Chris
    <%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.include?(tracker), :id => nil %>
80 909:cbb26bc654de Chris
    <%=h tracker %>
81 0:513646585e45 Chris
    </label>
82
<% end %>
83
<%= hidden_field_tag 'project[tracker_ids][]', '' %>
84
</fieldset>
85
<% end %>
86
87
<% unless @issue_custom_fields.empty? %>
88 1115:433d4f72a19b Chris
<fieldset class="box tabular" id="project_issue_custom_fields"><legend><%=l(:label_custom_field_plural)%></legend>
89 0:513646585e45 Chris
<% @issue_custom_fields.each do |custom_field| %>
90
    <label class="floating">
91 1517:dffacf8a6908 Chris
  <%= check_box_tag 'project[issue_custom_field_ids][]', custom_field.id, (@project.all_issue_custom_fields.include? custom_field),
92
        :disabled => (custom_field.is_for_all? ? "disabled" : nil),
93
        :id => nil %>
94 909:cbb26bc654de Chris
  <%=h custom_field.name %>
95
  </label>
96 0:513646585e45 Chris
<% end %>
97
<%= hidden_field_tag 'project[issue_custom_field_ids][]', '' %>
98
</fieldset>
99
<% end %>
100 117:af80e5618e9b Chris
<% end %>
101 0:513646585e45 Chris
<!--[eoform:project]-->
102 1464:261b3d9a4903 Chris
103
<% unless @project.identifier_frozen? %>
104
  <% content_for :header_tags do %>
105
    <%= javascript_include_tag 'project_identifier' %>
106
  <% end %>
107
<% end %>
108
109
<% if !User.current.admin? && @project.inherit_members? && @project.parent && User.current.member_of?(@project.parent) %>
110
  <%= javascript_tag do %>
111
    $(document).ready(function() {
112
      $("#project_inherit_members").change(function(){
113
        if (!$(this).is(':checked')) {
114
          if (!confirm("<%= escape_javascript(l(:text_own_membership_delete_confirmation)) %>")) {
115
            $("#project_inherit_members").attr("checked", true);
116
          }
117
        }
118
      });
119
    });
120
  <% end %>
121
<% end %>
122
123
<%= javascript_tag do %>
124
$(document).ready(function() {
125
  $('#project_enabled_module_names_issue_tracking').on('change', function(){
126
    if ($(this).attr('checked')){
127
      $('#project_trackers, #project_issue_custom_fields').show();
128
    } else {
129
      $('#project_trackers, #project_issue_custom_fields').hide();
130
    }
131
  }).trigger('change');
132
});
133
<% end %>
134 1006:4ffe9098c16c chris
    <ul>
135 1007:3e52bc15dd67 chris
    <% for project in Project.latest(User.current) %>
136 1006:4ffe9098c16c chris
	<li class="latest">
137
	<span class="title">
138
	  <% if !project.root? %>
139
	    <% project.ancestors.each do |p| %>
140
	      <%= h(p) %>&nbsp;&#187;
141
	    <% end %>
142
	  <% end %>
143
	<%= link_to_project project %>
144
	</span>
145
	<% if !project.is_public? %>
146
	   <span class="private"><%= l(:field_is_private) %></span>
147
	<% end %>
148
	<span class="time"><%= format_time(project.created_on)%></span>
149
	<%= render_project_short_description project %>
150
      </li>
151
    <% end %>
152
    </ul>
153 1207:d6d53a77f058 chris
154
   <ul>
155
156
   <%
157 1501:467282ce64a4 Chris
      for project in varied_mature_projects(7)
158 1207:d6d53a77f058 chris
   %>
159
160
   <li class="busy">
161
     <span class="title">
162
       <% if !project.root? %>
163
         <% project.ancestors.each do |p| %>
164
           <%= h(p) %>&nbsp;&#187;
165
         <% end %>
166
       <% end %>
167
       <%= link_to_project project %>
168
     </span>
169
     <% if !project.is_public? %>
170
       <span class="private"><%= l(:field_is_private) %></span>
171
     <% end %>
172
     <span class='managers'>
173
     <%
174
	u = project.users_by_role
175
	if ! u.empty? %>
176
        <%=
177
	   mgmt_roles = u.keys.select{ |r| r.allowed_to?(:edit_project) }
178
	   managers = mgmt_roles.map{ |r| u[r] }.flatten.sort.uniq
179
	   managers.map{ |m| m.name }.join(', ')
180
	 %><%
181
	end
182
	%>
183
	</span>
184
185
     <%= render_project_short_description project %>
186
   </li>
187
188
    <% end %>
189
  </ul>
190
191 14:1d32c0a0efbf Chris
  <% if @users_by_role.any? %>
192 1039:f6c71883b995 chris
  <div id="memberbox"><div class="box">
193 909:cbb26bc654de Chris
    <h3><%=l(:label_member_plural)%></h3>
194
    <p><% @users_by_role.keys.sort.each do |role| %>
195 1115:433d4f72a19b Chris
    <%=h role %>: <%= @users_by_role[role].sort.collect{|u| link_to_user u}.join(", ").html_safe %><br />
196 909:cbb26bc654de Chris
    <% end %></p>
197 1039:f6c71883b995 chris
  </div></div>
198 909:cbb26bc654de Chris
  <% end %>
199 1086:5ebdeb79ea9c chris
<%= render_my_project_hierarchy(@user_projects) %>
200 0:513646585e45 Chris
<h2><%=l(:label_project_new)%></h2>
201
202 1115:433d4f72a19b Chris
<%= labelled_form_for @project, :url => { :action => "copy" } do |f| %>
203 0:513646585e45 Chris
<%= render :partial => 'form', :locals => { :f => f } %>
204
205 1115:433d4f72a19b Chris
<fieldset class="box tabular"><legend><%= l(:button_copy) %></legend>
206 0:513646585e45 Chris
  <label class="block"><%= check_box_tag 'only[]', 'members', true %> <%= l(:label_member_plural) %> (<%= @source_project.members.count %>)</label>
207
  <label class="block"><%= check_box_tag 'only[]', 'versions', true %> <%= l(:label_version_plural) %> (<%= @source_project.versions.count %>)</label>
208
  <label class="block"><%= check_box_tag 'only[]', 'issue_categories', true %> <%= l(:label_issue_category_plural) %> (<%= @source_project.issue_categories.count %>)</label>
209
  <label class="block"><%= check_box_tag 'only[]', 'issues', true %> <%= l(:label_issue_plural) %> (<%= @source_project.issues.count %>)</label>
210
  <label class="block"><%= check_box_tag 'only[]', 'queries', true %> <%= l(:label_query_plural) %> (<%= @source_project.queries.count %>)</label>
211
  <label class="block"><%= check_box_tag 'only[]', 'boards', true %> <%= l(:label_board_plural) %> (<%= @source_project.boards.count %>)</label>
212
  <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>
213
  <%= hidden_field_tag 'only[]', '' %>
214
  <br />
215 909:cbb26bc654de Chris
  <label class="block"><%= check_box_tag 'notifications', 1, params[:notifications] %> <%= l(:label_project_copy_notifications) %></label>
216 0:513646585e45 Chris
</fieldset>
217
218
<%= submit_tag l(:button_copy) %>
219
<% end %>
220 1464:261b3d9a4903 Chris
<%= title l(:label_confirmation) %>
221
222 0:513646585e45 Chris
<div class="warning">
223
<p><strong><%=h @project_to_destroy %></strong><br />
224
<%=l(:text_project_destroy_confirmation)%>
225
226
<% if @project_to_destroy.descendants.any? %>
227 1115:433d4f72a19b Chris
<br /><%= l(:text_subprojects_destroy_warning,
228
          content_tag('strong', h(@project_to_destroy.descendants.collect{|p| p.to_s}.join(', ')))).html_safe %>
229 0:513646585e45 Chris
<% end %>
230
</p>
231
<p>
232 1115:433d4f72a19b Chris
    <%= form_tag(project_path(@project_to_destroy), :method => :delete) do %>
233 0:513646585e45 Chris
    <label><%= check_box_tag 'confirm', 1 %> <%= l(:general_text_Yes) %></label>
234
    <%= submit_tag l(:button_delete) %>
235 1464:261b3d9a4903 Chris
    <%= link_to l(:button_cancel), :controller => 'admin', :action => 'projects' %>
236 0:513646585e45 Chris
    <% end %>
237
</p>
238
</div>
239 1041:af23bcbbd911 chris
<% content_for :header_tags do %>
240
    <%= stylesheet_link_tag 'redmine_tags', :plugin => 'redmine_tags' %>
241
<% end %>
242 1007:3e52bc15dd67 chris
243 1193:d67ed1030451 chris
<div class="contextual">
244 1302:f9a81a1a4425 Chris
    <%= link_to l(:label_project_all), { :controller => 'projects', :action => 'index' }%>
245 1322:596e34bffcc7 chris
    <%= ('| ' + link_to(l(:label_search_projects), { :controller => 'search', :action => 'index', :projects => 1 })).html_safe %>
246 1303:537026b96b8b Chris
    <%= ('| ' + link_to(l(:label_project_new), {:controller => 'projects', :action => 'new'}, :class => 'icon icon-add')).html_safe if User.current.allowed_to?(:add_project, nil, :global => true) %>
247 1193:d67ed1030451 chris
</div>
248
249 1194:6676c0284df2 chris
<h2><%= l(:label_explore_projects) %></h2>
250
251 1213:17305097e652 chris
<div class="threecolumnleft">
252 1010:76a677c96bce chris
  <div class="tags box">
253
  <h3><%=l(:label_project_tags_all)%></h3>
254 1530:83a2227efc71 Chris
    <% cache(:action => 'explore', :action_suffix => 'tags') do %>
255 1010:76a677c96bce chris
    <%= render :partial => 'projects/tagcloud' %>
256 1530:83a2227efc71 Chris
    <% end %>
257 1010:76a677c96bce chris
  </div>
258 1213:17305097e652 chris
</div>
259 1021:967fb7e62b1d chris
260 1213:17305097e652 chris
<div class="threecolumnright">
261
  <div class="projects box">
262 1322:596e34bffcc7 chris
  <h3><%=l(:label_project_latest)%></h3>
263
    <%= render :partial => 'projects/latest' %>
264
    <%= link_to l(:label_projects_more), { :controller => 'projects' }, :class => 'more' %>
265 1213:17305097e652 chris
  </div>
266
</div>
267
268
<div class="threecolumnleft">
269 1010:76a677c96bce chris
  <div class="institutions box">
270
  <h3><%=l(:label_institutions_busy)%></h3>
271 1530:83a2227efc71 Chris
  <% cache(:action => 'explore', :action_suffix => 'busy_institutions') do %>
272 1010:76a677c96bce chris
    <%= render :partial => 'activities/busy_institution' %>
273 1530:83a2227efc71 Chris
  <% end %>
274
  <%= link_to l(:label_overall_activity), { :controller => 'activities', :action => 'index' }, :class => 'more' %>
275 1010:76a677c96bce chris
  </div>
276 1213:17305097e652 chris
</div>
277
278 1509:fae089e1f1a3 Chris
<div class="threecolumnright">
279
  <div class="projects box">
280
  <h3><%=l(:label_projects_busy)%></h3>
281 1530:83a2227efc71 Chris
    <% cache(:action => 'explore', :action_suffix => 'busy_projects') do %>
282 1509:fae089e1f1a3 Chris
    <%= render :partial => 'activities/busy' %>
283 1530:83a2227efc71 Chris
    <% end %>
284 1509:fae089e1f1a3 Chris
    <%= link_to l(:label_overall_activity), { :controller => 'activities', :action => 'index' }, :class => 'more' %>
285
  </div>
286
</div>
287
288 1213:17305097e652 chris
<div class="threecolumnmid">
289 1501:467282ce64a4 Chris
  <div class="projects box">
290
  <h3><%=l(:label_projects_mature)%></h3>
291 1530:83a2227efc71 Chris
    <% cache(:action => 'explore', :action_suffix => 'mature_projects') do %>
292 1501:467282ce64a4 Chris
    <%= render :partial => 'projects/mature' %>
293 1530:83a2227efc71 Chris
    <% end %>
294 1501:467282ce64a4 Chris
    <%= link_to l(:label_projects_more), { :controller => 'projects' }, :class => 'more' %>
295
  </div>
296
</div>
297
298 1213:17305097e652 chris
<% html_title(l(:label_explore_projects)) -%>
299 119:8661b858af72 Chris
api.array :projects, api_meta(:total_count => @project_count, :offset => @offset, :limit => @limit) do
300
  @projects.each do |project|
301
    api.project do
302
      api.id          project.id
303
      api.name        project.name
304
      api.identifier  project.identifier
305
      api.description project.description
306 507:0c939c159af4 Chris
      api.parent(:id => project.parent.id, :name => project.parent.name) if project.parent && project.parent.visible?
307 1517:dffacf8a6908 Chris
      api.status      project.status
308 909:cbb26bc654de Chris
309 119:8661b858af72 Chris
      render_api_custom_values project.visible_custom_field_values, api
310 909:cbb26bc654de Chris
311 119:8661b858af72 Chris
      api.created_on  project.created_on
312
      api.updated_on  project.updated_on
313
    end
314
  end
315
end
316 0:513646585e45 Chris
<% content_for :header_tags do %>
317
    <%= auto_discovery_link_tag(:atom, {:action => 'index', :format => 'atom', :key => User.current.rss_key}) %>
318
<% end %>
319
320
<div class="contextual">
321 1517:dffacf8a6908 Chris
    <%= render_project_action_links %>
322 0:513646585e45 Chris
</div>
323
324 124:bc91f2025d05 chris
<h2>
325
<%= l("label_project_all") %>
326
</h2>
327
328
<%= render_project_table(@projects) %>
329 123:605adf7e1735 chris
330
<p class="pagination"><%= pagination_links_full @project_pages, @project_count %></p>
331 69:dc22c3eb3c81 luisf
332 0:513646585e45 Chris
333
<% other_formats_links do |f| %>
334 909:cbb26bc654de Chris
  <%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
335 0:513646585e45 Chris
<% end %>
336
337 1115:433d4f72a19b Chris
<% content_for :sidebar do %>
338
  <%= form_tag({}, :method => :get) do %>
339
    <h3><%= l(:label_project_plural) %></h3>
340
    <label for="closed"><%= check_box_tag 'closed', 1, params[:closed] %> <%= l(:label_show_closed_projects) %></label>
341
    <p><%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %></p>
342
  <% end %>
343
<% end %>
344
345 0:513646585e45 Chris
<% html_title(l(:label_project_plural)) -%>
346
<h2><%=l(:label_member_plural)%></h2>
347
348
<% if @members.empty? %><p><i><%= l(:label_no_data) %></i></p><% end %>
349
350
<% members = @members.group_by {|m| m.role } %>
351
<% members.keys.sort{|x,y| x.position <=> y.position}.each do |role| %>
352 909:cbb26bc654de Chris
<h3><%= h(role.name) %></h3>
353 0:513646585e45 Chris
<ul>
354
<% members[role].each do |m| %>
355
<li><%= link_to_user m.user %> (<%= format_date m.created_on %>)</li>
356
<% end %>
357
</ul>
358
<% end %>
359 1464:261b3d9a4903 Chris
<%= title l(:label_project_new) %>
360 22:40f7cfd4df19 chris
361 1115:433d4f72a19b Chris
<%= labelled_form_for @project do |f| %>
362 22:40f7cfd4df19 chris
<%= render :partial => 'form', :locals => { :f => f } %>
363 909:cbb26bc654de Chris
<%= submit_tag l(:button_create) %>
364 22:40f7cfd4df19 chris
<% end %>
365 0:513646585e45 Chris
<h2><%=l(:label_settings)%></h2>
366
367
<%= render_tabs project_settings_tabs %>
368
369
<% html_title(l(:label_settings)) -%>
370 1115:433d4f72a19b Chris
<%= form_tag(project_enumerations_path(@project), :method => :put, :class => "tabular") do %>
371 441:cbce1fd3b1b7 Chris
372
<table class="list">
373
  <thead><tr>
374
    <th><%= l(:field_name) %></th>
375
    <th><%= l(:enumeration_system_activity) %></th>
376
    <% TimeEntryActivity.new.available_custom_fields.each do |value| %>
377 909:cbb26bc654de Chris
    <th><%= h value.name %></th>
378 441:cbce1fd3b1b7 Chris
    <% end %>
379 1464:261b3d9a4903 Chris
    <th><%= l(:field_active) %></th>
380 441:cbce1fd3b1b7 Chris
  </tr></thead>
381
382
  <% @project.activities(true).each do |enumeration| %>
383 1115:433d4f72a19b Chris
  <%= fields_for "enumerations[#{enumeration.id}]", enumeration do |ff| %>
384 441:cbce1fd3b1b7 Chris
  <tr class="<%= cycle('odd', 'even') %>">
385 1464:261b3d9a4903 Chris
    <td class="name">
386 441:cbce1fd3b1b7 Chris
      <%= ff.hidden_field :parent_id, :value => enumeration.id unless enumeration.project %>
387
      <%= h(enumeration) %>
388
    </td>
389 1464:261b3d9a4903 Chris
    <td class="tick"><%= checked_image !enumeration.project %></td>
390 441:cbce1fd3b1b7 Chris
    <% enumeration.custom_field_values.each do |value| %>
391 1464:261b3d9a4903 Chris
    <td>
392 441:cbce1fd3b1b7 Chris
      <%= custom_field_tag "enumerations[#{enumeration.id}]", value %>
393
    </td>
394
    <% end %>
395 1464:261b3d9a4903 Chris
    <td>
396 441:cbce1fd3b1b7 Chris
      <%= ff.check_box :active %>
397
    </td>
398
  </tr>
399
  <% end %>
400
  <% end %>
401
</table>
402
403
<div class="contextual">
404 1115:433d4f72a19b Chris
<%= link_to(l(:button_reset), project_enumerations_path(@project),
405 909:cbb26bc654de Chris
            :method => :delete,
406 1115:433d4f72a19b Chris
            :data => {:confirm => l(:text_are_you_sure)},
407 441:cbce1fd3b1b7 Chris
            :class => 'icon icon-del') %>
408
</div>
409
410
<%= submit_tag l(:button_save) %>
411
<% end %>
412 0:513646585e45 Chris
<% if @project.boards.any? %>
413
<table class="list">
414 909:cbb26bc654de Chris
  <thead><tr>
415
    <th><%= l(:label_board) %></th>
416
    <th><%= l(:field_description) %></th>
417
    <th></th>
418
    <th></th>
419
  </tr></thead>
420
  <tbody>
421 1115:433d4f72a19b Chris
<% Board.board_tree(@project.boards) do |board, level|
422 909:cbb26bc654de Chris
  next if board.new_record? %>
423
  <tr class="<%= cycle 'odd', 'even' %>">
424 1464:261b3d9a4903 Chris
    <td class="name" style="padding-left: <%= level * 18 %>px;"><%= link_to board.name, project_board_path(@project, board) %></td>
425
    <td class="description"><%=h board.description %></td>
426
    <td class="reorder">
427 0:513646585e45 Chris
    <% if authorize_for("boards", "edit") %>
428 1115:433d4f72a19b Chris
      <%= reorder_links('board', {:controller => 'boards', :action => 'update', :project_id => @project, :id => board}, :put) %>
429 0:513646585e45 Chris
    <% end %>
430
    </td>
431
    <td class="buttons">
432 1115:433d4f72a19b Chris
    <% if User.current.allowed_to?(:manage_boards, @project) %>
433
      <%= link_to l(:button_edit), edit_project_board_path(@project, board), :class => 'icon icon-edit' %>
434
      <%= delete_link project_board_path(@project, board) %>
435 1464:261b3d9a4903 Chris
    <% end %>
436 0:513646585e45 Chris
    </td>
437 909:cbb26bc654de Chris
  </tr>
438 0:513646585e45 Chris
<% end %>
439 909:cbb26bc654de Chris
  </tbody>
440 0:513646585e45 Chris
</table>
441
<% else %>
442
<p class="nodata"><%= l(:label_no_data) %></p>
443
<% end %>
444
445 1115:433d4f72a19b Chris
<% if User.current.allowed_to?(:manage_boards, @project) %>
446
<p><%= link_to l(:label_board_new), new_project_board_path(@project), :class => 'icon icon-add' %></p>
447
<% end %>
448 0:513646585e45 Chris
<% if @project.issue_categories.any? %>
449
<table class="list">
450 909:cbb26bc654de Chris
  <thead><tr>
451
    <th><%= l(:label_issue_category) %></th>
452
    <th><%= l(:field_assigned_to) %></th>
453
    <th></th>
454
  </tr></thead>
455
  <tbody>
456 0:513646585e45 Chris
<% for category in @project.issue_categories %>
457 909:cbb26bc654de Chris
  <% unless category.new_record? %>
458
  <tr class="<%= cycle 'odd', 'even' %>">
459 1464:261b3d9a4903 Chris
    <td class="name"><%=h(category.name) %></td>
460 0:513646585e45 Chris
    <td><%=h(category.assigned_to.name) if category.assigned_to %></td>
461
    <td class="buttons">
462 1464:261b3d9a4903 Chris
      <% if User.current.allowed_to?(:manage_categories, @project) %>
463 909:cbb26bc654de Chris
        <%= link_to l(:button_edit), edit_issue_category_path(category), :class => 'icon icon-edit' %>
464 1115:433d4f72a19b Chris
        <%= delete_link issue_category_path(category) %>
465 1464:261b3d9a4903 Chris
      <% end %>
466 0:513646585e45 Chris
    </td>
467 909:cbb26bc654de Chris
  </tr>
468
  <% end %>
469 0:513646585e45 Chris
<% end %>
470
    </tbody>
471
</table>
472
<% else %>
473
<p class="nodata"><%= l(:label_no_data) %></p>
474
<% end %>
475
476 909:cbb26bc654de Chris
<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>
477 0:513646585e45 Chris
<%= error_messages_for 'member' %>
478
<% roles = Role.find_all_givable
479 1464:261b3d9a4903 Chris
   members = @project.member_principals.includes(:member_roles, :roles, :principal).all.sort %>
480 0:513646585e45 Chris
481
<div class="splitcontentleft">
482
<% if members.any? %>
483
<table class="list members">
484 1517:dffacf8a6908 Chris
  <thead>
485
    <tr>
486
      <th><%= l(:label_user) %> / <%= l(:label_group) %></th>
487
      <th><%= l(:label_role_plural) %></th>
488
      <th style="width:15%"></th>
489
      <%= call_hook(:view_projects_settings_members_table_header, :project => @project) %>
490
    </tr>
491
  </thead>
492 909:cbb26bc654de Chris
  <tbody>
493
  <% members.each do |member| %>
494
  <% next if member.new_record? %>
495
  <tr id="member-<%= member.id %>" class="<%= cycle 'odd', 'even' %> member">
496 1464:261b3d9a4903 Chris
  <td class="name <%= member.principal.class.name.downcase %>"><%= link_to_user member.principal %></td>
497 0:513646585e45 Chris
  <td class="roles">
498 1464:261b3d9a4903 Chris
    <span id="member-<%= member.id %>-roles"><%= member.roles.sort.collect(&:to_s).join(', ') %></span>
499
      <%= form_for(member,
500
                   {:as => :membership, :remote => true,
501
                    :url => membership_path(member),
502
                    :method => :put,
503
                    :html => { :id => "member-#{member.id}-roles-form", :class => 'hol' }}
504 1115:433d4f72a19b Chris
             ) do |f| %>
505 1464:261b3d9a4903 Chris
        <p>
506
          <% roles.each do |role| %>
507
          <label>
508
            <%= check_box_tag('membership[role_ids][]',
509
                              role.id, member.roles.include?(role),
510 1517:dffacf8a6908 Chris
                              :id => nil,
511 1464:261b3d9a4903 Chris
                              :disabled => member.member_roles.detect {
512
                                 |mr| mr.role_id == role.id && !mr.inherited_from.nil?
513
                                 } ) %> <%= role %>
514
          </label><br />
515
          <% end %>
516
        </p>
517 1115:433d4f72a19b Chris
        <%= hidden_field_tag 'membership[role_ids][]', '' %>
518 1464:261b3d9a4903 Chris
        <p>
519
          <%= submit_tag l(:button_save), :class => "small" %>
520
          <%= link_to_function(l(:button_cancel),
521
                               "$('#member-#{member.id}-roles').show(); $('#member-#{member.id}-roles-form').hide(); return false;") %>
522
        </p>
523 0:513646585e45 Chris
      <% end %>
524
  </td>
525
  <td class="buttons">
526 1115:433d4f72a19b Chris
      <%= link_to_function l(:button_edit),
527
                           "$('#member-#{member.id}-roles').hide(); $('#member-#{member.id}-roles-form').show(); return false;",
528
                           :class => 'icon icon-edit' %>
529
      <%= delete_link membership_path(member),
530
                      :remote => true,
531
                      :data => (!User.current.admin? && member.include?(User.current) ? {:confirm => l(:text_own_membership_delete_confirmation)} : {}) if member.deletable? %>
532 0:513646585e45 Chris
  </td>
533
  <%= call_hook(:view_projects_settings_members_table_row, { :project => @project, :member => member}) %>
534 909:cbb26bc654de Chris
  </tr>
535 0:513646585e45 Chris
<% end; reset_cycle %>
536 909:cbb26bc654de Chris
  </tbody>
537 0:513646585e45 Chris
</table>
538
<% else %>
539
<p class="nodata"><%= l(:label_no_data) %></p>
540
<% end %>
541
</div>
542
543
<div class="splitcontentright">
544 1464:261b3d9a4903 Chris
<% if roles.any? %>
545
  <%= form_for(@member,
546
               {:as => :membership, :url => project_memberships_path(@project),
547
                :remote => true, :method => :post}) do |f| %>
548
    <fieldset>
549
      <legend><%=l(:label_member_new)%></legend>
550
      <p>
551
        <%= label_tag("principal_search", l(:label_principal_search)) %>
552
        <%= text_field_tag('principal_search', nil) %>
553
      </p>
554
      <%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js') }')" %>
555
      <div id="principals_for_new_member">
556
        <%= render_principals_for_new_members(@project) %>
557
      </div>
558
      <p>
559
        <%= l(:label_role_plural) %>:
560
        <% roles.each do |role| %>
561 1517:dffacf8a6908 Chris
          <label><%= check_box_tag 'membership[role_ids][]', role.id, false, :id => nil %> <%= role %></label>
562 1464:261b3d9a4903 Chris
        <% end %>
563
      </p>
564
      <p><%= submit_tag l(:button_add), :id => 'member-add-submit' %></p>
565 909:cbb26bc654de Chris
    </fieldset>
566 0:513646585e45 Chris
  <% end %>
567
<% end %>
568
</div>
569 1115:433d4f72a19b Chris
<%= form_for @project,
570 0:513646585e45 Chris
            :url => { :action => 'modules', :id => @project },
571 1115:433d4f72a19b Chris
            :html => {:id => 'modules-form',
572
                      :method => :post} do |f| %>
573 909:cbb26bc654de Chris
574 1464:261b3d9a4903 Chris
<fieldset class="box">
575 0:513646585e45 Chris
<legend><%= l(:text_select_project_modules) %></legend>
576
577
<% Redmine::AccessControl.available_project_modules.each do |m| %>
578 1517:dffacf8a6908 Chris
<p><label><%= check_box_tag 'enabled_module_names[]', m, @project.module_enabled?(m), :id => nil -%>
579 0:513646585e45 Chris
 <%= l_or_humanize(m, :prefix => "project_module_") %></label></p>
580
<% end %>
581
</fieldset>
582 1464:261b3d9a4903 Chris
<p><%= check_all_links 'modules-form' %></p>
583 0:513646585e45 Chris
584
<p><%= submit_tag l(:button_save) %></p>
585
586
<% end %>
587 351:ebf53b46f3f3 chris
588 1245:d8e15cc24494 luis
<%= form_for @project,
589
            :url => { :action => 'overview', :id => @project.id },
590 351:ebf53b46f3f3 chris
            :html => {:id => 'overview-form'} do |f| %>
591
592
<div class="box tabular">
593
594 1268:2818bf60c84c chris
<p><%= l(:text_has_welcome_page_info, { :overview_link => link_to(l(:label_overview), { :controller => 'projects', :action => 'show' } ) } ).html_safe %></p>
595 354:8c804ce943db chris
596
<% if @project.module_enabled? :wiki %>
597
598
<p><%= link_to(l(:button_welcome_page_edit), {:controller => 'wiki', :action => 'edit', :project_id => @project, :id => Wiki.titleize("Overview")}, :class => 'icon icon-edit') %>
599
600
<% else %>
601
602 1268:2818bf60c84c chris
<p><%= l(:text_has_welcome_page_wiki_disabled, { :modules_link => link_to(l(:label_module_plural), { :controller => 'projects', :action => 'settings', :tab => 'modules' } ) } ).html_safe %></p>
603 354:8c804ce943db chris
604
<% end %>
605
606 351:ebf53b46f3f3 chris
<p><label for="has_welcome_page"><%= l(:label_has_welcome_page) %></label>
607
<%= check_box_tag 'has_welcome_page', 1, @project.has_welcome_page? -%>
608 354:8c804ce943db chris
<br/><em><%= l(:setting_has_welcome_page) %></em>
609
610 351:ebf53b46f3f3 chris
</p>
611
612
</div>
613
614
<%= submit_tag l(:button_save) %>
615
616
<% end %>
617 1354:fc0fecf09eb9 chris
618
<%= javascript_include_tag 'repository' %>
619
620 1355:3d01be97cb5a chris
<% if @repository %>
621
622 1354:fc0fecf09eb9 chris
<%= form_for @repository,
623
       :as => :repository,
624
       :remote => true,
625 1355:3d01be97cb5a chris
       :url => { :controller => 'repositories', :action => 'update', :id => @repository },
626
       :method => 'put' do |f| %>
627 1354:fc0fecf09eb9 chris
628
<%= error_messages_for 'repository' %>
629
630
<div class="box tabular">
631
632
<p>
633
   <%= l(:text_settings_repo_explanation).html_safe %></ br>
634
   <% if @repository.is_external %>
635
     <p><%= l(:text_settings_repo_is_external).html_safe %></ br>
636
   <% else %>
637
     <p><%= l(:text_settings_repo_is_internal).html_safe %></ br>
638
   <% end %>
639
</p>
640
641
642
<p>
643
	<%= label_tag('repository_is_external', l(:label_is_external_repository)) %>
644
	<%= check_box :repository, :is_external, :onclick => "toggle_ext_url()" %>
645
	<br/><em><%= l(:setting_external_repository).html_safe %></em>
646
</p>
647
648
<p>
649
	<%= label_tag('repository_external_url', l(:label_repository_external_url)) %>
650
	<%= text_field :repository, :external_url, :disabled => !(@repository and @repository.is_external) %>
651
	<br/><em><%= l(:setting_external_repository_url).html_safe %></em>
652
</p>
653
654
<p><%= l(:text_settings_repo_need_help).html_safe %></p>
655
656
</div>
657
658
<div class="contextual">
659
<% if @repository && !@repository.new_record? %>
660
<%= link_to(l(:label_user_plural),
661
                {
662
                :controller => 'repositories',
663
                :action     => 'committers',
664 1355:3d01be97cb5a chris
                :id         => @repository
665 1354:fc0fecf09eb9 chris
                },
666 1115:433d4f72a19b Chris
             :class => 'icon icon-user') %>
667 1354:fc0fecf09eb9 chris
<% end %>
668
</div>
669
670
<%= submit_tag(l(:button_save)) %>
671
672 1355:3d01be97cb5a chris
<% end %>
673
674 1115:433d4f72a19b Chris
<% else %>
675 1354:fc0fecf09eb9 chris
   <%= l(:text_settings_repo_creation).html_safe %></ br>
676 1115:433d4f72a19b Chris
<% end %>
677
678 0:513646585e45 Chris
<% if @project.shared_versions.any? %>
679
<table class="list versions">
680 909:cbb26bc654de Chris
  <thead><tr>
681 0:513646585e45 Chris
    <th><%= l(:label_version) %></th>
682
    <th><%= l(:field_effective_date) %></th>
683
    <th><%= l(:field_description) %></th>
684
    <th><%= l(:field_status) %></th>
685
    <th><%= l(:field_sharing) %></th>
686 37:94944d00e43c chris
    <th><%= l(:label_wiki_page) %></th>
687 0:513646585e45 Chris
    <th style="width:15%"></th>
688
    </tr></thead>
689 909:cbb26bc654de Chris
  <tbody>
690 0:513646585e45 Chris
<% for version in @project.shared_versions.sort %>
691
    <tr class="version <%= cycle 'odd', 'even' %> <%=h version.status %> <%= 'shared' if version.project != @project %>">
692
    <td class="name"><%= link_to_version version %></td>
693
    <td class="date"><%= format_date(version.effective_date) %></td>
694
    <td class="description"><%=h version.description %></td>
695
    <td class="status"><%= l("version_status_#{version.status}") %></td>
696
    <td class="sharing"><%=h format_version_sharing(version.sharing) %></td>
697 37:94944d00e43c chris
    <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>
698 0:513646585e45 Chris
    <td class="buttons">
699 909:cbb26bc654de Chris
      <% if version.project == @project && User.current.allowed_to?(:manage_versions, @project) %>
700
        <%= link_to l(:button_edit), edit_version_path(version), :class => 'icon icon-edit' %>
701 1115:433d4f72a19b Chris
        <%= delete_link version_path(version) %>
702 909:cbb26bc654de Chris
      <% end %>
703
     </td>
704 0:513646585e45 Chris
    </tr>
705
<% end; reset_cycle %>
706
    </tbody>
707
</table>
708
<% else %>
709
<p class="nodata"><%= l(:label_no_data) %></p>
710
<% end %>
711
712
<div class="contextual">
713
<% if @project.versions.any? %>
714 909:cbb26bc654de Chris
  <%= link_to l(:label_close_versions), close_completed_project_versions_path(@project), :method => :put %>
715 0:513646585e45 Chris
<% end %>
716
</div>
717
718 1115:433d4f72a19b Chris
<p><%= link_to l(:label_version_new), new_project_version_path(@project, :back_url => ''), :class => 'icon icon-add' if User.current.allowed_to?(:manage_versions, @project) %></p>
719
<%= labelled_form_for @wiki,
720
                   :as => :wiki,
721 0:513646585e45 Chris
                   :url => { :controller => 'wikis', :action => 'edit', :id => @project },
722 1115:433d4f72a19b Chris
                   :remote => true, :method => 'post' do |f| %>
723 0:513646585e45 Chris
724
<%= error_messages_for 'wiki' %>
725
726
<div class="box tabular">
727 1115:433d4f72a19b Chris
<p><%= f.text_field :start_page, :size => 60, :required => true %>
728
<em class="info"><%= l(:text_unallowed_characters) %>: , . / ? ; : |</em></p>
729 0:513646585e45 Chris
</div>
730
731
<div class="contextual">
732
<%= link_to(l(:button_delete), {:controller => 'wikis', :action => 'destroy', :id => @project},
733
            :class => 'icon icon-del') if @wiki && !@wiki.new_record? %>
734
</div>
735
736
<%= submit_tag((@wiki.nil? || @wiki.new_record?) ? l(:button_create) : l(:button_save)) %>
737
<% end %>
738 119:8661b858af72 Chris
api.project do
739
  api.id          @project.id
740
  api.name        @project.name
741
  api.identifier  @project.identifier
742
  api.description @project.description
743
  api.homepage    @project.homepage
744 507:0c939c159af4 Chris
  api.parent(:id => @project.parent.id, :name => @project.parent.name) if @project.parent && @project.parent.visible?
745 1517:dffacf8a6908 Chris
  api.status      @project.status
746 909:cbb26bc654de Chris
747 119:8661b858af72 Chris
  render_api_custom_values @project.visible_custom_field_values, api
748 909:cbb26bc654de Chris
749 119:8661b858af72 Chris
  api.created_on @project.created_on
750
  api.updated_on @project.updated_on
751 909:cbb26bc654de Chris
752 119:8661b858af72 Chris
  api.array :trackers do
753
    @project.trackers.each do |tracker|
754
      api.tracker(:id => tracker.id, :name => tracker.name)
755
    end
756
  end if include_in_api_response?('trackers')
757 909:cbb26bc654de Chris
758
  api.array :issue_categories do
759
    @project.issue_categories.each do |category|
760
      api.issue_category(:id => category.id, :name => category.name)
761
    end
762
  end if include_in_api_response?('issue_categories')
763 119:8661b858af72 Chris
end
764 0:513646585e45 Chris
<div class="contextual">
765 909:cbb26bc654de Chris
  <% if User.current.allowed_to?(:add_subprojects, @project) %>
766 1464:261b3d9a4903 Chris
    <%= link_to l(:label_subproject_new), new_project_path(:parent_id => @project), :class => 'icon icon-add' %>
767 909:cbb26bc654de Chris
  <% end %>
768 1115:433d4f72a19b Chris
  <% if User.current.allowed_to?(:close_project, @project) %>
769
    <% if @project.active? %>
770
      <%= link_to l(:button_close), close_project_path(@project), :data => {:confirm => l(:text_are_you_sure)}, :method => :post, :class => 'icon icon-lock' %>
771
    <% else %>
772
      <%= link_to l(:button_reopen), reopen_project_path(@project), :data => {:confirm => l(:text_are_you_sure)}, :method => :post, :class => 'icon icon-unlock' %>
773
    <% end %>
774
  <% end %>
775 0:513646585e45 Chris
</div>
776
777 351:ebf53b46f3f3 chris
<% if @project.has_welcome_page %>
778 350:a1e6dc0e204b chris
<% page = @project.wiki.find_page("Overview") %>
779 351:ebf53b46f3f3 chris
<% end %>
780 350:a1e6dc0e204b chris
781
<% if page %>
782
783 490:cd64fb9ab701 chris
<% if @project.module_enabled? :wiki %>
784
<% if User.current.allowed_to?(:edit_wiki_pages, @project) %>
785
<div class="contextual">
786
<%= link_to(l(:button_welcome_page_edit_this), {:controller => 'wiki', :action => 'edit', :project_id => @project, :id => Wiki.titleize("Overview")}, :class => 'icon icon-edit') %>
787
</div>
788
<% end %>
789
<% end %>
790
791 350:a1e6dc0e204b chris
<div class="contextual" style="clear: right">
792
<ul>
793 1143:908e97507ef8 chris
<% unless @project.homepage.blank? %><li><%=l(:field_homepage)%>: <%= link_to h(@project.homepage), @project.homepage %></li><% end %>
794 350:a1e6dc0e204b chris
<% if @subprojects.any? %>
795
	<li><%=l(:label_subproject_plural)%>:
796 1143:908e97507ef8 chris
	    <%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ").html_safe %></li>
797 350:a1e6dc0e204b chris
<% end %>
798
</ul>
799
</div>
800
801
<%= render(:partial => "wiki/content", :locals => {:content => page.content_for_version()}) %>
802
803
<% else %>
804
805 909:cbb26bc654de Chris
<h2><%=l(:label_overview)%></h2>
806
807 1115:433d4f72a19b Chris
<% unless @project.active? %>
808
  <p class="warning"><span class="icon icon-lock"><%= l(:text_project_closed) %></span></p>
809
<% end %>
810
811 0:513646585e45 Chris
<div class="splitcontentleft">
812 1115:433d4f72a19b Chris
  <% if @project.description.present? %>
813 909:cbb26bc654de Chris
  <div class="wiki">
814
    <%= textilizable @project.description %>
815
  </div>
816 1115:433d4f72a19b Chris
  <% end %>
817 909:cbb26bc654de Chris
  <ul>
818 1115:433d4f72a19b Chris
  <% unless @project.homepage.blank? %>
819
    <li><%=l(:field_homepage)%>: <%= link_to h(@project.homepage), @project.homepage %></li>
820
  <% end %>
821 0:513646585e45 Chris
  <% if @subprojects.any? %>
822 1115:433d4f72a19b Chris
    <li><%=l(:label_subproject_plural)%>:
823 1464:261b3d9a4903 Chris
      <%= @subprojects.collect{|p| link_to p, project_path(p)}.join(", ").html_safe %></li>
824 0:513646585e45 Chris
  <% end %>
825 909:cbb26bc654de Chris
  <% @project.visible_custom_field_values.each do |custom_value| %>
826
  <% if !custom_value.value.blank? %>
827
     <li><%=h custom_value.custom_field.name %>: <%=h show_value(custom_value) %></li>
828
  <% end %>
829
  <% end %>
830
  </ul>
831 0:513646585e45 Chris
832 345:361602c5e6bb chris
  <% if User.current.allowed_to?(:view_issues, @project) and @open_issues_by_tracker.values.any? %>
833
834 909:cbb26bc654de Chris
  <div class="issues box">
835 0:513646585e45 Chris
    <h3><%=l(:label_issue_tracking)%></h3>
836
    <ul>
837 909:cbb26bc654de Chris
    <% for tracker in @trackers %>
838 1464:261b3d9a4903 Chris
      <li><%= link_to h(tracker.name), project_issues_path(@project, :set_filter => 1, :tracker_id => tracker.id) %>:
839 909:cbb26bc654de Chris
          <%= l(:label_x_open_issues_abbr_on_total, :count => @open_issues_by_tracker[tracker].to_i,
840
                                                    :total => @total_issues_by_tracker[tracker].to_i) %>
841
      </li>
842 0:513646585e45 Chris
    <% end %>
843
    </ul>
844
    <p>
845 1464:261b3d9a4903 Chris
      <%= link_to l(:label_issue_view_all), project_issues_path(@project, :set_filter => 1) %>
846 909:cbb26bc654de Chris
      <% if User.current.allowed_to?(:view_calendar, @project, :global => true) %>
847 1464:261b3d9a4903 Chris
        | <%= link_to l(:label_calendar), project_calendar_path(@project) %>
848 909:cbb26bc654de Chris
      <% end %>
849
      <% if User.current.allowed_to?(:view_gantt, @project, :global => true) %>
850 1464:261b3d9a4903 Chris
        | <%= link_to l(:label_gantt), project_gantt_path(@project) %>
851 909:cbb26bc654de Chris
      <% end %>
852
    </p>
853 0:513646585e45 Chris
  </div>
854 345:361602c5e6bb chris
855 0:513646585e45 Chris
  <% end %>
856 344:1a514b9347d4 chris
857 0:513646585e45 Chris
  <%= call_hook(:view_projects_show_left, :project => @project) %>
858
</div>
859
860
<div class="splitcontentright">
861 14:1d32c0a0efbf Chris
  <%= render :partial => 'members_box' %>
862 909:cbb26bc654de Chris
863 0:513646585e45 Chris
  <% if @news.any? && authorize_for('news', 'index') %>
864
  <div class="news box">
865 909:cbb26bc654de Chris
    <h3><%=l(:label_news_latest)%></h3>
866 0:513646585e45 Chris
    <%= render :partial => 'news/news', :collection => @news %>
867 1464:261b3d9a4903 Chris
    <p><%= link_to l(:label_news_view_all), project_news_index_path(@project) %></p>
868 909:cbb26bc654de Chris
  </div>
869 0:513646585e45 Chris
  <% end %>
870 344:1a514b9347d4 chris
871
  <%= render :partial => 'activities/recent' %>
872
873 0:513646585e45 Chris
  <%= call_hook(:view_projects_show_right, :project => @project) %>
874
</div>
875
876
<% content_for :sidebar do %>
877 810:aaa26ccafb00 chris
    <%= call_hook(:view_projects_show_sidebar_top, :project => @project) %>
878 441:cbce1fd3b1b7 Chris
    <% if @total_hours.present? %>
879 0:513646585e45 Chris
    <h3><%= l(:label_spent_time) %></h3>
880
    <p><span class="icon icon-time"><%= l_hours(@total_hours) %></span></p>
881 1115:433d4f72a19b Chris
    <p>
882
    <% if User.current.allowed_to?(:log_time, @project) %>
883
      <%= link_to l(:button_log_time), new_project_time_entry_path(@project) %> |
884
    <% end %>
885
    <%= link_to(l(:label_details), project_time_entries_path(@project)) %> |
886
    <%= link_to(l(:label_report), report_project_time_entries_path(@project)) %></p>
887 0:513646585e45 Chris
    <% end %>
888
    <%= call_hook(:view_projects_show_sidebar_bottom, :project => @project) %>
889
<% end %>
890
891 350:a1e6dc0e204b chris
<% end %>
892
893 0:513646585e45 Chris
<% content_for :header_tags do %>
894 22:40f7cfd4df19 chris
<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :key => User.current.rss_key}) %>
895 0:513646585e45 Chris
<% end %>
896
897 1511:e1cfd013ef49 chris
<% html_title('') -%>