tb_cms 1.2.3 → 1.3.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/app/assets/javascripts/admin/cms/menu_items.js +39 -17
  4. data/app/assets/stylesheets/admin/cms/application.css +11 -0
  5. data/app/controllers/admin/menu_items_controller.rb +103 -113
  6. data/app/controllers/admin/menus_controller.rb +52 -53
  7. data/app/controllers/admin/pages_controller.rb +107 -111
  8. data/app/controllers/admin/snippets_controller.rb +16 -16
  9. data/app/controllers/cms/sitemaps_controller.rb +5 -5
  10. data/app/controllers/pages_controller.rb +30 -34
  11. data/app/helpers/cms/application_helper.rb +184 -212
  12. data/app/models/concerns/cms_deprecated_multisite.rb +3 -3
  13. data/app/models/spud_menu.rb +4 -4
  14. data/app/models/spud_menu_item.rb +58 -61
  15. data/app/models/spud_page.rb +63 -67
  16. data/app/models/spud_page_partial.rb +42 -44
  17. data/app/models/spud_page_partial_revision.rb +3 -3
  18. data/app/models/spud_snippet.rb +7 -7
  19. data/app/views/admin/menu_items/index.html.erb +1 -1
  20. data/lib/generators/spud/cms/layout_generator.rb +8 -8
  21. data/lib/spud_cms/configuration.rb +10 -10
  22. data/lib/spud_cms/engine.rb +28 -28
  23. data/lib/spud_cms/liquid_snippet.rb +5 -7
  24. data/lib/spud_cms/page_route.rb +1 -1
  25. data/lib/spud_cms/template_parser.rb +35 -40
  26. data/lib/spud_cms/test_files.rb +6 -6
  27. data/lib/spud_cms/version.rb +3 -3
  28. data/spec/controllers/admin/menu_items_controller_spec.rb +54 -56
  29. data/spec/controllers/admin/menus_controller_spec.rb +31 -37
  30. data/spec/controllers/admin/pages_controller_spec.rb +31 -36
  31. data/spec/controllers/admin/snippets_controller_spec.rb +1 -1
  32. data/spec/controllers/pages_controller_spec.rb +21 -21
  33. data/spec/dummy/config/application.rb +3 -4
  34. data/spec/dummy/config/boot.rb +1 -1
  35. data/spec/dummy/config/environments/production.rb +1 -1
  36. data/spec/dummy/config/environments/test.rb +3 -3
  37. data/spec/dummy/config.ru +1 -1
  38. data/spec/dummy/db/migrate/20141231214447_create_spud_users.tb_core.rb +12 -12
  39. data/spec/dummy/db/migrate/20141231214448_add_time_zone_to_spud_user.tb_core.rb +0 -1
  40. data/spec/dummy/db/migrate/20141231214449_add_scope_to_spud_admin_permissions.tb_core.rb +0 -1
  41. data/spec/dummy/db/migrate/20141231214452_create_spud_permissions.tb_core.rb +3 -3
  42. data/spec/dummy/db/migrate/20141231214453_create_spud_role_permissions.tb_core.rb +2 -2
  43. data/spec/dummy/db/migrate/20141231214455_create_spud_permalinks.tb_permalinks.rb +1 -1
  44. data/spec/dummy/db/migrate/20141231214456_add_site_id_to_spud_permalinks.tb_permalinks.rb +1 -1
  45. data/spec/dummy/db/migrate/20141231214457_modify_site_id_for_spud_permalinks.tb_permalinks.rb +4 -4
  46. data/spec/dummy/db/migrate/20141231214459_create_spud_pages.tb_cms.rb +1 -1
  47. data/spec/dummy/db/migrate/20141231214461_create_spud_menu_items.tb_cms.rb +3 -3
  48. data/spec/dummy/db/migrate/20141231214463_create_spud_page_partials.tb_cms.rb +1 -1
  49. data/spec/dummy/db/migrate/20141231214464_add_visibility_to_spud_pages.tb_cms.rb +2 -2
  50. data/spec/dummy/db/migrate/20141231214466_add_use_custom_url_name_to_spud_pages.tb_cms.rb +1 -1
  51. data/spec/dummy/db/migrate/20141231214468_add_menu_id_to_spud_menu_items.tb_cms.rb +1 -1
  52. data/spec/dummy/db/migrate/20141231214469_add_classes_to_spud_menu_items.tb_cms.rb +0 -1
  53. data/spec/dummy/db/migrate/20141231214470_add_site_id_to_spud_pages.tb_cms.rb +2 -2
  54. data/spec/dummy/db/migrate/20141231214471_add_site_id_to_spud_templates.tb_cms.rb +2 -2
  55. data/spec/dummy/db/migrate/20141231214472_add_site_id_to_spud_menus.tb_cms.rb +2 -2
  56. data/spec/dummy/db/migrate/20141231214473_create_spud_page_partial_revisions.tb_cms.rb +1 -1
  57. data/spec/dummy/db/migrate/20141231214475_modify_site_id_for_spud_pages.tb_cms.rb +8 -8
  58. data/spec/dummy/db/migrate/20141231214478_create_spud_page_liquid_tags.tb_cms.rb +1 -1
  59. data/spec/dummy/db/migrate/20141231214479_create_spud_snippets.tb_cms.rb +1 -2
  60. data/spec/dummy/db/migrate/20141231214480_change_liquid_tags_to_polymorphic.tb_cms.rb +2 -2
  61. data/spec/dummy/db/migrate/20141231214481_drop_spud_page_liquid_tags.tb_cms.rb +6 -8
  62. data/spec/dummy/db/migrate/20150108164814_remove_site_id_from_cms_tables.tb_cms.rb +1 -0
  63. data/spec/dummy/db/migrate/20150911185843_add_requires_password_change_to_spud_users.tb_core.rb +1 -1
  64. data/spec/dummy/db/migrate/20160215180157_create_tb_redirects.tb_redirects.rb +3 -3
  65. data/spec/dummy/db/schema.rb +142 -153
  66. data/spec/dummy/script/rails +2 -2
  67. data/spec/helpers/cms/application_helper_spec.rb +39 -41
  68. data/spec/models/spud_menu_item_spec.rb +13 -13
  69. data/spec/models/spud_page_partial_revision_spec.rb +1 -1
  70. data/spec/models/spud_page_partial_spec.rb +19 -20
  71. data/spec/models/spud_page_spec.rb +90 -91
  72. data/spec/models/spud_snippet_spec.rb +1 -1
  73. data/spec/rails_helper.rb +12 -6
  74. data/spec/spec_helper.rb +42 -44
  75. metadata +64 -38
  76. data/spec/authlogic_helper.rb +0 -2
