Method: NetworksController#add_panel

Defined in:
app/controllers/networks_controller.rb

#add_panelObject

Ajoute un panneau dans un réseau.

Input

  • Variable POST panel_id



243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# File 'app/controllers/networks_controller.rb', line 243

def add_panel
  network = Network.find(params[:id])
  panel = Panel.find(params[:panel_id])
  # On n'ajoute pas un panneau déjà membre d'un autre réseau
  if panel.network.nil?
    # Si le réseau a déjà des panneaux, donc des caractéristiques, il faut les appliquer
    # au nouveau panneau
    reference_panel = network.panels.first
    if reference_panel
      panel.texture  = reference_panel.texture
      panel.notecard = reference_panel.notecard
      panel.landmark = reference_panel.landmark
      panel.url      = reference_panel.url
      panel.mediaurl = reference_panel.mediaurl
    end
    # Et maintenant on ajoute le panneau au réseau
    network.panels << panel
    flash[:notice] = "Panel '#{panel.name} : #{panel.furniture.name}' added to network."
  else
    flash[:notice] = "Panel '#{panel.name} : #{panel.furniture.name}' already belongs to a network ('#{panel.network.name}')."
  end
  redirect_to :action => 'show', :id => network
rescue ActiveRecord::RecordNotFound
  flash[:notice] = "Add panel: Invalid network id ('#{params[:id]}') or panel id ('#{params[:panel_id]}')."
  redirect_to :action => 'list'
end