Module: BarrasRails::ApplicationHelper
- Includes:
- Utilidades
- Defined in:
- app/helpers/barras_rails/application_helper.rb
Overview
ApplicationHelper da gem que adicionar funcionalidades (métodos) ao helper da aplicação host.
Instance Method Summary collapse
-
#barra_aplicacoes(iduff = nil) ⇒ Object
Renderiza o partial da barra de aplicações.
-
#barra_governo ⇒ Object
Renderiza o partial da barra do governo.
-
#barras_governo_e_aplicacoes(iduff = nil) ⇒ Object
Renderiza ambas as barras.
-
#deve_incluir_link_login ⇒ Object
Retorna true ou false se deve incluir um link de logar OU deslogar, de acordo com a situação de login do usuário atual.
-
#escapar_url(url) ⇒ Object
Escapa uma URL para poder usá-la em uma query string.
- #get_aplicacoes(iduff) ⇒ Object
- #iduff_do_usuario_corrente ⇒ Object
- #image_svg_from_assets(asset_name) ⇒ Object
- #image_svg_from_manifest(asset_name) ⇒ Object
-
#imagem_svg(name) ⇒ Object
Retorna o conteúdo (codificado como uma string utf-8) de uma imagem vetorizada, do tipo svg.
-
#item_barra_aplicacoes(path, label) ⇒ Object
Retorna um único item da barra de aplicações.
- #link_de_logar ⇒ Object
- #link_de_login_ou_logout ⇒ Object
- #url_link_login ⇒ Object
Methods included from Utilidades
Instance Method Details
#barra_aplicacoes(iduff = nil) ⇒ Object
Renderiza o partial da barra de aplicações
14 15 16 17 18 19 20 |
# File 'app/helpers/barras_rails/application_helper.rb', line 14 def (iduff = nil) @barra = { limite_links: BarrasRails.configuracao.limite_links_visiveis, aplicacoes: get_aplicacoes(iduff || iduff_do_usuario_corrente) } render partial: 'layouts/barras_rails/barra_aplicacoes' end |
#barra_governo ⇒ Object
Renderiza o partial da barra do governo
9 10 11 |
# File 'app/helpers/barras_rails/application_helper.rb', line 9 def render partial: 'layouts/barras_rails/barra_governo' end |
#barras_governo_e_aplicacoes(iduff = nil) ⇒ Object
Renderiza ambas as barras
23 24 25 |
# File 'app/helpers/barras_rails/application_helper.rb', line 23 def (iduff = nil) ( + (iduff)).html_safe end |
#deve_incluir_link_login ⇒ Object
Retorna true ou false se deve incluir um link de logar OU deslogar, de acordo com a situação de login do usuário atual.
53 54 55 56 57 |
# File 'app/helpers/barras_rails/application_helper.rb', line 53 def deve_incluir_link_login inclui_login = BarrasRails.configuracao.incluir_link_de_login inclui_sair = BarrasRails.configuracao.incluir_link_de_deslogar (!usuario_logado? && inclui_login) || (usuario_logado? && inclui_sair) end |
#escapar_url(url) ⇒ Object
Escapa uma URL para poder usá-la em uma query string
83 84 85 |
# File 'app/helpers/barras_rails/application_helper.rb', line 83 def escapar_url(url) URI.escape(url, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) end |
#get_aplicacoes(iduff) ⇒ Object
39 40 41 |
# File 'app/helpers/barras_rails/application_helper.rb', line 39 def get_aplicacoes(iduff) BarraAplicacoes.carrega_aplicacoes(iduff) end |
#iduff_do_usuario_corrente ⇒ Object
87 88 89 90 |
# File 'app/helpers/barras_rails/application_helper.rb', line 87 def iduff_do_usuario_corrente return unless self.respond_to?(:usuario_corrente) && usuario_corrente usuario_corrente.iduff end |
#image_svg_from_assets(asset_name) ⇒ Object
92 93 94 95 96 97 |
# File 'app/helpers/barras_rails/application_helper.rb', line 92 def image_svg_from_assets(asset_name) return unless Rails.application.assets image_asset = Rails.application.assets.find_asset(asset_name) return unless image_asset raw(image_asset.source.force_encoding('UTF-8')) end |
#image_svg_from_manifest(asset_name) ⇒ Object
99 100 101 102 103 104 |
# File 'app/helpers/barras_rails/application_helper.rb', line 99 def image_svg_from_manifest(asset_name) path = Rails.application.assets_manifest.assets[asset_name] return '' if path.blank? path = File.join(Rails.application.assets_manifest.directory, path) raw(File.binread(path).force_encoding('UTF-8')) end |
#imagem_svg(name) ⇒ Object
Retorna o conteúdo (codificado como uma string utf-8) de uma imagem vetorizada, do tipo svg.
34 35 36 37 |
# File 'app/helpers/barras_rails/application_helper.rb', line 34 def imagem_svg(name) imagem = image_svg_from_assets(name) (imagem || image_svg_from_manifest(name)) end |
#item_barra_aplicacoes(path, label) ⇒ Object
Retorna um único item da barra de aplicações. O item também inclui um separador vertical, mas este é colocado dinamicamente via javascript.
45 46 47 48 49 |
# File 'app/helpers/barras_rails/application_helper.rb', line 45 def (path, label) content_tag('li') do link_to(label, path) end end |
#link_de_logar ⇒ Object
69 70 71 72 |
# File 'app/helpers/barras_rails/application_helper.rb', line 69 def link_de_logar query_string = "?retorno=\"#{escapar_url(request.original_url)}\"" link_to('Entrar', url_link_login + query_string) end |
#link_de_login_ou_logout ⇒ Object
74 75 76 77 78 79 80 |
# File 'app/helpers/barras_rails/application_helper.rb', line 74 def link_de_login_ou_logout if BarrasRails.configuracao.incluir_link_de_deslogar && usuario_logado? BarraAplicacoes.url_de_desenv_e_homolog(link_de_deslogar).html_safe elsif BarrasRails.configuracao.incluir_link_de_login BarraAplicacoes.url_de_desenv_e_homolog(link_de_logar).html_safe end end |
#url_link_login ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'app/helpers/barras_rails/application_helper.rb', line 59 def url_link_login # Tenta retornar o path especificado na configuração da gem path_login = BarrasRails.configuracao.path_login return [root_url, path_login].join if path_login.present? # Se o path_login não for especificado, usa o padrão do portal prod BarraAplicacoes .url_de_desenv_e_homolog('https://sistemas.uff.br/portal/login') end |