julik live

Scalable text area

Маленькое полезное - штука, которую я впервые увидел в TaskPro. Делает рядом с textarea две кнопки, которые позволяют делать ее больше или меньше. В качестве бонуса можете попробовать добавить динамический расчет размеров textarea в зависимости от уже вбитого в обьект количества символов.

Применяю во всех последних проектах/прожектах.

# Works just as the normal +text_area+ but also includes the buttons to extend or minimize the textarea to accomodate more text.
# Especially handy for long pieces of text
def scalable_text_area(*opts)
  unless opts.last.is_a?(Hash)
    opts[-1] = {} 
  end

  opts.last[:rows] = 10 unless opts.last[:rows];
  ident = "#{opts[0]}_#{opts[1]}"
  o = ''
  o << content_tag(:a, '[Smaller]', :href => '#', 
    :class => 'smallctr',
    :onclick => "if($('#{ident}').rows > 3 ) $('#{ident}').rows -= 2; return false;")

  o << content_tag(:a, '[Bigger]', :href => '#', 
    :class => 'smallctr',
    :onclick => "$('#{ident}').rows += 2; return false;")
  o << "<br />"
  # forward
  o + text_area(*opts)
end

class ActionView::Helpers::FormBuilder

  def scalable_text_area(method, options = {})
    @template.send(:scalable_text_area, @object_name, method, options.merge(:object => @object))
  end
end

Scalable text area

Suspects: Веб-стройка

 
comments powered by Disqus

Aspirine not included.