# apenas software require 'csv' class SoftwareCommunitiesPluginController < ApplicationController def get_license_data return render :json=>{} if !request.xhr? || params[:query].nil? data = LicenseHelper.find_licenses(params[:query]) if params[:query] data ||= LicenseInfo.all render :json=> data.collect { |license| {:id=>license.id, :label=>license.version} } end def get_block_template # render 'box_organizer/_download_list_template', :layout => false profile = Profile.find_by_identifier(params[:profile]) downloads_folder = Folder.where(name: "Downloads", type: "Folder", profile_id: profile.id) render 'box_organizer/_download_uploaded_files', :locals=>{ :uploaded_files => get_node(downloads_folder) } 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 return DatabaseDescription unless params[:field] == "software_language" return ProgrammingLanguage end def get_node(articles) nodes = [] articles.each do |article| if article.type == "UploadedFile" nodes << article end nodes += get_node(article.children) end nodes end end