Commit 57ccda1eb997e16e5f1fd011f18c42d778060133

Authored by Fabio Teixeira
Committed by Gabriela Navarro
1 parent 4a6a65c7

Refactoty SoftwareDownload block javascript

public/blocks/software-download.js
1 modulejs.define('SoftwareDownload', ['jquery'], function($) { 1 modulejs.define('SoftwareDownload', ['jquery'], function($) {
2 'use strict'; 2 'use strict';
3 3
4 - function add_new_link(){  
5 - var newDownload = $(window.download_list_template);  
6 - newDownload.attr('data-counter-id', 1);  
7 - $("#droppable-list-downloads").append(newDownload);  
8 - }  
9 -  
10 -  
11 - function delete_link(add_element){  
12 - var deleteDownload = $(add_element).parent().parent().parent();  
13 - deleteDownload.remove();  
14 - } 4 + var $download_html_template;
15 5
  6 + function getDownloadListTemplate() {
  7 + var block_template = sessionStorage.getItem('download_list_block_template');
16 8
17 - function get_download_list_template() {  
18 - var blockTemplate = sessionStorage.getItem('download_list_block_template');  
19 -  
20 - if(blockTemplate && blockTemplate.length > 0) {  
21 - window.download_list_template = blockTemplate; 9 + if(block_template && block_template.length > 0) {
  10 + $download_html_template = block_template;
22 } else { 11 } else {
23 $.get('/plugin/software_communities/get_block_template', function(response) { 12 $.get('/plugin/software_communities/get_block_template', function(response) {
24 - window.download_list_template = response; 13 + $download_html_template = response;
25 sessionStorage.setItem('download_list_block_template', response); 14 sessionStorage.setItem('download_list_block_template', response);
26 }); 15 });
27 } 16 }
28 } 17 }
29 18
30 19
  20 + function SoftwareDownload() {
  21 + getDownloadListTemplate();
  22 + }
  23 +
  24 +
  25 + SoftwareDownload.prototype.addNewDonwload = function() {
  26 + var new_download = $($download_html_template);
  27 + $("#droppable-list-downloads").append(new_download);
  28 + }
  29 +
  30 +
  31 + SoftwareDownload.prototype.deleteDownload = function(element) {
  32 + var delete_download = $(element).parent().parent().parent().remove();
  33 + }
  34 +
  35 +
31 return { 36 return {
32 isCurrentPage: function() { 37 isCurrentPage: function() {
33 return $('.download-block').length !== 0; 38 return $('.download-block').length !== 0;
@@ -35,12 +40,7 @@ modulejs.define('SoftwareDownload', ['jquery'], function($) { @@ -35,12 +40,7 @@ modulejs.define('SoftwareDownload', ['jquery'], function($) {
35 40
36 41
37 init: function() { 42 init: function() {
38 - window.add_new_link = add_new_link;  
39 - window.delete_link = delete_link;  
40 -  
41 - if( window.download_list_template === undefined ) {  
42 - get_download_list_template();  
43 - } 43 + window.softwareDownload = new SoftwareDownload();
44 } 44 }
45 } 45 }
46 }); 46 });
views/box_organizer/_download_block.html.erb
@@ -8,22 +8,10 @@ @@ -8,22 +8,10 @@
8 </ul> 8 </ul>
9 9
10 <div id ="droppable-list-downloads"> 10 <div id ="droppable-list-downloads">
11 - <% if @block.downloads.count > 0 %>  
12 - <% for download in @block.downloads %>  
13 - <%= render :partial => 'download_list', :locals => {:download => download} %>  
14 - <% end %>  
15 - <% else %>  
16 - <div id = "new">  
17 - <% new = {'icon' => 'ok'} %>  
18 - <%= render :partial => 'download_list', :locals => {:download => new} %>  
19 - </div>  
20 - <% end %> 11 + <% @block.downloads.each do |download| %>
  12 + <%= render :partial => 'download_list', :locals => {:download => download} %>
  13 + <% end %>
21 </div> 14 </div>
22 15
23 -<div id ="new-template" style="display: none">  
24 - <% new = {'icon' => 'ok'} %>  
25 - <%= render :partial => 'download_list', :locals => {:download => new} %>  
26 -</div>  
27 -  
28 -<%= link_to_function _('New link'), 'add_new_link(); return false', :class => 'button icon-add with-text download-new-link-button' %> 16 + <%= link_to_function _('New link'), 'softwareDownload.addNewDonwload(); return false', :class => 'button icon-add with-text download-new-link-button' %>
29 </div> 17 </div>
views/box_organizer/_download_list.html.erb
1 <li> 1 <li>
2 -<ul class="download-list-row">  
3 - <li><%= text_field_tag('block[downloads][][name]', download[:name], :class => "block_download_name") %></li>  
4 - <li><%= text_field_tag('block[downloads][][link]', download[:link], :class => "block_download_link") %></li>  
5 - <li><%= text_field_tag('block[downloads][][software_description]', download[:software_description], :class => "block_download_software_description") %></li>  
6 - <li><%= text_field_tag('block[downloads][][minimum_requirements]', download[:minimum_requirements], :class => "block_download_minimum_requirements") %></li>  
7 - <li><%= text_field_tag('block[downloads][][size]', download[:size], :class => "block_download_size") %></li>  
8 - <li><%= button_without_text(:delete, _('Delete'), "#" , { :onclick => 'delete_link(this); return false', :class=>"delete-link-list-row" }) %></li>  
9 -</ul> 2 + <ul class="download-list-row">
  3 + <li><%= text_field_tag('block[downloads][][name]', download[:name], :class => "block_download_name") %></li>
  4 + <li><%= text_field_tag('block[downloads][][link]', download[:link], :class => "block_download_link") %></li>
  5 + <li><%= text_field_tag('block[downloads][][software_description]', download[:software_description], :class => "block_download_software_description") %></li>
  6 + <li><%= text_field_tag('block[downloads][][minimum_requirements]', download[:minimum_requirements], :class => "block_download_minimum_requirements") %></li>
  7 + <li><%= text_field_tag('block[downloads][][size]', download[:size], :class => "block_download_size") %></li>
  8 + <li><%= button_without_text(:delete, _('Delete'), "#" , { :onclick => 'softwareDownload.deleteDownload(this); return false', :class=>"delete-link-list-row" }) %></li>
  9 + </ul>
10 </li> 10 </li>
views/box_organizer/_download_list_template.html.erb
1 <li> 1 <li>
2 -<ul class="download-list-row">  
3 - <li><%= text_field_tag('block[downloads][][name]', '', :class => "block_download_name") %></li>  
4 - <li><%= text_field_tag('block[downloads][][link]', '', :class => "block_download_link") %></li>  
5 - <li><%= text_field_tag('block[downloads][][software_description]', '', :class => "block_download_software_description") %></li>  
6 - <li><%= text_field_tag('block[downloads][][minimum_requirements]', '', :class => "block_download_minimum_requirements") %></li>  
7 - <li><%= text_field_tag('block[downloads][][size]', '', :class => "block_download_size") %></li>  
8 - <li><%= button_without_text(:delete, _('Delete'), "#" , { :onclick => 'delete_link(this); return false', :class=>"delete-link-list-row" }) %></li>  
9 -</ul> 2 + <ul class="download-list-row">
  3 + <li><%= text_field_tag('block[downloads][][name]', '', :class => "block_download_name") %></li>
  4 + <li><%= text_field_tag('block[downloads][][link]', '', :class => "block_download_link") %></li>
  5 + <li><%= text_field_tag('block[downloads][][software_description]', '', :class => "block_download_software_description") %></li>
  6 + <li><%= text_field_tag('block[downloads][][minimum_requirements]', '', :class => "block_download_minimum_requirements") %></li>
  7 + <li><%= text_field_tag('block[downloads][][size]', '', :class => "block_download_size") %></li>
  8 + <li><%= button_without_text(:delete, _('Delete'), "#" , { :onclick => 'softwareDownload.deleteDownload(this); return false', :class=>"delete-link-list-row" }) %></li>
  9 + </ul>
10 </li> 10 </li>