pageflow 0.2.1 → 0.3.0

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 (99) hide show
  1. checksums.yaml +8 -8
  2. data/admins/pageflow/accounts.rb +3 -1
  3. data/admins/pageflow/entry.rb +2 -1
  4. data/app/assets/javascripts/pageflow/admin.js +1 -0
  5. data/app/assets/javascripts/pageflow/admin/accounts.js +30 -0
  6. data/app/assets/javascripts/pageflow/asset_urls.js.erb +2 -2
  7. data/app/assets/javascripts/pageflow/editor/api.js +136 -0
  8. data/app/assets/javascripts/pageflow/editor/api/failure.js +54 -0
  9. data/app/assets/javascripts/pageflow/editor/api/failures.js +47 -0
  10. data/app/assets/javascripts/pageflow/editor/base.js +8 -0
  11. data/app/assets/javascripts/pageflow/editor/collections/chapters_collection.js +1 -1
  12. data/app/assets/javascripts/pageflow/editor/collections/mixins/ordered_collection.js +9 -4
  13. data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +9 -10
  14. data/app/assets/javascripts/pageflow/editor/initializers/additional_initializers.js +8 -0
  15. data/app/assets/javascripts/pageflow/editor/initializers/boot.js +1 -8
  16. data/app/assets/javascripts/pageflow/editor/initializers/routing.js +17 -0
  17. data/app/assets/javascripts/pageflow/editor/initializers/setup_collections.js +5 -5
  18. data/app/assets/javascripts/pageflow/editor/models/configuration.js +11 -2
  19. data/app/assets/javascripts/pageflow/editor/models/entry.js +2 -2
  20. data/app/assets/javascripts/pageflow/editor/models/mixins/retryable.js +2 -2
  21. data/app/assets/javascripts/pageflow/editor/models/page_configuration_file_selection_handler.js +37 -0
  22. data/app/assets/javascripts/pageflow/editor/models/theming.js +8 -0
  23. data/app/assets/javascripts/pageflow/editor/object.js +14 -0
  24. data/app/assets/javascripts/pageflow/editor/routers/sidebar_router.js +4 -4
  25. data/app/assets/javascripts/pageflow/editor/templates/edit_entry.jst.ejs +4 -4
  26. data/app/assets/javascripts/pageflow/editor/templates/notifications.jst.ejs +1 -1
  27. data/app/assets/javascripts/pageflow/editor/views/back_button_decorator_view.js +3 -2
  28. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio.js +2 -1
  29. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/video.js +2 -1
  30. data/app/assets/javascripts/pageflow/editor/views/edit_entry_view.js +23 -11
  31. data/app/assets/javascripts/pageflow/editor/views/edit_meta_data_view.js +28 -22
  32. data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +5 -1
  33. data/app/assets/javascripts/pageflow/editor/views/file_item_view.js +3 -2
  34. data/app/assets/javascripts/pageflow/editor/views/files_view.js +3 -10
  35. data/app/assets/javascripts/pageflow/editor/views/input_view.js +39 -1
  36. data/app/assets/javascripts/pageflow/editor/views/inputs/check_box_input_view.js +13 -2
  37. data/app/assets/javascripts/pageflow/editor/views/inputs/file_input_view.js +9 -4
  38. data/app/assets/javascripts/pageflow/editor/views/inputs/text_area_input_view.js +14 -1
  39. data/app/assets/javascripts/pageflow/editor/views/inputs/text_input_view.js +11 -0
  40. data/app/assets/javascripts/pageflow/editor/views/mixins/failure_indicating_view.js +3 -3
  41. data/app/assets/javascripts/pageflow/editor/views/notifications_view.js +7 -6
  42. data/app/assets/javascripts/pageflow/editor/views/page_preview_view.js +2 -1
  43. data/app/assets/javascripts/pageflow/page_types/audio.js +13 -8
  44. data/app/assets/javascripts/pageflow/page_types/video.js +9 -5
  45. data/app/assets/javascripts/pageflow/widgets/navigation.js +3 -2
  46. data/app/assets/javascripts/pageflow/widgets/player_controls.js +3 -2
  47. data/app/assets/javascripts/pageflow/widgets/{home_button.js → top_button.js} +4 -4
  48. data/app/assets/stylesheets/pageflow/editor/back_button_decorator.css.scss +3 -0
  49. data/app/assets/stylesheets/pageflow/editor/base.css.scss +1 -0
  50. data/app/assets/stylesheets/pageflow/editor/tabs_view.css.scss +1 -0
  51. data/app/assets/stylesheets/pageflow/ie9.css.scss +8 -7
  52. data/app/assets/stylesheets/pageflow/lt_ie9.css.scss +2 -2
  53. data/app/assets/stylesheets/pageflow/navigation_bar.css.scss +16 -2
  54. data/app/assets/stylesheets/pageflow/themes/default/anchors.css.scss +0 -3
  55. data/app/assets/stylesheets/pageflow/themes/default/navigation.css.scss +13 -4
  56. data/app/controllers/pageflow/entries_controller.rb +4 -9
  57. data/app/helpers/pageflow/entries_helper.rb +2 -6
  58. data/app/helpers/pageflow/themes_helper.rb +9 -0
  59. data/app/helpers/pageflow/themings_helper.rb +11 -0
  60. data/app/jobs/pageflow/poll_zencoder_job.rb +2 -2
  61. data/app/models/pageflow/cname_theming_request_scope.rb +7 -0
  62. data/app/models/pageflow/draft_entry.rb +9 -1
  63. data/app/models/pageflow/entry.rb +3 -1
  64. data/app/models/pageflow/home_button.rb +37 -0
  65. data/app/models/pageflow/published_entry.rb +8 -0
  66. data/app/models/pageflow/revision.rb +6 -0
  67. data/app/models/pageflow/theming.rb +3 -0
  68. data/app/models/pageflow/zencoder_attachment.rb +35 -17
  69. data/app/views/admin/accounts/_form.html.erb +14 -2
  70. data/app/views/admin/entries/_attributes_table.html.arb +1 -1
  71. data/app/views/admin/entries/_links.html.arb +1 -1
  72. data/app/views/layouts/pageflow/_ie_include_tags.html.erb +4 -4
  73. data/app/views/pageflow/editor/entries/_analytics.html.erb +1 -0
  74. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +4 -0
  75. data/app/views/pageflow/editor/themings/_theming.json.jbuilder +2 -0
  76. data/app/views/pageflow/entries/_navigation.html.erb +2 -2
  77. data/app/views/pageflow/entries/edit.html.erb +3 -0
  78. data/app/views/pageflow/entries/navigation/_bar_top.html.erb +2 -1
  79. data/app/views/pageflow/entries/navigation/_home_button.html.erb +8 -0
  80. data/config/initializers/zencoder.rb +11 -1
  81. data/config/locales/activerecord.de.yml +5 -0
  82. data/config/locales/editor.de.yml +5 -0
  83. data/config/routes.rb +1 -0
  84. data/db/migrate/20140819081454_add_home_url_attributes_to_themings_and_revisions.rb +9 -0
  85. data/lib/generators/pageflow/seeds/seeds_generator.rb +4 -4
  86. data/lib/generators/pageflow/seeds/templates/seeds.rb +30 -0
  87. data/lib/pageflow/configuration.rb +47 -1
  88. data/lib/pageflow/page_type.rb +25 -0
  89. data/lib/pageflow/revision_component.rb +39 -0
  90. data/lib/pageflow/seeds.rb +153 -71
  91. data/lib/pageflow/theme.rb +7 -2
  92. data/lib/pageflow/themes.rb +2 -2
  93. data/lib/pageflow/version.rb +1 -1
  94. data/lib/pageflow/zencoder_audio_output_definition.rb +3 -3
  95. data/lib/pageflow/zencoder_output_definition.rb +46 -7
  96. data/lib/pageflow/zencoder_video_output_definition.rb +51 -35
  97. data/spec/factories/entries.rb +6 -2
  98. metadata +687 -668
  99. data/app/assets/javascripts/pageflow/editor/collections/failed_records_collection.js +0 -18
