Class: OMF::Web::Theme::TabbedRenderer

Inherits:
LayoutRenderer
  • Object
show all
Defined in:
lib/omf-web/theme/bright/tabbed_renderer.rb

Instance Method Summary collapse

Methods inherited from LayoutRenderer

#render?

Constructor Details

#initialize(layout_widget, widgets, opts) ⇒ TabbedRenderer

Returns a new instance of TabbedRenderer.



7
8
9
10
11
12
# File 'lib/omf-web/theme/bright/tabbed_renderer.rb', line 7

def initialize(layout_widget, widgets, opts)
  super opts
  @layout_widget = layout_widget
  @widgets = widgets || []
  @opts = opts
end

Instance Method Details

#contentObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/omf-web/theme/bright/tabbed_renderer.rb', line 14

def content
  selected = get_selected_widget()
  div :class => 'tabbed_layout' do
    div :id => 'card_nav', :class => 'navigation' do
      render_card_nav(selected)
    end
    if selected
      div :id => :card_content, :class => 'content' do 
        render_widget selected
      end
    else
      div :class => 'flash_alert flash' do
        text "Nothing to display"
      end
    end
  end     
end

#get_selected_widgetObject



61
62
63
64
65
66
67
68
# File 'lib/omf-web/theme/bright/tabbed_renderer.rb', line 61

def get_selected_widget()
  # TODO: THIS NEEDS FIXING - WE NEED TO GET REQ OBJECT THROUGH THREAD
  req = Thread.current["top_renderer"].opts[:request]
  # opts[:tab] = tab_id = tab[:id]
  # opts[:request] = req      
  tid = (req.params['tid'] || 0).to_i
  return @widgets[tid]
end

#render_card_nav(selected) ⇒ Object

end



39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/omf-web/theme/bright/tabbed_renderer.rb', line 39

def render_card_nav(selected)
  cname = @opts[:component_name]
  path = @opts[:path]

  ol do
    @widgets.each_with_index do |w, i| 
      klass = (w == selected) ? 'selected' : nil
      li :class => klass do
        a w.name || 'unknown', :href => "#{path}?tid=#{i}&sid=#{Thread.current["sessionID"]}"
      end
    end
  end            
end

#render_widget(w) ⇒ Object

render_card_nav



53
54
55
56
57
58
59
# File 'lib/omf-web/theme/bright/tabbed_renderer.rb', line 53

def render_widget(w)
  r = w.content
  unless w.layout?
    r = WidgetChrome.new(w, r, @opts)
  end
  rawtext r.to_html      
end