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
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -18,6 +18,17 @@ pageflow.filesCollection = {
|
|
18
18
|
return this.entry || pageflow.entry;
|
19
19
|
},
|
20
20
|
|
21
|
+
confirmable: function() {
|
22
|
+
return new pageflow.SubsetCollection({
|
23
|
+
parent: this,
|
24
|
+
watchAttribute: 'state',
|
25
|
+
|
26
|
+
filter: function(item) {
|
27
|
+
return item.get('state') === 'waiting_for_confirmation';
|
28
|
+
},
|
29
|
+
});
|
30
|
+
},
|
31
|
+
|
21
32
|
fileType: function() {
|
22
33
|
var plural = _.map(this.name.split('_'), upperCaseFirst).join('');
|
23
34
|
|
@@ -28,6 +28,17 @@ pageflow.SubsetCollection = Backbone.Collection.extend({
|
|
28
28
|
adding = false;
|
29
29
|
});
|
30
30
|
|
31
|
+
if (options.watchAttribute) {
|
32
|
+
this.listenTo(this.parent, 'change:' + options.watchAttribute, function(model) {
|
33
|
+
if (this.filter(model)) {
|
34
|
+
this.add(model);
|
35
|
+
}
|
36
|
+
else {
|
37
|
+
this.remove(model);
|
38
|
+
}
|
39
|
+
});
|
40
|
+
}
|
41
|
+
|
31
42
|
this.listenTo(this, 'sort', function() {
|
32
43
|
this.parent.sort();
|
33
44
|
});
|
@@ -31,6 +31,12 @@ pageflow.SidebarController = Backbone.Marionette.Controller.extend({
|
|
31
31
|
}));
|
32
32
|
},
|
33
33
|
|
34
|
+
confirmableFiles: function() {
|
35
|
+
this.region.show(pageflow.ConfirmEncodingView.create({
|
36
|
+
model: new pageflow.EncodingConfirmation()
|
37
|
+
}));
|
38
|
+
},
|
39
|
+
|
34
40
|
metaData: function() {
|
35
41
|
this.region.show(new pageflow.EditMetaDataView({
|
36
42
|
model: this.entry
|
@@ -39,7 +45,8 @@ pageflow.SidebarController = Backbone.Marionette.Controller.extend({
|
|
39
45
|
|
40
46
|
publish: function() {
|
41
47
|
this.region.show(pageflow.PublishEntryView.create({
|
42
|
-
model: this.entry
|
48
|
+
model: this.entry,
|
49
|
+
entryPublication: new pageflow.EntryPublication()
|
43
50
|
}));
|
44
51
|
},
|
45
52
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
pageflow.EncodingConfirmation = Backbone.Model.extend({
|
2
|
+
paramRoot: 'encoding_confirmation',
|
3
|
+
|
4
|
+
initialize: function() {
|
5
|
+
this.videoFiles = new Backbone.Collection();
|
6
|
+
this.audioFiles = new Backbone.Collection();
|
7
|
+
|
8
|
+
this.watchCollections();
|
9
|
+
},
|
10
|
+
|
11
|
+
watchCollections: function() {
|
12
|
+
this.listenTo(this.videoFiles, 'add remove', this.check);
|
13
|
+
this.listenTo(this.audioFiles, 'add remove', this.check);
|
14
|
+
|
15
|
+
this.check();
|
16
|
+
},
|
17
|
+
|
18
|
+
check: function() {
|
19
|
+
var model = this;
|
20
|
+
|
21
|
+
this.set('empty', this.videoFiles.length === 0 && this.audioFiles.length === 0);
|
22
|
+
this.set('checking', true);
|
23
|
+
|
24
|
+
this.save({}, {
|
25
|
+
url: this.url() + '/check',
|
26
|
+
success: function() {
|
27
|
+
model.set('checking', false);
|
28
|
+
},
|
29
|
+
error: function() {
|
30
|
+
model.set('checking', false);
|
31
|
+
}
|
32
|
+
});
|
33
|
+
},
|
34
|
+
|
35
|
+
url: function() {
|
36
|
+
return '/editor/entries/' + pageflow.entry.get('id') + '/encoding_confirmations';
|
37
|
+
},
|
38
|
+
|
39
|
+
toJSON: function() {
|
40
|
+
return {
|
41
|
+
video_file_ids: this.videoFiles.pluck('id'),
|
42
|
+
audio_file_ids: this.audioFiles.pluck('id'),
|
43
|
+
};
|
44
|
+
}
|
45
|
+
});
|
@@ -2,6 +2,7 @@ pageflow.Entry = Backbone.Model.extend({
|
|
2
2
|
paramRoot: 'entry',
|
3
3
|
urlRoot: '/entries',
|
4
4
|
modelName: 'entry',
|
5
|
+
i18nKey: 'pageflow/entry',
|
5
6
|
|
6
7
|
mixins: [pageflow.filesCountWatcher, pageflow.polling, pageflow.failureTracking],
|
7
8
|
|
@@ -84,7 +85,11 @@ pageflow.Entry = Backbone.Model.extend({
|
|
84
85
|
},
|
85
86
|
|
86
87
|
getFileCollection: function(filetype) {
|
87
|
-
return this[lowerCaseFirst(filetype) + 's'];
|
88
|
+
return this[lowerCaseFirst(removeNamespace(filetype)) + 's'];
|
89
|
+
|
90
|
+
function removeNamespace(string) {
|
91
|
+
return string.split('::').pop();
|
92
|
+
}
|
88
93
|
|
89
94
|
function lowerCaseFirst(string) {
|
90
95
|
return string.charAt(0).toLowerCase() + string.slice(1);
|
@@ -99,19 +104,6 @@ pageflow.Entry = Backbone.Model.extend({
|
|
99
104
|
this.togglePolling(this.get('pending_files_count') > 0);
|
100
105
|
},
|
101
106
|
|
102
|
-
publish: function(attrs) {
|
103
|
-
var model = this;
|
104
|
-
|
105
|
-
return Backbone.sync('create', this, {
|
106
|
-
url: this.url() + '/revisions',
|
107
|
-
attrs: attrs,
|
108
|
-
|
109
|
-
success: function(response) {
|
110
|
-
model.parse(response);
|
111
|
-
}
|
112
|
-
});
|
113
|
-
},
|
114
|
-
|
115
107
|
parse: function(response, options) {
|
116
108
|
if (response) {
|
117
109
|
this.set(_.pick(response, 'published', 'published_until'));
|
@@ -0,0 +1,40 @@
|
|
1
|
+
pageflow.EntryPublication = Backbone.Model.extend({
|
2
|
+
paramRoot: 'entry_publication',
|
3
|
+
|
4
|
+
quota: function() {
|
5
|
+
return new Backbone.Model(this.get('quota') || {});
|
6
|
+
},
|
7
|
+
|
8
|
+
check: function() {
|
9
|
+
var model = this;
|
10
|
+
this.set('checking', true);
|
11
|
+
|
12
|
+
this.save({}, {
|
13
|
+
url: this.url() + '/check',
|
14
|
+
success: function() {
|
15
|
+
model.set('checking', false);
|
16
|
+
},
|
17
|
+
error: function() {
|
18
|
+
model.set('checking', false);
|
19
|
+
}
|
20
|
+
});
|
21
|
+
},
|
22
|
+
|
23
|
+
publish: function(attributes) {
|
24
|
+
var model = this;
|
25
|
+
|
26
|
+
return this.save(attributes, {
|
27
|
+
success: function(model) {
|
28
|
+
pageflow.entry.parse(model.get('entry'));
|
29
|
+
},
|
30
|
+
|
31
|
+
error: function(model, xhr) {
|
32
|
+
model.set(xhr.responseJSON);
|
33
|
+
}
|
34
|
+
});
|
35
|
+
},
|
36
|
+
|
37
|
+
url: function() {
|
38
|
+
return '/editor/entries/' + pageflow.entry.get('id') + '/entry_publications';
|
39
|
+
}
|
40
|
+
});
|
@@ -5,6 +5,7 @@ pageflow.FileStage = Backbone.Model.extend({
|
|
5
5
|
this.activeStates = options.activeStates;
|
6
6
|
this.finishedStates = options.finishedStates;
|
7
7
|
this.failedStates = options.failedStates;
|
8
|
+
this.actionRequiredStates = options.actionRequiredStates || [];
|
8
9
|
|
9
10
|
this.update();
|
10
11
|
this.listenTo(this.file, 'change:state', this.update);
|
@@ -24,6 +25,7 @@ pageflow.FileStage = Backbone.Model.extend({
|
|
24
25
|
this.set('active', this.activeStates.indexOf(state) >= 0);
|
25
26
|
this.set('finished', this.finishedStates.indexOf(state) >= 0);
|
26
27
|
this.set('failed', this.failedStates.indexOf(state) >= 0);
|
28
|
+
this.set('action_required', this.actionRequiredStates.indexOf(state) >= 0);
|
27
29
|
|
28
30
|
if (this.get('active')) {
|
29
31
|
this.set('state', 'active');
|
@@ -34,6 +36,9 @@ pageflow.FileStage = Backbone.Model.extend({
|
|
34
36
|
else if (this.get('failed')) {
|
35
37
|
this.set('state', 'failed');
|
36
38
|
}
|
39
|
+
else if (this.get('action_required')) {
|
40
|
+
this.set('state', 'action_required');
|
41
|
+
}
|
37
42
|
else {
|
38
43
|
this.set('state', 'pending');
|
39
44
|
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
pageflow.ImageFile = Backbone.Model.extend({
|
2
2
|
modelName: 'image_file',
|
3
3
|
paramRoot: 'image_file',
|
4
|
+
i18nKey: 'pageflow/image_file',
|
4
5
|
|
5
6
|
mixins: [pageflow.file, pageflow.stageProvider, pageflow.retryable],
|
6
7
|
|
@@ -33,6 +34,10 @@ pageflow.ImageFile = Backbone.Model.extend({
|
|
33
34
|
return this.get('state') === 'processing_failed';
|
34
35
|
},
|
35
36
|
|
37
|
+
isConfirmable: function() {
|
38
|
+
return false;
|
39
|
+
},
|
40
|
+
|
36
41
|
isPositionable: function() {
|
37
42
|
return this.isReady();
|
38
43
|
}
|
@@ -1,25 +1,42 @@
|
|
1
1
|
pageflow.encodedFile = {
|
2
|
-
stageMapping: {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
2
|
+
stageMapping: function() {
|
3
|
+
var mapping = {
|
4
|
+
uploading: {
|
5
|
+
activeStates: ['uploading'],
|
6
|
+
finishedStates: ['not_uploaded_to_s3', 'upload_to_s3', 'uploading_to_s3', 'upload_to_s3_failed', 'waiting_for_meta_data', 'fetching_meta_data', 'fetching_meta_data_failed', 'waiting_for_confirmation', 'waiting_for_encoding', 'encoding', 'encoded', 'encoding_failed'],
|
7
|
+
failedStates: ['upload_failed']
|
8
|
+
},
|
9
|
+
uploading_to_s3: {
|
10
|
+
activeStates: ['uploading_to_s3'],
|
11
|
+
finishedStates: ['waiting_for_meta_data', 'fetching_meta_data', 'fetching_meta_data_failed', 'waiting_for_confirmation', 'waiting_for_encoding', 'encoding', 'encoded', 'encoding_failed'],
|
12
|
+
failedStates: ['upload_to_s3_failed']},
|
13
|
+
fetching_meta_data: {
|
14
|
+
activeStates: ['waiting_for_meta_data', 'fetching_meta_data'],
|
15
|
+
finishedStates: ['waiting_for_confirmation', 'waiting_for_encoding', 'encoding', 'encoded', 'encoding_failed'],
|
16
|
+
failedStates: ['fetching_meta_data_failed']},
|
17
|
+
encoding: {
|
18
|
+
actionRequiredStates: ['waiting_for_confirmation'],
|
19
|
+
activeStates: ['waiting_for_encoding', 'encoding'],
|
20
|
+
finishedStates: ['encoded'],
|
21
|
+
failedStates: ['fetching_meta_data_failed', 'encoding_failed']
|
22
|
+
}
|
23
|
+
};
|
24
|
+
|
25
|
+
if (!pageflow.config.confirmEncodingJobs) {
|
26
|
+
delete mapping.fetching_meta_data;
|
16
27
|
}
|
28
|
+
|
29
|
+
return mapping;
|
17
30
|
},
|
18
31
|
|
19
32
|
isReady: function() {
|
20
33
|
return this.get('state') === 'encoded';
|
21
34
|
},
|
22
35
|
|
36
|
+
isConfirmable: function() {
|
37
|
+
return this.get('state') === 'waiting_for_confirmation';
|
38
|
+
},
|
39
|
+
|
23
40
|
isFailed: function() {
|
24
41
|
return this.get('state').match(/_failed$/);
|
25
42
|
},
|
@@ -23,6 +23,10 @@ pageflow.filesCountWatcher = {
|
|
23
23
|
return file.isUploading();
|
24
24
|
});
|
25
25
|
|
26
|
+
this.updateFilesCount('confirmable', name, collection, function(file) {
|
27
|
+
return file.isConfirmable();
|
28
|
+
});
|
29
|
+
|
26
30
|
this.updateFilesCount('pending', name, collection, function(file) {
|
27
31
|
return file.isPending();
|
28
32
|
});
|
@@ -1,6 +1,6 @@
|
|
1
1
|
pageflow.stageProvider = {
|
2
2
|
initialize: function() {
|
3
|
-
this.stages = new Backbone.Collection(_.chain(this.stageMapping).pairs().map(function (pair) {
|
3
|
+
this.stages = new Backbone.Collection(_.chain(this).result('stageMapping').pairs().map(function (pair) {
|
4
4
|
var name = pair[0];
|
5
5
|
var options = pair[1];
|
6
6
|
|
@@ -11,7 +11,7 @@ pageflow.stageProvider = {
|
|
11
11
|
|
12
12
|
currentStage: function() {
|
13
13
|
return this.stages.find(function(stage) {
|
14
|
-
return stage.get('active') || stage.get('failed');
|
14
|
+
return stage.get('active') || stage.get('action_required') || stage.get('failed');
|
15
15
|
});
|
16
16
|
}
|
17
17
|
};
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div class="blank_slate">
|
2
|
+
Keine Dateien freizugeben.
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="video_files_panel">
|
6
|
+
<h2>Videos</h2>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="audio_files_panel">
|
10
|
+
<h2>Audios</h2>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="summary">
|
14
|
+
</div>
|
15
|
+
<button class="confirm_encoding">Ausgewählte Dateien transcodieren</button>
|