Redmine 4.1.1

This commit is contained in:
Manuel Cillero 2020-11-22 21:20:06 +01:00
parent 33e7b881a5
commit 3d976f1b3b
1593 changed files with 36180 additions and 19489 deletions

View file

@ -1,35 +1,47 @@
<div class="splitcontent">
<div class="splitcontentleft">
<p>
<label><%= l(:label_project) %></label>
<label for="import_mapping_project_id"><%= l(:label_project) %></label>
<%= select_tag 'import_settings[mapping][project_id]',
options_for_select(project_tree_options_for_select(@import.allowed_target_projects, :selected => @import.project)),
:id => 'import_mapping_project_id' %>
</p>
<p>
<label><%= l(:label_tracker) %></label>
<label for="import_mapping_tracker"><%= l(:label_tracker) %></label>
<%= mapping_select_tag @import, 'tracker', :required => true,
:values => @import.allowed_target_trackers.sorted.map {|t| [t.name, t.id]} %>
</p>
<p>
<label><%= l(:field_status) %></label>
<label for="import_mapping_status"><%= l(:field_status) %></label>
<%= mapping_select_tag @import, 'status' %>
</p>
</div>
<div class="splitcontentright">
<p></p>
<p>
<label for="import_mapping_unique_id"><%= l(:field_unique_id) %></label>
<%= mapping_select_tag @import, 'unique_id' %>
</p>
</div>
</div>
<div class="splitcontent">
<div class="splitcontentleft">
<p>
<label><%= l(:field_subject) %></label>
<label for="import_mapping_subject"><%= l(:field_subject) %></label>
<%= mapping_select_tag @import, 'subject', :required => true %>
</p>
<p>
<label><%= l(:field_description) %></label>
<label for="import_mapping_description"><%= l(:field_description) %></label>
<%= mapping_select_tag @import, 'description' %>
</p>
<p>
<label><%= l(:field_priority) %></label>
<label for="import_mapping_priority"><%= l(:field_priority) %></label>
<%= mapping_select_tag @import, 'priority' %>
</p>
<p>
<label><%= l(:field_category) %></label>
<label for="import_mapping_category"><%= l(:field_category) %></label>
<%= mapping_select_tag @import, 'category' %>
<% if User.current.allowed_to?(:manage_categories, @import.project) %>
<label class="block">
@ -39,11 +51,11 @@
<% end %>
</p>
<p>
<label><%= l(:field_assigned_to) %></label>
<label for="import_mapping_assigned_to"><%= l(:field_assigned_to) %></label>
<%= mapping_select_tag @import, 'assigned_to' %>
</p>
<p>
<label><%= l(:field_fixed_version) %></label>
<label for="import_mapping_fixed_version"><%= l(:field_fixed_version) %></label>
<%= mapping_select_tag @import, 'fixed_version' %>
<% if User.current.allowed_to?(:manage_versions, @import.project) %>
<label class="block">
@ -54,7 +66,7 @@
</p>
<% @custom_fields.each do |field| %>
<p>
<label><%= field.name %></label>
<label for="import_mapping_cf_<%= field.id %>"><%= field.name %></label>
<%= mapping_select_tag @import, "cf_#{field.id}" %>
</p>
<% end %>
@ -62,27 +74,27 @@
<div class="splitcontentright">
<p>
<label><%= l(:field_is_private) %></label>
<label for="import_mapping_is_private"><%= l(:field_is_private) %></label>
<%= mapping_select_tag @import, 'is_private' %>
</p>
<p>
<label><%= l(:field_parent_issue) %></label>
<label for="import_mapping_parent_issue_id"><%= l(:field_parent_issue) %></label>
<%= mapping_select_tag @import, 'parent_issue_id' %>
</p>
<p>
<label><%= l(:field_start_date) %></label>
<label for="import_mapping_start_date"><%= l(:field_start_date) %></label>
<%= mapping_select_tag @import, 'start_date' %>
</p>
<p>
<label><%= l(:field_due_date) %></label>
<label for="import_mapping_due_date"><%= l(:field_due_date) %></label>
<%= mapping_select_tag @import, 'due_date' %>
</p>
<p>
<label><%= l(:field_estimated_hours) %></label>
<label for="import_mapping_estimated_hours"><%= l(:field_estimated_hours) %></label>
<%= mapping_select_tag @import, 'estimated_hours' %>
</p>
<p>
<label><%= l(:field_done_ratio) %></label>
<label for="import_mapping_done_ratio"><%= l(:field_done_ratio) %></label>
<%= mapping_select_tag @import, 'done_ratio' %>
</p>
</div>

