pageflow 0.1.0 → 0.2.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 (183) hide show
  1. checksums.yaml +8 -8
  2. data/admins/pageflow/accounts.rb +17 -49
  3. data/admins/pageflow/entry.rb +13 -6
  4. data/app/assets/fonts/pageflow/entypo.eot +0 -0
  5. data/app/assets/fonts/pageflow/entypo.svg +834 -0
  6. data/app/assets/fonts/pageflow/entypo.ttf +0 -0
  7. data/app/assets/fonts/pageflow/entypo.woff +0 -0
  8. data/app/assets/fonts/pageflow/fontawesome-webfont.eot +0 -0
  9. data/app/assets/fonts/pageflow/fontawesome-webfont.otf +0 -0
  10. data/app/assets/fonts/pageflow/fontawesome-webfont.svg +504 -0
  11. data/app/assets/fonts/pageflow/fontawesome-webfont.ttf +0 -0
  12. data/app/assets/fonts/pageflow/fontawesome-webfont.woff +0 -0
  13. data/app/assets/images/pageflow/themes/default/audio_sprite.png +0 -0
  14. data/app/assets/images/pageflow/themes/default/image_sprite.png +0 -0
  15. data/app/assets/images/pageflow/themes/default/internal_links_sprite.png +0 -0
  16. data/app/assets/images/pageflow/themes/default/loading_spinner.png +0 -0
  17. data/app/assets/images/pageflow/themes/default/loading_spinner_bg.png +0 -0
  18. data/app/assets/images/pageflow/themes/default/logo_header.png +0 -0
  19. data/app/assets/images/pageflow/themes/default/logo_header_invert.png +0 -0
  20. data/app/assets/images/pageflow/themes/default/scroll_indicator_sprite.png +0 -0
  21. data/app/assets/images/pageflow/themes/default/text_sprite.png +0 -0
  22. data/app/assets/images/pageflow/themes/default/video_sprite.png +0 -0
  23. data/app/assets/javascripts/pageflow/editor/base.js +1 -0
  24. data/app/assets/javascripts/pageflow/editor/collections/mixins/files_collection.js +11 -0
  25. data/app/assets/javascripts/pageflow/editor/collections/subset_collection.js +11 -0
  26. data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +8 -1
  27. data/app/assets/javascripts/pageflow/editor/initializers/setup_config.js +3 -0
  28. data/app/assets/javascripts/pageflow/editor/models/audio_file.js +1 -0
  29. data/app/assets/javascripts/pageflow/editor/models/chapter.js +1 -0
  30. data/app/assets/javascripts/pageflow/editor/models/configuration.js +1 -0
  31. data/app/assets/javascripts/pageflow/editor/models/encoding_confirmation.js +45 -0
  32. data/app/assets/javascripts/pageflow/editor/models/entry.js +6 -14
  33. data/app/assets/javascripts/pageflow/editor/models/entry_publication.js +40 -0
  34. data/app/assets/javascripts/pageflow/editor/models/file_stage.js +5 -0
  35. data/app/assets/javascripts/pageflow/editor/models/image_file.js +5 -0
  36. data/app/assets/javascripts/pageflow/editor/models/mixins/encoded_file.js +31 -14
  37. data/app/assets/javascripts/pageflow/editor/models/mixins/files_count_watcher.js +4 -0
  38. data/app/assets/javascripts/pageflow/editor/models/mixins/stage_provider.js +2 -2
  39. data/app/assets/javascripts/pageflow/editor/models/other_entry.js +1 -0
  40. data/app/assets/javascripts/pageflow/editor/models/page.js +1 -0
  41. data/app/assets/javascripts/pageflow/editor/models/video_file.js +1 -0
  42. data/app/assets/javascripts/pageflow/editor/routers/sidebar_router.js +2 -0
  43. data/app/assets/javascripts/pageflow/editor/templates/confirm_encoding.jst.ejs +15 -0
  44. data/app/assets/javascripts/pageflow/editor/templates/confirmable_file_item.jst.ejs +7 -0
  45. data/app/assets/javascripts/pageflow/editor/templates/{quota_decorator.jst.ejs → entry_publication_quota_decorator.jst.ejs} +1 -1
  46. data/app/assets/javascripts/pageflow/editor/templates/files_explorer.jst.ejs +5 -3
  47. data/app/assets/javascripts/pageflow/editor/templates/notifications.jst.ejs +6 -1
  48. data/app/assets/javascripts/pageflow/editor/views/confirm_encoding_view.js +76 -0
  49. data/app/assets/javascripts/pageflow/editor/views/confirmable_file_item_view.js +42 -0
  50. data/app/assets/javascripts/pageflow/editor/views/entry_publication_quota_decorator_view.js +49 -0
  51. data/app/assets/javascripts/pageflow/editor/views/file_meta_data_item_view.js +1 -1
  52. data/app/assets/javascripts/pageflow/editor/views/file_stage_item_view.js +1 -0
  53. data/app/assets/javascripts/pageflow/editor/views/file_thumbnail_view.js +2 -1
  54. data/app/assets/javascripts/pageflow/editor/views/files_explorer_view.js +3 -3
  55. data/app/assets/javascripts/pageflow/editor/views/input_view.js +2 -2
  56. data/app/assets/javascripts/pageflow/editor/views/inputs/select_input_view.js +1 -1
  57. data/app/assets/javascripts/pageflow/editor/views/notifications_view.js +12 -1
  58. data/app/assets/javascripts/pageflow/editor/views/publish_entry_view.js +5 -4
  59. data/app/assets/javascripts/pageflow/page_types/video.js +0 -1
  60. data/app/assets/javascripts/pageflow/widgets/player_controls.js +1 -1
  61. data/app/assets/stylesheets/pageflow/editor/base.css.scss +1 -0
  62. data/app/assets/stylesheets/pageflow/editor/confirmable_files.css.scss +67 -0
  63. data/app/assets/stylesheets/pageflow/editor/file_stages.css.scss +5 -0
  64. data/app/assets/stylesheets/pageflow/editor/file_thumbnails.css.scss +10 -0
  65. data/app/assets/stylesheets/pageflow/editor/files.css.scss +3 -1
  66. data/app/assets/stylesheets/pageflow/editor/files_explorer.css.scss +30 -2
  67. data/app/assets/stylesheets/pageflow/editor/files_gallery.css.scss +1 -2
  68. data/app/assets/stylesheets/pageflow/editor/notifications.css.scss +18 -1
  69. data/app/assets/stylesheets/pageflow/editor/quotas.css.scss +1 -1
  70. data/app/assets/stylesheets/pageflow/editor/tabs_view.css.scss +2 -0
  71. data/app/assets/stylesheets/pageflow/mixins.css.scss +2 -1
  72. data/app/assets/stylesheets/pageflow/mixins/icons.css.scss +4 -308
  73. data/app/assets/stylesheets/pageflow/mixins/icons/entypo.css.scss +295 -0
  74. data/app/assets/stylesheets/pageflow/mixins/icons/fontawesome.css.scss +520 -0
  75. data/app/assets/stylesheets/pageflow/mixins/label.css.scss +5 -0
  76. data/app/assets/stylesheets/pageflow/themes/default.css.scss +11 -0
  77. data/app/assets/stylesheets/pageflow/themes/default/anchors.css.scss +3 -8
  78. data/app/assets/stylesheets/pageflow/themes/default/loading_spinner.css.scss +96 -9
  79. data/app/assets/stylesheets/pageflow/themes/default/navigation.css.scss +128 -183
  80. data/app/assets/stylesheets/pageflow/themes/default/overview.css.scss +48 -6
  81. data/app/assets/stylesheets/pageflow/themes/default/page.css.scss +3 -6
  82. data/app/assets/stylesheets/pageflow/themes/default/player_controls.css.scss +31 -0
  83. data/app/controllers/concerns/pageflow/quota_verification.rb +4 -4
  84. data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +45 -0
  85. data/app/controllers/pageflow/editor/entry_publications_controller.rb +48 -0
  86. data/app/controllers/pageflow/entries_controller.rb +8 -3
  87. data/app/controllers/pageflow/revisions_controller.rb +0 -10
  88. data/app/controllers/pageflow/video_files_controller.rb +7 -1
  89. data/app/helpers/pageflow/config_helper.rb +9 -0
  90. data/app/helpers/pageflow/entries_helper.rb +3 -3
  91. data/app/helpers/pageflow/pages_helper.rb +2 -2
  92. data/app/helpers/pageflow/quota_helper.rb +1 -1
  93. data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +9 -0
  94. data/app/jobs/pageflow/poll_zencoder_job.rb +3 -3
  95. data/app/jobs/pageflow/request_meta_data_from_zencoder_job.rb +14 -0
  96. data/app/jobs/pageflow/submit_file_to_zencoder_job.rb +0 -2
  97. data/app/models/pageflow/account.rb +9 -4
  98. data/app/models/pageflow/audio_file.rb +2 -0
  99. data/app/models/pageflow/draft_entry.rb +5 -1
  100. data/app/models/pageflow/edit_lock.rb +2 -0
  101. data/app/models/pageflow/encoding_confirmation.rb +40 -0
  102. data/app/models/pageflow/entry.rb +3 -3
  103. data/app/models/pageflow/entry_publication.rb +27 -0
  104. data/app/models/pageflow/page.rb +6 -6
  105. data/app/models/pageflow/published_entry.rb +3 -3
  106. data/app/models/pageflow/theming.rb +20 -0
  107. data/app/models/pageflow/video_file.rb +2 -0
  108. data/app/state_machines/pageflow/encoded_file_state_machine.rb +41 -1
  109. data/app/views/admin/accounts/_account_details.html.arb +5 -0
  110. data/app/views/admin/accounts/_entries_panel.html.arb +15 -0
  111. data/app/views/admin/accounts/_form.html.erb +18 -0
  112. data/app/views/admin/accounts/_theming_details.html.arb +6 -0
  113. data/app/views/admin/accounts/_users_panel.html.arb +15 -0
  114. data/app/views/admin/entries/_links.html.arb +3 -2
  115. data/app/views/admin/users/_form.html.erb +2 -2
  116. data/app/views/admin/users/_quota_exhausted.html.erb +1 -0
  117. data/app/views/pageflow/config/_editor_seeds.json.jbuilder +2 -0
  118. data/app/views/pageflow/editor/encoding_confirmations/_summary.html.erb +1 -0
  119. data/app/views/pageflow/editor/encoding_confirmations/check.json.jbuilder +3 -0
  120. data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +11 -0
  121. data/app/views/pageflow/editor/quotas/{_published_entries_exceeded.html.erb → _published_entries_exhausted.html.erb} +1 -1
  122. data/app/views/pageflow/entries/_entry.html.erb +1 -1
  123. data/app/views/pageflow/entries/_navigation.html.erb +2 -2
  124. data/app/views/pageflow/entries/_social_meta_tags.html.erb +2 -2
  125. data/app/views/pageflow/entries/_theming.css.erb +1 -0
  126. data/app/views/pageflow/entries/edit.html.erb +3 -1
  127. data/app/views/pageflow/entries/navigation/_bar_top.html.erb +2 -2
  128. data/app/views/pageflow/entries/show.css.erb +3 -1
  129. data/app/views/pageflow/entries/show.html.erb +13 -13
  130. data/config/initializers/page_type_helpers.rb +1 -0
  131. data/config/locales/activerecord.de.yml +41 -22
  132. data/config/locales/admin/accounts.yml +0 -1
  133. data/config/locales/admin/entries.yml +6 -2
  134. data/config/locales/admin/themings.yml +7 -0
  135. data/config/locales/admin/users/me.de.yml +2 -2
  136. data/config/locales/editor.de.yml +9 -3
  137. data/config/locales/quotas.de.yml +1 -1
  138. data/config/routes.rb +34 -27
  139. data/db/migrate/20140624135420_create_themings.rb +15 -0
  140. data/db/migrate/20140624135421_create_themings_for_existing_accounts.rb +26 -0
  141. data/db/migrate/20140624135422_change_theme_references_to_theming_references.rb +45 -0
  142. data/db/migrate/20140624135423_remove_attributes_from_themes.rb +10 -0
  143. data/db/migrate/20140624135424_create_accounts_themes_join_table.rb +8 -0
  144. data/db/migrate/20140624135425_move_cname_from_account_to_theming.rb +21 -0
  145. data/db/migrate/20140625184800_drop_themes.rb +14 -0
  146. data/db/migrate/20140704110631_add_confirmed_by_to_encoded_files.rb +6 -0
  147. data/lib/generators/pageflow/initializer/templates/pageflow.rb +9 -0
  148. data/lib/generators/pageflow/theme/theme_generator.rb +28 -0
  149. data/lib/pageflow.rb +9 -2
  150. data/lib/pageflow/ability_mixin.rb +1 -1
  151. data/lib/pageflow/built_in_page_type.rb +1 -1
  152. data/lib/pageflow/configuration.rb +49 -6
  153. data/lib/pageflow/engine.rb +11 -1
  154. data/lib/pageflow/quota.rb +42 -15
  155. data/lib/pageflow/quotas.rb +15 -0
  156. data/lib/pageflow/seeds.rb +12 -16
  157. data/lib/pageflow/theme.rb +14 -0
  158. data/lib/pageflow/themes.rb +25 -0
  159. data/lib/pageflow/user_mixin.rb +1 -1
  160. data/lib/pageflow/version.rb +1 -1
  161. data/lib/pageflow/zencoder_meta_data_output_definition.rb +23 -0
  162. data/spec/factories/accounts.rb +9 -0
  163. data/spec/factories/audio_files.rb +46 -0
  164. data/spec/factories/chapters.rb +21 -0
  165. data/spec/factories/edit_locks.rb +11 -0
  166. data/spec/factories/entries.rb +33 -0
  167. data/spec/factories/file_usages.rb +8 -0
  168. data/spec/factories/folders.rb +8 -0
  169. data/spec/factories/image_files.rb +38 -0
  170. data/spec/factories/invited_user.rb +10 -0
  171. data/spec/factories/memberships.rb +8 -0
  172. data/spec/factories/pages.rb +14 -0
  173. data/spec/factories/revisions.rb +22 -0
  174. data/spec/factories/themings.rb +8 -0
  175. data/spec/factories/users.rb +39 -0
  176. data/spec/factories/video_files.rb +46 -0
  177. metadata +103 -39
  178. data/app/assets/javascripts/pageflow/editor/models/quota.js +0 -18
  179. data/app/assets/javascripts/pageflow/editor/views/quota_decorator_view.js +0 -45
  180. data/app/controllers/pageflow/editor/quotas_controller.rb +0 -13
  181. data/app/models/pageflow/theme.rb +0 -4
  182. data/app/views/admin/users/_quota_exceeded.html.erb +0 -1
  183. data/app/views/pageflow/editor/quotas/show.json.jbuilder +0 -5
