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 |