Controlador para la administración de los flujos de stream.
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
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
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
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
# 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
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
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
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
# 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
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
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