status_viewhelper.rb revision ecc1c5f9e6d6c3ec89fe2298ba933a82bca5bfa0
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehaseclass StatusViewhelper
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase TABS = [
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase ['Processing Ontologies', :ontologies, ->{ processing_ontologies_count }],
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase ]
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase HELPERS = {
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase ontologies: StatusOntologyViewhelper,
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase }
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase attr_reader :tab, :view, :available_tabs
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def self.processing_ontologies_count
ecc1c5f9e6d6c3ec89fe2298ba933a82bca5bfa0Tim Reddehase StatusOntologyViewhelper.new(nil).processing_ontologies_count
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def initialize(view, tab)
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase @view = view
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase @tab = tab
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase initialize_data
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def initialize_data
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase @available_tabs = TABS.map do |(tab_title, tab, count)|
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase [tab_title, tab, count ? count.call : nil]
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def inner_helper
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase @inner_helper ||= initialize_helper(HELPERS[tab])
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def initialize_helper(helper_klass)
ecc1c5f9e6d6c3ec89fe2298ba933a82bca5bfa0Tim Reddehase helper_klass.new(view)
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def current?(other_tab)
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase tab == other_tab
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase def render
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase view.render partial: tab.to_s, locals: {view: inner_helper} if tab
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehaseend