pageflow 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of pageflow might be problematic. Click here for more details.
- checksums.yaml +8 -8
- data/app/assets/images/pageflow/audio_loop_pictogram.png +0 -0
- data/app/assets/images/pageflow/audio_loop_pictogram_small.png +0 -0
- data/app/assets/images/pageflow/ov-internal_links.png +0 -0
- data/app/assets/images/pageflow/placeholder_link_thumbnail.jpg +0 -0
- data/app/assets/images/pageflow/placeholder_link_thumbnail_large.jpg +0 -0
- data/app/assets/images/pageflow/placeholder_thumbnail.jpg +0 -0
- data/app/assets/javascripts/pageflow/audio_player.js +5 -0
- data/app/assets/javascripts/pageflow/editor/api.js +4 -0
- data/app/assets/javascripts/pageflow/editor/api/file_type.js +32 -0
- data/app/assets/javascripts/pageflow/editor/api/file_types.js +73 -0
- data/app/assets/javascripts/pageflow/editor/base.js +5 -0
- data/app/assets/javascripts/pageflow/editor/collections/file_usages_collection.js +13 -1
- data/app/assets/javascripts/pageflow/editor/collections/files_collection.js +54 -0
- data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +2 -14
- data/app/assets/javascripts/pageflow/editor/initializers/error_listener.js +8 -0
- data/app/assets/javascripts/pageflow/editor/initializers/setup_collections.js +5 -3
- data/app/assets/javascripts/pageflow/editor/initializers/setup_file_types.js +21 -0
- data/app/assets/javascripts/pageflow/editor/models/audio_file.js +1 -15
- data/app/assets/javascripts/pageflow/editor/models/encoded_file.js +32 -0
- data/app/assets/javascripts/pageflow/editor/models/entry.js +29 -63
- data/app/assets/javascripts/pageflow/editor/models/file_stage.js +7 -6
- data/app/assets/javascripts/pageflow/editor/models/hosted_file.js +20 -0
- data/app/assets/javascripts/pageflow/editor/models/image_file.js +8 -31
- data/app/assets/javascripts/pageflow/editor/models/mixins/file_with_type.js +3 -0
- data/app/assets/javascripts/pageflow/editor/models/mixins/stage_provider.js +11 -5
- data/app/assets/javascripts/pageflow/editor/models/mixins/transient_references.js +5 -0
- data/app/assets/javascripts/pageflow/editor/models/other_entry.js +9 -3
- data/app/assets/javascripts/pageflow/editor/models/page.js +9 -11
- data/app/assets/javascripts/pageflow/editor/models/uploaded_file.js +65 -0
- data/app/assets/javascripts/pageflow/editor/models/video_file.js +1 -14
- data/app/assets/javascripts/pageflow/editor/routers/sidebar_router.js +2 -9
- data/app/assets/javascripts/pageflow/editor/templates/file_item.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio.js +4 -0
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio_loop.js +23 -0
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/background_image.js +4 -0
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/background_video.js +4 -0
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/internal_links.js +4 -0
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/video.js +4 -0
- data/app/assets/javascripts/pageflow/editor/views/embedded/page_link_embedded_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/explorer_file_item_view.js +2 -0
- data/app/assets/javascripts/pageflow/editor/views/file_item_view.js +8 -1
- data/app/assets/javascripts/pageflow/editor/views/file_stage_item_view.js +8 -1
- data/app/assets/javascripts/pageflow/editor/views/files_explorer_view.js +11 -43
- data/app/assets/javascripts/pageflow/editor/views/files_view.js +11 -21
- data/app/assets/javascripts/pageflow/editor/views/input_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/inputs/file_input_view.js +6 -0
- data/app/assets/javascripts/pageflow/editor/views/inputs/select_input_view.js +5 -0
- data/app/assets/javascripts/pageflow/editor/views/mixins/selectable_view.js +7 -5
- data/app/assets/javascripts/pageflow/editor/views/uploader_view.js +15 -5
- data/app/assets/javascripts/pageflow/page_types/audio.js +1 -1
- data/app/assets/javascripts/pageflow/page_types/audio_loop.js +90 -0
- data/app/assets/javascripts/pageflow/page_types/video.js +1 -1
- data/app/assets/javascripts/pageflow/ready.js +17 -2
- data/app/assets/javascripts/pageflow/video_player/player_buffered_patch.js +13 -2
- data/app/assets/stylesheets/pageflow/mixins/pageflow.css.scss +9 -0
- data/app/assets/stylesheets/pageflow/mixins/shadow.css.scss +12 -1
- data/app/assets/stylesheets/pageflow/overview.css.scss +3 -3
- data/app/assets/stylesheets/pageflow/page_types.css.scss +2 -0
- data/app/assets/stylesheets/pageflow/page_types/audio.css.scss +2 -13
- data/app/assets/stylesheets/pageflow/page_types/audio_loop.css.scss +0 -0
- data/app/assets/stylesheets/pageflow/page_types/video.css.scss +4 -0
- data/app/assets/stylesheets/pageflow/player_controls.css.scss +72 -6
- data/app/assets/stylesheets/pageflow/themes/default/navigation.css.scss +3 -0
- data/app/assets/stylesheets/pageflow/themes/default/overview.css.scss +3 -0
- data/app/controllers/pageflow/editor/files_controller.rb +11 -24
- data/app/controllers/pageflow/{video_files_controller.rb → files_controller.rb} +6 -2
- data/app/helpers/pageflow/audio_files_helper.rb +40 -0
- data/app/helpers/pageflow/file_thumbnails_helper.rb +18 -0
- data/app/helpers/pageflow/pages_helper.rb +3 -24
- data/app/jobs/pageflow/upload_file_to_s3_job.rb +2 -2
- data/app/models/concerns/pageflow/hosted_file.rb +93 -0
- data/app/models/pageflow/audio_file.rb +1 -12
- data/app/models/pageflow/draft_entry.rb +2 -11
- data/app/models/pageflow/image_file.rb +14 -14
- data/app/models/pageflow/page.rb +7 -24
- data/app/models/pageflow/published_entry.rb +3 -2
- data/app/models/pageflow/revision.rb +7 -0
- data/app/models/pageflow/thumbnail_file_resolver.rb +33 -0
- data/app/models/pageflow/video_file.rb +10 -34
- data/app/models/pageflow/zencoder_attachment.rb +2 -2
- data/app/state_machines/pageflow/encoded_file_state_machine.rb +8 -20
- data/app/state_machines/pageflow/image_file_state_machine.rb +4 -0
- data/app/views/pageflow/audio_files/_audio_file.html.erb +1 -0
- data/app/views/pageflow/audio_files/_script_tag.html.erb +3 -0
- data/app/views/pageflow/config/_editor_seeds.json.jbuilder +1 -0
- data/app/views/pageflow/editor/audio_files/_audio_file.json.jbuilder +0 -6
- data/app/views/pageflow/editor/files/_file.json.jbuilder +16 -0
- data/app/views/pageflow/editor/files/create.json.jbuilder +1 -1
- data/app/views/pageflow/editor/files/index.json.jbuilder +4 -1
- data/app/views/pageflow/editor/image_files/_image_file.json.jbuilder +1 -8
- data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +0 -8
- data/app/views/pageflow/entries/_entry.html.erb +2 -2
- data/app/views/pageflow/entries/_multimedia_alert.html.erb +14 -7
- data/app/views/pageflow/entries/_social_meta_tags.html.erb +1 -1
- data/app/views/pageflow/entries/edit.html.erb +6 -4
- data/app/views/pageflow/entries/navigation/_bar_top.html.erb +1 -1
- data/app/views/pageflow/entries/navigation/_page.html.erb +2 -2
- data/app/views/pageflow/entries/overview/_chapter.html.erb +3 -1
- data/app/views/pageflow/entries/overview/_entry.html.erb +2 -1
- data/app/views/pageflow/entries/overview/_page.html.erb +1 -1
- data/app/views/pageflow/entries/show.css.erb +1 -21
- data/app/views/pageflow/entries/show.json.jbuilder +8 -3
- data/app/views/pageflow/file_types/_thumbnails.css.erb +7 -0
- data/app/views/pageflow/files/show.html.erb +1 -0
- data/app/views/pageflow/page_types/_page_type.json.jbuilder +4 -0
- data/app/views/pageflow/pages/templates/_audio.html.erb +6 -5
- data/app/views/pageflow/pages/templates/_audio_loop.html.erb +34 -0
- data/app/views/pageflow/video_files/_video_file.html.erb +1 -0
- data/config/initializers/page_type_helpers.rb +2 -2
- data/config/initializers/paperclip.rb +32 -0
- data/config/initializers/zencoder.rb +3 -3
- data/config/locales/activerecord.de.yml +3 -2
- data/config/locales/pageflow/audio.de.yml +4 -0
- data/config/locales/pageflow/editor/errors.de.yml +6 -0
- data/config/routes.rb +4 -10
- data/lib/generators/pageflow/initializer/templates/pageflow.rb +2 -1
- data/lib/pageflow.rb +5 -3
- data/lib/pageflow/ability_mixin.rb +2 -2
- data/lib/pageflow/built_in_page_type.rb +40 -7
- data/lib/pageflow/configuration.rb +17 -0
- data/lib/pageflow/file_type.rb +60 -0
- data/lib/pageflow/file_types.rb +25 -0
- data/lib/pageflow/page_type.rb +31 -0
- data/lib/pageflow/version.rb +1 -1
- data/lib/pageflow/zencoder_video_output_definition.rb +3 -3
- data/spec/factories/audio_files.rb +2 -2
- data/spec/factories/hosted_files.rb +35 -0
- data/spec/factories/video_files.rb +2 -2
- metadata +37 -18
- data/app/assets/images/pageflow/themes/default/logo_navi.png +0 -0
- data/app/assets/images/pageflow/themes/default/logo_navi_invert.png +0 -0
- data/app/assets/javascripts/pageflow/editor/collections/audio_files_collection.js +0 -7
- data/app/assets/javascripts/pageflow/editor/collections/image_files_collection.js +0 -8
- data/app/assets/javascripts/pageflow/editor/collections/mixins/files_collection.js +0 -42
- data/app/assets/javascripts/pageflow/editor/collections/video_files_collection.js +0 -8
- data/app/assets/javascripts/pageflow/editor/models/mixins/encoded_file.js +0 -51
- data/app/assets/javascripts/pageflow/editor/models/mixins/file.js +0 -31
- data/app/assets/javascripts/pageflow/editor/views/audio_file_item_view.js +0 -14
- data/app/assets/javascripts/pageflow/editor/views/image_file_item_view.js +0 -10
- data/app/assets/javascripts/pageflow/editor/views/video_file_item_view.js +0 -18
- data/app/controllers/pageflow/editor/audio_files_controller.rb +0 -11
- data/app/controllers/pageflow/editor/image_files_controller.rb +0 -11
- data/app/controllers/pageflow/editor/video_files_controller.rb +0 -11
- data/app/views/pageflow/video_files/show.html.erb +0 -1
@@ -2,15 +2,16 @@ pageflow.FileStage = Backbone.Model.extend({
|
|
2
2
|
initialize: function(attributes, options) {
|
3
3
|
this.file = options.file;
|
4
4
|
|
5
|
-
this.activeStates = options.activeStates;
|
6
|
-
this.finishedStates = options.finishedStates;
|
7
|
-
this.failedStates = options.failedStates;
|
5
|
+
this.activeStates = options.activeStates || [];
|
6
|
+
this.finishedStates = options.finishedStates || [];
|
7
|
+
this.failedStates = options.failedStates || [];
|
8
8
|
this.actionRequiredStates = options.actionRequiredStates || [];
|
9
9
|
|
10
|
+
this.nonFinishedStates = this.activeStates.concat(this.failedStates, this.actionRequiredStates);
|
11
|
+
|
10
12
|
this.update();
|
11
13
|
this.listenTo(this.file, 'change:state', this.update);
|
12
|
-
this.listenTo(this.file, 'change:
|
13
|
-
this.listenTo(this.file, 'change:uploading_progress', this.update);
|
14
|
+
this.listenTo(this.file, 'change:' + this.get('name') + '_progress', this.update);
|
14
15
|
},
|
15
16
|
|
16
17
|
update: function() {
|
@@ -49,7 +50,7 @@ pageflow.FileStage = Backbone.Model.extend({
|
|
49
50
|
},
|
50
51
|
|
51
52
|
updateErrorMessage: function() {
|
52
|
-
var errorMessageAttribute = this.get('name')
|
53
|
+
var errorMessageAttribute = this.get('name') + '_error_message';
|
53
54
|
this.set('error_message', this.file.get(errorMessageAttribute));
|
54
55
|
},
|
55
56
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
pageflow.HostedFile = pageflow.UploadedFile.extend({
|
2
|
+
stages: function() {
|
3
|
+
return [
|
4
|
+
{
|
5
|
+
name: 'uploading',
|
6
|
+
activeStates: ['uploading'],
|
7
|
+
failedStates: ['upload_failed']
|
8
|
+
},
|
9
|
+
{
|
10
|
+
name: 'uploading_to_s3',
|
11
|
+
activeStates: ['uploading_to_s3'],
|
12
|
+
failedStates: ['uploading_to_s3_failed']
|
13
|
+
}
|
14
|
+
].concat(_.result(this, 'processingStages'));
|
15
|
+
},
|
16
|
+
|
17
|
+
processingStages: [],
|
18
|
+
|
19
|
+
readyState: 'uploaded_to_s3'
|
20
|
+
});
|
@@ -1,42 +1,19 @@
|
|
1
|
-
pageflow.ImageFile =
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
mixins: [pageflow.file, pageflow.stageProvider, pageflow.retryable],
|
7
|
-
|
8
|
-
stageMapping: {
|
9
|
-
uploading: {
|
1
|
+
pageflow.ImageFile = pageflow.UploadedFile.extend({
|
2
|
+
stages: [
|
3
|
+
{
|
4
|
+
name: 'uploading',
|
10
5
|
activeStates: ['uploading'],
|
11
|
-
finishedStates: ['processing', 'processed', 'processing_failed'],
|
12
6
|
failedStates: ['upload_failed']
|
13
7
|
},
|
14
|
-
|
8
|
+
{
|
9
|
+
name: 'processing',
|
15
10
|
activeStates: ['processing'],
|
16
11
|
finishedStates: ['processed'],
|
17
12
|
failedStates: ['processing_failed']
|
18
13
|
}
|
19
|
-
|
20
|
-
|
21
|
-
urlRoot: function() {
|
22
|
-
return this.isNew() ? this.collection.url() : '/editor/image_files';
|
23
|
-
},
|
24
|
-
|
25
|
-
isReady: function() {
|
26
|
-
return this.get('state') === 'processed';
|
27
|
-
},
|
28
|
-
|
29
|
-
isPending: function() {
|
30
|
-
return this.get('state') === 'processing';
|
31
|
-
},
|
32
|
-
|
33
|
-
isRetryable: function() {
|
34
|
-
return this.get('state') === 'processing_failed';
|
35
|
-
},
|
14
|
+
],
|
36
15
|
|
37
|
-
|
38
|
-
return false;
|
39
|
-
},
|
16
|
+
readyState: 'processed',
|
40
17
|
|
41
18
|
isPositionable: function() {
|
42
19
|
return this.isReady();
|
@@ -1,12 +1,18 @@
|
|
1
1
|
pageflow.stageProvider = {
|
2
2
|
initialize: function() {
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
var finishedStates = [this.readyState];
|
4
|
+
|
5
|
+
this.stages = new Backbone.Collection(_.chain(this).result('stages').slice().reverse().map(function (options) {
|
6
|
+
var name = options.name;
|
6
7
|
|
7
8
|
options.file = this;
|
8
|
-
|
9
|
-
|
9
|
+
options.finishedStates = finishedStates;
|
10
|
+
|
11
|
+
var fileStage = new pageflow.FileStage({name: name}, options);
|
12
|
+
finishedStates = finishedStates.concat(fileStage.nonFinishedStates);
|
13
|
+
|
14
|
+
return fileStage;
|
15
|
+
}, this).reverse().value());
|
10
16
|
},
|
11
17
|
|
12
18
|
currentStage: function() {
|
@@ -5,6 +5,11 @@ pageflow.transientReferences = {
|
|
5
5
|
},
|
6
6
|
|
7
7
|
getReference: function(attribute, collection) {
|
8
|
+
if (typeof collection === 'string') {
|
9
|
+
var fileType = pageflow.editor.fileTypes.findByCollectionName(collection);
|
10
|
+
collection = pageflow.entry.getFileCollection(fileType);
|
11
|
+
}
|
12
|
+
|
8
13
|
return this.transientReferences[attribute] ||
|
9
14
|
collection.get(this.get(attribute));
|
10
15
|
},
|
@@ -5,9 +5,15 @@ pageflow.OtherEntry = Backbone.Model.extend({
|
|
5
5
|
i18nKey: 'pageflow/entry',
|
6
6
|
|
7
7
|
initialize: function() {
|
8
|
-
this.
|
9
|
-
|
10
|
-
|
8
|
+
this.files = {};
|
9
|
+
},
|
10
|
+
|
11
|
+
getFileCollection: function(fileType) {
|
12
|
+
if (!this.files[fileType.collectionName]) {
|
13
|
+
this.files[fileType.collectionName] = pageflow.FilesCollection.createForFileType(fileType, [], {entry: this});
|
14
|
+
}
|
15
|
+
|
16
|
+
return this.files[fileType.collectionName];
|
11
17
|
},
|
12
18
|
|
13
19
|
titleOrSlug: function () {
|
@@ -48,17 +48,15 @@ pageflow.Page = Backbone.Model.extend({
|
|
48
48
|
},
|
49
49
|
|
50
50
|
thumbnailFile: function() {
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
return this.configuration.getImageFile('background_image_id');
|
61
|
-
}
|
51
|
+
var configuration = this.configuration;
|
52
|
+
|
53
|
+
return _.reduce(this.pageType().thumbnail_candidates, function(result, candidate) {
|
54
|
+
return result || configuration.getReference(candidate.attribute, candidate.file_collection);
|
55
|
+
}, null);
|
56
|
+
},
|
57
|
+
|
58
|
+
pageType: function() {
|
59
|
+
return pageflow.Page.typesByName[this.get('template')];
|
62
60
|
},
|
63
61
|
|
64
62
|
toJSON: function() {
|
@@ -0,0 +1,65 @@
|
|
1
|
+
pageflow.UploadedFile = Backbone.Model.extend({
|
2
|
+
mixins: [pageflow.stageProvider, pageflow.retryable],
|
3
|
+
|
4
|
+
urlRoot: function() {
|
5
|
+
return this.isNew() ? this.collection.url() : '/editor/files/' + this.fileType().collectionName;
|
6
|
+
},
|
7
|
+
|
8
|
+
fileType: function() {
|
9
|
+
return this.collection && this.collection.fileType;
|
10
|
+
},
|
11
|
+
|
12
|
+
isUploading: function() {
|
13
|
+
return this.get('state') === 'uploading';
|
14
|
+
},
|
15
|
+
|
16
|
+
isUploaded: function() {
|
17
|
+
return this.get('state') !== 'uploading' && this.get('state') !== 'upload_failed';
|
18
|
+
},
|
19
|
+
|
20
|
+
isPending: function() {
|
21
|
+
return !this.isReady() && !this.isFailed();
|
22
|
+
},
|
23
|
+
|
24
|
+
isReady: function() {
|
25
|
+
return this.get('state') === this.readyState;
|
26
|
+
},
|
27
|
+
|
28
|
+
isFailed: function() {
|
29
|
+
return this.get('state') && !!this.get('state').match(/_failed$/);
|
30
|
+
},
|
31
|
+
|
32
|
+
isRetryable: function() {
|
33
|
+
return !!this.get('retryable');
|
34
|
+
},
|
35
|
+
|
36
|
+
isConfirmable: function() {
|
37
|
+
return false;
|
38
|
+
},
|
39
|
+
|
40
|
+
isPositionable: function() {
|
41
|
+
return false;
|
42
|
+
},
|
43
|
+
|
44
|
+
cancelUpload: function() {
|
45
|
+
if (this.get('state') === 'uploading') {
|
46
|
+
this.trigger('uploadCancelled');
|
47
|
+
this.destroy();
|
48
|
+
}
|
49
|
+
},
|
50
|
+
|
51
|
+
uploadFailed: function() {
|
52
|
+
this.set('state', 'upload_failed');
|
53
|
+
this.unset('uploading_progress');
|
54
|
+
|
55
|
+
this.trigger('uploadFailed');
|
56
|
+
},
|
57
|
+
|
58
|
+
destroyUsage: function() {
|
59
|
+
var usage = new pageflow.FileUsage({id: this.get('usage_id')});
|
60
|
+
|
61
|
+
usage.destroy();
|
62
|
+
|
63
|
+
this.trigger('destroy', this, this.collection, {});
|
64
|
+
}
|
65
|
+
});
|
@@ -1,15 +1,2 @@
|
|
1
|
-
pageflow.VideoFile =
|
2
|
-
modelName: 'video_file',
|
3
|
-
paramRoot: 'video_file',
|
4
|
-
i18nKey: 'pageflow/video_file',
|
5
|
-
|
6
|
-
mixins: [pageflow.file, pageflow.encodedFile, pageflow.stageProvider, pageflow.retryable],
|
7
|
-
|
8
|
-
urlRoot: function() {
|
9
|
-
return this.isNew() ? this.collection.url() : '/editor/video_files';
|
10
|
-
},
|
11
|
-
|
12
|
-
isPositionable: function() {
|
13
|
-
return false;
|
14
|
-
}
|
1
|
+
pageflow.VideoFile = pageflow.EncodedFile.extend({
|
15
2
|
});
|
@@ -4,15 +4,8 @@ pageflow.SidebarRouter = Backbone.Marionette.AppRouter.extend({
|
|
4
4
|
'pages/:id/:tab': 'page',
|
5
5
|
'chapters/:id': 'chapter',
|
6
6
|
|
7
|
-
'files
|
8
|
-
'files
|
9
|
-
'files/audio_files?handler=:handler&payload=:payload': 'audioFiles',
|
10
|
-
|
11
|
-
'files/image_files': 'imageFiles',
|
12
|
-
'files/video_files': 'videoFiles',
|
13
|
-
'files/audio_files': 'audioFiles',
|
14
|
-
|
15
|
-
'files?page=:page_id&attribute=:attribute': 'files',
|
7
|
+
'files/:collectionName?handler=:handler&payload=:payload': 'files',
|
8
|
+
'files/:collectionName': 'files',
|
16
9
|
'files': 'files',
|
17
10
|
|
18
11
|
'confirmable_files?type=:type&id=:id': 'confirmableFiles',
|
@@ -10,6 +10,10 @@ pageflow.ConfigurationEditorView.register('audio', {
|
|
10
10
|
this.tab('files', function() {
|
11
11
|
this.input('audio_file_id', pageflow.FileInputView, {collection: pageflow.audioFiles});
|
12
12
|
this.input('background_image_id', pageflow.FileInputView, {collection: pageflow.imageFiles});
|
13
|
+
this.input('thumbnail_image_id', pageflow.FileInputView, {
|
14
|
+
collection: pageflow.imageFiles,
|
15
|
+
imagePositioning: false
|
16
|
+
});
|
13
17
|
});
|
14
18
|
|
15
19
|
this.tab('options', function() {
|
@@ -0,0 +1,23 @@
|
|
1
|
+
pageflow.ConfigurationEditorView.register('audio_loop', {
|
2
|
+
configure: function() {
|
3
|
+
this.tab('general', function() {
|
4
|
+
this.group('general');
|
5
|
+
|
6
|
+
this.input('additional_title', pageflow.TextInputView);
|
7
|
+
this.input('additional_description', pageflow.TextAreaInputView, {size: 'short'});
|
8
|
+
});
|
9
|
+
|
10
|
+
this.tab('files', function() {
|
11
|
+
this.input('audio_file_id', pageflow.FileInputView, {collection: pageflow.audioFiles});
|
12
|
+
this.input('background_image_id', pageflow.FileInputView, {collection: pageflow.imageFiles});
|
13
|
+
this.input('thumbnail_image_id', pageflow.FileInputView, {
|
14
|
+
collection: pageflow.imageFiles,
|
15
|
+
imagePositioning: false
|
16
|
+
});
|
17
|
+
});
|
18
|
+
|
19
|
+
this.tab('options', function() {
|
20
|
+
this.group('options');
|
21
|
+
});
|
22
|
+
}
|
23
|
+
});
|
@@ -6,6 +6,10 @@ pageflow.ConfigurationEditorView.register('background_image', {
|
|
6
6
|
|
7
7
|
this.tab('files', function() {
|
8
8
|
this.input('background_image_id', pageflow.FileInputView, {collection: pageflow.imageFiles});
|
9
|
+
this.input('thumbnail_image_id', pageflow.FileInputView, {
|
10
|
+
collection: pageflow.imageFiles,
|
11
|
+
imagePositioning: false
|
12
|
+
});
|
9
13
|
});
|
10
14
|
|
11
15
|
this.tab('options', function() {
|
@@ -10,6 +10,10 @@ pageflow.ConfigurationEditorView.register('background_video', {
|
|
10
10
|
collection: pageflow.imageFiles,
|
11
11
|
imagePositioning: false
|
12
12
|
});
|
13
|
+
this.input('thumbnail_image_id', pageflow.FileInputView, {
|
14
|
+
collection: pageflow.imageFiles,
|
15
|
+
imagePositioning: false
|
16
|
+
});
|
13
17
|
});
|
14
18
|
|
15
19
|
this.tab('options', function() {
|
@@ -6,6 +6,10 @@ pageflow.ConfigurationEditorView.register('internal_links', {
|
|
6
6
|
|
7
7
|
this.tab('files', function() {
|
8
8
|
this.input('background_image_id', pageflow.FileInputView, {collection: pageflow.imageFiles});
|
9
|
+
this.input('thumbnail_image_id', pageflow.FileInputView, {
|
10
|
+
collection: pageflow.imageFiles,
|
11
|
+
imagePositioning: false
|
12
|
+
});
|
9
13
|
});
|
10
14
|
|
11
15
|
this.tab('links', function() {
|
@@ -13,6 +13,10 @@ pageflow.ConfigurationEditorView.register('video', {
|
|
13
13
|
collection: pageflow.imageFiles,
|
14
14
|
imagePositioning: false
|
15
15
|
});
|
16
|
+
this.input('thumbnail_image_id', pageflow.FileInputView, {
|
17
|
+
collection: pageflow.imageFiles,
|
18
|
+
imagePositioning: false
|
19
|
+
});
|
16
20
|
});
|
17
21
|
|
18
22
|
this.tab('options', function() {
|
@@ -108,7 +108,7 @@ pageflow.PageLinkEmbeddedView = Backbone.Marionette.ItemView.extend({
|
|
108
108
|
updateTitle: function() {
|
109
109
|
var linkedPage = this.linkedPage();
|
110
110
|
|
111
|
-
this.ui.title.
|
111
|
+
this.ui.title.html(linkedPage ? linkedPage.configuration.get('description') : '');
|
112
112
|
},
|
113
113
|
|
114
114
|
updateThumbnailView: function() {
|
@@ -92,7 +92,14 @@ pageflow.FileItemView = Backbone.Marionette.ItemView.extend({
|
|
92
92
|
},
|
93
93
|
|
94
94
|
metaDataViews: function() {
|
95
|
-
|
95
|
+
var model = this.model;
|
96
|
+
|
97
|
+
return _.map(this.options.metaDataAttributes, function(attribute) {
|
98
|
+
return new pageflow.FileMetaDataItemView({
|
99
|
+
model: model,
|
100
|
+
attribute: attribute
|
101
|
+
});
|
102
|
+
});
|
96
103
|
},
|
97
104
|
|
98
105
|
toggleExpanded: function() {
|
@@ -31,11 +31,18 @@ pageflow.FileStageItemView = Backbone.Marionette.ItemView.extend({
|
|
31
31
|
|
32
32
|
this.ui.errorMessage
|
33
33
|
.toggle(!!this.model.get('error_message'))
|
34
|
-
.text(this.
|
34
|
+
.text(this._translatedErrorMessage());
|
35
35
|
|
36
36
|
this.$el.toggleClass('active', this.model.get('active'));
|
37
37
|
this.$el.toggleClass('finished', this.model.get('finished'));
|
38
38
|
this.$el.toggleClass('failed', this.model.get('failed'));
|
39
39
|
this.$el.toggleClass('action_required', this.model.get('action_required'));
|
40
|
+
},
|
41
|
+
|
42
|
+
_translatedErrorMessage: function() {
|
43
|
+
return this.model.get('error_message') &&
|
44
|
+
I18n.t(this.model.get('error_message'), {
|
45
|
+
defaultValue: this.model.get('error_message')
|
46
|
+
});
|
40
47
|
}
|
41
48
|
});
|