pageflow 0.4.0 → 0.5.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 (145) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/images/pageflow/audio_loop_pictogram.png +0 -0
  3. data/app/assets/images/pageflow/audio_loop_pictogram_small.png +0 -0
  4. data/app/assets/images/pageflow/ov-internal_links.png +0 -0
  5. data/app/assets/images/pageflow/placeholder_link_thumbnail.jpg +0 -0
  6. data/app/assets/images/pageflow/placeholder_link_thumbnail_large.jpg +0 -0
  7. data/app/assets/images/pageflow/placeholder_thumbnail.jpg +0 -0
  8. data/app/assets/javascripts/pageflow/audio_player.js +5 -0
  9. data/app/assets/javascripts/pageflow/editor/api.js +4 -0
  10. data/app/assets/javascripts/pageflow/editor/api/file_type.js +32 -0
  11. data/app/assets/javascripts/pageflow/editor/api/file_types.js +73 -0
  12. data/app/assets/javascripts/pageflow/editor/base.js +5 -0
  13. data/app/assets/javascripts/pageflow/editor/collections/file_usages_collection.js +13 -1
  14. data/app/assets/javascripts/pageflow/editor/collections/files_collection.js +54 -0
  15. data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +2 -14
  16. data/app/assets/javascripts/pageflow/editor/initializers/error_listener.js +8 -0
  17. data/app/assets/javascripts/pageflow/editor/initializers/setup_collections.js +5 -3
  18. data/app/assets/javascripts/pageflow/editor/initializers/setup_file_types.js +21 -0
  19. data/app/assets/javascripts/pageflow/editor/models/audio_file.js +1 -15
  20. data/app/assets/javascripts/pageflow/editor/models/encoded_file.js +32 -0
  21. data/app/assets/javascripts/pageflow/editor/models/entry.js +29 -63
  22. data/app/assets/javascripts/pageflow/editor/models/file_stage.js +7 -6
  23. data/app/assets/javascripts/pageflow/editor/models/hosted_file.js +20 -0
  24. data/app/assets/javascripts/pageflow/editor/models/image_file.js +8 -31
  25. data/app/assets/javascripts/pageflow/editor/models/mixins/file_with_type.js +3 -0
  26. data/app/assets/javascripts/pageflow/editor/models/mixins/stage_provider.js +11 -5
  27. data/app/assets/javascripts/pageflow/editor/models/mixins/transient_references.js +5 -0
  28. data/app/assets/javascripts/pageflow/editor/models/other_entry.js +9 -3
  29. data/app/assets/javascripts/pageflow/editor/models/page.js +9 -11
  30. data/app/assets/javascripts/pageflow/editor/models/uploaded_file.js +65 -0
  31. data/app/assets/javascripts/pageflow/editor/models/video_file.js +1 -14
  32. data/app/assets/javascripts/pageflow/editor/routers/sidebar_router.js +2 -9
  33. data/app/assets/javascripts/pageflow/editor/templates/file_item.jst.ejs +1 -1
  34. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio.js +4 -0
  35. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio_loop.js +23 -0
  36. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/background_image.js +4 -0
  37. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/background_video.js +4 -0
  38. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/internal_links.js +4 -0
  39. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/video.js +4 -0
  40. data/app/assets/javascripts/pageflow/editor/views/embedded/page_link_embedded_view.js +1 -1
  41. data/app/assets/javascripts/pageflow/editor/views/explorer_file_item_view.js +2 -0
  42. data/app/assets/javascripts/pageflow/editor/views/file_item_view.js +8 -1
  43. data/app/assets/javascripts/pageflow/editor/views/file_stage_item_view.js +8 -1
  44. data/app/assets/javascripts/pageflow/editor/views/files_explorer_view.js +11 -43
  45. data/app/assets/javascripts/pageflow/editor/views/files_view.js +11 -21
  46. data/app/assets/javascripts/pageflow/editor/views/input_view.js +1 -1
  47. data/app/assets/javascripts/pageflow/editor/views/inputs/file_input_view.js +6 -0
  48. data/app/assets/javascripts/pageflow/editor/views/inputs/select_input_view.js +5 -0
  49. data/app/assets/javascripts/pageflow/editor/views/mixins/selectable_view.js +7 -5
  50. data/app/assets/javascripts/pageflow/editor/views/uploader_view.js +15 -5
  51. data/app/assets/javascripts/pageflow/page_types/audio.js +1 -1
  52. data/app/assets/javascripts/pageflow/page_types/audio_loop.js +90 -0
  53. data/app/assets/javascripts/pageflow/page_types/video.js +1 -1
  54. data/app/assets/javascripts/pageflow/ready.js +17 -2
  55. data/app/assets/javascripts/pageflow/video_player/player_buffered_patch.js +13 -2
  56. data/app/assets/stylesheets/pageflow/mixins/pageflow.css.scss +9 -0
  57. data/app/assets/stylesheets/pageflow/mixins/shadow.css.scss +12 -1
  58. data/app/assets/stylesheets/pageflow/overview.css.scss +3 -3
  59. data/app/assets/stylesheets/pageflow/page_types.css.scss +2 -0
  60. data/app/assets/stylesheets/pageflow/page_types/audio.css.scss +2 -13
  61. data/app/assets/stylesheets/pageflow/page_types/audio_loop.css.scss +0 -0
  62. data/app/assets/stylesheets/pageflow/page_types/video.css.scss +4 -0
  63. data/app/assets/stylesheets/pageflow/player_controls.css.scss +72 -6
  64. data/app/assets/stylesheets/pageflow/themes/default/navigation.css.scss +3 -0
  65. data/app/assets/stylesheets/pageflow/themes/default/overview.css.scss +3 -0
  66. data/app/controllers/pageflow/editor/files_controller.rb +11 -24
  67. data/app/controllers/pageflow/{video_files_controller.rb → files_controller.rb} +6 -2
  68. data/app/helpers/pageflow/audio_files_helper.rb +40 -0
  69. data/app/helpers/pageflow/file_thumbnails_helper.rb +18 -0
  70. data/app/helpers/pageflow/pages_helper.rb +3 -24
  71. data/app/jobs/pageflow/upload_file_to_s3_job.rb +2 -2
  72. data/app/models/concerns/pageflow/hosted_file.rb +93 -0
  73. data/app/models/pageflow/audio_file.rb +1 -12
  74. data/app/models/pageflow/draft_entry.rb +2 -11
  75. data/app/models/pageflow/image_file.rb +14 -14
  76. data/app/models/pageflow/page.rb +7 -24
  77. data/app/models/pageflow/published_entry.rb +3 -2
  78. data/app/models/pageflow/revision.rb +7 -0
  79. data/app/models/pageflow/thumbnail_file_resolver.rb +33 -0
  80. data/app/models/pageflow/video_file.rb +10 -34
  81. data/app/models/pageflow/zencoder_attachment.rb +2 -2
  82. data/app/state_machines/pageflow/encoded_file_state_machine.rb +8 -20
  83. data/app/state_machines/pageflow/image_file_state_machine.rb +4 -0
  84. data/app/views/pageflow/audio_files/_audio_file.html.erb +1 -0
  85. data/app/views/pageflow/audio_files/_script_tag.html.erb +3 -0
  86. data/app/views/pageflow/config/_editor_seeds.json.jbuilder +1 -0
  87. data/app/views/pageflow/editor/audio_files/_audio_file.json.jbuilder +0 -6
  88. data/app/views/pageflow/editor/files/_file.json.jbuilder +16 -0
  89. data/app/views/pageflow/editor/files/create.json.jbuilder +1 -1
  90. data/app/views/pageflow/editor/files/index.json.jbuilder +4 -1
  91. data/app/views/pageflow/editor/image_files/_image_file.json.jbuilder +1 -8
  92. data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +0 -8
  93. data/app/views/pageflow/entries/_entry.html.erb +2 -2
  94. data/app/views/pageflow/entries/_multimedia_alert.html.erb +14 -7
  95. data/app/views/pageflow/entries/_social_meta_tags.html.erb +1 -1
  96. data/app/views/pageflow/entries/edit.html.erb +6 -4
  97. data/app/views/pageflow/entries/navigation/_bar_top.html.erb +1 -1
  98. data/app/views/pageflow/entries/navigation/_page.html.erb +2 -2
  99. data/app/views/pageflow/entries/overview/_chapter.html.erb +3 -1
  100. data/app/views/pageflow/entries/overview/_entry.html.erb +2 -1
  101. data/app/views/pageflow/entries/overview/_page.html.erb +1 -1
  102. data/app/views/pageflow/entries/show.css.erb +1 -21
  103. data/app/views/pageflow/entries/show.json.jbuilder +8 -3
  104. data/app/views/pageflow/file_types/_thumbnails.css.erb +7 -0
  105. data/app/views/pageflow/files/show.html.erb +1 -0
  106. data/app/views/pageflow/page_types/_page_type.json.jbuilder +4 -0
  107. data/app/views/pageflow/pages/templates/_audio.html.erb +6 -5
  108. data/app/views/pageflow/pages/templates/_audio_loop.html.erb +34 -0
  109. data/app/views/pageflow/video_files/_video_file.html.erb +1 -0
  110. data/config/initializers/page_type_helpers.rb +2 -2
  111. data/config/initializers/paperclip.rb +32 -0
  112. data/config/initializers/zencoder.rb +3 -3
  113. data/config/locales/activerecord.de.yml +3 -2
  114. data/config/locales/pageflow/audio.de.yml +4 -0
  115. data/config/locales/pageflow/editor/errors.de.yml +6 -0
  116. data/config/routes.rb +4 -10
  117. data/lib/generators/pageflow/initializer/templates/pageflow.rb +2 -1
  118. data/lib/pageflow.rb +5 -3
  119. data/lib/pageflow/ability_mixin.rb +2 -2
  120. data/lib/pageflow/built_in_page_type.rb +40 -7
  121. data/lib/pageflow/configuration.rb +17 -0
  122. data/lib/pageflow/file_type.rb +60 -0
  123. data/lib/pageflow/file_types.rb +25 -0
  124. data/lib/pageflow/page_type.rb +31 -0
  125. data/lib/pageflow/version.rb +1 -1
  126. data/lib/pageflow/zencoder_video_output_definition.rb +3 -3
  127. data/spec/factories/audio_files.rb +2 -2
  128. data/spec/factories/hosted_files.rb +35 -0
  129. data/spec/factories/video_files.rb +2 -2
  130. metadata +37 -18
  131. data/app/assets/images/pageflow/themes/default/logo_navi.png +0 -0
  132. data/app/assets/images/pageflow/themes/default/logo_navi_invert.png +0 -0
  133. data/app/assets/javascripts/pageflow/editor/collections/audio_files_collection.js +0 -7
  134. data/app/assets/javascripts/pageflow/editor/collections/image_files_collection.js +0 -8
  135. data/app/assets/javascripts/pageflow/editor/collections/mixins/files_collection.js +0 -42
  136. data/app/assets/javascripts/pageflow/editor/collections/video_files_collection.js +0 -8
  137. data/app/assets/javascripts/pageflow/editor/models/mixins/encoded_file.js +0 -51
  138. data/app/assets/javascripts/pageflow/editor/models/mixins/file.js +0 -31
  139. data/app/assets/javascripts/pageflow/editor/views/audio_file_item_view.js +0 -14
  140. data/app/assets/javascripts/pageflow/editor/views/image_file_item_view.js +0 -10
  141. data/app/assets/javascripts/pageflow/editor/views/video_file_item_view.js +0 -18
  142. data/app/controllers/pageflow/editor/audio_files_controller.rb +0 -11
  143. data/app/controllers/pageflow/editor/image_files_controller.rb +0 -11
  144. data/app/controllers/pageflow/editor/video_files_controller.rb +0 -11
  145. data/app/views/pageflow/video_files/show.html.erb +0 -1
@@ -32,5 +32,9 @@ module Pageflow
32
32
  def publish!
33
33
  process!
34
34
  end
35
+
36
+ def retryable?
37
+ processing_failed?
38
+ end
35
39
  end
36
40
  end
@@ -0,0 +1 @@
1
+ <%= audio_file_audio_tag(audio_file.id, unique_id: 'single') %>
@@ -0,0 +1,3 @@
1
+ <script type="application/json" data-audio>
2
+ <%= audio_file_sources.to_json.html_safe %>
3
+ </script>
@@ -1,2 +1,3 @@
1
1
  json.key_format!(camelize: :lower)
2
2
  json.(Pageflow.config, :confirm_encoding_jobs)
3
+ json.file_types(Pageflow.config.file_types, :collection_name, :type_name, :param_key, :i18n_key)
@@ -1,14 +1,8 @@
1
- json.(audio_file, :id, :state, :rights, :usage_id)
2
1
  json.encoding_progress(audio_file.encoding_progress.to_i)
3
- json.file_name audio_file.attachment.original_filename
4
2
 
5
3
  json.format(file_format(audio_file))
6
4
  json.duration(file_duration(audio_file))
7
5
 
8
- if audio_file.attachment_on_s3.present?
9
- json.url(audio_file.attachment_on_s3.url)
10
- end
11
-
12
6
  if audio_file.state == 'encoded'
13
7
  json.sources(audio_file_sources(audio_file)) do |source|
14
8
  json.src source[:src]
@@ -0,0 +1,16 @@
1
+ json.(file, :id, :state, :rights, :usage_id)
2
+ json.retryable(file.retryable?)
3
+ json.file_name(file.attachment.original_filename)
4
+
5
+ if file.url.present?
6
+ json.url(file.url)
7
+ end
8
+
9
+ if file_type.editor_partial.present?
10
+ json.partial!(:object => file, :partial => file_type.editor_partial)
11
+ end
12
+
13
+ if file.respond_to?(:thumbnail_url)
14
+ json.thumbnail_url(file.thumbnail_url(:thumbnail))
15
+ json.link_thumbnail_url(file.thumbnail_url(:link_thumbnail_large))
16
+ end
@@ -1 +1 @@
1
- json.partial!(:object => @file, :partial => "pageflow/editor/#{@collection_name}/#{@model_name.to_s}")
1
+ json.partial!(partial: 'pageflow/editor/files/file', object: @file, locals: {file_type: file_type})
@@ -1 +1,4 @@
1
- json.array!(@files, :partial => "pageflow/editor/#{@collection_name}/#{@model_name.to_s}", :as => @model_name)
1
+ json.partial!(collection: @files,
2
+ partial: 'pageflow/editor/files/file',
3
+ locals: {file_type: file_type},
4
+ as: :file)
@@ -1,10 +1,3 @@
1
- json.(image_file, :id, :state, :rights, :usage_id, :width, :height)
2
- json.file_name(image_file.attachment.original_filename)
3
- json.url(image_file.attachment.url(:large))
1
+ json.(image_file, :width, :height)
4
2
 
