imagine_cms 4.2.4 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +4 -0
  3. data/.ruby-version +1 -1
  4. data/Dockerfile +61 -0
  5. data/README.md +50 -0
  6. data/app/assets/javascripts/imagine_cms/core.js +4 -2
  7. data/app/assets/javascripts/imagine_cms/legacy/misc.js +29 -31
  8. data/app/controllers/cms/content_controller.rb +29 -25
  9. data/app/controllers/manage/application_controller.rb +4 -0
  10. data/app/controllers/manage/cms_controller.rb +13 -0
  11. data/app/controllers/{management/cms_controller.rb → manage/cms_pages_controller.rb} +625 -711
  12. data/app/controllers/manage/cms_snippets_controller.rb +67 -0
  13. data/app/controllers/manage/cms_templates_controller.rb +71 -0
  14. data/app/controllers/management/application_controller.rb +1 -1
  15. data/app/controllers/management/user_controller.rb +7 -6
  16. data/app/controllers/management/users_controller.rb +56 -56
  17. data/app/controllers/util_controller.rb +0 -1
  18. data/app/helpers/cms_application_helper.rb +17 -19
  19. data/app/mailers/imagine_cms_mailer.rb +16 -0
  20. data/app/models/cms_page.rb +8 -23
  21. data/app/models/user.rb +1 -1
  22. data/app/sweepers/cms_content_sweeper.rb +3 -3
  23. data/app/views/cms/content/_photo_gallery.html.erb +4 -4
  24. data/app/views/cms/content/_search_result.html.erb +1 -1
  25. data/app/views/imagine_cms/_header.html.erb +1 -1
  26. data/app/views/imagine_cms/_toolbar.html.erb +12 -12
  27. data/app/views/imagine_cms_mailer/request_review.text.erb +10 -0
  28. data/app/views/layouts/management.html.erb +29 -5
  29. data/app/views/manage/cms/index.html.erb +7 -0
  30. data/app/views/{management/cms → manage/cms_pages}/_complete_gallery.html.erb +0 -0
  31. data/app/views/{management/cms → manage/cms_pages}/_create_file_link.html.erb +0 -0
  32. data/app/views/{management/cms → manage/cms_pages}/_crop_feature_image.html.erb +20 -5
  33. data/app/views/{management/cms → manage/cms_pages}/_crop_image.html.erb +20 -5
  34. data/app/views/{management/cms → manage/cms_pages}/_crop_results.html.erb +0 -0
  35. data/app/views/manage/cms_pages/_crop_results_feature_image.html.erb +1 -0
  36. data/app/views/manage/cms_pages/_crop_results_thumb.html.erb +1 -0
  37. data/app/views/{management/cms → manage/cms_pages}/_crop_thumb.html.erb +20 -5
  38. data/app/views/{management/cms → manage/cms_pages}/_edit_page.html.erb +37 -49
  39. data/app/views/{management/cms → manage/cms_pages}/_gallery_index.html.erb +0 -0
  40. data/app/views/{management/cms → manage/cms_pages}/_gallery_setup.html.erb +0 -0
  41. data/app/views/{management/cms → manage/cms_pages}/_image.html.erb +0 -0
  42. data/app/views/{management/cms → manage/cms_pages}/_image_details.html.erb +0 -0
  43. data/app/views/{management/cms → manage/cms_pages}/_image_draggable.html.erb +0 -0
  44. data/app/views/manage/cms_pages/_list_page.html.erb +8 -0
  45. data/app/views/{management/cms → manage/cms_pages}/_list_page_select.html.erb +0 -0
  46. data/app/views/{management/cms → manage/cms_pages}/_list_pages.html.erb +0 -0
  47. data/app/views/{management/cms → manage/cms_pages}/_list_pages_select.html.erb +0 -0
  48. data/app/views/{management/cms → manage/cms_pages}/_page_attribute.html.erb +0 -0
  49. data/app/views/{management/cms → manage/cms_pages}/_page_list.html.erb +2 -2
  50. data/app/views/{management/cms → manage/cms_pages}/_page_list_source_folder.html.erb +0 -0
  51. data/app/views/{management/cms → manage/cms_pages}/_page_list_source_tag.html.erb +0 -0
  52. data/app/views/{management/cms → manage/cms_pages}/_select_gallery.html.erb +0 -0
  53. data/app/views/{management/cms → manage/cms_pages}/_sort_images.html.erb +0 -0
  54. data/app/views/{management/cms → manage/cms_pages}/_template_options.html.erb +3 -3
  55. data/app/views/{management/cms → manage/cms_pages}/_upload_feature_image.html.erb +0 -0
  56. data/app/views/{management/cms → manage/cms_pages}/_upload_file.html.erb +0 -0
  57. data/app/views/{management/cms → manage/cms_pages}/_upload_image.html.erb +1 -1
  58. data/app/views/{management/cms → manage/cms_pages}/_upload_thumb.html.erb +0 -0
  59. data/app/views/{management/cms → manage/cms_pages}/edit_page_content.html.erb +7 -0
  60. data/app/views/{management/cms → manage/cms_pages}/gallery_management.html.erb +1 -1
  61. data/app/views/{management/cms/pages.html.erb → manage/cms_pages/index.html.erb} +1 -1
  62. data/app/views/{management/cms/page_tags_for_lookup.html.erb → manage/cms_pages/page_tags_for_lookup.js.erb} +0 -0
  63. data/app/views/{management/cms → manage/cms_pages}/select_page.html.erb +0 -0
  64. data/app/views/{management/cms → manage/cms_pages}/toolbar_edit.html.erb +0 -0
  65. data/app/views/{management/cms → manage/cms_pages}/toolbar_preview.html.erb +6 -6
  66. data/app/views/manage/cms_snippets/_cms_snippet.html.erb +3 -0
  67. data/app/views/manage/cms_snippets/edit.html.erb +25 -0
  68. data/app/views/{management/cms/snippets.html.erb → manage/cms_snippets/index.html.erb} +2 -2
  69. data/app/views/manage/cms_templates/_cms_template.html.erb +3 -0
  70. data/app/views/{management/cms → manage/cms_templates}/_template_reference.html.erb +2 -2
  71. data/app/views/manage/cms_templates/edit.html.erb +26 -0
  72. data/app/views/{management/cms/templates.html.erb → manage/cms_templates/index.html.erb} +2 -2
  73. data/app/views/management/default/index.html.erb +3 -1
  74. data/app/views/management/users/edit.html.erb +2 -2
  75. data/app/views/management/users/index.html.erb +2 -2
  76. data/app/views/management/users/new.html.erb +1 -1
  77. data/config/initializers/constants.rb +3 -0
  78. data/config/routes.rb +57 -10
  79. data/db/migrate/20121108004747_add_settings_table.rb +8 -12
  80. data/db/migrate/20121108005110_add_tasks_table.rb +7 -11
  81. data/db/migrate/20121115083748_add_logs_table.rb +13 -18
  82. data/db/migrate/20121115083811_add_users_tables.rb +26 -26
  83. data/db/migrate/20121115084028_add_cms_tables.rb +91 -90
  84. data/db/migrate/20140423085357_add_redirect_fields_to_cms_pages.rb +2 -2
  85. data/db/migrate/20140423085358_add_redirect_fields_to_cms_page_versions.rb +2 -2
  86. data/docker-compose.override.yml.example +43 -0
  87. data/docker-compose.yml +21 -0
  88. data/docker/conf/.my.cnf +3 -0
  89. data/docker/conf/my.local.cnf +14 -0
  90. data/docker/conf/my.prod.cnf +9 -0
  91. data/docker/conf/nginx-vhost.conf +14 -0
  92. data/docker/services/memcached.sh +3 -0
  93. data/docker/services/sidekiq.sh +3 -0
  94. data/docker/services/webpack.sh +3 -0
  95. data/docker/startup/101_mkdir.sh +15 -0
  96. data/docker/startup/201_bundler.sh +4 -0
  97. data/docker/startup/211_yarn.sh +4 -0
  98. data/imagine_cms.gemspec +12 -11
  99. data/lib/extensions/action_controller_extensions.rb +4 -2
  100. data/lib/imagine_cms/engine.rb +6 -7
  101. data/lib/imagine_cms/version.rb +1 -1
  102. data/lib/upload_progress/lib/upload_progress.rb +3 -3
  103. data/test/dummy/app/assets/javascripts/application.js +0 -1
  104. metadata +94 -74
  105. data/.ruby-gemset +0 -1
  106. data/README.rdoc +0 -98
  107. data/app/views/management/cms/_crop_results_feature_image.html.erb +0 -1
  108. data/app/views/management/cms/_crop_results_thumb.html.erb +0 -1
  109. data/app/views/management/cms/_list_page.html.erb +0 -8
  110. data/app/views/management/cms/_snippet.html.erb +0 -3
  111. data/app/views/management/cms/_temp.html.erb +0 -3
  112. data/app/views/management/cms/edit_master.html.erb +0 -48
  113. data/app/views/management/cms/edit_snippet.html.erb +0 -25
  114. data/app/views/management/cms/edit_template.html.erb +0 -25
  115. data/app/views/management/cms/index.html.erb +0 -7
  116. data/app/views/management/cms/permission_denied.html.erb +0 -1
  117. data/lib/hash_object.rb +0 -39
  118. data/lib/hash_wrapper.rb +0 -17
