pages_core 3.4.3 → 3.5.1

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 (215) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +81 -15
  3. data/Rakefile +1 -1
  4. data/app/assets/javascripts/pages/admin.es6.jsx +19 -0
  5. data/app/assets/javascripts/pages/admin/components.es6.jsx +1 -0
  6. data/app/assets/javascripts/pages/admin/components/page_tree.es6.jsx +330 -0
  7. data/app/assets/javascripts/pages/admin/components/page_tree_actions.es6.jsx +8 -0
  8. data/app/assets/javascripts/pages/admin/components/page_tree_node.es6.jsx +374 -0
  9. data/app/assets/javascripts/pages/admin/components/page_tree_store.es6.jsx +161 -0
  10. data/app/assets/javascripts/pages/admin/features/content_tabs.es6.jsx +63 -0
  11. data/app/assets/javascripts/pages/admin/features/edit_page.es6.jsx +141 -0
  12. data/app/assets/javascripts/pages/admin/features/editable_image.es6.jsx +145 -0
  13. data/app/assets/javascripts/pages/admin/features/modal.es6.jsx +90 -0
  14. data/app/assets/javascripts/pages/admin/features/page_images.es6.jsx +338 -0
  15. data/app/assets/javascripts/pages/admin/features/rich_text.es6.jsx +124 -0
  16. data/app/assets/javascripts/pages/admin/features/tag_editor.es6.jsx +160 -0
  17. data/app/assets/javascripts/pages/admin/lib/ajax_extensions.es6.jsx +21 -0
  18. data/app/assets/javascripts/pages/admin/lib/center_on_screen.es6.jsx +22 -0
  19. data/app/assets/javascripts/pages/admin/lib/tree.es6.jsx +294 -0
  20. data/app/assets/javascripts/pages/login_form.es6.jsx +21 -0
  21. data/app/assets/stylesheets/pages/admin.scss +148 -0
  22. data/app/assets/stylesheets/pages/admin/components/buttons.scss +5 -0
  23. data/app/assets/stylesheets/pages/admin/{editable_image.css.erb → components/editable_image.scss} +7 -8
  24. data/app/assets/stylesheets/pages/admin/components/forms.scss +71 -0
  25. data/app/assets/stylesheets/pages/admin/components/header.scss +169 -0
  26. data/app/assets/stylesheets/pages/admin/{images.css.scss.erb → components/images.scss} +6 -11
  27. data/app/assets/stylesheets/pages/admin/components/layout.scss +44 -0
  28. data/app/assets/stylesheets/pages/admin/components/links.scss +43 -0
  29. data/app/assets/stylesheets/pages/admin/components/list_table.scss +58 -0
  30. data/app/assets/stylesheets/pages/admin/{login.css.scss.erb → components/login.scss} +1 -1
  31. data/app/assets/stylesheets/pages/admin/{modal.css.erb → components/modal.scss} +3 -2
  32. data/app/assets/stylesheets/pages/admin/components/page_tree.scss +173 -0
  33. data/app/assets/stylesheets/pages/admin/{pagination.css.scss → components/pagination.scss} +13 -4
  34. data/app/assets/stylesheets/pages/admin/components/sidebar.scss +25 -0
  35. data/app/assets/stylesheets/pages/admin/{tag_editor.css.scss.erb → components/tag_editor.scss} +6 -0
  36. data/app/assets/stylesheets/pages/admin/components/textarea.scss +76 -0
  37. data/app/assets/stylesheets/pages/admin/controllers/pages.scss +196 -0
  38. data/app/assets/stylesheets/pages/admin/controllers/{users.css.erb → users.scss} +0 -0
  39. data/app/assets/stylesheets/pages/admin/mixins/breakpoints.scss +21 -0
  40. data/app/assets/stylesheets/pages/admin/mixins/clearfix.scss +7 -0
  41. data/app/assets/stylesheets/pages/admin/mixins/gradients.scss +7 -0
  42. data/app/assets/stylesheets/pages/admin/{print.css.erb → print.scss} +0 -0
  43. data/app/assets/stylesheets/pages/admin/vars.scss +8 -0
  44. data/app/controllers/admin/invites_controller.rb +10 -6
  45. data/app/controllers/admin/page_files_controller.rb +6 -8
  46. data/app/controllers/admin/page_images_controller.rb +14 -19
  47. data/app/controllers/admin/pages_controller.rb +44 -97
  48. data/app/controllers/admin/password_resets_controller.rb +7 -2
  49. data/app/controllers/concerns/pages_core/add_comments_controller.rb +67 -0
  50. data/app/controllers/concerns/pages_core/admin/news_page_controller.rb +58 -0
  51. data/app/controllers/concerns/pages_core/authentication.rb +1 -1
  52. data/app/controllers/concerns/pages_core/exception_handler.rb +44 -21
  53. data/app/controllers/concerns/pages_core/policies_helper.rb +10 -6
  54. data/app/controllers/concerns/pages_core/preview_pages_controller.rb +43 -0
  55. data/app/controllers/concerns/pages_core/process_titler.rb +2 -2
  56. data/app/controllers/concerns/pages_core/rss_controller.rb +25 -0
  57. data/app/controllers/concerns/pages_core/search_pages_controller.rb +40 -0
  58. data/app/controllers/errors_controller.rb +14 -2
  59. data/app/controllers/pages_core/admin_controller.rb +7 -5
  60. data/app/controllers/pages_core/frontend/page_files_controller.rb +5 -7
  61. data/app/controllers/pages_core/frontend/pages_controller.rb +41 -219
  62. data/app/controllers/pages_core/frontend_controller.rb +8 -2
  63. data/app/controllers/pages_core/sitemaps_controller.rb +5 -4
  64. data/app/formatters/pages_core/html_formatter.rb +33 -23
  65. data/app/helpers/admin/menu_helper.rb +12 -9
  66. data/app/helpers/admin/pages_helper.rb +40 -28
  67. data/app/helpers/pages_core/admin/admin_helper.rb +58 -56
  68. data/app/helpers/pages_core/admin/labelled_field_helper.rb +6 -7
  69. data/app/helpers/pages_core/admin/tag_editor_helper.rb +11 -9
  70. data/app/helpers/pages_core/application_helper.rb +13 -26
  71. data/app/helpers/pages_core/form_builder.rb +71 -134
  72. data/app/helpers/pages_core/head_tags_helper.rb +26 -168
  73. data/app/helpers/pages_core/images_helper.rb +3 -3
  74. data/app/helpers/pages_core/meta_tags_helper.rb +96 -0
  75. data/app/helpers/pages_core/open_graph_tags_helper.rb +51 -0
  76. data/app/helpers/pages_core/page_path_helper.rb +40 -0
  77. data/app/mailers/admin_mailer.rb +14 -14
  78. data/app/models/autopublisher.rb +2 -2
  79. data/app/models/category.rb +8 -8
  80. data/app/models/concerns/pages_core/has_roles.rb +2 -2
  81. data/app/models/concerns/pages_core/humanizable_param.rb +5 -5
  82. data/app/models/concerns/pages_core/page_model/autopublishable.rb +25 -0
  83. data/app/models/concerns/pages_core/page_model/commentable.rb +29 -0
  84. data/app/models/concerns/pages_core/page_model/images.rb +50 -0
  85. data/app/models/concerns/pages_core/page_model/localizable.rb +29 -0
  86. data/app/models/concerns/pages_core/page_model/pathable.rb +115 -0
  87. data/app/models/concerns/pages_core/page_model/redirectable.rb +36 -0
  88. data/app/models/concerns/pages_core/page_model/searchable.rb +41 -0
  89. data/app/models/concerns/pages_core/page_model/sortable.rb +54 -0
  90. data/app/models/concerns/pages_core/page_model/status.rb +50 -0
  91. data/app/models/concerns/pages_core/page_model/templateable.rb +82 -0
  92. data/app/models/concerns/pages_core/page_model/tree.rb +108 -0
  93. data/app/models/page.rb +30 -212
  94. data/app/models/page_builder.rb +4 -6
  95. data/app/models/page_category.rb +7 -0
  96. data/app/models/page_comment.rb +1 -1
  97. data/app/models/page_file.rb +4 -6
  98. data/app/models/page_image.rb +6 -7
  99. data/app/models/page_path.rb +46 -0
  100. data/app/models/password_reset_token.rb +5 -5
  101. data/app/models/role.rb +1 -1
  102. data/app/models/tag.rb +14 -16
  103. data/app/models/tagging.rb +2 -1
  104. data/app/models/user.rb +6 -7
  105. data/app/policies/page_policy.rb +8 -4
  106. data/app/policies/user_policy.rb +1 -1
  107. data/app/serializers/page_tree_serializer.rb +15 -0
  108. data/app/views/admin/invites/new.html.erb +2 -1
  109. data/app/views/admin/invites/show.html.erb +3 -4
  110. data/app/views/admin/pages/_edit_comments.html.erb +22 -6
  111. data/app/views/admin/pages/_edit_content.html.erb +4 -2
  112. data/app/views/admin/pages/_edit_images.html.erb +86 -75
  113. data/app/views/admin/pages/_edit_metadata.html.erb +22 -0
  114. data/app/views/admin/pages/_edit_options.html.erb +23 -15
  115. data/app/views/admin/pages/_pagelisting.html.erb +6 -6
  116. data/app/views/admin/pages/edit.html.erb +11 -6
  117. data/app/views/admin/pages/index.html.erb +12 -53
  118. data/app/views/admin/pages/new.html.erb +3 -3
  119. data/app/views/admin/pages/news.html.erb +1 -1
  120. data/app/views/admin_mailer/invite.text.erb +1 -1
  121. data/app/views/admin_mailer/password_reset.text.erb +1 -1
  122. data/app/views/errors/422.html.erb +7 -0
  123. data/app/views/errors/500_critical.html.erb +1 -1
  124. data/app/views/layouts/admin.html.erb +36 -32
  125. data/app/views/layouts/admin/_header.html.erb +2 -2
  126. data/config/locales/en.yml +38 -1
  127. data/config/routes.rb +40 -23
  128. data/db/migrate/20111219033112_create_pages_tables.rb +25 -29
  129. data/db/migrate/20121010055412_drop_removed_tables.rb +3 -3
  130. data/db/migrate/20130823133208_update_page_redirect_to.rb +0 -13
  131. data/db/migrate/20140203183900_create_roles.rb +5 -2
  132. data/db/migrate/20140920231700_convert_images_to_dis.rb +4 -2
  133. data/db/migrate/20150401131300_localize_images.rb +7 -8
  134. data/db/migrate/20151002174800_create_page_paths.rb +10 -0
  135. data/db/migrate/20151021103400_drop_binaries_table.rb +7 -0
  136. data/db/migrate/20151204151000_remove_page_content_order.rb +5 -0
  137. data/db/migrate/20160330220900_rename_pages_categories.rb +6 -0
  138. data/db/migrate/20160405202700_change_localization_limit.rb +9 -0
  139. data/lib/pages_core.rb +22 -27
  140. data/lib/pages_core/admin_menu_item.rb +16 -3
  141. data/lib/pages_core/archive_finder.rb +40 -13
  142. data/lib/pages_core/cache_sweeper.rb +72 -45
  143. data/lib/pages_core/configuration.rb +2 -2
  144. data/lib/pages_core/configuration/base.rb +4 -8
  145. data/lib/pages_core/configuration/pages.rb +6 -3
  146. data/lib/pages_core/engine.rb +23 -1
  147. data/lib/pages_core/extensions.rb +2 -2
  148. data/lib/pages_core/file_embedder.rb +40 -0
  149. data/lib/pages_core/page_path_constraint.rb +23 -0
  150. data/lib/pages_core/pages_plugin.rb +11 -0
  151. data/lib/pages_core/paginates.rb +3 -3
  152. data/lib/pages_core/plugin.rb +14 -8
  153. data/lib/pages_core/templates.rb +6 -6
  154. data/lib/pages_core/templates/block_configuration.rb +1 -1
  155. data/lib/pages_core/templates/configuration.rb +23 -24
  156. data/lib/pages_core/templates/configuration_handler.rb +1 -1
  157. data/lib/pages_core/templates/configuration_proxy.rb +7 -11
  158. data/lib/pages_core/templates/template_configuration.rb +55 -61
  159. data/lib/pages_core/version.rb +1 -1
  160. data/lib/rails/generators/pages_core/install/install_generator.rb +22 -48
  161. data/lib/rails/generators/pages_core/install/templates/page_templates_initializer.rb +1 -1
  162. data/lib/rails/generators/pages_core/install/templates/pages_initializer.rb +6 -3
  163. data/lib/rails/generators/pages_core/rspec/rspec_generator.rb +4 -1
  164. data/lib/rails/generators/pages_core/rspec/templates/factories.rb +1 -1
  165. data/lib/tasks/pages.rake +4 -4
  166. data/lib/tasks/pages/page_paths.rake +12 -0
  167. data/template.rb +2 -2
  168. data/vendor/assets/javascripts/reflux.min.js +1 -0
  169. metadata +173 -85
  170. data/app/assets/images/pages/admin/description-bg.gif +0 -0
  171. data/app/assets/images/pages/admin/drag-handle.gif +0 -0
  172. data/app/assets/images/pages/admin/flash-error-bg.gif +0 -0
  173. data/app/assets/images/pages/admin/formelement-bg.gif +0 -0
  174. data/app/assets/images/pages/admin/header-tab-current-bg.gif +0 -0
  175. data/app/assets/images/pages/admin/list-table-td-bg.gif +0 -0
  176. data/app/assets/images/pages/admin/sidebar-bg.gif +0 -0
  177. data/app/assets/images/pages/admin/textarea_controls.gif +0 -0
  178. data/app/assets/javascripts/pages/admin.js.coffee +0 -54
  179. data/app/assets/javascripts/pages/admin/controllers/base.js.coffee +0 -4
  180. data/app/assets/javascripts/pages/admin/controllers/pages_controller.js.coffee +0 -139
  181. data/app/assets/javascripts/pages/admin/controllers/users_controller.js.coffee +0 -9
  182. data/app/assets/javascripts/pages/admin/features/content_tabs.js.coffee +0 -47
  183. data/app/assets/javascripts/pages/admin/features/editable_image.js.coffee.erb +0 -122
  184. data/app/assets/javascripts/pages/admin/features/modal.js.coffee +0 -66
  185. data/app/assets/javascripts/pages/admin/features/page_images.js +0 -329
  186. data/app/assets/javascripts/pages/admin/features/rich_text.js.coffee +0 -40
  187. data/app/assets/javascripts/pages/admin/features/tag_editor.js +0 -159
  188. data/app/assets/javascripts/pages/admin/lib/ajax_extensions.js.coffee +0 -17
  189. data/app/assets/javascripts/pages/admin/lib/center_on_screen.js.coffee +0 -21
  190. data/app/assets/javascripts/pages/admin/lib/jrichtextarea.js +0 -57
  191. data/app/assets/javascripts/pages/login_form.js.coffee +0 -17
  192. data/app/assets/stylesheets/pages/admin.css.erb +0 -404
  193. data/app/assets/stylesheets/pages/admin/buttons.css.erb +0 -5
  194. data/app/assets/stylesheets/pages/admin/controllers/artists.css.erb +0 -94
  195. data/app/assets/stylesheets/pages/admin/controllers/files.css.erb +0 -58
  196. data/app/assets/stylesheets/pages/admin/controllers/pages.css.scss.erb +0 -178
  197. data/app/assets/stylesheets/pages/admin/forms.css.scss.erb +0 -73
  198. data/app/assets/stylesheets/pages/admin/header.css.erb +0 -129
  199. data/app/assets/stylesheets/pages/admin/links.css.erb +0 -34
  200. data/app/assets/stylesheets/pages/admin/list_table.css.erb +0 -56
  201. data/app/assets/stylesheets/pages/admin/sidebar.css.erb +0 -39
  202. data/app/assets/stylesheets/pages/admin/sortable_images.css.erb +0 -18
  203. data/app/assets/stylesheets/pages/admin/textarea.css.erb +0 -55
  204. data/app/models/concerns/pages_core/page_tree.rb +0 -85
  205. data/app/models/concerns/pages_core/searchable_page.rb +0 -33
  206. data/app/models/concerns/pages_core/templateable.rb +0 -85
  207. data/app/models/localization.rb +0 -27
  208. data/db/migrate/20140515130100_remove_sphinx_deltas.rb +0 -15
  209. data/lib/pages_core/localizable.rb +0 -49
  210. data/lib/pages_core/localizable/active_record_extension.rb +0 -41
  211. data/lib/pages_core/localizable/class_methods.rb +0 -51
  212. data/lib/pages_core/localizable/configuration.rb +0 -50
  213. data/lib/pages_core/localizable/instance_methods.rb +0 -130
  214. data/lib/pages_core/localizable/localizer.rb +0 -72
  215. data/lib/pages_core/localizable/scope_extension.rb +0 -22
