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.
- checksums.yaml +8 -8
- data/admins/pageflow/accounts.rb +17 -49
- data/admins/pageflow/entry.rb +13 -6
- data/app/assets/fonts/pageflow/entypo.eot +0 -0
- data/app/assets/fonts/pageflow/entypo.svg +834 -0
- data/app/assets/fonts/pageflow/entypo.ttf +0 -0
- data/app/assets/fonts/pageflow/entypo.woff +0 -0
- data/app/assets/fonts/pageflow/fontawesome-webfont.eot +0 -0
- data/app/assets/fonts/pageflow/fontawesome-webfont.otf +0 -0
- data/app/assets/fonts/pageflow/fontawesome-webfont.svg +504 -0
- data/app/assets/fonts/pageflow/fontawesome-webfont.ttf +0 -0
- data/app/assets/fonts/pageflow/fontawesome-webfont.woff +0 -0
- data/app/assets/images/pageflow/themes/default/audio_sprite.png +0 -0
- data/app/assets/images/pageflow/themes/default/image_sprite.png +0 -0
- data/app/assets/images/pageflow/themes/default/internal_links_sprite.png +0 -0
- data/app/assets/images/pageflow/themes/default/loading_spinner.png +0 -0
- data/app/assets/images/pageflow/themes/default/loading_spinner_bg.png +0 -0
- data/app/assets/images/pageflow/themes/default/logo_header.png +0 -0
- data/app/assets/images/pageflow/themes/default/logo_header_invert.png +0 -0
- data/app/assets/images/pageflow/themes/default/scroll_indicator_sprite.png +0 -0
- data/app/assets/images/pageflow/themes/default/text_sprite.png +0 -0
- data/app/assets/images/pageflow/themes/default/video_sprite.png +0 -0
- data/app/assets/javascripts/pageflow/editor/base.js +1 -0
- data/app/assets/javascripts/pageflow/editor/collections/mixins/files_collection.js +11 -0
- data/app/assets/javascripts/pageflow/editor/collections/subset_collection.js +11 -0
- data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +8 -1
- data/app/assets/javascripts/pageflow/editor/initializers/setup_config.js +3 -0
- data/app/assets/javascripts/pageflow/editor/models/audio_file.js +1 -0
- data/app/assets/javascripts/pageflow/editor/models/chapter.js +1 -0
- data/app/assets/javascripts/pageflow/editor/models/configuration.js +1 -0
- data/app/assets/javascripts/pageflow/editor/models/encoding_confirmation.js +45 -0
- data/app/assets/javascripts/pageflow/editor/models/entry.js +6 -14
- data/app/assets/javascripts/pageflow/editor/models/entry_publication.js +40 -0
- data/app/assets/javascripts/pageflow/editor/models/file_stage.js +5 -0
- data/app/assets/javascripts/pageflow/editor/models/image_file.js +5 -0
- data/app/assets/javascripts/pageflow/editor/models/mixins/encoded_file.js +31 -14
- data/app/assets/javascripts/pageflow/editor/models/mixins/files_count_watcher.js +4 -0
- data/app/assets/javascripts/pageflow/editor/models/mixins/stage_provider.js +2 -2
- data/app/assets/javascripts/pageflow/editor/models/other_entry.js +1 -0
- data/app/assets/javascripts/pageflow/editor/models/page.js +1 -0
- data/app/assets/javascripts/pageflow/editor/models/video_file.js +1 -0
- data/app/assets/javascripts/pageflow/editor/routers/sidebar_router.js +2 -0
- data/app/assets/javascripts/pageflow/editor/templates/confirm_encoding.jst.ejs +15 -0
- data/app/assets/javascripts/pageflow/editor/templates/confirmable_file_item.jst.ejs +7 -0
- data/app/assets/javascripts/pageflow/editor/templates/{quota_decorator.jst.ejs → entry_publication_quota_decorator.jst.ejs} +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/files_explorer.jst.ejs +5 -3
- data/app/assets/javascripts/pageflow/editor/templates/notifications.jst.ejs +6 -1
- data/app/assets/javascripts/pageflow/editor/views/confirm_encoding_view.js +76 -0
- data/app/assets/javascripts/pageflow/editor/views/confirmable_file_item_view.js +42 -0
- data/app/assets/javascripts/pageflow/editor/views/entry_publication_quota_decorator_view.js +49 -0
- data/app/assets/javascripts/pageflow/editor/views/file_meta_data_item_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/file_stage_item_view.js +1 -0
- data/app/assets/javascripts/pageflow/editor/views/file_thumbnail_view.js +2 -1
- data/app/assets/javascripts/pageflow/editor/views/files_explorer_view.js +3 -3
- data/app/assets/javascripts/pageflow/editor/views/input_view.js +2 -2
- data/app/assets/javascripts/pageflow/editor/views/inputs/select_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/notifications_view.js +12 -1
- data/app/assets/javascripts/pageflow/editor/views/publish_entry_view.js +5 -4
- data/app/assets/javascripts/pageflow/page_types/video.js +0 -1
- data/app/assets/javascripts/pageflow/widgets/player_controls.js +1 -1
- data/app/assets/stylesheets/pageflow/editor/base.css.scss +1 -0
- data/app/assets/stylesheets/pageflow/editor/confirmable_files.css.scss +67 -0
- data/app/assets/stylesheets/pageflow/editor/file_stages.css.scss +5 -0
- data/app/assets/stylesheets/pageflow/editor/file_thumbnails.css.scss +10 -0
- data/app/assets/stylesheets/pageflow/editor/files.css.scss +3 -1
- data/app/assets/stylesheets/pageflow/editor/files_explorer.css.scss +30 -2
- data/app/assets/stylesheets/pageflow/editor/files_gallery.css.scss +1 -2
- data/app/assets/stylesheets/pageflow/editor/notifications.css.scss +18 -1
- data/app/assets/stylesheets/pageflow/editor/quotas.css.scss +1 -1
- data/app/assets/stylesheets/pageflow/editor/tabs_view.css.scss +2 -0
- data/app/assets/stylesheets/pageflow/mixins.css.scss +2 -1
- data/app/assets/stylesheets/pageflow/mixins/icons.css.scss +4 -308
- data/app/assets/stylesheets/pageflow/mixins/icons/entypo.css.scss +295 -0
- data/app/assets/stylesheets/pageflow/mixins/icons/fontawesome.css.scss +520 -0
- data/app/assets/stylesheets/pageflow/mixins/label.css.scss +5 -0
- data/app/assets/stylesheets/pageflow/themes/default.css.scss +11 -0
- data/app/assets/stylesheets/pageflow/themes/default/anchors.css.scss +3 -8
- data/app/assets/stylesheets/pageflow/themes/default/loading_spinner.css.scss +96 -9
- data/app/assets/stylesheets/pageflow/themes/default/navigation.css.scss +128 -183
- data/app/assets/stylesheets/pageflow/themes/default/overview.css.scss +48 -6
- data/app/assets/stylesheets/pageflow/themes/default/page.css.scss +3 -6
- data/app/assets/stylesheets/pageflow/themes/default/player_controls.css.scss +31 -0
- data/app/controllers/concerns/pageflow/quota_verification.rb +4 -4
- data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +45 -0
- data/app/controllers/pageflow/editor/entry_publications_controller.rb +48 -0
- data/app/controllers/pageflow/entries_controller.rb +8 -3
- data/app/controllers/pageflow/revisions_controller.rb +0 -10
- data/app/controllers/pageflow/video_files_controller.rb +7 -1
- data/app/helpers/pageflow/config_helper.rb +9 -0
- data/app/helpers/pageflow/entries_helper.rb +3 -3
- data/app/helpers/pageflow/pages_helper.rb +2 -2
- data/app/helpers/pageflow/quota_helper.rb +1 -1
- data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +9 -0
- data/app/jobs/pageflow/poll_zencoder_job.rb +3 -3
- data/app/jobs/pageflow/request_meta_data_from_zencoder_job.rb +14 -0
- data/app/jobs/pageflow/submit_file_to_zencoder_job.rb +0 -2
- data/app/models/pageflow/account.rb +9 -4
- data/app/models/pageflow/audio_file.rb +2 -0
- data/app/models/pageflow/draft_entry.rb +5 -1
- data/app/models/pageflow/edit_lock.rb +2 -0
- data/app/models/pageflow/encoding_confirmation.rb +40 -0
- data/app/models/pageflow/entry.rb +3 -3
- data/app/models/pageflow/entry_publication.rb +27 -0
- data/app/models/pageflow/page.rb +6 -6
- data/app/models/pageflow/published_entry.rb +3 -3
- data/app/models/pageflow/theming.rb +20 -0
- data/app/models/pageflow/video_file.rb +2 -0
- data/app/state_machines/pageflow/encoded_file_state_machine.rb +41 -1
- data/app/views/admin/accounts/_account_details.html.arb +5 -0
- data/app/views/admin/accounts/_entries_panel.html.arb +15 -0
- data/app/views/admin/accounts/_form.html.erb +18 -0
- data/app/views/admin/accounts/_theming_details.html.arb +6 -0
- data/app/views/admin/accounts/_users_panel.html.arb +15 -0
- data/app/views/admin/entries/_links.html.arb +3 -2
- data/app/views/admin/users/_form.html.erb +2 -2
- data/app/views/admin/users/_quota_exhausted.html.erb +1 -0
- data/app/views/pageflow/config/_editor_seeds.json.jbuilder +2 -0
- data/app/views/pageflow/editor/encoding_confirmations/_summary.html.erb +1 -0
- data/app/views/pageflow/editor/encoding_confirmations/check.json.jbuilder +3 -0
- data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +11 -0
- data/app/views/pageflow/editor/quotas/{_published_entries_exceeded.html.erb → _published_entries_exhausted.html.erb} +1 -1
- data/app/views/pageflow/entries/_entry.html.erb +1 -1
- data/app/views/pageflow/entries/_navigation.html.erb +2 -2
- data/app/views/pageflow/entries/_social_meta_tags.html.erb +2 -2
- data/app/views/pageflow/entries/_theming.css.erb +1 -0
- data/app/views/pageflow/entries/edit.html.erb +3 -1
- data/app/views/pageflow/entries/navigation/_bar_top.html.erb +2 -2
- data/app/views/pageflow/entries/show.css.erb +3 -1
- data/app/views/pageflow/entries/show.html.erb +13 -13
- data/config/initializers/page_type_helpers.rb +1 -0
- data/config/locales/activerecord.de.yml +41 -22
- data/config/locales/admin/accounts.yml +0 -1
- data/config/locales/admin/entries.yml +6 -2
- data/config/locales/admin/themings.yml +7 -0
- data/config/locales/admin/users/me.de.yml +2 -2
- data/config/locales/editor.de.yml +9 -3
- data/config/locales/quotas.de.yml +1 -1
- data/config/routes.rb +34 -27
- data/db/migrate/20140624135420_create_themings.rb +15 -0
- data/db/migrate/20140624135421_create_themings_for_existing_accounts.rb +26 -0
- data/db/migrate/20140624135422_change_theme_references_to_theming_references.rb +45 -0
- data/db/migrate/20140624135423_remove_attributes_from_themes.rb +10 -0
- data/db/migrate/20140624135424_create_accounts_themes_join_table.rb +8 -0
- data/db/migrate/20140624135425_move_cname_from_account_to_theming.rb +21 -0
- data/db/migrate/20140625184800_drop_themes.rb +14 -0
- data/db/migrate/20140704110631_add_confirmed_by_to_encoded_files.rb +6 -0
- data/lib/generators/pageflow/initializer/templates/pageflow.rb +9 -0
- data/lib/generators/pageflow/theme/theme_generator.rb +28 -0
- data/lib/pageflow.rb +9 -2
- data/lib/pageflow/ability_mixin.rb +1 -1
- data/lib/pageflow/built_in_page_type.rb +1 -1
- data/lib/pageflow/configuration.rb +49 -6
- data/lib/pageflow/engine.rb +11 -1
- data/lib/pageflow/quota.rb +42 -15
- data/lib/pageflow/quotas.rb +15 -0
- data/lib/pageflow/seeds.rb +12 -16
- data/lib/pageflow/theme.rb +14 -0
- data/lib/pageflow/themes.rb +25 -0
- data/lib/pageflow/user_mixin.rb +1 -1
- data/lib/pageflow/version.rb +1 -1
- data/lib/pageflow/zencoder_meta_data_output_definition.rb +23 -0
- data/spec/factories/accounts.rb +9 -0
- data/spec/factories/audio_files.rb +46 -0
- data/spec/factories/chapters.rb +21 -0
- data/spec/factories/edit_locks.rb +11 -0
- data/spec/factories/entries.rb +33 -0
- data/spec/factories/file_usages.rb +8 -0
- data/spec/factories/folders.rb +8 -0
- data/spec/factories/image_files.rb +38 -0
- data/spec/factories/invited_user.rb +10 -0
- data/spec/factories/memberships.rb +8 -0
- data/spec/factories/pages.rb +14 -0
- data/spec/factories/revisions.rb +22 -0
- data/spec/factories/themings.rb +8 -0
- data/spec/factories/users.rb +39 -0
- data/spec/factories/video_files.rb +46 -0
- metadata +103 -39
- data/app/assets/javascripts/pageflow/editor/models/quota.js +0 -18
- data/app/assets/javascripts/pageflow/editor/views/quota_decorator_view.js +0 -45
- data/app/controllers/pageflow/editor/quotas_controller.rb +0 -13
- data/app/models/pageflow/theme.rb +0 -4
- data/app/views/admin/users/_quota_exceeded.html.erb +0 -1
- 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:
|
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:
|
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
|
-
|
45
|
-
|
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:
|
87
|
-
background-
|
88
|
-
padding-top:
|
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::
|
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.
|
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.
|
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.
|
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
|
-
|
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
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Pageflow
|
2
2
|
module EntriesHelper
|
3
3
|
def pretty_entry_url(entry)
|
4
|
-
if entry.
|
5
|
-
short_entry_url(entry.to_model, :host => entry.
|
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(
|
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
|
-
"#{
|
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.
|
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')
|
@@ -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
|
@@ -4,14 +4,19 @@ module Pageflow
|
|
4
4
|
has_many :entries
|
5
5
|
has_many :folders
|
6
6
|
|
7
|
-
|
7
|
+
has_many :themings
|
8
|
+
belongs_to :default_theming, :class_name => 'Theming'
|
8
9
|
|
9
|
-
validates :
|
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
|
14
|
-
|
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
|