Commit d2f905f7d30020109a2ae559340a35d927e4fb84

Authored by Fabio Teixeira
Committed by David Silva
1 parent 19330e12
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 DynamicTable into Library

Signed-off-by: Arthur Del Esposte <arthurmde@gmail.com>
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
lib/database_helper.rb
@@ -43,11 +43,8 @@ class DatabaseHelper &lt; DynamicTableHelper @@ -43,11 +43,8 @@ class DatabaseHelper &lt; DynamicTableHelper
43 end 43 end
44 44
45 def self.database_as_tables(list_databases, disabled=false) 45 def self.database_as_tables(list_databases, disabled=false)
46 - model_list = if list_databases.blank?  
47 - [{:database_description_id => "", :version => ""}]  
48 - else  
49 - list_databases  
50 - end 46 + model_list = list_databases
  47 + model_list ||= [{:database_description_id => "", :version => ""}]
51 48
52 models_as_tables model_list, "database_html_structure", disabled 49 models_as_tables model_list, "database_html_structure", disabled
53 end 50 end
@@ -69,12 +66,16 @@ class DatabaseHelper &lt; DynamicTableHelper @@ -69,12 +66,16 @@ class DatabaseHelper &lt; DynamicTableHelper
69 name: { 66 name: {
70 value: database_name, 67 value: database_name,
71 id: database_id, 68 id: database_id,
  69 + hidden: true,
  70 + autocomplete: true
72 }, 71 },
73 version: { 72 version: {
74 - value: database_data[:version] 73 + value: database_data[:version],
  74 + hidden: true,
  75 + delete: true
75 } 76 }
76 } 77 }
77 - 78 + DATA[:license].delete(:value)
78 table_html_structure(data, disabled) 79 table_html_structure(data, disabled)
79 end 80 end
80 81
lib/dynamic_table_helper.rb
@@ -21,19 +21,16 @@ class DynamicTableHelper @@ -21,19 +21,16 @@ class DynamicTableHelper
21 DATA = { 21 DATA = {
22 name: { 22 name: {
23 label: LABEL_TEXT[:name], 23 label: LABEL_TEXT[:name],
24 - hidden: true,  
25 - autocomplete: true,  
26 name: COLLUMN_NAME[:name], 24 name: COLLUMN_NAME[:name],
27 }, 25 },
28 version: { 26 version: {
29 label: LABEL_TEXT[:version], 27 label: LABEL_TEXT[:version],
30 name: COLLUMN_NAME[:version], 28 name: COLLUMN_NAME[:version],
31 - hidden: true,  
32 - delete: true,  
33 } , 29 } ,
34 license: { 30 license: {
35 label: LABEL_TEXT[:license], 31 label: LABEL_TEXT[:license],
36 name: COLLUMN_NAME[:license], 32 name: COLLUMN_NAME[:license],
  33 + delete: true
37 } 34 }
38 } 35 }
39 @@disabled = false 36 @@disabled = false
@@ -58,7 +55,7 @@ class DynamicTableHelper @@ -58,7 +55,7 @@ class DynamicTableHelper
58 self.table_line(row_data[:version]) 55 self.table_line(row_data[:version])
59 ] 56 ]
60 57
61 - if row_data[:license].has_key? :value 58 + if row_data[:license].has_key?(:value)
62 table_line_data << self.table_line(row_data[:license]) 59 table_line_data << self.table_line(row_data[:license])
63 end 60 end
64 61
lib/library_helper.rb
1 -module LibraryHelper 1 +class LibraryHelper < DynamicTableHelper
  2 + MODEL_NAME ="library"
  3 +
2 def self.list_libraries new_libraries 4 def self.list_libraries new_libraries
3 return [] if new_libraries.nil? or new_libraries.length == 0 5 return [] if new_libraries.nil? or new_libraries.length == 0
4 list_libraries = [] 6 list_libraries = []
@@ -26,79 +28,34 @@ module LibraryHelper @@ -26,79 +28,34 @@ module LibraryHelper
26 true 28 true
27 end 29 end
28 30
29 - def self.library_as_tables list_libraries  
30 - extend(  
31 - ActionView::Helpers::TagHelper,  
32 - ActionView::Helpers::FormTagHelper,  
33 - ActionView::Helpers::UrlHelper,  
34 - ApplicationHelper  
35 - )  
36 -  
37 - return library_html_structure(  
38 - {  
39 - :name=>"",  
40 - :version=>"",  
41 - :license=>""  
42 - }  
43 - ) if list_libraries.nil?  
44 -  
45 - lambdas_list = [] 31 + def self.libraries_as_tables list_libraries, disabled=false
  32 + model_list = list_libraries
  33 + model_list ||= [{:name=>"", :version=>"", :license=>""}]
46 34
47 - list_libraries.each do |library|  
48 - lambdas_list << library_html_structure(library)  
49 - end  
50 -  
51 - lambdas_list 35 + models_as_tables model_list, "library_html_structure", disabled
52 end 36 end
53 37
54 - def self.library_html_structure library_data  
55 - Proc::new do  
56 - content_tag(  
57 - 'table',  
58 - content_tag(  
59 - 'tr',  
60 - content_tag('td', label_tag(_("Name")))+  
61 - content_tag(  
62 - 'td',  
63 - text_field_tag("library[][name]", library_data[:name])  
64 - )+  
65 - content_tag('td')  
66 - )+  
67 -  
68 - content_tag(  
69 - 'tr',  
70 - content_tag('td', label_tag(_("Version")))+  
71 - content_tag(  
72 - 'td',  
73 - text_field_tag("library[][version]", library_data[:version])  
74 - )+  
75 - content_tag('td')  
76 - )+  
77 -  
78 - content_tag(  
79 - 'tr',  
80 - content_tag('td', label_tag(_("License")))+  
81 - content_tag(  
82 - 'td',  
83 - text_field_tag("library[][license]", library_data[:license])) +  
84 - content_tag(  
85 - 'td',  
86 - button_without_text(  
87 - :delete,  
88 - _('Delete'),  
89 - "#" ,  
90 - :class=>"delete-dynamic-table"  
91 - ),  
92 - :align => 'right'  
93 - )  
94 - ), 38 + def self.library_html_structure library_data, disabled
  39 + data = {
  40 + model_name: MODEL_NAME,
  41 + name: {
  42 + value: library_data[:name],
  43 + hidden: false,
  44 + autocomplete: false
  45 + },
  46 + version: {
  47 + value: library_data[:version],
  48 + delete: false
  49 + },
  50 + license: {
  51 + value: library_data[:license]
  52 + }
  53 + }
95 54
96 - :class => 'dynamic-table library-table'  
97 - )  
98 - end 55 + table_html_structure(data, disabled)
99 end 56 end
100 57
101 def self.add_dynamic_table 58 def self.add_dynamic_table
102 - library_as_tables(nil).call 59 + libraries_as_tables(nil).first.call
103 end 60 end
104 end 61 end
lib/mpog_software_plugin.rb
@@ -5,7 +5,6 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin @@ -5,7 +5,6 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
5 include ActionView::Helpers::JavaScriptHelper 5 include ActionView::Helpers::JavaScriptHelper
6 include ActionView::Helpers::AssetTagHelper 6 include ActionView::Helpers::AssetTagHelper
7 include FormsHelper 7 include FormsHelper
8 - include LibraryHelper  
9 include ActionView::Helpers 8 include ActionView::Helpers
10 include ActionDispatch::Routing 9 include ActionDispatch::Routing
11 include Rails.application.routes.url_helpers 10 include Rails.application.routes.url_helpers
@@ -73,8 +72,11 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin @@ -73,8 +72,11 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
73 72
74 def profile_tabs 73 def profile_tabs
75 if context.profile.community? 74 if context.profile.community?
76 - profile_tabs_software if context.profile.software?  
77 - profile_tabs_institution 75 + if context.profile.software?
  76 + profile_tabs_software
  77 + elsif context.profile.institution?
  78 + profile_tabs_institution
  79 + end
78 end 80 end
79 end 81 end
80 82
lib/software_language_helper.rb
@@ -42,11 +42,8 @@ class SoftwareLanguageHelper &lt; DynamicTableHelper @@ -42,11 +42,8 @@ class SoftwareLanguageHelper &lt; DynamicTableHelper
42 end 42 end
43 43
44 def self.language_as_tables(list_languages, disabled=false) 44 def self.language_as_tables(list_languages, disabled=false)
45 - model_list = if list_languages.blank?  
46 - [{:programming_language_id => "", :version => ""}]  
47 - else  
48 - list_languages  
49 - end 45 + model_list = list_languages
  46 + model_list ||= [{:programming_language_id => "", :version => ""}]
50 47
51 models_as_tables model_list, "language_html_structure", disabled 48 models_as_tables model_list, "language_html_structure", disabled
52 end 49 end
@@ -68,12 +65,16 @@ class SoftwareLanguageHelper &lt; DynamicTableHelper @@ -68,12 +65,16 @@ class SoftwareLanguageHelper &lt; DynamicTableHelper
68 name: { 65 name: {
69 value: language_name, 66 value: language_name,
70 id: language_id, 67 id: language_id,
  68 + hidden: true,
  69 + autocomplete: true
71 }, 70 },
72 version: { 71 version: {
73 - value: language_data[:version] 72 + value: language_data[:version],
  73 + hidden: true,
  74 + delete: true
74 } 75 }
75 } 76 }
76 - 77 + DATA[:license].delete(:value)
77 table_html_structure(data, disabled) 78 table_html_structure(data, disabled)
78 end 79 end
79 80
views/mpog_software_plugin_myprofile/_database_fields.html.erb
1 <%= fields_for :database_description, @database_description do |db| %> 1 <%= fields_for :database_description, @database_description do |db| %>
2 2
3 <div id='databases'> 3 <div id='databases'>
4 - <% database = [] if database.nil? %> 4 + <% database = [] if database.blank? %>
5 <% DatabaseHelper.database_as_tables(database).each do |tab| %> 5 <% DatabaseHelper.database_as_tables(database).each do |tab| %>
6 <%= tab.call %> 6 <%= tab.call %>
7 <%end%> 7 <%end%>
views/mpog_software_plugin_myprofile/_language_fields.html.erb
1 <%= fields_for :software_language, @software_language do |lng| %> 1 <%= fields_for :software_language, @software_language do |lng| %>
2 2
3 <div id='languages'> 3 <div id='languages'>
4 - <% languages = [] if languages.nil? %> 4 + <% languages = [] if languages.blank? %>
5 <% SoftwareLanguageHelper.language_as_tables(languages).each do |tab| %> 5 <% SoftwareLanguageHelper.language_as_tables(languages).each do |tab| %>
6 <%= tab.call %> 6 <%= tab.call %>
7 <%end%> 7 <%end%>
views/mpog_software_plugin_myprofile/_library_fields.html.erb
1 <%= fields_for :library ,@library do |lib| %> 1 <%= fields_for :library ,@library do |lib| %>
2 2
3 <div id='libraries'> 3 <div id='libraries'>
4 - <% libraries = [] if libraries.nil? %>  
5 - <% LibraryHelper.library_as_tables(libraries).each do |tab| %> 4 + <% libraries = [] if libraries.blank? %>
  5 + <% LibraryHelper.libraries_as_tables(libraries).each do |tab| %>
6 <%= tab.call %> 6 <%= tab.call %>
7 <% end %> 7 <% end %>
8 </div> 8 </div>
views/profile/_software_tab.html.erb
@@ -30,13 +30,22 @@ @@ -30,13 +30,22 @@
30 30
31 <tr> 31 <tr>
32 <td> 32 <td>
33 - <table class = "libraries-info dynamic-table">  
34 - <%= content_tag('tr', content_tag('td', _("Libraries")) + content_tag('td', '')) %>  
35 - <% profile.software_info.libraries.each do |library| %>  
36 - <%= display_mpog_field(_('Name:'), library, :name, true) %>  
37 - <%= display_mpog_field(_('Version:'), library, :version, true) %>  
38 - <%= display_mpog_field(_('License:'), library, :license, true) %>  
39 - <% end %> 33 + <table class = "libraries-info">
  34 + <thead>
  35 + <tr>
  36 + <th colspan="2"><%= _("Libraries") %></th>
  37 + <th></th>
  38 + </tr>
  39 + </thead>
  40 +
  41 + <tbody>
  42 + <tr> <td>
  43 + <% libraries = profile.software_info.libraries %>
  44 + <% LibraryHelper.libraries_as_tables(libraries, true).each do |tab| %>
  45 + <%= tab.call %>
  46 + <%end%>
  47 + </td> </tr>
  48 + </tbody>
40 </table> 49 </table>
41 </td> 50 </td>
42 </tr> 51 </tr>
@@ -49,14 +58,22 @@ @@ -49,14 +58,22 @@
49 58
50 <tr> 59 <tr>
51 <td> 60 <td>
52 - <table class = "database-info dynamic-table">  
53 - <%= content_tag('tr', content_tag('td', _("Software Databases")) + content_tag('td', '')) %>  
54 - <tr> <td>  
55 - <% databases = profile.software_info.software_databases %>  
56 - <% DatabaseHelper.database_as_tables(databases, true).each do |tab| %>  
57 - <%= tab.call %>  
58 - <%end%>  
59 - </td> </tr> 61 + <table class = "database-info">
  62 + <thead>
  63 + <tr>
  64 + <th colspan="2"><%= _("Software Databases") %></th>
  65 + <th></th>
  66 + </tr>
  67 + </thead>
  68 +
  69 + <tbody>
  70 + <tr> <td>
  71 + <% databases = profile.software_info.software_databases %>
  72 + <% DatabaseHelper.database_as_tables(databases, true).each do |tab| %>
  73 + <%= tab.call %>
  74 + <%end%>
  75 + </td> </tr>
  76 + </tbody>
60 </table> 77 </table>
61 </td> 78 </td>
62 </tr> 79 </tr>
@@ -69,14 +86,22 @@ @@ -69,14 +86,22 @@
69 86
70 <tr> 87 <tr>
71 <td> 88 <td>
72 - <table class = "language-info dynamic-table">  
73 - <%= content_tag('tr', content_tag('td', _("Software Languages")) + content_tag('td', '')) %>  
74 - <tr> <td>  
75 - <% languages = profile.software_info.software_languages %>  
76 - <% SoftwareLanguageHelper.language_as_tables(languages, true).each do |tab| %>  
77 - <%= tab.call %>  
78 - <%end%>  
79 - </td> </tr> 89 + <table class = "language-info">
  90 + <thead>
  91 + <tr>
  92 + <th colspan="2"><%= _("Software Languages") %></th>
  93 + <th></th>
  94 + </tr>
  95 + </thead>
  96 +
  97 + <tbody>
  98 + <tr> <td>
  99 + <% languages = profile.software_info.software_languages %>
  100 + <% SoftwareLanguageHelper.language_as_tables(languages, true).each do |tab| %>
  101 + <%= tab.call %>
  102 + <%end%>
  103 + </td> </tr>
  104 + </tbody>
80 </table> 105 </table>
81 </td> 106 </td>
82 </tr> 107 </tr>
@@ -89,12 +114,20 @@ @@ -89,12 +114,20 @@
89 114
90 <tr> 115 <tr>
91 <td> 116 <td>
92 - <table class = "operating-system-info dynamic-table">  
93 - <%= content_tag('tr', content_tag('td', _("Operating System")) + content_tag('td', '')) %>  
94 - <% profile.software_info.operating_systems.each do |operating_system| %>  
95 - <%= display_mpog_field(_('Name:'), operating_system.operating_system_name , :name, true) %>  
96 - <%= display_mpog_field(_('Version:'), operating_system, :version, true) %>  
97 - <% end %> 117 + <table class = "operating-system-info">
  118 + <thead>
  119 + <tr>
  120 + <th colspan="2"><%= _("Operating System") %></th>
  121 + <th></th>
  122 + </tr>
  123 + </thead>
  124 +
  125 + <tbody>
  126 + <% profile.software_info.operating_systems.each do |operating_system| %>
  127 + <%= display_mpog_field(_('Name:'), operating_system.operating_system_name , :name, true) %>
  128 + <%= display_mpog_field(_('Version:'), operating_system, :version, true) %>
  129 + <% end %>
  130 + </tbody>
98 </table> 131 </table>
99 </td> 132 </td>
100 </tr> 133 </tr>