Skip to content
This repository has been archived by the owner on Jun 24, 2022. It is now read-only.

Commit

Permalink
Add basic Twitter Bootstrap support
Browse files Browse the repository at this point in the history
This support isn't extensive, but it adds bootstrap classes to
tables and buttons that make scaffolding_extensions look less
ugly.
  • Loading branch information
jeremyevans committed Apr 5, 2012
1 parent 3956cdd commit ad12445
Show file tree
Hide file tree
Showing 11 changed files with 657 additions and 19 deletions.
8 changes: 4 additions & 4 deletions lib/scaffolding_extensions/helper.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -50,13 +50,13 @@ def scaffold_association_links
# Simple button with label text that submits a form to the given url, options are # Simple button with label text that submits a form to the given url, options are
# passed to scaffold_form. # passed to scaffold_form.
def scaffold_button_to(text, url, options={}) def scaffold_button_to(text, url, options={})
"#{scaffold_form(url, options)}\n<input type='submit' value='#{text}' />\n</form>" "#{scaffold_form(url, options)}\n<input class=\"btn #{options[:class]}\" type='submit' value='#{text}' />\n</form>"
end end


# Simple button with label text that submits a form via Ajax to the given action, # Simple button with label text that submits a form via Ajax to the given action,
# options are passed to scaffold_form_remote_tag. # options are passed to scaffold_form_remote_tag.
def scaffold_button_to_remote(text, action, options) def scaffold_button_to_remote(text, action, options)
"#{scaffold_form_remote_tag(action, options)}\n<input type='submit' value=#{text} />\n</form>" "#{scaffold_form_remote_tag(action, options)}\n<input class=\"btn btn-primary\" type='submit' value=#{text} />\n</form>"
end end