View file

@ -0,0 +1,16 @@
<fieldset class="box tabular">
<legend><%= l(:label_fields_mapping) %></legend>
<div id="fields-mapping">
<%= render :partial => 'issues_fields_mapping' %>
</div>
</fieldset>
<%= javascript_tag do %>
$('#fields-mapping').on('change', '#import_mapping_project_id, #import_mapping_tracker', function(){
$.ajax({
url: '<%= import_mapping_path(@import, :format => 'js') %>',
type: 'post',
data: $('#import-form').serialize()
});
});
<% end %>

View file

@ -0,0 +1 @@
$('#fields-mapping').html('<%= escape_javascript(render :partial => 'issues_fields_mapping') %>');

View file

@ -0,0 +1,7 @@
<ul id="saved-items">
<% saved_objects.each do |issue| %>
<li><%= link_to_issue issue %></li>
<% end %>
</ul>
<p><%= link_to l(:label_issue_view_all), issues_path(:set_filter => 1, :status_id => '*', :issue_id => saved_objects.map(&:id).join(',')) %></p>

View file

@ -0,0 +1,3 @@
<% content_for :sidebar do %>
<%= render :partial => 'issues/sidebar' %>
<% end %>

View file

@ -0,0 +1,48 @@
<p>
<label for="import_mapping_project_id"><%= l(:label_project) %></label>
<%= select_tag 'import_settings[mapping][project_id]',
options_for_select(project_tree_options_for_select(@import.allowed_target_projects, :selected => @import.project)),
:id => 'import_mapping_project_id' %>
</p>
<p>
<label for="import_mapping_activity"><%= l(:field_activity) %></label>
<%= mapping_select_tag @import, 'activity', :required => true,
:values => @import.allowed_target_activities.sorted.map {|t| [t.name, t.id]} %>
</p>
<div class="splitcontent">
<div class="splitcontentleft">
<% if User.current.allowed_to?(:log_time_for_other_users, @import.project) %>
<p>
<label for="import_mapping_user_id"><%= l(:field_user) %></label>
<%= mapping_select_tag @import, 'user_id', :required => true,
:values => @import.allowed_target_users.map {|u| [u.name, u.id]}, :default_value => "value:#{User.current.id}" %>
</p>
<% end %>
<p>
<label for="import_mapping_issue_id"><%= l(:field_issue) %></label>
<%= mapping_select_tag @import, 'issue_id' %>
</p>
<p>
<label for="import_mapping_spent_on"><%= l(:field_spent_on) %></label>
<%= mapping_select_tag @import, 'spent_on', :required => true %>
</p>
<p>
<label for="import_mapping_hours"><%= l(:field_hours) %></label>
<%= mapping_select_tag @import, 'hours', :required => true %>
</p>
<p>
<label for="import_mapping_comments"><%= l(:field_comments) %></label>
<%= mapping_select_tag @import, 'comments' %>
</p>
</div>
<div class="splitcontentright">
<% @custom_fields.each do |field| %>
<p>
<label for="import_mapping_cf_<%= field.id %>"><%= field.name %></label>
<%= mapping_select_tag @import, "cf_#{field.id}", :required => field.is_required? %>
</p>
<% end %>
</div>
</div>

View file