@@ -1,164 +1,160 @@
1
1
  class Admin::PagesController < Admin::ApplicationController
2
- add_breadcrumb "Pages", :admin_pages_path
3
- belongs_to_app :pages
4
- before_filter :load_page,:only => [:edit,:update,:show,:destroy]
2
+ add_breadcrumb 'Pages', :admin_pages_path
3
+ belongs_to_app :pages
4
+ before_action :load_page, only: [:edit, :update, :show, :destroy]
5
5
 
6
- def index
7
- @pages = SpudPage.where(:spud_page_id => nil).order(:page_order).includes(:spud_pages)
8
- home_page = SpudPage.where(:url_name => Spud::Cms.root_page_name).first
6
+ def index
7
+ @pages = SpudPage.where(spud_page_id: nil).order(:page_order).includes(:spud_pages)
8
+ home_page = SpudPage.where(url_name: Spud::Cms.root_page_name).first
9
9
  if home_page.blank?
10
10
  flash.now[:warning] = "You have not setup your default CMS page. This page will be your homepage. To do so, create a page with the name '#{Spud::Cms.root_page_name.titlecase}'"
11
11
  end
12
- respond_with @pages
13
- end
14
-
15
- def show
16
- layout = @page.layout || Spud::Cms.default_page_layout
12
+ respond_with @pages
13
+ end
17
14
 
15
+ def show
16
+ layout = @page.layout || Spud::Cms.default_page_layout
18
17
 
19
- render :layout => layout
20
- end
18
+ render layout: layout
19
+ end
21
20
 
22
- def new
23
- add_breadcrumb "New", :new_admin_page_path
21
+ def new
22
+ add_breadcrumb 'New', :new_admin_page_path
24
23
 
25
24
  layouts = Spud::Cms::Engine.template_parser.layouts
26
- layout, layout_info = layouts.select{|k,v| v[:default]}.flatten
27
- @page = SpudPage.new(:layout => layout)
28
- parts = layout_info[:partials]
29
-
30
- parts.each do |part|
31
- @page.spud_page_partials.new(:name => part.strip)
32
- end
33
- respond_with @page
34
- end
35
-
36
- def create
37
- @page = SpudPage.new(page_params)
38
- if params[:preview] && params[:preview].to_i == 1
39
- preview
40
- return
41
- end
42
- flash[:notice] = "Page Saved successfully" if @page.save
43
- respond_with @page,:location => admin_pages_url
44
- end
45
-
46
- def edit
47
- add_breadcrumb @page.name, :edit_admin_page_path
25
+ layout, layout_info = layouts.select { |_k, v| v[:default] }.flatten
26
+ @page = SpudPage.new(layout: layout)
27
+ parts = layout_info[:partials]
28
+
29
+ parts.each do |part|
30
+ @page.spud_page_partials.new(name: part.strip)
31
+ end
32
+ respond_with @page
33
+ end
34
+
35
+ def create
36
+ @page = SpudPage.new(page_params)
37
+ if params[:preview] && params[:preview].to_i == 1
38
+ preview
39
+ return
40
+ end
41
+ flash[:notice] = 'Page Saved successfully' if @page.save
42
+ respond_with @page, location: admin_pages_url
43
+ end
44
+
45
+ def edit
46
+ add_breadcrumb @page.name, :edit_admin_page_path
48
47
 
49
48
  layouts = Spud::Cms::Engine.template_parser.layouts
50
- layout, layout_info = layouts.select{|k,v| k == @page.layout}.flatten if @page.layout.blank? == false
49
+ layout, layout_info = layouts.select { |k, _v| k == @page.layout }.flatten if @page.layout.blank? == false
51
50
  if layout.blank?
52
- layout, layout_info = layouts.select{|k,v| v[:default]}.flatten
51
+ layout, layout_info = layouts.select { |_k, v| v[:default] }.flatten
53
52
  end
54
- @page.layout = layout
53
+ @page.layout = layout
55
54
 
56
- layout_info[:partials].each do |part|
57
- partial = @page.spud_page_partials.select{|p| p.name == part.strip}
58
- if partial.blank?
59
- @page.spud_page_partials.new(:name => part.strip)
60
- end
61
- end
62
-
63
- end
64
-
65
- def update
66
- @page.assign_attributes(page_params)
67
- if params[:preview] && params[:preview].to_i == 1
68
- preview
69
- return
70
- end
71
- if @page.save
72
- flash[:notice] = "Page updated successfully!"
73
- redirect_to admin_pages_url() and return
74
- else
75
- flash[:error] = "There was an error saving this page"
76
- render :action => "edit"
77
- end
78
-
79
- end
80
-
81
- def preview
55
+ layout_info[:partials].each do |part|
56
+ partial = @page.spud_page_partials.select { |p| p.name == part.strip }
57
+ @page.spud_page_partials.new(name: part.strip) if partial.blank?
58
+ end
59
+ end
60
+
61
+ def update
62
+ @page.assign_attributes(page_params)
63
+ if params[:preview] && params[:preview].to_i == 1
64
+ preview
65
+ return
66
+ end
67
+ if @page.save
68
+ flash[:notice] = 'Page updated successfully!'
69
+ redirect_to(admin_pages_url()) && return
70
+ else
71
+ flash[:error] = 'There was an error saving this page'
72
+ render action: 'edit'
73
+ end
74
+ end
75
+
76
+ def preview
82
77
  layout = @page.layout || Spud::Cms.default_page_layout
83
- render :action => :show,:layout => layout
84
- end
85
-
86
- def destroy
87
- status = 500
88
-
89
- if @page.destroy
90
- flash[:notice] = "Page removed successfully!"
91
- status = 200
92
- else
93
- flash[:error] = "Error removing page"
94
- end
95
- respond_to do |format|
96
- format.js {render :status => status}
97
- format.html { redirect_to admin_pages_url()}
98
- end
99
- end
78
+ render action: :show, layout: layout
79
+ end
80
+
81
+ def destroy
82
+ status = 500
83
+
84
+ if @page.destroy
85
+ flash[:notice] = 'Page removed successfully!'
86
+ status = 200
87
+ else
88
+ flash[:error] = 'Error removing page'
89
+ end
90
+ respond_to do |format|
91
+ format.js { render status: status }
92
+ format.html { redirect_to admin_pages_url() }
93
+ end
94
+ end
100
95
 
101
96
  def page_parts
102
97
  layouts = Spud::Cms::Engine.template_parser.layouts
103
- template = params[:template] && !params[:template].blank? ? layouts[params[:template]] : nil
104
- page = SpudPage.where(:id => params[:page]).includes(:spud_page_partials).first
98
+ template = params[:template] && !params[:template].blank? ? layouts[params[:template]] : nil
99
+ page = SpudPage.where(id: params[:page]).includes(:spud_page_partials).first
105
100
  page = SpudPage.new if page.blank?
106
-
101
+
107
102
  old_page_partials = Array.new(page.spud_page_partials)
108
103
  new_page_partials = []
109
-
104
+
110
105
  if !template.blank?
111
106
  template[:partials].each do |page_part|
112
- old_partial = old_page_partials.find{|pp| page_part.strip == pp.name }
107
+ old_partial = old_page_partials.find { |pp| page_part.strip == pp.name }
113
108
  if old_partial
114
109
  new_page_partials << old_partial
115
110
  old_page_partials.delete(old_partial)
116
111
  else
117
- new_page_partials << page.spud_page_partials.build(:name => page_part.strip)
112
+ new_page_partials << page.spud_page_partials.build(name: page_part.strip)
118
113
  end
119
114
  end
120
115
  else
121
- layout, layout_info = layouts.select{|k,v| v[:default]}.flatten
116
+ layout, layout_info = layouts.select { |_k, v| v[:default] }.flatten
122
117
  page.layout = layout
123
- layout_info[:partials].each do |part|
124
- new_page_partials << page.spud_page_partials.build(:name => part)
125
- end
118
+ layout_info[:partials].each do |part|
119
+ new_page_partials << page.spud_page_partials.build(name: part)
120
+ end
126
121
  end
127
122
 
128
123
  respond_to do |format|
129
- format.js {
124
+ format.js do
130
125
  if response.status == 200
131
- render(:partial => 'page_partials_form', :locals => {
132
- :spud_page_partials => new_page_partials,
133
- :remove_page_partials => old_page_partials
134
- })
126
+ render(partial: 'page_partials_form', locals: {
127
+ spud_page_partials: new_page_partials,
128
+ remove_page_partials: old_page_partials
129
+ })
135
130
  else
136
- render(:text => message)
131
+ render(text: message)
137
132
  end
138
- }
133
+ end
139
134
  end
140
135
  end
141
136
 
142
137
  def clear
143
138
  # noop
144
- logger.debug("TODO: Clear Caches")
139
+ logger.debug('TODO: Clear Caches')
145
140
  redirect_to admin_pages_url
146
141
  end
147
142
 
148
- private
149
- def load_page
150
- @page = SpudPage.where(:id => params[:id]).includes(:spud_page_partials).first
151
- if @page.blank?
152
- flash[:error] = "Page not found!"
153
- redirect_to admin_pages_url() and return false
154
- end
155
- return true
156
- end
143
+ private
144
+
145
+ def load_page
146
+ @page = SpudPage.where(id: params[:id]).includes(:spud_page_partials).first
147
+ if @page.blank?
148
+ flash[:error] = 'Page not found!'
149
+ redirect_to(admin_pages_url()) && (return false)
150
+ end
151
+ return true
152
+ end
157
153
 
158
154
  def page_params
159
155
  params.require(:spud_page).permit(:name, :url_name, :created_by, :updated_by, :layout, :visibility, :spud_page_id,
160
156
  :publish_at, :format, :meta_description, :meta_keywords, :page_order, :spud_page_partials_attributes, :use_custom_url_name, :page_title,
161
- :published, :notes, :spud_page_partials_attributes => [:id, :name, :content, :format, :_destroy])
157
+ :published, :notes, spud_page_partials_attributes: [:id, :name, :content, :format, :_destroy])
162
158
  end
163
159
 
164
160
  end
@@ -1,53 +1,53 @@
1
1
  class Admin::SnippetsController < Admin::ApplicationController
2
2
  belongs_to_app :snippets
3
- add_breadcrumb "Snippets", :admin_snippets_url
3
+ add_breadcrumb 'Snippets', :admin_snippets_url
4
4
 
5
- before_filter :load_snippet, :only => [:show, :edit, :update, :destroy]
5
+ before_action :load_snippet, only: [:show, :edit, :update, :destroy]
6
6
 
7
7
  def index
8
- @snippets = SpudSnippet.order(:name).paginate :page => params[:page]
8
+ @snippets = SpudSnippet.order(:name).paginate page: params[:page]
9
9
  respond_with @snippets
10
10
  end
11
11
 
12
12
  def new
13
- add_breadcrumb "New", :new_admin_snippet_url
13
+ add_breadcrumb 'New', :new_admin_snippet_url
14
14
  @snippet = SpudSnippet.new
15
15
  respond_with @snippet
16
16
  end
17
17
 
18
18
  def create
19
- add_breadcrumb "New", :new_admin_snippet_url
19
+ add_breadcrumb 'New', :new_admin_snippet_url
20
20
  @snippet = SpudSnippet.new(snippet_params)
21
21
 
22
22
  @snippet.save
23
23
 
24
- respond_with @snippet, :location => admin_snippets_url
24
+ respond_with @snippet, location: admin_snippets_url
25
25
  end
26
26
 
