Commit 8a3149ace3272139cda836ffed1f37722eeb7908

Authored by Fabio Teixeira
Committed by David Silva
1 parent e511b314
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

Build dynamic table into SoftwareLanguageHelper

Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
Signed-off-by: Parley Martins <parley@outlook.com>
lib/database_helper.rb
1 1 module DatabaseHelper
  2 + MODEL_NAME = "database"
  3 + FIELD_NAME = "database_description_id"
  4 + COLLUMN_NAME = {
  5 + name: "name",
  6 + version: "version",
  7 + operating_system: "operating_system"
  8 + }
2 9  
3 10 def self.valid_database? database
4 11 return false if SoftwareHelper.all_table_is_empty?(database)
... ... @@ -42,14 +49,6 @@ module DatabaseHelper
42 49 end
43 50  
44 51 def self.database_as_tables(list_databases)
45   - extend(
46   - ActionView::Helpers::TagHelper,
47   - ActionView::Helpers::FormTagHelper,
48   - ActionView::Helpers::UrlHelper,
49   - ActionView::Helpers::FormOptionsHelper,
50   - ApplicationHelper
51   - )
52   -
53 52 return database_html_structure(
54 53 {:database_description_id => "", :version => "", :operating_system => ""}
55 54 ) if list_databases.nil?
... ... @@ -64,33 +63,37 @@ module DatabaseHelper
64 63 end
65 64  
66 65 def self.database_html_structure(database_data)
67   - database_name, database_id = if database_data[:database_description_id].blank?
68   - ["", ""]
  66 + database_id = database_data[:database_description_id]
  67 + database_name = if database_data[:database_description_id].blank?
  68 + ""
69 69 else
70   - [DatabaseDescription.find(
  70 + DatabaseDescription.find(
71 71 database_data[:database_description_id],
72 72 :select=>"name"
73   - ).name, database_data[:database_description_id]]
  73 + ).name
74 74 end
75 75  
76 76 data = {
77   - model_name: "database",
78   - field_name: "database_description_id",
  77 + model_name: MODEL_NAME,
  78 + field_name: FIELD_NAME,
79 79 name: {
80   - label: _("Name"),
  80 + label: DynamicTableHelper::LABEL_TEXT[:name],
81 81 value: database_name,
82 82 hidden: true,
83 83 autocomplete: true,
  84 + name: COLLUMN_NAME[:name],
84 85 id: database_id
85 86 },
86 87 version: {
87   - label: _("Version"),
  88 + label: DynamicTableHelper::LABEL_TEXT[:version],
88 89 value: database_data[:version],
  90 + name: COLLUMN_NAME[:version],
89 91 hidden: true
90 92 },
91 93 operating_system: {
92   - label: _("Operating system"),
  94 + label: DynamicTableHelper::LABEL_TEXT[:operating_system],
93 95 value: database_data[:operating_system],
  96 + name: COLLUMN_NAME[:operating_system],
94 97 delete: true
95 98 }
96 99 }
... ...
lib/dynamic_table_helper.rb
1 1 module DynamicTableHelper
  2 + extend(
  3 + ActionView::Helpers::TagHelper,
  4 + ActionView::Helpers::FormTagHelper,
  5 + ActionView::Helpers::UrlHelper,
  6 + ApplicationHelper
  7 + )
2 8  
3   -extend(
4   - ActionView::Helpers::TagHelper,
5   - ActionView::Helpers::FormTagHelper,
6   - ActionView::Helpers::UrlHelper,
7   - ApplicationHelper
8   - )
  9 + LABEL_TEXT = {
  10 + :name => _("Name"),
  11 + :version => _("Version"),
  12 + :operating_system => _("Operating system"),
  13 + :license => _("License")
  14 + }
9 15  
10 16 def self.table_html_structure data
11 17 Proc::new do
... ... @@ -29,7 +35,7 @@ extend(
29 35 def self.table_line row_data
30 36 content_tag :tr, [
31 37 self.label_collumn(row_data[:label]),
32   - self.value_collumn(row_data[:value], row_data[:autocomplete]),
  38 + self.value_collumn(row_data[:value], row_data[:name], row_data[:autocomplete]),
33 39 self.hidden_collumn(row_data[:delete], row_data[:hidden])
34 40 ].join()
35 41 end
... ... @@ -38,7 +44,7 @@ extend(
38 44 content_tag :td, label_tag(label)
39 45 end
40 46  
41   - def self.value_collumn value, autocomplete=false
  47 + def self.value_collumn value, name, autocomplete=false
42 48 html_options =
43 49 if autocomplete
44 50 {
... ... @@ -49,7 +55,7 @@ extend(
49 55 {}
50 56 end
51 57  
52   - content_tag :td, text_field_tag("#{@model}", value, html_options)
  58 + content_tag :td, text_field_tag("#{@model}[][#{name}]", value, html_options)
53 59 end
54 60  
55 61 def self.hidden_collumn delete=false, hidden_data=false
... ...
lib/software_language_helper.rb
1 1 module SoftwareLanguageHelper
  2 + MODEL_NAME = "language"
  3 + FIELD_NAME = "programming_language_id"
  4 + COLLUMN_NAME = {
  5 + name: "name",
  6 + version: "version",
  7 + operating_system: "operating_system"
  8 + }
2 9  
3 10 def self.valid_language? language
4 11 return false if SoftwareHelper.all_table_is_empty?(language)
... ... @@ -41,14 +48,6 @@ module SoftwareLanguageHelper
41 48 end
42 49  
43 50 def self.language_as_tables(list_languages, show_information = false)
44   - extend(
45   - ActionView::Helpers::TagHelper,
46   - ActionView::Helpers::FormTagHelper,
47   - ActionView::Helpers::UrlHelper,
48   - ActionView::Helpers::FormOptionsHelper,
49   - ApplicationHelper
50   - )
51   -
52 51 lambdas_list = []
53 52  
54 53 if not show_information
... ... @@ -73,6 +72,7 @@ module SoftwareLanguageHelper
73 72 end
74 73  
75 74 def self.language_html_structure(language_data)
  75 + language_id = language_data[:programming_language_id]
76 76 language_name = if language_data[:programming_language_id].blank?
77 77 ""
78 78 else
... ... @@ -82,65 +82,32 @@ module SoftwareLanguageHelper
82 82 ).name
83 83 end
84 84  
85   - Proc::new do
86   - content_tag('table',
87   - content_tag(
88   - 'tr',
89   - content_tag('td', label_tag(_("Language Name: "))) +
90   - content_tag(
91   - 'td',
92   - text_field_tag(
93   - "language_autocomplete",
94   - language_name,
95   - :class=>"language_autocomplete",
96   - :placeholder=>_("Autocomplete field, type something")
97   - ) +
98   - content_tag(
99   - 'div',
100   - _("Pick an item on the list"),
101   - :class=>"autocomplete_validation_message hide-field")
102   - ) +
103   - content_tag(
104   - 'td',
105   - hidden_field_tag("language[][programming_language_id]",
106   - language_data[:programming_language_id],
107   - :class=>"programming_language_id",
108   - data:{label:language_name})
109   - )
110   - )+
111   -
112   - content_tag(
113   - 'tr',
114   - content_tag('td', label_tag(_("Version")))+
115   - content_tag(
116   - 'td',
117   - text_field_tag("language[][version]",language_data[:version])
118   - ) +
119   - content_tag('td')
120   - )+
121   -
122   - content_tag(
123   - 'tr',
124   - content_tag('td', label_tag(_("Operating System")))+
125   - content_tag(
126   - 'td',
127   - text_field_tag(
128   - "language[][operating_system]",
129   - language_data[:operating_system]
130   - )
131   - ) +
132   - content_tag('td',
133   - button_without_text(
134   - :delete,
135   - _('Delete'),
136   - "#",
137   - :class=>"delete-dynamic-table"
138   - ),
139   - :align => 'right'
140   - )
141   - ), :class => 'dynamic-table software-language-table'
142   - )
143   - end
  85 + data = {
  86 + model_name: MODEL_NAME,
  87 + field_name: FIELD_NAME,
  88 + name: {
  89 + label: DynamicTableHelper::LABEL_TEXT[:name],
  90 + value: language_name,
  91 + hidden: true,
  92 + autocomplete: true,
  93 + name: COLLUMN_NAME[:name],
  94 + id: language_id
  95 + },
  96 + version: {
  97 + label: DynamicTableHelper::LABEL_TEXT[:version],
  98 + value: language_data[:version],
  99 + name: COLLUMN_NAME[:version],
  100 + hidden: true
  101 + },
  102 + operating_system: {
  103 + label: DynamicTableHelper::LABEL_TEXT[:operating_system],
  104 + value: language_data[:operating_system],
  105 + name: COLLUMN_NAME[:operating_system],
  106 + delete: true
  107 + }
  108 + }
  109 +
  110 + DynamicTableHelper.table_html_structure(data)
144 111 end
145 112  
146 113 def self.language_html_show_structure(language)
... ...