@@ -2,7 +2,7 @@ module Pageflow
2
2
  class EntriesController < Pageflow::ApplicationController
3
3
  before_filter :authenticate_user!, :except => [:index, :show, :page]
4
4
 
5
- # before_filter :prevent_ssl, :only => [:index, :show], :unless => lambda { |controller| controller.request.format.json? }
5
+ before_filter :prevent_ssl, :only => [:index, :show], :unless => lambda { |controller| controller.request.format.json? }
6
6
 
7
7
  helper_method :render_to_string
8
8
 
@@ -11,14 +11,9 @@ module Pageflow
11
11
  helper RenderJsonHelper
12
12
 
13
13
  def index
14
- theming = Theming.find_by_cname!(request.host)
15
- @account = Account.with_landing_page.find_by_theming!(theming)
14
+ theming = Theming.for_request(request).with_home_url.first!
16
15
 
17
- respond_to do |format|
18
- format.html {
19
- render :template => "pageflow/entries/index/#{@account.landing_page_name}", :layout => "pageflow/basic"
20
- }
21
- end
16
+ redirect_to(theming.home_url)
22
17
  end
23
18
 
24
19
  def show
@@ -71,7 +66,7 @@ module Pageflow
71
66
  protected
72
67
 
73
68
  def entry_params
74
- params.require(:entry).permit(:title, :summary, :credits, :manual_start)
69
+ params.require(:entry).permit(:title, :summary, :credits, :manual_start, :home_url, :home_button_enabled)
75
70
  end
76
71
 
77
72
  def entry_request_scope
@@ -1,11 +1,7 @@
1
1
  module Pageflow
2
2
  module EntriesHelper
3
3
  def pretty_entry_url(entry)
4
- if entry.theming.cname.present?
5
- short_entry_url(entry.to_model, :host => entry.theming.cname)
6
- else
7
- short_entry_url(entry.to_model)
8
- end
4
+ pageflow.short_entry_url(entry.to_model, Pageflow.config.theming_url_options(entry.theming))
9
5
  end
10
6
 
11
7
  def entry_collection_for_parent(parent)
@@ -29,7 +25,7 @@ module Pageflow
29
25
  end
30
26
 
31
27
  def entry_stylesheet_link_tag(entry)
32
- stylesheet_link_tag(polymorphic_path(entry.stylesheet_model, :format => 'css'), :media => 'all')
28
+ stylesheet_link_tag(polymorphic_path(entry.stylesheet_model, v: entry.stylesheet_cache_key, format: 'css'), media: 'all')
33
29
  end
34
30
 
35
31
  def entry_mobile_navigation_pages(entry)
@@ -0,0 +1,9 @@
1
+ module Pageflow
2
+ module ThemesHelper
3
+ def themes_options_json_seed
4
+ Pageflow.config.themes.each_with_object({}) do |theme, options|
5
+ options[theme.name] = theme.options
6
+ end.to_json.html_safe
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ module Pageflow
2
+ module ThemingsHelper
3
+ DEFAULT_PUBLIC_ENTRY_OPTIONS = lambda do |theming|
4
+ theming.cname.present? ? {host: theming.cname} : nil
5
+ end
6
+
7
+ def pretty_theming_url(theming)
8
+ public_root_url(Pageflow.config.theming_url_options(theming))
9
+ end
10
+ end
11
+ end
@@ -41,8 +41,8 @@ module Pageflow
41
41
 
42
42
  def self.fetch_thumbnail(file)
43
43
  return unless file.respond_to?(:thumbnail)
44
- file.thumbnail = URI.parse(file.zencoder_thumbnail.url)
45
- file.poster = URI.parse(file.zencoder_poster.url)
44
+ file.thumbnail = URI.parse(file.zencoder_thumbnail.url(default_protocol: 'http'))
45
+ file.poster = URI.parse(file.zencoder_poster.url(default_protocol: 'http'))
46
46
  rescue OpenURI::HTTPError
47
47
  throw(:halt, :pending)
48
48
  end
@@ -0,0 +1,7 @@
1
+ module Pageflow
2
+ class CnameThemingRequestScope
3
+ def call(themings, request)
4
+ themings.where(cname: request.host)
5
+ end
6
+ end
7
+ end
@@ -63,7 +63,15 @@ module Pageflow
63
63
  end
64
64
 
65
65
  def stylesheet_model
66
- @draft
66
+ draft
67
+ end
68
+
69
+ def stylesheet_cache_key
70
+ draft.cache_key
71
+ end
72
+
73
+ def home_button
74
+ HomeButton.new(draft, theming)
67
75
  end
68
76
 
69
77
  private
@@ -30,7 +30,9 @@ module Pageflow
30
30
  scope :published, -> { joins(:published_revision) }
31
31
  scope :editing, -> { joins(:edit_lock).merge(Pageflow::EditLock.active) }
32
32
 
33
- after_create :create_draft!
33
+ after_create do
34
+ create_draft!(home_button_enabled: theming.home_button_enabled_by_default)
35
+ end
34
36
 
35
37
  def edit_lock
36
38
  super || EditLock::Null.new(self)
@@ -0,0 +1,37 @@
1
+ module Pageflow
2
+ class HomeButton
3
+ attr_reader :revision, :theming
4
+
5
+ def initialize(revision, theming)
6
+ @revision = revision
7
+ @theming = theming
8
+ end
9
+
10
+ def url
11
+ revision.home_url.presence || theming_home_button_url
12
+ end
13
+
14
+ def enabled?
15
+ revision.home_button_enabled? &&
16
+ theming.theme.has_home_button? &&
17
+ url.present?
18
+ end
19
+
20
+ def url_value
21
+ revision.home_url
22
+ end
23
+
24
+ def enabled_value
25
+ revision.home_button_enabled?
26
+ end
27
+
28
+ private
29
+
30
+ def theming_home_button_url
31
+ if theming.home_url.present?
32
+ options = Pageflow.config.theming_url_options(theming) || {}
33
+ options.merge(controller: 'entries', action: 'index')
34
+ end
35
+ end
36
+ end
37
+ end
@@ -22,6 +22,10 @@ module Pageflow
22
22
  custom_revision? ? revision : entry
23
23
  end
24
24
 
25
+ def stylesheet_cache_key
26
+ revision.cache_key
27
+ end
28
+
25
29
  def thumbnail
26
30
  pages.first.try(:thumbnail) || ImageFile.new.processed_attachment
27
31
  end
@@ -34,6 +38,10 @@ module Pageflow
34
38
  "#{self.class.model_name.cache_key}/#{entry.cache_key}-#{revision.cache_key}"
35
39
  end
36
40
 
41
+ def home_button
42
+ HomeButton.new(revision, theming)
43
+ end
44
+
37
45
  private
38
46
 
39
47
  def custom_revision?
@@ -74,6 +74,12 @@ module Pageflow
74
74
  file_usage.copy_to(revision)
75
75
  end
76
76
 
77
+ Pageflow.config.revision_components.each do |model|
78
+ model.all_for_revision(self).each do |record|
79
+ record.copy_to(revision)
80
+ end
81
+ end
82
+
77
83
  revision.save!
78
84
  revision
79
85
  end
@@ -2,6 +2,9 @@ module Pageflow
2
2
  class Theming < ActiveRecord::Base
3
3
  belongs_to :account
4
4
 
