Sha256: 03308bd2d90949961e6a447406af58bc8d62f612f0b3f6ce33a872197eca9f81

Contents?: true

Size: 1.84 KB

Versions: 14

Compression:

Stored size: 1.84 KB

Contents

require 'omf-web/theme/bright/layout_renderer'

module OMF::Web::Theme
  
  class TabbedRenderer < LayoutRenderer
    
    def initialize(layout_widget, widgets, opts)
      super opts
      @layout_widget = layout_widget
      @widgets = widgets || []
      @opts = opts
    end
    
    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
    
    # Return an array of widgets to collect data sources from
    #
    # def data_source_widgets
      # puts "TABREN>>>>>>> #{get_selected_widget()}"
      # [get_selected_widget()]
    # end

    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_card_nav

    def render_widget(w)
      r = w.content
      unless w.layout?
        r = WidgetChrome.new(w, r, @opts)
      end
      rawtext r.to_html      
    end    
    
    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
    
  end # TabbedRenderer
  
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
omf_web-1.2.9 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-1.2.8 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-1.2.7 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-1.2.6 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-1.2.5 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-1.2.4 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-1.2.3 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-1.2.2 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-1.2.1 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-1.2.0 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-1.0.0 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-0.9.9 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-0.9.8 lib/omf-web/theme/bright/tabbed_renderer.rb
omf_web-0.9.7 lib/omf-web/theme/bright/tabbed_renderer.rb