@@ -21,7 +21,11 @@ $overview-header-font: $standard-font;
21
21
  }
22
22
 
23
23
  .close {
24
- background-image: image-url('pageflow/themes/#{$theme-name}/close_sprite.png');
24
+ background-image: none;
25
+ background-color: #dbdbdb !important;
26
+ border-radius: 20px;
27
+ text-align: center;
28
+ @include shine-gradient;
25
29
 
26
30
  &:before {
27
31
  content: " ";
@@ -34,15 +38,53 @@ $overview-header-font: $standard-font;
34
38
 
35
39
  background-image: image-url('pageflow/close_text.png');
36
40
  }
41
+ &:after {
42
+ content: "\F00d";
43
+ font-family: "FontAwesome";
44
+ line-height: 31px;
45
+ font-size: 22px;
46
+ color: black;
47
+ }
48
+ &:hover {
49
+ background-color: $overview-color !important;
50
+
51
+ &:after {
52
+ color: white;
53
+ }
54
+ }
37
55
  }
38
56
 
39
57
  .scroll_indicator {
40
- &.left {
41
- background-image: image-url('pageflow/themes/#{$theme-name}/arrow_left_sprite.png');
42
- }
58
+ &.left, &.right {
59
+ background-image: none;
60
+ background-color: #dbdbdb !important;
61
+ border-radius: 20px;
62
+ text-align: center;
63
+ @include shine-gradient;
43
64
 
44
- &.right {
45
- background-image: image-url('pageflow/themes/#{$theme-name}/arrow_right_sprite.png');
65
+ &:after {
66
+ font-family: "FontAwesome";
67
+ line-height: 31px;
68
+ font-size: 29px;
69
+ color: black;
70
+ font-weight: bold;
71
+ }
72
+
73
+ &:hover {
74
+ background-color: $overview-color !important;
75
+
76
+ &:after {
77
+ color: white;
78
+ }
79
+ }
80
+ }
81
+ &.left:after {
82
+ content: "\f104";
83
+ margin-right: 3px;
84
+ }
85
+ &.right:after {
86
+ content: "\f105";
87
+ margin-left: 4px;
46
88
  }
47
89
  }
48
90
 
@@ -38,7 +38,6 @@ $page-color: $main-color;
38
38
  font-weight: normal;
39
39
  margin-top: 0;
40
40
  letter-spacing: 0em;
41
- text-transform: uppercase;
42
41
  }
