download_block.rb
1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
class DownloadBlock < Block
attr_accessible :show_name, :downloads
settings_items :show_name, :type => :boolean, :default => false
settings_items :downloads, :type => Array, :default => []
validate :download_values
def download_values
self.downloads = Download.validate_download_list(self.downloads)
end
def self.description
_('Download Stable Version')
end
def help
_('This block displays the stable version of a software.')
end
def content(args={})
block = self
s = show_name
lambda do |object|
render(
:file => 'blocks/download',
:locals => { :block => block, :show_name => s }
)
end
end
def cacheable?
false
end
def uploaded_files
downloads_folder = Folder.where(name: "Downloads", type: "Folder", profile_id: owner.id)
get_nodes(downloads_folder)
end
private
def get_nodes(folder)
nodes = []
folder.each do |article|
if article.type == "UploadedFile"
nodes << article
end
nodes += get_nodes(article.children)
end
nodes
end
end