Class: AlTimestamp

Inherits:
AlWidget show all
Defined in:
lib/al_form.rb,
lib/al_form/extend.rb

Overview

Note:

年月日と時分秒を扱う 内部的にはTimeオブジェクトで保存する。

タイムスタンプウィジェット

Direct Known Subclasses

AlDate, AlTime

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Methods inherited from AlWidget

#set_attr, #set_value

Constructor Details

- (AlTimestamp) initialize(name, arg = {})

(AlTimestamp) constractor

Parameters:

  • (String) name

    ウィジェット識別名 英文字を推奨

  • (Hash) arg (defaults to: {})

    引数ハッシュ

Options Hash (arg):

  • (Integer) :max N/A

    最大値

  • (Integer) :min N/A

    最小値

See Also:



1368
1369
1370
1371
1372
1373
1374
1375
# File 'lib/al_form.rb', line 1368

def initialize( name, arg = {} )
  require 'al_form/extend'

  super( name, arg )
  @filter = arg[:filter] || 'value.strip'
  @max = arg[:max]
  @min = arg[:min]
end

Instance Attribute Details

- (Integer) max

最大値

Returns:

  • (Integer)

    最大値



157
158
159
# File 'lib/al_form/extend.rb', line 157

def max
  @max
end

- (Integer) min

最小値

Returns:

  • (Integer)

    最小値



160
161
162
# File 'lib/al_form/extend.rb', line 160

def min
  @min
end

Instance Method Details

- (String) make_tag(arg = {})

(AlTimestamp) HTMLタグの生成

Parameters:

  • (Hash) arg (defaults to: {})

    htmlタグへ追加するアトリビュートを指定

Returns:

  • (String)

    htmlタグ



207
208
209
210
211
212
213
214
215
216
217
# File 'lib/al_form/extend.rb', line 207

def make_tag( arg = {} )
  if @hidden
    return %Q(<input type="hidden" name="#{@name}" value="#{make_value()}" #{AL_FORM_EMPTYTAG_CLOSE}\n)
  end

  r = %Q(<input type="text" name="#{@name}" value="#{make_value()}")
  (@tag_attr.merge arg).each do |k,v|
    r << %Q( #{k}="#{Alone::escape_html(v)}")
  end
  return "#{r} #{AL_FORM_EMPTYTAG_CLOSE}"
end

- (String) make_value(*arg)

(AlTimestamp) HTML値の生成

Parameters:

  • (String, Time) arg

    表示値。指定なければ内部値を使う。

Returns:

  • (String)

    html文字列



226
227
228
229
230
231
232
233
# File 'lib/al_form/extend.rb', line 226

def make_value( *arg )
  v = arg.empty? ? @value: arg[0]
  if v.class == Time
    return Alone::escape_html( v.strftime('%Y-%m-%d %H:%M:%S') )
  else
    return Alone::escape_html( v )
  end
end

- (Boolean) validate

(AlTimestamp) バリデート

Returns:

  • (Boolean)

    成否



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/al_form/extend.rb', line 168

def validate()
  require 'time'
  @message = ""

  if @value == "" || @value == nil
    if @required
      @message = "#{@label}を入力してください。"
      return false
    end
    @value = nil
    return true
  end

  begin
    @value = Time.parse( @value )
  rescue
    @message = "#{@label}を正しく入力してください。"
    return false
  end

  if @max && @value > @max
    @message = "#{@label}は、最大#{@max.strftime('%Y-%m-%d %H:%M:%S')}までで入力してください。"
    return false
  end
  if @min && @value < @min
    @message = "#{@label}は、最小#{@min.strftime('%Y-%m-%d %H:%M:%S')}までで入力してください。"
    return false
  end

  return true
end