Commit 57ccda1eb997e16e5f1fd011f18c42d778060133

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

Refactoty SoftwareDownload block javascript

public/blocks/software-download.js
1 1 modulejs.define('SoftwareDownload', ['jquery'], function($) {
2 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 11 } else {
23 12 $.get('/plugin/software_communities/get_block_template', function(response) {
24   - window.download_list_template = response;
  13 + $download_html_template = response;
25 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 36 return {
32 37 isCurrentPage: function() {
33 38 return $('.download-block').length !== 0;
... ... @@ -35,12 +40,7 @@ modulejs.define('SoftwareDownload', ['jquery'], function($) {
35 40  
36 41  
37 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 8 </ul>
9 9  
10 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 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 17 </div>
... ...
views/box_organizer/_download_list.html.erb
1 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 10 </li>
... ...
views/box_organizer/_download_list_template.html.erb
1 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 10 </li>
... ...