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 FIELD_NAME = "database_description_id" 3 FIELD_NAME = "database_description_id"
4 - COLLUMN_NAME = {  
5 - name: "name",  
6 - version: "version"  
7 - }  
8 4
9 def self.valid_database? database 5 def self.valid_database? database
10 return false if SoftwareHelper.all_table_is_empty?(database) 6 return false if SoftwareHelper.all_table_is_empty?(database)
@@ -75,23 +71,15 @@ module DatabaseHelper @@ -75,23 +71,15 @@ module DatabaseHelper
75 model_name: MODEL_NAME, 71 model_name: MODEL_NAME,
76 field_name: FIELD_NAME, 72 field_name: FIELD_NAME,
77 name: { 73 name: {
78 - label: DynamicTableHelper::LABEL_TEXT[:name],  
79 value: database_name, 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 version: { 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 end 83 end
96 84
97 def self.add_dynamic_table 85 def self.add_dynamic_table
lib/dynamic_table_helper.rb
1 -module DynamicTableHelper 1 +class DynamicTableHelper
2 extend( 2 extend(
3 ActionView::Helpers::TagHelper, 3 ActionView::Helpers::TagHelper,
4 ActionView::Helpers::FormTagHelper, 4 ActionView::Helpers::FormTagHelper,
@@ -6,35 +6,67 @@ module DynamicTableHelper @@ -6,35 +6,67 @@ module DynamicTableHelper
6 ApplicationHelper 6 ApplicationHelper
7 ) 7 )
8 8
  9 + COLLUMN_NAME = {
  10 + name: "name",
  11 + version: "version",
  12 + license: "license"
  13 + }
  14 +
9 LABEL_TEXT = { 15 LABEL_TEXT = {
10 :name => _("Name"), 16 :name => _("Name"),
11 :version => _("Version"), 17 :version => _("Version"),
12 :license => _("License") 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 def self.table_html_structure data={}, disabled=false 41 def self.table_html_structure data={}, disabled=false
17 - @disabled = disabled 42 + @@disabled = disabled
18 Proc::new do 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 end 45 end
21 end 46 end
22 47
23 def self.generate_table_lines data={} 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 end 66 end
35 67
36 def self.table_line row_data={} 68 def self.table_line row_data={}
37 - if !row_data.blank? 69 + unless row_data.blank?
38 content_tag :tr, [ 70 content_tag :tr, [
39 self.label_collumn(row_data[:label]), 71 self.label_collumn(row_data[:label]),
40 self.value_collumn(row_data[:value], row_data[:name], row_data[:autocomplete]), 72 self.value_collumn(row_data[:value], row_data[:name], row_data[:autocomplete]),
@@ -51,24 +83,24 @@ module DynamicTableHelper @@ -51,24 +83,24 @@ module DynamicTableHelper
51 html_options = 83 html_options =
52 if autocomplete 84 if autocomplete
53 { 85 {
54 - :class => "#{@model}_autocomplete", 86 + :class => "#{@@model}_autocomplete",
55 :placeholder => _("Autocomplete field, type something") 87 :placeholder => _("Autocomplete field, type something")
56 } 88 }
57 else 89 else
58 {} 90 {}
59 end 91 end
60 92
61 - html_options[:disabled] = @disabled 93 + html_options[:disabled] = @@disabled
62 if autocomplete 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 else 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 end 98 end
67 end 99 end
68 100
69 def self.hidden_collumn delete=false, hidden_data=false 101 def self.hidden_collumn delete=false, hidden_data=false
70 value = 102 value =
71 - if @disabled 103 + if @@disabled
72 nil 104 nil
73 elsif delete 105 elsif delete
74 button_without_text( 106 button_without_text(
@@ -76,14 +108,29 @@ module DynamicTableHelper @@ -76,14 +108,29 @@ module DynamicTableHelper
76 ) 108 )
77 elsif hidden_data 109 elsif hidden_data
78 hidden_field_tag( 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 else 116 else
85 nil 117 nil
86 end 118 end
  119 +
87 content_tag(:td, value, :align => 'right') 120 content_tag(:td, value, :align => 'right')
88 end 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 end 136 end
90 \ No newline at end of file 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 FIELD_NAME = "programming_language_id" 3 FIELD_NAME = "programming_language_id"
4 - COLLUMN_NAME = {  
5 - name: "name",  
6 - version: "version"  
7 - }  
8 4
9 def self.valid_language? language 5 def self.valid_language? language
10 return false if SoftwareHelper.all_table_is_empty?(language) 6 return false if SoftwareHelper.all_table_is_empty?(language)
@@ -55,7 +51,6 @@ module SoftwareLanguageHelper @@ -55,7 +51,6 @@ module SoftwareLanguageHelper
55 list_languages.each do |language| 51 list_languages.each do |language|
56 lambdas_list << language_html_structure(language, disabled) 52 lambdas_list << language_html_structure(language, disabled)
57 end 53 end
58 -  
59 lambdas_list 54 lambdas_list
60 end 55 end
61 56
@@ -74,23 +69,15 @@ module SoftwareLanguageHelper @@ -74,23 +69,15 @@ module SoftwareLanguageHelper
74 model_name: MODEL_NAME, 69 model_name: MODEL_NAME,
75 field_name: FIELD_NAME, 70 field_name: FIELD_NAME,
76 name: { 71 name: {
77 - label: DynamicTableHelper::LABEL_TEXT[:name],  
78 value: language_name, 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 version: { 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 end 81 end
95 82
96 def self.add_dynamic_table 83 def self.add_dynamic_table