form now shows error messages
Oleg
committed Feb 01, 2011
commit 60870cf1cb2fc3614b87d5ae75f2d96b419842e8
Showing 6
changed files with
101 additions
and 114 deletions
app/views/layouts/cms_admin.html.erb
+1
-1
| @@ | @@ -4,7 +4,7 @@ |
| <meta http-equiv="Content-type" content="text/html; charset=utf-8"> | |
| <title><%= ComfortableMexicanSofa.config.cms_title %></title> | |
| <%= csrf_meta_tag %> | |
| - | <%= stylesheet_link_tag :cms %> |
| + | <%= stylesheet_link_tag :cms, :cache => '_cms' %> |
| <%= javascript_include_tag :cms %> | |
| <%= yield :head %> | |
| <%= cms_hook :html_head %> | |
comfortable_mexican_sofa/form_builder.rb b/lib/comfortable_mexican_sofa/form_builder.rb
+7
-2
| @@ | @@ -16,13 +16,18 @@ class ComfortableMexicanSofa::FormBuilder < ActionView::Helpers::FormBuilder |
| end | |
| def default_field(type, field, options = {}, &block) | |
| + | errors = if object.errors[field].present? |
| + | "<div class='errors'>#{[object.errors[field]].flatten.first}</div>" |
| + | end |
| if desc = options.delete(:desc) | |
| desc = "<div class='desc'>#{desc}</div>" | |
| end | |
| %( | |
| - | <div class='form_element #{type}_element'> |
| + | <div class='form_element #{type}_element #{'errors' if errors}'> |
| <div class='label'>#{label_for(field, options)}</div> | |
| - | <div class='value'>#{yield}</div> #{desc} |
| + | <div class='value'>#{yield}</div> |
| + | #{desc} |
| + | #{errors} |
| </div> | |
| ).html_safe | |
| end | |
comfortable_mexican_sofa/view_methods.rb b/lib/comfortable_mexican_sofa/view_methods.rb
+2
-0
| @@ | @@ -54,5 +54,7 @@ ActionView::Helpers::AssetTagHelper.register_stylesheet_expansion :cms => [ |
| 'comfortable_mexican_sofa/reset', | |
| 'comfortable_mexican_sofa/structure', | |
| 'comfortable_mexican_sofa/typography', | |
| + | 'comfortable_mexican_sofa/form', |
| + | 'comfortable_mexican_sofa/content', |
| '/javascripts/comfortable_mexican_sofa/jquery-ui/jquery-ui' | |
| ] | |
| \ No newline at end of file | |
public/stylesheets/comfortable_mexican_sofa/content.css
+0
-0
public/stylesheets/comfortable_mexican_sofa/form.css
+90
-0
| @@ | @@ -0,0 +1,90 @@ |
| + | /* -- Forms -------------------------------------------------------------- */ |
| + | .form_element { |
| + | overflow: hidden; |
| + | margin-bottom: 5px; |
| + | } |
| + | .form_element .label { |
| + | width: 117px; |
| + | float: left; |
| + | text-align: right; |
| + | font: 13px/19px 'Lucida Grande', 'Tahoma', serif; |
| + | text-shadow: #fff 1px 1px; |
| + | padding: 0px 10px; |
| + | background-color: #f1f1f1; |
| + | border-top-left-radius: 3px; |
| + | border-bottom-left-radius: 3px ; |
| + | -moz-border-radius-topleft: 3px; |
| + | -moz-border-radius-bottomleft: 3px; |
| + | border-right: 3px solid #bbb; |
| + | } |
| + | .form_element .value { |
| + | margin-left: 150px; |
| + | } |
| + | .form_element .value input[type='text'], |
| + | .form_element .value input[type='password'], |
| + | .form_element .value select, |
| + | .form_element .value textarea { |
| + | border: 0px; |
| + | width: 100%; |
| + | padding: 2px 0px; |
| + | font-family: 'Courier New', Courier, monospace; |
| + | } |
| + | .form_element .value textarea { |
| + | height: 300px; |
| + | } |
| + | .form_element.submit_element { |
| + | margin-left: 150px; |
| + | } |
| + | .form_element.check_box_element input { |
| + | width: auto; |
| + | } |
| + | .page_form_extras { |
| + | margin-bottom: 25px; |
| + | } |
| + | .form_element.cms_tag_field_datetime .label, |
| + | .form_element.cms_tag_field_integer .label, |
| + | .form_element.cms_tag_field_string .label, |
| + | .form_element.cms_tag_field_text .label { |
| + | border-color: #48699C; |
| + | } |
| + | .form_element.cms_tag_page_datetime .label, |
| + | .form_element.cms_tag_page_integer .label, |
| + | .form_element.cms_tag_page_string .label, |
| + | .form_element.cms_tag_page_text .label, |
| + | .form_element.cms_tag_page_rich_text .label { |
| + | border-color: #3F7300; |
| + | } |
| + | .form_error { |
| + | background-color: #9e0b0f; |
| + | font-size: 14px; |
| + | color: #fff; |
| + | padding: 5px; |
| + | text-align: center; |
| + | margin-bottom: 10px; |
| + | } |
| + | .form_element.errors .label { |
| + | border-color: #9e0b0f; |
| + | } |
| + | .form_element.errors .errors { |
| + | margin: 2px 0px 0px 150px; |
| + | font-size: 11px; |
| + | color: #9e0b0f; |
| + | } |
| + | .form_element.form_save { |
| + | background-color: #E0E0E0; |
| + | border-radius: 3px; |
| + | -moz-border-radius: 3px; |
| + | padding: 5px 0px; |
| + | } |
| + | .form_element.form_save label { |
| + | margin: 0px 5px; |
| + | } |
| + | .form_element .desc { |
| + | margin: 2px 0px 0px 150px; |
| + | font-size: 11px; |
| + | color: #777; |
| + | background-color: #fff; |
| + | padding: 5px; |
| + | border-radius: 3px; |
| + | -moz-border-radius: 3px; |
| + | } |
| \ No newline at end of file | |
public/stylesheets/comfortable_mexican_sofa/structure.css
+1
-111
| @@ | @@ -142,121 +142,11 @@ html, body { |
| color: #1b1b1b; | |
| } | |
| - | /* -- Forms -------------------------------------------------------------- */ |
| - | .form_element { |
| - | overflow: hidden; |
| - | margin-bottom: 10px; |
| - | } |
| - | .form_element .label { |
| - | width: 137px; |
| - | float: left; |
| - | text-align: right; |
| - | font: 15px/21px 'Lucida Grande', 'Tahoma', serif; |
| - | text-shadow: #fff 1px 1px; |
| - | padding-right: 10px; |
| - | background-color: #e0e0e0; |
| - | border-top-left-radius: 3px; |
| - | border-bottom-left-radius: 3px ; |
| - | -moz-border-radius-topleft: 3px; |
| - | -moz-border-radius-bottomleft: 3px; |
| - | border-right: 3px solid #bbb; |
| - | } |
| - | .form_element .value { |
| - | margin-left: 160px; |
| - | } |
| - | .form_element .value input[type='text'], |
| - | .form_element .value input[type='password'], |
| - | .form_element .value textarea, |
| - | .form_element .value select { |
| - | width: 100%; |
| - | } |
| - | .form_element .value input[type='text'], |
| - | .form_element .value input[type='password'], |
| - | .form_element .value select, |
| - | .form_element .value textarea { |
| - | border: 0px; |
| - | border-top: 1px solid #ccc; |
| - | border-bottom: 1px solid #ccc; |
| - | padding: 2px 0px; |
| - | font-family: 'Courier New', Courier, monospace; |
| - | } |
| - | .form_element .value textarea { |
| - | height: 300px; |
| - | } |
| - | .form_element.submit_element { |
| - | margin-left: 160px; |
| - | } |
| - | .form_element.check_box_element input { |
| - | width: auto; |
| - | } |
| - | .page_form_extras { |
| - | margin-bottom: 25px; |
| - | } |
| - | .form_element.cms_tag_field_datetime .label, |
| - | .form_element.cms_tag_field_integer .label, |
| - | .form_element.cms_tag_field_string .label, |
| - | .form_element.cms_tag_field_text .label { |
| - | border-color: #48699C; |
| - | } |
| - | .form_element.cms_tag_page_datetime .label, |
| - | .form_element.cms_tag_page_integer .label, |
| - | .form_element.cms_tag_page_string .label, |
| - | .form_element.cms_tag_page_text .label, |
| - | .form_element.cms_tag_page_rich_text .label { |
| - | border-color: #3F7300; |
| - | } |
| - | .form_error { |
| - | background-color: #9e0b0f; |
| - | font-size: 14px; |
| - | color: #fff; |
| - | padding: 5px; |
| - | text-align: center; |
| - | margin-bottom: 10px; |
| - | } |
| - | .form_element .value .field_with_errors input, |
| - | .form_element .value .field_with_errors textarea { |
| - | border-color: #9e0b0f; |
| - | } |
| - | .form_element.form_save { |
| - | background-color: #E0E0E0; |
| - | border-radius: 3px; |
| - | -moz-border-radius: 3px; |
| - | padding: 5px 0px; |
| - | } |
| - | .form_element.form_save label { |
| - | margin: 0px 5px; |
| - | } |
| - | .form_element .desc { |
| - | margin: 3px 0px 0px 160px; |
| - | font-size: 11px; |
| - | color: #777; |
| - | } |
| - | .form_element .desc .desc_toggle { |
| - | float: right; |
| - | } |
| - | .form_element .desc .desc_toggle:hover { |
| - | text-decoration: underline; |
| - | cursor: pointer; |
| - | } |
| - | .form_element .desc .desc_content { |
| - | background-color: #fff; |
| - | padding: 5px; |
| - | border-radius: 3px; |
| - | -moz-border-radius: 3px; |
| - | } |
| - | .form_element .desc.with_toggle .desc_content { |
| - | display: none; |
| - | } |
| - | .form_element .desc.with_toggle .desc_content table td { |
| - | vertical-align: top; |
| - | padding: 5px; |
| - | } |
| - | |
| /* -- Listings ----------------------------------------------------------- */ | |
| ul.list li .item { | |
| overflow: hidden; | |
| padding: 5px; | |
| - | background-color: #ececec; |
| + | background-color: #f1f1f1; |
| border-radius: 3px; | |
| -moz-border-radius: 3px; | |
| margin-bottom: 5px; | |