data/config/routes.rb CHANGED
@@ -4,31 +4,29 @@ Rails.application.routes.draw do
4
4
  image_resources :images, path: "dynamic_images/:digest(/:size)"
5
5
 
6
6
  # Pages
7
- scope path: PagesCore.config.pages_path_scope do
8
- resources :pages, path: ":locale/pages" do
9
- collection do
10
- get "search"
11
- post "search"
12
- end
13
- member do
14
- post "add_comment"
15
- put "preview"
16
- end
17
- resources :files, controller: "page_files"
7
+ resources :pages, path: ":locale/pages" do
8
+ collection do
9
+ get "search"
10
+ post "search"
18
11
  end
12
+ member do
13
+ post "add_comment"
14
+ put "preview"
15
+ end
16
+ resources :files, controller: "page_files"
17
+ end
19
18
 
20
- get(
21
- "/:locale/pages/:id/:page" => "pages#show",
22
- constraints: { page: /\d+/ }, as: :paginated_page
23
- )
24
-
25
- # Redirect hack for backwards compatibility
26
- get "pages/:locale" => redirect("/%{locale}/pages"), locale: /\w\w\w/
27
- get "pages/:locale/*glob" => redirect("/%{locale}/pages/%{glob}"),
28
- locale: /\w\w\w/
19
+ get(
20
+ "/:locale/pages/:id/:page" => "pages#show",
21
+ constraints: { page: /\d+/ }, as: :paginated_page
22
+ )
29
23
 
30
- get "(/:locale)" => "pages#index" if PagesCore.config.pages_path_scope?
31
- end
24
+ # Redirect hack for backwards compatibility
25
+ get "pages/:locale" => redirect("/%{locale}/pages"), locale: /\w\w\w/
26
+ get(
27
+ "pages/:locale/*glob" => redirect("/%{locale}/pages/%{glob}"),
28
+ locale: /\w\w\w/
29
+ )
32
30
 
33
31
  # Authentication
34
32
  resource :session, only: [:create, :destroy]
@@ -76,10 +74,10 @@ Rails.application.routes.draw do
76
74
  collection do
77
75
  get "news"
78
76
  get "new_news" # TODO: Should be refactored
79
- get "reorder_pages"
80
77
  end
81
78
 
82
79
  member do
80
+ put "move"
83
81
  delete "delete_meta_image"
84
82
  end
85
83
 
@@ -122,6 +120,25 @@ Rails.application.routes.draw do
122
120
  end
123
121
  end
124
122
 
123
+ # Page path routing
124
+ get(
125
+ ":locale/*path/page/:page" => "pages#show",
126
+ constraints: PagesCore::PagePathConstraint.new
127
+ )
128
+ get(
129
+ ":locale/*path" => "pages#show",
130
+ constraints: PagesCore::PagePathConstraint.new
131
+ )
132
+ get(
133
+ "*path" => "pages#show",
134
+ constraints: PagesCore::PagePathConstraint.new,
135
+ defaults: { locale: I18n.default_locale.to_s }
136
+ )
137
+
138
+ get "/404", to: "errors#not_found"
139
+ get "/422", to: "errors#unacceptable"
140
+ get "/500", to: "errors#internal_error"
141
+
125
142
  # Legacy routes
126
143
  get "/comments/:action/:type/:id", controller: "comments"
127
144
  end
@@ -27,7 +27,7 @@ class CreatePagesTables < ActiveRecord::Migration
27
27
  t.datetime "updated_at", null: false
28
28
  end
29
29
 
30
- add_index "categories", ["slug"], name: "index_categories_on_slug"
30
+ add_index "categories", ["slug"]
31
31
 
32
32
  create_table "delayed_jobs" do |t|
33
33
  t.integer "priority", default: 0
@@ -52,7 +52,7 @@ class CreatePagesTables < ActiveRecord::Migration
52
52
  t.string "author"
53
53
  end
54
54
 
55
- add_index "feed_items", ["feed_id"], name: "index_feed_items_on_feed_id"
55
+ add_index "feed_items", ["feed_id"]
56
56
 
57
57
  create_table "feeds" do |t|
58
58
  t.string "url"
@@ -62,7 +62,7 @@ class CreatePagesTables < ActiveRecord::Migration
62
62
  t.datetime "refreshed_at"
63
63
  end
64
64
 
65
- add_index "feeds", ["url"], name: "index_feeds_on_url"
65
+ add_index "feeds", ["url"]
66
66
 
67
67
  create_table "images" do |t|
68
68
  t.string "name"
@@ -155,11 +155,11 @@ class CreatePagesTables < ActiveRecord::Migration
155
155
  t.integer "page_id"
