cirandas.net

ref: dockerize

app/controllers/admin/admin_panel_controller.rb


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
class AdminPanelController < AdminController

  protect 'view_environment_admin_panel', :environment

  def boxes_holder
    environment
  end

  def site_info
    @no_design_blocks = true
    if request.post?
      if params[:environment][:languages]
        params[:environment][:languages] = params[:environment][:languages].map {|lang, value| lang if value=='true'}.compact
      end
      if @environment.update(params[:environment])
        session[:notice] = _('Environment settings updated')
        redirect_to :action => 'index'
      end
    end
  end

  def manage_portal_community
    params[:activate] == '1' ? environment.enable('use_portal_community') : environment.disable('use_portal_community')
    environment.save
    redirect_to :action => 'set_portal_community'
  end

  def unset_portal_community
    environment.unset_portal_community!
    redirect_to :action => 'set_portal_community'
  end

  def set_portal_community
    env = environment
    @portal_community = env.portal_community || Community.new
    if request.post?
      portal_community = env.communities.where(identifier: params[:portal_community_identifier]).first
      if portal_community
        if (env.portal_community != portal_community)
          env.portal_community = portal_community
          env.portal_folders = []
          env.save
        end
        redirect_to :action => 'set_portal_folders'
      else
        session[:notice] = _('Community not found. You must insert the identifier of a community from this environment')
      end
    end
  end

  def set_portal_folders
     @selected = (environment.portal_folders || [])
     @available_portal_folders = environment.portal_community.folders - @selected

     if request.post?
       env = environment
       folders = env.portal_community.folders.where(id: params[:folders]).order(params[:folders].reverse.map{ |f| "id=#{f}" }) if params[:folders]
       env.portal_folders = folders
       if env.save
         session[:notice] = _('Saved the portal folders')
         redirect_to :action => 'set_portal_news_amount'
       end
     end
  end

  def set_portal_news_amount
    if request.post?
      if @environment.update(params[:environment])
        session[:notice] = _('Saved the number of news on folders')
        redirect_to :action => 'index'
      end
    end
  end
end