<% end %>
<p>
<%= f.text_field :issue_id, :size => 6 %>
- <% if @time_entry.issue.try(:visible?) %>
- <span id="time_entry_issue"><%= "#{@time_entry.issue.tracker.name} ##{@time_entry.issue.id}: #{@time_entry.issue.subject}" %></span>
- <% end %>
+ <span id="time_entry_issue">
+ <%= link_to_issue(@time_entry.issue) if @time_entry.issue.try(:visible?) %>
+ </span>
</p>
<p><%= f.date_field :spent_on, :size => 10, :required => true %><%= calendar_for('time_entry_spent_on') %></p>
<p><%= f.text_field :hours, :size => 6, :required => true %></p>
</div>
<%= javascript_tag do %>
-<% if @time_entry.new_record? %>
$(document).ready(function(){
$('#time_entry_project_id, #time_entry_issue_id').change(function(){
$.ajax({
- url: '<%= escape_javascript new_time_entry_path(:format => 'js') %>',
+ url: '<%= escape_javascript(@time_entry.new_record? ? new_time_entry_path(:format => 'js') : edit_time_entry_path(:format => 'js')) %>',
type: 'post',
- data: $('#new_time_entry').serialize()
+ data: $(this).closest('form').serialize()
});
});
});
-<% end %>
observeAutocompleteField('time_entry_issue_id', '<%= escape_javascript auto_complete_issues_path(:project_id => @project, :scope => (@project ? nil : 'all'))%>', {
select: function(event, ui) {
- $('#time_entry_issue').text(ui.item.label);
- $('#time_entry_issue_id').blur();
+ $('#time_entry_issue').text('');
+ $('#time_entry_issue_id').val(ui.item.value).change();
}
});
<% end %>
assert_select 'input[name=?][type=hidden]', 'project_id', 0
assert_select 'input[name=?][type=hidden]', 'issue_id', 0
+ assert_select 'span[id=?]', 'time_entry_issue'
assert_select 'select[name=?]', 'time_entry[project_id]' do
# blank option for project
assert_select 'option[value=""]'
assert_select 'input[name=?][type=hidden]', 'project_id', 0
assert_select 'input[name=?][type=hidden]', 'issue_id'
+ assert_select 'a[href=?]', '/issues/2', :text => /Feature request #2/
assert_select 'select[name=?]', 'time_entry[project_id]', 0
end
end
assert_select_error /Issue is invalid/
assert_select "input[name=?][value=?]", "time_entry[issue_id]", issue.id.to_s
- assert_select "#time_entry_issue", 0
+ assert_select "#time_entry_issue a", 0
assert !response.body.include?('issue_that_is_not_visible')
end
assert_select 'form#bulk_edit_form[action=?]', '/time_entries/bulk_update' do
# System wide custom field
assert_select 'select[name=?]', 'time_entry[custom_field_values][10]'
-
+
# Activities
assert_select 'select[name=?]', 'time_entry[activity_id]' do
assert_select 'option[value=""]', :text => '(No change)'
@request.session[:user_id] = 2
# makes user a manager on the other project
Member.create!(:user_id => 2, :project_id => 3, :role_ids => [1])
-
+
# update time entry activity
post :bulk_update, :params => {:ids => [1, 2, 4], :time_entry => { :activity_id => 9 }}
def test_index_at_project_level
get :index, :params => {:project_id => 'ecookbook', :c => ['project']}
assert_response :success
-
+
assert_select 'tr.time-entry', 4
-
+
# project and subproject
projects = css_select('table.time-entries tbody td.project').map(&:text).uniq.sort
assert_equal ["eCookbook", "eCookbook Subproject 1"], projects
def test_index_at_project_level_should_include_csv_export_dialog
get :index, :params => {
- :project_id => 'ecookbook',
+ :project_id => 'ecookbook',
:f => ['spent_on'],
:op => {'spent_on' => '>='},
:v => {'spent_on' => ['2007-04-01']},