pageflow 12.6.0 → 13.0.0.beta1

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 (215) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +78 -16
  3. data/README.md +8 -1
  4. data/Rakefile +0 -4
  5. data/admins/pageflow/accounts.rb +6 -9
  6. data/admins/pageflow/entry.rb +1 -1
  7. data/admins/pageflow/folder.rb +1 -1
  8. data/admins/pageflow/user.rb +4 -4
  9. data/app/assets/javascripts/pageflow/asset_urls.js.erb +1 -1
  10. data/app/assets/javascripts/pageflow/audio/multi_player.js +0 -4
  11. data/app/assets/javascripts/pageflow/audio_player.js +1 -1
  12. data/app/assets/javascripts/pageflow/base.js +0 -2
  13. data/app/assets/javascripts/pageflow/browser/agent.js +78 -92
  14. data/app/assets/javascripts/pageflow/browser/autoplay_support.js +2 -2
  15. data/app/assets/javascripts/pageflow/browser/video.js +1 -6
  16. data/app/assets/javascripts/pageflow/dist/react.js +1100 -2209
  17. data/app/assets/javascripts/pageflow/editor/models/configuration.js +5 -5
  18. data/app/assets/javascripts/pageflow/editor/templates/background_positioning_sliders.jst.ejs +0 -8
  19. data/app/assets/javascripts/pageflow/editor/views/background_positioning_sliders_view.js +23 -37
  20. data/app/assets/javascripts/pageflow/editor/views/background_positioning_view.js +2 -2
  21. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/video.js +1 -1
  22. data/app/assets/javascripts/pageflow/editor/views/edit_widget_view.js +0 -9
  23. data/app/assets/javascripts/pageflow/jquery_utils.js +0 -10
  24. data/app/assets/javascripts/pageflow/media_player.js +3 -7
  25. data/app/assets/javascripts/pageflow/media_player/catch_play_promise.js +23 -0
  26. data/app/assets/javascripts/pageflow/media_player/volume_binding.js +1 -2
  27. data/app/assets/javascripts/pageflow/media_player/volume_fading/web_audio.js +24 -73
  28. data/app/assets/javascripts/pageflow/ready.js +1 -2
  29. data/app/assets/javascripts/pageflow/seed_entry_data.js +3 -3
  30. data/app/assets/javascripts/pageflow/slideshow.js +9 -17
  31. data/app/assets/javascripts/pageflow/slideshow/adjacent_pages.js +4 -9
  32. data/app/assets/javascripts/pageflow/slideshow/{successor_preparer.js → adjacent_preparer.js} +11 -14
  33. data/app/assets/javascripts/pageflow/slideshow/atmo.js +12 -23
  34. data/app/assets/javascripts/pageflow/slideshow/lazy_page_widget.js +2 -2
  35. data/app/assets/javascripts/pageflow/slideshow/progressive_preload.js +42 -0
  36. data/app/assets/javascripts/pageflow/ui/views/configuration_editor_view.js +2 -2
  37. data/app/assets/javascripts/pageflow/video_player/filter_sources.js +2 -16
  38. data/app/assets/javascripts/pageflow/video_player/lazy.js +1 -1
  39. data/app/assets/javascripts/pageflow/visited.js +0 -2
  40. data/app/assets/javascripts/pageflow/widgets.js +0 -1
  41. data/app/assets/javascripts/pageflow/widgets/multimedia_alert.js +1 -2
  42. data/app/assets/javascripts/pageflow/widgets/navigation.js +0 -1
  43. data/app/assets/javascripts/pageflow/widgets/navigation_mobile.js +0 -1
  44. data/app/assets/javascripts/pageflow/widgets/overview.js +1 -3
  45. data/app/assets/stylesheets/pageflow/admin.scss +2 -0
  46. data/app/assets/stylesheets/pageflow/admin/status_tags.scss +13 -0
  47. data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +10 -34
  48. data/app/assets/stylesheets/pageflow/navigation_bar.scss +4 -0
  49. data/app/assets/stylesheets/pageflow/page_types/video.scss +4 -1
  50. data/app/assets/stylesheets/pageflow/themes/default/anchors.scss +0 -5
  51. data/app/assets/stylesheets/pageflow/themes/default/base.scss +0 -2
  52. data/app/assets/stylesheets/pageflow/themes/default/overview/icons/icon_font.scss +1 -4
  53. data/app/assets/stylesheets/pageflow/themes/default/page.scss +0 -19
  54. data/app/assets/stylesheets/pageflow/themes/default/page/anchors.scss +0 -4
  55. data/app/assets/stylesheets/pageflow/themes/default/slideshow.scss +0 -1
  56. data/app/controllers/concerns/pageflow/edit_locking.rb +2 -2
  57. data/app/controllers/concerns/pageflow/public_https_mode.rb +1 -5
  58. data/app/controllers/concerns/pageflow/quota_verification.rb +1 -1
  59. data/app/controllers/pageflow/application_controller.rb +2 -2
  60. data/app/controllers/pageflow/chapters_controller.rb +2 -2
  61. data/app/controllers/pageflow/edit_locks_controller.rb +1 -1
  62. data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +1 -1
  63. data/app/controllers/pageflow/editor/entries_controller.rb +1 -1
  64. data/app/controllers/pageflow/editor/entry_publications_controller.rb +1 -1
  65. data/app/controllers/pageflow/editor/files_controller.rb +1 -1
  66. data/app/controllers/pageflow/entries_controller.rb +5 -11
  67. data/app/controllers/pageflow/files_controller.rb +1 -1
  68. data/app/controllers/pageflow/pages_controller.rb +2 -2
  69. data/app/controllers/pageflow/revisions_controller.rb +1 -1
  70. data/app/controllers/pageflow/storylines_controller.rb +2 -3
  71. data/app/helpers/pageflow/common_entry_seed_helper.rb +0 -1
  72. data/app/helpers/pageflow/entries_helper.rb +6 -31
  73. data/app/helpers/pageflow/entry_json_seed_helper.rb +1 -1
  74. data/app/helpers/pageflow/public_i18n_helper.rb +1 -6
  75. data/app/jobs/pageflow/application_job.rb +6 -0
  76. data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +2 -4
  77. data/app/jobs/pageflow/poll_zencoder_job.rb +8 -8
  78. data/app/jobs/pageflow/process_file_job.rb +4 -4
  79. data/app/jobs/pageflow/prune_auto_snapshots_job.rb +3 -3
  80. data/app/jobs/pageflow/request_meta_data_from_zencoder_job.rb +4 -4
  81. data/app/jobs/pageflow/submit_file_to_zencoder_job.rb +4 -4
  82. data/app/jobs/pageflow/upload_file_to_s3_job.rb +5 -5
  83. data/app/mailers/pageflow/user_mailer.rb +1 -15
  84. data/app/models/concerns/pageflow/uploaded_file.rb +3 -3
  85. data/app/models/pageflow/audio_file.rb +1 -1
  86. data/app/models/pageflow/chapter.rb +1 -1
  87. data/app/models/pageflow/entry.rb +1 -1
  88. data/app/models/pageflow/invited_user.rb +1 -1
  89. data/app/models/pageflow/membership.rb +4 -2
  90. data/app/models/pageflow/page.rb +1 -1
  91. data/app/models/pageflow/published_entry.rb +3 -4
  92. data/app/models/pageflow/revision.rb +5 -3
  93. data/app/models/pageflow/storyline.rb +5 -1
  94. data/app/models/pageflow/theming.rb +1 -2
  95. data/app/models/pageflow/used_file.rb +12 -0
  96. data/app/models/pageflow/video_file.rb +1 -1
  97. data/app/views/admin/accounts/_form.html.erb +0 -8
  98. data/app/views/admin/accounts/_theming_details.html.arb +0 -3
  99. data/app/views/pageflow/entries/_mobile_navigation.html.erb +3 -2
  100. data/app/views/pageflow/entries/navigation/_page.html.erb +1 -3
  101. data/app/views/pageflow/entries/overview/_page.html.erb +1 -1
  102. data/app/views/pageflow/entry_json_seed/_entry.json.jbuilder +1 -1
  103. data/app/views/pageflow/user_mailer/invitation.html.erb +2 -2
  104. data/app/views/pageflow/user_mailer/invitation.text.erb +1 -1
  105. data/config/locales/de.yml +6 -16
  106. data/config/locales/en.yml +8 -18
  107. data/config/routes.rb +0 -6
  108. data/db/migrate/20140418225525_setup_schema.rb +295 -203
  109. data/db/migrate/20140418240000_add_attributes_to_users.rb +3 -6
  110. data/lib/generators/pageflow/resque/resque_generator.rb +6 -3
  111. data/lib/pageflow.rb +1 -1
  112. data/lib/pageflow/ability_mixin.rb +0 -1
  113. data/lib/pageflow/active_admin_patches/views/attributes_table.rb +1 -1
  114. data/lib/pageflow/active_admin_patches/views/table_for.rb +1 -1
  115. data/lib/pageflow/built_in_widget_type.rb +0 -8
  116. data/lib/pageflow/built_in_widget_types_plugin.rb +0 -2
  117. data/lib/pageflow/configuration.rb +0 -10
  118. data/lib/pageflow/engine.rb +5 -9
  119. data/lib/pageflow/user_mixin.rb +5 -0
  120. data/lib/pageflow/version.rb +1 -1
  121. data/lib/tasks/pageflow_tasks.rake +1 -11
  122. data/spec/factories/accounts.rb +1 -1
  123. data/spec/factories/audio_files.rb +1 -1
  124. data/spec/factories/chapters.rb +1 -3
  125. data/spec/factories/edit_locks.rb +2 -4
  126. data/spec/factories/entries.rb +1 -1
  127. data/spec/factories/feature_targets.rb +1 -1
  128. data/spec/factories/file_usages.rb +1 -1
  129. data/spec/factories/folders.rb +1 -1
  130. data/spec/factories/hosted_files.rb +6 -6
  131. data/spec/factories/image_files.rb +1 -1
  132. data/spec/factories/invited_user.rb +1 -1
  133. data/spec/factories/memberships.rb +1 -1
  134. data/spec/factories/pages.rb +1 -1
  135. data/spec/factories/revisions.rb +1 -1
  136. data/spec/factories/storylines.rb +1 -1
  137. data/spec/factories/text_track_files.rb +1 -1
  138. data/spec/factories/themings.rb +1 -1
  139. data/spec/factories/users.rb +1 -1
  140. data/spec/factories/video_files.rb +1 -1
  141. data/spec/factories/widgets.rb +1 -1
  142. data/vendor/assets/javascripts/audio5.min.js +129 -280
  143. metadata +103 -219
  144. data/app/assets/audios/pageflow/unmute.mp3 +0 -0
  145. data/app/assets/javascripts/pageflow/background_media.js +0 -22
  146. data/app/assets/javascripts/pageflow/cookie_notice.js +0 -7
  147. data/app/assets/javascripts/pageflow/editor/views/info_box_view.js +0 -8
  148. data/app/assets/javascripts/pageflow/editor/views/widget_types/cookie_notice_bar.js +0 -15
  149. data/app/assets/javascripts/pageflow/media_player/handle_failed_play.js +0 -34
  150. data/app/assets/javascripts/pageflow/slideshow/adjacent_preloader.js +0 -26
  151. data/app/assets/stylesheets/pageflow/page_types/video/mobile_poster.scss +0 -15
  152. data/app/assets/stylesheets/pageflow/themes/default/background_media_unmute_button.scss +0 -77
  153. data/app/assets/stylesheets/pageflow/themes/default/cookie_notice_bar.scss +0 -57
  154. data/app/assets/stylesheets/pageflow/themes/default/page/hyphenate.scss +0 -24
  155. data/app/controllers/pageflow/admin/initial_passwords_controller.rb +0 -8
  156. data/app/views/pageflow/admin/initial_passwords/edit.html.erb +0 -16
  157. data/app/views/pageflow/entries/mobile_navigation/_page.html.erb +0 -5
  158. data/db/migrate/20140624135420_create_themings.rb +0 -15
  159. data/db/migrate/20140624135421_create_themings_for_existing_accounts.rb +0 -26
  160. data/db/migrate/20140624135422_change_theme_references_to_theming_references.rb +0 -45
  161. data/db/migrate/20140624135423_remove_attributes_from_themes.rb +0 -10
  162. data/db/migrate/20140624135424_create_accounts_themes_join_table.rb +0 -8
  163. data/db/migrate/20140624135425_move_cname_from_account_to_theming.rb +0 -21
  164. data/db/migrate/20140625184800_drop_themes.rb +0 -14
  165. data/db/migrate/20140704110631_add_confirmed_by_to_encoded_files.rb +0 -6
  166. data/db/migrate/20140819081454_add_home_url_attributes_to_themings_and_revisions.rb +0 -9
  167. data/db/migrate/20141027102310_create_widgets.rb +0 -11
  168. data/db/migrate/20141028125408_add_emphasize_chapter_beginning_to_revisions.rb +0 -5
  169. data/db/migrate/20141119164526_add_emphasize_new_pages_to_revisions.rb +0 -5
  170. data/db/migrate/20141119174032_add_sharing_image_to_revisions.rb +0 -7
  171. data/db/migrate/20141128150305_add_locale_to_users.rb +0 -5
  172. data/db/migrate/20141208161030_add_locale_to_revisions.rb +0 -5
  173. data/db/migrate/20141211110226_add_configuration_to_chapters.rb +0 -5
  174. data/db/migrate/20150115175116_add_features_configuration_to_accounts.rb +0 -5
  175. data/db/migrate/20150115175207_add_features_configuration_to_entries.rb +0 -5
  176. data/db/migrate/20150603091823_add_password_attributes_to_revisions.rb +0 -6
  177. data/db/migrate/20150825133449_update_audio_loop_pages_to_use_atmo.rb +0 -24
  178. data/db/migrate/20150826125417_create_pageflow_storylines.rb +0 -12
  179. data/db/migrate/20150826125744_add_storyline_id_to_chapters.rb +0 -6
  180. data/db/migrate/20150826125745_insert_main_storylines.rb +0 -28
  181. data/db/migrate/20150830105831_remove_revision_id_from_chapters.rb +0 -5
  182. data/db/migrate/20150830110006_remove_entry_id_from_chapters.rb +0 -5
  183. data/db/migrate/20151022080518_add_first_published_at_to_entries.rb +0 -14
  184. data/db/migrate/20160131222203_add_cache_counters.rb +0 -23
  185. data/db/migrate/20160201130118_add_additional_cnames_to_themings.rb +0 -5
  186. data/db/migrate/20160216130336_add_meta_fields_to_revision.rb +0 -7
  187. data/db/migrate/20160225075853_add_overview_button_enabled_to_revisions.rb +0 -5
  188. data/db/migrate/20160304072911_rename_membership_entry_and_make_polymorphic.rb +0 -19
  189. data/db/migrate/20160304151327_add_role_to_membership.rb +0 -19
  190. data/db/migrate/20160310080213_add_edited_at_to_entries.rb +0 -9
  191. data/db/migrate/20160425192648_add_index_for_revision_publication_timestamps.rb +0 -5
  192. data/db/migrate/20160504093145_replace_role_and_account_on_user.rb +0 -42
  193. data/db/migrate/20160531152500_update_users_count.rb +0 -27
  194. data/db/migrate/20160617123557_add_meta_fields_to_theming.rb +0 -7
  195. data/db/migrate/20160707125400_add_output_presences_to_video_files.rb +0 -5
  196. data/db/migrate/20160715105408_add_share_url_to_revisions.rb +0 -5
  197. data/db/migrate/20160824115000_add_parent_file_to_video_files.rb +0 -8
  198. data/db/migrate/20160824115100_add_parent_file_to_audio_files.rb +0 -8
  199. data/db/migrate/20160824115200_add_parent_file_to_image_files.rb +0 -8
  200. data/db/migrate/20160929102700_add_configuration_to_files.rb +0 -7
  201. data/db/migrate/20161007144500_add_text_track_files.rb +0 -31
  202. data/db/migrate/20161216175734_move_configuration_from_file_to_file_usage.rb +0 -27
  203. data/db/migrate/20161230144429_add_processed_attachment_to_text_track_files.rb +0 -8
  204. data/db/migrate/20170201074328_add_configuration_to_widgets.rb +0 -5
  205. data/db/migrate/20170222124848_update_video_file_output_presences.rb +0 -12
  206. data/db/migrate/20170315130000_add_theme_name_to_revisions.rb +0 -12
  207. data/db/migrate/20170421112300_turn_background_video_pages_into_background_image_pages.rb +0 -22
  208. data/db/migrate/20170912165050_reset_copied_snapshot_type.rb +0 -24
  209. data/db/migrate/20170913105048_fix_hls_output_presences_for_legacy_video_files.rb +0 -12
  210. data/db/migrate/20180528144334_add_privacy_link_url_to_themings.rb +0 -5
  211. data/db/migrate/20190109085744_add_default_locale_to_themings.rb +0 -6
  212. data/lib/generators/pageflow/resque/templates/devise_async.rb +0 -6
  213. data/lib/generators/pageflow/resque/templates/resque_logger.rb +0 -16
  214. data/lib/generators/pageflow/resque/templates/resque_mailer.rb +0 -4
  215. data/lib/pageflow/primary_domain_entry_redirect.rb +0 -25
@@ -7,10 +7,10 @@ pageflow.AdjacentPages = pageflow.Object.extend({
7
7
  of: function(page) {
8
8
  var result = [];
9
9
  var pages = this.pages();
10
- var nextPage = this.nextPage(page);
10
+ var nextPage = this.scrollNavigator.getNextPage(page.element, pages);
11
11
 
12
- if (nextPage) {
13
- result.push(nextPage);
12
+ if (nextPage.length) {
13
+ result.push(nextPage.page('instance'));
14
14
  }
15
15
 
16
16
  _(page.linkedPages()).each(function(permaId) {
@@ -22,10 +22,5 @@ pageflow.AdjacentPages = pageflow.Object.extend({
22
22
  }, this);
23
23
 
24
24
  return result;
25
- },
26
-
27
- nextPage: function(page) {
28
- var nextPage = this.scrollNavigator.getNextPage(page.element, this.pages());
29
- return nextPage.length && nextPage.page('instance');
30
25
  }
31
- });
26
+ });
@@ -1,6 +1,6 @@
1
1
  //= require ./adjacent_pages
2
2
 
3
- pageflow.SuccessorPreparer = pageflow.Object.extend({
3
+ pageflow.AdjacentPreparer = pageflow.Object.extend({
4
4
  initialize: function(adjacentPages) {
5
5
  this.adjacentPages = adjacentPages;
6
6
  },
@@ -12,18 +12,14 @@ pageflow.SuccessorPreparer = pageflow.Object.extend({
12
12
  schedule: function(page) {
13
13
  clearTimeout(this.scheduleTimeout);
14
14
 
15
- var prepare = _.bind(this.prepareSuccessor, this, page);
15
+ var prepare = _.bind(this.prepareAdjacent, this, page.element.page('instance'));
16
16
  this.scheduleTimeout = setTimeout(prepare, page.prepareNextPageTimeout());
17
17
  },
18
18
 
19
- prepareSuccessor: function(page) {
20
- var preparedPages = _.compact([
21
- page,
22
- this.adjacentPages.nextPage(page)
23
- ]);
24
-
25
- var noLongerPreparedPages = _.difference(this.lastPreparedPages, preparedPages);
26
- var newAdjacentPages = _.difference(preparedPages, this.lastPreparedPages);
19
+ prepareAdjacent: function(page) {
20
+ var adjacentPages = this.adjacentPages.of(page);
21
+ var noLongerPreparedPages = _.difference(this.lastPreparedPages, adjacentPages, [page]);
22
+ var newAdjacentPages = _.difference(adjacentPages, this.lastPreparedPages);
27
23
 
28
24
  _(noLongerPreparedPages).each(function(page) {
29
25
  if (!page.isDestroyed) {
@@ -33,17 +29,18 @@ pageflow.SuccessorPreparer = pageflow.Object.extend({
33
29
 
34
30
  _(newAdjacentPages).each(function(adjacentPage) {
35
31
  adjacentPage.prepare();
32
+ adjacentPage.preload();
36
33
  });
37
34
 
38
- this.lastPreparedPages = preparedPages;
35
+ this.lastPreparedPages = adjacentPages.concat([page]);
39
36
  }
40
37
  });
41
38
 
42
- pageflow.SuccessorPreparer.create = function(pages, scrollNavigator) {
43
- return new pageflow.SuccessorPreparer(
39
+ pageflow.AdjacentPreparer.create = function(pages, scrollNavigator) {
40
+ return new pageflow.AdjacentPreparer(
44
41
  new pageflow.AdjacentPages(
45
42
  pages,
46
43
  scrollNavigator
47
44
  )
48
45
  );
49
- };
46
+ };
@@ -2,19 +2,14 @@
2
2
  var attributeName = 'atmo_audio_file_id';
3
3
 
4
4
  pageflow.Atmo = pageflow.Object.extend({
5
- initialize: function(options) {
6
- this.slideshow = options.slideshow;
7
- this.multiPlayer = options.multiPlayer;
8
- this.backgroundMedia = options.backgroundMedia;
5
+ initialize: function(slideshow, events, multiPlayer) {
6
+ this.slideshow = slideshow;
7
+ this.multiPlayer = multiPlayer;
9
8
  this.disabled = pageflow.browser.has('mobile platform');
10
9
 
11
- this.listenTo(options.events, 'page:change page:update background_media:unmute', function() {
10
+ this.listenTo(events, 'page:change page:update', function() {
12
11
  this.update();
13
12
  });
14
-
15
- this.listenTo(options.multiPlayer, 'playfailed', function() {
16
- options.backgroundMedia.mute();
17
- });
18
13
  },
19
14
 
20
15
  disable: function() {
@@ -51,7 +46,7 @@
51
46
 
52
47
  resume: function() {
53
48
  if (this.multiPlayer.paused()) {
54
- if (this.disabled || this.backgroundMedia.muted) {
49
+ if (this.disabled) {
55
50
  return new $.Deferred().resolve().promise();
56
51
  }
57
52
  else {
@@ -67,12 +62,7 @@
67
62
  var configuration = this.slideshow.currentPageConfiguration();
68
63
 
69
64
  if (!this.disabled) {
70
- if (this.backgroundMedia.muted) {
71
- this.multiPlayer.fadeOutAndPause();
72
- }
73
- else {
74
- this.multiPlayer.fadeTo(configuration[attributeName]);
75
- }
65
+ this.multiPlayer.fadeTo(configuration[attributeName]);
76
66
  }
77
67
  },
78
68
 
@@ -96,12 +86,11 @@
96
86
  }
97
87
  });
98
88
 
99
- pageflow.Atmo.create = function(slideshow, events, audio, backgroundMedia) {
100
- return new pageflow.Atmo({
101
- slideshow: slideshow,
102
- events: events,
103
- backgroundMedia: backgroundMedia,
104
- multiPlayer: audio.createMultiPlayer({
89
+ pageflow.Atmo.create = function(slideshow, events, audio) {
90
+ return new pageflow.Atmo(
91
+ slideshow,
92
+ events,
93
+ audio.createMultiPlayer({
105
94
  loop: true,
106
95
  fadeDuration: 500,
107
96
  crossFade: true,
@@ -109,7 +98,7 @@
109
98
  rewindOnChange: true,
110
99
  pauseInBackground: true
111
100
  })
112
- });
101
+ );
113
102
  };
114
103
 
115
104
  pageflow.Atmo.duringPlaybackModes = ['play', 'mute', 'turn_down'];
@@ -1,6 +1,6 @@
1
1
  (function($) {
2
- var creatingMethods = ['reinit', 'reactivate', 'activate', 'activateAsLandingPage', 'prepare', 'preload', 'linkedPages'];
3
- var ignoredMethods = ['cleanup', 'refreshScroller', 'resize', 'deactivate', 'unprepare'];
2
+ var creatingMethods = ['reinit', 'reactivate', 'activate', 'activateAsLandingPage', 'prepare', 'linkedPages'];
3
+ var ignoredMethods = ['cleanup', 'refreshScroller', 'resize', 'preload', 'deactivate', 'unprepare'];
4
4
 
5
5
  var prototype = {
6
6
  _create: function() {
@@ -0,0 +1,42 @@
1
+ pageflow.ProgressivePreload = function() {
2
+ var run = null;
3
+
4
+ function Run(page, maxPreloadedPages) {
5
+ var cancelled = false;
6
+
7
+ this.cancel = function() {
8
+ cancelled = true;
9
+ };
10
+
11
+ this.start = function() {
12
+ preload(page, 0);
13
+ };
14
+
15
+ function preload(page, counter) {
16
+ $.when(page.page('preload'), tick()).then(function() {
17
+ var nextPage = page.next('.page');
18
+ if (!cancelled && nextPage.length && counter < maxPreloadedPages) {
19
+ preload(nextPage, counter + 1);
20
+ }
21
+ });
22
+ }
23
+
24
+ // prevent stack level from becoming to deep
25
+ function tick() {
26
+ return new $.Deferred(function(deferred) {
27
+ setTimeout(function() {
28
+ deferred.resolve();
29
+ }, 1);
30
+ }).promise();
31
+ }
32
+ }
33
+
34
+ this.start = function(page) {
35
+ if (run) {
36
+ run.cancel();
37
+ }
38
+
39
+ run = new Run(page, 10);
40
+ run.start();
41
+ };
42
+ };
@@ -3,7 +3,7 @@ pageflow.ConfigurationEditorView = Backbone.Marionette.View.extend({
3
3
 
4
4
  initialize: function() {
5
5
  this.tabsView = new pageflow.TabsView({
6
- i18n: this.options.tabTranslationKeyPrefix || 'pageflow.ui.configuration_editor.tabs',
6
+ i18n: 'pageflow.ui.configuration_editor.tabs',
7
7
  defaultTab: this.options.tab
8
8
  });
9
9
  this.configure();
@@ -40,4 +40,4 @@ _.extend(pageflow.ConfigurationEditorView, {
40
40
  register: function(pageTypeName, prototype) {
41
41
  this.repository[pageTypeName] = pageflow.ConfigurationEditorView.extend(prototype);
42
42
  }
43
- });
43
+ });
@@ -1,22 +1,8 @@
1
1
  pageflow.VideoPlayer.filterSources = function(playerElement) {
2
- if (!$(playerElement).is('video')) {
3
- return playerElement;
4
- }
5
-
6
- var changed = false;
7
-
8
- if (pageflow.browser.has('mp4 support only')) {
2
+ if ($(playerElement).is('video') && pageflow.browser.has('mp4 support only')) {
9
3
  // keep only mp4 source
10
4
  $(playerElement).find('source').not('source[type="video/mp4"]').remove();
11
- changed = true;
12
- }
13
- else if (pageflow.browser.has('mse and native hls support')) {
14
- // remove dash source to ensure hls is used
15
- $(playerElement).find('source[type="application/dash+xml"]').remove();
16
- changed = true;
17
- }
18
5
 
19
- if (changed) {
20
6
  // the video tags initially in the dom are broken since they "saw"
21
7
  // the other sources. replace with clones
22
8
  var clone = $(playerElement).clone(true);
@@ -27,4 +13,4 @@ pageflow.VideoPlayer.filterSources = function(playerElement) {
27
13
  else {
28
14
  return playerElement;
29
15
  }
30
- };
16
+ };
@@ -80,7 +80,7 @@ pageflow.VideoPlayer.Lazy = function(template, options) {
80
80
  return videoPlayer && videoPlayer.posterImage.unlockShowing();
81
81
  };
82
82
 
83
- _.each(['play', 'playAndFadeIn', 'pause', 'fadeOutAndPause', 'prebuffer', 'src', 'on', 'load', 'currentTime', 'muted'], function(method) {
83
+ _.each(['play', 'playAndFadeIn', 'pause', 'fadeOutAndPause', 'prebuffer', 'src', 'on', 'load', 'currentTime'], function(method) {
84
84
  that[method] = function(/* args */) {
85
85
  var args = arguments;
86
86
 
@@ -4,8 +4,6 @@ pageflow.Visited = function(entryId, pages, events, cookies) {
4
4
  var unvisitedPages = [];
5
5
 
6
6
  function init() {
7
- pageflow.cookieNotice.request();
8
-
9
7
  if (!cookies.hasItem(cookieName)) {
10
8
  storeVisitedPageIds(getAllIds());
11
9
  }
@@ -35,7 +35,6 @@ pageflow.widgets = (function() {
35
35
  .addClass(replacement);
36
36
 
37
37
  pageflow.events.trigger('widgets:update');
38
- pageflow.slides.triggerResizeHooks();
39
38
  }
40
39
 
41
40
  function className(name, state) {
@@ -23,7 +23,6 @@
23
23
 
24
24
  widget.element.find('.close').one('click', function() {
25
25
  hide();
26
- pageflow.backgroundMedia.unmute();
27
26
 
28
27
  pageflow.events.trigger('button:close_multimedia_alert');
29
28
  start();
@@ -43,4 +42,4 @@
43
42
  pageflow.nativeScrolling.preventScrollBouncing(this.element);
44
43
  }
45
44
  });
46
- }(jQuery));
45
+ }(jQuery));
@@ -87,7 +87,6 @@
87
87
  var handlerIn = function() {
88
88
  if (!('ontouchstart' in document.documentElement)) {
89
89
  $(overlays[index]).css("top", $(this).offset().top).addClass('visible').removeClass('hidden');
90
- overlays.loadLazyImages();
91
90
  }
92
91
  };
93
92
 
@@ -19,7 +19,6 @@
19
19
  $('.menu.index', element).click(function() {
20
20
  if(!$(element).hasClass('sharing') && !$(element).hasClass('imprint')) {
21
21
  $(element).toggleClass('active');
22
- element.loadLazyImages();
23
22
  }
24
23
  $(element).removeClass('imprint sharing');
25
24
  });
@@ -18,8 +18,6 @@ jQuery(function($) {
18
18
  var scrollIndicator = $('.slideshow .scroll_indicator');
19
19
 
20
20
  overview.toggleClass('active', state);
21
- overview.loadLazyImages();
22
-
23
21
  indexButton
24
22
  .toggleClass('active', state)
25
23
  .updateTitle();
@@ -128,4 +126,4 @@ jQuery(function($) {
128
126
  }
129
127
  }
130
128
  });
131
- });
129
+ });
@@ -1,5 +1,6 @@
1
1
  @import "active_admin/searchable_select";
2
2
 
3
+ @import "bourbon";
3
4
  @import "pageflow/mixins";
4
5
 
5
6
  @import "pageflow/admin/badge_list";
@@ -15,6 +16,7 @@
15
16
  @import "pageflow/admin/icon_link";
16
17
  @import "pageflow/admin/publication_state_indicator";
17
18
  @import "pageflow/admin/quotas";
19
+ @import "pageflow/admin/status_tags";
18
20
  @import "pageflow/admin/tabs_view";
19
21
  @import "pageflow/admin/tooltip_bubble";
20
22
 
@@ -0,0 +1,13 @@
1
+ $status-tag-ok-background-color: #8daa92 !default;
2
+
3
+ $status-tag-warning-background-color: #e29b20 !default;
4
+
5
+ .status_tag {
6
+ &.ok {
7
+ background: $status-tag-ok-background-color;
8
+ }
9
+
10
+ &.warning {
11
+ background: $status-tag-warning-background-color;
12
+ }
13
+ }
@@ -47,7 +47,7 @@
47
47
 
48
48
  .wrapper {
49
49
  text-align: center;
50
- margin: 35px;
50
+ margin: 20px;
51
51
  }
52
52
 
53
53
  .previews {
@@ -96,7 +96,6 @@
96
96
  .slider {
97
97
  position: absolute;
98
98
  border: none;
99
- background: #ddd;
100
99
 
101
100
  a {
102
101
  @include background-icon-center($font-size: 20px);
@@ -114,10 +113,10 @@
114
113
  }
115
114
 
116
115
  &.horizontal {
117
- bottom: -10px;
118
- left: 9px;
119
- right: 11px;
120
- height: 2px;
116
+ bottom: 0;
117
+ left: 40px;
118
+ right: 40px;
119
+ height: 0;
121
120
 
122
121
  a {
123
122
  @include transform(rotate(90deg));
@@ -127,10 +126,10 @@
127
126
  }
128
127
 
129
128
  &.vertical {
130
- right: -10px;
131
- top: 12px;
132
- bottom: 11px;
133
- width: 2px;
129
+ right: 0;
130
+ top: 40px;
131
+ bottom: 40px;
132
+ width: 0;
134
133
  height: auto;
135
134
 
136
135
  a {
@@ -140,29 +139,6 @@
140
139
  }
141
140
  }
142
141
 
143
- .percent {
144
- position: absolute;
145
- font-size: 12px;
146
- white-space: nowrap;
147
-
148
- input {
149
- width: 45px;
150
- height: 25px;
151
- box-sizing: border-box;
152
- text-align: right;
153
- }
154
-
155
- &.horizontal {
156
- left: -65px;
157
- bottom: -26px;
158
- }
159
-
160
- &.vertical {
161
- left: 100%;
162
- top: -30px;
163
- }
164
- }
165
-
166
142
  a.save {
167
143
  @include check-icon;
168
144
  @include icon-button;
@@ -171,4 +147,4 @@
171
147
  a.close {
172
148
  @include icon-button(#888);
173
149
  }
174
- }
150
+ }
@@ -158,6 +158,10 @@
158
158
 
159
159
  .navigation_site_detail {
160
160
  @include box(-40px);
161
+
162
+ img {
163
+ margin-top: 12px;
164
+ }
161
165
  }
162
166
 
163
167
  .navigation_bg, .navigation_bullet .button {