Skip to content
Snippets Groups Projects
Commit 1d72b12f authored by Mauricio Giacomini Girardello's avatar Mauricio Giacomini Girardello
Browse files

Merge branch 'master' of gitlab.c3sl.ufpr.br:portalmec/portalmec

parents 058dc4ee 7f61979b
No related branches found
No related tags found
No related merge requests found
$(document).ready(function() {
$('#search input[name=query]').autocomplete({
minLength: 3,
source: function (request, response) {
$.ajax({
url: "/autocomplete",
data: { query: request.term, search_class: $('select[name="search_class"]').val()},
dataType: "json",
success: response,
error: function () {
response([]);
}
});
}
});
$('#search input[name=query]').autocomplete({
minLength: 3,
source: function (request, response) {
$.ajax({
url: "/autocomplete",
data: { query: request.term, search_class: $('select[name="search_class"]').val()},
dataType: "json",
success: response,
error: function () {
response([]);
}
});
},
select: function(event, ui) {
window.location.href = ui.item.url;
}
}).data("uiAutocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.append("<img class='autocomplete' src='" + item.thumbnail + "'>")
.append("<a>"+ item.name +"</a>" )
.appendTo(ul);
};
});
......@@ -2,6 +2,13 @@
background-color:green;
}
.autocomplete {
width: 56px;
height: 32px;
border: 0;
margin-right: 8px;
}
.search-sidebar {
margin-top: 40px;
display: none;
......
class Management::ComplaintsController < ManagementController
before_action :set_complaint, only: :destroy
def index
@complaints = Complaint.all
@complaints = Complaint.includes(:complaint_reason, :complaintable, :user)
@date = params[:period]
@date_limit = case @date.to_i
......
class SearchController < ApplicationController
include LearningObjectsHelper
def index
@types = LearningObject.object_types
......@@ -18,9 +20,9 @@ class SearchController < ApplicationController
when "LearningObject"
@result = LearningObject.search params[:query], where: where_hash(params), order: lo_order_hash(params), page: params[:page] || 1, per_page: 10
when "Collection"
@result = Collection.search params[:query], where: {privacy: "public"}, order: col_order_hash(params), page: params[:page]
@result = Collection.search params[:query], where: {privacy: "public"}, order: col_order_hash(params), page: params[:page] || 1, per_page: 10
when "User"
@result = User.search params[:query], order: user_order_hash(params), page: params[:page]
@result = User.search params[:query], order: user_order_hash(params), page: params[:page] || 1, per_page: 10
else
raise "Wrong search class parameter"
end
......@@ -29,32 +31,52 @@ class SearchController < ApplicationController
end
def autocomplete
response = []
case params[:search_class]
when "LearningObject"
render json: LearningObject.search(params[:query], {
los = LearningObject.search(params[:query], {
fields: ['name^5', 'description', 'author'],
limit: 10,
load: false,
misspellings: { below: 5 }
}).map(&:name)
})
los.each do |lo|
hash = {}
hash["name"] = lo.name
hash["thumbnail"] = "/assets/"+learning_object_thumbnail(lo)
hash["url"] = url_for([lo, :only_path => false])
response << hash
end
when "Collection"
render json: Collection.search(params[:query], {
cols = Collection.search(params[:query], {
where: {privacy: "public"},
fields: ['name^5', 'description', 'owner'],
limit: 10,
load: false,
misspellings: { below: 5 }
}).map(&:name)
})
cols.each do |col|
hash = {}
hash["name"] = col.name
hash["thumbnail"] = "/assets/icons/collection"
hash["url"] = url_for([col, :only_path => false])
response << hash
end
when "User"
render json: User.search(params[:query], {
users = User.search(params[:query], {
fields: ['name'],
limit: 10,
load: false,
misspellings: { below: 5 }
}).map(&:name)
})
users.each do |user|
hash = {}
hash["name"] = user.name
hash["thumbnail"] = user.avatar.url(:thumb)
hash["url"] = url_for([user, :only_path => false])
response << hash
end
else
raise "Wrong search class parameter"
end
render json: response
end
private
......
......@@ -9,7 +9,7 @@ module LearningObjectsHelper
when 'PDF' then
"<iframe src=\"/pdfjs/web/viewer.html?file=#{learning_object.retrieve_link }\" style=\"border: 0 \" width=\"125%\" height=\"280\" frameborder=\"0\" scrolling=\"no\"></iframe>".html_safe
else
learning_object_thumbnail learning_object, "large"
image_tag learning_object_thumbnail(learning_object, "large"), alt: learning_object_title(learning_object), class: "thumbnail"
end
end
......@@ -44,7 +44,7 @@ module LearningObjectsHelper
else
thumbnail = learning_object.thumbnail
end
image_tag thumbnail, alt: learning_object_title(learning_object), class: "thumbnail"
thumbnail
end
def learning_object_title(learning_object)
......
......@@ -9,7 +9,7 @@ class LearningObject < ActiveRecord::Base
has_many :collection_items, as: :collectionable
has_many :collections, through: :collection_items
has_many :complaints
has_many :attachments, class_name: 'LearningObject::Attachment', dependent: :destroy
has_many :attachments, class_name: 'LearningObject::Attachment', dependent: :destroy, autosave: true # autosave to allow import
belongs_to :publisher, polymorphic: true
belongs_to :language
......
......@@ -5,14 +5,24 @@ class Dspace::LearningObjectImporter
end
def import
items = []
@items.each do |item|
next if item_exists? item
learning_object = LearningObjectBuilder.build_from_dspace item
create_attachments learning_object, item.bit_streams if learning_object.save
learning_object = LearningObjectBuilder.build_from_dspace(item)
next if learning_object.blank?
create_attachments(learning_object, item.bit_streams)
items << learning_object
yield(learning_object) if block_given?
end
LearningObject.import items, recursive: true
end
private
......@@ -20,7 +30,7 @@ class Dspace::LearningObjectImporter
def create_attachments(learning_object, bitstreams)
bitstreams = JSON.parse bitstreams if bitstreams.class == String
bitstreams.each do |bitstream|
learning_object.attachments.create ::Dspace::AttachmentMapper.call(bitstream)
learning_object.attachments.new ::Dspace::AttachmentMapper.call(bitstream)
end
end
......
......@@ -4,7 +4,7 @@
<!-- <div class="col-md-5"> -->
<div class="learning-object-thumbnail">
<%= link_to link do
learning_object_thumbnail learning_object
image_tag learning_object_thumbnail(learning_object), alt: learning_object_title(learning_object), class: "thumbnail"
end %>
<% if user_signed_in? %>
......
......@@ -2,7 +2,7 @@
<div class="panel">
<div class="learning-object-thumbnail">
<%= link_to learning_object_path(id: learning_object.id) do
learning_object_thumbnail learning_object
image_tag learning_object_thumbnail(learning_object), alt: learning_object_title(learning_object), class: "thumbnail"
end %>
<% if user_signed_in? %>
<%= render 'learning_objects/actions_buttons', learning_object: learning_object %>
......
......@@ -11,7 +11,7 @@ namespace :dspace do
logger.level = Log::DatabaseLogger::CREATE
# Quantity of items fetched on each iteration
limit = 1000
limit = 500
# Start point from where items will be fetched
offset = 0
......@@ -48,7 +48,7 @@ namespace :dspace do
# Initializes new LearningObjects
# and saves them on LearningObjects's repository
importer = Dspace::LearningObjectImporter.new(dspace_items)
importer.import { |learning_object| logger.create "Imported: #{learning_object.id_dspace} -> #{learning_object.id}" }
importer.import
end
end
logger.close
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment