Commit 0ea945930459a774f00f9e34045b8d0540ede5d7
1 parent
95558007
Exists in
refactor_download_block
Adds formsets to block edition
Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com> Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com> Signed-off-by: ArthurJahn <stutrzbecher@gmail.com>
Showing
7 changed files
with
69 additions
and
74 deletions
Show diff stats
src/noosfero-spb/software_communities/controllers/software_communities_plugin_controller.rb
| ... | ... | @@ -14,13 +14,6 @@ class SoftwareCommunitiesPluginController < ApplicationController |
| 14 | 14 | |
| 15 | 15 | end |
| 16 | 16 | |
| 17 | - def get_block_template | |
| 18 | - # render 'box_organizer/_download_list_template', :layout => false | |
| 19 | - profile = Profile.find_by_identifier(params[:profile]) | |
| 20 | - downloads_folder = Folder.where(name: "Downloads", type: "Folder", profile_id: profile.id) | |
| 21 | - render 'box_organizer/_download_uploaded_files', :locals=>{ :uploaded_files => get_node(downloads_folder) } | |
| 22 | - end | |
| 23 | - | |
| 24 | 17 | def get_field_data |
| 25 | 18 | condition = !request.xhr? || params[:query].nil? || params[:field].nil? |
| 26 | 19 | return render :json=>{} if condition |
| ... | ... | @@ -48,15 +41,4 @@ class SoftwareCommunitiesPluginController < ApplicationController |
| 48 | 41 | return DatabaseDescription unless params[:field] == "software_language" |
| 49 | 42 | return ProgrammingLanguage |
| 50 | 43 | end |
| 51 | - | |
| 52 | - def get_node(articles) | |
| 53 | - nodes = [] | |
| 54 | - articles.each do |article| | |
| 55 | - if article.type == "UploadedFile" | |
| 56 | - nodes << article | |
| 57 | - end | |
| 58 | - nodes += get_node(article.children) | |
| 59 | - end | |
| 60 | - nodes | |
| 61 | - end | |
| 62 | 44 | end | ... | ... |
src/noosfero-spb/software_communities/lib/download_block.rb
| ... | ... | @@ -33,4 +33,22 @@ class DownloadBlock < Block |
| 33 | 33 | def cacheable? |
| 34 | 34 | false |
| 35 | 35 | end |
| 36 | + | |
| 37 | + def uploaded_files | |
| 38 | + downloads_folder = Folder.where(name: "Downloads", type: "Folder", profile_id: owner.id) | |
| 39 | + get_nodes(downloads_folder) | |
| 40 | + end | |
| 41 | + | |
| 42 | + private | |
| 43 | + | |
| 44 | + def get_nodes(folder) | |
| 45 | + nodes = [] | |
| 46 | + folder.each do |article| | |
| 47 | + if article.type == "UploadedFile" | |
| 48 | + nodes << article | |
| 49 | + end | |
| 50 | + nodes += get_nodes(article.children) | |
| 51 | + end | |
| 52 | + nodes | |
| 53 | + end | |
| 36 | 54 | end | ... | ... |
src/noosfero-spb/software_communities/public/blocks/software-download.js
| 1 | 1 | modulejs.define('SoftwareDownload', ['jquery', 'NoosferoRoot'], function($, NoosferoRoot) { |
| 2 | 2 | 'use strict'; |
| 3 | 3 | |
| 4 | - var AJAX_URL = { | |
| 5 | - get_download_template: | |
| 6 | - NoosferoRoot.urlWithSubDirectory("/plugin/software_communities/get_block_template") | |
| 7 | - }; | |
| 8 | - | |
| 9 | - var $download_html_template; | |
| 10 | - | |
| 11 | - function getDownloadListTemplate() { | |
| 12 | - $.get(AJAX_URL.get_download_template, { profile: noosfero.profile }) | |
| 13 | - .done(function(response) { | |
| 14 | - $download_html_template = response; | |
| 15 | - }); | |
| 16 | - } | |
| 17 | - | |
| 18 | - | |
| 19 | 4 | function SoftwareDownload() { |
| 20 | - getDownloadListTemplate(); | |
| 21 | 5 | } |
| 22 | 6 | |
| 23 | 7 | |
| 24 | 8 | SoftwareDownload.prototype.addNewDonwload = function() { |
| 25 | - var new_download = $($download_html_template); | |
| 9 | + var new_download = $('#download-list-item-template').html(); | |
| 26 | 10 | $("#droppable-list-downloads").append(new_download); |
| 27 | 11 | } |
| 28 | 12 | |
| 13 | + SoftwareDownload.prototype.selectFile = function(element) { | |
| 14 | + var path = $(element).find('.file-path').html(); | |
| 15 | + var size = $(element).find('.file-size').html(); | |
| 16 | + | |
| 17 | + var download_option = $(element).find('.file-size').closest('.download-option'); | |
| 18 | + download_option.find('#block_downloads__link').val(path); | |
| 19 | + download_option.find('#block_downloads__size').val(size); | |
| 20 | + } | |
| 29 | 21 | |
| 30 | 22 | SoftwareDownload.prototype.deleteDownload = function(element) { |
| 31 | 23 | var delete_download = $(element).parent().parent().parent().remove(); |
| 32 | 24 | } |
| 33 | 25 | |
| 34 | - | |
| 35 | 26 | return { |
| 36 | 27 | isCurrentPage: function() { |
| 37 | 28 | return $('.download-block').length !== 0; | ... | ... |
src/noosfero-spb/software_communities/views/box_organizer/_download_block.html.erb
| 1 | 1 | <div id='edit-download-block'> |
| 2 | 2 | |
| 3 | 3 | <h3><%= _('Download options') %></h3> |
| 4 | - <div id ="droppable-list-downloads"> | |
| 4 | + <div id="droppable-list-downloads"> | |
| 5 | 5 | <% @block.downloads.each do |download| %> |
| 6 | - <%= render :partial => 'download_list', :locals => {:download => download, :uploaded_files => uploaded_files} %> | |
| 6 | + <%= render :partial => 'download_list_item', :locals => {:download => download} %> | |
| 7 | 7 | <% end %> |
| 8 | 8 | </div> |
| 9 | 9 | |
| 10 | 10 | <%= link_to_function _('New link'), 'softwareDownload.addNewDonwload(); return false', :class => 'button icon-add with-text download-new-link-button' %> |
| 11 | + | |
| 12 | + <div id="download-list-item-template" style="display: none;"> | |
| 13 | + <%= render :partial => 'download_list_item' %> | |
| 14 | + </div> | |
| 11 | 15 | </div> | ... | ... |
src/noosfero-spb/software_communities/views/box_organizer/_download_file.html.erb
src/noosfero-spb/software_communities/views/box_organizer/_download_list.html.erb
| ... | ... | @@ -1,33 +0,0 @@ |
| 1 | -<li class='download-option download-forms'> | |
| 2 | - <ul> | |
| 3 | - <li> | |
| 4 | - <%= labelled_form_field(_('Name'), text_field_tag('block[downloads][][name]', (defined? download) ? download[:name] : '')) %> | |
| 5 | - </li> | |
| 6 | - <li> | |
| 7 | - <%= labelled_form_field(_('Link'), text_field_tag('block[downloads][][link]', (defined? download) ? download[:link] : '')) %> | |
| 8 | - <div> | |
| 9 | - <ul> | |
| 10 | - <% uploaded_files.each do |file| %> | |
| 11 | - <%= render :partial => 'download_file', :locals => {:file => file} %> | |
| 12 | - <% end %> | |
| 13 | - <li style="clear: both"> | |
| 14 | - </li> | |
| 15 | - </ul> | |
| 16 | - </div> | |
| 17 | - </li> | |
| 18 | - | |
| 19 | - <li> | |
| 20 | - <%= labelled_form_field(_('Platforms'), text_field_tag('block[downloads][][software_description]', (defined? download) ? download[:software_description] : '')) %> | |
| 21 | - </li> | |
| 22 | - | |
| 23 | - <li> | |
| 24 | - <%= labelled_form_field(_('Minimum Requirements'), text_field_tag('block[downloads][][minimum_requirements]', (defined? download) ? download[:minimum_requirements] : '')) %> | |
| 25 | - </li> | |
| 26 | - | |
| 27 | - <li> | |
| 28 | - <%= labelled_form_field(_('Size'), text_field_tag('block[downloads][][size]', (defined? download) ? download[:size] : '')) %> | |
| 29 | - </li> | |
| 30 | - | |
| 31 | - <li class='delete-download-button'><%= button_without_text(:delete, _('Delete'), "#" , { :onclick => 'softwareDownload.deleteDownload(this); return false', :class=>"delete-link-list-row" }) %></li> | |
| 32 | - </ul> | |
| 33 | -</li> |
src/noosfero-spb/software_communities/views/box_organizer/_download_list_item.html.erb
0 → 100644
| ... | ... | @@ -0,0 +1,33 @@ |
| 1 | +<li class='download-option download-forms'> | |
| 2 | + <ul> | |
| 3 | + <li> | |
| 4 | + <%= labelled_form_field(_('Name'), text_field_tag('block[downloads][][name]', (defined? download) ? download[:name] : '')) %> | |
| 5 | + </li> | |
| 6 | + <li> | |
| 7 | + <%= labelled_form_field(_('Link'), text_field_tag('block[downloads][][link]', (defined? download) ? download[:link] : '')) %> | |
| 8 | + <div class=<%= (defined? download) ? "closed" : "opened" %>> | |
| 9 | + <ul> | |
| 10 | + <% @block.uploaded_files.each do |file| %> | |
| 11 | + <%= render :partial => 'download_file', :locals => {:file => file} %> | |
| 12 | + <% end %> | |
| 13 | + <li style="clear: both"> | |
| 14 | + </li> | |
| 15 | + </ul> | |
| 16 | + </div> | |
| 17 | + </li> | |
| 18 | + | |
| 19 | + <li> | |
| 20 | + <%= labelled_form_field(_('Platforms'), text_field_tag('block[downloads][][software_description]', (defined? download) ? download[:software_description] : '')) %> | |
| 21 | + </li> | |
| 22 | + | |
| 23 | + <li> | |
| 24 | + <%= labelled_form_field(_('Minimum Requirements'), text_field_tag('block[downloads][][minimum_requirements]', (defined? download) ? download[:minimum_requirements] : '')) %> | |
| 25 | + </li> | |
| 26 | + | |
| 27 | + <li> | |
| 28 | + <%= labelled_form_field(_('Size'), text_field_tag('block[downloads][][size]', (defined? download) ? download[:size] : '')) %> | |
| 29 | + </li> | |
| 30 | + | |
| 31 | + <li class='delete-download-button'><%= button_without_text(:delete, _('Delete'), "#" , { :onclick => 'softwareDownload.deleteDownload(this); return false', :class=>"delete-link-list-row" }) %></li> | |
| 32 | + </ul> | |
| 33 | +</li> | ... | ... |