integral 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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