27
27
  def edit
28
- add_breadcrumb "Edit", :edit_admin_snippet_url
28
+ add_breadcrumb 'Edit', :edit_admin_snippet_url
29
29
 
30
30
  respond_with @snippet
31
31
  end
32
32
 
33
33
  def update
34
- add_breadcrumb "Edit", :edit_admin_snippet_url
35
- flash[:notice] = "Snippet saved successfully!" if @snippet.update_attributes(snippet_params)
36
- respond_with @snippet, :location => admin_snippets_url
34
+ add_breadcrumb 'Edit', :edit_admin_snippet_url
35
+ flash[:notice] = 'Snippet saved successfully!' if @snippet.update_attributes(snippet_params)
36
+ respond_with @snippet, location: admin_snippets_url
37
37
  end
38
38
 
39
39
  def destroy
40
- flash[:notice] = "Snippet removed!" if @snippet.destroy
41
- respond_with @snippet,:location => admin_snippets_url
40
+ flash[:notice] = 'Snippet removed!' if @snippet.destroy
41
+ respond_with @snippet, location: admin_snippets_url
42
42
  end
43
43
 
44
+ private
44
45
 
45
- private
46
46
  def load_snippet
47
- @snippet = SpudSnippet.where(:id => params[:id]).first
47
+ @snippet = SpudSnippet.where(id: params[:id]).first
48
48
  if @snippet.blank?
49
- flash[:error] = "Snippet does not exist!"
50
- redirect_to admin_snippets_url and return false
49
+ flash[:error] = 'Snippet does not exist!'
50
+ redirect_to(admin_snippets_url) && (return false)
51
51
  end
52
52
  end
53
53
 
@@ -1,7 +1,7 @@
1
1
  class Cms::SitemapsController < Spud::ApplicationController
2
- respond_to :xml
3
- def show
4
- @pages = SpudPage.published_pages.viewable.order(:spud_page_id)
5
- respond_with @pages
6
- end
2
+ respond_to :xml
3
+ def show
4
+ @pages = SpudPage.published_pages.viewable.order(:spud_page_id)
5
+ respond_with @pages
6
+ end
7
7
  end
@@ -1,48 +1,44 @@
1
1
  class PagesController < ApplicationController
2
- include SpudCmsLayoutActions
2
+ include SpudCmsLayoutActions
3
3
 
4
- respond_to :html
5
- before_filter :set_default_content_type
4
+ respond_to :html
5
+ before_action :set_default_content_type
6
6
 
7
- def show
8
- # prevents 500 errors if a url like "/home.jpg" is hit
9
- if request.format != :html
10
- render_404
11
- return
12
- end
7
+ def show
8
+ # prevents 500 errors if a url like "/home.jpg" is hit
9
+ if request.format != :html
10
+ render_404
11
+ return
12
+ end
13
13
 
14
- url_name = !params[:id].blank? ? params[:id] : Spud::Cms.root_page_name
15
- @page = SpudPage.published_pages.find_by(:url_name => url_name)
14
+ url_name = !params[:id].blank? ? params[:id] : Spud::Cms.root_page_name
15
+ @page = SpudPage.published_pages.find_by(url_name: url_name)
16
16
 
17
- if @page.blank?
18
- render_404
19
- return
20
- end
17
+ if @page.blank?
18
+ render_404
19
+ return
20
+ end
21
21
 
22
- if @page.is_private?
23
- return if defined?(require_user) && require_user == false
24
- end
22
+ if @page.is_private?
23
+ return if defined?(require_user) && require_user == false
24
+ end
25
25
 
26
- layout = @page.layout || Spud::Cms.default_page_layout
26
+ layout = @page.layout || Spud::Cms.default_page_layout
27
27
 
28
- action_name = "#{layout}_action"
29
- if respond_to?(action_name)
30
- send(action_name, request.method.downcase.to_sym)
31
- end
28
+ action_name = "#{layout}_action"
29
+ send(action_name, request.method.downcase.to_sym) if respond_to?(action_name)
32
30
 
33
- render :layout => layout
34
- end
31
+ render layout: layout
32
+ end
35
33
 
36
- private
34
+ private
37
35
 
38
- def render_404
39
- raise Spud::NotFoundError.new({:item => 'page'})
40
- end
36
+ def render_404
37
+ raise Spud::NotFoundError, item: 'page'
38
+ end
41
39
 
42
- def set_default_content_type
43
- if params[:format].blank?
44
- request.format = :html
45
- end
46
- end
40
+ def set_default_content_type
41
+ request.format = :html if params[:format].blank?
42
+ end
47
43
 
48
44
  end