module Poodle::ActionView::ThemeHelper
This module creates Bootstrap wrappers around basic View Tags
Public Instance Methods
# File lib/poodle/action_view/theme_helper.rb, line 132 def clear_tag(height=nil) height_class = height ? " cl-#{height}" : "" content_tag(:div, "", class: "clearfix#{height_class}") end
# File lib/poodle/action_view/theme_helper.rb, line 214 def theme_detail_box(collection, **options) options.reverse_merge!( show_partial: "show", new_partial: "form", edit_partial: "form", index_partial: "show", ) case params[:action] when "show" render partial: options[:show_partial] when "new" render partial: options[:new_partial] when "edit" render partial: options[:edit_partial] when "index" collection.empty? ? (theme_panel_message(I18n.translate("forms.no_results"))) : render(partial: options[:index_partial]) else theme_panel_message(I18n.translate("forms.no_results")) end end
# File lib/poodle/action_view/theme_helper.rb, line 109 def theme_drop_down(collection, method_name, **options) options.reverse_merge!( scope: :admin ) content_tag(:div, class: "btn-group mt-10 mb-10", style: "width:100%;") do button_tag(type: 'button', :class => "btn btn-default btn-block dropdown-toggle", "data-toggle" => "dropdown") do raw("Choose a Project" + content_tag(:span, "", class: "caret")) end + content_tag(:ul, class: "dropdown-menu", role: "menu") do li_array = [] collection.each do |item| li_array << content_tag(:li) do url = main_app.url_for([options[:scope], item]) link_to item.send(method_name), url, :remote => true end end raw(li_array.join(" ")) + content_tag(:li, link_to_next_page(collection, 'Next Page', :remote => true)) + content_tag(:li, link_to_previous_page(collection, 'Previous Page', :remote => true)) end end end
theme_fa_icon
(‘plus’) <i class=‘fa fa-plus’></i> theme_fa_icon
(‘plus’, ‘lg’) <i class=‘fa fa-plus fa-lg’></i>
# File lib/poodle/action_view/theme_helper.rb, line 9 def theme_fa_icon(icon_text, size="") size_class = %w{lg 2x 3x 4x 5x}.include?(size.strip) ? " fa-#{size.strip}" : "" "<i class='fa fa-#{icon_text}#{size_class}'></i>" end
theme_heading
(heading) theme_heading
(heading, icon=‘cog’) <div class=“row mb-10”>
<div class="fs-22 col-sm-12"><i class='fa fa-rub fa-lg mr-10'></i>Manage Projects</div>
</div>
# File lib/poodle/action_view/theme_helper.rb, line 82 def theme_heading(heading, icon='') content_tag :div, class: "row mb-10" do content_tag :div, class: "fs-22 col-sm-12" do raw((icon ? theme_fa_icon(icon, 'lg') : "") + " #{heading}") end end end
Example
theme_item_description(project.client.name, 120)
is equivalent to:
<div class="text-color-grey fs-12"><%= project.client.description %></div>
# File lib/poodle/action_view/theme_helper.rb, line 209 def theme_item_description(text, limit=120, classes = "text-color-grey fs-12") description = scrap_word(text, limit) content_tag(:div, description, class: classes) end
Example
theme_item_sub_title(project.client.name)
is equivalent to:
<div class="text-color-red fs-14"><%= project.client.name if project.client %></div>
# File lib/poodle/action_view/theme_helper.rb, line 199 def theme_item_sub_title(text, classes = "text-color-red fs-14") content_tag(:div, text, class: classes) end
Example
theme_item_title(project.name, admin_project_path(project))
is equivalent to:
<%= link_to project.name, admin_project_path(project), :remote=>true, :class=>"text-color-blue fs-16" %>
# File lib/poodle/action_view/theme_helper.rb, line 189 def theme_item_title(title, url, classes = "text-color-blue fs-16", remote=true) link_to(title, url, :remote=>remote, :class=>classes) end
Example
theme_more_widget(object, data_columns=[:id, :created_at, :updated_at], super_admin = true)
is equivalent to:
<% if @current_user.is_super_admin? %>
<%= render :partial => "widgets/more_details", :locals=>{ :data_model => @project, :data_columns => [:id, :created_at, :updated_at], :heading => "Technical Details", :display_footer => false} %>
<% end %>
# File lib/poodle/action_view/theme_helper.rb, line 246 def theme_more_widget(object, **options) options.reverse_merge!( data_columns: [:id, :created_at, :updated_at], super_admin: false, heading: "Technical Details" ) display = options[:super_admin] ? @current_user.is_super_admin? : true render(:partial => "widgets/more_details", :locals=>{:data_model => object, :data_columns => options[:data_columns], :heading => options[:heading], :display_footer => false}) if display end
Example
theme_paginate(@projects)
is equivalent to:
<div class=“cl”></div> <% if @projects.any? %>
<%= content_tag :div, :class=>"pull-right" do %> <%= paginate @projects, :remote => true %> <% end %>
<% end %> <div class=“cl”></div>
# File lib/poodle/action_view/theme_helper.rb, line 150 def theme_paginate(collection) return "" if collection.empty? clear_tag(10) + content_tag(:div, :class=>"pull-right") do paginate(collection, :remote => true) end + clear_tag(10) end
Example
theme_panel_description(@project.pretty_url, "fs-14") theme_panel_description(@project.description, "fs-14 mt-10")
is equivalent to:
<div class=“fs-14”><%= @project.pretty_url %></div> <div class=“fs-14 mt-10”><%= @project.description %></div>
# File lib/poodle/action_view/theme_helper.rb, line 285 def theme_panel_description(text, classes="fs-14") content_tag(:div, text, class: classes) end
Example
theme_panel_heading(@project.name)
is equivalent to:
<div class=“fs-24 text-color-green”><%= @project.name %></div>
# File lib/poodle/action_view/theme_helper.rb, line 265 def theme_panel_heading(text, classes="fs-24 text-color-green") content_tag(:div, text, class: classes) end
Example
theme_panel_message("No Results found")
is equivalent to:
<div class="panel panel-default text-color-grey p-80 text-align-center" style="height:200px;"> "No Results found" </div>
# File lib/poodle/action_view/theme_helper.rb, line 167 def theme_panel_message(message) content_tag(:div, class: "panel panel-default panel-message text-color-grey p-80 text-align-center", style: "height:200px;") do raw(message) end end
Example
theme_panel_sub_heading(@project.name, admin_client_path(@project.client))
is equivalent to:
link_to(@project.client.name, admin_client_path(@project.client), class: “fs-16 text-color-red”)
# File lib/poodle/action_view/theme_helper.rb, line 274 def theme_panel_sub_heading(text, url, classes="fs-16 text-color-red") link_to(text, url, class: classes) end
Example
theme_panel_title("Team Members")
is equivalent to:
<h3 class="panel-title">Team Members</h3>
# File lib/poodle/action_view/theme_helper.rb, line 179 def theme_panel_title(title, classes="") content_tag(:h3, title, class: "panel-title #{classes}") end
theme_search_form
is a helper to create a form to filter the results by entering a search query
# File lib/poodle/action_view/theme_helper.rb, line 91 def theme_search_form(cls, url, method=:get, remote=true, text="Search!", placeholder="Search ...") form_for cls.new, :url => url, :method => method, :remote=>remote, :html=>{:class=>"pull-right", :style=>"margin-bottom:0px;"} do |f| content_tag :div, class: "input-group" do text_field_tag('query','', :class => 'form-control', :placeholder => placeholder) + content_tag(:span, class: "input-group-btn") do button_tag(type: 'submit', class: "btn btn-default") do raw(theme_fa_icon('search') + content_tag(:span, class: "btn-text") do " " + text end) end end end end end