filtros_personalizados 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +7 -0
  2. data/lib/filtros_personalizados/association.rb +40 -0
  3. data/lib/filtros_personalizados/config/routes.rb +9 -0
  4. data/lib/filtros_personalizados/config.rb +7 -0
  5. data/lib/filtros_personalizados/controllers/personalizaveis_controller.rb +28 -0
  6. data/lib/filtros_personalizados/conversor.rb +136 -0
  7. data/lib/filtros_personalizados/fields_padroes/boolean.rb +46 -0
  8. data/lib/filtros_personalizados/fields_padroes/date.rb +83 -0
  9. data/lib/filtros_personalizados/fields_padroes/field.rb +45 -0
  10. data/lib/filtros_personalizados/fields_padroes/hora.rb +26 -0
  11. data/lib/filtros_personalizados/fields_padroes/idade.rb +38 -0
  12. data/lib/filtros_personalizados/fields_padroes/integer.rb +53 -0
  13. data/lib/filtros_personalizados/fields_padroes/select2.rb +16 -0
  14. data/lib/filtros_personalizados/fields_padroes/string.rb +42 -0
  15. data/lib/filtros_personalizados/fields_padroes/string_options.rb +34 -0
  16. data/lib/filtros_personalizados/fields_padroes/true_or_false.rb +15 -0
  17. data/lib/filtros_personalizados/fields_padroes.rb +17 -0
  18. data/lib/filtros_personalizados/filtros_base.rb +123 -0
  19. data/lib/filtros_personalizados/fornecedores.rb +37 -0
  20. data/lib/filtros_personalizados/ultima_selecao_user.rb +42 -0
  21. data/lib/filtros_personalizados/version.rb +3 -0
  22. data/lib/filtros_personalizados/views/filtros_personalizados/_botao_limpar.html.erb +5 -0
  23. data/lib/filtros_personalizados/views/filtros_personalizados/_consulta.html.erb +6 -0
  24. data/lib/filtros_personalizados/views/filtros_personalizados/_date.html.erb +66 -0
  25. data/lib/filtros_personalizados/views/filtros_personalizados/_filtros.html.erb +82 -0
  26. data/lib/filtros_personalizados/views/filtros_personalizados/_hora.html.erb +23 -0
  27. data/lib/filtros_personalizados/views/filtros_personalizados/_integer.html.erb +54 -0
  28. data/lib/filtros_personalizados/views/filtros_personalizados/_select.html.erb +72 -0
  29. data/lib/filtros_personalizados/views/filtros_personalizados/_select2.html.erb +125 -0
  30. data/lib/filtros_personalizados/views/filtros_personalizados/_sem_padrao.html.erb +51 -0
  31. data/lib/filtros_personalizados/views/filtros_personalizados/_so_consultas.html.erb +26 -0
  32. data/lib/filtros_personalizados/views/filtros_personalizados/_string.html.erb +40 -0
  33. data/lib/filtros_personalizados/views/filtros_personalizados/_stringoptions.html.erb +64 -0
  34. data/lib/filtros_personalizados/views/filtros_personalizados/destroy_consulta.js.erb +1 -0
  35. data/lib/filtros_personalizados/views/filtros_personalizados/save_consulta.js.erb +1 -0
  36. data/lib/filtros_personalizados.rb +12 -0
  37. metadata +119 -0
