Redmine 4.1.1
This commit is contained in:
parent
33e7b881a5
commit
3d976f1b3b
1593 changed files with 36180 additions and 19489 deletions
3
app/views/projects/_board.html.erb
Normal file
3
app/views/projects/_board.html.erb
Normal file
|
@ -0,0 +1,3 @@
|
|||
<div id="projects-index">
|
||||
<%= render_project_hierarchy(@entries) %>
|
||||
</div>
|
|
@ -10,7 +10,10 @@
|
|||
<em class="info"><%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_project_identifier_info).html_safe %></em>
|
||||
<% end %></p>
|
||||
<p><%= f.text_field :homepage, :size => 60 %></p>
|
||||
<p><%= f.check_box :is_public %></p>
|
||||
<p>
|
||||
<%= f.check_box :is_public %>
|
||||
<em class="info"><%= Setting.login_required? ? l(:text_project_is_public_non_member) : l(:text_project_is_public_anonymous) %></em>
|
||||
</p>
|
||||
|
||||
<% unless @project.allowed_parents.compact.empty? %>
|
||||
<p><%= label(:project, :parent_id, l(:field_parent)) %><%= parent_project_select_tag(@project) %></p>
|
||||
|
@ -20,24 +23,16 @@
|
|||
<p><%= f.check_box :inherit_members %></p>
|
||||
<% end %>
|
||||
|
||||
<% if @project.safe_attribute?('default_version_id') && (default_version_options = project_default_version_options(@project)).present? %>
|
||||
<p><%= f.select :default_version_id, project_default_version_options(@project), :include_blank => true %></p>
|
||||
<% end %>
|
||||
|
||||
<% if @project.safe_attribute?('default_assigned_to_id') && (default_assigned_to_options = project_default_assigned_to_options(@project)).present? %>
|
||||
<p><%= f.select :default_assigned_to_id, default_assigned_to_options, include_blank: true %></p>
|
||||
<% end %>
|
||||
|
||||
<%= wikitoolbar_for 'project_description' %>
|
||||
|
||||
<% @project.custom_field_values.each do |value| %>
|
||||
<% @project.visible_custom_field_values.each do |value| %>
|
||||
<p><%= custom_field_tag_with_label :project, value %></p>
|
||||
<% end %>
|
||||
<%= call_hook(:view_projects_form, :project => @project, :form => f) %>
|
||||
</div>
|
||||
|
||||
<% if @project.new_record? && @project.safe_attribute?('enabled_module_names') %>
|
||||
<fieldset class="box tabular"><legend><%= l(:label_module_plural) %></legend>
|
||||
<% if @project.safe_attribute?('enabled_module_names') %>
|
||||
<fieldset class="box tabular" id="project_modules"><legend><%= toggle_checkboxes_link('#project_modules input[type="checkbox"]') %><%= l(:label_module_plural) %></legend>
|
||||
<% Redmine::AccessControl.available_project_modules.each do |m| %>
|
||||
<label class="floating">
|
||||
<%= check_box_tag 'project[enabled_module_names][]', m, @project.module_enabled?(m), :id => "project_enabled_module_names_#{m}" %>
|
||||
|
@ -47,34 +42,6 @@
|
|||
<%= hidden_field_tag 'project[enabled_module_names][]', '' %>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
|
||||
<% if @project.new_record? || @project.module_enabled?('issue_tracking') %>
|
||||
<% unless @trackers.empty? %>
|
||||
<fieldset class="box tabular" id="project_trackers"><legend><%=l(:label_tracker_plural)%></legend>
|
||||
<% @trackers.each do |tracker| %>
|
||||
<label class="floating">
|
||||
<%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.to_a.include?(tracker), :id => nil %>
|
||||
<%= tracker %>
|
||||
</label>
|
||||
<% end %>
|
||||
<%= hidden_field_tag 'project[tracker_ids][]', '' %>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
|
||||
<% unless @issue_custom_fields.empty? %>
|
||||
<fieldset class="box tabular" id="project_issue_custom_fields"><legend><%=l(:label_custom_field_plural)%></legend>
|
||||
<% @issue_custom_fields.each do |custom_field| %>
|
||||
<label class="floating">
|
||||
<%= check_box_tag 'project[issue_custom_field_ids][]', custom_field.id, (@project.all_issue_custom_fields.include? custom_field),
|
||||
:disabled => (custom_field.is_for_all? ? "disabled" : nil),
|
||||
:id => nil %>
|
||||
<%= custom_field_name_tag(custom_field) %>
|
||||
</label>
|
||||
<% end %>
|
||||
<%= hidden_field_tag 'project[issue_custom_field_ids][]', '' %>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<!--[eoform:project]-->
|
||||
|
||||
<% unless @project.identifier_frozen? %>
|
||||
|
@ -96,15 +63,3 @@
|
|||
});
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<%= javascript_tag do %>
|
||||
$(document).ready(function() {
|
||||
$('#project_enabled_module_names_issue_tracking').on('change', function(){
|
||||
if ($(this).prop('checked')){
|
||||
$('#project_trackers, #project_issue_custom_fields').show();
|
||||
} else {
|
||||
$('#project_trackers, #project_issue_custom_fields').hide();
|
||||
}
|
||||
}).trigger('change');
|
||||
});
|
||||
<% end %>
|
||||
|
|
53
app/views/projects/_list.html.erb
Normal file
53
app/views/projects/_list.html.erb
Normal file
|
@ -0,0 +1,53 @@
|
|||
<%= render_query_totals(@query) %>
|
||||
<div class="autoscroll">
|
||||
<table class="list projects odd-even <%= @query.css_classes %>">
|
||||
<thead>
|
||||
<tr>
|
||||
<% @query.inline_columns.each do |column| %>
|
||||
<%= column_header(@query, column) %>
|
||||
<% end %>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% grouped_project_list(entries, @query) do |entry, level, group_name, group_count, group_totals| -%>
|
||||
<% if group_name %>
|
||||
<% reset_cycle %>
|
||||
<tr class="group open">
|
||||
<td colspan="<%= @query.inline_columns.size %>">
|
||||
<span class="expander icon icon-expended" onclick="toggleRowGroup(this);"> </span>
|
||||
<span class="name"><%= group_name %></span>
|
||||
<% if group_count %>
|
||||
<span class="count"><%= group_count %></span>
|
||||
<% end %>
|
||||
<span class="totals"><%= group_totals %></span>
|
||||
<%= link_to_function("#{l(:button_collapse_all)}/#{l(:button_expand_all)}",
|
||||
"toggleAllRowGroups(this)", :class => 'toggle-all') %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tr id="project-<%= entry.id %>" class="<%= cycle('odd', 'even') %> <%= entry.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
|
||||
<% @query.inline_columns.each do |column| %>
|
||||
<%= content_tag('td', column_content(column, entry), :class => column.css_classes) %>
|
||||
<% end %>
|
||||
</tr>
|
||||
<% end -%>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<span class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></span>
|
||||
|
||||
<div id="csv-export-options" style="display:none;">
|
||||
<h3 class="title"><%= l(:label_export_options, :export_format => 'CSV') %></h3>
|
||||
<%= form_tag(projects_path(:format => 'csv'), :method => :get, :id => 'csv-export-form') do %>
|
||||
<%= query_as_hidden_field_tags(@query) %>
|
||||
<p>
|
||||
<label><%= radio_button_tag 'c[]', '', true %> <%= l(:description_selected_columns) %></label><br />
|
||||
<label><%= radio_button_tag 'c[]', 'all_inline' %> <%= l(:description_all_columns) %></label>
|
||||
</p>
|
||||
<%= export_csv_encoding_select_tag %>
|
||||
<p class="buttons">
|
||||
<%= submit_tag l(:button_export), :name => nil, :onclick => "hideModal(this);", :data => { :disable_with => false } %>
|
||||
<%= link_to_function l(:button_cancel), "hideModal(this);" %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
2
app/views/projects/_sidebar.html.erb
Normal file
2
app/views/projects/_sidebar.html.erb
Normal file
|
@ -0,0 +1,2 @@
|
|||
<%= render_sidebar_queries(ProjectQuery, @project) %>
|
||||
<%= call_hook(:view_projects_sidebar_queries_bottom) %>
|
2
app/views/projects/bookmark.js.erb
Normal file
2
app/views/projects/bookmark.js.erb
Normal file
|
@ -0,0 +1,2 @@
|
|||
$('#project-jump div.drdn-items.projects').html('<%= j render_projects_for_jump_box(projects_for_jump_box(User.current), @project) %>');
|
||||
$('.contextual a.icon.bookmark').replaceWith('<%= j bookmark_link @project %>');
|
|
@ -3,18 +3,28 @@
|
|||
<%= labelled_form_for @project, :url => { :action => "copy" } do |f| %>
|
||||
<%= render :partial => 'form', :locals => { :f => f } %>
|
||||
|
||||
<fieldset class="box tabular"><legend><%= l(:button_copy) %></legend>
|
||||
<fieldset class="box tabular"><legend><%= toggle_checkboxes_link('.box input[type="checkbox"][name="only[]"]') %><%= l(:button_copy) %></legend>
|
||||
<label class="block"><%= check_box_tag 'only[]', 'members', true, :id => nil %> <%= l(:label_member_plural) %> (<%= @source_project.members.count %>)</label>
|
||||
<label class="block"><%= check_box_tag 'only[]', 'versions', true, :id => nil %> <%= l(:label_version_plural) %> (<%= @source_project.versions.count %>)</label>
|
||||
<label class="block"><%= check_box_tag 'only[]', 'versions', true, :id => nil %> <%= l(:label_version_and_files, @source_project.versions.count) %></label>
|
||||
<label class="block"><%= check_box_tag 'only[]', 'issue_categories', true, :id => nil %> <%= l(:label_issue_category_plural) %> (<%= @source_project.issue_categories.count %>)</label>
|
||||
<label class="block"><%= check_box_tag 'only[]', 'issues', true, :id => nil %> <%= l(:label_issue_plural) %> (<%= @source_project.issues.count %>)</label>
|
||||
<label class="block"><%= check_box_tag 'only[]', 'queries', true, :id => nil %> <%= l(:label_query_plural) %> (<%= @source_project.queries.count %>)</label>
|
||||
<label class="block"><%= check_box_tag 'only[]', 'documents', true, :id => nil %> <%= l(:label_document_plural) %> (<%= @source_project.documents.count %>)</label>
|
||||
<label class="block"><%= check_box_tag 'only[]', 'boards', true, :id => nil %> <%= l(:label_board_plural) %> (<%= @source_project.boards.count %>)</label>
|
||||
<label class="block"><%= check_box_tag 'only[]', 'wiki', true, :id => nil %> <%= l(:label_wiki_page_plural) %> (<%= @source_project.wiki.nil? ? 0 : @source_project.wiki.pages.count %>)</label>
|
||||
<%= call_hook :view_projects_copy_only_items, project: @source_project, f: f %>
|
||||
<%= hidden_field_tag 'only[]', '' %>
|
||||
<br />
|
||||
<label class="block"><%= check_box_tag 'notifications', 1, params[:notifications] %> <%= l(:label_project_copy_notifications) %></label>
|
||||
</fieldset>
|
||||
|
||||
<% @project.tracker_ids.each do |tracker_id| %>
|
||||
<%= hidden_field_tag 'project[tracker_ids][]', tracker_id %>
|
||||
<% end %>
|
||||
|
||||
<% @project.issue_custom_field_ids.each do |issue_custom_field_id| %>
|
||||
<%= hidden_field_tag 'project[issue_custom_field_ids][]', issue_custom_field_id %>
|
||||
<% end %>
|
||||
|
||||
<%= submit_tag l(:button_copy) %>
|
||||
<% end %>
|
||||
|
|
|
@ -8,6 +8,7 @@ api.array :projects, api_meta(:total_count => @project_count, :offset => @offset
|
|||
api.parent(:id => project.parent.id, :name => project.parent.name) if project.parent && project.parent.visible?
|
||||
api.status project.status
|
||||
api.is_public project.is_public?
|
||||
api.inherit_members project.inherit_members?
|
||||
|
||||
render_api_custom_values project.visible_custom_field_values, api
|
||||
render_api_includes(project, api)
|
||||
|
|
|
@ -1,31 +1,38 @@
|
|||
<% content_for :header_tags do %>
|
||||
<%= auto_discovery_link_tag(:atom, {:action => 'index', :format => 'atom', :key => User.current.rss_key}) %>
|
||||
<% end %>
|
||||
|
||||
<div class="contextual">
|
||||
<%= form_tag({}, :method => :get) do %>
|
||||
<label for="closed">
|
||||
<%= check_box_tag 'closed', 1, params[:closed], :onchange => "this.form.submit();" %>
|
||||
<%= l(:label_show_closed_projects) %>
|
||||
</label>
|
||||
<% end %>
|
||||
<%= render_project_action_links %>
|
||||
</div>
|
||||
|
||||
<h2><%= l(:label_project_plural) %></h2>
|
||||
<h2><%= @query.new_record? ? l(:label_project_plural) : @query.name %></h2>
|
||||
|
||||
<div id="projects-index">
|
||||
<%= render_project_hierarchy(@projects) %>
|
||||
</div>
|
||||
<%= form_tag(projects_path(@project, nil), :method => :get, :id => 'query_form') do %>
|
||||
<%= render :partial => 'queries/query_form' %>
|
||||
<% end %>
|
||||
|
||||
<% if @query.valid? %>
|
||||
<% if @entries.empty? %>
|
||||
<p class="nodata"><%= l(:label_no_data) %></p>
|
||||
<% else %>
|
||||
<%= render :partial => @query.display_type, :locals => { :entries => @entries }%>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<% if User.current.logged? %>
|
||||
<p style="text-align:right;">
|
||||
<span class="icon icon-fav my-project"><%= l(:label_my_projects) %></span>
|
||||
<span class="icon icon-user my-project"><%= l(:label_my_projects) %></span>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<% content_for :sidebar do %>
|
||||
<%= render :partial => 'projects/sidebar' %>
|
||||
<% end %>
|
||||
|
||||
<% other_formats_links do |f| %>
|
||||
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
||||
<% if @query.display_type == 'list' %>
|
||||
<%= f.link_to_with_query_parameters 'CSV', {}, :onclick => "showModal('csv-export-options', '350px'); return false;" %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<% html_title(l(:label_project_plural)) -%>
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
<div class="contextual">
|
||||
<%= link_to(l(:button_reset), project_enumerations_path(@project),
|
||||
:method => :delete,
|
||||
:data => {:confirm => l(:text_are_you_sure)},
|
||||
:class => 'icon icon-del') %>
|
||||
<% if User.current.admin? %>
|
||||
<%= link_to l(:label_administration), enumerations_path, :class => "icon icon-settings" %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= form_tag(project_enumerations_path(@project), :method => :put, :class => "tabular") do %>
|
||||
|
||||
<table class="list">
|
||||
|
@ -7,7 +17,7 @@
|
|||
<% TimeEntryActivity.new.available_custom_fields.each do |value| %>
|
||||
<th><%= value.name %></th>
|
||||
<% end %>
|
||||
<th><%= l(:field_active) %></th>
|
||||
<th><%= toggle_checkboxes_link('input.enumerations_active') %> <%= l(:field_active) %></th>
|
||||
</tr></thead>
|
||||
|
||||
<% @project.activities(true).each do |enumeration| %>
|
||||
|
@ -24,19 +34,12 @@
|
|||
</td>
|
||||
<% end %>
|
||||
<td>
|
||||
<%= ff.check_box :active %>
|
||||
<%= ff.check_box :active, :class => 'enumerations_active' %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</table>
|
||||
|
||||
<div class="contextual">
|
||||
<%= link_to(l(:button_reset), project_enumerations_path(@project),
|
||||
:method => :delete,
|
||||
:data => {:confirm => l(:text_are_you_sure)},
|
||||
:class => 'icon icon-del') %>
|
||||
</div>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<% end %>
|
||||
|
|
47
app/views/projects/settings/_issues.html.erb
Normal file
47
app/views/projects/settings/_issues.html.erb
Normal file
|
@ -0,0 +1,47 @@
|
|||
<%= labelled_form_for @project do |f| %>
|
||||
<%= hidden_field_tag 'tab', 'issues' %>
|
||||
|
||||
<% unless @trackers.empty? %>
|
||||
<fieldset class="box tabular" id="project_trackers"><legend><%= toggle_checkboxes_link('#project_trackers input[type=checkbox]') %><%= l(:label_tracker_plural)%></legend>
|
||||
<% if User.current.admin? %>
|
||||
<div class="contextual"><%= link_to l(:label_administration), trackers_path, :class => "icon icon-settings" %></div>
|
||||
<% end %>
|
||||
<% @trackers.each do |tracker| %>
|
||||
<label class="floating">
|
||||
<%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.to_a.include?(tracker), :id => nil %>
|
||||
<%= tracker_name_tag tracker %>
|
||||
</label>
|
||||
<% end %>
|
||||
<%= hidden_field_tag 'project[tracker_ids][]', '' %>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
|
||||
<% unless @issue_custom_fields.empty? %>
|
||||
<fieldset class="box tabular" id="project_issue_custom_fields"><legend><%= toggle_checkboxes_link('#project_issue_custom_fields input[type=checkbox]:enabled') %><%=l(:label_custom_field_plural)%></legend>
|
||||
<% if User.current.admin? %>
|
||||
<div class="contextual"><%= link_to l(:label_administration), custom_fields_path, :class => "icon icon-settings" %></div>
|
||||
<% end %>
|
||||
<% @issue_custom_fields.each do |custom_field| %>
|
||||
<label class="floating">
|
||||
<%= check_box_tag 'project[issue_custom_field_ids][]', custom_field.id, (@project.all_issue_custom_fields.include? custom_field),
|
||||
:disabled => (custom_field.is_for_all? ? "disabled" : nil),
|
||||
:id => nil %>
|
||||
<%= custom_field_name_tag(custom_field) %>
|
||||
</label>
|
||||
<% end %>
|
||||
<%= hidden_field_tag 'project[issue_custom_field_ids][]', '' %>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
|
||||
<div class="box tabular">
|
||||
<% if @project.safe_attribute?('default_version_id') %>
|
||||
<p><%= f.select :default_version_id, project_default_version_options(@project), include_blank: l(:label_none) %></p>
|
||||
<% end %>
|
||||
|
||||
<% if @project.safe_attribute?('default_assigned_to_id') %>
|
||||
<p><%= f.select :default_assigned_to_id, project_default_assigned_to_options(@project), include_blank: l(:label_none) %></p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<p><%= submit_tag l(:button_save) %></p>
|
||||
<% end %>
|
|
@ -1,5 +1,8 @@
|
|||
<% members = @project.memberships.sorted.to_a %>
|
||||
<% members = @project.memberships.preload(:project).sorted.to_a %>
|
||||
|
||||
<% if User.current.admin? %>
|
||||
<div class="contextual"><%= link_to l(:label_administration), users_path, :class => "icon icon-settings" %></div>
|
||||
<% end %>
|
||||
<p><%= link_to l(:label_member_new), new_project_membership_path(@project), :remote => true, :class => "icon icon-add" %></p>
|
||||
|
||||
<% if members.any? %>
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
<%= form_for @project,
|
||||
:url => { :action => 'modules', :id => @project },
|
||||
:html => {:id => 'modules-form',
|
||||
:method => :post} do |f| %>
|
||||
|
||||
<fieldset class="box">
|
||||
<legend><%= l(:text_select_project_modules) %></legend>
|
||||
|
||||
<% Redmine::AccessControl.available_project_modules.each do |m| %>
|
||||
<p><label><%= check_box_tag 'enabled_module_names[]', m, @project.module_enabled?(m), :id => nil -%>
|
||||
<%= l_or_humanize(m, :prefix => "project_module_") %></label></p>
|
||||
<% end %>
|
||||
</fieldset>
|
||||
<p><%= check_all_links 'modules-form' %></p>
|
||||
|
||||
<p><%= submit_tag l(:button_save) %></p>
|
||||
|
||||
<% end %>
|
|
@ -1,4 +1,11 @@
|
|||
<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>
|
||||
<% if @versions.any? %>
|
||||
<div class="contextual">
|
||||
<%= link_to l(:label_close_versions), close_completed_project_versions_path(@project), :class => 'icon icon-locked', :method => :put %>
|
||||
</div>
|
||||
<% end %>
|
||||
<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>
|
||||
|
||||
<%= form_tag(settings_project_path(@project, :tab => 'versions'), :method => :get) do %>
|
||||
<fieldset><legend><%= l(:label_filter_plural) %></legend>
|
||||
|
@ -16,6 +23,7 @@
|
|||
<table class="list versions">
|
||||
<thead><tr>
|
||||
<th><%= l(:label_version) %></th>
|
||||
<th><%= l(:field_default_version) %></th>
|
||||
<th><%= l(:field_effective_date) %></th>
|
||||
<th><%= l(:field_description) %></th>
|
||||
<th><%= l(:field_status) %></th>
|
||||
|
@ -24,9 +32,10 @@
|
|||
<th style="width:15%"></th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<% @versions.sort.each do |version| %>
|
||||
<% @versions.each do |version| %>
|
||||
<tr class="version <%=h version.status %> <%= 'shared' if version.project != @project %>">
|
||||
<td class="name <%= 'icon icon-shared' if version.project != @project %>"><%= link_to_version version %></td>
|
||||
<td class="tick"><%= checked_image(version.id == @project.default_version_id) %></td>
|
||||
<td class="date"><%= format_date(version.effective_date) %></td>
|
||||
<td class="description"><%= version.description %></td>
|
||||
<td class="status"><%= l("version_status_#{version.status}") %></td>
|
||||
|
@ -45,9 +54,3 @@
|
|||
<% else %>
|
||||
<p class="nodata"><%= l(:label_no_data) %></p>
|
||||
<% end %>
|
||||
|
||||
<div class="contextual">
|
||||
<% if @versions.any? %>
|
||||
<%= link_to l(:label_close_versions), close_completed_project_versions_path(@project), :method => :put %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
<%= labelled_form_for @wiki,
|
||||
:as => :wiki,
|
||||
:url => { :controller => 'wikis', :action => 'edit', :id => @project },
|
||||
:remote => true, :method => 'post' do |f| %>
|
||||
|
||||
<%= error_messages_for 'wiki' %>
|
||||
|
||||
<div class="box tabular">
|
||||
<p><%= f.text_field :start_page, :size => 60, :required => true %>
|
||||
<em class="info"><%= l(:text_unallowed_characters) %>: , . / ? ; : |</em></p>
|
||||
</div>
|
||||
|
||||
<div class="contextual">
|
||||
<%= link_to(l(:button_delete), {:controller => 'wikis', :action => 'destroy', :id => @project},
|
||||
:class => 'icon icon-del') if @wiki && !@wiki.new_record? %>
|
||||
</div>
|
||||
|
||||
<%= submit_tag((@wiki.nil? || @wiki.new_record?) ? l(:button_create) : l(:button_save)) %>
|
||||
<% end %>
|
|
@ -7,6 +7,9 @@ api.project do
|
|||
api.parent(:id => @project.parent.id, :name => @project.parent.name) if @project.parent && @project.parent.visible?
|
||||
api.status @project.status
|
||||
api.is_public @project.is_public?
|
||||
api.inherit_members @project.inherit_members?
|
||||
api.default_version(:id => @project.default_version.id, :name => @project.default_version.name) if @project.default_version
|
||||
api.default_assignee(:id => @project.project.default_assigned_to.id, :name => @project.project.default_assigned_to.name) if @project.default_assigned_to
|
||||
|
||||
render_api_custom_values @project.visible_custom_field_values, api
|
||||
render_api_includes(@project, api)
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
<div class="contextual">
|
||||
<%= bookmark_link @project %>
|
||||
|
||||
<%= actions_dropdown do %>
|
||||
<% if User.current.allowed_to?(:add_subprojects, @project) %>
|
||||
<%= link_to l(:label_subproject_new), new_project_path(:parent_id => @project), :class => 'icon icon-add' %>
|
||||
<% end %>
|
||||
|
@ -9,6 +12,10 @@
|
|||
<%= link_to l(:button_reopen), reopen_project_path(@project), :data => {:confirm => l(:text_are_you_sure)}, :method => :post, :class => 'icon icon-unlock' %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<%= link_to_if_authorized l(:label_settings),
|
||||
{:controller => 'projects', :action => 'settings', :id => @project},
|
||||
:class => 'icon icon-settings' if User.current.allowed_to?(:edit_project, @project) %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<h2><%=l(:label_overview)%></h2>
|
||||
|
@ -17,6 +24,7 @@
|
|||
<p class="warning"><span class="icon icon-lock"><%= l(:text_project_closed) %></span></p>
|
||||
<% end %>
|
||||
|
||||
<div class="splitcontent">
|
||||
<div class="splitcontentleft">
|
||||
<% if @project.description.present? %>
|
||||
<div class="wiki">
|
||||
|
@ -29,14 +37,20 @@
|
|||
<li><span class="label"><%=l(:field_homepage)%>:</span> <%= link_to_if uri_with_safe_scheme?(@project.homepage), @project.homepage, @project.homepage %></li>
|
||||
<% end %>
|
||||
<% render_custom_field_values(@project) do |custom_field, formatted| %>
|
||||
<li><span class="label"><%= custom_field.name %>:</span> <%= formatted %></li>
|
||||
<li class="<%= custom_field.css_classes %>"><span class="label"><%= custom_field.name %>:</span> <%= formatted %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<% if User.current.allowed_to?(:view_issues, @project) %>
|
||||
<div class="issues box">
|
||||
<h3 class="icon icon-issue"><%=l(:label_issue_tracking)%></h3>
|
||||
<h3 class="icon icon-issue">
|
||||
<%=l(:label_issue_tracking)%>
|
||||
<%= link_to l(:label_details),
|
||||
project_issues_report_details_path(@project, :detail => 'tracker'),
|
||||
:class => 'icon-only icon-zoom-in',
|
||||
:title => l(:label_details) %>
|
||||
</h3>
|
||||
<% if @trackers.present? %>
|
||||
<table class="list issue-report">
|
||||
<thead>
|
||||
|
@ -51,7 +65,7 @@
|
|||
<% @trackers.each do |tracker| %>
|
||||
<tr>
|
||||
<td class="name">
|
||||
<%= link_to tracker.name, project_issues_path(@project, :set_filter => 1, :tracker_id => tracker.id) %>
|
||||
<%= link_to tracker.name, project_issues_path(@project, :set_filter => 1, :tracker_id => tracker.id), :title => tracker.description %>
|
||||
</td>
|
||||
<td>
|
||||
<%= link_to @open_issues_by_tracker[tracker].to_i, project_issues_path(@project, :set_filter => 1, :tracker_id => tracker.id) %>
|
||||
|
@ -69,6 +83,7 @@
|
|||
<% end %>
|
||||
<p>
|
||||
<%= link_to l(:label_issue_view_all), project_issues_path(@project, :set_filter => 1) %>
|
||||
| <%= link_to l(:field_summary), project_issues_report_path(@project) %>
|
||||
<% if User.current.allowed_to?(:view_calendar, @project, :global => true) %>
|
||||
| <%= link_to l(:label_calendar), project_calendar_path(@project) %>
|
||||
<% end %>
|
||||
|
@ -81,10 +96,15 @@
|
|||
|
||||
<% if User.current.allowed_to?(:view_time_entries, @project) %>
|
||||
<div class="spent_time box">
|
||||
<h3 class="icon icon-time"><%= l(:label_spent_time) %></h3>
|
||||
<% if @total_hours.present? %>
|
||||
<p><%= l_hours(@total_hours) %></p>
|
||||
<% end %>
|
||||
<h3 class="icon icon-time"><%= l(:label_time_tracking) %></h3>
|
||||
<ul>
|
||||
<% if @total_estimated_hours.present? %>
|
||||
<li><%= l(:field_estimated_hours) %>: <%= l_hours(@total_estimated_hours) %>
|
||||
<% end %>
|
||||
<% if @total_hours.present? %>
|
||||
<li><%= l(:label_spent_time) %>: <%= l_hours(@total_hours) %>
|
||||
<% end %>
|
||||
</ul>
|
||||
<p>
|
||||
<% if User.current.allowed_to?(:log_time, @project) %>
|
||||
<%= link_to l(:button_log_time), new_project_time_entry_path(@project) %> |
|
||||
|
@ -98,8 +118,6 @@
|
|||
</div>
|
||||
|
||||
<div class="splitcontentright">
|
||||
<%= render :partial => 'members_box' %>
|
||||
|
||||
<% if @news.any? && authorize_for('news', 'index') %>
|
||||
<div class="news box">
|
||||
<h3 class="icon icon-news"><%=l(:label_news_latest)%></h3>
|
||||
|
@ -108,15 +126,22 @@
|
|||
</div>
|
||||
<% end %>
|
||||
|
||||
<%= render :partial => 'members_box' %>
|
||||
|
||||
<% if @subprojects.any? %>
|
||||
<div class="projects box">
|
||||
<h3 class="icon icon-projects"><%=l(:label_subproject_plural)%></h3>
|
||||
<%= @subprojects.collect{|p| link_to p, project_path(p), :class => p.css_classes}.join(", ").html_safe %>
|
||||
<ul class="subprojects">
|
||||
<% @subprojects.each do |project| %>
|
||||
<li><%= link_to(project.name, project_path(project), :class => project.css_classes).html_safe %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<%= call_hook(:view_projects_show_right, :project => @project) %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% content_for :sidebar do %>
|
||||
<%= call_hook(:view_projects_show_sidebar_bottom, :project => @project) %>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue