Commit d2f905f7d30020109a2ae559340a35d927e4fb84
Committed by
David Silva
1 parent
19330e12
Exists in
master
and in
5 other branches
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>
Showing
9 changed files
with
114 additions
and
123 deletions
Show diff stats
lib/database_helper.rb
| @@ -43,11 +43,8 @@ class DatabaseHelper < DynamicTableHelper | @@ -43,11 +43,8 @@ class DatabaseHelper < 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 < DynamicTableHelper | @@ -69,12 +66,16 @@ class DatabaseHelper < 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 < Noosfero::Plugin | @@ -5,7 +5,6 @@ class MpogSoftwarePlugin < 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 < Noosfero::Plugin | @@ -73,8 +72,11 @@ class MpogSoftwarePlugin < 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 < DynamicTableHelper | @@ -42,11 +42,8 @@ class SoftwareLanguageHelper < 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 < DynamicTableHelper | @@ -68,12 +65,16 @@ class SoftwareLanguageHelper < 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> |