156
156
  t.integer "image_id"
157
157
  t.integer "position"
158
- t.boolean "primary", default: false, null: false
158
+ t.boolean "primary", default: false, null: false
159
159
  end
160
160
 
161
- add_index "page_images", %w(page_id primary), name: "index_page_images_on_page_id_and_primary"
162
- add_index "page_images", ["page_id"], name: "index_page_images_on_page_id"
161
+ add_index "page_images", %w(page_id primary)
162
+ add_index "page_images", ["page_id"]
163
163
 
164
164
  create_table "pages" do |t|
165
165
  t.integer "parent_page_id"
@@ -169,37 +169,35 @@ class CreatePagesTables < ActiveRecord::Migration
169
169
  t.datetime "created_at"
170
170
  t.datetime "updated_at"
171
171
  t.integer "user_id"
172
- t.integer "status", default: 0, null: false
172
+ t.integer "status", default: 0, null: false
173
173
  t.string "content_order"
174
174
  t.boolean "feed_enabled", default: false, null: false
175
175
  t.datetime "published_at"
176
176
  t.text "redirect_to"
177
177
  t.integer "image_id"
178
- t.boolean "comments_allowed", default: true, null: false
178
+ t.boolean "comments_allowed", default: true, null: false
179
179
  t.string "image_link"
180
180
  t.boolean "news_page", default: false, null: false
181
181
  t.boolean "autopublish", default: false, null: false
182
- t.boolean "delta", default: false, null: false
183
182
  t.string "unique_name"
184
- t.integer "comments_count", default: 0, null: false
183
+ t.integer "comments_count", default: 0, null: false
185
184
  t.datetime "last_comment_at"
186
185
  t.boolean "pinned", default: false, null: false
187
186
  end
188
187
 
189
- add_index "pages", ["delta"], name: "delta_index"
190
- add_index "pages", ["parent_page_id"], name: "index_pages_on_parent_page_id"
191
- add_index "pages", ["position"], name: "index_pages_on_position"
192
- add_index "pages", %w(status parent_page_id position), name: "for_find_page"
193
- add_index "pages", ["status"], name: "index_pages_on_status"
194
- add_index "pages", ["user_id"], name: "index_pages_on_user_id"
188
+ add_index "pages", ["parent_page_id"]
189
+ add_index "pages", ["position"]
190
+ add_index "pages", %w(status parent_page_id position)
191
+ add_index "pages", ["status"]
192
+ add_index "pages", ["user_id"]
195
193
 
196
194
  create_table "pages_categories", id: false do |t|
197
195
  t.integer "page_id"
198
196
  t.integer "category_id"
199
197
  end
200
198
 
201
- add_index "pages_categories", ["category_id"], name: "index_pages_categories_on_category_id"
202
- add_index "pages_categories", ["page_id"], name: "index_pages_categories_on_page_id"
199
+ add_index "pages_categories", ["category_id"]
200
+ add_index "pages_categories", ["page_id"]
203
201
 
204
202
  create_table "partials" do |t|
205
203
  t.string "name"
@@ -213,8 +211,8 @@ class CreatePagesTables < ActiveRecord::Migration
213
211
  t.datetime "updated_at"
214
212
  end
215
213
 
216
- add_index "sessions", ["session_id"], name: "index_sessions_on_session_id"
217
- add_index "sessions", ["updated_at"], name: "index_sessions_on_updated_at"
214
+ add_index "sessions", ["session_id"]
215
+ add_index "sessions", ["updated_at"]
218
216
 
219
217
  create_table "sms_subscribers" do |t|
220
218
  t.string "msisdn"
@@ -229,14 +227,14 @@ class CreatePagesTables < ActiveRecord::Migration
229
227
  t.string "taggable_type"
230
228
  end
231
229
 
232
- add_index "taggings", ["tag_id"], name: "by_tag_id"
233
- add_index "taggings", %w(taggable_type taggable_id), name: "by_taggable"
230
+ add_index "taggings", ["tag_id"]
231
+ add_index "taggings", %w(taggable_type taggable_id)
234
232
 
235
233
  create_table "tags" do |t|
236
234
  t.string "name"
237
235
  end
238
236
 
239
- add_index "tags", ["name"], name: "index_tags_on_name"
237
+ add_index "tags", ["name"]
240
238
 
241
239
  create_table "textbits" do |t|
242
240
  t.integer "textable_id"
@@ -247,11 +245,12 @@ class CreatePagesTables < ActiveRecord::Migration
247
245
  t.text "body"
248
246
  t.datetime "created_at"
249
247
  t.datetime "updated_at"
248
+ t.index(%w(textable_id textable_type name language),
249
+ unique: true,
250
+ name: "index_textbits_on_locale")
251
+ t.index %w(textable_id textable_type)
250
252
  end
251
253
 
252
- add_index "textbits", %w(textable_id textable_type name language), name: "by_foreign_key", unique: true
253
- add_index "textbits", %w(textable_id textable_type), name: "by_association"
254
-
255
254
  create_table "users" do |t|
256
255
  t.string "username"
257
256
  t.string "hashed_password"
@@ -272,10 +271,7 @@ class CreatePagesTables < ActiveRecord::Migration
272
271
  t.integer "image_id"
273
272
  t.boolean "is_reviewer", default: false, null: false
274
273
  t.boolean "is_super_admin", default: false, null: false
275
- t.boolean "delta", default: false, null: false
276
274
  t.string "openid_url"
277
275
  end
278
-
279
- add_index "users", ["delta"], name: "delta_index"
280
276
  end
281
277
  end
@@ -15,7 +15,7 @@ class DropRemovedTables < ActiveRecord::Migration
15
15
  create_table :mail_subscribers do |t|
16
16
  t.string :email
17
17
  t.datetime :created_at
18
- t.string :group, default: "Default"
18
+ t.string :group, default: "Default"
19
19
  end
20
20
 
21
21
  create_table :mailings do |t|
@@ -24,9 +24,9 @@ class DropRemovedTables < ActiveRecord::Migration
24
24
  t.string :subject
25
25
  t.text :body
26
26
  t.datetime :created_at
27
- t.boolean :failed, default: false
27
+ t.boolean :failed, default: false
28
28
  t.string :content_type
29
- t.boolean :in_progress, default: false, null: false
29
+ t.boolean :in_progress, default: false, null: false
30
30
  end
31
31
 
32
32
  create_table :mailouts do |t|
@@ -3,19 +3,6 @@
3
3
  class UpdatePageRedirectTo < ActiveRecord::Migration
4
4
  def self.up
5
5
  include Rails.application.routes.url_helpers
6
-
7
- pages = Page.where('redirect_to IS NOT NULL AND redirect_to != ""')
8
- pages.each do |page|
9
- if page.redirect_to == "0" || page.redirect_to == "--- \"\"\n" || page.redirect_to == "--- ''\n"
10
- page.update(redirect_to: nil)
11
- elsif page.redirect_to.start_with?("---")
12
- options = YAML.load(page.redirect_to)
13
- path = url_for(options.merge(locale: ":locale", only_path: true))
14
- page.update(redirect_to: path)
15
- elsif !(page.redirect_to =~ /\A(\/|https?:\/\/)/)
16
- fail "Not a valid Page redirect_to: #{page.redirect_to.inspect}"
17
- end
18
- end
19
6
  change_column :pages, :redirect_to, :string
20
7
  end
21
8
 
@@ -10,8 +10,11 @@ class CreateRoles < ActiveRecord::Migration
10
10
  WHERE #{connection.quote_column_name(flag)} = #{connection.quote(true)}"
11
11
  ).each do |u|