# If scaffolding didn't create the action, return the empty string if blank is true # If scaffolding didn't create the action, return the empty string if blank is true
Expand Down Expand Up @@ -163,7 +163,7 @@ def scaffold_habtm_ajax_associations
soid = so.scaffold_id soid = so.scaffold_id
content = "<div class='habtm_ajax_add_associations' id='#{sn}_habtm_ajax_add_associations'>" content = "<div class='habtm_ajax_add_associations' id='#{sn}_habtm_ajax_add_associations'>"
klass.scaffold_habtm_associations.reject{|association| !scaffolded_method?("add_#{association}_to_#{sn}")}.each do |association| klass.scaffold_habtm_associations.reject{|association| !scaffolded_method?("add_#{association}_to_#{sn}")}.each do |association|
content << "#{scaffold_form_remote_tag("add_#{association}_to_#{sn}", :id=>soid)}\n#{scaffold_habtm_ajax_tag("#{sn}_#{association}_id", so, sn, association)}\n<input name='commit' type='submit' value='Add #{klass.scaffold_associated_human_name(association).singularize}' /></form>\n" content << "#{scaffold_form_remote_tag("add_#{association}_to_#{sn}", :id=>soid)}\n#{scaffold_habtm_ajax_tag("#{sn}_#{association}_id", so, sn, association)}\n<input name='commit' class=\"btn btn-primary\" type='submit' value='Add #{klass.scaffold_associated_human_name(association).singularize}' /></form>\n"
end end
content << "</div><div class='habtm_ajax_remove_associations' id='#{sn}_habtm_ajax_remove_associations'><ul id='#{sn}_associated_records_list'>" content << "</div><div class='habtm_ajax_remove_associations' id='#{sn}_habtm_ajax_remove_associations'><ul id='#{sn}_associated_records_list'>"
klass.scaffold_habtm_associations.reject{|association| !scaffolded_method?("remove_#{association}_from_#{sn}")}.each do |association| klass.scaffold_habtm_associations.reject{|association| !scaffolded_method?("remove_#{association}_from_#{sn}")}.each do |association|
Expand Down Expand Up @@ -269,7 +269,7 @@ def scaffold_model_form(action, fields, &block)
#{scaffold_form(scaffold_url("#{action}#{@scaffold_suffix}", options), :attributes=>scaffold_form_enctype(fields))} #{scaffold_form(scaffold_url("#{action}#{@scaffold_suffix}", options), :attributes=>scaffold_form_enctype(fields))}
#{scaffold_model_field_tags(fields)} #{scaffold_model_field_tags(fields)}
#{(yield content; content) if block_given?} #{(yield content; content) if block_given?}
<input type='submit' value="#{@scaffold_submit_value || "#{action.capitalize} #{@scaffold_options[:singular_lc_human_name]}"}" /> <input class='btn btn-primary' type='submit' value="#{@scaffold_submit_value || "#{action.capitalize} #{@scaffold_options[:singular_lc_human_name]}"}" />
</form> </form>
END END
end end
Expand Down
2 changes: 1 addition & 1 deletion lib/scaffolding_extensions/meta_model.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ module ScaffoldingExtensions::MetaModel
# - :auto_complete: Hash containing the default options to use for the scaffold # - :auto_complete: Hash containing the default options to use for the scaffold
# autocompleter (iv: @scaffold_auto_complete_options) # autocompleter (iv: @scaffold_auto_complete_options)
SCAFFOLD_OPTIONS = {:text_to_string=>false, SCAFFOLD_OPTIONS = {:text_to_string=>false,
:table_classes=>{:form=>'formtable', :list=>'sortable', :show=>'sortable'}, :table_classes=>{:form=>'table formtable', :list=>'table table-bordered table-condensed sortable', :show=>'table sortable'},
:column_type_options=>{}, :column_type_options=>{},
:column_types=>{}, :column_types=>{},
:column_options=>{}, :column_options=>{},
Expand Down
2 changes: 1 addition & 1 deletion scaffolds/habtm.rhtml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<% end %> <% end %>


<br /><br /> <br /><br />
<input type='submit' value="Update <%= sn %>'s <%= mpn %>" /> <input class="btn btn-primary" type='submit' value="Update <%= sn %>'s <%= mpn %>" />
</form> </form>


<% if '' != (edit_link = scaffold_check_link("Edit #{sn}", true, "edit_#{@scaffold_options[:singular_name]}", :id=>soid)) %> <% if '' != (edit_link = scaffold_check_link("Edit #{sn}", true, "edit_#{@scaffold_options[:singular_name]}", :id=>soid)) %>
Expand Down
3 changes: 3 additions & 0 deletions scaffolds/layout.rhtml
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,8 @@
<!DOCTYPE html>
<html> <html>
<head> <head>
<title>Scaffolding Extensions<%= " - #{@scaffold_title}" if @scaffold_title %></title> <title>Scaffolding Extensions<%= " - #{@scaffold_title}" if @scaffold_title %></title>
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css" />
<style type="text/css"> <style type="text/css">
body { background-color: #fff; color: #333; } body { background-color: #fff; color: #333; }


Expand All @@ -10,6 +12,7 @@
line-height: 18px; line-height: 18px;
} }


h1, h4 { margin-bottom: 10px; }
h4 { font-size: 16px; } h4 { font-size: 16px; }


pre { pre {
Expand Down
2 changes: 1 addition & 1 deletion scaffolds/list.rhtml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<%=scaffold_raw scaffold_select_tag('id', @scaffold_objects) %> <%=scaffold_raw scaffold_select_tag('id', @scaffold_objects) %>
<% end %> <% end %>
<br /><br /> <br /><br />
<input type="submit" value="<%= haction %> <%= hn %>" /> <input class="btn btn-<%= scaffold_idempotent_action?(action) ? 'primary' : 'danger' %>" type="submit" value="<%= haction %> <%= hn %>" />
</form> </form>


<%=scaffold_raw scaffold_manage_link %> <%=scaffold_raw scaffold_manage_link %>
10 changes: 5 additions & 5 deletions scaffolds/listtable.rhtml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@
<td><%=h entry.scaffold_value(column).to_s %></td> <td><%=h entry.scaffold_value(column).to_s %></td>
<% end %> <% end %>
<% if show %> <% if show %>
<td><%=scaffold_raw scaffold_button_to(s, scaffold_url(ss, :id=>eid), :method=>:get) %></td> <td><%=scaffold_raw scaffold_button_to(s, scaffold_url(ss, :id=>eid), :method=>:get, :class=>'btn-info') %></td>
<% end %> <% end %>
<% if edit %> <% if edit %>
<td><%=scaffold_raw scaffold_button_to(e, scaffold_url(es, :id=>eid), :method=>:get) %></td> <td><%=scaffold_raw scaffold_button_to(e, scaffold_url(es, :id=>eid), :method=>:get, :class=>'btn-primary') %></td>
<% end %> <% end %>
<% if delete %> <% if delete %>
<td><%=scaffold_raw scaffold_button_to(d, scaffold_url(ds, :id=>eid)) %></td> <td><%=scaffold_raw scaffold_button_to(d, scaffold_url(ds, :id=>eid), :class=>'btn-danger') %></td>
<% end %> <% end %>
</tr> </tr>
<% end %> <% end %>
Expand Down Expand Up @@ -55,10 +55,10 @@
<%=scaffold_raw scaffold_field_tag(:hidden, :value=>field, :name=>"null#{scaffold_param_list_suffix}") %> <%=scaffold_raw scaffold_field_tag(:hidden, :value=>field, :name=>"null#{scaffold_param_list_suffix}") %>
<% end %> <% end %>
<% if @scaffold_search_results_form_params[:page] > 1 %> <% if @scaffold_search_results_form_params[:page] > 1 %>
<input type="submit" name="page_previous" value="Previous Page" /> <input class="btn btn-info" type="submit" name="page_previous" value="Previous Page" />
<% end %> <% end %>
<% if @scaffold_search_results_form_params[:next_page] %> <% if @scaffold_search_results_form_params[:next_page] %>
<input type="submit" name="page_next" value="Next Page" /> <input class="btn btn-primary" type="submit" name="page_next" value="Next Page" />
<% end %> <% end %>
</form> </form>
<% end %> <% end %>
Expand Down
2 changes: 1 addition & 1 deletion scaffolds/merge.rhtml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<% end %> <% end %>
</p> </p>


<input type="submit" value="Merge <%= @scaffold_options[:plural_lc_human_name] %>" /> <input class="btn btn-danger" type="submit" value="Merge <%= @scaffold_options[:plural_lc_human_name] %>" />
</form> </form>


<%=scaffold_raw scaffold_manage_link %> <%=scaffold_raw scaffold_manage_link %>
4 changes: 2 additions & 2 deletions scaffolds/search.rhtml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<%=scaffold_raw(scaffold_model_form('results', @scaffold_class.scaffold_fields(:search)) do |form| <%=scaffold_raw(scaffold_model_form('results', @scaffold_class.scaffold_fields(:search)) do |form|
form << "<table class='#{@scaffold_class.scaffold_table_class(:form)}'><tbody>" form << "<table class='#{@scaffold_class.scaffold_table_class(:form)}'><tbody>"
form << "<tr><td><label for='null'>Null Fields</label>:</td><td><select name='null#{scaffold_param_list_suffix}' id='null' multiple='multiple'>#{@scaffold_class.scaffold_search_null_options.collect{|name, i| "<option value='#{i}'>#{name}</option>"}.join("\n")}</select></td></tr>\n" form << "<tr><td><label for='null'>Null Fields</label></td><td><select name='null#{scaffold_param_list_suffix}' id='null' multiple='multiple'>#{@scaffold_class.scaffold_search_null_options.collect{|name, i| "<option value='#{i}'>#{name}</option>"}.join("\n")}</select></td></tr>\n"
form << "<tr><td><label for='notnull'>Not Null Fields</label>:</td><td><select name='notnull#{scaffold_param_list_suffix}' id='notnull' multiple='multiple'>#{@scaffold_class.scaffold_search_null_options.collect{|name, i| "<option value='#{i}'>#{name}</option>"}.join("\n")}</select></td></tr>\n" form << "<tr><td><label for='notnull'>Not Null Fields</label></td><td><select name='notnull#{scaffold_param_list_suffix}' id='notnull' multiple='multiple'>#{@scaffold_class.scaffold_search_null_options.collect{|name, i| "<option value='#{i}'>#{name}</option>"}.join("\n")}</select></td></tr>\n"
form << '</tbody></table>' form << '</tbody></table>'
@scaffold_submit_value = @scaffold_title @scaffold_submit_value = @scaffold_title
end)%> end)%>
Expand Down
3 changes: 3 additions & 0 deletions test_site/config-rack.ru
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -43,5 +43,8 @@ app = Rack::Builder.app do
map "/datamapper" do map "/datamapper" do
run DatamapperRack run DatamapperRack
end end
map "/css" do
run Rack::File.new("public/css")
end
end end
run app run app
Loading

0 comments on commit ad12445

Please sign in to comment.