42 lines
1.2 KiB
Ruby
42 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module TabsHelper
|
|
def tab_i18n_key_from_status(status)
|
|
case status
|
|
when 'a-suivre'
|
|
'views.instructeurs.dossiers.tab_steps.to_follow' # i18n-tasks-use t('views.instructeurs.dossiers.tab_steps.to_follow')
|
|
when 'suivis'
|
|
'pluralize.followed'
|
|
when 'traites'
|
|
'pluralize.processed'
|
|
when 'tous'
|
|
'views.instructeurs.dossiers.tab_steps.total' # i18n-tasks-use t('views.instructeurs.dossiers.tab_steps.total')
|
|
when 'supprimes'
|
|
'pluralize.dossiers_supprimes'
|
|
when 'expirant'
|
|
'pluralize.dossiers_close_to_expiration'
|
|
when 'archives'
|
|
'pluralize.archived'
|
|
else
|
|
fail ArgumentError, "Unknown tab status: #{status}"
|
|
end
|
|
end
|
|
|
|
def tab_item(label, url, active: false, badge: nil, notification: false)
|
|
render partial: 'shared/tab_item', locals: {
|
|
label: label,
|
|
url: url,
|
|
active: active,
|
|
badge: badge,
|
|
notification: notification
|
|
}
|
|
end
|
|
|
|
def dynamic_tab_item(label, url_or_urls, badge: nil, notification: false)
|
|
urls = [url_or_urls].flatten
|
|
url = urls.first
|
|
active = urls.any? { |u| current_page?(u) }
|
|
|
|
tab_item(label, url, active: active, badge: badge, notification: notification)
|
|
end
|
|
end
|