@@ -0,0 +1,67 @@
1
+ class Manage::CmsSnippetsController < Manage::ApplicationController
2
+ before_action :check_permissions
3
+ before_action :block_basic_users
4
+
5
+ cache_sweeper :cms_content_sweeper
6
+
7
+ def index
8
+ @cms_snippets = CmsSnippet.order(:name)
9
+ end
10
+
11
+ def new
12
+ @cms_snippet = CmsSnippet.new
13
+ render action: 'edit'
14
+ end
15
+
16
+ def create
17
+ @cms_snippet = CmsSnippet.new
18
+ update
19
+ end
20
+
21
+ def edit
22
+ @cms_snippet = CmsSnippet.find_by_id(params[:id])
23
+ end
24
+
25
+ def update
26
+ @cms_snippet ||= CmsSnippet.find(params[:id])
27
+ @cms_snippet.assign_attributes(cms_snippet_params)
28
+
29
+ begin
30
+ puts Cms::ContentController.renderer.new('action_dispatch.request.path_parameters' => {
31
+ controller: '/cms/content', action: 'show', id: CmsPage.new }).render inline: @cms_snippet.content
32
+ rescue ScriptError, StandardError => e
33
+ flash.now[:error] = "<pre title=\"#{ERB::Util.html_escape(e.backtrace.join("\n"))}\">#{ERB::Util.html_escape(e.message)}</pre>".html_safe
34
+ render action: 'edit' and return
35
+ end
36
+
37
+ if !@cms_snippet.save
38
+ flash.now[:error] = @cms_snippet.errors.full_messages.join('<br>').html_safe
39
+ render action: 'edit'
40
+ else
41
+ flash[:notice] = 'Snippet saved.'
42
+ redirect_to action: 'edit', id: @cms_snippet
43
+ end
44
+ end
45
+
46
+ protected
47
+
48
+ def check_permissions
49
+ if !user_has_permission?(:manage_cms)
50
+ render '/imagine_cms/errors/permission_denied', layout: false
51
+ return false
52
+ end
53
+ end
54
+
55
+ def block_basic_users
56
+ return true unless UseCmsAccessLevels
57
+ unless user_has_permission?(:manage_cms_full_access)
58
+ render '/imagine_cms/errors/permission_denied'
59
+ return false
60
+ end
61
+ end
62
+
63
+ def cms_snippet_params
64
+ params.require(:cms_snippet).permit(:name, :content)
65
+ end
66
+
67
+ end
@@ -0,0 +1,71 @@
1
+ class Manage::CmsTemplatesController < Manage::ApplicationController
2
+ before_action :check_permissions
3
+ before_action :block_basic_users
4
+
5
+ cache_sweeper :cms_content_sweeper
6
+
7
+ def index
8
+ @cms_templates = CmsTemplate.order(:name)
9
+ end
10
+
11
+ def new
12
+ @cms_template = CmsTemplate.new
13
+ render action: 'edit'
14
+ end
15
+
16
+ def create
17
+ @cms_template = CmsTemplate.new
18
+ update
19
+ end
20
+
21
+ def edit
22
+ @cms_template = CmsTemplate.find(params[:id])
23
+ end
24
+
25
+ def update
26
+ @cms_template ||= CmsTemplate.find(params[:id])
27
+ @cms_template.assign_attributes(cms_template_params)
28
+
29
+ begin
30
+ puts Cms::ContentController.renderer.new('action_dispatch.request.path_parameters' => {
31
+ controller: '/cms/content', action: 'show', id: @cms_template.pages.last || CmsPage.new }).render inline: @cms_template.content
32
+ rescue ScriptError, StandardError => e
33
+ flash.now[:error] = "<pre title=\"#{ERB::Util.html_escape(e.backtrace.join("\n"))}\">#{ERB::Util.html_escape(e.message)}</pre>".html_safe
34
+ render action: 'edit' and return
35
+ end
36
+
37
+ # this must come after the render_to_string so that we capture template
38
+ # options embedded in snippets
39
+ @cms_template.options = @cms_template_options
40
+
41
+ if !@cms_template.save
42
+ flash.now[:error] = @cms_template.errors.full_messages.join('<br>').html_safe
43
+ render action: 'edit'
44
+ else
45
+ flash[:notice] = 'Template saved.'
46
+ redirect_to action: 'edit', id: @cms_template
47
+ end
48
+ end
49
+
50
+ protected
51
+
52
+ def check_permissions
53
+ if !user_has_permission?(:manage_cms)
54
+ render '/imagine_cms/errors/permission_denied', layout: false
55
+ return false
56
+ end
57
+ end
58
+
59
+ def block_basic_users
60
+ return true unless UseCmsAccessLevels
61
+ unless user_has_permission?(:manage_cms_full_access)
62
+ render '/imagine_cms/errors/permission_denied'
63
+ return false
64
+ end
65
+ end
66
+
67
+ def cms_template_params
68
+ params.require(:cms_template).permit(:name, :content)
69
+ end
70
+
71
+ end
@@ -1,4 +1,4 @@
1
1
  class Management::ApplicationController < ApplicationController
