Defect #34641 » 34641-v3.patch
| app/views/issues/_edit.html.erb | ||
|---|---|---|
| 9 | 9 |
</div> |
| 10 | 10 |
</fieldset> |
| 11 | 11 |
<% end %> |
| 12 |
<% if User.current.allowed_to?(:log_time, @project) %> |
|
| 13 |
<fieldset class="tabular"><legend><%= l(:button_log_time) %></legend> |
|
| 12 |
<fieldset id="log_time" class="tabular<%= ' hidden' unless User.current.allowed_to?(:log_time, @project) %>"><legend><%= l(:button_log_time) %></legend> |
|
| 14 | 13 |
<%= labelled_fields_for :time_entry, @time_entry do |time_entry| %> |
| 15 | 14 |
<div class="splitcontent"> |
| 16 | 15 |
<div class="splitcontentleft"> |
| ... | ... | |
| 25 | 24 |
<p><%= custom_field_tag_with_label :time_entry, value %></p> |
| 26 | 25 |
<% end %> |
| 27 | 26 |
<% end %> |
| 28 |
</fieldset> |
|
| 29 |
<% end %> |
|
| 27 |
</fieldset> |
|
| 30 | 28 |
<% if @issue.notes_addable? %> |
| 31 | 29 |
<fieldset><legend><%= l(:field_notes) %></legend> |
| 32 | 30 |
<%= f.text_area :notes, :cols => 60, :rows => 10, :class => 'wiki-edit', |
| app/views/issues/edit.js.erb | ||
|---|---|---|
| 1 | 1 |
replaceIssueFormWith('<%= escape_javascript(render :partial => 'form') %>');
|
| 2 | 2 | |
| 3 | 3 |
<% if User.current.allowed_to?(:log_time, @issue.project) %> |
| 4 |
$('#log_time').show();
|
|
| 4 |
$('#log_time').removeClass('hidden');
|
|
| 5 | 5 |
<% else %> |
| 6 |
$('#log_time').hide();
|
|
| 6 |
$('#log_time').addClass('hidden');
|
|
| 7 | 7 |
<% end %> |
| test/functional/issues_controller_test.rb | ||
|---|---|---|
| 5551 | 5551 |
@request.session[:user_id] = 2 |
| 5552 | 5552 |
Role.find_by_name('Manager').update_attribute :permissions, [:view_issues, :edit_issues, :log_time]
|
| 5553 | 5553 |
get(:edit, :params => {:id => 1})
|
| 5554 |
assert_select 'input[name=?]', 'time_entry[hours]' |
|
| 5554 |
assert_select '#log_time:not(.hidden)' do |
|
| 5555 |
assert_select 'input[name=?]', 'time_entry[hours]' |
|
| 5556 |
end |
|
| 5555 | 5557 |
end |
| 5556 | 5558 | |
| 5557 | 5559 |
def test_get_edit_should_not_display_the_time_entry_form_without_log_time_permission |
| 5558 | 5560 |
@request.session[:user_id] = 2 |
| 5559 | 5561 |
Role.find_by_name('Manager').remove_permission! :log_time
|
| 5560 | 5562 |
get(:edit, :params => {:id => 1})
|
| 5561 |
assert_select 'input[name=?]', 'time_entry[hours]', 0 |
|
| 5563 |
assert_select '#log_time.hidden' do |
|
| 5564 |
assert_select 'input[name=?]', 'time_entry[hours]' |
|
| 5565 |
end |
|
| 5562 | 5566 |
end |
| 5563 | 5567 | |
| 5564 | 5568 |
def test_get_edit_with_params |
| test/system/issues_test.rb | ||
|---|---|---|
| 571 | 571 |
assert page.has_text? 'Related to Bug #7' |
| 572 | 572 |
end |
| 573 | 573 |
end |
| 574 | ||
| 575 |
def test_edit_should_show_log_time_block_dynamically |
|
| 576 |
project = Project.find('ecookbook') # eCookbook
|
|
| 577 |
project.enabled_module_names = project.enabled_module_names - ['time_tracking'] |
|
| 578 |
project.save! |
|
| 579 |
Member.create!(:project => Project.find('subproject1'), :roles => [Role.find_by_name('Manager')], :principal => User.find_by_login('dlopper'))
|
|
| 580 | ||
| 581 |
log_user('dlopper', 'foo')
|
|
| 582 | ||
| 583 |
visit '/issues/1' |
|
| 584 |
page.first(:link, 'Edit').click |
|
| 585 | ||
| 586 |
within('#issue-form') do
|
|
| 587 |
assert page.has_select?('Project', :with_options => ['eCookbook', 'eCookbook Subproject 1'])
|
|
| 588 |
assert page.has_select?('Project', :selected => 'eCookbook')
|
|
| 589 |
assert page.has_selector?('#log_time.hidden', :visible => false)
|
|
| 590 | ||
| 591 |
select 'eCookbook Subproject 1', :from => 'Project' |
|
| 592 |
assert page.has_select?('Project', :selected => ' » eCookbook Subproject 1')
|
|
| 593 |
assert page.has_selector?('#log_time', :visible => true)
|
|
| 594 |
end |
|
| 595 |
end |
|
| 596 | ||
| 597 |
def test_edit_should_hide_log_time_block_dynamically |
|
| 598 |
project = Project.find('subproject1') # eCookbook Subproject 1
|
|
| 599 |
project.enabled_module_names = project.enabled_module_names - ['time_tracking'] |
|
| 600 |
project.save! |
|
| 601 |
Member.create!(:project => project, :roles => [Role.find_by_name('Manager')], :principal => User.find_by_login('dlopper'))
|
|
| 602 | ||
| 603 |
log_user('dlopper', 'foo')
|
|
| 604 | ||
| 605 |
visit '/issues/1' |
|
| 606 |
page.first(:link, 'Edit').click |
|
| 607 | ||
| 608 |
within('#issue-form') do
|
|
| 609 |
assert page.has_select?('Project', :with_options => ['eCookbook', 'eCookbook Subproject 1'])
|
|
| 610 |
assert page.has_select?('Project', :selected => 'eCookbook')
|
|
| 611 |
assert page.has_selector?('#log_time', :visible => true)
|
|
| 612 | ||
| 613 |
select 'eCookbook Subproject 1', :from => 'Project' |
|
| 614 |
assert page.has_select?('Project', :selected => ' » eCookbook Subproject 1')
|
|
| 615 |
assert page.has_selector?('#log_time.hidden', :visible => false)
|
|
| 616 |
end |
|
| 617 |
end |
|
| 574 | 618 |
end |