adding form field descriptions
Oleg
committed Jan 14, 2011
commit d4d41b05f21092330c92a5b14d50c64dee135eca
Showing 10
changed files with
87 additions
and 11 deletions
app/views/cms_admin/common/desc/_layout_content.html.erb
+25
-0
| @@ | @@ -0,0 +1,25 @@ |
| + | <table> |
| + | <tr> |
| + | <td> |
| + | <strong>Renderable Page Elements:</strong> |
| + | <br/>{{ cms:page:<em>some_label</em>:text }} |
| + | <br/>{{ cms:page:<em>some_label</em>:rich_text }} |
| + | <br/>{{ cms:page:<em>some_label</em>:string }} |
| + | <br/>{{ cms:page:<em>some_label</em>:datetime }} |
| + | <br/>{{ cms:page:<em>some_label</em>:integer }} |
| + | </td> |
| + | <td> |
| + | <strong>Internal Field Elements:</strong> |
| + | <br/>{{ cms:field:<em>some_label</em>:text }} |
| + | <br/>{{ cms:field:<em>some_label</em>:string }} |
| + | <br/>{{ cms:field:<em>some_label</em>:datetime }} |
| + | <br/>{{ cms:field:<em>some_label</em>:integer }} |
| + | </td> |
| + | <td> |
| + | <strong>Snippets, Helpers and Partials:</strong> |
| + | <br/>{{ cms:snippet:<em>slug</em> }} |
| + | <br/>{{ cms:helper:<em>method_name</em> }} |
| + | <br/>{{ cms:partial:<em>path/to/partial</em> }} |
| + | </td> |
| + | </tr> |
| + | </table> |
| \ No newline at end of file | |
app/views/cms_admin/common/desc/_layout_css.html.erb
+1
-0
| @@ | @@ -0,0 +1 @@ |
| + | CSS is be available at <%= auto_link cms_css_url((@cms_layout.slug || 'layout-slug'), :format => 'css'), :html => { :target => '_blank' } %> |
| \ No newline at end of file | |
app/views/cms_admin/common/desc/_layout_js.html.erb
+1
-0
| @@ | @@ -0,0 +1 @@ |
| + | JS is be available at <%= auto_link cms_js_url((@cms_layout.slug || 'layout-slug'), :format => 'css'), :html => { :target => '_blank' } %> |
| \ No newline at end of file | |
app/views/cms_admin/layouts/_form.html.erb
+4
-3
| @@ | @@ -10,6 +10,7 @@ |
| <% if (options = CmsLayout.app_layouts_for_select).present? %> | |
| <%= form.select :app_layout, [['---- Select Application Layout ----', nil]] + options %> | |
| <% end %> | |
| - | <%= form.text_area :content %> |
| - | <%= form.text_area :css %> |
| - | <%= form.text_area :js %> |
| + | |
| + | <%= form.text_area :content, :desc => render(:partial => '/cms_admin/common/desc/layout_content'), :desc_toggle => '[ help ]' %> |
| + | <%= form.text_area :css, :desc => render(:partial => '/cms_admin/common/desc/layout_css'), :desc_toggle => '[ help ]' %> |
| + | <%= form.text_area :js, :desc => render(:partial => '/cms_admin/common/desc/layout_js'), :desc_toggle => '[ help ]' %> |
config/routes.rb
+2
-2
| @@ | @@ -14,8 +14,8 @@ Rails.application.routes.draw do |
| end | |
| scope :controller => :cms_content do | |
| - | get '/cms-css/:id' => :render_css, :as => 'cms_css', :format => 'css' |
| - | get '/cms-js/:id' => :render_js, :as => 'cms_js', :format => 'js' |
| + | get '/cms-css/:id' => :render_css, :as => 'cms_css' |
| + | get '/cms-js/:id' => :render_js, :as => 'cms_js' |
| get '/' => :render_html, :as => 'cms_html', :path => '(*cms_path)' | |
| end | |
comfortable_mexican_sofa/form_builder.rb b/lib/comfortable_mexican_sofa/form_builder.rb
+10
-1
| @@ | @@ -16,10 +16,19 @@ class ComfortableMexicanSofa::FormBuilder < ActionView::Helpers::FormBuilder |
| end | |
| def default_field(type, field, options = {}, &block) | |
| + | if desc = options.delete(:desc) |
| + | desc_toggle = options.delete(:desc_toggle) |
| + | desc_toggle = "<div class='desc_toggle'>#{desc_toggle}</div>" if desc_toggle |
| + | desc = %( |
| + | <div class='desc #{desc_toggle ? 'with_toggle' : nil}'> |
| + | #{desc_toggle} <div class='desc_content'>#{desc}</div> |
| + | </div> |
| + | ) |
| + | end |
| %( | |
| <div class='form_element #{type}_element'> | |
| <div class='label'>#{label_for(field, options)}</div> | |
| - | <div class='value'>#{yield}</div> |
| + | <div class='value'>#{yield}</div> #{desc} |
| </div> | |
| ).html_safe | |
| end | |
comfortable_mexican_sofa/view_methods.rb b/lib/comfortable_mexican_sofa/view_methods.rb
+0
-1
| @@ | @@ -36,7 +36,6 @@ module ComfortableMexicanSofa::ViewMethods |
| return '' unless block = page.cms_blocks.find_by_label(block_label) | |
| block.content.to_s.html_safe | |
| end | |
| - | |
| end | |
| ActionView::Base.send :include, ComfortableMexicanSofa::ViewMethods | |
public/javascripts/comfortable_mexican_sofa/cms.js
+8
-0
| @@ | @@ -9,6 +9,7 @@ $.CMS = function(){ |
| $.CMS.load_page_blocks(); | |
| $.CMS.enable_rich_text(); | |
| $.CMS.enable_date_picker(); | |
| + | $.CMS.enable_desc_toggle(); |
| if($('form.new_cms_page, form.edit_cms_page').get(0)) $.CMS.enable_page_save_form(); | |
| if($('#page_save').get(0)) $.CMS.enable_page_save_widget(); | |
| if($('#uploader_button').get(0)) $.CMS.enable_uploader(); | |
| @@ | @@ -70,6 +71,13 @@ $.CMS = function(){ |
| $('input[type=datetime]').datepicker(); | |
| }, | |
| + | enable_desc_toggle: function(){ |
| + | $('.form_element .desc .desc_toggle').click(function(){ |
| + | $(this).toggle(); |
| + | $(this).siblings('.desc_content').toggle(); |
| + | }) |
| + | }, |
| + | |
| tree_methods: function(){ | |
| $('a.tree_toggle').bind('click.cms', function() { | |
| $(this).siblings('ul').toggle(); | |
public/stylesheets/comfortable_mexican_sofa/structure.css
+30
-4
| @@ | @@ -164,14 +164,16 @@ html, body { |
| .form_element .value input[type='password'], | |
| .form_element .value textarea, | |
| .form_element .value select { | |
| - | width: 98%; |
| + | width: 100%; |
| } | |
| .form_element .value input[type='text'], | |
| .form_element .value input[type='password'], | |
| .form_element .value select, | |
| .form_element .value textarea { | |
| - | border: 1px solid #ccc; |
| - | padding: 2px; |
| + | 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 { | |
| @@ | @@ -220,7 +222,31 @@ html, body { |
| .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; | |
public/stylesheets/comfortable_mexican_sofa/typography.css
+6
-0
| @@ | @@ -16,4 +16,10 @@ a { |
| } | |
| a:hover { | |
| color: #1C2733; | |
| + | } |
| + | strong { |
| + | font-weight: bold; |
| + | } |
| + | em { |
| + | font-style: italic; |
| } | |
| \ No newline at end of file | |