This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
form
polymorhic: <form for=“[ModelName]”>
table{border:1px solid black}.
|.Attribute|.Description|.Default Value|_.Example|
|update| | | |
|hidden-fields| | | |
|action| |objecturl(target, action, :method => method)| |
|method| |(action or webmethod or newrecord) ? “post” : “put”| |
|web-method| | | |
|lifecycle| | | |
|owner| | | |
| Parameter | Tag | Description | Default Content |
|---|---|---|---|
| default | <form> | edit form | <field-list> <actions> |
| field-list | <field-list> | ||
| actions | <div> | submit and cancel |
Here is what an autogenerated tag looks like
<def tag="form" for="Project"> <form merge param="default"> <error-messages/> <field-list fields="name, proposed_update" param/> <div param="actions"> <submit label="Save" param/><or-cancel param="cancel"/>
This inherits (right word?) from base polymorphic form tag defined in rapid_forms.dryml
<def tag="form" polymorphic attrs="update, hidden-fields, action, method, web-method, lifecycle, owner"><%= ajax_attrs, html_attrs = attributes.partition_hash(Hobo::RapidHelper::AJAX_ATTRS) new_record = this.try.new_record? method = if method.nil? (action || web_method || new_record) ? “post” : “put” else method.downcase end html_attrs[:action] = action || begin target = if owner collection_name = this.class.reverse_reflection(owner).name this.send(owner).send(collection_name) else this end action = web_method || lifecycle object_url(target, action, :method => method) end if action.nil? && (html_attrs[:action].nil? || (lifecycle.nil? && new_record && !this.user_can_create?(current_user)) || (lifecycle.nil? && !new_record && !can_edit?)) Hobo::Dryml.last_if = false "" else if method == “put”if update || !ajax_attrs.empty?
- browsers don’t support put — use post and add the Rails method hack
http_method_hidden = hidden_field_tag(“_method”, “PUT”)
html_attrs[:method] = “post”
else
htmlattrs[:method] = method
endbody, field_names = scope.new_scope :in_form => true do with_form_context { parameters.default } end hiddens = hidden_fields(:fields => hidden_fields, :skip => field_names) if new_record auth_token = if method.nil? || method == ‘get’ || request_forgery_protection_token.nil? ’’ else element(:input, {:type => “hidden”, :name => request_forgery_protection_token.to_s, :value => form_authenticity_token}, nil, true, true) end page_path = if request.post? || request.put? && params[:page_path] params[:page_path] else view_name.sub(Hobo::Dryml::EMPTY_PAGE, params[:action]) end page_path_hidden = hidden_field_tag(“page_path”, page_path) unless method == “get” hiddens_div = element(:div, {:class => “hidden-fields”}, [http_method_hidden, page_path_hidden, auth_token, hiddens].join) body = [hiddens_div, body].join if action.nil? # don’t add automatic css classes if the action was specified if web_method add_classes!(html_attrs, “#{type_id}-#{web_method}-form”) else add_classes!(html_attrs, “#{’new-’ if new_record}#{type_id}”) end end Hobo::Dryml.last_if = true element(“form”, html_attrs, body) end
- add an onsubmit to convert to an ajax form if `update` is given
function = ajax_updater(:post_form, update, ajax_attrs)
html_attrs[:onsubmit] = [html_attrs[:onsubmit], “#{function}; return false;”].compact.join("; ")
end%>







