diff --git a/lib/database_helper.rb b/lib/database_helper.rb index 42248fa..f435078 100644 --- a/lib/database_helper.rb +++ b/lib/database_helper.rb @@ -27,7 +27,7 @@ module DatabaseHelper true end - def self.database_as_tables(list_databases, have_delete_button = nil) + def self.database_as_tables(list_databases) extend( ActionView::Helpers::TagHelper, ActionView::Helpers::FormTagHelper, @@ -36,18 +36,18 @@ module DatabaseHelper ApplicationHelper ) - return database_html_structure({:database_description_id => 1, :version => "", :operating_system => ""}, have_delete_button) if list_databases.nil? + return database_html_structure({:database_description_id => 1, :version => "", :operating_system => ""}) if list_databases.nil? lambdas_list = [] - + list_databases.each do |database| - lambdas_list << database_html_structure(database, have_delete_button) + lambdas_list << database_html_structure(database) end lambdas_list end - def self.database_html_structure(database_data, have_delete_button = nil) + def self.database_html_structure(database_data) Proc::new do content_tag('table', content_tag('tr', @@ -65,15 +65,7 @@ module DatabaseHelper content_tag('tr', content_tag('td', label_tag(_("Operating System")))+ content_tag('td', text_field_tag("database[][operating_system]", database_data[:operating_system]))+ - - if have_delete_button.nil? - content_tag('td', - button_without_text(:delete, _('Delete'), "#" , :class=>"delete-dynamic-table"), - :align => 'right' - ) - else - content_tag('td') - end + content_tag('td', button_without_text(:delete, _('Delete'), "#" , :class=>"delete-dynamic-table"), :align => 'right') ), :class => 'dynamic-table database-table' ) end diff --git a/lib/software_language_helper.rb b/lib/software_language_helper.rb index 8ec6c47..a98a2a8 100644 --- a/lib/software_language_helper.rb +++ b/lib/software_language_helper.rb @@ -27,7 +27,7 @@ module SoftwareLanguageHelper true end - def self.language_as_tables(list_languages, have_delete_button = true, show_information = false) + def self.language_as_tables(list_languages, show_information = false) extend( ActionView::Helpers::TagHelper, ActionView::Helpers::FormTagHelper, @@ -39,10 +39,10 @@ module SoftwareLanguageHelper lambdas_list = [] if not show_information - return language_html_structure({:programming_language_id => 1, :version => "", :operating_system => ""}, have_delete_button) if list_languages.nil? + return language_html_structure({:programming_language_id => 1, :version => "", :operating_system => ""}) if list_languages.nil? list_languages.each do |language| - lambdas_list << language_html_structure(language, have_delete_button) + lambdas_list << language_html_structure(language) end else @@ -56,7 +56,7 @@ module SoftwareLanguageHelper lambdas_list end - def self.language_html_structure(language_data, have_delete_button = true) + def self.language_html_structure(language_data) Proc::new do content_tag('table', content_tag('tr', @@ -74,15 +74,7 @@ module SoftwareLanguageHelper content_tag('tr', content_tag('td', label_tag(_("Operating System")))+ content_tag('td', text_field_tag("language[][operating_system]", language_data[:operating_system]))+ - - if have_delete_button - content_tag('td', - button_without_text(:delete, _('Delete'), "#" , :class=>"delete-dynamic-table"), - :align => 'right' - ) - else - content_tag('td', "") - end + content_tag('td', button_without_text(:delete, _('Delete'), "#" , :class=>"delete-dynamic-table"), :align => 'right') ), :class => 'dynamic-table software-language-table' ) end diff --git a/public/mpog-software-validations.js b/public/mpog-software-validations.js index 9f0a6aa..d3b5cbf 100644 --- a/public/mpog-software-validations.js +++ b/public/mpog-software-validations.js @@ -1,133 +1,125 @@ -function delete_dynamic_table() { - var button = jQuery(".delete-dynamic-table"); +(function(){ + function delete_dynamic_table() { + var button = jQuery(".delete-dynamic-table"); - button.each(function(){ - var table = jQuery(this).parent().parent().parent().parent(); - var color = table.css("background-color"); + button.each(function(){ + var table = jQuery(this).parent().parent().parent().parent(); + var color = table.css("background-color"); - jQuery(this).click(function(){ - if( table.hasClass("software-language-table") && has_more_than_one("software-language-table")) - table.remove(); - - if( table.hasClass("database-table") && has_more_than_one("database-table")) + jQuery(this).click(function(){ table.remove(); + return false; + }).mouseover(function(){ + table.css("background-color", "#eee"); + }).mouseout(function(){ + table.css("background-color", color); + }); + }); + } - if( !table.hasClass("software-language-table") && !table.hasClass("database-table") ) - table.remove(); + function has_more_than_one(table_class) { + return (jQuery("."+table_class).length > 2); // One is always added by defaul and its hidden + } - return false; - }).mouseover(function(){ - table.css("background-color", "#eee"); - }).mouseout(function(){ - table.css("background-color", color); - }); - }); -} - -function has_more_than_one(table_class) { - return (jQuery("."+table_class).length > 2); // One is always added by defaul and its hidden -} - -function add_dynamic_table(element_id, content) { - Element.insert(element_id, {bottom: content}); -} - -function get_license_link(select_id){ - var selected = jQuery('#'+select_id).selected().val(); - var link = jQuery("#version_" + selected).val(); - - jQuery("#version_link") - .attr("href", link) - .text(link); -} - -function hide_infos(){ - jQuery(".language-info").hide(); - jQuery(".database-info").hide(); - jQuery(".libraries-info").hide(); - jQuery(".operating-system-info").hide(); - jQuery(".language-button-hide").hide(); - jQuery(".database-button-hide").hide(); - jQuery(".libraries-button-hide").hide(); - jQuery(".operating-system-button-hide").hide(); -} - -jQuery(document).ready(function(){ - var dynamic_tables = ["dynamic-databases", "dynamic-languages", "dynamic-libraries","dynamic-operating_systems"]; - - delete_dynamic_table(); - - jQuery(".new-dynamic-table").click(function(){ - var link = jQuery(this); - - dynamic_tables.each(function(value){ - if( link.hasClass(value) ) { - var table_id = value.split("-")[1]; - - var table_html = jQuery("#table_structure_"+table_id).html(); - add_dynamic_table(table_id, table_html); - } - }); + function add_dynamic_table(element_id, content) { + Element.insert(element_id, {bottom: content}); + } - delete_dynamic_table(); - return false; - }); + function get_license_link(select_id){ + var selected = jQuery('#'+select_id).selected().val(); + var link = jQuery("#version_" + selected).val(); - hide_infos(); + jQuery("#version_link") + .attr("href", link) + .text(link); + } - jQuery(".language-button-hide").click(function(event){ - event.preventDefault(); + function hide_infos(){ jQuery(".language-info").hide(); - jQuery(".language-button-show").show(); + jQuery(".database-info").hide(); + jQuery(".libraries-info").hide(); + jQuery(".operating-system-info").hide(); jQuery(".language-button-hide").hide(); - }); + jQuery(".database-button-hide").hide(); + jQuery(".libraries-button-hide").hide(); + jQuery(".operating-system-button-hide").hide(); + } - jQuery(".language-button-show").click(function(event){ - event.preventDefault(); - jQuery(".language-info").show(); - jQuery(".language-button-show").hide(); - jQuery(".language-button-hide").show(); - }); + jQuery(document).ready(function(){ + var dynamic_tables = ["dynamic-databases", "dynamic-languages", "dynamic-libraries","dynamic-operating_systems"]; - jQuery(".operating-system-button-hide").click(function(event){ - event.preventDefault(); - jQuery(".operating-system-info").hide(); - jQuery(".operating-system-button-show").show(); - jQuery(".operating-system-button-hide").hide(); - }); + delete_dynamic_table(); - jQuery(".operating-system-button-show").click(function(event){ - event.preventDefault(); - jQuery(".operating-system-info").show(); - jQuery(".operating-system-button-show").hide(); - jQuery(".operating-system-button-hide").show(); - }); + jQuery(".new-dynamic-table").click(function(){ + var link = jQuery(this); - jQuery(".database-button-hide").click(function(event){ - event.preventDefault(); - jQuery(".database-info").hide(); - jQuery(".database-button-show").show(); - jQuery(".database-button-hide").hide(); - }); + dynamic_tables.each(function(value){ + if( link.hasClass(value) ) { + var table_id = value.split("-")[1]; - jQuery(".database-button-show").click(function(event){ - event.preventDefault(); - jQuery(".database-info").show(); - jQuery(".database-button-show").hide(); - jQuery(".database-button-hide").show(); - }); + var table_html = jQuery("#table_structure_"+table_id).html(); + add_dynamic_table(table_id, table_html); + } + }); - jQuery(".libraries-button-hide").click(function(event){ - event.preventDefault(); - jQuery(".libraries-info").hide(); - jQuery(".libraries-button-show").show(); - jQuery(".libraries-button-hide").hide(); - }); + delete_dynamic_table(); + return false; + }); + + jQuery(".language-button-hide").click(function(event){ + event.preventDefault(); + jQuery(".language-info").hide(); + jQuery(".language-button-show").show(); + jQuery(".language-button-hide").hide(); + }); + + jQuery(".language-button-show").click(function(event){ + event.preventDefault(); + jQuery(".language-info").show(); + jQuery(".language-button-show").hide(); + jQuery(".language-button-hide").show(); + }); - jQuery(".libraries-button-show").click(function(event){ - event.preventDefault(); - jQuery(".libraries-info").show(); - jQuery(".libraries-button-show").hide(); - jQuery(".libraries-button-hide").show(); + jQuery(".operating-system-button-hide").click(function(event){ + event.preventDefault(); + jQuery(".operating-system-info").hide(); + jQuery(".operating-system-button-show").show(); + jQuery(".operating-system-button-hide").hide(); + }); + + jQuery(".operating-system-button-show").click(function(event){ + event.preventDefault(); + jQuery(".operating-system-info").show(); + jQuery(".operating-system-button-show").hide(); + jQuery(".operating-system-button-hide").show(); + }); + + jQuery(".database-button-hide").click(function(event){ + event.preventDefault(); + jQuery(".database-info").hide(); + jQuery(".database-button-show").show(); + jQuery(".database-button-hide").hide(); + }); + + jQuery(".database-button-show").click(function(event){ + event.preventDefault(); + jQuery(".database-info").show(); + jQuery(".database-button-show").hide(); + jQuery(".database-button-hide").show(); + }); + + jQuery(".libraries-button-hide").click(function(event){ + event.preventDefault(); + jQuery(".libraries-info").hide(); + jQuery(".libraries-button-show").show(); + jQuery(".libraries-button-hide").hide(); + }); + + jQuery(".libraries-button-show").click(function(event){ + event.preventDefault(); + jQuery(".libraries-info").show(); + jQuery(".libraries-button-show").hide(); + jQuery(".libraries-button-hide").show(); + }); }); -}); +})(); diff --git a/public/mpog-software.js b/public/mpog-software.js index 833d9da..ef35eab 100644 --- a/public/mpog-software.js +++ b/public/mpog-software.js @@ -1,6 +1,24 @@ -jQuery(document).ready(function(){ - if(jQuery(".control-panel").size() > 0 && jQuery(".control-panel-edit-profile-group:contains('Software')").size() > 0 ) { - jQuery(".control-panel")[0].innerHTML = jQuery(".control-panel-edit-profile-group:contains('Software')")[0].outerHTML + jQuery(".control-panel")[0].innerHTML - jQuery(".control-panel-edit-profile-group:contains('Software')")[1].remove() +(function(){ + function hide_infos(){ + jQuery(".language-info").hide(); + jQuery(".database-info").hide(); + jQuery(".libraries-info").hide(); + jQuery(".operating-system-info").hide(); + jQuery(".language-button-hide").hide(); + jQuery(".database-button-hide").hide(); + jQuery(".libraries-button-hide").hide(); + jQuery(".operating-system-button-hide").hide(); } -}); \ No newline at end of file + + function add_software_on_control_panel() { + if(jQuery(".control-panel").size() > 0 && jQuery(".control-panel-edit-profile-group:contains('Software')").size() > 0 ) { + jQuery(".control-panel")[0].innerHTML = jQuery(".control-panel-edit-profile-group:contains('Software')")[0].outerHTML + jQuery(".control-panel")[0].innerHTML + jQuery(".control-panel-edit-profile-group:contains('Software')")[1].remove(); + } + } + + jQuery(document).ready(function(){ + add_software_on_control_panel(); + hide_infos(); + }); +})(); \ No newline at end of file -- libgit2 0.21.2