pageflow 13.0.0.beta6 → 13.0.0.beta7

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pageflow might be problematic. Click here for more details.

Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +74 -0
  3. data/README.md +1 -0
  4. data/app/assets/audios/pageflow/unmute.mp3 +0 -0
  5. data/app/assets/images/pageflow/editor/help/phone_horizontal_slideshow_mode.gif +0 -0
  6. data/app/assets/javascripts/pageflow/asset_urls.js.erb +1 -1
  7. data/app/assets/javascripts/pageflow/audio/multi_player.js +4 -0
  8. data/app/assets/javascripts/pageflow/audio_player.js +1 -1
  9. data/app/assets/javascripts/pageflow/background_media.js +22 -0
  10. data/app/assets/javascripts/pageflow/base.js +1 -0
  11. data/app/assets/javascripts/pageflow/browser/agent.js +92 -78
  12. data/app/assets/javascripts/pageflow/browser/autoplay_support.js +2 -2
  13. data/app/assets/javascripts/pageflow/dist/react.js +711 -252
  14. data/app/assets/javascripts/pageflow/editor/api/page_type.js +4 -0
  15. data/app/assets/javascripts/pageflow/editor/base.js +1 -0
  16. data/app/assets/javascripts/pageflow/editor/collections/files_collection.js +8 -0
  17. data/app/assets/javascripts/pageflow/editor/initializers/boot.js +6 -4
  18. data/app/assets/javascripts/pageflow/editor/initializers/setup_asset_urls.js +3 -0
  19. data/app/assets/javascripts/pageflow/editor/models/entry.js +2 -2
  20. data/app/assets/javascripts/pageflow/editor/models/file_stage.js +6 -1
  21. data/app/assets/javascripts/pageflow/editor/models/mixins/stage_provider.js +9 -0
  22. data/app/assets/javascripts/pageflow/editor/models/mixins/transient_references.js +12 -2
  23. data/app/assets/javascripts/pageflow/editor/models/preview_entry_data.js +5 -0
  24. data/app/assets/javascripts/pageflow/editor/models/uploaded_file.js +6 -1
  25. data/app/assets/javascripts/pageflow/editor/templates/emulation_mode_button.jst.ejs +26 -0
  26. data/app/assets/javascripts/pageflow/editor/templates/entry_preview.jst.ejs +8 -3
  27. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/options.js +1 -1
  28. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/page_link.js +3 -6
  29. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/groups/page_transitions.js +14 -4
  30. data/app/assets/javascripts/pageflow/editor/views/edit_storyline_view.js +3 -6
  31. data/app/assets/javascripts/pageflow/editor/views/embedded/background_image_embedded_view.js +47 -12
  32. data/app/assets/javascripts/pageflow/editor/views/emulation_mode_button_view.js +45 -0
  33. data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +62 -8
  34. data/app/assets/javascripts/pageflow/editor/views/file_stage_item_view.js +7 -0
  35. data/app/assets/javascripts/pageflow/editor/views/help_image_view.js +9 -0
  36. data/app/assets/javascripts/pageflow/editor/views/info_box_view.js +1 -1
  37. data/app/assets/javascripts/pageflow/editor/views/inputs/file_processing_state_display_view.js +60 -0
  38. data/app/assets/javascripts/pageflow/editor/views/sidebar_footer_view.js +12 -0
  39. data/app/assets/javascripts/pageflow/editor/views/widget_types/phone_horizontal_slideshow_mode.js +14 -0
  40. data/app/assets/javascripts/pageflow/entry_data.js +4 -0
  41. data/app/assets/javascripts/pageflow/media_player.js +7 -3
  42. data/app/assets/javascripts/pageflow/media_player/handle_failed_play.js +34 -0
  43. data/app/assets/javascripts/pageflow/media_player/volume_fading/web_audio.js +29 -3
  44. data/app/assets/javascripts/pageflow/page_transitions.js +59 -15
  45. data/app/assets/javascripts/pageflow/page_type.js +5 -1
  46. data/app/assets/javascripts/pageflow/seed_entry_data.js +13 -0
  47. data/app/assets/javascripts/pageflow/slideshow.js +31 -11
  48. data/app/assets/javascripts/pageflow/slideshow/atmo.js +23 -12
  49. data/app/assets/javascripts/pageflow/slideshow/lazy_page_widget.js +9 -3
  50. data/app/assets/javascripts/pageflow/slideshow/navigation_direction.js +37 -0
  51. data/app/assets/javascripts/pageflow/slideshow/page_widget.js +12 -6
  52. data/app/assets/javascripts/pageflow/slideshow/scroll_indicator_widget.js +13 -16
  53. data/app/assets/javascripts/pageflow/slideshow/scroller_widget.js +49 -14
  54. data/app/assets/javascripts/pageflow/ui/views/mixins/input_view.js +10 -3
  55. data/app/assets/javascripts/pageflow/video_player/lazy.js +1 -1
  56. data/app/assets/stylesheets/pageflow/animations/bounce.scss +13 -1
  57. data/app/assets/stylesheets/pageflow/editor/base.scss +5 -0
  58. data/app/assets/stylesheets/pageflow/editor/emulation_mode_button.scss +78 -0
  59. data/app/assets/stylesheets/pageflow/editor/entry_preview.scss +41 -0
  60. data/app/assets/stylesheets/pageflow/editor/file_stages.scss +11 -3
  61. data/app/assets/stylesheets/pageflow/editor/help.scss +4 -14
  62. data/app/assets/stylesheets/pageflow/editor/help_image.scss +5 -0
  63. data/app/assets/stylesheets/pageflow/editor/info_box.scss +5 -0
  64. data/app/assets/stylesheets/pageflow/editor/inputs.scss +1 -0
  65. data/app/assets/stylesheets/pageflow/editor/inputs/file_processing_state_display.scss +18 -0
  66. data/app/assets/stylesheets/pageflow/editor/sidebar_footer.scss +12 -0
  67. data/app/assets/stylesheets/pageflow/entries.scss +29 -6
  68. data/app/assets/stylesheets/pageflow/mixins/breakpoints.scss +5 -3
  69. data/app/assets/stylesheets/pageflow/mixins/icons/fontawesome.scss +1 -1
  70. data/app/assets/stylesheets/pageflow/navigation_mobile.scss +5 -1
  71. data/app/assets/stylesheets/pageflow/page_transitions.scss +0 -6
  72. data/app/assets/stylesheets/pageflow/page_transitions/crossfade.scss +5 -1
  73. data/app/assets/stylesheets/pageflow/page_transitions/fade.scss +44 -36
  74. data/app/assets/stylesheets/pageflow/page_transitions/scroll.scss +96 -11
  75. data/app/assets/stylesheets/pageflow/slideshow.scss +0 -4
  76. data/app/assets/stylesheets/pageflow/themes/default/background_media_unmute_button.scss +68 -0
  77. data/app/assets/stylesheets/pageflow/themes/default/base.scss +1 -0
  78. data/app/assets/stylesheets/pageflow/themes/default/indicators/icons/icon_font.scss +7 -0
  79. data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -0
  80. data/app/controllers/pageflow/editor/files_controller.rb +9 -1
  81. data/app/helpers/pageflow/asset_urls_helper.rb +9 -0
  82. data/app/helpers/pageflow/background_image_helper.rb +6 -10
  83. data/app/helpers/pageflow/file_background_images_helper.rb +78 -0
  84. data/app/helpers/pageflow/pages_helper.rb +2 -2
  85. data/app/helpers/pageflow/render_json_helper.rb +3 -2
  86. data/app/models/concerns/pageflow/hosted_file.rb +2 -9
  87. data/app/models/concerns/pageflow/uploaded_file.rb +9 -0
  88. data/app/models/pageflow/draft_entry.rb +2 -2
  89. data/app/models/pageflow/image_file.rb +5 -20
  90. data/app/models/pageflow/image_file_css_background_image_urls.rb +17 -0
  91. data/app/models/pageflow/video_file_css_background_image_urls.rb +13 -0
  92. data/app/views/pageflow/editor/asset_urls/_asset_urls.json.jbuilder +4 -0
  93. data/app/views/pageflow/editor/entries/seed.json.erb +3 -1
  94. data/app/views/pageflow/editor/image_files/_image_file.json.jbuilder +1 -1
  95. data/app/views/pageflow/entries/_indicators.html.erb +8 -3
  96. data/app/views/pageflow/entries/edit.html.erb +1 -1
  97. data/app/views/pageflow/entries/show.css.erb +6 -20
  98. data/app/views/pageflow/file_background_images/_rule.css.erb +3 -0
  99. data/config/initializers/features.rb +1 -0
  100. data/config/locales/de.yml +20 -8
  101. data/config/locales/en.yml +23 -11
  102. data/config/routes.rb +1 -0
  103. data/lib/pageflow/built_in_file_type.rb +4 -0
  104. data/lib/pageflow/built_in_widget_type.rb +12 -0
  105. data/lib/pageflow/built_in_widget_types_plugin.rb +5 -0
  106. data/lib/pageflow/file_type.rb +39 -0
  107. data/lib/pageflow/file_types.rb +6 -0
  108. data/lib/pageflow/version.rb +1 -1
  109. data/spec/factories/hosted_files.rb +12 -8
  110. data/vendor/assets/javascripts/audio5.min.js +280 -129
  111. data/vendor/assets/javascripts/iscroll.js +16 -11
  112. metadata +47 -16
  113. data/app/assets/javascripts/pageflow/media_player/catch_play_promise.js +0 -23
  114. data/app/assets/stylesheets/pageflow/page_transitions/scroll_in.scss +0 -66
  115. data/app/assets/stylesheets/pageflow/page_transitions/scroll_in_right.scss +0 -68
  116. data/app/assets/stylesheets/pageflow/page_transitions/scroll_left.scss +0 -20
  117. data/app/assets/stylesheets/pageflow/page_transitions/scroll_over_from_left.scss +0 -12
  118. data/app/assets/stylesheets/pageflow/page_transitions/scroll_over_from_right.scss +0 -12
  119. data/app/assets/stylesheets/pageflow/page_transitions/scroll_right.scss +0 -20
  120. data/lib/pageflow/images/palette.png +0 -0
@@ -1,20 +1,105 @@
1
1
  /* scroll transition to left*/
2
2
 
3
3
  section.scroll {
4
- &.animate-in-forwards, &.animate-in-backwards {
5
- z-index: 2;
4
+ @include animation-duration(1s);
5
+ @include animation-fill-mode(forwards);
6
+
7
+ &-fast {
8
+ @include animation-duration(0.5s);
6
9
  }
7
10
 
8
- &.animate-in-forwards {
9
- @include animation(scroll-in-forwards forwards 1s 1);
11
+ &-in {
12
+ &.animate-in-forwards,
13
+ &.animate-in-backwards {
14
+ z-index: 2;
15
+ }
10
16
  }
11
- &.animate-in-backwards {
12
- @include animation(scroll-in-backwards forwards 1s 1);
17
+
18
+ &-over {
19
+ &.animate-in-forwards,
20
+ &.animate-out-backwards {
21
+ z-index: 2;
22
+ }
13
23
  }
14
- &.animate-out-forwards {
15
- @include animation(scroll-out-forwards forwards 1s 1);
24
+
25
+ &-from_right {
26
+ &.animate-in-forwards {
27
+ @include animation-name(scroll-in-right);
28
+ }
29
+
30
+ &.animate-out-backwards {
31
+ @include animation-name(scroll-out-right);
32
+ }
33
+
34
+ &.scroll-in {
35
+ &.animate-in-backwards {
36
+ @include animation-name(scroll-in-left);
37
+ }
38
+
39
+ &.animate-out-forwards {
40
+ @include animation-name(scroll-out-left);
41
+ }
42
+ }
43
+ }
44
+
45
+ &-from_left {
46
+ &.animate-in-forwards {
47
+ @include animation-name(scroll-in-left);
48
+ }
49
+
50
+ &.animate-out-backwards {
51
+ @include animation-name(scroll-out-left);
52
+ }
53
+
54
+ &.scroll-in {
55
+ &.animate-in-backwards {
56
+ @include animation-name(scroll-in-right);
57
+ }
58
+
59
+ &.animate-out-forwards {
60
+ @include animation-name(scroll-out-right);
61
+ }
62
+ }
16
63
  }
17
- &.animate-out-backwards {
18
- @include animation(scroll-out-backwards forwards 1s 1);
64
+
65
+
66
+ &-from_bottom {
67
+ &.animate-in-forwards {
68
+ @include animation-name(scroll-in-forwards);
69
+ }
70
+
71
+ &.animate-out-backwards {
72
+ @include animation-name(scroll-out-backwards);
73
+ }
74
+
75
+ &.scroll-in {
76
+ &.animate-in-backwards {
77
+ @include animation-name(scroll-in-backwards);
78
+ }
79
+
80
+ &.animate-out-forwards {
81
+ @include animation-name(scroll-out-forwards);
82
+ }
83
+ }
84
+ }
85
+
86
+ &-from_top {
87
+ &.animate-in-forwards {
88
+ @include animation-name(scroll-in-backwards);
89
+ }
90
+
91
+ &.animate-out-backwards {
92
+ @include animation-name(scroll-out-forwards);
93
+ }
94
+
95
+ &.scroll-in {
96
+ &.animate-in-backwards {
97
+ @include animation-name(scroll-in-forwards);
98
+ }
99
+
100
+ &.animate-out-forwards {
101
+ @include animation-name(scroll-out-backwards);
102
+ }
103
+ }
19
104
  }
20
- }
105
+ }
@@ -49,10 +49,6 @@
49
49
  background-color: white;
50
50
  }
51
51
 
52
- section.scroll .content_and_background {
53
- z-index: 4; /* bring scrolling content always to front */
54
- }
55
-
56
52
  .content {
57
53
  position: absolute;
58
54
  top: 0;
@@ -0,0 +1,68 @@
1
+ $background-media-unmute-button-color: rgba(53, 53, 53, 0.9);
2
+
3
+ $background-media-unmute-button-shadow-color: #ccc;
4
+
5
+ $background-media-unmute-button-icon-color: #ddd;
6
+
7
+ $background-media-unmute-button-icon-size: 24px;
8
+
9
+ $background-media-unmute-button-size: 34px;
10
+
11
+ $background-media-unmute-button-margin: 10px;
12
+
13
+ .background_media_unmute_button {
14
+ position: absolute;
15
+ top: 26px;
16
+ right: 25px;
17
+ width: $background-media-unmute-button-size + $background-media-unmute-button-margin;
18
+ height: $background-media-unmute-button-size + $background-media-unmute-button-margin;
19
+
20
+ @extend %pageflow_widget_margin_right_max !optional;
21
+ @extend %pageflow_widget_margin_top !optional;
22
+
23
+ @include mobile {
24
+ top: 70px;
25
+ right: 11px;
26
+ }
27
+
28
+ &:before {
29
+ z-index: 2;
30
+ }
31
+
32
+ &:after {
33
+ content: "";
34
+ display: block;
35
+ position: absolute;
36
+ top: 6px;
37
+ left: 6px;
38
+ width: $background-media-unmute-button-size;
39
+ height: $background-media-unmute-button-size;
40
+ border-radius: $background-media-unmute-button-size / 2;
41
+ background-color: $background-media-unmute-button-color;
42
+ @include box-shadow(0 0 7px $background-media-unmute-button-shadow-color);
43
+ z-index: 1;
44
+ }
45
+
46
+ a {
47
+ display: block;
48
+ width: 100%;
49
+ height: 100%;
50
+ z-index: 2;
51
+ position: relative;
52
+ @include background-icon-center($color: $background-media-unmute-button-icon-color,
53
+ $font-size: $background-media-unmute-button-icon-size);
54
+ @include fa-volume-down-icon;
55
+
56
+ &:after {
57
+ content: "";
58
+ display: block;
59
+ position: absolute;
60
+ width: 25px;
61
+ left: 22px;
62
+ top: 22px;
63
+ border-top: solid 2px $background-media-unmute-button-icon-color;
64
+ border-bottom: solid 1px $background-media-unmute-button-color;
65
+ @include transform(translate(-50%, -50%) rotate(45deg));
66
+ }
67
+ }
68
+ }
@@ -23,6 +23,7 @@
23
23
  @import "./indicators";
24
24
  @import "./navigation";
25
25
  @import "./mobile_navigation";
26
+ @import "./background_media_unmute_button";
26
27
  @import "./multimedia_alert";
27
28
  @import "./overview";
28
29
  @import "./player_controls";
@@ -12,6 +12,7 @@
12
12
  font-weight: bold;
13
13
  vertical-align: middle;
14
14
  padding-left: 15px;
15
+ height: 33px;
15
16
 
16
17
  @include phone {
17
18
  padding-left: 10px;
@@ -22,5 +23,11 @@
22
23
  > .scroll_next_indicator {
23
24
  @include fa-angle-down-icon($position: "after");
24
25
  }
26
+
27
+ .widget_phone_horizontal_slideshow_mode_present & > .scroll_next_indicator {
28
+ @include phone {
29
+ @include fa-angle-right-icon($position: "after");
30
+ }
31
+ }
25
32
  }
26
33
  }
@@ -221,3 +221,7 @@ textarea.short {
221
221
  .configuration_editor a {
222
222
  text-decoration: underline;
223
223
  }
224
+
225
+ .input-hidden_via_binding {
226
+ display: none;
227
+ }
@@ -19,10 +19,13 @@ module Pageflow
19
19
  authorize!(:edit, entry.to_model)
20
20
  verify_edit_lock!(entry)
21
21
 
22
- @file = entry.create_file(file_type.model, create_params)
22
+ @file = entry.create_file!(file_type.model, create_params)
23
23
  @file.publish!
24
24
 
25
25
  respond_with(:editor, @file)
26
+ rescue ActiveRecord::RecordInvalid => e
27
+ debug_log_with_backtrace(e)
28
+ head :unprocessable_entity
26
29
  end
27
30
 
28
31
  def reuse
@@ -81,6 +84,7 @@ module Pageflow
81
84
  file_attachment_params
82
85
  .merge(file_configuration_params)
83
86
  .merge(file_parent_file_params)
87
+ .merge(file_custom_params)
84
88
  end
85
89
 
86
90
  def file_reuse_params
@@ -109,6 +113,10 @@ module Pageflow
109
113
  file_params.permit(:parent_file_id, :parent_file_model_type)
110
114
  end
111
115
 
116
+ def file_custom_params
117
+ file_params.permit(file_type.custom_attributes)
118
+ end
119
+
112
120
  def file_params
113
121
  params.require(file_type.param_key)
114
122
  end
@@ -0,0 +1,9 @@
1
+ module Pageflow
2
+ module AssetUrlsHelper
3
+ include RenderJsonHelper
4
+
5
+ def editor_asset_urls
6
+ render_json_partial('pageflow/editor/asset_urls/asset_urls')
7
+ end
8
+ end
9
+ end
@@ -22,11 +22,6 @@ module Pageflow
22
22
  end
23
23
 
24
24
  class Div
25
- FILE_TYPE_CSS_CLASS_PREFIXES = {
26
- 'image_file' => 'image',
27
- 'video_file' => 'video_poster',
28
- }
29
-
30
25
  attr_reader :configuration, :property_base_name, :options
31
26
 
32
27
  delegate :content_tag, :to => :@template
@@ -67,13 +62,18 @@ module Pageflow
67
62
  end
68
63
 
69
64
  def image_css_class_prefix
70
- FILE_TYPE_CSS_CLASS_PREFIXES.fetch(options.fetch(:file_type, 'image_file'))
65
+ file_type.css_background_image_class_prefix
71
66
  end
72
67
 
73
68
  def background_position(coord)
74
69
  property_name = "#{property_base_name}_#{coord}"
75
70
  configuration.key?(property_name) ? "#{configuration[property_name]}%" : "50%"
76
71
  end
72
+
73
+ def file_type
74
+ collection_name = options.fetch(:file_type, 'image_file').pluralize
75
+ Pageflow.config.file_types.find_by_collection_name!(collection_name)
76
+ end
77
77
  end
78
78
 
79
79
  class DivWithSizeAttributes < Div
@@ -111,10 +111,6 @@ module Pageflow
111
111
  def find_file
112
112
  file_type.model.find_by_id(file_id)
113
113
  end
114
-
115
- def file_type
116
- Pageflow.config.file_types.find_by_collection_name!(options.fetch(:file_type, 'image_file').pluralize)
117
- end
118
114
  end
119
115
  end
120
116
  end
@@ -0,0 +1,78 @@
1
+ module Pageflow
2
+ # @api private
3
+ module FileBackgroundImagesHelper
4
+ include BackgroundImageHelper
5
+
6
+ ALLOWED_BREAKPOINTS = [:mobile, :desktop].freeze
7
+
8
+ def file_background_images_css(entry, breakpoint_name)
9
+ render(partial: 'pageflow/file_background_images/rule',
10
+ collection: Rules.new(Pageflow.config.file_types.with_css_background_image_support,
11
+ entry,
12
+ breakpoint_name).to_a)
13
+ end
14
+
15
+ # @api private
16
+ class Rules
17
+ def initialize(file_types, entry, breakpoint_name)
18
+ @file_types = file_types
19
+ @entry = entry
20
+ @breakpoint_name = breakpoint_name
21
+ end
22
+
23
+ def to_a
24
+ file_types.flat_map do |file_type|
25
+ rules_for_file_type(file_type)
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ attr_reader :entry, :file_types, :breakpoint_name
32
+
33
+ def rules_for_file_type(file_type)
34
+ entry.find_files(file_type.model).flat_map do |file|
35
+ exclude_rules_with_blank_url(rules_for_file(file_type, file))
36
+ end
37
+ end
38
+
39
+ def rules_for_file(file_type, file)
40
+ file_type.css_background_image_urls.call(file).map do |name, url|
41
+ {
42
+ prefix: rule_prefix(file_type, name),
43
+ file: file,
44
+ url: url_for_breakpoint(file_type, url)
45
+ }
46
+ end
47
+ end
48
+
49
+ def url_for_breakpoint(file_type, url)
50
+ if url.is_a?(Hash)
51
+ unknown_breakpoint_names = url.keys - ALLOWED_BREAKPOINTS
52
+
53
+ if unknown_breakpoint_names.any?
54
+ raise("Unknown breakpoints #{unknown_breakpoint_names.join(', ')} used in " \
55
+ "css_background_image_urls of file type #{file_type.collection_name}.")
56
+ end
57
+
58
+ url[breakpoint_name]
59
+ else
60
+ url
61
+ end
62
+ end
63
+
64
+ def rule_prefix(file_type, name)
65
+ [
66
+ file_type.css_background_image_class_prefix,
67
+ name == :default ? nil : name
68
+ ].compact.join('_')
69
+ end
70
+
71
+ def exclude_rules_with_blank_url(rules)
72
+ rules.reject do |rule|
73
+ rule[:url].blank?
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -50,8 +50,8 @@ module Pageflow
50
50
 
51
51
  def page_media_breakpoints
52
52
  {
53
- :large => :default,
54
- :medium => 'max-width: 900px'
53
+ desktop: :default,
54
+ mobile: 'max-width: 900px'
55
55
  }
56
56
  end
57
57
 
@@ -23,10 +23,11 @@ module Pageflow
23
23
 
24
24
  ESCAPED_CHARS = {
25
25
  "\u2028" => '\u2028',
26
- "\u2029" => '\u2029'
26
+ "\u2029" => '\u2029',
27
+ '</' => '<\/'
27
28
  }
28
29
 
29
- ESCAPED_CHARS_REGEX = /[\u2028\u2029]/u
30
+ ESCAPED_CHARS_REGEX = %r{</|[\u2028\u2029]}u
30
31
 
31
32
  def sanitize_json(json)
32
33
  json.gsub(ESCAPED_CHARS_REGEX, ESCAPED_CHARS)
@@ -7,6 +7,8 @@ module Pageflow
7
7
  has_attached_file(:attachment_on_filesystem, Pageflow.config.paperclip_filesystem_default_options)
8
8
  has_attached_file(:attachment_on_s3, Pageflow.config.paperclip_s3_default_options)
9
9
 
10
+ validates :attachment, presence: true
11
+
10
12
  do_not_validate_attachment_file_type(:attachment_on_filesystem)
11
13
  do_not_validate_attachment_file_type(:attachment_on_s3)
12
14
 
@@ -71,15 +73,6 @@ module Pageflow
71
73
  url
72
74
  end
73
75
 
74
- def cache_key
75
- # Ensure the cache key changes when the state changes. There are
76
- # cases during processing where the state is updated multiple
77
- # times in a single second. Since `cache_key` relies on
78
- # `updated_at`, which only is acurate to the second, we need to
79
- # prevent caching outdated information.
80
- "#{super}-#{state}"
81
- end
82
-
83
76
  # @deprecated Write a migration instead
84
77
  def self.columns(t)
85
78
  t.belongs_to(:entry, index: true)