status_viewhelper.rb revision c4e197f083746cabb7ca6e573930dcbb32c64ef6
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehaseclass StatusViewhelper
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase TABS = [
e206832a0402e82f2fd05b4d073388acc5ccb395Tim Reddehase ['Processing Ontologies', :ontologies,
e206832a0402e82f2fd05b4d073388acc5ccb395Tim Reddehase ->(v){ v.processing_ontologies_count }],
c4e197f083746cabb7ca6e573930dcbb32c64ef6Tim Reddehase ['Errored Ontologies', :errored_ontologies,
c4e197f083746cabb7ca6e573930dcbb32c64ef6Tim Reddehase ->(v){ v.errored_ontologies_count }],
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase ]
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase HELPERS = {
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase ontologies: StatusOntologyViewhelper,
c4e197f083746cabb7ca6e573930dcbb32c64ef6Tim Reddehase errored_ontologies: StatusOntologyErrorViewhelper,
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase }
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase attr_reader :tab, :view, :available_tabs
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)|
e206832a0402e82f2fd05b4d073388acc5ccb395Tim Reddehase [tab_title, tab, retrieve_count(tab, count)]
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase end
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase
e206832a0402e82f2fd05b4d073388acc5ccb395Tim Reddehase def retrieve_count(tab, count_proc)
e206832a0402e82f2fd05b4d073388acc5ccb395Tim Reddehase count_proc.call(initialize_helper(HELPERS[tab])) if count_proc
e206832a0402e82f2fd05b4d073388acc5ccb395Tim Reddehase end
e206832a0402e82f2fd05b4d073388acc5ccb395Tim 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