*SVN* * Added FormHelper#form_for and FormHelper#fields_for that makes it easier to work with forms for single objects also if they don't reside in instance variables [DHH]. Examples: <% form_for :person => @person, :url => { :action => "update" } do |f| %> First name: <%= f.text_field :first_name %> Last name : <%= f.text_field :last_name %> Biography : <%= f.text_area :biography %> Admin? : <%= f.check_box :admin %> <% end %> <% form_for :person => person, :url => { :action => "update" } do |person_form| %> First name: <%= person_form.text_field :first_name %> Last name : <%= person_form.text_field :last_name %> <% fields_for :permission => person.permission do |permission_fields| %> Admin? : <%= permission_fields.check_box :admin %> <% end %> <% end %> * options_for_select allows any objects which respond_to? :first and :last rather than restricting to Array and Range. #2824 [Jacob Robbins , Jeremy Kemper] * The auto_link text helper accepts an optional block to format the link text for each url and email address. Example: auto_link(post.body) { |text| truncate(text, 10) } [Jeremy Kemper] * assert_tag uses exact matches for string conditions, instead of partial matches. Use regex to do partial matches. #2799 [Jamis Buck] * CGI::Session::ActiveRecordStore.data_column_name = 'foobar' to use a different session data column than the 'data' default. [nbpwie102@sneakemail.com] * Do not raise an exception when default helper is missing; log a debug message instead. It's nice to delete empty helpers. [Jeremy Kemper] * Controllers with acronyms in their names (e.g. PDFController) require the correct default helper (PDFHelper in file pdf_helper.rb). #2262 [jeff@opendbms.com] *1.11.0* (November 7th, 2005) * Added request as instance method to views, so you can do <%= request.env["HTTP_REFERER"] %>, just like you can already access response, session, and the likes [DHH] * Fix conflict with assert_tag and Glue gem #2255 [david.felstead@gmail.com] * Add documentation to assert_tag indicating that it only works with well-formed XHTML #1937, #2570 [Jamis Buck] * Added action_pack.rb stub so that ActionPack::Version loads properly [Sam Stephenson] * Added short-hand to assert_tag so assert_tag :tag => "span" can be written as assert_tag "span" [DHH] * Added skip_before_filter/skip_after_filter for easier control of the filter chain in inheritance hierachies [DHH]. Example: class ApplicationController < ActionController::Base before_filter :authenticate end class WeblogController < ApplicationController # will run the :authenticate filter end class SignupController < ActionController::Base # will not run the :authenticate filter skip_before_filter :authenticate end * Added redirect_to :back as a short-hand for redirect_to(request.env["HTTP_REFERER"]) [DHH] * Change javascript_include_tag :defaults to not use script.aculo.us loader, which facilitates the use of plugins for future script.aculo.us and third party javascript extensions, and provide register_javascript_include_default for plugins to specify additional JavaScript files to load. Removed slider.js and builder.js from actionpack. [Thomas Fuchs] * Fix problem where redirecting components can cause an infinite loop [Rick Olson] * Added support for the queue option on visual_effect [Thomas Fuchs] * Update script.aculo.us to V1.5_rc4 [Thomas Fuchs] * Fix that render :text didn't interpolate instance variables #2629, #2626 [skaes] * Fix line number detection and escape RAILS_ROOT in backtrace Regexp [Nicholas Seckar] * Fixed document.getElementsByClassName from Prototype to be speedy again [Sam Stephenson] * Recognize ./#{RAILS_ROOT} as RAILS_ROOT in error traces [Nicholas Seckar] * Remove ARStore session fingerprinting [Nicholas Seckar] * Fix obscure bug in ARStore [Nicholas Seckar] * Added TextHelper#strip_tags for removing HTML tags from a string (using HTMLTokenizer) #2229 [marcin@junkheap.net] * Added a reader for flash.now, so it's possible to do stuff like flash.now[:alert] ||= 'New if not set' #2422 [Caio Chassot] *1.10.2* (October 26th, 2005) * Reset template variables after using render_to_string [skaes@web.de] * Expose the session model backing CGI::Session * Abbreviate RAILS_ROOT in traces *1.10.1* (October 19th, 2005) * Update error trace templates [Nicholas Seckar] * Stop showing generated routing code in application traces [Nicholas Seckar] *1.10.0* (October 16th, 2005) * Make string-keys locals assigns optional. Add documentation describing depreciated state [skaes@web.de] * Improve line number detection for template errors [Nicholas Seckar] * Update/clean up documentation (rdoc) * Upgrade to Prototype 1.4.0_rc0 [Sam Stephenson] * Added assert_vaild. Reports the proper AR error messages as fail message when the passed record is invalid [Tobias Luetke] * Add temporary support for passing locals to render using string keys [Nicholas Seckar] * Clean up error pages by providing better backtraces [Nicholas Seckar] * Raise an exception if an attempt is made to insert more session data into the ActiveRecordStore data column than the column can hold. #2234. [justin@textdrive.com] * Removed references to assertions.rb from actionpack assert's backtraces. Makes error reports in functional unit tests much less noisy. [Tobias Luetke] * Updated and clarified documentation for JavaScriptHelper to be more concise about the various options for including the JavaScript libs. [Thomas Fuchs] * Hide "Retry with Breakpoint" button on error pages until feature is functional. [DHH] * Fix Request#host_with_port to use the standard port when Rails is behind a proxy. [Nicholas Seckar] * Escape query strings in the href attribute of URLs created by url_helper. #2333 [Michael Schuerig ] * Improved line number reporting for template errors [Nicholas Seckar] * Added :locals support for render :inline #2463 [mdabney@cavoksolutions.com] * Unset the X-Requested-With header when using the xhr wrapper in functional tests so that future requests aren't accidentally xhr'ed #2352 [me@julik.nl, Sam Stephenson] * Unescape paths before writing cache to file system. #1877. [Damien Pollet] * Wrap javascript_tag contents in a CDATA section and add a cdata_section method to TagHelper #1691 [Michael Schuerig, Sam Stephenson] * Misc doc fixes (typos/grammar/etc). #2445. [coffee2code] * Speed improvement for session_options. #2287. [skaes@web.de] * Make cacheing binary files friendly with Windows. #1975. [Rich Olson] * Convert boolean form options form the tag_helper. #809. [Michael Schuerig ] * Fixed that an instance variable with the same name as a partial should be implicitly passed as the partial :object #2269 [court3nay] * Update Prototype to V1.4.0_pre11, script.aculo.us to [2502] [Thomas Fuchs] * Make assert_tag :children count appropriately. Closes #2181. [jamie@bravenet.com] * Forced newer versions of RedCloth to use hard breaks [DHH] * Added new scriptaculous options for auto_complete_field #2343 [m.stienstra@fngtps.com] * Don't prepend the asset host if the string is already a fully-qualified URL * Updated to script.aculo.us V1.5.0_rc2 and Prototype to V1.4.0_pre7 [Thomas Fuchs] * Undo condition change made in [2345] to prevent normal parameters arriving as StringIO. * Tolerate consecutive delimiters in query parameters. #2295 [darashi@gmail.com] * Streamline render process, code cleaning. Closes #2294. [skae] * Keep flash after components are rendered. #2291 [Rick Olson, Scott] * Shorten IE file upload path to filename only to match other browsers. #1507 [court3nay@gmail.com] * Fix open/save dialog in IE not opening files send with send_file/send_data, #2279 [Thomas Fuchs] * Fixed that auto_discovery_link_tag couldn't take a string as the URL [DHH] * Fixed problem with send_file and WEBrick using stdout #1812 [DHH] * Optimized tag_options to not sort keys, which is no longer necessary when assert_dom_equal and friend is available #1995 [skae] * Added assert_dom_equal and assert_dom_not_equal to compare tags generated by the helpers in an order-indifferent manner #1995 [skae] * Fixed that Request#domain caused an exception if the domain header wasn't set in the original http request #1795 [Michael Koziarski] * Make the truncate() helper multi-byte safe (assuming $KCODE has been set to something other than "NONE") #2103 * Add routing tests from #1945 [ben@groovie.org] * Add a routing test case covering #2101 [Nicholas Seckar] * Cache relative_url_root for all webservers, not just Apache #2193 [skae] * Speed up cookie use by decreasing string copying #2194 [skae] * Fixed access to "Host" header with requests made by crappy old HTTP/1.0 clients #2124 [Marcel Molina] * Added easy assignment of fragment cache store through use of symbols for included stores (old way still works too) Before: ActionController::Base.fragment_cache_store = ActionController::Base::Caching::Fragments::FileStore.new("/path/to/cache/directory") After: ActionController::Base.fragment_cache_store = :file_store, "/path/to/cache/directory" * Added ActionController::Base.session_store=, session_store, and session_options to make it easier to tweak the session options (instead of going straight to ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS) * Added TextHelper#cycle to cycle over an array of values on each hit (useful for alternating row colors etc) #2154 [dave-ml@dribin.org] * Ensure that request.path never returns nil. Closes #1675 [Nicholas Seckar] * Add ability to specify Route Regexps for controllers. Closes #1917. [Sebastian Kanthak] * Provide Named Route's hash methods as helper methods. Closes #1744. [Nicholas Seckar, Steve Purcell] * Added :multipart option to ActiveRecordHelper#form to make it possible to add file input fields #2034 [jstirk@oobleyboo.com] * Moved auto-completion and in-place editing into the Macros module and their helper counterparts into JavaScriptMacrosHelper * Added in-place editing support in the spirit of auto complete with ActionController::Base.in_place_edit_for, JavascriptHelper#in_place_editor_field, and Javascript support from script.aculo.us #2038 [Jon Tirsen] * Added :disabled option to all data selects that'll make the elements inaccessible for change #2167, #253 [eigentone] * Fixed that TextHelper#auto_link_urls would include punctuation in the links #2166, #1671 [eigentone] * Fixed that number_to_currency(1000, {:precision => 0})) should return "$1,000", instead of "$1,000." #2122 [sd@notso.net] * Allow link_to_remote to use any DOM-element as the parent of the form elements to be submitted #2137 [erik@ruby-lang.nl]. Example: <%= link_to_remote 'Save', :update => "row023", :submit => "row023", :url => {:action => 'save_row'} %> * Fixed that render :partial would fail when :object was a Hash (due to backwards compatibility issues) #2148 [Sam Stephenson] * Fixed JavascriptHelper#auto_complete_for to only include unique items #2153 [Thomas Fuchs] * Fixed all AssetHelper methods to work with relative paths, such that javascript_include_tag('stdlib/standard') will look in /javascripts/stdlib/standard instead of '/stdlib/standard/' #1963 * Avoid extending view instance with helper modules each request. Closes #1979 * Performance improvements to CGI methods. Closes #1980 [Skaes] * Added :post option to UrlHelper#link_to that makes it possible to do POST requests through normal ahref links using Javascript * Fixed overwrite_params * Added ActionController::Base.benchmark and ActionController::Base.silence to allow for easy benchmarking and turning off the log * Updated vendor copy of html-scanner to support better xml parsing * Added :popup option to UrlHelper#link_to #1996 [gabriel.gironda@gmail.com]. Examples: link_to "Help", { :action => "help" }, :popup => true link_to "Busy loop", { :action => "busy" }, :popup => ['new_window', 'height=300,width=600'] * Drop trailing \000 if present on RAW_POST_DATA (works around bug in Safari Ajax implementation) #918 * Fix observe_field to fall back to event-based observation if frequency <= 0 #1916 [michael@schubert.cx] * Allow use of the :with option for submit_to_remote #1936 [jon@instance-design.co.uk] * AbstractRequest#domain returns nil when host is an ip address #2012 [kevin.clark@gmail.com] * ActionController documentation update #2051 [fbeausoleil@ftml.net] * Yield @content_for_ variables to templates #2058 [Sam Stephenson] * Make rendering an empty partial collection behave like :nothing => true #2080 [Sam Stephenson] * Add option to specify the singular name used by pagination. * Use string key to obtain action value. Allows indifferent hashes to be disabled. * Added ActionView::Base.cache_template_loading back. * Rewrote compiled templates to decrease code complexity. Removed template load caching in favour of compiled caching. Fixed template error messages. [Nicholas Seckar] * Fix Routing to handle :some_param => nil better. [Nicholas Seckar, Luminas] * Add support for :include with pagination (subject to existing constraints for :include with :limit and :offset) #1478 [michael@schubert.cx] * Prevent the benchmark module from blowing up if a non-HTTP/1.1 request is processed * Added :use_short_month option to select_month helper to show month names as abbreviations * Make link_to escape the javascript in the confirm option #1964 [nicolas.pouillard@gmail.com] * Make assert_redirected_to properly check URL's passed as strings #1910 [Scott Barron] * Make sure :layout => false is always used when rendering inside a layout * Use raise instead of assert_not_nil in Test::Unit::TestCase#process to ensure that the test variables (controller, request, response) have been set * Make sure assigns are built for every request when testing #1866 * Allow remote_addr to be queried on TestRequest #1668 * Fixed bug when a partial render was passing a local with the same name as the partial * Improved performance of test app req/sec with ~10% refactoring the render method #1823 [Stefan Kaes] * Improved performance of test app req/sec with 5-30% through a series of Action Pack optimizations #1811 [Stefan Kaes] * Changed caching/expiration/hit to report using the DEBUG log level and errors to use the ERROR log level instead of both using INFO * Added support for per-action session management #1763 * Improved rendering speed on complicated templates by up to 100% (the more complex the templates, the higher the speedup) #1234 [Stephan Kaes]. This did necessasitate a change to the internals of ActionView#render_template that now has four parameters. Developers of custom view handlers (like Amrita) need to update for that. * Added options hash as third argument to FormHelper#input, so you can do input('person', 'zip', :size=>10) #1719 [jeremye@bsa.ca.gov] * Added Base#expires_in(seconds)/Base#expires_now to control HTTP content cache headers #1755 [Thomas Fuchs] * Fixed line number reporting for Builder template errors #1753 [piotr] * Fixed assert_routing so that testing controllers in modules works as expected [Nicholas Seckar, Rick Olson] * Fixed bug with :success/:failure callbacks for the JavaScriptHelper methods #1730 [court3nay/Thomas Fuchs] * Added named_route method to RouteSet instances so that RouteSet instance methods do not prevent certain names from being used. [Nicholas Seckar] * Fixed routes so that routes which do not specify :action in the path or in the requirements have a default of :action => 'index', In addition, fixed url generation so that :action => 'index' does not need to be provided for such urls. [Nicholas Seckar, Markjuh] * Worked around a Safari bug where it wouldn't pass headers through if the response was zero length by having render :nothing return ' ' instead of '' * Fixed Request#subdomains to handle "foo.foo.com" correctly *1.9.1* (11 July, 2005) * Fixed that auto_complete_for didn't force the input string to lower case even as the db comparison was * Fixed that Action View should always use the included Builder, never attempt to require the gem, to ensure compatibility * Added that nil options are not included in tags, so tag("p", :ignore => nil) now returns