2
- before_filter :authenticate_user
2
+ before_action :authenticate_user
3
3
  layout 'management'
4
4
  end
@@ -1,5 +1,5 @@
1
1
  class Management::UserController < Management::ApplicationController
2
- skip_before_filter :authenticate_user, :only => [ :login, :logout, :create_first ]
2
+ skip_before_action :authenticate_user, :only => [ :login, :logout, :create_first ]
3
3
 
4
4
  ###
5
5
  ### login
@@ -10,9 +10,9 @@ class Management::UserController < Management::ApplicationController
10
10
  if request.post?
11
11
  test = ::User.find_by_username(params[:login][:username]) rescue nil
12
12
  if (test && test.password_hash == User.hash_password(params[:login][:password], test.password_hash[0,16]))
13
- if (test.active != 1)
13
+ if test.active != true && test.active != 1
14
14
  flash[:error] = 'Your account has been disabled by an administrator.'
15
- redirect_to :action => 'login' and return false
15
+ redirect_to action: 'login' and return false
16
16
  end
17
17
  session[:user_authenticated] = true
18
18
 
@@ -30,7 +30,7 @@ class Management::UserController < Management::ApplicationController
30
30
  end
31
31
  else
32
32
  flash[:error] = 'Invalid username or password, please try again.'