@ -0,0 +1,18 @@
<fieldset class="box tabular">
<legend><%= l(:label_fields_mapping) %></legend>
<div id="fields-mapping">
<%= render :partial => 'time_entries_fields_mapping' %>
</div>
</fieldset>
<%= javascript_tag do %>
$(document).ready(function() {
$('#fields-mapping').on('change', '#import_mapping_project_id', function(){
$.ajax({
url: '<%= import_mapping_path(@import, :format => 'js') %>',
type: 'post',
data: $('#import-form').serialize()
});
});
});
<% end %>

View file

@ -0,0 +1 @@
$('#fields-mapping').html('<%= escape_javascript(render :partial => 'time_entries_fields_mapping') %>');

View file

@ -0,0 +1,26 @@
<table id="saved-items" class="list">
<thead>
<tr>
<th><%= t(:field_project) %></th>
<th><%= t(:field_user) %></th>
<th><%= t(:field_activity) %></th>
<th><%= t(:field_issue) %></th>
<th><%= t(:field_spent_on) %></th>
<th><%= t(:field_hours) %></th>
<th><%= t(:field_comments) %></th>
</tr>
</thead>
<tbody>
<% saved_objects.each do |time_entry| %>
<tr>
<td><%= link_to_project(time_entry.project, :jump => 'time_entries') if time_entry.project %></td>
<td><%= link_to_user time_entry.user %></td>
<td><%= time_entry.activity.name if time_entry.activity %></td>
<td><%= link_to_issue time_entry.issue if time_entry.issue %></td>
<td><%= format_date(time_entry.spent_on) %></td>
<td><%= l_hours_short(time_entry.hours) %></td>
<td><%= time_entry.comments %></td>
</tr>
<% end %>
</tbody>
</table>

View file

@ -0,0 +1,3 @@
<% content_for :sidebar do %>
<%= render :partial => 'timelog/sidebar' %>
<% end %>

View file

@ -1,17 +1,12 @@
<h2><%= l(:label_import_issues) %></h2>
<h2><%= import_title %></h2>
<%= form_tag(import_mapping_path(@import), :id => "import-form") do %>
<fieldset class="box tabular">
<legend><%= l(:label_fields_mapping) %></legend>
<div id="fields-mapping">
<%= render :partial => 'fields_mapping' %>
</div>
</fieldset>
<%= render :partial => "#{import_partial_prefix}_mapping" %>
<div class="autoscroll">
<fieldset class="box">
<legend><%= l(:label_file_content_preview) %></legend>
<div class="autoscroll">
<table class="sample-data">
<% @import.first_rows.each do |row| %>
<tr>
@ -19,8 +14,8 @@
</tr>
<% end %>
</table>
</div>
</fieldset>
</div>
<p>
<%= button_tag("\xc2\xab " + l(:label_previous), :name => 'previous') %>
@ -28,25 +23,13 @@
</p>
<% end %>
<% content_for :sidebar do %>
<%= render :partial => 'issues/sidebar' %>
<% end %>
<%= render :partial => "#{import_partial_prefix}_sidebar" %>
<%= javascript_tag do %>
$(document).ready(function() {
$('#fields-mapping').on('change', '#import_mapping_project_id, #import_mapping_tracker', function(){
$.ajax({
url: '<%= import_mapping_path(@import, :format => 'js') %>',
type: 'post',
data: $('#import-form').serialize()
});
});
$('#import-form').submit(function(){
$('#import-details').show().addClass('ajax-loading');
$('#import-progress').progressbar({value: 0, max: <%= @import.total_items || 0 %>});
});
});
<% end %>

View file

@ -1 +1 @@
$('#fields-mapping').html('<%= escape_javascript(render :partial => 'fields_mapping') %>');
<%= render :partial => "#{import_partial_prefix}_mapping" %>

View file

@ -1,6 +1,8 @@
<h2><%= l(:label_import_issues) %></h2>
<h2><%= import_title %></h2>
<%= form_tag(imports_path, :multipart => true) do %>
<%= hidden_field_tag 'type', @import.type %>
<%= hidden_field_tag 'project_id', params[:project_id] %>
<fieldset class="box">
<legend><%= l(:label_select_file_to_import) %> (CSV)</legend>
<p>
@ -10,6 +12,4 @@
<p><%= submit_tag l(:label_next).html_safe + " &#187;".html_safe, :name => nil %></p>
<% end %>
<% content_for :sidebar do %>
<%= render :partial => 'issues/sidebar' %>
<% end %>
<%= render :partial => "#{import_partial_prefix}_sidebar" %>

View file

@ -1,12 +1,10 @@
<h2><%= l(:label_import_issues) %></h2>
<h2><%= import_title %></h2>
<div id="import-details">
<div id="import-progress"><div id="progress-label">0 / <%= @import.total_items.to_i %></div></div>
</div>
<% content_for :sidebar do %>
<%= render :partial => 'issues/sidebar' %>
<% end %>
<%= render :partial => "#{import_partial_prefix}_sidebar" %>
<%= javascript_tag do %>
$(document).ready(function() {

View file

@ -1,30 +1,34 @@
<h2><%= l(:label_import_issues) %></h2>
<h2><%= import_title %></h2>
<%= form_tag(import_settings_path(@import), :id => "import-form") do %>
<fieldset class="box tabular">
<legend><%= l(:label_options) %></legend>
<p>
<label><%= l(:label_fields_separator) %></label>
<label for="import_settings_separator"><%= l(:label_fields_separator) %></label>
<%= select_tag 'import_settings[separator]',
options_for_select([[l(:label_comma_char), ','], [l(:label_semi_colon_char), ';']], @import.settings['separator']) %>
</p>
<p>
<label><%= l(:label_fields_wrapper) %></label>
<label for="import_settings_wrapper"><%= l(:label_fields_wrapper) %></label>
<%= select_tag 'import_settings[wrapper]',
options_for_select([[l(:label_quote_char), "'"], [l(:label_double_quote_char), '"']], @import.settings['wrapper']) %>
</p>
<p>
<label><%= l(:label_encoding) %></label>
<label for="import_settings_encoding"><%= l(:label_encoding) %></label>
<%= select_tag 'import_settings[encoding]', options_for_select(Setting::ENCODINGS, @import.settings['encoding']) %>
</p>
<p>
<label><%= l(:setting_date_format) %></label>
<label for="import_settings_date_format"><%= l(:setting_date_format) %></label>
<%= select_tag 'import_settings[date_format]', options_for_select(date_format_options, @import.settings['date_format']) %>
</p>
<br>
<p>
<label for="import_settings_notifications"><%= l(:label_import_notifications) %></label>
<%= hidden_field_tag 'import_settings[notifications]', '0', :id => nil %>
<%= check_box_tag 'import_settings[notifications]', '1', "#{@import.settings['notifications']}" == '1' %>
</p>
</fieldset>
<p><%= submit_tag l(:label_next).html_safe + " &#187;".html_safe, :name => nil %></p>
<% end %>
<% content_for :sidebar do %>
<%= render :partial => 'issues/sidebar' %>
<% end %>
<%= render :partial => "#{import_partial_prefix}_sidebar" %>

View file

@ -1,15 +1,9 @@
<h2><%= l(:label_import_issues) %></h2>
<h2><%= import_title %></h2>
<% if @import.saved_items.count > 0 %>
<p><%= l(:notice_import_finished, :count => @import.saved_items.count) %>:</p>
<ul id="saved-items">
<% @import.saved_objects.each do |issue| %>
<li><%= link_to_issue issue %></li>
<% end %>
</ul>
<p><%= link_to l(:label_issue_view_all), issues_path(:set_filter => 1, :status_id => '*', :issue_id => @import.saved_objects.map(&:id).join(',')) %></p>
<%= render :partial => "#{import_partial_prefix}_saved_objects", :locals => { saved_objects: @import.saved_objects } %>
<% end %>
<% if @import.unsaved_items.count > 0 %>
@ -33,6 +27,4 @@
</table>
<% end %>
<% content_for :sidebar do %>
<%= render :partial => 'issues/sidebar' %>
<% end %>
<%= render :partial => "#{import_partial_prefix}_sidebar" %>