Module: ToolbarHelper
- Includes:
- SocialStream::Views::Toolbar
- Defined in:
- app/helpers/toolbar_helper.rb
Overview
The toolbar is the left-side bar in Social Stream’s layout
Instance Method Summary collapse
-
#toolbar(type = :home, options = {}) ⇒ Object
This method define the toolbar content for your view.
- #toolbar_menu(type, options = {}) ⇒ Object
- #toolbar_menu_render(items, menu) ⇒ Object
Instance Method Details
#toolbar(type = :home, options = {}) ⇒ Object
This method define the toolbar content for your view. The toolbar is at the left side of the screen in vanilla SocialStream distribution.
The type argument chooses diffent configurations. There are three build-in cases:
-
:home, render the home menu
-
:profile, render the profile menu for the subject this type needs a :subject option with the subject in the sidebar
-
:messages, render the messages menu
Autoexpand a menu section on your view:
Toolbar allows you to autoexpand certain menu section that may be of interest for your view. For example, the messages menu when you are looking your inbox. This is done through :option element.
To get it working, you should use the proper :option to be expanded. For instance, “:options => :contacts” it will try to expand “#contacts_menu”.
Examples:
Render the home toolbar:
<% toolbar %>
or
<% toolbar :home %>
Render the profile toolbar for a user:
<% toolbar :profile, :subject => @user %>
Render the messages menu:
<% toolbar :messages %>
Render the profile toolbar for group changing the contacts menu option:
<% toolbar :profile, :subject => @group, :option => :contacts %>
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'app/helpers/toolbar_helper.rb', line 46 def (type = :home, = {}) content = (type, ).inject(ActiveSupport::SafeBuffer.new){ |result, item| result + item[:html] } = "SocialStream.Toolbar.init({ option: '#{ [:option] }' });".html_safe case request.format when Mime::JS response = "$('#toolbarContent').html(\"#{ escape_javascript(content) }\");\n" + response.html_safe else content_for(:toolbar) do content end content_for :javascript, end end |
#toolbar_menu(type, options = {}) ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'app/helpers/toolbar_helper.rb', line 69 def (type, = {}) ActiveSupport::SafeBuffer.new.tap do || << '<div class="toolbar_menu">'.html_safe ((type, ), ) << '</div>'.html_safe end end |
#toolbar_menu_render(items, menu) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'app/helpers/toolbar_helper.rb', line 79 def (items, ) << '<ul>'.html_safe items.each do |item| << '<li>'.html_safe << item[:html] if item[:items].present? (item[:items], ) end << '</li>'.html_safe end << '</ul>'.html_safe end |