Commit 57ccda1eb997e16e5f1fd011f18c42d778060133
Committed by
Gabriela Navarro
1 parent
4a6a65c7
Exists in
master
and in
5 other branches
Refactoty SoftwareDownload block javascript
Showing
4 changed files
with
43 additions
and
55 deletions
Show diff stats
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> | ... | ... |