Commit 2b0ca56f1b385f5a1a42cf1d10487f1bb618cd4d
Committed by
Gabriela Navarro
1 parent
3db6dbf0
Exists in
master
and in
5 other branches
Execute new_software's javascript only when needed
Showing
5 changed files
with
65 additions
and
41 deletions
Show diff stats
lib/software_communities_plugin.rb
public/initializer.js
| 1 | 1 | var dependencies = [ |
| 2 | 2 | 'ControlPanel', |
| 3 | - 'EditSoftware' | |
| 3 | + 'EditSoftware', | |
| 4 | + 'NewSoftware' | |
| 4 | 5 | ]; |
| 5 | 6 | |
| 6 | 7 | |
| 7 | -modulejs.define('Initializer', dependencies, function(cp, es) { | |
| 8 | +modulejs.define('Initializer', dependencies, function(cp, es, ns) { | |
| 8 | 9 | 'use strict'; |
| 9 | 10 | |
| 10 | 11 | |
| ... | ... | @@ -18,6 +19,11 @@ modulejs.define('Initializer', dependencies, function(cp, es) { |
| 18 | 19 | if( es.isEditSoftware() ) { |
| 19 | 20 | es.init(); |
| 20 | 21 | } |
| 22 | + | |
| 23 | + | |
| 24 | + if( ns.isNewSoftware() ) { | |
| 25 | + ns.init(); | |
| 26 | + } | |
| 21 | 27 | } |
| 22 | 28 | }; |
| 23 | 29 | }); | ... | ... |
public/views/edit-software.js
| 1 | -modulejs.define('EditSoftware', ['jquery', 'NoosferoRoot', 'AutoComplete'], function($, NoosferoRoot, AutoComplete) { | |
| 1 | +modulejs.define('EditSoftware', ['jquery', 'NoosferoRoot', 'AutoComplete', 'NewSoftware'], function($, NoosferoRoot, AutoComplete, NewSoftware) { | |
| 2 | 2 | 'use strict'; |
| 3 | 3 | |
| 4 | 4 | var AJAX_URL = { |
| 5 | 5 | get_field_data: |
| 6 | - NoosferoRoot.urlWithSubDirectory("/plugin/software_communities/get_field_data"), | |
| 7 | - get_license_data: | |
| 8 | - NoosferoRoot.urlWithSubDirectory("/plugin/software_communities/get_license_data") | |
| 6 | + NoosferoRoot.urlWithSubDirectory("/plugin/software_communities/get_field_data") | |
| 9 | 7 | }; |
| 10 | 8 | |
| 11 | 9 | |
| ... | ... | @@ -48,11 +46,6 @@ modulejs.define('EditSoftware', ['jquery', 'NoosferoRoot', 'AutoComplete'], func |
| 48 | 46 | } |
| 49 | 47 | |
| 50 | 48 | |
| 51 | - function show_another_license_on_page_load() { | |
| 52 | - $("#license_info_id").trigger("change"); | |
| 53 | - } | |
| 54 | - | |
| 55 | - | |
| 56 | 49 | function hide_show_public_software_fields() { |
| 57 | 50 | if ($("#software_public_software").is(":checked")) { |
| 58 | 51 | $(".public-software-fields").show(); |
| ... | ... | @@ -71,34 +64,6 @@ modulejs.define('EditSoftware', ['jquery', 'NoosferoRoot', 'AutoComplete'], func |
| 71 | 64 | } |
| 72 | 65 | |
| 73 | 66 | |
| 74 | - function display_another_license_fields(selected) { | |
| 75 | - if( selected === "Another" ) { | |
| 76 | - $("#another_license").removeClass("hide-field"); | |
| 77 | - $("#version_link").addClass("hide-field"); | |
| 78 | - console.log($("#version_link")); | |
| 79 | - } else { | |
| 80 | - $("#another_license").addClass("hide-field"); | |
| 81 | - $("#version_link").removeClass("hide-field"); | |
| 82 | - } | |
| 83 | - } | |
| 84 | - | |
| 85 | - | |
| 86 | - function display_license_link_on_autocomplete(selected) { | |
| 87 | - var link = $("#version_" + selected.item.id).val(); | |
| 88 | - $("#version_link").attr("href", link); | |
| 89 | - | |
| 90 | - display_another_license_fields(selected.item.label); | |
| 91 | - } | |
| 92 | - | |
| 93 | - | |
| 94 | - function license_info_autocomplete() { | |
| 95 | - AutoComplete.enable( | |
| 96 | - "license_info", ".license_info_id", ".license_info_version", | |
| 97 | - AJAX_URL.get_license_data, display_license_link_on_autocomplete | |
| 98 | - ); | |
| 99 | - } | |
| 100 | - | |
| 101 | - | |
| 102 | 67 | return { |
| 103 | 68 | isEditSoftware: function() { |
| 104 | 69 | return $("#especific-info").length === 1; |
| ... | ... | @@ -194,7 +159,7 @@ modulejs.define('EditSoftware', ['jquery', 'NoosferoRoot', 'AutoComplete'], func |
| 194 | 159 | |
| 195 | 160 | replace_software_creations_step(); |
| 196 | 161 | |
| 197 | - license_info_autocomplete(); | |
| 162 | + NewSoftware.init(); | |
| 198 | 163 | } |
| 199 | 164 | } |
| 200 | 165 | }); | ... | ... |
| ... | ... | @@ -0,0 +1,52 @@ |
| 1 | +modulejs.define('NewSoftware', ['jquery', 'NoosferoRoot', 'AutoComplete'], function($, NoosferoRoot, AutoComplete) { | |
| 2 | + 'use strict'; | |
| 3 | + | |
| 4 | + var AJAX_URL = { | |
| 5 | + get_license_data: | |
| 6 | + NoosferoRoot.urlWithSubDirectory("/plugin/software_communities/get_license_data") | |
| 7 | + }; | |
| 8 | + | |
| 9 | + | |
| 10 | + function show_another_license_on_page_load() { | |
| 11 | + $("#license_info_id").trigger("change"); | |
| 12 | + } | |
| 13 | + | |
| 14 | + | |
| 15 | + function display_another_license_fields(selected) { | |
| 16 | + if( selected === "Another" ) { | |
| 17 | + $("#another_license").removeClass("hide-field"); | |
| 18 | + $("#version_link").addClass("hide-field"); | |
| 19 | + } else { | |
| 20 | + $("#another_license").addClass("hide-field"); | |
| 21 | + $("#version_link").removeClass("hide-field"); | |
| 22 | + } | |
| 23 | + } | |
| 24 | + | |
| 25 | + | |
| 26 | + function display_license_link_on_autocomplete(selected) { | |
| 27 | + var link = $("#version_" + selected.item.id).val(); | |
| 28 | + $("#version_link").attr("href", link); | |
| 29 | + | |
| 30 | + display_another_license_fields(selected.item.label); | |
| 31 | + } | |
| 32 | + | |
| 33 | + | |
| 34 | + function license_info_autocomplete() { | |
| 35 | + AutoComplete.enable( | |
| 36 | + "license_info", ".license_info_id", ".license_info_version", | |
| 37 | + AJAX_URL.get_license_data, display_license_link_on_autocomplete | |
| 38 | + ); | |
| 39 | + } | |
| 40 | + | |
| 41 | + | |
| 42 | + return { | |
| 43 | + init: function() { | |
| 44 | + license_info_autocomplete(); | |
| 45 | + }, | |
| 46 | + | |
| 47 | + | |
| 48 | + isNewSoftware: function() { | |
| 49 | + return $('#new-software-page').length === 1; | |
| 50 | + } | |
| 51 | + } | |
| 52 | +}); | ... | ... |
views/software_communities_plugin_myprofile/new_software.html.erb