33
- redirect_to params[:redirect_on_failure] || { :action => 'login' }
33
+ redirect_to params[:redirect_on_failure] || { action: 'login' }
34
34
  end
35
35
  end
36
36
  end
@@ -96,7 +96,8 @@ class Management::UserController < Management::ApplicationController
96
96
  ###
97
97
 
98
98
  def create_first
99
- redirect_to :action => 'login' and return unless User.list.empty?
99
+ redirect_to action: 'login' and return unless User.list.size == 0
100
+
100
101
  @user = User.new(params[:user])
101
102
 
102
103
  if request.post?
@@ -105,7 +106,7 @@ class Management::UserController < Management::ApplicationController
105
106
 
106
107
  if @user.save
107
108
  flash[:notice] = 'User created successfully. Please log in now.'
108
- redirect_to :controller => 'user', :action => 'login'
109
+ redirect_to action: 'login'
109
110
  else
110
111
  @errors = 'The following errors occurred:'
111
112
  @errors = @user.errors.full_messages
@@ -1,106 +1,106 @@
1
1
  class Management::UsersController < Management::ApplicationController
2
- before_filter :check_permissions, :except => [ :edit ]
3
-
4
- def check_permissions
5
- render :action => 'permission_denied' if !user_has_permission?(:manage_users)
6
- end
2
+ before_action :check_permissions, except: [ :edit, :update ]
7
3
 