5
3
  json.dimensions(file_dimensions(image_file))
6
-
7
- if image_file.processed_attachment.present?
8
- json.thumbnail_url(image_file.attachment.url(:thumbnail))
9
- json.link_thumbnail_url(image_file.attachment.url(:link_thumbnail_large))
10
- end
@@ -1,15 +1,9 @@
1
- json.(video_file, :id, :state, :rights, :usage_id)
2
1
  json.encoding_progress(video_file.encoding_progress.to_i)
3
- json.file_name(video_file.attachment.original_filename)
4
2
 
5
3
  json.format(file_format(video_file))
6
4
  json.dimensions(file_dimensions(video_file))
7
5
  json.duration(file_duration(video_file))
8
6
 
9
- if video_file.attachment_on_s3.present?
10
- json.url(video_file.attachment_on_s3.url)
11
- end
12
-
13
7
  if video_file.state == 'encoded'
14
8
  json.sources(video_file_sources(video_file)) do |source|
15
9
  json.src source[:high_src]
@@ -18,7 +12,5 @@ if video_file.state == 'encoded'
18
12
  end
19
13
 
20
14
  if video_file.poster.present?
21
- json.thumbnail_url(video_file.poster.url(:thumbnail))
22
- json.link_thumbnail_url(video_file.poster.url(:link_thumbnail_large))
23
15
  json.poster_url(video_file.poster.url(:large))
24
16
  end
@@ -1,4 +1,4 @@
1
- <div id="outer_wrapper">
1
+ <%= content_tag :div, :id => 'outer_wrapper', :data => {:theme => entry.theming.theme.name} do %>
2
2
  <%= render 'pageflow/entries/skip_links' %>
3
3
  <h1 class="hidden"><%= entry.title %></h1>
4
4
  <img src="<%= image_path("pageflow/themes/#{entry.theming.theme.directory_name}/logo_print.png") %>" class="print_image" alt="Logo image for print version">
@@ -13,4 +13,4 @@
13
13
  <%= render 'pageflow/entries/header', :entry => entry %>
14
14
  <%= render 'pageflow/entries/navigation', :entry => entry %>
15
15
  <%= render 'pageflow/entries/overview', :entry => entry %>
16
- </div>
16
+ <% end %>
@@ -3,16 +3,23 @@
3
3
  <div class="alert_block">
4
4
  <h1 class="alert_headline">Hinweis</h1>
5
5
  <div class="alert_icon speaker"></div>
6
- <p>Dieses multimediale Reportage-Format nutzt neben Texten und Fotos auch
7
- Audios und Videos. Bitte prüfen Sie daher vor dem Start, ob die
8
- Lautsprecher Ihres Systems eingeschaltet sind.</p>
6
+ <p>
7
+ Für dieses multimediale Reportage-Format nutzen wir neben
8
+ Texten und Fotos auch Audios und Videos. Daher sollten die
9
+ Lautsprecher des Systems eingeschaltet sein.
10
+ </p>
9
11
  </div>
10
12
  <div class="alert_block">
11
13
  <div class="alert_icon scrolling"></div>
12
- <p class="scroll_hint desktop">Zur jeweils nächsten Kapitelseite gelangen Sie, indem Sie das Mausrad
13
- oder die Pfeiltasten auf der Tastatur bedienen.</p>
14
- <p class="scroll_hint mobile">Zur jeweils nächsten Kapitelseite gelangen Sie durch Wischen.</p>
14
+ <p class="scroll_hint desktop">
15
+ Mit dem Mausrad oder den Pfeiltasten auf der Tastatur wird die
16
+ jeweils nächste Kapitelseite aufgerufen.
17
+ </p>
18
+ <p class="scroll_hint mobile">
19
+ Durch Wischen wird die jeweils nächste Kapitelseite
20
+ aufgerufen.
21
+ </p>
15
22
  <a class="close" href="#" tabindex="1">Los geht's</a>
16
23
  </div>
17
24
  </div>
18
- </div>
25
+ </div>
@@ -1,6 +1,6 @@
1
1
  <%= tag :link, :rel => "canonical", :href => pretty_entry_url(entry) %>
2
2
 
3
- <%= tag :meta, :property => "og:image:url", :content => entry.thumbnail.url(:medium).gsub('https://', 'http://') %>
3
+ <%= tag :meta, :property => "og:image:url", :content => entry.thumbnail_url(:medium).gsub('https://', 'http://') %>
4
4
 
5
5
  <%= tag :meta, :property => "og:title", :content => "#{entry.title} - #{entry.theming.cname_domain}" %>
6
6
  <%= tag :meta, :property => "og:description", :name => "description", :content => entry_summary(entry) %>
@@ -19,7 +19,7 @@
19
19
  <div class="dialog_container">
20
20
  </div>
21
21
 
22
- <%= form_for [:editor, @entry, Pageflow::ImageFile.new], :html => {:multipart => true, :id => 'upload'} do |f| %>
22
+ <%= form_for editor_entry_files_path(@entry, collection_name: 'image_files'), :html => {:multipart => true, :id => 'upload'} do |f| %>
23
23
  <%= f.file_field :attachment, :multiple => true, :name => 'image_file[attachment]' %>
24
24
  <% end %>
25
25
 
@@ -37,9 +37,11 @@
37
37
  chapters: <%= @entry.chapters.to_json.html_safe %>,
38
38
  pages: <%= @entry.pages.to_json.html_safe %>,
39
39
 
