tb_cms 1.2.3 → 1.3.beta1

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 (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