8
4
  ###
9
5
  ### user list
10
6
  ###
11
7
 
12
8
  def index
13
- @users = User.order('active desc, username').all
9
+ @usrs = User.order('active desc, username').all
14
10
  end
15
11
 
16
12
  def new
17
- @user = User.new
13
+ @usr = User.new
18
14
  end
19
15
 
20
16
  def create
21
- @user = User.new
22
- @user.username = params[:user][:username]
23
- @user.first_name = params[:user][:first_name]
24
- @user.last_name = params[:user][:last_name]
25
- @user.email_address = params[:user][:email_address]
26
- @user.password = params[:user][:password]
27
- @user.password_confirmation = params[:user][:password_confirmation]
28
- @user.active = true
17
+ @usr = User.new
18
+ @usr.username = params[:user][:username]
19
+ @usr.first_name = params[:user][:first_name]
20
+ @usr.last_name = params[:user][:last_name]
21
+ @usr.email_address = params[:user][:email_address]
22
+ @usr.password = params[:user][:password]
23
+ @usr.password_confirmation = params[:user][:password_confirmation]
24
+ @usr.active = true
29
25
 
30
26
  if request.post?
31
- if @user.save
27
+ if @usr.save
32
28
  flash[:notice] = "User created successfully. Please check the boxes below to set this user's permissions, then click Save when you are done."
33
- redirect_to :action => 'edit', :id => @user.id
29
+ redirect_to action: 'edit', id: @usr.id
34
30
  else
35
- flash.now[:error] = @user.errors.full_messages.join('; ')
31
+ flash.now[:error] = @usr.errors.full_messages.join('; ')
36
32
  render :action => 'new'
37
33
  end
38
34
  end
39
35
  end
40
36
 
41
37
  def edit
42
- return update if request.post?
43
-
44
- user = authenticate_user
45
- unless user.is_superuser || user.can_manage_users || user.id.to_s == params[:id]
46
- render :layout => true, :text => "Sorry, you don't have permission to access this section." and return false
38
+ unless user_has_permission?(:manage_users) || @user.id == params[:id].to_i
39
+ render plain: "Sorry, you don't have permission to access this section.", layout: true and return false
47
40
  end
48
41
 
49
- @user = User.find(params[:id])
42
+ @usr = User.find(params[:id])
50
43
  end
51
44
 
52
45
  def update
53
- user = authenticate_user
54
- unless user.is_superuser || user.can_manage_users || user.id.to_s == params[:id]
55
- render :layout => true, :text => "Sorry, you don't have permission to access this section." and return false
56
- end
46
+ @usr = User.find(params[:id])
57
47
 
58
- @user = User.find(params[:id])
48
+ unless user_has_permission?(:manage_users) || @user.id == @usr.id
49
+ render plain: "Sorry, you don't have permission to access this section.", layout: true and return false
50
+ end
59
51
 