40
- imageFiles: <%= render_json_seed(@entry.image_files.with_usage_id) %>,
41
- videoFiles: <%= render_json_seed(@entry.video_files.with_usage_id) %>,
42
- audioFiles: <%= render_json_seed(@entry.audio_files.with_usage_id) %>,
40
+ files: {
41
+ <% Pageflow.config.file_types.each do |file_type| %>
42
+ <%= file_type.collection_name %>: <%= render_json_partial(partial: 'pageflow/editor/files/file', collection: @entry.files(file_type.model), locals: {file_type: file_type}, as: :file) %>,
43
+ <% end %>
44
+ },
43
45
 
44
46
  theming: <%= render_json_seed(@entry.theming) %>,
45
47
  page_types: <%= page_type_json_seeds %>
@@ -18,7 +18,7 @@
18
18
  <span class="button"></span>
19
19
  </a>
20
20
  </li>
21
- <li class="navigation_menu" tabindex="2">
21
+ <li class="navigation_menu share" tabindex="2">
22
22
  <div class="navigation_menu_box navigation_share_box">
23
23
  <%= link_to "http://www.facebook.com/sharer/sharer.php?s=100&p%5Burl%5D=#{ERB::Util.url_encode(pretty_entry_url(entry))}&p%5Btitle%5D=#{ERB::Util.url_encode(entry.title)}", :target => "_blank", :tabindex => "2", :class => "share facebook" do %>
24
24
  <span class="hint">über facebook teilen</span>
@@ -1,10 +1,10 @@
1
1
  <li class="<%= page.template %>">
2
2
  <%= link_to "##{page.perma_id}", :data => {:link => page.id} do %>
3
- <%= image_tag(page.thumbnail.url(image_style), :width => image_width) %>
3
+ <%= image_tag(page.thumbnail_url(image_style), :width => image_width) %>
4
4
  <% end %>
5
5
  <div class="navigation_site_detail">
6
6
  <%= page.title %>
7
7
 
8
- <%= image_tag("pageflow/#{page.template}_pictogram.png", :style => "background-image: url('#{page.thumbnail.url(:navigation_thumbnail_large)}')") %>
8
+ <%= image_tag("pageflow/#{page.template}_pictogram.png", :style => "background-image: url('#{page.thumbnail_url(:navigation_thumbnail_large)}')") %>
9
9
  </div>
10
10
  </li>
@@ -1,7 +1,9 @@
1
1
  <% chapter.pages.in_groups_of(4, false).each_with_index do |page_group, index| %>
2
2
 
3
3
  <div class="ov_chapter">
4
- <span class="heading-5"><%= "Kapitel #{chapter.position + 1}" if index == 0 %></span>
4
+ <% if chapters_count > 1 %>
5
+ <span class="heading-5"><%= "Kapitel #{chapter.position + 1}" if index == 0 %></span>
6
+ <% end %>
5
7
  <span class="heading-4"><%= chapter.title if index == 0 %></span>
6
8
  <%= render :partial => 'pageflow/entries/overview/page', :collection => page_group, :locals => {:chapter => chapter} %>
7
9
  </div>
@@ -7,7 +7,8 @@
7
7
 
8
8
  <div class="wrapper">
9
9
  <div class="scroller">
10
- <%= render :partial => 'pageflow/entries/overview/chapter', :collection => entry.chapters %>
10
+ <%= render :partial => 'pageflow/entries/overview/chapter', :collection => entry.chapters,
11
+ :locals => {:chapters_count => entry.chapters.count} %>
11
12
  </div>
12
13
  </div>
13
14
 
@@ -2,6 +2,6 @@
2
2
  <div class="ov_page_description">
3
3
  <p><%= raw(page.configuration['description']) unless page.configuration.blank? %></p>
4
4
  </div>
5
- <%= image_tag("#{page.thumbnail.url(:thumbnail_overview_desktop)}") %>
5
+ <%= image_tag("#{page.thumbnail_url(:thumbnail_overview_desktop)}") %>
6
6
  <div class="pictogram"></div>
7
7
  <% end %>
@@ -16,26 +16,6 @@
16
16
  <% end %>
