Class: MegaBar::MasterPagesController

Inherits:
ActionController::Base
  • Object
show all
Includes:
Cccux::ApplicationControllerConcern
Defined in:
app/controllers/mega_bar/master_pages_controller.rb

Instance Method Summary collapse

Instance Method Details

#administering_page?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 53

def administering_page?
  session[:admin_pages].include?(@mega_page[:page_id].to_s)
end

#envObject



22
23
24
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 22

def env
  request.env
end

#page_admin?Boolean

Returns:

  • (Boolean)


57
58
59
60
61
62
63
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 57

def page_admin?
  return false unless defined?(Devise) && user_signed_in?
  current_user.has_role?('Mega Role')
  # return true if @mega_page[:administrator].blank? # this line should ultimately go away.

  # @mega_user.pll >= @mega_page[:administrator]
end


26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 26

def page_admin_link
  admin_text = ""

  if page_admin?
    admin_text = administering_page? ? "Turn off Admin for " : "Administer "
    if request.env[:mega_env].present?
      ActionController::Base.helpers. :div, class: "admin_links" do
        ActionController::Base.helpers.link_to "#{admin_text} #{@mega_page[:name]} Page", "#{request.env[:mega_page][:page_path]}/administer-page/#{@mega_page[:page_id].to_s}", class: "admin-links"
      end
    else
      # Only show Layout Settings link if user is administering the page
      if administering_page?
      link = ["/mega-bar/pages/" + @mega_page[:page_id].to_s + "/layouts/" + request.env[:mega_layout].id.to_s + "?return_to=" + request.env["PATH_INFO"], "Layout Settings"] unless @mega_page.blank?
        ActionController::Base.helpers. :div, class: "admin_links" do
          ActionController::Base.helpers.link_to link[1], link[0], class: "admin-links"
        end
      else
        ActionController::Base.helpers. :div, class: "admin_links" do
          ActionController::Base.helpers.link_to "#{admin_text} #{@mega_page[:name]} Page", "/mega-bar/pages/#{@mega_page[:page_id].to_s}/administer-page?return_to=#{request.env['PATH_INFO']}", class: "admin-links"
        end
      end
    end
  end
end

#page_classObject



77
78
79
80
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 77

def page_class
  return "home-page" if @mega_page[:page_path] == "/"
  @mega_page[:page_path].gsub("/", "__").gsub(":", "").downcase[2..-1] + "-page"
end

#page_classesObject



67
68
69
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 67

def page_classes
  [portfolio_class, page_class, site_class, theme_class, "megabar_site_body"].compact.join(" ")
end

#portfolio_classObject



71
72
73
74
75
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 71

def portfolio_class
  return "base-portfolio" unless env[:mega_site].try(:portfolio).try(:code_name)

  env[:mega_site]&.portfolio&.code_name + "-portfolio"
end

#render_pageObject



10
11
12
13
14
15
16
17
18
19
20
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 10

def render_page
  @page_layouts = env["mega_final_layouts"]
  @mega_page = env[:mega_page]
  @mega_site = env[:mega_site]
  # @mega_user = env[:mega_user]
  @page_classes = page_classes
  @site_name = site_name
  session[:admin_pages] ||= []

  render
end

#should_show_admin_login_prompt?Boolean

Returns:

  • (Boolean)


99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 99

def 
  return false unless defined?(Devise)
  return false if user_signed_in?
  return false unless defined?(User)
  
  # Check if there's only one user
  begin
    user_count = User.count
    return false unless user_count == 1
  rescue => e
    # If User class isn't fully loaded yet, return false
    return false
  end
  
  # Check if CCCUX Role Manager exists
  if defined?(Cccux::Role)
    role_manager = Cccux::Role.find_by(name: 'Role Manager')
    return role_manager.present?
  end
  
  false
end

#site_classObject



82
83
84
85
86
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 82

def site_class
  return "base-site" unless env[:mega_site].try(:code_name)

  env[:mega_site]&.code_name + "-site"
end

#site_nameObject



88
89
90
91
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 88

def site_name
  return "Base Site" unless env[:mega_site].try(:name)
  env[:mega_site]&.name
end

#theme_classObject



93
94
95
96
97
# File 'app/controllers/mega_bar/master_pages_controller.rb', line 93

def theme_class
  return "base-theme" unless env[:mega_site].try(:theme)

  env[:mega_site]&.theme&.code_name + "-theme"
end