Added an active field track if an Enumeration is active on the frontend view.
* Changed TimelogHelper#activity_collection_for_select_options to only use active TimeEntryActivities. * Changed TimelogHelper#activity_collection_for_select_options to return a blank option if the time_entry's current activity is inactive. #4077 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2946 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -25,11 +25,18 @@ module TimelogHelper
|
||||
links << link_to_issue(@issue) if @issue
|
||||
breadcrumb links
|
||||
end
|
||||
|
||||
def activity_collection_for_select_options
|
||||
activities = TimeEntryActivity.all
|
||||
|
||||
# Returns a collection of activities for a select field. time_entry
|
||||
# is optional and will be used to check if the selected TimeEntryActivity
|
||||
# is active.
|
||||
def activity_collection_for_select_options(time_entry=nil)
|
||||
activities = TimeEntryActivity.active
|
||||
collection = []
|
||||
collection << [ "--- #{l(:actionview_instancetag_blank_option)} ---", '' ] unless activities.detect(&:is_default)
|
||||
if time_entry && !time_entry.activity.active?
|
||||
collection << [ "--- #{l(:actionview_instancetag_blank_option)} ---", '' ]
|
||||
else
|
||||
collection << [ "--- #{l(:actionview_instancetag_blank_option)} ---", '' ] unless activities.detect(&:is_default)
|
||||
end
|
||||
activities.each { |a| collection << [a.name, a.id] }
|
||||
collection
|
||||
end
|
||||
|
||||
@@ -53,9 +53,17 @@ class Enumeration < ActiveRecord::Base
|
||||
find(:first, :conditions => { :is_default => true })
|
||||
end
|
||||
end
|
||||
# End backwards compatiblity named_scopes
|
||||
|
||||
named_scope :all, :order => 'position'
|
||||
|
||||
named_scope :active, lambda {
|
||||
{
|
||||
:conditions => {:active => true},
|
||||
:order => 'position'
|
||||
}
|
||||
}
|
||||
|
||||
def self.default
|
||||
# Creates a fake default scope so Enumeration.default will check
|
||||
# it's type. STI subclasses will automatically add their own
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
<p><label for="enumeration_name"><%=l(:field_name)%></label>
|
||||
<%= text_field 'enumeration', 'name' %></p>
|
||||
|
||||
<p><label for="enumeration_active"><%=l(:field_active)%></label>
|
||||
<%= check_box 'enumeration', 'active' %></p>
|
||||
|
||||
<p><label for="enumeration_is_default"><%=l(:field_is_default)%></label>
|
||||
<%= check_box 'enumeration', 'is_default' %></p>
|
||||
<!--[eoform:optvalue]-->
|
||||
@@ -13,4 +16,4 @@
|
||||
<% @enumeration.custom_field_values.each do |value| %>
|
||||
<p><%= custom_field_tag_with_label :enumeration, value %></p>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -6,10 +6,18 @@
|
||||
<% enumerations = klass.all %>
|
||||
<% if enumerations.any? %>
|
||||
<table class="list">
|
||||
<tr>
|
||||
<th><%= l(:field_name) %></th>
|
||||
<th style="width:15%;"><%= l(:field_is_default) %></th>
|
||||
<th style="width:15%;"><%= l(:field_active) %></th>
|
||||
<th style="width:15%;"></th>
|
||||
<th align="center" style="width:10%;"> </th>
|
||||
</tr>
|
||||
<% enumerations.each do |enumeration| %>
|
||||
<tr class="<%= cycle('odd', 'even') %>">
|
||||
<td><%= link_to h(enumeration), :action => 'edit', :id => enumeration %></td>
|
||||
<td style="width:15%;"><%= image_tag('true.png') if enumeration.is_default? %></td>
|
||||
<td style="width:15%;"><%= image_tag('true.png') if enumeration.active? %></td>
|
||||
<td style="width:15%;"><%= reorder_links('enumeration', {:action => 'update', :id => enumeration}) %></td>
|
||||
<td class="buttons">
|
||||
<%= link_to l(:button_delete), { :action => 'destroy', :id => enumeration },
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<p><%= f.text_field :spent_on, :size => 10, :required => true %><%= calendar_for('time_entry_spent_on') %></p>
|
||||
<p><%= f.text_field :hours, :size => 6, :required => true %></p>
|
||||
<p><%= f.text_field :comments, :size => 100 %></p>
|
||||
<p><%= f.select :activity_id, activity_collection_for_select_options, :required => true %></p>
|
||||
<p><%= f.select :activity_id, activity_collection_for_select_options(@time_entry), :required => true %></p>
|
||||
<% @time_entry.custom_field_values.each do |value| %>
|
||||
<p><%= custom_field_tag_with_label :time_entry, value %></p>
|
||||
<% end %>
|
||||
|
||||
Reference in New Issue
Block a user