not

but that tag("p", :ignore => "") still includes it #1465 [michael@schuerig.de] * Fixed that UrlHelper#link_to_unless/link_to_if used html_escape on the name if no link was to be applied. This is unnecessary and breaks its use with images #1649 [joergd@pobox.com] * Improved error message for DoubleRenderError * Fixed routing to allow for testing of *path components #1650 [Nicholas Seckar] * Added :handle as an option to sortable_element to restrict the drag handle to a given class #1642 [thejohnny] * Added a bunch of script.aculo.us features #1644, #1677, #1695 [Thomas Fuchs] * Effect.ScrollTo, to smoothly scroll the page to an element * Better Firefox flickering handling on SlideUp/SlideDown * Removed a possible memory leak in IE with draggables * Added support for cancelling dragging my hitting ESC * Added capability to remove draggables/droppables and redeclare sortables in dragdrop.js (this makes it possible to call sortable_element on the same element more than once, e.g. in AJAX returns that modify the sortable element. all current sortable 'stuff' on the element will be discarded and the sortable will be rebuilt) * Always reset background color on Effect.Highlight; this make change backwards-compatibility, to be sure include style="background-color:(target-color)" on your elements or else elements will fall back to their CSS rules (which is a good thing in most circumstances) * Removed circular references from element to prevent memory leaks (still not completely gone in IE) * Changes to class extension in effects.js * Make Effect.Highlight restore any previously set background color when finishing (makes effect work with CSS classes that set a background color) * Fixed myriads of memory leaks in IE and Gecko-based browsers [David Zülke] * Added incremental and local autocompleting and loads of documentation to controls.js [Ivan Krstic] * Extended the auto_complete_field helper to accept tokens option * Changed object extension mechanism to favor Object.extend to make script.aculo.us easily adaptable to support 3rd party libs like IE7.js [David Zülke] * Fixed that named routes didn't use the default values for action and possible other parameters #1534 [Nicholas Seckar] * Fixed JavascriptHelper#visual_effect to use camelize such that :blind_up will work #1639 [pelletierm@eastmedia.net] * Fixed that a SessionRestoreError was thrown if a model object was placed in the session that wasn't available to all controllers. This means that it's no longer necessary to use the 'model :post' work-around in ApplicationController to have a Post model in your session. *1.9.0* (6 July, 2005) * Added logging of the request URI in the benchmark statement (makes it easy to grep for slow actions) * Added javascript_include_tag :defaults shortcut that'll include all the default javascripts included with Action Pack (prototype, effects, controls, dragdrop) * Cache several controller variables that are expensive to calculate #1229 [skaes@web.de] * The session class backing CGI::Session::ActiveRecordStore may be replaced with any class that duck-types with a subset of Active Record. See docs for details #1238 [skaes@web.de] * Fixed that hashes was not working properly when passed by GET to lighttpd #849 [Nicholas Seckar] * Fixed assert_template nil will be true when no template was rendered #1565 [maceywj@telus.net] * Added :prompt option to FormOptions#select (and the users of it, like FormOptions#select_country etc) to create "Please select" style descriptors #1181 [Michael Schuerig] * Added JavascriptHelper#update_element_function, which returns a Javascript function (or expression) that'll update a DOM element according to the options passed #933 [mortonda@dgrmm.net]. Examples: <%= update_element_function("products", :action => :insert, :position => :bottom, :content => "

New product!

") %> <% update_element_function("products", :action => :replace, :binding => binding) do %>

Product 1

Product 2

<% end %> * Added :field_name option to DateHelper#select_(year|month|day) to deviate from the year/month/day defaults #1266 [Marcel Molina] * Added JavascriptHelper#draggable_element and JavascriptHelper#drop_receiving_element to facilitate easy dragging and dropping through the script.aculo.us libraries #1578 [Thomas Fuchs] * Added that UrlHelper#mail_to will now also encode the default link title #749 [f.svehla@gmail.com] * Removed the default option of wrap=virtual on FormHelper#text_area to ensure XHTML compatibility #1300 [thomas@columbus.rr.com] * Adds the ability to include XML CDATA tags using Builder #1563 [Josh Knowles]. Example: xml.cdata! "some text" # => * Added evaluation of