Commit 88f89eff86830ea3dd19d1c6d9d30da926e01208

Authored by Fabio Teixeira
Committed by David Silva
1 parent 6163bab5
Exists in master and in 79 other branches add_sisp_to_chef, add_super_archives_plugin, api_for_colab, automates_core_packing, backup_not_prod, changes_in_buttons_on_content_panel, colab_automated_login, colab_spb_plugin_recipe, colab_widgets_settings, design_validation, dev_env_minimal, disable_email_dev, fix_breadcrumbs_position, fix_categories_software_link, fix_edit_institution, fix_edit_software_with_another_license, fix_get_license_info, fix_gitlab_assets_permission, fix_list_style_inside_article, fix_list_style_on_folder_elements, fix_members_pagination, fix_merge_request_url, fix_models_translations, fix_no_license, fix_software_api, fix_software_block_migration, fix_software_communities_translations, fix_software_communities_unit_test, fix_style_create_institution_admin_panel, fix_superarchives_imports, fix_sym_links_noosfero, focus_search_field_theme, gov-user-refactoring, gov-user-refactoring-rails4, header_fix, institution_modal_on_rating, kalibro-conf-refactoring, kalibro-processor-package, lxc_settings, margin_fix, mezuro_cookbook, prezento, refactor_download_block, refactor_software_communities, refactor_software_for_sisp, register_page, release-process, release-process-v2, remove-unused-images, remove_broken_theme, remove_secondary_email_from_user, remove_sisp_buttons, removing_super_archives_email, review_message, scope2method, signals_user_noosfero, sisp_catalog_header, sisp_colab_config, sisp_dev, sisp_dev_master, sisp_simple_version, software_as_organization, software_catalog_style_fix, software_communities_html_refactor, software_infos_api, spb_minimal_env, spb_to_rails4, spec_refactor, stable-4.1, stable-4.2, stable-4.x, temp_soft_comm_refactoring, theme_header, theme_javascript_refactory, thread_dropdown, thread_page, update_search_by_categories, update_software_api, update_softwares_boxes

Adds inheritance among the dynamic table helpers

Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
lib/database_helper.rb
1   -module DatabaseHelper
2   - MODEL_NAME = "database"
  1 +class DatabaseHelper < DynamicTableHelper
  2 + MODEL_NAME ="database"
3 3 FIELD_NAME = "database_description_id"
4   - COLLUMN_NAME = {
5   - name: "name",
6   - version: "version"
7   - }
8 4  
9 5 def self.valid_database? database
10 6 return false if SoftwareHelper.all_table_is_empty?(database)
... ... @@ -75,23 +71,15 @@ module DatabaseHelper
75 71 model_name: MODEL_NAME,
76 72 field_name: FIELD_NAME,
77 73 name: {
78   - label: DynamicTableHelper::LABEL_TEXT[:name],
79 74 value: database_name,
80   - hidden: true,
81   - autocomplete: true,
82   - name: COLLUMN_NAME[:name],
83   - id: database_id
  75 + id: database_id,
84 76 },
85 77 version: {
86   - label: DynamicTableHelper::LABEL_TEXT[:version],
87   - value: database_data[:version],
88   - name: COLLUMN_NAME[:version],
89   - hidden: true,
90   - delete: true
  78 + value: database_data[:version]
91 79 }
92 80 }
93 81  
94   - DynamicTableHelper.table_html_structure(data, disabled)
  82 + table_html_structure(data, disabled)
95 83 end
96 84  
97 85 def self.add_dynamic_table
... ...
lib/dynamic_table_helper.rb
1   -module DynamicTableHelper
  1 +class DynamicTableHelper
2 2 extend(
3 3 ActionView::Helpers::TagHelper,
4 4 ActionView::Helpers::FormTagHelper,
... ... @@ -6,35 +6,67 @@ module DynamicTableHelper
6 6 ApplicationHelper
7 7 )
8 8  
  9 + COLLUMN_NAME = {
  10 + name: "name",
  11 + version: "version",
  12 + license: "license"
  13 + }
  14 +
9 15 LABEL_TEXT = {
10 16 :name => _("Name"),
11 17 :version => _("Version"),
12 18 :license => _("License")
13 19 }
14   - @disabled = false
  20 +
  21 + DATA = {
  22 + name: {
  23 + label: LABEL_TEXT[:name],
  24 + hidden: true,
  25 + autocomplete: true,
  26 + name: COLLUMN_NAME[:name],
  27 + },
  28 + version: {
  29 + label: LABEL_TEXT[:version],
  30 + name: COLLUMN_NAME[:version],
  31 + hidden: true,
  32 + delete: true,
  33 + } ,
  34 + license: {
  35 + label: LABEL_TEXT[:license],
  36 + name: COLLUMN_NAME[:license],
  37 + }
  38 + }
  39 + @@disabled = false
15 40  
16 41 def self.table_html_structure data={}, disabled=false
17   - @disabled = disabled
  42 + @@disabled = disabled
18 43 Proc::new do
19   - content_tag :table , DynamicTableHelper.generate_table_lines(data), :class => "dynamic-table"
  44 + content_tag :table , generate_table_lines(data), :class => "dynamic-table"