17
17
  <% end %>
18
18
 
19
- <% @entry.image_files.each do |image_file| %>
20
- .image_file_link_thumbnail_<%= image_file.id %> {
21
- background-image: url('<%= image_file.attachment.url(:link_thumbnail) %>');
22
- }
23
-
24
- .image_file_link_thumbnail_large_<%= image_file.id %> {
25
- background-image: url('<%= image_file.attachment.url(:link_thumbnail_large) %>');
26
- }
27
- <% end %>
28
-
29
- <% @entry.video_files.each do |video_file| %>
30
- .video_file_link_thumbnail_<%= video_file.id %> {
31
- background-image: url('<%= video_file.poster.url(:link_thumbnail) %>');
32
- }
33
-
34
- .video_file_link_thumbnail_large_<%= video_file.id %> {
35
- background-image: url('<%= video_file.poster.url(:link_thumbnail_large) %>');
36
- }
37
- <% end %>
38
-
19
+ <%= file_thumbnails_css(@entry) %>
39
20
  <%= render 'pageflow/entries/theming' %>
40
-
41
21
  <% end %>
@@ -1,3 +1,8 @@
1
- json.image_files @entry.image_files.with_usage_id, :partial => 'pageflow/editor/image_files/image_file', :as => :image_file
2
- json.audio_files @entry.audio_files.with_usage_id, :partial => 'pageflow/editor/audio_files/audio_file', :as => :audio_file
3
- json.video_files @entry.video_files.with_usage_id, :partial => 'pageflow/editor/video_files/video_file', :as => :video_file
1
+ Pageflow.config.file_types.each do |file_type|
2
+ json.set!(file_type.collection_name) do
3
+ json.partial!(collection: @entry.files(file_type.model),
4
+ partial: 'pageflow/editor/files/file',
5
+ locals: {file_type: file_type},
6
+ as: :file)
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ <% revision.files(file_type.model).each do |file| %>
2
+ <% styles.each do |style| %>
3
+ .<%= file_thumbnail_css_class(file, style) %> {
4
+ background-image: url('<%= file.thumbnail_url(style) %>');
5
+ }
6
+ <% end %>
7
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= render(@file) %>
@@ -1,5 +1,9 @@
1
1
  json.(page_type, :name, :translation_key)
2
2
 
3
+ json.thumbnail_candidates(page_type.thumbnail_candidates) do |candidate|
4
+ json.(candidate, :attribute, :file_collection)
5
+ end
6
+
3
7
  if page_type.json_seed_template
4
8
  json.partial!(:template => page_type.json_seed_template, :locals => {:page_type => page_type})
5
9
  end
@@ -1,6 +1,5 @@
1
1
  <div class="blackLayer"></div>
2
2
  <div class="content_and_background audioPage">
3
-
4
3
  <div class="backgroundArea">
5
4
  <%= background_image_div(configuration, 'background_image') %>
6
5
  <%= shadow_div :opacity => configuration['gradient_opacity'] %>
@@ -42,14 +41,16 @@
42
41
  <div class="scroller">
43
42
  <div>
44
43
  <div class="contentWrapper">
45
- <div class="audio-js-box">
46
- <%= audio_tag(configuration['audio_file_id'], :unique_id => page.id) %>
47
- </div>
48
44
  <div class="contentText audioPage">
49
- <p><%= raw configuration['text'] %></p>
45
+ <p class="non_js_audio">
46
+ <%= audio_file_non_js_link(configuration['audio_file_id']) %>
47
+ </p>
48
+ <p><%= raw configuration['text'] %></p>
50
49
  </div>
51
50
  </div>
52
51
  </div>
53
52
  </div>
54
53
  </div>
54
+
55
+ <%= audio_file_script_tag(configuration['audio_file_id'], :unique_id => page.id) %>
55
56
  </div>
