Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <div class="contextual">
  2. <%= bookmark_link @project %>
  3. <%= actions_dropdown do %>
  4. <% if User.current.allowed_to?(:add_subprojects, @project) %>
  5. <%= link_to l(:label_subproject_new), new_project_path(:parent_id => @project), :class => 'icon icon-add' %>
  6. <% end %>
  7. <% if User.current.allowed_to?(:close_project, @project) %>
  8. <% if @project.active? %>
  9. <%= link_to l(:button_close), close_project_path(@project), :data => {:confirm => l(:text_project_close_confirmation, @project.to_s)}, :method => :post, :class => 'icon icon-lock' %>
  10. <% else %>
  11. <%= link_to l(:button_reopen), reopen_project_path(@project), :data => {:confirm => l(:text_project_reopen_confirmation, @project.to_s)}, :method => :post, :class => 'icon icon-unlock' %>
  12. <% end %>
  13. <% end %>
  14. <% if @project.deletable? %>
  15. <%= link_to l(:button_delete), project_path(@project), :method => :delete, :class => 'icon icon-del' %>
  16. <% end %>
  17. <%= link_to_if_authorized l(:label_settings),
  18. {:controller => 'projects', :action => 'settings', :id => @project},
  19. :class => 'icon icon-settings' if User.current.allowed_to?(:edit_project, @project) %>
  20. <% end %>
  21. </div>
  22. <h2><%=l(:label_overview)%></h2>
  23. <% unless @project.active? %>
  24. <p class="warning"><span class="icon icon-lock"><%= l(:text_project_closed) %></span></p>
  25. <% end %>
  26. <div class="splitcontent">
  27. <div class="splitcontentleft">
  28. <% if @project.description.present? %>
  29. <div class="wiki">
  30. <%= textilizable @project.description %>
  31. </div>
  32. <% end %>
  33. <% if @project.homepage.present? || @project.visible_custom_field_values.any? { |o| o.value.present? } %>
  34. <ul>
  35. <% unless @project.homepage.blank? %>
  36. <li><span class="label"><%=l(:field_homepage)%>:</span> <%= link_to_if uri_with_safe_scheme?(@project.homepage), @project.homepage, @project.homepage %></li>
  37. <% end %>
  38. <% render_custom_field_values(@project) do |custom_field, formatted| %>
  39. <li class="<%= custom_field.css_classes %>"><span class="label"><%= custom_field.name %>:</span> <%= formatted %></li>
  40. <% end %>
  41. </ul>
  42. <% end %>
  43. <% if User.current.allowed_to?(:view_issues, @project) %>
  44. <div class="issues box">
  45. <h3 class="icon icon-issue">
  46. <%=l(:label_issue_tracking)%>&nbsp;
  47. <%= link_to l(:label_details),
  48. project_issues_report_details_path(@project, :detail => 'tracker'),
  49. :class => 'icon-only icon-zoom-in',
  50. :title => l(:label_details) %>
  51. </h3>
  52. <% if @trackers.present? %>
  53. <table class="list issue-report">
  54. <thead>
  55. <tr>
  56. <th></th>
  57. <th><%=l(:label_open_issues_plural)%></th>
  58. <th><%=l(:label_closed_issues_plural)%></th>
  59. <th><%=l(:label_total)%></th>
  60. </tr>
  61. </thead>
  62. <tbody>
  63. <% @trackers.each do |tracker| %>
  64. <tr>
  65. <td class="name">
  66. <%= link_to tracker.name, project_issues_path(@project, :set_filter => 1, :tracker_id => tracker.id), :title => tracker.description %>
  67. </td>
  68. <td>
  69. <%= link_to @open_issues_by_tracker[tracker].to_i, project_issues_path(@project, :set_filter => 1, :tracker_id => tracker.id) %>
  70. </td>
  71. <td>
  72. <%= link_to (@total_issues_by_tracker[tracker].to_i - @open_issues_by_tracker[tracker].to_i), project_issues_path(@project, :set_filter => 1, :tracker_id => tracker.id, :status_id => 'c') %>
  73. </td>
  74. <td class="total">
  75. <%= link_to @total_issues_by_tracker[tracker].to_i, project_issues_path(@project, :set_filter => 1, :tracker_id => tracker.id, :status_id => '*') %>
  76. </td>
  77. </tr>
  78. <% end %>
  79. </tbody>
  80. </table>
  81. <% end %>
  82. <p>
  83. <%= link_to l(:label_issue_view_all), project_issues_path(@project, :set_filter => 1) %>
  84. | <%= link_to l(:field_summary), project_issues_report_path(@project) %>
  85. <% if User.current.allowed_to?(:view_calendar, @project, :global => true) %>
  86. | <%= link_to l(:label_calendar), project_calendar_path(@project) %>
  87. <% end %>
  88. <% if User.current.allowed_to?(:view_gantt, @project, :global => true) %>
  89. | <%= link_to l(:label_gantt), project_gantt_path(@project) %>
  90. <% end %>
  91. </p>
  92. </div>
  93. <% end %>
  94. <% if User.current.allowed_to?(:view_time_entries, @project) %>
  95. <div class="spent_time box">
  96. <h3 class="icon icon-time"><%= l(:label_time_tracking) %></h3>
  97. <ul>
  98. <% if @total_estimated_hours.present? %>
  99. <li><%= l(:field_estimated_hours) %>: <%= l_hours(@total_estimated_hours) %>
  100. <% end %>
  101. <% if @total_hours.present? %>
  102. <li><%= l(:label_spent_time) %>: <%= l_hours(@total_hours) %>
  103. <% end %>
  104. </ul>
  105. <p>
  106. <% if User.current.allowed_to?(:log_time, @project) %>
  107. <%= link_to l(:button_log_time), new_project_time_entry_path(@project) %> |
  108. <% end %>
  109. <%= link_to(l(:label_details), project_time_entries_path(@project)) %> |
  110. <%= link_to(l(:label_report), report_project_time_entries_path(@project)) %>
  111. </p>
  112. </div>
  113. <% end %>
  114. <%= call_hook(:view_projects_show_left, :project => @project) %>
  115. </div>
  116. <div class="splitcontentright">
  117. <% if @news.any? && authorize_for('news', 'index') %>
  118. <div class="news box">
  119. <h3 class="icon icon-news"><%=l(:label_news_latest)%></h3>
  120. <%= render :partial => 'news/news', :collection => @news %>
  121. <p><%= link_to l(:label_news_view_all), project_news_index_path(@project) %></p>
  122. </div>
  123. <% end %>
  124. <%= render :partial => 'members_box' %>
  125. <% if @subprojects.any? %>
  126. <div class="projects box">
  127. <h3 class="icon icon-projects"><%=l(:label_subproject_plural)%></h3>
  128. <ul class="subprojects">
  129. <% @subprojects.each do |project| %>
  130. <li><%= link_to(project.name, project_path(project), :class => project.css_classes).html_safe %></li>
  131. <% end %>
  132. </ul>
  133. </div>
  134. <% end %>
  135. <%= call_hook(:view_projects_show_right, :project => @project) %>
  136. </div>
  137. </div>
  138. <% content_for :sidebar do %>
  139. <%= call_hook(:view_projects_show_sidebar_bottom, :project => @project) %>
  140. <% end %>
  141. <% content_for :header_tags do %>
  142. <%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :key => User.current.atom_key}) %>
  143. <% end %>
  144. <% html_title(l(:label_overview)) -%>