43
42
 
44
43
  h2 .title {
@@ -50,7 +49,6 @@ $page-color: $main-color;
50
49
  margin-bottom: 0.4em;
51
50
  letter-spacing: 0em;
52
51
  line-height: 1em;
53
- text-transform: uppercase;
54
52
  @include phone {
55
53
  font-size: 1.8em;
56
54
  }
@@ -83,12 +81,11 @@ $page-color: $main-color;
83
81
  background-repeat: no-repeat;
84
82
  top: 50px;
85
83
  z-index: 200;
86
- background-size: auto;
87
- background-size: 100% auto;
88
- padding-top: 25.8%;
84
+ background-size: contain;
85
+ background-position: left top;
86
+ padding-top: 6.8%;
89
87
  min-width: 100px;
90
88
  max-width: 221px;
91
- background-size: 100% auto;
92
89
  width: 13%;
93
90
  }
94
91
 
@@ -0,0 +1,31 @@
1
+ .js .vjs-play-control {
2
+ background-image: none;
3
+ width: 36px;
4
+ height: 36px;
5
+ margin-top: 12px;
6
+ margin-left: 13px;
7
+
8
+ @include fa-play-icon;
9
+
10
+ &:before {
11
+ color: white;
12
+ font-size: 34px;
13
+ top: -15px;
14
+ left: 3px;
15
+ text-shadow: 0px 0px 2px black;
16
+ }
17
+
18
+ &.vjs-playing, &.vjs-pause {
19
+ &:before {
20
+ left: 0px;
21
+ }
22
+ @include fa-pause-icon;
23
+ }
24
+
25
+ &:hover, &:active {
26
+ &:before {
27
+ color: $main-color;
28
+ text-shadow: 0px 0px 2px black;
29
+ }
30
+ }
31
+ }
@@ -3,16 +3,16 @@ module Pageflow
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  included do
6
- rescue_from Quota::ExceededError do |exception|
6
+ rescue_from Quota::ExhaustedError do |exception|
7
7
  respond_to do |format|
