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
@@ -1,10 +1,12 @@
|
|
1
1
|
<div class="box">
|
2
2
|
<h2>Dateien Wiederverwenden</h2>
|
3
3
|
|
4
|
-
<
|
5
|
-
|
4
|
+
<div class="panels">
|
5
|
+
<div class="entries_panel">
|
6
|
+
</div>
|
6
7
|
|
7
|
-
|
8
|
+
<div class="files_panel">
|
9
|
+
</div>
|
8
10
|
</div>
|
9
11
|
|
10
12
|
<div class="footer">
|
@@ -1,4 +1,9 @@
|
|
1
1
|
<li class="uploading"><span class="count">0</span> Dateien werden gerade hochgeladen.</li>
|
2
2
|
<li class="failed"><span class="count">0</span> Datensätze konnten nicht gespeichert werden. <a class="retry">Erneut versuchen</a></li>
|
3
3
|
<li class="saving">Änderungen werden gespeichert...</li>
|
4
|
-
<li class="saved">Alle Änderungen wurden gespeichert.</li>
|
4
|
+
<li class="saved">Alle Änderungen wurden gespeichert.</li>
|
5
|
+
|
6
|
+
<li class="confirmable_files">
|
7
|
+
<span class="count">0</span> Dateien müssen für die Transcodierung freigeben werden.
|
8
|
+
<a href="#/confirmable_files" class="display_confirmable_files">Anzeigen</a>
|
9
|
+
</li>
|
@@ -0,0 +1,76 @@
|
|
1
|
+
pageflow.ConfirmEncodingView = Backbone.Marionette.ItemView.extend({
|
2
|
+
template: 'templates/confirm_encoding',
|
3
|
+
|
4
|
+
ui: {
|
5
|
+
blankSlate: '.blank_slate',
|
6
|
+
videoFilesPanel: '.video_files_panel',
|
7
|
+
audioFilesPanel: '.audio_files_panel',
|
8
|
+
|
9
|
+
summary: '.summary',
|
10
|
+
confirmButton: 'button'
|
11
|
+
},
|
12
|
+
|
13
|
+
events: {
|
14
|
+
'click button': function() {
|
15
|
+
this.model.save();
|
16
|
+
}
|
17
|
+
},
|
18
|
+
|
19
|
+
initialize: function() {
|
20
|
+
this.confirmableVideoFiles = pageflow.videoFiles.confirmable();
|
21
|
+
this.confirmableAudioFiles = pageflow.audioFiles.confirmable();
|
22
|
+
},
|
23
|
+
|
24
|
+
onRender: function() {
|
25
|
+
this.listenTo(this.model, 'change:empty change:exceeding change:checking', this.updateSummary);
|
26
|
+
|
27
|
+
this.listenTo(this.confirmableAudioFiles, 'add remove', this.update);
|
28
|
+
this.listenTo(this.confirmableVideoFiles, 'add remove', this.update);
|
29
|
+
|
30
|
+
this.ui.videoFilesPanel.append(this.subview(new pageflow.CollectionView({
|
31
|
+
tagName: 'ul',
|
32
|
+
className: 'confirmable_files',
|
33
|
+
collection: this.confirmableVideoFiles,
|
34
|
+
itemViewConstructor: pageflow.ConfirmableFileItemView,
|
35
|
+
itemViewOptions: {
|
36
|
+
selectedFiles: this.model.videoFiles
|
37
|
+
}
|
38
|
+
})).el);
|
39
|
+
|
40
|
+
this.ui.audioFilesPanel.append(this.subview(new pageflow.CollectionView({
|
41
|
+
tagName: 'ul',
|
42
|
+
className: 'confirmable_files',
|
43
|
+
collection: this.confirmableAudioFiles,
|
44
|
+
itemViewConstructor: pageflow.ConfirmableFileItemView,
|
45
|
+
itemViewOptions: {
|
46
|
+
selectedFiles: this.model.audioFiles
|
47
|
+
}
|
48
|
+
})).el);
|
49
|
+
|
50
|
+
this.update();
|
51
|
+
},
|
52
|
+
|
53
|
+
update: function() {
|
54
|
+
this.ui.blankSlate.toggle(!this.confirmableVideoFiles.length && !this.confirmableAudioFiles.length);
|
55
|
+
this.ui.videoFilesPanel.toggle(!!this.confirmableVideoFiles.length);
|
56
|
+
this.ui.audioFilesPanel.toggle(!!this.confirmableAudioFiles.length);
|
57
|
+
},
|
58
|
+
|
59
|
+
updateSummary: function(enabled) {
|
60
|
+
this.ui.summary.html(this.model.get('summary_html'));
|
61
|
+
this.ui.confirmButton.toggleClass('checking', !!this.model.get('checking'));
|
62
|
+
|
63
|
+
if (this.model.get('empty') || this.model.get('exceeding') || this.model.get('checking')) {
|
64
|
+
this.ui.confirmButton.attr('disabled', true);
|
65
|
+
}
|
66
|
+
else {
|
67
|
+
this.ui.confirmButton.removeAttr('disabled');
|
68
|
+
}
|
69
|
+
}
|
70
|
+
});
|
71
|
+
|
72
|
+
pageflow.ConfirmEncodingView.create = function(options) {
|
73
|
+
return new pageflow.BackButtonDecoratorView({
|
74
|
+
view: new pageflow.ConfirmEncodingView(options)
|
75
|
+
});
|
76
|
+
};
|
@@ -0,0 +1,42 @@
|
|
1
|
+
pageflow.ConfirmableFileItemView = Backbone.Marionette.ItemView.extend({
|
2
|
+
tagName: 'li',
|
3
|
+
template: 'templates/confirmable_file_item',
|
4
|
+
|
5
|
+
ui: {
|
6
|
+
fileName: '.file_name',
|
7
|
+
duration: '.duration',
|
8
|
+
|
9
|
+
label: 'label',
|
10
|
+
checkBox: 'input',
|
11
|
+
removeButton: '.remove',
|
12
|
+
},
|
13
|
+
|
14
|
+
events: {
|
15
|
+
'click .remove': 'destroy',
|
16
|
+
|
17
|
+
'change input': 'updateSelection'
|
18
|
+
},
|
19
|
+
|
20
|
+
onRender: function() {
|
21
|
+
this.ui.label.attr('for', this.cid);
|
22
|
+
this.ui.checkBox.attr('id', this.cid);
|
23
|
+
|
24
|
+
this.ui.fileName.text(this.model.get('file_name') || '(Unbekannt)');
|
25
|
+
this.ui.duration.text(this.model.get('duration') || '-');
|
26
|
+
},
|
27
|
+
|
28
|
+
destroy: function() {
|
29
|
+
if (confirm("Datei wirklich wirklich löschen?")) {
|
30
|
+
this.model.destroyUsage();
|
31
|
+
}
|
32
|
+
},
|
33
|
+
|
34
|
+
updateSelection: function() {
|
35
|
+
if (this.ui.checkBox.is(':checked')) {
|
36
|
+
this.options.selectedFiles.add(this.model);
|
37
|
+
}
|
38
|
+
else {
|
39
|
+
this.options.selectedFiles.remove(this.model);
|
40
|
+
}
|
41
|
+
},
|
42
|
+
});
|
@@ -0,0 +1,49 @@
|
|
1
|
+
pageflow.EntryPublicationQuotaDecoratorView = Backbone.Marionette.Layout.extend({
|
2
|
+
template: 'templates/entry_publication_quota_decorator',
|
3
|
+
className: 'quota_decorator',
|
4
|
+
|
5
|
+
regions: {
|
6
|
+
outlet: '.outlet'
|
7
|
+
},
|
8
|
+
|
9
|
+
ui: {
|
10
|
+
state: '.quota_state',
|
11
|
+
exhaustedMessage: '.exhausted_message'
|
12
|
+
},
|
13
|
+
|
14
|
+
modelEvents: {
|
15
|
+
'change:exceeding change:checking change:quota': 'update'
|
16
|
+
},
|
17
|
+
|
18
|
+
onRender: function() {
|
19
|
+
this.model.check();
|
20
|
+
},
|
21
|
+
|
22
|
+
update: function() {
|
23
|
+
var view = this;
|
24
|
+
|
25
|
+
if (this.model.get('checking')) {
|
26
|
+
view.ui.state.text(I18n.t('editor.quotas.loading'));
|
27
|
+
view.ui.exhaustedMessage.hide().html('');
|
28
|
+
view.outlet.close();
|
29
|
+
}
|
30
|
+
else {
|
31
|
+
if (view.model.get('exceeding')) {
|
32
|
+
view.ui.state.hide();
|
33
|
+
view.ui.exhaustedMessage.show().html(view.model.get('exhausted_html'));
|
34
|
+
view.outlet.close();
|
35
|
+
}
|
36
|
+
else {
|
37
|
+
if (view.model.quota().get('state_description')) {
|
38
|
+
view.ui.state.text(view.model.quota().get('state_description'));
|
39
|
+
view.ui.state.show();
|
40
|
+
}
|
41
|
+
else {
|
42
|
+
view.ui.state.hide();
|
43
|
+
}
|
44
|
+
|
45
|
+
view.outlet.show(view.options.view);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
});
|
@@ -13,7 +13,7 @@ pageflow.FileMetaDataItemView = Backbone.Marionette.ItemView.extend({
|
|
13
13
|
},
|
14
14
|
|
15
15
|
update: function() {
|
16
|
-
this.ui.label.text(I18n.t('activerecord.attributes.' + this.model.
|
16
|
+
this.ui.label.text(I18n.t('activerecord.attributes.' + this.model.i18nKey + '.' + this.options.attribute));
|
17
17
|
this.ui.value.text(this.model.get(this.options.attribute));
|
18
18
|
}
|
19
19
|
});
|
@@ -36,5 +36,6 @@ pageflow.FileStageItemView = Backbone.Marionette.ItemView.extend({
|
|
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
|
+
this.$el.toggleClass('action_required', this.model.get('action_required'));
|
39
40
|
}
|
40
41
|
});
|
@@ -20,6 +20,7 @@ pageflow.FileThumbnailView = Backbone.Marionette.ItemView.extend({
|
|
20
20
|
|
21
21
|
if (stage) {
|
22
22
|
this.setStageClassName(stage.get('name'));
|
23
|
+
this.ui.pictogram.toggleClass('action_required', stage.get('action_required'));
|
23
24
|
this.ui.pictogram.toggleClass('failed', stage.get('failed'));
|
24
25
|
}
|
25
26
|
else {
|
@@ -27,7 +28,7 @@ pageflow.FileThumbnailView = Backbone.Marionette.ItemView.extend({
|
|
27
28
|
}
|
28
29
|
|
29
30
|
this.ui.pictogram.addClass(this.model.thumbnailPictogram);
|
30
|
-
this.$el.css('background-image', 'url(' + this._imageUrl() + ')');
|
31
|
+
this.$el.css('background-image', this._imageUrl() ? 'url(' + this._imageUrl() + ')' : '');
|
31
32
|
this.$el
|
32
33
|
.removeClass('empty')
|
33
34
|
.toggleClass('always_picogram', !!this.model.thumbnailPictogram)
|
@@ -111,17 +111,17 @@ pageflow.FilesExplorerView = Backbone.Marionette.ItemView.extend({
|
|
111
111
|
file;
|
112
112
|
|
113
113
|
if ((file = sel.get('image_file'))) {
|
114
|
-
file.set('typeName', 'ImageFile');
|
114
|
+
file.set('typeName', 'Pageflow::ImageFile');
|
115
115
|
return file;
|
116
116
|
}
|
117
117
|
|
118
118
|
if ((file = sel.get('audio_file'))) {
|
119
|
-
file.set('typeName', 'AudioFile');
|
119
|
+
file.set('typeName', 'Pageflow::AudioFile');
|
120
120
|
return file;
|
121
121
|
}
|
122
122
|
|
123
123
|
if ((file = sel.get('video_file'))) {
|
124
|
-
file.set('typeName', 'VideoFile');
|
124
|
+
file.set('typeName', 'Pageflow::VideoFile');
|
125
125
|
return file;
|
126
126
|
}
|
127
127
|
}
|
@@ -16,10 +16,10 @@ pageflow.inputView = {
|
|
16
16
|
},
|
17
17
|
|
18
18
|
localizedAttributeName: function() {
|
19
|
-
return I18n.t('activerecord.attributes.' + this.model.
|
19
|
+
return I18n.t('activerecord.attributes.' + this.model.i18nKey + '.' + this.options.propertyName);
|
20
20
|
},
|
21
21
|
|
22
22
|
inlineHelpText: function() {
|
23
|
-
return I18n.t('editor.inline_help.' + this.model.
|
23
|
+
return I18n.t('editor.inline_help.' + this.model.i18nKey + '.' + this.options.propertyName, {defaultValue: ''});
|
24
24
|
}
|
25
25
|
};
|
@@ -26,7 +26,7 @@ pageflow.SelectInputView = Backbone.Marionette.ItemView.extend({
|
|
26
26
|
if (!this.options.texts) {
|
27
27
|
if (!this.options.translationKeys) {
|
28
28
|
this.options.translationKeys = _.map(this.options.values, function(value) {
|
29
|
-
return 'activerecord.values.' + this.model.
|
29
|
+
return 'activerecord.values.' + this.model.i18nKey + '.' + this.options.propertyName + '.' + value;
|
30
30
|
}, this);
|
31
31
|
}
|
32
32
|
|
@@ -5,7 +5,8 @@ pageflow.NotificationsView = Backbone.Marionette.ItemView.extend({
|
|
5
5
|
|
6
6
|
ui: {
|
7
7
|
failedCount: '.failed .count',
|
8
|
-
uploadingCount: '.uploading .count'
|
8
|
+
uploadingCount: '.uploading .count',
|
9
|
+
confirmableFilesCount: '.confirmable_files .count',
|
9
10
|
},
|
10
11
|
|
11
12
|
events: {
|
@@ -16,12 +17,15 @@ pageflow.NotificationsView = Backbone.Marionette.ItemView.extend({
|
|
16
17
|
|
17
18
|
onRender: function() {
|
18
19
|
this.listenTo(pageflow.entry, 'change:uploading_files_count', this.notifyUploadCount);
|
20
|
+
this.listenTo(pageflow.entry, 'change:confirmable_files_count', this.notifyConfirmableFilesCount);
|
21
|
+
|
19
22
|
this.listenTo(pageflow.failedRecords, 'add', this.update);
|
20
23
|
this.listenTo(pageflow.failedRecords, 'remove', this.update);
|
21
24
|
this.listenTo(pageflow.savingRecords, 'add', this.update);
|
22
25
|
this.listenTo(pageflow.savingRecords, 'remove', this.update);
|
23
26
|
|
24
27
|
this.update();
|
28
|
+
this.notifyConfirmableFilesCount();
|
25
29
|
},
|
26
30
|
|
27
31
|
update: function() {
|
@@ -33,5 +37,12 @@ pageflow.NotificationsView = Backbone.Marionette.ItemView.extend({
|
|
33
37
|
notifyUploadCount: function(model, uploadCount) {
|
34
38
|
this.$el.toggleClass('uploading', uploadCount > 0);
|
35
39
|
this.ui.uploadingCount.text(uploadCount);
|
40
|
+
},
|
41
|
+
|
42
|
+
notifyConfirmableFilesCount: function() {
|
43
|
+
var confirmableFilesCount = pageflow.entry.get('confirmable_files_count');
|
44
|
+
|
45
|
+
this.$el.toggleClass('has_confirmable_files', confirmableFilesCount > 0);
|
46
|
+
this.ui.confirmableFilesCount.text(confirmableFilesCount);
|
36
47
|
}
|
37
48
|
});
|
@@ -96,12 +96,13 @@ pageflow.PublishEntryView = Backbone.Marionette.ItemView.extend({
|
|
96
96
|
|
97
97
|
var that = this;
|
98
98
|
|
99
|
-
this.
|
100
|
-
.done()
|
99
|
+
this.options.entryPublication.publish({published_until: publishedUntil})
|
101
100
|
.fail(function() {
|
102
101
|
alert('Beim Veröffentlichen ist ein Fehler aufgetreten');
|
103
102
|
})
|
104
103
|
.always(function() {
|
104
|
+
if (that.isClosed) { return; }
|
105
|
+
|
105
106
|
that.$el.removeClass('publishing');
|
106
107
|
that.$('input').removeAttr('disabled');
|
107
108
|
that.enableSave();
|
@@ -186,8 +187,8 @@ pageflow.PublishEntryView = Backbone.Marionette.ItemView.extend({
|
|
186
187
|
|
187
188
|
pageflow.PublishEntryView.create = function(options) {
|
188
189
|
return new pageflow.BackButtonDecoratorView({
|
189
|
-
view: new pageflow.
|
190
|
-
model:
|
190
|
+
view: new pageflow.EntryPublicationQuotaDecoratorView({
|
191
|
+
model: options.entryPublication,
|
191
192
|
view: new pageflow.PublishEntryView(options)
|
192
193
|
})
|
193
194
|
});
|
@@ -157,7 +157,6 @@ pageflow.pageType.register('video', _.extend({
|
|
157
157
|
|
158
158
|
if (pageflow.features.has('phone platform')) {
|
159
159
|
// alternate poster image handling
|
160
|
-
video.attr("style", "visibility:hidden");
|
161
160
|
$("<div class='vjs-poster-mobile' style='" +
|
162
161
|
poster.attr('style') +
|
163
162
|
"display:block; background-size: coverr;'></div>").appendTo(pageElement.find(".videoWrapper"));
|
@@ -22,7 +22,7 @@ jQuery.widget('pageflow.playerControls', {
|
|
22
22
|
player.on('timeupdate', function (position, duration) {
|
23
23
|
var percent = duration > 0 ? (player.position / player.duration) * 100 : 0;
|
24
24
|
if(!isNaN(position)) {
|
25
|
-
if(
|
25
|
+
if(durationDisplay.html().length === 5 && durationDisplay.html().charAt(0) === "0") {
|
26
26
|
$(currentTimeDisplay).html(player.formatTime(position).substr(1));
|
27
27
|
$(durationDisplay).html(player.formatTime(duration).substr(1));
|
28
28
|
}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
ul.confirmable_files {
|
2
|
+
margin-bottom: 15px;
|
3
|
+
|
4
|
+
li {
|
5
|
+
background-color: #eee;
|
6
|
+
margin-bottom: 2px;
|
7
|
+
position: relative;
|
8
|
+
padding: 10px 10px 0 30px;
|
9
|
+
white-space: nowrap;
|
10
|
+
overflow: hidden;
|
11
|
+
height: 23px;
|
12
|
+
}
|
13
|
+
|
14
|
+
input[type=checkbox] {
|
15
|
+
display: block;
|
16
|
+
position: absolute;
|
17
|
+
top: 10px;
|
18
|
+
left: 10px;
|
19
|
+
width: auto;
|
20
|
+
height: auto;
|
21
|
+
}
|
22
|
+
|
23
|
+
.file_name {
|
24
|
+
position: absolute;
|
25
|
+
left: 30px;
|
26
|
+
top: 9px;
|
27
|
+
right: 100px;
|
28
|
+
overflow: hidden;
|
29
|
+
text-overflow: ellipsis;
|
30
|
+
|
31
|
+
font-weight: normal;
|
32
|
+
font-size: 13px;
|
33
|
+
}
|
34
|
+
|
35
|
+
.duration {
|
36
|
+
position: absolute;
|
37
|
+
right: 50px;
|
38
|
+
top: 9px;
|
39
|
+
}
|
40
|
+
|
41
|
+
.actions {
|
42
|
+
position: absolute;
|
43
|
+
right: 10px;
|
44
|
+
top: 3px;
|
45
|
+
text-align: right;
|
46
|
+
|
47
|
+
a {
|
48
|
+
float: left;
|
49
|
+
margin-left: 5px;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
a.remove {
|
54
|
+
@include icon-only-button(#aaa);
|
55
|
+
@include trash-icon;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
button.confirm_encoding {
|
60
|
+
@include icon-button;
|
61
|
+
@include check-icon;
|
62
|
+
|
63
|
+
&.checking {
|
64
|
+
@include arrows-ccw-icon;
|
65
|
+
@include background-icon-animation(blink);
|
66
|
+
}
|
67
|
+
}
|