Sha256: c0c3d4e6e140cfbe32d68a892835e901d6308ca6f1f329f44f28c7b5036357f3

Contents?: true

Size: 1.49 KB

Versions: 13

Compression:

Stored size: 1.49 KB

Contents

module Spider; module Forms
    
    class DateTime < Input
        tag 'datetime'
        is_attr_accessor :size, :type => Fixnum, :default => nil
        is_attr_accessor :mode, :type => Symbol, :default => :date
        i_attr_accessor :format, :type => String
        i_attr_accessor :lformat, :type => Symbol, :default => :short
        
        def prepare_value(val)
            return val if val.respond_to?(:strftime)
            return nil unless val.is_a?(String) && !val.empty?
            klass = @mode == :date ? ::Date : ::DateTime
            begin
                return klass.lparse(val, :short)
            rescue => exc
                add_error(_("%s is not a valid date") % val)
            end
        end
        
        def prepare
            unless @size
                @size = case @mode
                when :date then 10
                when :date_time then 15
                when :time then 8
                end
            end
            super
        end
        
        def format_value
            return '' unless @value
            if (@lformat && @value.respond_to?(:lformat))
                return @value.lformat(@lformat)
            elsif @format && @value.respond_to?(:strftime)
                return @value.strftime(@format)
            else
                return @value
            end
            return @value unless @value.respond_to?(:strftime)
            return @value.strftime("%d/%m/%Y %H:%M") if @value
            return ''
        end

    end
    
end; end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
spiderfw-0.5.13 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.12 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.11 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.10 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.9 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.7 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.6 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.5 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.4 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.3 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.2 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5.1 apps/core/forms/widgets/inputs/date_time/date_time.rb
spiderfw-0.5 apps/core/forms/widgets/inputs/date_time/date_time.rb