8
8
  format.html do
9
- redirect_to :back, :alert => t('quotas.exceeded')
9
+ redirect_to :back, :alert => t('quotas.exhausted')
10
10
  end
11
11
  format.json do
12
12
  render(:status => :forbidden,
13
13
  :json => {
14
14
  :error_message => exception.message,
15
- :quota_name => exception.quota_name
15
+ :quota_name => exception.quota.name
16
16
  })
17
17
  end
18
18
  end
@@ -22,7 +22,7 @@ module Pageflow
22
22
  protected
23
23
 
24
24
  def verify_quota!(name, account)
25
- Pageflow.config.quota.verify!(name, account)
25
+ Pageflow.config.quotas.get(name, account).verify_available!
26
26
  end
27
27
  end
28
28
  end
@@ -0,0 +1,45 @@
1
+ module Pageflow
2
+ module Editor
3
+ class EncodingConfirmationsController < Pageflow::ApplicationController
4
+ respond_to :json
5
+
6
+ before_filter :authenticate_user!
7
+
8
+ def create
9
+ entry = DraftEntry.find(params[:entry_id])
10
+
11
+ authorize!(:confirm_encoding, entry.to_model)
12
+ @encoding_confirmation = build_encoding_confirmation(entry)
13
+ @encoding_confirmation.save!
14
+
15
+ head :ok
16
+ rescue EncodingConfirmation::QuotaExceededError
17
+ render(action: :check, status: :forbidden)
18
+ end
19
+
20
+ def check
21
+ entry = DraftEntry.find(params[:entry_id])
22
+
23
+ authorize!(:confirm_encoding, entry.to_model)
24
+ @encoding_confirmation = build_encoding_confirmation(entry)
25
+ end
26
+
27
+ private
28
+
29
+ def build_encoding_confirmation(entry)
30
+ EncodingConfirmation.new(entry,
31
+ encoding_confirmation_params,
32
+ encoding_quota,
33
+ current_user)
34
+ end
35
+
36
+ def encoding_confirmation_params
37
+ params.require(:encoding_confirmation).permit(video_file_ids: [], audio_file_ids: [])
38
+ end
39
+
40
+ def encoding_quota
41
+ Pageflow.config.quotas.get(:encoding, current_user.account)
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,48 @@
1
+ module Pageflow
2
+ module Editor
3
+ class EntryPublicationsController < Pageflow::ApplicationController
4
+ respond_to :json
5
+
6
+ before_filter :authenticate_user!
7
+
8
+ def create
9
+ entry = Entry.find(params[:entry_id])
10
+
11
+ authorize!(:publish, entry)
12
+ verify_edit_lock!(entry)
13
+
14
+ @entry_publication = build_entry_publication(entry)
15
+ @entry_publication.save!
16
+
17
+ render(action: :check)
18
+ rescue Quota::ExceededError
19
+ render(action: :check, status: :forbidden)
20
+ end
21
+
22
+ def check
23
+ entry = Entry.find(params[:entry_id])
24
+
25
+ authorize!(:publish, entry)
26
+
27
+ @entry_publication = build_entry_publication(entry)
28
+ end
29
+
30
+ private
31
+
32
+ def build_entry_publication(entry)
33
+ EntryPublication.new(entry,
34
+ entry_publication_params,
35
+ published_entries_quota,
36
+ current_user)
37
+ end
38
+
39
+ def entry_publication_params
40
+ params.fetch(:entry_publication, {}).permit(:published_until)
41
+ end
42
+
43
+ def published_entries_quota
44
+ Pageflow.config.quotas.get(:published_entries, current_user.account)
45
+ end
46
+ end
47
+ end
48
+ end
@@ -11,7 +11,8 @@ module Pageflow
11
11
  helper RenderJsonHelper
