virtuoso_plugin_admin_controller.rb 1.4 KB
class VirtuosoPluginAdminController < AdminController

  def index
    settings = params[:settings]
    settings ||= {}
    @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, settings)
    @harvest_running = VirtuosoPlugin::DspaceHarvest.new(environment).find_job.present?

    if request.post?
      @settings.save!
      session[:notice] = 'Settings succefully saved.'
      redirect_to :action => 'index'
    end
  end

  def force_harvest
    harvest = VirtuosoPlugin::DspaceHarvest.new(environment)
    harvest.start(params[:from_start])
    session[:notice] = _('Harvest started')
    redirect_to :action => :index
  end

  def triple_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 triple_update
    graph_uri = params[:graph_uri]
    triples = params[:triples]

    triples_management = VirtuosoPlugin::TriplesManagement.new(environment)

    triples.each { |triple|
      from_triple = triple[:from]
      to_triple = triple[:to]
      triples_management.update_triple(graph_uri, from_triple, to_triple)
    }

    session[:notice] = _('Triple(s) succesfully updated.')
    redirect_to :action => :triple_management
  end

end