12
12
  connection.execute(
13
- "INSERT INTO #{connection.quote_table_name('roles')} (user_id, name, created_at, updated_at)
14
- VALUES (#{u[0]}, #{connection.quote(role)}, #{connection.quote(Time.now)}, #{connection.quote(Time.now)})"
13
+ "INSERT INTO #{connection.quote_table_name('roles')} " \
14
+ "(user_id, name, created_at, updated_at) " \
15
+ "VALUES (#{u[0]}, #{connection.quote(role)}, " \
16
+ "#{connection.quote(Time.now.utc)}, " \
17
+ "#{connection.quote(Time.now.utc)})"
15
18
  )
16
19
  end
17
20
  end
@@ -36,10 +36,12 @@ class ConvertImagesToDis < ActiveRecord::Migration
36
36
 
37
37
  image.colorspace = "rgb"
38
38
 
39
- image.real_width, image.real_height = Vector2d(image.original_size).to_a
39
+ image.real_width, image.real_height =
40
+ Vector2d(image.original_size).to_a
40
41
 
41
42
  if image.cropped?
42
- image.crop_start_x, image.crop_start_y = Vector2d(image.crop_start).to_a
43
+ image.crop_start_x, image.crop_start_y =
44
+ Vector2d(image.crop_start).to_a
43
45
  image.crop_width, image.crop_height = Vector2d(image.crop_size).to_a
44
46
  end
45
47
 
@@ -5,14 +5,13 @@ class LocalizeImages < ActiveRecord::Migration
5
5
 
6
6
  def up
7
7
  Image.all.in_locale(locale).each do |image|
8
- unless image.attributes["byline"].blank?
9
- Localization.create(
10
- localizable: image,
11
- name: "caption",
12
- locale: locale,
13
- value: image.attributes["byline"]
14
- )
15
- end
8
+ next if image.attributes["byline"].blank?
9
+ Localization.create(
10
+ localizable: image,
11
+ name: "caption",
12
+ locale: locale,
13
+ value: image.attributes["byline"]
14
+ )
16
15
  end
17
16
  remove_column :images, :name, :string
18
17
  remove_column :images, :byline, :string
@@ -0,0 +1,10 @@
1
+ class CreatePagePaths < ActiveRecord::Migration
2
+ def change
3
+ create_table :page_paths do |t|
4
+ t.belongs_to :page
5
+ t.string :locale, :path
6
+ t.timestamps null: false
7
+ end
8
+ add_index :page_paths, [:locale, :path], unique: true
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ class DropBinariesTable < ActiveRecord::Migration
2
+ def change
3
+ drop_table :binaries do |t|
4
+ t.string "sha1_hash"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ class RemovePageContentOrder < ActiveRecord::Migration
2
+ def change
3
+ remove_column :pages, :content_order, :string
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class RenamePagesCategories < ActiveRecord::Migration
2
+ def change
3
+ rename_table :pages_categories, :page_categories
4
+ add_column :page_categories, :id, :primary_key, first: true
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ class ChangeLocalizationLimit < ActiveRecord::Migration
2
+ def up
3
+ change_column :localizations, :value, :text, limit: 16_777_215
4
+ end
5
+
6
+ def down
7
+ change_column :localizations, :value, :text, limit: 65_535
8
+ end
9
+ end
data/lib/pages_core.rb CHANGED
@@ -24,6 +24,7 @@ require "coffee-script"
24
24
  require "delayed_job"
25
25
  require "dis"
26
26
  require "dynamic_image"
27
+ require "localizable_model"
27
28
  require "json"
28
29
  require "rails_i18n"
29
30
  require "recaptcha/rails"
@@ -31,37 +32,33 @@ require "RedCloth"
31
32
  require "sass"
32
33
  require "thinking-sphinx"
33
34
 
34
- # Javascript
35
+ # Assets
36
+ require "font-awesome-rails"
37
+ require "jcrop/rails/v2"
38
+ require "jquery-ui-rails"
35
39
  require "jquery/rails/engine"
36
- require "jquery/ui/rails"
37
- require "jquery-cookie-rails"
40
+ require "react-rails"
38
41
  require "underscore-rails"
39
- require "jcrop/rails/v2"
42
+
43
+ # Pages
44
+ require "pages_core/plugin"
45
+ require "pages_core/admin_menu_item"
46
+ require "pages_core/archive_finder"
47
+ require "pages_core/cache_sweeper"
48
+ require "pages_core/file_embedder"
49
+ require "pages_core/configuration"
50
+ require "pages_core/engine"
51
+ require "pages_core/extensions"
52
+ require "pages_core/page_path_constraint"
53
+ require "pages_core/pages_plugin"
54
+ require "pages_core/paginates"
55
+ require "pages_core/templates"
56
+ require "pages_core/version"
40
57
 
41
58
  module PagesCore
42
59
  class NotAuthorized < StandardError; end
43
60
 
44
61
  class << self
45
- def load_dependencies!
46
- load "pages_core/plugin.rb"
47
-
48
- load "pages_core/admin_menu_item.rb"
49
- load "pages_core/archive_finder.rb"
50
- load "pages_core/cache_sweeper.rb"
51
- load "pages_core/configuration.rb"
52
- load "pages_core/engine.rb"
53
- load "pages_core/extensions.rb"
54
- load "pages_core/localizable.rb"
55
- load "pages_core/pages_plugin.rb"
56
- load "pages_core/paginates.rb"
57
- load "pages_core/templates.rb"
58
- load "pages_core/version.rb"
59
- end
60
-
61
- def init!
62
- load_dependencies!
63
- end
64
-
65
62
  def version
66
63
  VERSION
67
64
  end
@@ -82,8 +79,6 @@ module PagesCore
82
79
  @configuration
83
80
  end
84
81
  end
85
- alias_method :config, :configuration
82
+ alias config configuration
86
83
  end
87
84
  end
88
-
89
- PagesCore.init!