5
+ scope :with_home_url, -> { where.not(home_url: '') }
6
+ scope :for_request, ->(request) { Pageflow.config.theming_request_scope.call(all, request) }
7
+
5
8
  validates :account, :presence => true
6
9
  validates_inclusion_of :theme_name, :in => ->(_) { Pageflow.config.themes.names }
7
10
 
@@ -1,16 +1,20 @@
1
1
  module Pageflow
2
2
  class ZencoderAttachment
3
- PATH = "/:zencoder_asset_version/:host/:class/:id_partition/:filename"
4
- URL = ":zencoder_protocol://:zencoder_host_alias#{PATH}"
5
- HLS_URL = ":zencoder_protocol://:zencoder_hls_host_alias#{PATH}"
6
- HLS_ORIGIN_URL = ":zencoder_protocol://:zencoder_hls_origin_host_alias#{PATH}"
3
+
4
+ cattr_accessor :default_options
5
+ self.default_options = {
6
+ path: "/:zencoder_asset_version/:host/:class/:id_partition/:filename",
7
+ url: ":zencoder_protocol//:zencoder_host_alias:zencoder_path",
8
+ hls_url: ":zencoder_protocol//:zencoder_hls_host_alias:zencoder_path",
9
+ hls_origin_url: ":zencoder_protocol//:zencoder_hls_origin_host_alias:zencoder_path"
10
+ }
7
11
 
8
12
  attr_reader :file_name_pattern, :instance, :options, :styles
9
13
 
10
14
  def initialize(instance, file_name_pattern, options = {})
11
15
  @instance = instance
12
16
  @file_name_pattern = file_name_pattern
13
- @options = options
17
+ @options = options.merge(default_options)
14
18
 
15
19
  @styles = {}
16
20
  end
@@ -32,30 +36,44 @@ module Pageflow
32
36
  end
33
37
 
34
38
  def path
35
- Paperclip::Interpolations.interpolate(PATH, self, 'default')
39
+ Paperclip::Interpolations.interpolate(options[:path], self, 'default')
36
40
  end
37
41
 
38
42
  def url(url_options = {})
39
- base_url =
40
- case (url_options[:host] || options[:host])
41
- when :hls
42
- HLS_URL
43
- when :hls_origin
44
- HLS_ORIGIN_URL
45
- else
46
- URL
47
- end
48
-
49
- Paperclip::Interpolations.interpolate(base_url + suffix(url_options), self, 'default')
43
+ ensure_default_protocol(interpolate(url_pattern(url_options)),
44
+ url_options)
50
45
  end
51
46
 
52
47
  private
53
48
 
49
+ def ensure_default_protocol(url, url_options)
50
+ url =~ /^http/ ? url : [url_options[:default_protocol], url].compact.join(':')
51
+ end
52
+
53
+ def url_pattern(url_options)
54
+ base_url(url_options) + suffix(url_options)
55
+ end
56
+
57
+ def base_url(url_options)
58
+ case (url_options[:host] || options[:host])
59
+ when :hls
60
+ options[:hls_url]
61
+ when :hls_origin
62
+ options[:hls_origin_url]
63
+ else
64
+ options[:url]
65
+ end
66
+ end
67
+
54
68
  def suffix(url_options)
55
69
  [
56
70
  options[:url_suffix],
57
71
  url_options[:unique_id] ? "?n=#{url_options[:unique_id]}" : nil
58
72
  ].compact.join
59
73
  end
74
+
75
+ def interpolate(url)
76
+ Paperclip::Interpolations.interpolate(url, self, 'default')
77
+ end
60
78
  end
61
79
  end
@@ -2,9 +2,17 @@
2
2
  <%= f.inputs do %>
3
3
  <%= f.input :name %>
4
4
  <%= f.input :default_file_rights %>
5
- <%= f.semantic_fields_for :default_theming do |theming| %>
6
- <%= theming.input :cname %>
5
+ <% end %>
6
+
7
+ <%= f.semantic_fields_for :default_theming do |theming| %>
8
+ <%= f.inputs do %>
7
9
  <%= theming.input :theme_name, :include_blank => false, :collection => Pageflow.config.themes.names %>
