Class Admin::StreamFlowsController
In: app/controllers/admin/stream_flows_controller.rb
Parent: Admin::BaseController

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

Methods

create   destroy   edit   index   list   new   show   update   update_status  

Public Instance methods

Crear un flujo de stream nuevo.

[Source]

    # 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.

[Source]

     # 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.

[Source]

    # 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.

[Source]

    # 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

[Source]

    # 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.

[Source]

    # 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.

[Source]

    # 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.

[Source]

    # 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.

[Source]

     # 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

[Validate]