Commit 2b0ca56f1b385f5a1a42cf1d10487f1bb618cd4d

Authored by Fabio Teixeira
Committed by Gabriela Navarro
1 parent 3db6dbf0

Execute new_software's javascript only when needed

lib/software_communities_plugin.rb
@@ -128,6 +128,7 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin @@ -128,6 +128,7 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin
128 lib/auto-complete.js 128 lib/auto-complete.js
129 views/control-panel.js 129 views/control-panel.js
130 views/edit-software.js 130 views/edit-software.js
  131 + views/new-software.js
131 initializer.js 132 initializer.js
132 app.js 133 app.js
133 mpog-user-validations.js 134 mpog-user-validations.js
public/initializer.js
1 var dependencies = [ 1 var dependencies = [
2 'ControlPanel', 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 'use strict'; 9 'use strict';
9 10
10 11
@@ -18,6 +19,11 @@ modulejs.define('Initializer', dependencies, function(cp, es) { @@ -18,6 +19,11 @@ modulejs.define('Initializer', dependencies, function(cp, es) {
18 if( es.isEditSoftware() ) { 19 if( es.isEditSoftware() ) {
19 es.init(); 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 'use strict'; 2 'use strict';
3 3
4 var AJAX_URL = { 4 var AJAX_URL = {
5 get_field_data: 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,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 function hide_show_public_software_fields() { 49 function hide_show_public_software_fields() {
57 if ($("#software_public_software").is(":checked")) { 50 if ($("#software_public_software").is(":checked")) {
58 $(".public-software-fields").show(); 51 $(".public-software-fields").show();
@@ -71,34 +64,6 @@ modulejs.define('EditSoftware', ['jquery', 'NoosferoRoot', 'AutoComplete'], func @@ -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 return { 67 return {
103 isEditSoftware: function() { 68 isEditSoftware: function() {
104 return $("#especific-info").length === 1; 69 return $("#especific-info").length === 1;
@@ -194,7 +159,7 @@ modulejs.define('EditSoftware', ['jquery', 'NoosferoRoot', 'AutoComplete'], func @@ -194,7 +159,7 @@ modulejs.define('EditSoftware', ['jquery', 'NoosferoRoot', 'AutoComplete'], func
194 159
195 replace_software_creations_step(); 160 replace_software_creations_step();
196 161
197 - license_info_autocomplete(); 162 + NewSoftware.init();
198 } 163 }
199 } 164 }
200 }); 165 });
public/views/new-software.js 0 → 100644
@@ -0,0 +1,52 @@ @@ -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
1 -<%= stylesheet_link_tag('plugins/software_communities/mpog-software') %> 1 +<span id="new-software-page"></span>
2 2
3 <div class="software-step-info"> 3 <div class="software-step-info">
4 <h3><%= _("Step 1 - Software Creation")%></h3> 4 <h3><%= _("Step 1 - Software Creation")%></h3>