12
12
 
13
13
  def index
14
- @account = Account.with_landing_page.find_by_cname!(request.host)
14
+ theming = Theming.find_by_cname!(request.host)
15
+ @account = Account.with_landing_page.find_by_theming!(theming)
15
16
 
16
17
  respond_to do |format|
17
18
  format.html {
@@ -23,7 +24,7 @@ module Pageflow
23
24
  def show
24
25
  respond_to do |format|
25
26
  format.any(:html, :css) do
26
- @entry = PublishedEntry.find(params[:id])
27
+ @entry = PublishedEntry.find(params[:id], entry_request_scope)
27
28
  end
28
29
  format.json do
29
30
  authenticate_user!
@@ -37,7 +38,7 @@ module Pageflow
37
38
  end
38
39
 
39
40
  def page
40
- entry = PublishedEntry.find(params[:id])
41
+ entry = PublishedEntry.find(params[:id], entry_request_scope)
41
42
  index = params[:page_index].split('-').first.to_i
42
43
 
43
44
  redirect_to(short_entry_path(entry.to_model, :anchor => entry.pages[index].try(:perma_id)))
@@ -72,5 +73,9 @@ module Pageflow
72
73
  def entry_params
73
74
  params.require(:entry).permit(:title, :summary, :credits, :manual_start)
74
75
  end
76
+
77
+ def entry_request_scope
78
+ Pageflow.config.public_entry_request_scope.call(Entry, request)
79
+ end
75
80
  end
76
81
  end
@@ -6,16 +6,6 @@ module Pageflow
6
6
 
7
7
  respond_to :json
8
8
 
9
- def create
10
- entry = Entry.find(params[:entry_id])
11
-
12
- authorize!(:publish, entry)
13
- verify_edit_lock!(entry)
14
- verify_quota!(:published_entries, entry.account)
15
-
16
- @revision = entry.publish(revision_params.merge(:creator => current_user))
17
- end
18
-
19
9
  def show
20
10
  revision = Revision.find(params[:id])
21
11
  authorize!(:show, revision) unless request.format.css?
@@ -5,10 +5,16 @@ module Pageflow
5
5
  def show
6
6
  respond_to do |format|
7
7
  format.html do
8
- entry = PublishedEntry.find(params[:entry_id])
8
+ entry = PublishedEntry.find(params[:entry_id], entry_request_scope)
9
9
  @video_file = entry.video_files.find(params[:id])
10
10
  end
11
11
  end
12
12
  end
13
+
14
+ protected
15
+
16
+ def entry_request_scope
17
+ Pageflow.config.public_entry_request_scope.call(Entry, request)
18
+ end
13
19
  end
14
20
  end
@@ -0,0 +1,9 @@
1
+ module Pageflow
2
+ module ConfigHelper
3
+ include RenderJsonHelper
4
+
5
+ def editor_config_seeds
6
+ render_json_partial('pageflow/config/editor_seeds')
7
+ end
8
+ end
9
+ end
@@ -1,8 +1,8 @@
1
1
  module Pageflow
2
2
  module EntriesHelper
3
3
  def pretty_entry_url(entry)
4
- if entry.account.cname.present?
5
- short_entry_url(entry.to_model, :host => entry.account.cname)
4
+ if entry.theming.cname.present?
5
+ short_entry_url(entry.to_model, :host => entry.theming.cname)
6
6
  else
7
7
  short_entry_url(entry.to_model)
8
8
  end
@@ -25,7 +25,7 @@ module Pageflow
25
25
  end
26
26
 
27
27
  def entry_theme_stylesheet_link_tag(entry)
28
- stylesheet_link_tag("pageflow/themes/#{entry.theme.name}.css", :media => 'all')
28
+ stylesheet_link_tag(entry.theming.theme.stylesheet_path, :media => 'all')
29
29
  end
30
30
 
31
31
  def entry_stylesheet_link_tag(entry)
@@ -140,9 +140,9 @@ module Pageflow
140
140
  end
141
141
 
142
142
  def page_thumbnail_image_class(page, hero)
143
- model, attachment, property = page.thumbnail_definition
143
+ model, attachment, property, model_class = page.thumbnail_definition
144
144
  size = hero ? 'large_' : ''
145
- "#{model}_link_thumbnail_#{size}#{page.configuration[property]}"
145
+ "#{model_class}_link_thumbnail_#{size}#{page.configuration[property]}"
146
146
  end
147
147
  end
148
148
  end
@@ -1,7 +1,7 @@
1
1
  module Pageflow
2
2
  module QuotaHelper
3
3
  def quota_state_description(name, account)
4
- description = Pageflow.config.quota.state_description(:users, @user.account)
4
+ description = Pageflow.config.quotas.get(:users, @user.account).state_description
5
5
 
6
6
  if description
7
7
  content_tag(:p, description, :class => 'quota_state')
@@ -0,0 +1,9 @@
1
+ module Pageflow
2
+ class PollMetaDataFromZencoderJob < PollZencoderJob
3
+ @queue = :resizing
4
+
5
+ def self.perform_with_result(file, options)
6
+ super(file, :skip_thumbnail => true)
7
+ end
8
+ end
9
+ end
@@ -5,12 +5,12 @@ module Pageflow
5
5
  extend StateMachineJob
6
6
 
7
7
  def self.perform_with_result(file, options, api = ZencoderApi.instance)
8
+ options ||= {}
9
+
8
10
  result = catch(:halt) do
9
11
  poll_zencoder(file, api)
10
12
  fetch_input_details(file, api)
11
- fetch_thumbnail(file)
12
-
13
- Pageflow.config.hooks.invoke(:file_encoded, file: file)
13
+ fetch_thumbnail(file) unless options[:skip_thumbnail]
14
14
 
15
15
  :ok
16
16
  end
@@ -0,0 +1,14 @@
1
+ module Pageflow
2
+ class RequestMetaDataFromZencoderJob
3
+ @queue = :default
4
+
5
+ extend StateMachineJob
6
+
7
+ def self.perform_with_result(file, options, api = ZencoderApi.instance)
8
+ file.job_id = api.create_job(ZencoderMetaDataOutputDefinition.new(file))
9
+ file.save!
10
+
11
+ :ok
12
+ end
13
+ end
14
+ end
@@ -8,8 +8,6 @@ module Pageflow
8
8
  file.job_id = api.create_job(file.output_definition)
9
9
  file.save!
10
10
 
11
- Pageflow.config.hooks.invoke(:file_submitted, file: file)
12
-
13
11
  :ok
14
12
  end
15
13
  end
@@ -4,14 +4,19 @@ module Pageflow
4
4
  has_many :entries
5
5
  has_many :folders
6
6
 
7
- belongs_to :default_theme, :class_name => 'Theme'
7
+ has_many :themings
8
+ belongs_to :default_theming, :class_name => 'Theming'
8
9
 
9
- validates :default_theme, :presence => true
10
+ validates :default_theming, :presence => true
11
+
12
+ accepts_nested_attributes_for :default_theming, :update_only => true
10
13
 
11
14
  scope :with_landing_page, -> { where.not(:landing_page_name => '') }
12
15
 
13
- def cname_domain
14
- cname.split('.').pop(2).join('.')
16
+ def build_default_theming(*args)
17
+ super.tap do |theming|
18
+ theming.account = self
19
+ end
15
20
  end
16
21
  end
17
22
  end