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

Methods included from Utilidades

#hora_deploy, #html5shiv

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 barra_aplicacoes(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_governoObject

Renderiza o partial da barra do governo



9
10
11
# File 'app/helpers/barras_rails/application_helper.rb', line 9

def barra_governo
  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 barras_governo_e_aplicacoes(iduff = nil)
  (barra_governo + barra_aplicacoes(iduff)).html_safe
end

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 
   = BarrasRails.configuracao.
  inclui_sair = BarrasRails.configuracao.incluir_link_de_deslogar
  (!usuario_logado? && ) || (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_correnteObject



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 item_barra_aplicacoes(path, label)
  ('li') do
    link_to(label, path)
  end
end


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',  + query_string)
end


74
75
76
77
78
79
80
# File 'app/helpers/barras_rails/application_helper.rb', line 74

def 
  if BarrasRails.configuracao.incluir_link_de_deslogar && usuario_logado?
    BarraAplicacoes.url_de_desenv_e_homolog(link_de_deslogar).html_safe
  elsif BarrasRails.configuracao.
    BarraAplicacoes.url_de_desenv_e_homolog(link_de_logar).html_safe
  end
end


59
60
61
62
63
64
65
66
67
# File 'app/helpers/barras_rails/application_helper.rb', line 59

def 
  # Tenta retornar o path especificado na configuração da gem
   = BarrasRails.configuracao.
  return [root_url, ].join if .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