virtuoso_plugin_admin_controller.rb
3.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
class VirtuosoPluginAdminController < PluginAdminController
def index
settings = params[:settings]
settings ||= {}
@settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, settings)
@harvest_running = {}
if @settings.dspace_servers.present?
@settings.dspace_servers.each do |i|
@harvest_running[i['dspace_uri']] = VirtuosoPlugin::DspaceHarvest.new(environment, i).find_job(i['dspace_uri']).present?
end
end
if request.post?
settings[:dspace_servers].delete_if do | server |
server[:dspace_uri].empty?
end
@settings.save!
session[:notice] = 'Settings successfully saved.'
redirect_to :action => 'index'
end
end
def force_harvest
VirtuosoPlugin::DspaceHarvest.harvest_all(environment, params[:from_start])
session[:notice] = _('Harvest started')
redirect_to :action => :index
end
def triples_management
triples_management = VirtuosoPlugin::TriplesManagement.new(environment)
@triples = []
if request.post?
@query = params[:query]
@graph_uri = params[:graph_uri]
@triples = triples_management.search_triples(@graph_uri, @query)
end
render :action => 'triple_management'
end
def update_triple
if request.post?
from_triple = VirtuosoPlugin::Triple.new
from_triple.graph = params[:from_triple][:graph]
from_triple.subject = params[:from_triple][:subject]
from_triple.predicate = params[:from_triple][:predicate]
from_triple.object = params[:from_triple][:object]
to_triple = VirtuosoPlugin::Triple.new
to_triple.graph = params[:to_triple][:graph]
to_triple.subject = params[:to_triple][:subject]
to_triple.predicate = params[:to_triple][:predicate]
to_triple.object = params[:to_triple][:object]
triples_management = VirtuosoPlugin::TriplesManagement.new(environment)
triple_updated = triples_management.update_triple(from_triple, to_triple)
message = triple_updated ? _('Triple succesfully updated.') : _('Triple not updated.')
render json: { :ok => triple_updated, :message => message }
end
end
def add_triple
if request.post?
triple = VirtuosoPlugin::Triple.new
triple.graph = params[:triple][:graph]
triple.subject = params[:triple][:subject]
triple.predicate = params[:triple][:predicate]
triple.object = params[:triple][:object]
triples_management = VirtuosoPlugin::TriplesManagement.new(environment)
triple_added = triples_management.add_triple(triple)
message = triple_added ? _('Triple succesfully added.') : _('Triple not added.')
render json: { :ok => triple_added, :message => message }
end
end
def remove_triple
if request.post?
triple = VirtuosoPlugin::Triple.new
triple.graph = params[:triple][:graph]
triple.subject = params[:triple][:subject]
triple.predicate = params[:triple][:predicate]
triple.object = params[:triple][:object]
triples_management = VirtuosoPlugin::TriplesManagement.new(environment)
triple_deleted = triples_management.remove_triple(triple)
message = triple_deleted ? _('Triple succesfully removed.') : _('Triple not removed.')
render json: { :ok => triple_deleted, :message => message }
end
end
end