status_viewhelper.rb revision 07a196c002eaa68d4d71c71e39b7c05cd6f96922
2e37d45867d081db150ab78dad303b9077aea24fTimo Sirainenclass StatusViewhelper
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen TABS = [
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen ['Overview', :overview],
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen ['Processing Ontologies', :ontologies,
c2ee17c9c263efdc9c0a339c4836c3d43f5cd3d9Sascha Wilde ->(v){ v.processing_ontologies_count }],
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen ['Errored Ontologies', :errored_ontologies,
cda217260716cfd8d8ec5e56f91708c64c140538Timo Sirainen ->(v){ v.errored_ontologies_count }],
7a7d2aa11e46195e2d92d6c337d7e78052a5ce67Timo Sirainen ]
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen HELPERS = {
c2ee17c9c263efdc9c0a339c4836c3d43f5cd3d9Sascha Wilde overview: StatusOverviewViewhelper,
c4c9be10781e1a16b3b001dc6b0461c4640da101Timo Sirainen ontologies: StatusOntologyViewhelper,
c2ee17c9c263efdc9c0a339c4836c3d43f5cd3d9Sascha Wilde errored_ontologies: StatusOntologyErrorViewhelper,
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen }
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen attr_reader :tab, :view, :available_tabs
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen def initialize(view, tab)
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen @view = view
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen @tab = tab
f325d795b52ce2053f914072b22ebca9c4f0dc7eTimo Sirainen initialize_data
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen end
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen def initialize_data
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen @available_tabs = TABS.map do |(tab_title, tab, count)|
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen [tab_title, tab, retrieve_count(tab, count)]
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen end
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen end
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen def retrieve_count(tab, count_proc)
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen count_proc.call(initialize_helper(HELPERS[tab])) if count_proc
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen end
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
139cbf8d9e1cc0c65d985f525756fe47a7bfada6Timo Sirainen def inner_helper
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen @inner_helper ||= initialize_helper(HELPERS[tab])
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen end
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen def initialize_helper(helper_klass)
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen helper_klass.new(view)
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen end
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen def current?(other_tab)
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen tab == other_tab
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen end
d29e35631075b8c172ce781b85fd1cdaf0a400fdTimo Sirainen
d29e35631075b8c172ce781b85fd1cdaf0a400fdTimo Sirainen def render
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen view.render partial: tab.to_s, locals: {view: inner_helper} if tab
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen end
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainenend
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen