| Class | Admin::StreamFlowsController |
| In: |
app/controllers/admin/stream_flows_controller.rb
|
| Parent: | Admin::BaseController |
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 68
68: def create
69: @stream_flow = StreamFlow.new(params[:stream_flow])
70:
71: respond_to do |format|
72: if @stream_flow.save
73: flash[:notice] = 'El flujo de stream ha sido creado.'
74: format.html { redirect_to admin_stream_flows_path() }
75: format.xml { render :xml => @stream_flow, :status => :created, :location => @stream_flow }
76: else
77: format.html { render :action => "new" }
78: format.xml { render :xml => @stream_flow.errors, :status => :unprocessable_entity }
79: end
80: end
81: end
Borrar flujo de stream.
# File app/controllers/admin/stream_flows_controller.rb, line 98
98: def destroy
99: @stream_flow.destroy
100:
101: respond_to do |format|
102: format.html { redirect_to(admin_stream_flows_url) }
103: format.xml { head :ok }
104: end
105: end
Formulario para modificar un flujo de stream.
# File app/controllers/admin/stream_flows_controller.rb, line 62
62: def edit
63: @title = "Modificar flujo de stream"
64: @return_to = request.env["HTTP_REFERER"]
65: end
Lista de los flujos de stream.
# File app/controllers/admin/stream_flows_controller.rb, line 13
13: def index
14: @title = "Flujos de stream"
15:
16: @stream_flows = (StreamFlow.programmed + StreamFlow.announced + StreamFlow.live).uniq
17:
18: if @stream_flows.empty?
19: redirect_to :action => "list" and return
20: end
21:
22: respond_to do |format|
23: format.html { render :action => "list"}
24: format.xml { render :xml => @stream_flows }
25: end
26: end
# File app/controllers/admin/stream_flows_controller.rb, line 28
28: def list
29: @title = "Flujos de stream"
30: sf = StreamFlow.not_empty_streaming
31: # sf.each {|s| s.assign_event!}
32: @stream_flows = sf+[nil]
33:
34: # @empty_stream_flow = get_empty_stream()
35:
36: respond_to do |format|
37: format.html # list.html.erb
38: format.xml { render :xml => @stream_flows }
39: end
40: end
Formulario para crear un flujo de stream nuevo.
# File app/controllers/admin/stream_flows_controller.rb, line 51
51: def new
52: @title = "Nuevo flujo de stream"
53: @stream_flow = StreamFlow.new
54:
55: respond_to do |format|
56: format.html # new.html.erb
57: format.xml { render :xml => @stream_flow }
58: end
59: end
Ver la información sobre un flujo de stream concreto.
# File app/controllers/admin/stream_flows_controller.rb, line 43
43: def show
44: respond_to do |format|
45: format.html # show.html.erb
46: format.xml { render :xml => @stream_flow }
47: end
48: end
Modificar los datos de un flujo de stream.
# File app/controllers/admin/stream_flows_controller.rb, line 84
84: def update
85: respond_to do |format|
86: if @stream_flow.update_attributes(params[:stream_flow])
87: flash[:notice] = 'Los datos has sido modificados.'
88: format.html { redirect_to params[:return_to].present? ? params[:return_to] : admin_stream_flows_path() }
89: format.xml { head :ok }
90: else
91: format.html { render :action => "edit" }
92: format.xml { render :xml => @stream_flow.errors, :status => :unprocessable_entity }
93: end
94: end
95: end
Cambia el estado del streaming dependiendo del valor del submit.
# File app/controllers/admin/stream_flows_controller.rb, line 108
108: def update_status
109: submit_options = [:show_irekia_on, :show_agencia_on, :show_irekia_off, :show_agencia_off, :announce_irekia_on, :announce_agencia_on, :announce_irekia_off, :announce_agencia_off]
110:
111: if params[:submitted_opt].blank?
112: @submitted_opt = params.keys.detect {|k| submit_options.include?(k.to_sym)}
113: else
114: @submitted_opt = params[:submitted_opt]
115: end
116: @submitted_opt = @submitted_opt.to_sym unless @submitted_opt.nil?
117:
118: unless @stream_flow.on_web?
119: @stream_flow.event_id = nil
120: end
121:
122: if params[:stream_flow]
123: event_id = params[:stream_flow][:event_id].to_i
124: if Event.published.exists?(event_id)
125: @stream_flow.event_id = event_id
126: else
127: @stream_flow.event_id = nil
128: end
129: end
130:
131: case @submitted_opt
132: when :show_irekia_on, :show_agencia_on, :show_irekia_off, :show_agencia_off
133: change_visibility
134: when :announce_irekia_on, :announce_agencia_on, :announce_irekia_off, :announce_agencia_off
135: change_announcement
136: end
137:
138:
139: @current_subsite = @submitted_opt.to_s.match('irekia') ? 'irekia' : 'agencia'
140: status_file = File.new(@stream_flow.status_file_path(@current_subsite), 'w')
141: status_file.puts("#{@submitted_opt} event:#{@stream_flow.event_id}")
142: status_file.close()
143:
144: @stream_flow.save
145: @stream_flow.reload
146:
147: @subsite = @submitted_opt.to_s.match('irekia') ? 'irekia' : 'agencia'
148: event_info_file = File.new(@stream_flow.event_info_file_path(@subsite), 'w')
149: if @stream_flow.event
150: event_info = ""
151: current_locale = @locale
152: locales.each do |code, loc|
153: I18n.locale = code
154: event_info += "<div id='event_#{code}'>"+render_to_string(:partial => '/shared/streamed_event', :object => @stream_flow.event)+"</div>"
155: end
156: I18n.locale = current_locale
157: event_info += render_to_string(:partial => '/shared/streamed_event_json', :locals => {:stream_flow => @stream_flow})
158: event_info_file.puts(event_info)
159: else
160: event_info_file.puts("")
161: end
162: event_info_file.close()
163:
164: respond_to do |format|
165: format.html { redirect_to(admin_stream_flows_url) }
166: format.js # update_status.rjs
167: end
168:
169: end