@@ -0,0 +1,34 @@
1
+ <div class="blackLayer"></div>
2
+ <div class="content_and_background audioPage">
3
+
4
+ <div class="backgroundArea">
5
+ <%= background_image_div(configuration, 'background_image') %>
6
+ <%= shadow_div :opacity => configuration['gradient_opacity'] %>
7
+ </div>
8
+
9
+ <div class="page_header">
10
+ <h2>
11
+ <span class="tagline"><%= configuration['tagline'] %></span>
12
+ <span class="title"><%= configuration['title'] %></span>
13
+ <span class="subtitle"><%= configuration['subtitle'] %></span>
14
+ </h2>
15
+ <%= background_image_tag(configuration['background_image_id'], {"class" => "print_image"}) %>
16
+ </div>
17
+
18
+ <div class="content">
19
+ <div class="scroller">
20
+ <div>
21
+ <div class="contentWrapper">
22
+ <div class="contentText audioPage">
23
+ <p class="non_js_audio">
24
+ <%= audio_file_non_js_link(configuration['audio_file_id']) %>
25
+ </p>
26
+ <p><%= raw configuration['text'] %></p>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </div>
32
+
33
+ <%= audio_file_script_tag(configuration['audio_file_id'], :unique_id => page.id) %>
34
+ </div>
@@ -0,0 +1 @@
1
+ <%= lookup_video_tag(video_file.id, nil, :unique_id => 'single', :preload => true, :controls => true) %>
@@ -1,5 +1,5 @@
1
- Pageflow.after_configure do
2
- Pageflow.config.page_types.each do |page_type|
1
+ Pageflow.after_configure do |config|
2
+ config.page_types.each do |page_type|
3
3
  page_type.view_helpers.each do |helper|
4
4
  Pageflow::EntriesController.helper(helper)
5
5
  Pageflow::RevisionsController.helper(helper)
@@ -32,6 +32,38 @@ Pageflow.configure do |config|
32
32
  :path => ':pageflow_filesystem_root/:class/:attachment/:id_partition/:style/:filename',
33
33
  :url => 'not_uploaded_yet'
34
34
  }
35
+
36
+ config.thumbnail_styles = {
37
+ thumbnail: {
38
+ geometry: '100x100#',
39
+ format: :JPG
40
+ },
41
+ navigation_thumbnail_small: {
42
+ geometry: '85x47#',
43
+ format: :JPG
44
+ },
45
+ navigation_thumbnail_large: {
46
+ geometry: '170x95#',
47
+ format: :JPG
48
+ },
49
+ thumbnail_overview_desktop: {
50
+ geometry: '230x72#',
51
+ format: :JPG
52
+ },
53
+ thumbnail_overview_mobile: {
54
+ geometry: '200x112#',
55
+ format: :JPG
56
+ },
57
+
58
+ link_thumbnail: {
59
+ geometry: '192x108#',
60
+ format: :JPG
61
+ },
62
+ link_thumbnail_large: {
63
+ geometry: '394x226#',
64
+ format: :JPG
65
+ }
66
+ }
35
67
  end
36
68
 
37
69
  if Rails.env.development?
@@ -1,8 +1,8 @@
1
1
  require 'zencoder'
2
2
  require 'pageflow/zencoder_api'
3
3
 
4
- Pageflow.after_configure do
5
- zencoder_options = Pageflow.config.zencoder_options
4
+ Pageflow.after_configure do |config|
5
+ zencoder_options = config.zencoder_options
6
6
  zencoder_options.reverse_merge!(:attachments_version => 'v1')
7
7
 
8
8
  Zencoder.api_key = zencoder_options.fetch(:api_key) { raise "Missing api_key option in Pageflow.config.zencoder_options." }
@@ -16,7 +16,7 @@ Pageflow.after_configure do
16
16
  raise "Missing s3_host_alias option in Pageflow.config.zencoder_options." unless zencoder_options.has_key?(:s3_host_alias)
17
17
  raise "Missing s3_protocol option in Pageflow.config.zencoder_options." unless zencoder_options.has_key?(:s3_protocol)
18
18
 
19
- Pageflow::ZencoderAttachment.default_options.merge!(zencoder_options.slice(:path))
19
+ Pageflow::ZencoderAttachment.default_options.merge!(zencoder_options.slice(:path, :url, :hls_url, :hls_origin_url))
20
20
  end
21
21
 
22
22
  Paperclip.interpolates(:zencoder_host_alias) do |attachment, style|