10
+ <%= theming.input :cname %>
11
+ <%= theming.input :home_url %>
12
+ <% end %>
13
+
14
+ <%= f.inputs do %>
15
+ <%= theming.input :home_button_enabled_by_default %>
8
16
  <%= theming.input :imprint_link_label %>
9
17
  <%= theming.input :imprint_link_url %>
10
18
  <%= theming.input :copyright_link_label %>
@@ -15,4 +23,8 @@
15
23
  <%= f.action(:submit) %>
16
24
  <%= f.action(:cancel, :wrapper_html => {:class => 'cancel'}) %>
17
25
  <% end %>
26
+
27
+ <script id="theme_options" type="application/json">
28
+ <%= themes_options_json_seed %>
29
+ </script>
18
30
  <% end %>
@@ -19,6 +19,6 @@ attributes_table_for entry do
19
19
  end
20
20
  end
21
21
  row :url do
22
- pageflow.short_entry_url(entry)
22
+ pretty_entry_url(entry)
23
23
  end
24
24
  end
@@ -4,6 +4,6 @@ para do
4
4
  end
5
5
  span(link_to(I18n.t("admin.entries.preview"), preview_admin_entry_path(entry), :class => 'preview button'))
6
6
  if entry.published?
7
- span(link_to(I18n.t("admin.entries.show_public"), pageflow.short_entry_path(entry), :class => 'show_public button'))
7
+ span(link_to(I18n.t("admin.entries.show_public"), pretty_entry_url(entry), :class => 'show_public button'))
8
8
  end
9
9
  end
@@ -1,8 +1,8 @@
1
1
  <!--[if lt IE 9]>
2
- <%= stylesheet_link_tag "lt_ie9", :media => 'all' %>
3
- <%= javascript_include_tag "lt_ie9" %>
2
+ <%= stylesheet_link_tag "pageflow/lt_ie9", :media => 'all' %>
3
+ <%= javascript_include_tag "pageflow/lt_ie9" %>
4
4
  <![endif]-->
5
5
  <!--[if IE 9]>
6
- <%= stylesheet_link_tag "ie9", :media => 'all' %>
7
- <%= javascript_include_tag "ie9" %>
6
+ <%= stylesheet_link_tag "pageflow/ie9", :media => 'all' %>
7
+ <%= javascript_include_tag "pageflow/ie9" %>
8
8
  <![endif]-->
@@ -0,0 +1 @@
1
+ <% # To be overriden in application views %>
@@ -1,3 +1,7 @@
1
1
  json.(entry, :id, :title, :summary, :credits, :published_until, :manual_start, :slug)
2
+
3
+ json.home_url entry.home_button.url_value
4
+ json.home_button_enabled entry.home_button.enabled_value
5
+
2
6
  json.default_file_rights entry.account.default_file_rights
3
7
  json.published(entry.published?)
@@ -0,0 +1,2 @@
1
+ json.pretty_url pretty_theming_url(theming)
2
+ json.home_button theming.theme.has_home_button?
@@ -1,4 +1,4 @@
1
- <div class="navigation">
1
+ <%= content_tag :div, class: ["navigation", entry.home_button.enabled? ? 'with_home_button' : nil].compact.join(' ') do %>
2
2
  <%= render 'pageflow/entries/navigation/bar_top', :entry => entry %>
3
3
  <div class="scroller">
4
4
  <ul class="navigation_thumbnails">
@@ -66,4 +66,4 @@
66
66
  </ul>
67
67
  </div>
68
68
  </div>
69
- </div>
69
+ <% end %>
@@ -41,6 +41,7 @@
41
41
  videoFiles: <%= render_json_seed(@entry.video_files.with_usage_id) %>,
42
42
  audioFiles: <%= render_json_seed(@entry.audio_files.with_usage_id) %>,