20 45 end
21 46 end
22 47  
23 48 def self.generate_table_lines data={}
24   - @model = data[:model_name].to_css_class
25   - @field_name = data[:field_name]
26   - @value = data[:name][:value]
27   - @hidden_id = data[:name][:id]
28   -
29   - [
30   - self.table_line(data[:name]),
31   - self.table_line(data[:version]),
32   - self.table_line(data[:license])
33   - ].join()
  49 + @@model = data[:model_name].to_css_class
  50 + @@field_name = data[:field_name]
  51 + @@hidden_label = data[:name][:value]
  52 + @@hidden_id = data[:name][:id]
  53 +
  54 + row_data = prepare_row_data data
  55 +
  56 + table_line_data = [
  57 + self.table_line(row_data[:name]),
  58 + self.table_line(row_data[:version])
  59 + ]
  60 +
  61 + if row_data[:license].has_key? :value
  62 + table_line_data << self.table_line(row_data[:license])
  63 + end
  64 +
  65 + table_line_data.join()
34 66 end
35 67  
36 68 def self.table_line row_data={}
37   - if !row_data.blank?
  69 + unless row_data.blank?
38 70 content_tag :tr, [
39 71 self.label_collumn(row_data[:label]),
40 72 self.value_collumn(row_data[:value], row_data[:name], row_data[:autocomplete]),
... ... @@ -51,24 +83,24 @@ module DynamicTableHelper
51 83 html_options =
52 84 if autocomplete
53 85 {
54   - :class => "#{@model}_autocomplete",
  86 + :class => "#{@@model}_autocomplete",
55 87 :placeholder => _("Autocomplete field, type something")
56 88 }
57 89 else
58 90 {}
59 91 end
60 92  
61   - html_options[:disabled] = @disabled
  93 + html_options[:disabled] = @@disabled
62 94 if autocomplete
63   - content_tag :td, text_field_tag("#{@model}_autocomplete", value, html_options)
  95 + content_tag :td, text_field_tag("#{@@model}_autocomplete", value, html_options)
64 96 else
65   - content_tag :td, text_field_tag("#{@model}[][#{name}]", value, html_options)
  97 + content_tag :td, text_field_tag("#{@@model}[][#{name}]", value, html_options)
66 98 end
67 99 end
68 100  
69 101 def self.hidden_collumn delete=false, hidden_data=false
70 102 value =
71   - if @disabled
  103 + if @@disabled
72 104 nil
73 105 elsif delete
74 106 button_without_text(
... ... @@ -76,14 +108,29 @@ module DynamicTableHelper
76 108 )
77 109 elsif hidden_data
78 110 hidden_field_tag(
79   - "#{@model}[][#{@field_name}]",
80   - @hidden_id,
81   - :class => "#{@field_name}",
82   - :data => {:label => @value } #check how to get the name of an object of the current model
  111 + "#{@@model}[][#{@@field_name}]",
  112 + @@hidden_id,
  113 + :class => "#{@@field_name}",
  114 + :data => {:label => @@hidden_label } #check how to get the name of an object of the current model
83 115 )
84 116 else
85 117 nil
86 118 end
  119 +
87 120 content_tag(:td, value, :align => 'right')
88 121 end
  122 +
  123 + def self.prepare_row_data data
  124 + row_data = {
  125 + name: DATA[:name],
  126 + version: DATA[:version],
  127 + license: DATA[:license]
  128 + }
  129 +
  130 + row_data[:name].merge! data[:name]
  131 + row_data[:version].merge! data[:version]
  132 + row_data[:license].merge! data[:license] if data.has_key? :license
  133 +
  134 + row_data
  135 + end
89 136 end
90 137 \ No newline at end of file
... ...
lib/software_language_helper.rb
1   -module SoftwareLanguageHelper
2   - MODEL_NAME = "language"
  1 +class SoftwareLanguageHelper < DynamicTableHelper
  2 + MODEL_NAME ="language"
3 3 FIELD_NAME = "programming_language_id"
4   - COLLUMN_NAME = {
5   - name: "name",
6   - version: "version"
7   - }
8 4  
9 5 def self.valid_language? language
10 6 return false if SoftwareHelper.all_table_is_empty?(language)
... ... @@ -55,7 +51,6 @@ module SoftwareLanguageHelper
55 51 list_languages.each do |language|
56 52 lambdas_list << language_html_structure(language, disabled)
57 53 end
58   -
59 54 lambdas_list
60 55 end
61 56  
... ... @@ -74,23 +69,15 @@ module SoftwareLanguageHelper
74 69 model_name: MODEL_NAME,
75 70 field_name: FIELD_NAME,
76 71 name: {
77   - label: DynamicTableHelper::LABEL_TEXT[:name],
78 72 value: language_name,
79   - hidden: true,
80   - autocomplete: true,
81   - name: COLLUMN_NAME[:name],
82   - id: language_id
  73 + id: language_id,
83 74 },
84 75 version: {
85   - label: DynamicTableHelper::LABEL_TEXT[:version],
86   - value: language_data[:version],
87   - name: COLLUMN_NAME[:version],
88   - hidden: true,
89   - delete: true
  76 + value: language_data[:version]
90 77 }
91 78 }
92 79  
93   - DynamicTableHelper.table_html_structure(data, disabled)
  80 + table_html_structure(data, disabled)
94 81 end
95 82  
96 83 def self.add_dynamic_table
... ...