60
- if user.is_superuser || user.can_manage_users
61
- params[:user].each { |k,v| @user.send("#{k}=", v) }
62
- elsif user.id.to_s == params[:id]
63
- @user.first_name = params[:user][:first_name]
64
- @user.last_name = params[:user][:last_name]
65
- @user.email_address = params[:user][:email_address]
66
- @user.password = params[:user][:password]
67
- @user.password_confirmation = params[:user][:password_confirmation]
52
+ if user_has_permission?(:manage_users)
53
+ params[:user].each { |k,v| @usr.send("#{k}=", v) }
54
+ elsif @user.id == @usr.id
55
+ @usr.first_name = params[:user][:first_name]
56
+ @usr.last_name = params[:user][:last_name]
57
+ @usr.email_address = params[:user][:email_address]
58
+ @usr.password = params[:user][:password]
59
+ @usr.password_confirmation = params[:user][:password_confirmation]
68
60
  end
69
61
 
70
- if @user.save
71
- flash[:notice] = 'User updated successfully. Please note that the user must log out and log back in for permission changes to take effect.'
72
- user = authenticate_user
73
- if user.is_superuser || user.can_manage_users
74
- redirect_to :action => 'index'
62
+ if @usr.save
63
+ if user_has_permission?(:manage_users)
64
+ flash[:notice] = 'User updated successfully. Please note that the user must log out and log back in for permission changes to take effect.'
65
+ redirect_to action: 'index'
75
66
  else
76
- redirect_to :controller => '/manage/default', :action => 'index'
67
+ flash[:notice] = 'Account updated successfully.'
68
+ redirect_to controller: '/management/default', action: 'index'
77
69
  end
78
70
  else
79
- flash.now[:error] = @user.errors.full_messages.join('; ')
80
- render :action => 'edit'
71
+ flash.now[:error] = @usr.errors.full_messages.join('; ')
72
+ render action: 'edit'
81
73
  end
82
74
  end
83
75
 
84
76
  def disable
85
- @user = User.find(params[:id])
86
- @user.active = false
87
- @user.save
88
- flash[:notice] = 'Login privileges have been suspended for ' + @user.username + '.'
77
+ @usr = User.find(params[:id])
78
+ @usr.active = false
79
+ @usr.save
80
+ flash[:notice] = 'Login privileges have been suspended for ' + @usr.username + '.'
89
81
  redirect_to :action => 'index'
90
82
  end
91
83
 
92
84
  def enable
93
- @user = User.find(params[:id])
94
- @user.active = true
95
- @user.save
96
- flash[:notice] = 'Login privileges for ' + @user.username + ' have been restored.'
85
+ @usr = User.find(params[:id])
86
+ @usr.active = true
87
+ @usr.save
88
+ flash[:notice] = 'Login privileges for ' + @usr.username + ' have been restored.'
97
89
  redirect_to :action => 'index'
98
90
  end
99
91
 
100
92
  def destroy
101
- @user = User.find(params[:id])
102
- flash[:notice] = @user.username + ' has been removed from the system.'
103
- @user.destroy
93
+ @usr = User.find(params[:id])
94
+ flash[:notice] = @usr.username + ' has been removed from the system.'
95
+ @usr.destroy
104
96
  redirect_to :action => 'index'
105
97
  end
98
+
99
+
100
+ protected
101
+
102
+ def check_permissions
103
+ render :action => 'permission_denied' if !user_has_permission?(:manage_users)
104
+ end
105
+
106
106
  end
@@ -1,5 +1,4 @@
1
1
  class UtilController < ApplicationController # :nodoc:
2
- skip_before_filter :check_ssl_requirement
3
2
 
4
3
  def calendar
5
4
  @month = (params[:month] || Time.now.month).to_i
@@ -11,9 +11,8 @@ module CmsApplicationHelper
11
11
  end
12
12
 
13
13
  # Returns true if the user is editing the current page.
14
- # (This just means that we are rendering :controller => 'management/cms', :action => 'edit_page_content'.)
15
14
  def is_editing_page?
16
- params[:controller] == 'management/cms' && params[:action] == 'edit_page_content'
15
+ params[:controller] == 'manage/cms_pages' && params[:action] == 'edit_page_content'
17
16
  end
18
17
 
19
18
  # Determines whether the input string is a valid email address per RFC specification
@@ -30,7 +29,7 @@ module CmsApplicationHelper
30
29
  # require 'net/dns'
31
30
  res = Net::DNS::Resolver.new
32
31
  valid = valid && res.mx(host).size > 0
33
- rescue Exception => e
32
+ rescue StandardError => e
34
33
  logger.error(e)
35
34
  end
36
35
  end
@@ -38,21 +37,11 @@ module CmsApplicationHelper
38
37
  valid
39
38
  end
40
39
 
41
- ### COMPAT: convert_content_path
42
40
  def convert_content_path
43
- # logger.debug "DEPRECATION WARNING (Imagine CMS) WARNING: convert_content_path called"
44
41
  params[:content_path] = params[:content_path].to_s.split('/') rescue []
45
42
  end
46
43
 
47
- ### COMPAT - template_exists?
48
- def template_exists?(template, extension = nil)
49
- # ignore extension
50
- # logger.debug("DEPRECATION WARNING (Imagine CMS) WARNING: template_exists? called")
51
- partial = File.join(File.dirname(template), '_' + File.basename(template))
52
- lookup_context.find_all(template).any? || lookup_context.find_all(partial).any?
53
- end
54
-
55
- ### COMPAT - template_exists?
44
+ ### COMPAT - url_for_current
56
45
  def url_for_current
57
46
  # logger.debug("DEPRECATION WARNING (Imagine CMS) WARNING: url_for_current called")
58
47
  request.fullpath
@@ -219,7 +208,7 @@ module CmsApplicationHelper
219
208
  @pg.revert_to(@pg.published_version)
220
209
  end
221
210
 
222
- @page_objects = HashObject.new
211
+ @page_objects = OpenStruct.new
223
212
  query = @pg.objects.where(:cms_page_version => @pg.version)
224
213
  query = query.where(:obj_type => obj_type) if obj_type
225
214
  query = query.where(:name => name) if name
@@ -296,7 +285,7 @@ module CmsApplicationHelper
296
285
  # pull all folder content
297
286
  folders = []
298
287
  for i in 0...@page_objects["#{key}-sources-folder-count"].to_i
299
- folders << HashObject.new(src: @page_objects["#{key}-sources-folder#{i}"].strip,
288
+ folders << OpenStruct.new(src: @page_objects["#{key}-sources-folder#{i}"].strip,
300
289
  expand_folders: @page_objects["#{key}-sources-folder#{i}-expand-folders"])
301
290
  end
302
291
  folders = folders.reject { |f| f.src.blank? }
@@ -305,7 +294,7 @@ module CmsApplicationHelper
305
294
  folders = substitute_placeholders(options[:folders] || '', pg).split(',').map do |f|
306
295
  bits = f.strip.split(':')
307
296
 
308
- obj = HashObject.new
297
+ obj = OpenStruct.new
309
298
  obj.src = bits[0]
310
299
  obj.expand_folders = 'true'
311
300
 
@@ -320,6 +309,15 @@ module CmsApplicationHelper
320
309
 
321
310
  obj
322
311
  end
312
+ folders += substitute_placeholders(options[:pages] || '', pg).split(',').map do |f|
313
+ bits = f.strip.split(':')
314
+
315
+ obj = OpenStruct.new
316
+ obj.src = bits[0]
317
+ obj.expand_folders = 'false'
318
+
319
+ obj
320
+ end
323
321
  folders = folders.reject { |f| f.src.blank? }
324
322
 
325
323
  @page_objects["#{key}-sources-folder-count"] = folders.size
@@ -364,7 +362,7 @@ module CmsApplicationHelper
364
362
  single_pages << parent_page # user specified a single page, not a folder
365
363
  end
366
364
  end
367
- rescue Exception => e
365
+ rescue StandardError => e
368
366
  logger.debug e
369
367
  end
370
368
  end
@@ -567,7 +565,7 @@ module CmsApplicationHelper
567
565
  def template_option(name, type = :string)
568
566
  return nil unless @pg
569
567
 
570
- @template_options ||= {}
568
+ @template_options ||= OpenStruct.new
571
569
  @template_options[name] = type
572
570
 
573
571
  key = name.gsub(/[^\w\d]/, '_')