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 | 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> |