integral 1.3.0 → 1.4.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 (205) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -30
  3. data/Rakefile +1 -1
  4. data/app/assets/images/integral/defaults/no_image_available.jpg +0 -0
  5. data/app/assets/javascripts/integral/backend.js +102 -11
  6. data/app/assets/javascripts/integral/frontend.js +37 -0
  7. data/app/assets/javascripts/integral/support/confirm_modal.coffee +2 -2
  8. data/app/assets/javascripts/integral/support/gallery.coffee +71 -54
  9. data/app/assets/javascripts/integral/support/lib/lazysizes.js +755 -0
  10. data/app/assets/javascripts/integral/support/lib/materialize-tags.js +49 -44
  11. data/app/assets/javascripts/integral/support/ls.instagram.js +57 -0
  12. data/app/assets/javascripts/integral/support/ls.twitter.js +66 -0
  13. data/app/assets/javascripts/integral/support/record_selector.coffee +1 -1
  14. data/app/assets/javascripts/integral/support/remote_form.coffee +5 -2
  15. data/app/assets/stylesheets/integral/backend.sass +2 -1
  16. data/app/assets/stylesheets/integral/backend/_foundation_settings.scss +3 -4
  17. data/app/assets/stylesheets/integral/backend/dashboard-layout.scss +4 -1
  18. data/app/assets/stylesheets/integral/backend/materialize-tags.sass +1 -1
  19. data/app/assets/stylesheets/integral/backend/modules/timeline.scss +214 -0
  20. data/app/assets/stylesheets/integral/backend/shared.sass +80 -11
  21. data/app/assets/stylesheets/integral/frontend.scss +45 -0
  22. data/app/assets/stylesheets/integral/frontend/_foundation_settings.scss +2 -2
  23. data/app/assets/stylesheets/integral/frontend/blog.sass +155 -142
  24. data/app/assets/stylesheets/integral/frontend/layout.sass +3 -3
  25. data/app/assets/stylesheets/integral/frontend/modules/article-footer.scss +55 -0
  26. data/app/assets/stylesheets/integral/frontend/modules/article.scss +34 -0
  27. data/app/assets/stylesheets/integral/frontend/modules/horizontal-post.scss +44 -0
  28. data/app/assets/stylesheets/integral/frontend/modules/inline-articles.scss +23 -0
  29. data/app/assets/stylesheets/integral/frontend/modules/latest-post.scss +37 -0
  30. data/app/assets/stylesheets/integral/frontend/modules/list-widget.scss +50 -0
  31. data/app/assets/stylesheets/integral/frontend/modules/piped-list.scss +33 -0
  32. data/app/assets/stylesheets/integral/frontend/modules/post-tags.scss +19 -0
  33. data/app/assets/stylesheets/integral/frontend/modules/scroll-container.scss +9 -0
  34. data/app/assets/stylesheets/integral/frontend/modules/sidebar-articles.scss +42 -0
  35. data/app/assets/stylesheets/integral/frontend/modules/sidebar-tags.scss +6 -0
  36. data/app/assets/stylesheets/integral/frontend/modules/sidebar-widget.scss +47 -0
  37. data/app/assets/stylesheets/integral/frontend/modules/vertical-post.scss +31 -0
  38. data/app/assets/stylesheets/integral/frontend/share_modal.sass +0 -5
  39. data/app/assets/stylesheets/integral/support/gallery.sass +8 -0
  40. data/app/assets/stylesheets/integral/support/media-query-indicator.sass +6 -0
  41. data/app/controllers/integral/application_controller.rb +7 -1
  42. data/app/controllers/integral/backend/activities_controller.rb +13 -2
  43. data/app/controllers/integral/backend/base_controller.rb +60 -7
  44. data/app/controllers/integral/backend/categories_controller.rb +49 -0
  45. data/app/controllers/integral/backend/pages_controller.rb +7 -2
  46. data/app/controllers/integral/backend/posts_controller.rb +8 -3
  47. data/app/controllers/integral/backend/static_pages_controller.rb +4 -0
  48. data/app/controllers/integral/backend/users_controller.rb +13 -7
  49. data/app/controllers/integral/categories_controller.rb +31 -0
  50. data/app/controllers/integral/pages_controller.rb +1 -1
  51. data/app/controllers/integral/posts_controller.rb +5 -3
  52. data/app/decorators/integral/category_decorator.rb +30 -0
  53. data/app/decorators/integral/category_version_decorator.rb +7 -0
  54. data/app/decorators/integral/image_version_decorator.rb +7 -0
  55. data/app/decorators/integral/list_decorator.rb +1 -1
  56. data/app/decorators/integral/list_version_decorator.rb +7 -0
  57. data/app/decorators/integral/page_version_decorator.rb +7 -0
  58. data/app/decorators/integral/post_decorator.rb +9 -1
  59. data/app/decorators/integral/post_version_decorator.rb +7 -0
  60. data/app/decorators/integral/user_decorator.rb +1 -1
  61. data/app/decorators/integral/user_version_decorator.rb +7 -0
  62. data/app/decorators/integral/version_decorator.rb +51 -12
  63. data/app/helpers/integral/backend/base_helper.rb +56 -2
  64. data/app/helpers/integral/blog_helper.rb +21 -4
  65. data/app/jobs/integral/webhook/delivery_job.rb +37 -0
  66. data/app/mailers/integral/contact_mailer.rb +4 -1
  67. data/app/models/concerns/integral/lazy_contentable.rb +54 -0
  68. data/app/models/concerns/integral/webhook/delivery.rb +30 -0
  69. data/app/models/concerns/integral/webhook/observable.rb +23 -0
  70. data/app/models/integral/category.rb +20 -0
  71. data/app/models/integral/category_version.rb +8 -0
  72. data/app/models/integral/list_item.rb +1 -2
  73. data/app/models/integral/page.rb +18 -3
  74. data/app/models/integral/post.rb +28 -1
  75. data/app/models/integral/version.rb +2 -2
  76. data/app/models/integral/webhook/endpoint.rb +40 -0
  77. data/app/models/integral/webhook/event.rb +20 -0
  78. data/app/policies/integral/base_policy.rb +1 -0
  79. data/app/policies/integral/category_policy.rb +9 -0
  80. data/app/serializers/integral/post_serializer.rb +24 -0
  81. data/app/uploaders/integral/avatar_uploader.rb +1 -1
  82. data/app/views/integral/backend/activities/_activity.haml +21 -0
  83. data/app/views/integral/backend/activities/_grid.haml +1 -2
  84. data/app/views/integral/backend/activities/shared/_grid.haml +3 -2
  85. data/app/views/integral/backend/activities/shared/{_listing.haml → index.haml} +1 -0
  86. data/app/views/integral/backend/activities/shared/{_log.haml → show.haml} +0 -0
  87. data/app/views/integral/backend/categories/_modal.haml +25 -0
  88. data/app/views/integral/backend/lists/_child_fields.haml +1 -1
  89. data/app/views/integral/backend/lists/_item_container.haml +1 -1
  90. data/app/views/integral/backend/lists/_item_modal.haml +1 -1
  91. data/app/views/integral/backend/lists/_list_item_fields.haml +1 -1
  92. data/app/views/integral/backend/pages/_form.haml +1 -4
  93. data/app/views/integral/backend/pages/_grid.haml +34 -9
  94. data/app/views/integral/backend/pages/edit.haml +9 -3
  95. data/app/views/integral/backend/pages/index.haml +11 -21
  96. data/app/views/integral/backend/pages/list.haml +22 -0
  97. data/app/views/integral/backend/pages/show.haml +48 -0
  98. data/app/views/integral/backend/posts/_form.haml +8 -6
  99. data/app/views/integral/backend/posts/_grid.haml +33 -7
  100. data/app/views/integral/backend/posts/index.haml +13 -19
  101. data/app/views/integral/backend/posts/list.haml +20 -0
  102. data/app/views/integral/backend/posts/show.haml +54 -0
  103. data/app/views/integral/backend/shared/_activity_modal.haml +13 -0
  104. data/app/views/integral/backend/shared/cards/_categories.haml +34 -0
  105. data/app/views/integral/backend/{static_pages/_card.haml → shared/cards/_object.haml} +0 -0
  106. data/app/views/integral/backend/shared/cards/_recent_activity.haml +20 -0
  107. data/app/views/integral/backend/shared/cards/_recent_pages.haml +19 -0
  108. data/app/views/integral/backend/shared/cards/_recent_posts.haml +18 -0
  109. data/app/views/integral/backend/shared/cards/_recent_user_activity.haml +1 -0
  110. data/app/views/integral/backend/shared/cards/_recent_users.haml +19 -0
  111. data/app/views/integral/backend/shared/cards/_top_post_authors.haml +19 -0
  112. data/app/views/integral/backend/shared/record_selector/_record.haml +6 -4
  113. data/app/views/integral/backend/static_pages/dashboard.haml +13 -11
  114. data/app/views/integral/backend/users/_grid.haml +24 -7
  115. data/app/views/integral/backend/users/index.haml +11 -17
  116. data/app/views/integral/backend/users/list.haml +18 -0
  117. data/app/views/integral/backend/users/show.haml +5 -11
  118. data/app/views/integral/categories/show.haml +5 -0
  119. data/app/views/integral/posts/_article_footer.haml +17 -0
  120. data/app/views/integral/posts/_card.haml +11 -0
  121. data/app/views/integral/posts/_latest_post.haml +8 -0
  122. data/app/views/integral/posts/_most_read_section.haml +8 -0
  123. data/app/views/integral/posts/_post.haml +11 -0
  124. data/app/views/integral/posts/_similar_posts.haml +5 -0
  125. data/app/views/integral/posts/index.haml +6 -5
  126. data/app/views/integral/posts/templates/default.haml +34 -33
  127. data/app/views/integral/shared/_subscribe_modal.haml +14 -0
  128. data/app/views/integral/shared/blog/_categories.haml +15 -0
  129. data/app/views/integral/shared/blog/_layout.haml +9 -0
  130. data/app/views/integral/shared/blog/_sidebar.haml +10 -0
  131. data/app/views/integral/shared/gallery/_placeholder.haml +1 -1
  132. data/app/views/integral/shared/gallery/_slide.haml +2 -2
  133. data/app/views/integral/shared/gallery/gallery.haml +5 -2
  134. data/app/views/integral/shared/sidebar/_item.haml +8 -0
  135. data/app/views/integral/shared/sidebar/_newsletter_signup.haml +7 -0
  136. data/app/views/integral/shared/sidebar/_popular_posts.haml +7 -0
  137. data/app/views/integral/shared/sidebar/_popular_tags.haml +7 -0
  138. data/app/views/integral/shared/sidebar/_recent_posts.haml +7 -0
  139. data/app/views/integral/tags/index.haml +2 -2
  140. data/app/views/integral/tags/show.haml +3 -6
  141. data/app/views/layouts/integral/backend.html.haml +3 -0
  142. data/app/views/layouts/integral/backend/_main_menu_items.haml +10 -0
  143. data/app/views/layouts/integral/frontend.html.haml +3 -3
  144. data/config/locales/en.yml +52 -49
  145. data/db/migrate/20190414172018_create_webhook_endpoints.rb +10 -0
  146. data/db/migrate/20190929191412_add_integral_post_categories.rb +13 -0
  147. data/db/migrate/20191203090008_add_image_to_integral_categories.rb +6 -0
  148. data/db/migrate/20200401210442_create_category_versions.rb +20 -0
  149. data/db/seeds.rb +3 -1
  150. data/lib/generators/integral/assets_generator.rb +2 -2
  151. data/lib/generators/integral/install_generator.rb +1 -1
  152. data/lib/generators/integral/views_generator.rb +1 -1
  153. data/lib/generators/templates/integral.rb +5 -0
  154. data/lib/integral.rb +3 -30
  155. data/lib/integral/acts_as_listable.rb +2 -2
  156. data/lib/integral/chart_renderer/base.rb +2 -0
  157. data/lib/integral/content_renderer.rb +2 -2
  158. data/lib/integral/engine.rb +2 -2
  159. data/lib/integral/grids/activities_grid.rb +15 -1
  160. data/lib/integral/list_item_renderer.rb +4 -2
  161. data/lib/integral/list_renderer.rb +1 -0
  162. data/lib/integral/middleware/page_router.rb +15 -6
  163. data/lib/integral/router.rb +19 -3
  164. data/lib/integral/version.rb +1 -1
  165. data/lib/integral/widgets/swiper_list.rb +3 -2
  166. data/public/images/integral/demo/continous-integration.png +0 -0
  167. data/public/images/integral/demo/foundation-frontend-framework.jpg +0 -0
  168. data/public/images/integral/demo/heroku.png +0 -0
  169. data/public/images/integral/demo/integral-cms-without-hassle.jpg +0 -0
  170. data/public/images/integral/demo/integral-features-activity-tracking.jpg +0 -0
  171. data/public/images/integral/demo/integral-features-contact-form.png +0 -0
  172. data/public/images/integral/demo/integral-features-design.jpg +0 -0
  173. data/public/images/integral/demo/integral-features-dynamic-pages.jpg +0 -0
  174. data/public/images/integral/demo/integral-features-image-management.jpg +0 -0
  175. data/public/images/integral/demo/integral-features-integrated-blog.jpg +0 -0
  176. data/public/images/integral/demo/integral-features-list-management.jpg +0 -0
  177. data/public/images/integral/demo/integral-features-seo-ready.jpg +0 -0
  178. data/public/images/integral/demo/integral-features-user-management.jpg +0 -0
  179. data/public/images/integral/demo/integral-presentation.png +0 -0
  180. data/spec/factories.rb +15 -7
  181. metadata +110 -98
  182. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/copywidget.png +0 -0
  183. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/editwidget.png +0 -0
  184. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/copywidget.png +0 -0
  185. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/editwidget.png +0 -0
  186. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/removewidget.png +0 -0
  187. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/widget.png +0 -0
  188. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/removewidget.png +0 -0
  189. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/widget.png +0 -0
  190. data/app/assets/javascripts/ckeditor/plugins/integral-card/plugin.js +0 -86
  191. data/app/assets/javascripts/ckeditor/plugins/integralrecentposts/dialogs/integralrecentposts.js +0 -40
  192. data/app/assets/javascripts/ckeditor/plugins/integralrecentposts/plugin.js +0 -32
  193. data/app/assets/javascripts/ckeditor/plugins/numericinput/LICENSE.md +0 -363
  194. data/app/assets/javascripts/ckeditor/plugins/numericinput/README.md +0 -16
  195. data/app/assets/javascripts/ckeditor/plugins/numericinput/plugin.js +0 -354
  196. data/app/assets/stylesheets/integral/frontend.sass +0 -25
  197. data/app/views/integral/backend/pages/activities.haml +0 -2
  198. data/app/views/integral/backend/pages/activity.haml +0 -1
  199. data/app/views/integral/backend/posts/activities.haml +0 -3
  200. data/app/views/integral/backend/posts/activity.haml +0 -1
  201. data/app/views/integral/posts/_collection.haml +0 -4
  202. data/app/views/integral/posts/_item.haml +0 -16
  203. data/app/views/integral/shared/_blog_layout.haml +0 -15
  204. data/app/views/integral/shared/_blog_sidebar.haml +0 -49
  205. data/lib/integral/slack_bot.rb +0 -45
@@ -1,5 +1,5 @@
1
1
  # :nocov:
2
2
  module Integral
3
3
  # Integral Version
4
- VERSION = '1.3.0'.freeze
4
+ VERSION = '1.4.0'.freeze
5
5
  end
@@ -17,7 +17,7 @@ module Integral
17
17
  # TODO: Move most of these options up to SwiperListRenderer as defaults (?)
18
18
  list_opts = {
19
19
  item_renderer: Integral::PartialListItemRenderer,
20
- html_classes: '',
20
+ html_classes: options[:html_classes],
21
21
  item_renderer_opts: {
22
22
  partial_path: options[:slide_view_path],
23
23
  wrapper_element: 'div',
@@ -32,7 +32,8 @@ module Integral
32
32
  # Default widget options
33
33
  def self.default_options
34
34
  {
35
- slide_view_path: 'integral/shared/record_card'
35
+ slide_view_path: 'integral/shared/record_card',
36
+ html_classes: ''
36
37
  }
37
38
  end
38
39
  end
@@ -12,11 +12,11 @@ FactoryBot.define do
12
12
  factory :integral_user, class: Integral::User, aliases: [:user] do
13
13
  name
14
14
  email
15
- password "password"
16
- password_confirmation "password"
15
+ password { "password" }
16
+ password_confirmation { "password" }
17
17
 
18
18
  factory :integral_admin_user do
19
- admin 1
19
+ admin { 1 }
20
20
  end
21
21
 
22
22
  factory :settings_manager do
@@ -45,14 +45,14 @@ FactoryBot.define do
45
45
  end
46
46
 
47
47
  factory :role, class: Integral::Role do
48
- name 'some_role'
48
+ name { 'some_role' }
49
49
  end
50
50
 
51
51
  factory :image, class: Integral::Image do
52
52
  title
53
53
  description
54
- width 1
55
- height 2
54
+ width { 1 }
55
+ height { 2 }
56
56
  file { Rack::Test::UploadedFile.new(File.join(Integral::Engine.root, 'spec', 'support', 'image.jpg')) }
57
57
  end
58
58
 
@@ -67,6 +67,7 @@ FactoryBot.define do
67
67
  title
68
68
  description
69
69
  tag_list
70
+ category
70
71
  user
71
72
  slug { Faker::Internet.slug(nil, '-') }
72
73
  image
@@ -77,6 +78,13 @@ FactoryBot.define do
77
78
  status { rand(0..1) }
78
79
  end
79
80
 
81
+ factory :integral_category, class: 'Integral::Category', aliases: [:category] do
82
+ title
83
+ description
84
+ slug { Faker::Internet.slug(nil, '-') }
85
+ image
86
+ end
87
+
80
88
  factory :integral_post_viewing, class: 'Integral::PostViewing' do
81
89
  post { create(:integral_post) }
82
90
  ip_address { Faker::Internet.ip_v4_address }
@@ -92,7 +100,7 @@ FactoryBot.define do
92
100
  end
93
101
 
94
102
  factory :integral_list_item_object, class: 'Integral::Object' do
95
- object_type 0
103
+ object_type { 0 }
96
104
  object { create(:integral_post) }
97
105
  end
98
106
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: integral
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick Lindsay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-14 00:00:00.000000000 Z
11
+ date: 2020-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_record_union
@@ -198,28 +198,34 @@ dependencies:
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: 3.2.0
201
+ version: '3.3'
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: 3.2.0
208
+ version: '3.3'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: devise
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - "~>"
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '4.5'
216
+ - - "<"
214
217
  - !ruby/object:Gem::Version
215
- version: 4.5.0
218
+ version: '4.8'
216
219
  type: :runtime
217
220
  prerelease: false
218
221
  version_requirements: !ruby/object:Gem::Requirement
219
222
  requirements:
220
- - - "~>"
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ version: '4.5'
226
+ - - "<"
221
227
  - !ruby/object:Gem::Version
222
- version: 4.5.0
228
+ version: '4.8'
223
229
  - !ruby/object:Gem::Dependency
224
230
  name: devise_invitable
225
231
  requirement: !ruby/object:Gem::Requirement
@@ -556,20 +562,6 @@ dependencies:
556
562
  - - "~>"
557
563
  - !ruby/object:Gem::Version
558
564
  version: 6.0.1
559
- - !ruby/object:Gem::Dependency
560
- name: slack-notifier
561
- requirement: !ruby/object:Gem::Requirement
562
- requirements:
563
- - - "~>"
564
- - !ruby/object:Gem::Version
565
- version: '1.5'
566
- type: :runtime
567
- prerelease: false
568
- version_requirements: !ruby/object:Gem::Requirement
569
- requirements:
570
- - - "~>"
571
- - !ruby/object:Gem::Version
572
- version: '1.5'
573
565
  - !ruby/object:Gem::Dependency
574
566
  name: toastr-rails
575
567
  requirement: !ruby/object:Gem::Requirement
@@ -640,6 +632,20 @@ dependencies:
640
632
  - - "~>"
641
633
  - !ruby/object:Gem::Version
642
634
  version: '6.2'
635
+ - !ruby/object:Gem::Dependency
636
+ name: fast_jsonapi
637
+ requirement: !ruby/object:Gem::Requirement
638
+ requirements:
639
+ - - "~>"
640
+ - !ruby/object:Gem::Version
641
+ version: '1.5'
642
+ type: :runtime
643
+ prerelease: false
644
+ version_requirements: !ruby/object:Gem::Requirement
645
+ requirements:
646
+ - - "~>"
647
+ - !ruby/object:Gem::Version
648
+ version: '1.5'
643
649
  - !ruby/object:Gem::Dependency
644
650
  name: database_cleaner
645
651
  requirement: !ruby/object:Gem::Requirement
@@ -716,14 +722,14 @@ dependencies:
716
722
  requirements:
717
723
  - - "~>"
718
724
  - !ruby/object:Gem::Version
719
- version: '3.8'
725
+ version: '4.0'
720
726
  type: :development
721
727
  prerelease: false
722
728
  version_requirements: !ruby/object:Gem::Requirement
723
729
  requirements:
724
730
  - - "~>"
725
731
  - !ruby/object:Gem::Version
726
- version: '3.8'
732
+ version: '4.0'
727
733
  - !ruby/object:Gem::Dependency
728
734
  name: generator_spec
729
735
  requirement: !ruby/object:Gem::Requirement
@@ -753,33 +759,33 @@ dependencies:
753
759
  - !ruby/object:Gem::Version
754
760
  version: '3.1'
755
761
  - !ruby/object:Gem::Dependency
756
- name: sqlite3
762
+ name: pg
757
763
  requirement: !ruby/object:Gem::Requirement
758
764
  requirements:
759
765
  - - "~>"
760
766
  - !ruby/object:Gem::Version
761
- version: 1.4.0
767
+ version: '0.21'
762
768
  type: :development
763
769
  prerelease: false
764
770
  version_requirements: !ruby/object:Gem::Requirement
765
771
  requirements:
766
772
  - - "~>"
767
773
  - !ruby/object:Gem::Version
768
- version: 1.4.0
774
+ version: '0.21'
769
775
  - !ruby/object:Gem::Dependency
770
776
  name: capybara
771
777
  requirement: !ruby/object:Gem::Requirement
772
778
  requirements:
773
779
  - - "~>"
774
780
  - !ruby/object:Gem::Version
775
- version: '2.10'
781
+ version: '3.32'
776
782
  type: :development
777
783
  prerelease: false
778
784
  version_requirements: !ruby/object:Gem::Requirement
779
785
  requirements:
780
786
  - - "~>"
781
787
  - !ruby/object:Gem::Version
782
- version: '2.10'
788
+ version: '3.32'
783
789
  - !ruby/object:Gem::Dependency
784
790
  name: launchy
785
791
  requirement: !ruby/object:Gem::Requirement
@@ -836,48 +842,6 @@ dependencies:
836
842
  - - "~>"
837
843
  - !ruby/object:Gem::Version
838
844
  version: '3.4'
839
- - !ruby/object:Gem::Dependency
840
- name: flay
841
- requirement: !ruby/object:Gem::Requirement
842
- requirements:
843
- - - "~>"
844
- - !ruby/object:Gem::Version
845
- version: '2.8'
846
- type: :development
847
- prerelease: false
848
- version_requirements: !ruby/object:Gem::Requirement
849
- requirements:
850
- - - "~>"
851
- - !ruby/object:Gem::Version
852
- version: '2.8'
853
- - !ruby/object:Gem::Dependency
854
- name: flog
855
- requirement: !ruby/object:Gem::Requirement
856
- requirements:
857
- - - "~>"
858
- - !ruby/object:Gem::Version
859
- version: '4.4'
860
- type: :development
861
- prerelease: false
862
- version_requirements: !ruby/object:Gem::Requirement
863
- requirements:
864
- - - "~>"
865
- - !ruby/object:Gem::Version
866
- version: '4.4'
867
- - !ruby/object:Gem::Dependency
868
- name: fudge
869
- requirement: !ruby/object:Gem::Requirement
870
- requirements:
871
- - - "~>"
872
- - !ruby/object:Gem::Version
873
- version: 0.6.3
874
- type: :development
875
- prerelease: false
876
- version_requirements: !ruby/object:Gem::Requirement
877
- requirements:
878
- - - "~>"
879
- - !ruby/object:Gem::Version
880
- version: 0.6.3
881
845
  - !ruby/object:Gem::Dependency
882
846
  name: rubocop
883
847
  requirement: !ruby/object:Gem::Requirement
@@ -1283,17 +1247,6 @@ files:
1283
1247
  - app/assets/javascripts/ckeditor/plugins/image2/samples/assets/image1.jpg
1284
1248
  - app/assets/javascripts/ckeditor/plugins/image2/samples/assets/image2.jpg
1285
1249
  - app/assets/javascripts/ckeditor/plugins/image2/samples/image2.html
1286
- - app/assets/javascripts/ckeditor/plugins/integral-card/icons/copywidget.png
1287
- - app/assets/javascripts/ckeditor/plugins/integral-card/icons/editwidget.png
1288
- - app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/copywidget.png
1289
- - app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/editwidget.png
1290
- - app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/removewidget.png
1291
- - app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/widget.png
1292
- - app/assets/javascripts/ckeditor/plugins/integral-card/icons/removewidget.png
1293
- - app/assets/javascripts/ckeditor/plugins/integral-card/icons/widget.png
1294
- - app/assets/javascripts/ckeditor/plugins/integral-card/plugin.js
1295
- - app/assets/javascripts/ckeditor/plugins/integralrecentposts/dialogs/integralrecentposts.js
1296
- - app/assets/javascripts/ckeditor/plugins/integralrecentposts/plugin.js
1297
1250
  - app/assets/javascripts/ckeditor/plugins/lineutils/dev/dnd.html
1298
1251
  - app/assets/javascripts/ckeditor/plugins/lineutils/dev/magicfinger.html
1299
1252
  - app/assets/javascripts/ckeditor/plugins/lineutils/plugin.js
@@ -1344,9 +1297,6 @@ files:
1344
1297
  - app/assets/javascripts/ckeditor/plugins/notification/lang/zh.js
1345
1298
  - app/assets/javascripts/ckeditor/plugins/notification/plugin.js
1346
1299
  - app/assets/javascripts/ckeditor/plugins/notificationaggregator/plugin.js
1347
- - app/assets/javascripts/ckeditor/plugins/numericinput/LICENSE.md
1348
- - app/assets/javascripts/ckeditor/plugins/numericinput/README.md
1349
- - app/assets/javascripts/ckeditor/plugins/numericinput/plugin.js
1350
1300
  - app/assets/javascripts/ckeditor/plugins/openlink/README.md
1351
1301
  - app/assets/javascripts/ckeditor/plugins/openlink/icons/hidpi/openLink.png
1352
1302
  - app/assets/javascripts/ckeditor/plugins/openlink/icons/openLink.png
@@ -1544,6 +1494,7 @@ files:
1544
1494
  - app/assets/javascripts/integral/support/lib/jquery.are-you-sure.js
1545
1495
  - app/assets/javascripts/integral/support/lib/jquery_form.js
1546
1496
  - app/assets/javascripts/integral/support/lib/js.cookie.js
1497
+ - app/assets/javascripts/integral/support/lib/lazysizes.js
1547
1498
  - app/assets/javascripts/integral/support/lib/materialize-tags.js
1548
1499
  - app/assets/javascripts/integral/support/lib/materialize.clockpicker.js
1549
1500
  - app/assets/javascripts/integral/support/lib/swiper.js
@@ -1551,6 +1502,8 @@ files:
1551
1502
  - app/assets/javascripts/integral/support/lib/underscore.js
1552
1503
  - app/assets/javascripts/integral/support/list.coffee
1553
1504
  - app/assets/javascripts/integral/support/list_item.coffee
1505
+ - app/assets/javascripts/integral/support/ls.instagram.js
1506
+ - app/assets/javascripts/integral/support/ls.twitter.js
1554
1507
  - app/assets/javascripts/integral/support/notification_manager.coffee
1555
1508
  - app/assets/javascripts/integral/support/record_selector.coffee
1556
1509
  - app/assets/javascripts/integral/support/remote_form.coffee
@@ -1564,17 +1517,31 @@ files:
1564
1517
  - app/assets/stylesheets/integral/backend/devise.sass
1565
1518
  - app/assets/stylesheets/integral/backend/foundation_and_overrides.scss
1566
1519
  - app/assets/stylesheets/integral/backend/materialize-tags.sass
1520
+ - app/assets/stylesheets/integral/backend/modules/timeline.scss
1567
1521
  - app/assets/stylesheets/integral/backend/notifications.sass
1568
1522
  - app/assets/stylesheets/integral/backend/overrides.sass
1569
1523
  - app/assets/stylesheets/integral/backend/shared.sass
1570
1524
  - app/assets/stylesheets/integral/emails.scss
1571
1525
  - app/assets/stylesheets/integral/emails/colors.sass
1572
- - app/assets/stylesheets/integral/frontend.sass
1526
+ - app/assets/stylesheets/integral/frontend.scss
1573
1527
  - app/assets/stylesheets/integral/frontend/_foundation_settings.scss
1574
1528
  - app/assets/stylesheets/integral/frontend/blog.sass
1575
1529
  - app/assets/stylesheets/integral/frontend/demo.sass
1576
1530
  - app/assets/stylesheets/integral/frontend/foundation_and_overrides.scss
1577
1531
  - app/assets/stylesheets/integral/frontend/layout.sass
1532
+ - app/assets/stylesheets/integral/frontend/modules/article-footer.scss
1533
+ - app/assets/stylesheets/integral/frontend/modules/article.scss
1534
+ - app/assets/stylesheets/integral/frontend/modules/horizontal-post.scss
1535
+ - app/assets/stylesheets/integral/frontend/modules/inline-articles.scss
1536
+ - app/assets/stylesheets/integral/frontend/modules/latest-post.scss
1537
+ - app/assets/stylesheets/integral/frontend/modules/list-widget.scss
1538
+ - app/assets/stylesheets/integral/frontend/modules/piped-list.scss
1539
+ - app/assets/stylesheets/integral/frontend/modules/post-tags.scss
1540
+ - app/assets/stylesheets/integral/frontend/modules/scroll-container.scss
1541
+ - app/assets/stylesheets/integral/frontend/modules/sidebar-articles.scss
1542
+ - app/assets/stylesheets/integral/frontend/modules/sidebar-tags.scss
1543
+ - app/assets/stylesheets/integral/frontend/modules/sidebar-widget.scss
1544
+ - app/assets/stylesheets/integral/frontend/modules/vertical-post.scss
1578
1545
  - app/assets/stylesheets/integral/frontend/overrides.sass
1579
1546
  - app/assets/stylesheets/integral/frontend/share_modal.sass
1580
1547
  - app/assets/stylesheets/integral/frontend/shared.sass
@@ -1587,6 +1554,7 @@ files:
1587
1554
  - app/controllers/integral/application_controller.rb
1588
1555
  - app/controllers/integral/backend/activities_controller.rb
1589
1556
  - app/controllers/integral/backend/base_controller.rb
1557
+ - app/controllers/integral/backend/categories_controller.rb
1590
1558
  - app/controllers/integral/backend/images_controller.rb
1591
1559
  - app/controllers/integral/backend/lists_controller.rb
1592
1560
  - app/controllers/integral/backend/pages_controller.rb
@@ -1595,16 +1563,24 @@ files:
1595
1563
  - app/controllers/integral/backend/static_pages_controller.rb
1596
1564
  - app/controllers/integral/backend/users_controller.rb
1597
1565
  - app/controllers/integral/blog_controller.rb
1566
+ - app/controllers/integral/categories_controller.rb
1598
1567
  - app/controllers/integral/contact_controller.rb
1599
1568
  - app/controllers/integral/pages_controller.rb
1600
1569
  - app/controllers/integral/posts_controller.rb
1601
1570
  - app/controllers/integral/tags_controller.rb
1571
+ - app/decorators/integral/category_decorator.rb
1572
+ - app/decorators/integral/category_version_decorator.rb
1602
1573
  - app/decorators/integral/image_decorator.rb
1574
+ - app/decorators/integral/image_version_decorator.rb
1603
1575
  - app/decorators/integral/list_decorator.rb
1576
+ - app/decorators/integral/list_version_decorator.rb
1604
1577
  - app/decorators/integral/page_decorator.rb
1578
+ - app/decorators/integral/page_version_decorator.rb
1605
1579
  - app/decorators/integral/paginating_decorator.rb
1606
1580
  - app/decorators/integral/post_decorator.rb
1581
+ - app/decorators/integral/post_version_decorator.rb
1607
1582
  - app/decorators/integral/user_decorator.rb
1583
+ - app/decorators/integral/user_version_decorator.rb
1608
1584
  - app/decorators/integral/version_decorator.rb
1609
1585
  - app/helpers/integral/application_helper.rb
1610
1586
  - app/helpers/integral/backend/base_helper.rb
@@ -1615,12 +1591,18 @@ files:
1615
1591
  - app/helpers/integral/support_helper.rb
1616
1592
  - app/jobs/integral/application_job.rb
1617
1593
  - app/jobs/integral/newsletter_signup_job.rb
1594
+ - app/jobs/integral/webhook/delivery_job.rb
1618
1595
  - app/mailers/integral/contact_mailer.rb
1619
1596
  - app/models/ckeditor/asset.rb
1620
1597
  - app/models/ckeditor/attachment_file.rb
1621
1598
  - app/models/ckeditor/picture.rb
1599
+ - app/models/concerns/integral/lazy_contentable.rb
1600
+ - app/models/concerns/integral/webhook/delivery.rb
1601
+ - app/models/concerns/integral/webhook/observable.rb
1622
1602
  - app/models/integral/application_record.rb
1623
1603
  - app/models/integral/basic.rb
1604
+ - app/models/integral/category.rb
1605
+ - app/models/integral/category_version.rb
1624
1606
  - app/models/integral/enquiry.rb
1625
1607
  - app/models/integral/image.rb
1626
1608
  - app/models/integral/image_version.rb
@@ -1641,8 +1623,11 @@ files:
1641
1623
  - app/models/integral/user.rb
1642
1624
  - app/models/integral/user_version.rb
1643
1625
  - app/models/integral/version.rb
1626
+ - app/models/integral/webhook/endpoint.rb
1627
+ - app/models/integral/webhook/event.rb
1644
1628
  - app/models/paper_trail/version.rb
1645
1629
  - app/policies/integral/base_policy.rb
1630
+ - app/policies/integral/category_policy.rb
1646
1631
  - app/policies/integral/image_policy.rb
1647
1632
  - app/policies/integral/list_policy.rb
1648
1633
  - app/policies/integral/page_policy.rb
@@ -1650,6 +1635,7 @@ files:
1650
1635
  - app/policies/integral/settings_policy.rb
1651
1636
  - app/policies/integral/user_policy.rb
1652
1637
  - app/policies/integral/version_policy.rb
1638
+ - app/serializers/integral/post_serializer.rb
1653
1639
  - app/uploaders/ckeditor_attachment_file_uploader.rb
1654
1640
  - app/uploaders/ckeditor_picture_uploader.rb
1655
1641
  - app/uploaders/integral/avatar_uploader.rb
@@ -1664,12 +1650,14 @@ files:
1664
1650
  - app/views/devise/passwords/new.haml
1665
1651
  - app/views/devise/sessions/new.haml
1666
1652
  - app/views/devise/shared/_links.html.erb
1653
+ - app/views/integral/backend/activities/_activity.haml
1667
1654
  - app/views/integral/backend/activities/_grid.haml
1668
1655
  - app/views/integral/backend/activities/index.haml
1669
1656
  - app/views/integral/backend/activities/shared/_grid.haml
1670
- - app/views/integral/backend/activities/shared/_listing.haml
1671
- - app/views/integral/backend/activities/shared/_log.haml
1657
+ - app/views/integral/backend/activities/shared/index.haml
1658
+ - app/views/integral/backend/activities/shared/show.haml
1672
1659
  - app/views/integral/backend/activities/show.haml
1660
+ - app/views/integral/backend/categories/_modal.haml
1673
1661
  - app/views/integral/backend/images/_create_modal.haml
1674
1662
  - app/views/integral/backend/images/_form.haml
1675
1663
  - app/views/integral/backend/images/_grid.haml
@@ -1688,18 +1676,18 @@ files:
1688
1676
  - app/views/integral/backend/lists/new.haml
1689
1677
  - app/views/integral/backend/pages/_form.haml
1690
1678
  - app/views/integral/backend/pages/_grid.haml
1691
- - app/views/integral/backend/pages/activities.haml
1692
- - app/views/integral/backend/pages/activity.haml
1693
1679
  - app/views/integral/backend/pages/edit.haml
1694
1680
  - app/views/integral/backend/pages/index.haml
1681
+ - app/views/integral/backend/pages/list.haml
1695
1682
  - app/views/integral/backend/pages/new.haml
1683
+ - app/views/integral/backend/pages/show.haml
1696
1684
  - app/views/integral/backend/posts/_form.haml
1697
1685
  - app/views/integral/backend/posts/_grid.haml
1698
- - app/views/integral/backend/posts/activities.haml
1699
- - app/views/integral/backend/posts/activity.haml
1700
1686
  - app/views/integral/backend/posts/edit.haml
1701
1687
  - app/views/integral/backend/posts/index.haml
1688
+ - app/views/integral/backend/posts/list.haml
1702
1689
  - app/views/integral/backend/posts/new.haml
1690
+ - app/views/integral/backend/posts/show.haml
1703
1691
  - app/views/integral/backend/settings/_input.haml
1704
1692
  - app/views/integral/backend/settings/_section.haml
1705
1693
  - app/views/integral/backend/settings/index.haml
@@ -1707,6 +1695,7 @@ files:
1707
1695
  - app/views/integral/backend/settings/sections/_lists.haml
1708
1696
  - app/views/integral/backend/settings/sections/_seo.haml
1709
1697
  - app/views/integral/backend/settings/sections/_social.haml
1698
+ - app/views/integral/backend/shared/_activity_modal.haml
1710
1699
  - app/views/integral/backend/shared/_breadcrumbs.haml
1711
1700
  - app/views/integral/backend/shared/_empty_grid.haml
1712
1701
  - app/views/integral/backend/shared/_grid.haml
@@ -1714,6 +1703,14 @@ files:
1714
1703
  - app/views/integral/backend/shared/_image_selector.haml
1715
1704
  - app/views/integral/backend/shared/_pagination.haml
1716
1705
  - app/views/integral/backend/shared/cards/_at_a_glance.haml
1706
+ - app/views/integral/backend/shared/cards/_categories.haml
1707
+ - app/views/integral/backend/shared/cards/_object.haml
1708
+ - app/views/integral/backend/shared/cards/_recent_activity.haml
1709
+ - app/views/integral/backend/shared/cards/_recent_pages.haml
1710
+ - app/views/integral/backend/shared/cards/_recent_posts.haml
1711
+ - app/views/integral/backend/shared/cards/_recent_user_activity.haml
1712
+ - app/views/integral/backend/shared/cards/_recent_users.haml
1713
+ - app/views/integral/backend/shared/cards/_top_post_authors.haml
1717
1714
  - app/views/integral/backend/shared/cards/_welcome.haml
1718
1715
  - app/views/integral/backend/shared/graphs/_donut.haml
1719
1716
  - app/views/integral/backend/shared/graphs/_line.haml
@@ -1721,36 +1718,48 @@ files:
1721
1718
  - app/views/integral/backend/shared/record_selector/_collection.haml
1722
1719
  - app/views/integral/backend/shared/record_selector/_modal.haml
1723
1720
  - app/views/integral/backend/shared/record_selector/_record.haml
1724
- - app/views/integral/backend/static_pages/_card.haml
1725
1721
  - app/views/integral/backend/static_pages/dashboard.haml
1726
1722
  - app/views/integral/backend/users/_form.haml
1727
1723
  - app/views/integral/backend/users/_grid.haml
1728
1724
  - app/views/integral/backend/users/edit.haml
1729
1725
  - app/views/integral/backend/users/index.haml
1726
+ - app/views/integral/backend/users/list.haml
1730
1727
  - app/views/integral/backend/users/new.haml
1731
1728
  - app/views/integral/backend/users/show.haml
1729
+ - app/views/integral/categories/show.haml
1732
1730
  - app/views/integral/contact_mailer/auto_reply.html.haml
1733
1731
  - app/views/integral/contact_mailer/auto_reply.text.erb
1734
1732
  - app/views/integral/contact_mailer/forward_enquiry.haml
1735
1733
  - app/views/integral/contact_mailer/forward_enquiry.text.erb
1736
1734
  - app/views/integral/pages/_demo.haml
1737
1735
  - app/views/integral/pages/templates/default.haml
1738
- - app/views/integral/posts/_collection.haml
1739
- - app/views/integral/posts/_item.haml
1736
+ - app/views/integral/posts/_article_footer.haml
1737
+ - app/views/integral/posts/_card.haml
1738
+ - app/views/integral/posts/_latest_post.haml
1739
+ - app/views/integral/posts/_most_read_section.haml
1740
+ - app/views/integral/posts/_post.haml
1741
+ - app/views/integral/posts/_similar_posts.haml
1740
1742
  - app/views/integral/posts/index.haml
1741
1743
  - app/views/integral/posts/templates/default.haml
1742
- - app/views/integral/shared/_blog_layout.haml
1743
- - app/views/integral/shared/_blog_sidebar.haml
1744
1744
  - app/views/integral/shared/_breadcrumbs.haml
1745
1745
  - app/views/integral/shared/_media_query_indicator.haml
1746
1746
  - app/views/integral/shared/_scroll_to_top.haml
1747
1747
  - app/views/integral/shared/_share_modal.haml
1748
1748
  - app/views/integral/shared/_social_list_items.haml
1749
+ - app/views/integral/shared/_subscribe_modal.haml
1749
1750
  - app/views/integral/shared/_swiper_layout.haml
1751
+ - app/views/integral/shared/blog/_categories.haml
1752
+ - app/views/integral/shared/blog/_layout.haml
1753
+ - app/views/integral/shared/blog/_sidebar.haml
1750
1754
  - app/views/integral/shared/gallery/_placeholder.haml
1751
1755
  - app/views/integral/shared/gallery/_slide.haml
1752
1756
  - app/views/integral/shared/gallery/_thumb_slide.haml
1753
1757
  - app/views/integral/shared/gallery/gallery.haml
1758
+ - app/views/integral/shared/sidebar/_item.haml
1759
+ - app/views/integral/shared/sidebar/_newsletter_signup.haml
1760
+ - app/views/integral/shared/sidebar/_popular_posts.haml
1761
+ - app/views/integral/shared/sidebar/_popular_tags.haml
1762
+ - app/views/integral/shared/sidebar/_recent_posts.haml
1754
1763
  - app/views/integral/tags/index.haml
1755
1764
  - app/views/integral/tags/show.haml
1756
1765
  - app/views/layouts/error.haml
@@ -1827,6 +1836,10 @@ files:
1827
1836
  - db/migrate/20180509101917_add_context_to_enquiries.rb
1828
1837
  - db/migrate/20180920030236_update_posts_and_pages_null.rb
1829
1838
  - db/migrate/20181011234446_add_preview_image_to_posts.rb
1839
+ - db/migrate/20190414172018_create_webhook_endpoints.rb
1840
+ - db/migrate/20190929191412_add_integral_post_categories.rb
1841
+ - db/migrate/20191203090008_add_image_to_integral_categories.rb
1842
+ - db/migrate/20200401210442_create_category_versions.rb
1830
1843
  - db/seeds.rb
1831
1844
  - lib/generators/integral/assets_generator.rb
1832
1845
  - lib/generators/integral/install_generator.rb
@@ -1859,7 +1872,6 @@ files:
1859
1872
  - lib/integral/middleware/page_router.rb
1860
1873
  - lib/integral/partial_list_item_renderer.rb
1861
1874
  - lib/integral/router.rb
1862
- - lib/integral/slack_bot.rb
1863
1875
  - lib/integral/swiper_list_renderer.rb
1864
1876
  - lib/integral/version.rb
1865
1877
  - lib/integral/widgets/recent_posts.rb