class Admin::StreamFlowsController

Controlador para la administración de los flujos de stream.

Public Instance Methods

create() click to toggle source

Crear un flujo de stream nuevo.

# File app/controllers/admin/stream_flows_controller.rb, line 89
def create
  @stream_flow = StreamFlow.new(params[:stream_flow])

  respond_to do |format|
    if @stream_flow.save
      flash[:notice] = 'El flujo de stream ha sido creado.'
      format.html { redirect_to admin_stream_flows_path() }
      format.xml  { render :xml => @stream_flow, :status => :created, :location => @stream_flow }
    else
      format.html { render :action => "new" }
      format.xml  { render :xml => @stream_flow.errors, :status => :unprocessable_entity }
    end
  end
end
destroy() click to toggle source

Borrar flujo de stream.

# File app/controllers/admin/stream_flows_controller.rb, line 119
def destroy
  @stream_flow.destroy

  respond_to do |format|
    format.html { redirect_to(admin_stream_flows_url) }
    format.xml  { head :ok }
  end
end
edit() click to toggle source

Formulario para modificar un flujo de stream.

# File app/controllers/admin/stream_flows_controller.rb, line 83
def edit
  @title = "Modificar flujo de stream"
  @return_to = request.env["HTTP_REFERER"]
end
index() click to toggle source

Lista de los flujos de stream.

# File app/controllers/admin/stream_flows_controller.rb, line 34
def index
  @title = "Flujos de stream"
  
  @stream_flows = (StreamFlow.programmed + StreamFlow.announced + StreamFlow.live).uniq
  
  if @stream_flows.empty?
    redirect_to :action => "list" and return
  end
  
  respond_to do |format|
    format.html { render :action => "list"}
    format.xml  { render :xml => @stream_flows }
  end
end
list() click to toggle source
# File app/controllers/admin/stream_flows_controller.rb, line 49
def list
  @title = "Flujos de stream"
  sf = StreamFlow.not_empty_streaming
  # sf.each {|s| s.assign_event!}
  @stream_flows = sf+[nil]

  # @empty_stream_flow = get_empty_stream()
  
  respond_to do |format|
    format.html # list.html.erb
    format.xml  { render :xml => @stream_flows }
  end
end
new() click to toggle source

Formulario para crear un flujo de stream nuevo.

# File app/controllers/admin/stream_flows_controller.rb, line 72
def new
  @title = "Nuevo flujo de stream"
  @stream_flow = StreamFlow.new

  respond_to do |format|
    format.html # new.html.erb
    format.xml  { render :xml => @stream_flow }
  end
end
order() click to toggle source

Lista de los nombres de los flujos para ordenarlos.

# File app/controllers/admin/stream_flows_controller.rb, line 194
def order
  @title = "Ordenar los flujos de stream"
  @stream_flows = StreamFlow.not_empty_streaming
end
show() click to toggle source

Ver la información sobre un flujo de stream concreto.

# File app/controllers/admin/stream_flows_controller.rb, line 64
def show
  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @stream_flow }
  end
end
sort() click to toggle source
# File app/controllers/admin/stream_flows_controller.rb, line 200
def sort    
  StreamFlow.not_empty_streaming.each do |sf|
    new_position = params["flows"].index(sf.id.to_s)+1
    sf.update_attribute(:position, new_position)
  end 
  render :nothing => true
  
end
update() click to toggle source

Modificar los datos de un flujo de stream.

# File app/controllers/admin/stream_flows_controller.rb, line 105
def update
  respond_to do |format|
    if @stream_flow.update_attributes(params[:stream_flow])
      flash[:notice] = 'Los datos has sido modificados.'
      format.html { redirect_to params[:return_to].present? ? params[:return_to] : admin_stream_flows_path() }
      format.xml  { head :ok }
    else
      format.html { render :action => "edit" }
      format.xml  { render :xml => @stream_flow.errors, :status => :unprocessable_entity }
    end
  end
end
update_status() click to toggle source

Cambia el estado del streaming dependiendo del valor del submit.

# File app/controllers/admin/stream_flows_controller.rb, line 129
def update_status
  submit_options = [:show_irekia_on, :show_irekia_off, :announce_irekia_on, :announce_irekia_off]
  
  if params[:submitted_opt].blank?
    @submitted_opt = params.keys.detect {|k| submit_options.include?(k.to_sym)}
  else
    @submitted_opt = params[:submitted_opt]
  end
  
  
  logger.info "submitted_opt: #{@submitted_opt.inspect}"
  @submitted_opt = @submitted_opt.to_sym unless @submitted_opt.nil?

  unless @stream_flow.on_web?
    @stream_flow.event_id = nil
  end
  
  if params[:stream_flow] 
    event_id = params[:stream_flow][:event_id].to_i
    if Event.published.exists?(event_id)
      @stream_flow.event_id = event_id
    else
      @stream_flow.event_id = nil
    end
  end
  
  case @submitted_opt
    when :show_irekia_on, :show_irekia_off
      change_visibility
    when :announce_irekia_on, :announce_irekia_off
      change_announcement      
  end
  
  
  status_file = File.new(@stream_flow.status_file_path, 'w')
  status_file.puts("#{@submitted_opt} event:#{@stream_flow.event_id}")
  status_file.close()    
  
  @stream_flow.save
  @stream_flow.reload

  event_info_file = File.new(@stream_flow.event_info_file_path, 'w')
  if @stream_flow.event
    event_info = ""
    current_locale = @locale
    locales.each do |code, loc|
      I18n.locale = code
      event_info += "<div id='event_#{code}'>"+render_to_string(:partial => '/admin/stream_flows/streamed_event', :object => @stream_flow.event)+"</div>"
    end
    I18n.locale = current_locale
    event_info += render_to_string(:partial => '/admin/stream_flows/streamed_event_json', :locals => {:stream_flow => @stream_flow})
    event_info_file.puts(event_info)
  else
    event_info_file.puts("")
  end
  event_info_file.close()

  respond_to do |format|
    format.html { redirect_to(admin_stream_flows_url) }
    format.js   # update_status.rjs
  end
  
end