43
43
 
44
+ theming: <%= render_json_seed(@entry.theming) %>,
44
45
  page_types: <%= page_type_json_seeds %>
45
46
  });
46
47
  });
@@ -48,3 +49,5 @@
48
49
  </script>
49
50
 
50
51
  <%= page_type_templates %>
52
+
53
+ <%= render('pageflow/editor/entries/analytics', entry: @entry) %>
@@ -5,8 +5,9 @@
5
5
  <span class="button"></span>
6
6
  </a>
7
7
  </li>
8
+ <%= render('pageflow/entries/navigation/home_button', home_button: entry.home_button) %>
8
9
  <li>
9
- <a class="navigation_bullet navigation_home" <%= "href=##{entry.pages.first.perma_id} data-link=#{entry.pages.first.id}" unless entry.pages.nil? || entry.pages.first.nil? %> tabindex="2" title="Startseite anzeigen">
10
+ <a class="navigation_bullet navigation_top" <%= "href=##{entry.pages.first.perma_id} data-link=#{entry.pages.first.id}" unless entry.pages.nil? || entry.pages.first.nil? %> tabindex="2" title="Zur ersten Seite">
10
11
  <span class="hint">zum Anfang</span>
11
12
  <span class="button"></span>
12
13
  </a>
@@ -0,0 +1,8 @@
1
+ <% if home_button.enabled? %>
2
+ <li>
3
+ <%= link_to(home_button.url, class: "navigation_bullet navigation_home", tabindex: "2", title: "Startseite anzeigen") do %>
4
+ <span class="hint">zurück zur Startseite</span>
5
+ <span class="button"></span>
6
+ <% end %>
7
+ </li>
8
+ <% end %>
@@ -9,9 +9,14 @@ Pageflow.after_configure do
9
9
 
10
10
  Pageflow::ZencoderOutputDefinition.default_output_bucket_name = zencoder_options.fetch(:output_bucket) { raise "Missing output_bucket option in Pageflow.config.zencoder_options." }
11
11
  Pageflow::ZencoderOutputDefinition.default_sftp_host = zencoder_options[:sftp_host]
12
+ Pageflow::ZencoderOutputDefinition.default_akamai_host = zencoder_options[:akamai_host]
13
+ Pageflow::ZencoderOutputDefinition.default_akamai_credentials = zencoder_options[:akamai_credentials]
14
+ Pageflow::ZencoderVideoOutputDefinition.skip_hls = zencoder_options.fetch(:skip_hls, false)
12
15
 
13
16
  raise "Missing s3_host_alias option in Pageflow.config.zencoder_options." unless zencoder_options.has_key?(:s3_host_alias)
14
17
  raise "Missing s3_protocol option in Pageflow.config.zencoder_options." unless zencoder_options.has_key?(:s3_protocol)
18
+
19
+ Pageflow::ZencoderAttachment.default_options.merge!(zencoder_options.slice(:path))
15
20
  end
16
21
 
17
22
  Paperclip.interpolates(:zencoder_host_alias) do |attachment, style|
@@ -27,9 +32,14 @@ Paperclip.interpolates(:zencoder_hls_origin_host_alias) do |attachment, style|
27
32
  end
28
33
 
29
34
  Paperclip.interpolates(:zencoder_protocol) do |attachment, style|
30
- Pageflow.config.zencoder_options.fetch(:s3_protocol)
35
+ protocol = Pageflow.config.zencoder_options.fetch(:s3_protocol)
36
+ protocol.empty? ? protocol : "#{protocol}:"
31
37
  end
32
38
 
33
39
  Paperclip.interpolates(:zencoder_asset_version) do |attachment, style|
34
40
  Pageflow.config.zencoder_options.fetch(:attachments_version)
35
41
  end
42
+
43
+ Paperclip.interpolates(:zencoder_path) do |attachment, style|
44
+ attachment.path
45
+ end