@@ -0,0 +1,51 @@
1
+ <div class="filter">
2
+ <div class="filter__col-forms">
3
+ <h2 class="filter__title">Filtros</h2>
4
+
5
+ <div class="filter__form">
6
+ <div class="filter__form-box" id="all-filters">
7
+ <div class="botao_limpar">
8
+ <%= render "personalizaveis/botao_limpar" %>
9
+ </div>
10
+ <div id="outros-filtros">
11
+ <%= render partial rescue nil %>
12
+ </div>
13
+ <div class="clear"></div>
14
+ </div>
15
+ </div>
16
+ </div>
17
+ <div class="filter__col-list">
18
+ <h2 class="filter__title">Consultas Personalizadas</h2>
19
+
20
+ <div class="filter__col-box">
21
+ <ul class="filter__list" id="lista-consultas">
22
+ <% ConsultaPersonalizada.minhas_consultas(current_user).desta_pagina(controller_name).each do |consulta| %>
23
+ <%= render 'personalizaveis/consulta', consulta: consulta %>
24
+ <% end %>
25
+ </ul>
26
+ </div>
27
+
28
+ <div class="filter__buttons">
29
+ <%= link_to 'Salvar Modelo', "#", onclick: 'salvarConsulta();' %>
30
+ </div>
31
+ </div>
32
+ </div>
33
+
34
+ <script type="text/javascript">
35
+ function salvarConsulta() {
36
+ let nome_consulta = prompt("Digite o nome da consulta");
37
+ if(nome_consulta != null && nome_consulta != ""){
38
+ $.ajax({
39
+ url: '<%= save_consulta_personalizaveis_path %>',
40
+ type: 'post',
41
+ data: $("#form_imp_rel").serialize() + "&nome_consulta="+ nome_consulta + "&tela=<%= controller_name %>"
42
+ });
43
+ }
44
+ }
45
+
46
+ function removeLine(link, field){
47
+ link.closest('.filter__list-dynamic-item').remove();
48
+ $("#filtros option=[value=" + field + " ]").removeAttr('disabled');
49
+ return false;
50
+ }
51
+ </script>
@@ -0,0 +1,26 @@
1
+ <li class="filter__list-dynamic-item" id="filtro_so_consultas">
2
+ <div class="filter__list-dynamic-col1">
3
+ Somente com atendimento médico
4
+ </div>
5
+ <div class="filter__list-dynamic-col8">
6
+ <%= check_box_tag "relatorio[]#{campo.field_name}[values][]", "true" %>
7
+ <small>OBS: Para atendimentos ambulatoriais</small>
8
+ </div>
9
+ <div class="filter__list-dynamic-actions">
10
+ <% unless required %>
11
+ <a href="#" onclick="removeLine($(this),'<%= campo.field_name%>'); return false;" title="Remover">
12
+ <i class="fa fa-trash"></i>
13
+ </a>
14
+ <% end %>
15
+ </div>
16
+ </li>
17
+
18
+ <script type="text/javascript">
19
+ $(function(){
20
+ if ($('#tipopac_id1').val() == "1") {
21
+ alert("Quando estiver filtrando dados para pacientes do tipo internado, o filtro somente com atendimento médico não pode ser utilizado");
22
+ $("#filtros option=[value=so_consultas]").removeAttr('disabled');
23
+ removeLine($("#filtro_so_consultas"),'so_consultas');
24
+ }
25
+ });
26
+ </script>
@@ -0,0 +1,40 @@
1
+ <li class="filter__list-dynamic-item">
2
+ <div class="filter__list-dynamic-col1">
3
+ <%= campo.caption %>
4
+ </div>
5
+ <div class="filter__list-dynamic-col2">
6
+ <%= select_tag "relatorio[]#{campo.field_name}[tipo_selecionado]", options_for_select(campo.acoes_disponiveis, selected: campo.tipo_selecionado) %>
7
+ </div>
8
+ <div class="filter__list-dynamic-col3">
9
+ <%= text_field_tag "relatorio[]#{campo.field_name}[values][]", campo.values.try(:first), id: "#{campo.field_name}1", required: required %>
10
+ </div>
11
+ <div class="filter__list-dynamic-actions">
12
+ <% unless required %>
13
+ <a href="#" onclick="removeLine($(this),'<%= campo.field_name %>'); return false;" title="Remover">
14
+ <i class="fa fa-trash"></i>
15
+ </a>
16
+ <% end %>
17
+ </div>
18
+ </li>
19
+
20
+ <script type="text/javascript">
21
+ $("#relatorio_<%= campo.field_name %>_tipo_selecionado").on("change",function(){
22
+ switch ($(this).val()) {
23
+ case "Contém":
24
+ $("#<%= campo.field_name %>1").
25
+ show().
26
+ attr("required",<%= required %>);
27
+ break;
28
+ case "Não Contém":
29
+ case "Igual a":
30
+ case "Diferente de":
31
+ $("#<%= campo.field_name %>1").show().attr("required",<%= required %>);
32
+ break;
33
+ default:
34
+ $("#<%= campo.field_name %>1").
35
+ hide().
36
+ val("").
37
+ removeAttr("required");
38
+ }
39
+ });
40
+ </script>
@@ -0,0 +1,64 @@
1
+ <li class="filter__list-dynamic-item">
2
+ <div class="filter__list-dynamic-col1">
3
+ <%= campo.caption %>
4
+ </div>
5
+ <div class="filter__list-dynamic-col2">
6
+ <%= select_tag "relatorio[]#{campo.field_name}[tipo_selecionado]", options_for_select(campo.acoes_disponiveis, selected: campo.tipo_selecionado) %>
7
+ </div>
8
+ <div class="filter__list-dynamic-col3">
9
+ <%= select_tag "relatorio[]#{campo.field_name}[values][]",
10
+ options_for_select(campo.options),
11
+ id: "#{campo.field_name}1", required: required %>
12
+ </div>
13
+ <div class="filter__list-dynamic-multiple">
14
+ <%= link_to "#", id: "mult-#{campo.field_name}1", title: "Selecionar varios itens" do %>
15
+ <i class="fa fa-list"></i>
16
+ <% end %>
17
+ </div>
18
+ <div class="filter__list-dynamic-actions">
19
+ <% unless required %>
20
+ <a href="#" onclick="removeLine($(this),'<%= campo.field_name%>'); return false;" title="Remover">
21
+ <i class="fa fa-trash"></i>
22
+ </a>
23
+ <% end %>
24
+ </div>
25
+ </li>
26
+
27
+ <script type="text/javascript">
28
+ $("#mult-<%= campo.field_name %>1").on("click", function(e){
29
+ e.preventDefault();
30
+ $("#<%= campo.field_name%>1").toggleAttr("multiple");
31
+ });
32
+
33
+ $("#relatorio_<%= campo.field_name %>_tipo_selecionado").on("change",function(){
34
+ switch ($(this).val()) {
35
+ case "Igual a":
36
+ $("#<%= campo.field_name %>1").show().attr("required",<%= required %>);
37
+ $("#mult-<%= campo.field_name %>1").show();
38
+ break;
39
+ case "Diferente de":
40
+ $("#<%= campo.field_name %>1").show().attr("required",<%= required %>);
41
+ $("#mult-<%= campo.field_name %>1").show();
42
+ break;
43
+ default:
44
+ $("#<%= campo.field_name %>1").
45
+ hide().
46
+ val("").
47
+ removeAttr("required");
48
+ $("#mult-<%= campo.field_name %>1").hide();
49
+ }
50
+ });
51
+
52
+ function setDefaults(){
53
+ <% if (campo.values.try(:size).to_i > 1 )%>
54
+ $("#<%= campo.field_name%>1").prop("multiple",true)
55
+ <% end %>
56
+ let valores = [];
57
+ <% campo.values.try(:each) do |v| %>
58
+ valores.push('<%= v %>');
59
+ <% end %>
60
+ $("#<%= campo.field_name %>1").val(valores);
61
+ }
62
+ $("#relatorio_<%= campo.field_name %>_tipo_selecionado").change();
63
+ setDefaults()
64
+ </script>
@@ -0,0 +1 @@
1
+ $("#consulta-p-<%= @consulta_personalizada.id%>").fadeOut();
@@ -0,0 +1 @@
1
+ window.location.href = window.location.protocol + "//" + window.location.host + window.location.pathname + '?consulta=<%= @consulta.try(:id)%>'
@@ -0,0 +1,12 @@
1
+ # require "filtros_personalizados/version"
2
+
3
+ module FiltrosPersonalizados
4
+ extend ActiveSupport::Autoload
5
+
6
+ autoload :Association
7
+ autoload :Config
8
+ autoload :Conversor
9
+ autoload :FieldsPadroes
10
+ autoload :FiltrosBase
11
+ # Your code goes here...
12
+ end
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: filtros_personalizados
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Junior Libardoni
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2022-07-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: Write a longer description or delete this line.
56
+ email:
57
+ - junior@inovadora.com.br
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/filtros_personalizados.rb
63
+ - lib/filtros_personalizados/association.rb
64
+ - lib/filtros_personalizados/config.rb
65
+ - lib/filtros_personalizados/config/routes.rb
66
+ - lib/filtros_personalizados/controllers/personalizaveis_controller.rb
67
+ - lib/filtros_personalizados/conversor.rb
68
+ - lib/filtros_personalizados/fields_padroes.rb
69
+ - lib/filtros_personalizados/fields_padroes/boolean.rb
70
+ - lib/filtros_personalizados/fields_padroes/date.rb
71
+ - lib/filtros_personalizados/fields_padroes/field.rb
72
+ - lib/filtros_personalizados/fields_padroes/hora.rb
73
+ - lib/filtros_personalizados/fields_padroes/idade.rb
74
+ - lib/filtros_personalizados/fields_padroes/integer.rb
75
+ - lib/filtros_personalizados/fields_padroes/select2.rb
76
+ - lib/filtros_personalizados/fields_padroes/string.rb
77
+ - lib/filtros_personalizados/fields_padroes/string_options.rb
78
+ - lib/filtros_personalizados/fields_padroes/true_or_false.rb
79
+ - lib/filtros_personalizados/filtros_base.rb
80
+ - lib/filtros_personalizados/fornecedores.rb
81
+ - lib/filtros_personalizados/ultima_selecao_user.rb
82
+ - lib/filtros_personalizados/version.rb
83
+ - lib/filtros_personalizados/views/filtros_personalizados/_botao_limpar.html.erb
84
+ - lib/filtros_personalizados/views/filtros_personalizados/_consulta.html.erb
85
+ - lib/filtros_personalizados/views/filtros_personalizados/_date.html.erb
86
+ - lib/filtros_personalizados/views/filtros_personalizados/_filtros.html.erb
87
+ - lib/filtros_personalizados/views/filtros_personalizados/_hora.html.erb
88
+ - lib/filtros_personalizados/views/filtros_personalizados/_integer.html.erb
89
+ - lib/filtros_personalizados/views/filtros_personalizados/_select.html.erb
90
+ - lib/filtros_personalizados/views/filtros_personalizados/_select2.html.erb
91
+ - lib/filtros_personalizados/views/filtros_personalizados/_sem_padrao.html.erb
92
+ - lib/filtros_personalizados/views/filtros_personalizados/_so_consultas.html.erb
93
+ - lib/filtros_personalizados/views/filtros_personalizados/_string.html.erb
94
+ - lib/filtros_personalizados/views/filtros_personalizados/_stringoptions.html.erb
95
+ - lib/filtros_personalizados/views/filtros_personalizados/destroy_consulta.js.erb
96
+ - lib/filtros_personalizados/views/filtros_personalizados/save_consulta.js.erb
97
+ homepage:
98
+ licenses: []
99
+ metadata: {}
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ requirements: []
115
+ rubygems_version: 3.1.2
116
+ signing_key:
117
+ specification_version: 4
118
+ summary: Write a short summary, because RubyGems requires one.
119
+ test_files: []