software_communities_plugin_controller.rb
1.26 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
# apenas software
require 'csv'
class SoftwareCommunitiesPluginController < ApplicationController
def get_license_data
return render :json=>{} if !request.xhr? || params[:query].nil?
data = if params[:query].empty?
LicenseInfo.all
else
LicenseInfo.where("version ILIKE ?", "%#{params[:query]}%").select("id, version")
end
render :json=> data.collect { |license|
{:id=>license.id, :label=>license.version}
}
end
def get_block_template
render 'box_organizer/_download_list_template', :layout => false
end
def get_field_data
condition = !request.xhr? || params[:query].nil? || params[:field].nil?
return render :json=>{} if condition
model = get_model_by_params_field
data = model.where("name ILIKE ?", "%#{params[:query]}%").select("id, name")
.collect { |db|
{:id=>db.id, :label=>db.name}
}
other = [model.select("id, name").last].collect { |db|
{:id=>db.id, :label=>db.name}
}
# Always has other in the list
data |= other
render :json=> data
end
protected
def get_model_by_params_field
case params[:field]
when "software_language"
return ProgrammingLanguage
else
return DatabaseDescription
end
end
end