diff --git a/lib/database_helper.rb b/lib/database_helper.rb index 4b32afe..3f6e90b 100644 --- a/lib/database_helper.rb +++ b/lib/database_helper.rb @@ -43,11 +43,8 @@ class DatabaseHelper < DynamicTableHelper end def self.database_as_tables(list_databases, disabled=false) - model_list = if list_databases.blank? - [{:database_description_id => "", :version => ""}] - else - list_databases - end + model_list = list_databases + model_list ||= [{:database_description_id => "", :version => ""}] models_as_tables model_list, "database_html_structure", disabled end @@ -69,12 +66,16 @@ class DatabaseHelper < DynamicTableHelper name: { value: database_name, id: database_id, + hidden: true, + autocomplete: true }, version: { - value: database_data[:version] + value: database_data[:version], + hidden: true, + delete: true } } - + DATA[:license].delete(:value) table_html_structure(data, disabled) end diff --git a/lib/dynamic_table_helper.rb b/lib/dynamic_table_helper.rb index bb646fc..34aa188 100644 --- a/lib/dynamic_table_helper.rb +++ b/lib/dynamic_table_helper.rb @@ -21,19 +21,16 @@ class DynamicTableHelper DATA = { name: { label: LABEL_TEXT[:name], - hidden: true, - autocomplete: true, name: COLLUMN_NAME[:name], }, version: { label: LABEL_TEXT[:version], name: COLLUMN_NAME[:version], - hidden: true, - delete: true, } , license: { label: LABEL_TEXT[:license], name: COLLUMN_NAME[:license], + delete: true } } @@disabled = false @@ -58,7 +55,7 @@ class DynamicTableHelper self.table_line(row_data[:version]) ] - if row_data[:license].has_key? :value + if row_data[:license].has_key?(:value) table_line_data << self.table_line(row_data[:license]) end diff --git a/lib/library_helper.rb b/lib/library_helper.rb index 88bd1de..8e84f52 100644 --- a/lib/library_helper.rb +++ b/lib/library_helper.rb @@ -1,4 +1,6 @@ -module LibraryHelper +class LibraryHelper < DynamicTableHelper + MODEL_NAME ="library" + def self.list_libraries new_libraries return [] if new_libraries.nil? or new_libraries.length == 0 list_libraries = [] @@ -26,79 +28,34 @@ module LibraryHelper true end - def self.library_as_tables list_libraries - extend( - ActionView::Helpers::TagHelper, - ActionView::Helpers::FormTagHelper, - ActionView::Helpers::UrlHelper, - ApplicationHelper - ) - - return library_html_structure( - { - :name=>"", - :version=>"", - :license=>"" - } - ) if list_libraries.nil? - - lambdas_list = [] + def self.libraries_as_tables list_libraries, disabled=false + model_list = list_libraries + model_list ||= [{:name=>"", :version=>"", :license=>""}] - list_libraries.each do |library| - lambdas_list << library_html_structure(library) - end - - lambdas_list + models_as_tables model_list, "library_html_structure", disabled end - def self.library_html_structure library_data - Proc::new do - content_tag( - 'table', - content_tag( - 'tr', - content_tag('td', label_tag(_("Name")))+ - content_tag( - 'td', - text_field_tag("library[][name]", library_data[:name]) - )+ - content_tag('td') - )+ - - content_tag( - 'tr', - content_tag('td', label_tag(_("Version")))+ - content_tag( - 'td', - text_field_tag("library[][version]", library_data[:version]) - )+ - content_tag('td') - )+ - - content_tag( - 'tr', - content_tag('td', label_tag(_("License")))+ - content_tag( - 'td', - text_field_tag("library[][license]", library_data[:license])) + - content_tag( - 'td', - button_without_text( - :delete, - _('Delete'), - "#" , - :class=>"delete-dynamic-table" - ), - :align => 'right' - ) - ), + def self.library_html_structure library_data, disabled + data = { + model_name: MODEL_NAME, + name: { + value: library_data[:name], + hidden: false, + autocomplete: false + }, + version: { + value: library_data[:version], + delete: false + }, + license: { + value: library_data[:license] + } + } - :class => 'dynamic-table library-table' - ) - end + table_html_structure(data, disabled) end def self.add_dynamic_table - library_as_tables(nil).call + libraries_as_tables(nil).first.call end end diff --git a/lib/mpog_software_plugin.rb b/lib/mpog_software_plugin.rb index 6bd6e9e..5e9cf62 100644 --- a/lib/mpog_software_plugin.rb +++ b/lib/mpog_software_plugin.rb @@ -5,7 +5,6 @@ class MpogSoftwarePlugin < Noosfero::Plugin include ActionView::Helpers::JavaScriptHelper include ActionView::Helpers::AssetTagHelper include FormsHelper - include LibraryHelper include ActionView::Helpers include ActionDispatch::Routing include Rails.application.routes.url_helpers @@ -73,8 +72,11 @@ class MpogSoftwarePlugin < Noosfero::Plugin def profile_tabs if context.profile.community? - profile_tabs_software if context.profile.software? - profile_tabs_institution + if context.profile.software? + profile_tabs_software + elsif context.profile.institution? + profile_tabs_institution + end end end diff --git a/lib/software_language_helper.rb b/lib/software_language_helper.rb index a3be94c..4d7de2c 100644 --- a/lib/software_language_helper.rb +++ b/lib/software_language_helper.rb @@ -42,11 +42,8 @@ class SoftwareLanguageHelper < DynamicTableHelper end def self.language_as_tables(list_languages, disabled=false) - model_list = if list_languages.blank? - [{:programming_language_id => "", :version => ""}] - else - list_languages - end + model_list = list_languages + model_list ||= [{:programming_language_id => "", :version => ""}] models_as_tables model_list, "language_html_structure", disabled end @@ -68,12 +65,16 @@ class SoftwareLanguageHelper < DynamicTableHelper name: { value: language_name, id: language_id, + hidden: true, + autocomplete: true }, version: { - value: language_data[:version] + value: language_data[:version], + hidden: true, + delete: true } } - + DATA[:license].delete(:value) table_html_structure(data, disabled) end diff --git a/views/mpog_software_plugin_myprofile/_database_fields.html.erb b/views/mpog_software_plugin_myprofile/_database_fields.html.erb index f53fa55..e0b994e 100644 --- a/views/mpog_software_plugin_myprofile/_database_fields.html.erb +++ b/views/mpog_software_plugin_myprofile/_database_fields.html.erb @@ -1,7 +1,7 @@ <%= fields_for :database_description, @database_description do |db| %>
- <% database = [] if database.nil? %> + <% database = [] if database.blank? %> <% DatabaseHelper.database_as_tables(database).each do |tab| %> <%= tab.call %> <%end%> diff --git a/views/mpog_software_plugin_myprofile/_language_fields.html.erb b/views/mpog_software_plugin_myprofile/_language_fields.html.erb index 6a56f6a..a7d31a1 100644 --- a/views/mpog_software_plugin_myprofile/_language_fields.html.erb +++ b/views/mpog_software_plugin_myprofile/_language_fields.html.erb @@ -1,7 +1,7 @@ <%= fields_for :software_language, @software_language do |lng| %>
- <% languages = [] if languages.nil? %> + <% languages = [] if languages.blank? %> <% SoftwareLanguageHelper.language_as_tables(languages).each do |tab| %> <%= tab.call %> <%end%> diff --git a/views/mpog_software_plugin_myprofile/_library_fields.html.erb b/views/mpog_software_plugin_myprofile/_library_fields.html.erb index 2fea663..332654b 100644 --- a/views/mpog_software_plugin_myprofile/_library_fields.html.erb +++ b/views/mpog_software_plugin_myprofile/_library_fields.html.erb @@ -1,8 +1,8 @@ <%= fields_for :library ,@library do |lib| %>
- <% libraries = [] if libraries.nil? %> - <% LibraryHelper.library_as_tables(libraries).each do |tab| %> + <% libraries = [] if libraries.blank? %> + <% LibraryHelper.libraries_as_tables(libraries).each do |tab| %> <%= tab.call %> <% end %>
diff --git a/views/profile/_software_tab.html.erb b/views/profile/_software_tab.html.erb index 56b9b59..c62a9e6 100644 --- a/views/profile/_software_tab.html.erb +++ b/views/profile/_software_tab.html.erb @@ -30,13 +30,22 @@ - - <%= content_tag('tr', content_tag('td', _("Libraries")) + content_tag('td', '')) %> - <% profile.software_info.libraries.each do |library| %> - <%= display_mpog_field(_('Name:'), library, :name, true) %> - <%= display_mpog_field(_('Version:'), library, :version, true) %> - <%= display_mpog_field(_('License:'), library, :license, true) %> - <% end %> +
+ + + + + + + + + +
<%= _("Libraries") %>
+ <% libraries = profile.software_info.libraries %> + <% LibraryHelper.libraries_as_tables(libraries, true).each do |tab| %> + <%= tab.call %> + <%end%> +
@@ -49,14 +58,22 @@ - - <%= content_tag('tr', content_tag('td', _("Software Databases")) + content_tag('td', '')) %> - +
- <% databases = profile.software_info.software_databases %> - <% DatabaseHelper.database_as_tables(databases, true).each do |tab| %> - <%= tab.call %> - <%end%> -
+ + + + + + + + + +
<%= _("Software Databases") %>
+ <% databases = profile.software_info.software_databases %> + <% DatabaseHelper.database_as_tables(databases, true).each do |tab| %> + <%= tab.call %> + <%end%> +
@@ -69,14 +86,22 @@ - - <%= content_tag('tr', content_tag('td', _("Software Languages")) + content_tag('td', '')) %> - +
- <% languages = profile.software_info.software_languages %> - <% SoftwareLanguageHelper.language_as_tables(languages, true).each do |tab| %> - <%= tab.call %> - <%end%> -
+ + + + + + + + + +
<%= _("Software Languages") %>
+ <% languages = profile.software_info.software_languages %> + <% SoftwareLanguageHelper.language_as_tables(languages, true).each do |tab| %> + <%= tab.call %> + <%end%> +
@@ -89,12 +114,20 @@ - - <%= content_tag('tr', content_tag('td', _("Operating System")) + content_tag('td', '')) %> - <% profile.software_info.operating_systems.each do |operating_system| %> - <%= display_mpog_field(_('Name:'), operating_system.operating_system_name , :name, true) %> - <%= display_mpog_field(_('Version:'), operating_system, :version, true) %> - <% end %> +
+ + + + + + + + + <% profile.software_info.operating_systems.each do |operating_system| %> + <%= display_mpog_field(_('Name:'), operating_system.operating_system_name , :name, true) %> + <%= display_mpog_field(_('Version:'), operating_system, :version, true) %> + <% end %> +
<%= _("Operating System") %>
-- libgit2 0.21.2