pageflow 0.6.0 → 0.7.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/entry.rb +8 -8
- data/admins/pageflow/revisions.rb +1 -1
- data/admins/pageflow/user.rb +24 -20
- data/app/assets/images/pageflow/scroll_down_indicator.png +0 -0
- data/app/assets/images/pageflow/scroll_down_indicator_invert.png +0 -0
- data/app/assets/images/pageflow/touch_indicator.png +0 -0
- data/app/assets/images/pageflow/touch_indicator_invert.png +0 -0
- data/app/assets/javascripts/pageflow/audio_player.js +8 -1
- data/app/assets/javascripts/pageflow/audio_player/media_events.js +27 -0
- data/app/assets/javascripts/pageflow/base.js +2 -1
- data/app/assets/javascripts/pageflow/editor/api.js +15 -0
- data/app/assets/javascripts/pageflow/editor/base.js +17 -1
- data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +9 -1
- data/app/assets/javascripts/pageflow/editor/initializers/setup_help_entries.js +5 -0
- data/app/assets/javascripts/pageflow/editor/models/edit_lock_container.js +30 -9
- data/app/assets/javascripts/pageflow/editor/models/entry.js +8 -0
- data/app/assets/javascripts/pageflow/editor/models/file_stage.js +1 -1
- data/app/assets/javascripts/pageflow/editor/models/mixins/transient_references.js +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/back_button_decorator.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/background_positioning.jst.ejs +5 -5
- data/app/assets/javascripts/pageflow/editor/templates/blank_entry.jst.ejs +6 -6
- data/app/assets/javascripts/pageflow/editor/templates/chapter_item.jst.ejs +2 -2
- data/app/assets/javascripts/pageflow/editor/templates/confirm_encoding.jst.ejs +7 -6
- data/app/assets/javascripts/pageflow/editor/templates/confirmable_file_item.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/edit_chapter.jst.ejs +4 -4
- data/app/assets/javascripts/pageflow/editor/templates/edit_entry.jst.ejs +7 -7
- data/app/assets/javascripts/pageflow/editor/templates/edit_meta_data.jst.ejs +3 -3
- data/app/assets/javascripts/pageflow/editor/templates/edit_page.jst.ejs +4 -4
- data/app/assets/javascripts/pageflow/editor/templates/embedded/page_link.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/file_item.jst.ejs +8 -8
- data/app/assets/javascripts/pageflow/editor/templates/files.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/files_blank_slate.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/files_explorer.jst.ejs +3 -3
- data/app/assets/javascripts/pageflow/editor/templates/files_explorer_blank_slate.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/files_gallery_blank_slate.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/help.jst.ejs +9 -0
- data/app/assets/javascripts/pageflow/editor/templates/help_button.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/loading.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/locked.jst.ejs +4 -4
- data/app/assets/javascripts/pageflow/editor/templates/notifications.jst.ejs +6 -6
- data/app/assets/javascripts/pageflow/editor/templates/other_entries_blank_slate.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/page_item.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/publish_entry.jst.ejs +13 -13
- data/app/assets/javascripts/pageflow/editor/templates/select_button.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/views/background_positioning_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/chapter_item_view.js +2 -2
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio_loop.js +0 -3
- data/app/assets/javascripts/pageflow/editor/views/edit_chapter_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/edit_meta_data_view.js +7 -0
- data/app/assets/javascripts/pageflow/editor/views/edit_page_view.js +11 -2
- data/app/assets/javascripts/pageflow/editor/views/editor_view.js +4 -4
- data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +4 -1
- data/app/assets/javascripts/pageflow/editor/views/entry_publication_quota_decorator_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/files_explorer_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/files_view.js +4 -4
- data/app/assets/javascripts/pageflow/editor/views/help_view.js +37 -24
- data/app/assets/javascripts/pageflow/editor/views/locked_view.js +4 -2
- data/app/assets/javascripts/pageflow/editor/views/page_item_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/page_preview_view.js +7 -0
- data/app/assets/javascripts/pageflow/editor/views/publish_entry_view.js +8 -1
- data/app/assets/javascripts/pageflow/links.js +42 -0
- data/app/assets/javascripts/pageflow/page_types/audio.js +3 -1
- data/app/assets/javascripts/pageflow/page_types/video.js +1 -0
- data/app/assets/javascripts/pageflow/ready.js +1 -20
- data/app/assets/javascripts/pageflow/ui.js +2 -2
- data/app/assets/javascripts/pageflow/ui/templates/inputs/file_input.jst.ejs +3 -3
- data/app/assets/javascripts/pageflow/ui/templates/inputs/page_reference.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/ui/templates/inputs/text_area_input.jst.ejs +7 -7
- data/app/assets/javascripts/pageflow/ui/views/collection_view.js +10 -1
- data/app/assets/javascripts/pageflow/ui/views/configuration_editor_view.js +1 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/check_box_input_view.js +5 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/extended_select_input_view.js +106 -0
- data/app/assets/javascripts/pageflow/ui/views/inputs/file_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/proxy_url_input_view.js +2 -2
- data/app/assets/javascripts/pageflow/ui/views/inputs/select_input_view.js +50 -14
- data/app/assets/javascripts/pageflow/ui/views/inputs/text_area_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/text_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/url_input_view.js +4 -4
- data/app/assets/javascripts/pageflow/ui/views/mixins/input_view.js +1 -1
- data/app/assets/javascripts/pageflow/video_player.js +5 -0
- data/app/assets/javascripts/pageflow/video_player/media_events.js +27 -0
- data/app/assets/stylesheets/pageflow/editor/base.css.scss +4 -0
- data/app/assets/stylesheets/pageflow/editor/help.css.scss +91 -45
- data/app/assets/stylesheets/pageflow/entries.css.scss +18 -5
- data/app/assets/stylesheets/pageflow/jquery_ui.css.scss +3 -2
- data/app/assets/stylesheets/pageflow/page.css.scss +23 -21
- data/app/assets/stylesheets/pageflow/subshare.css.scss +1 -1
- data/app/assets/stylesheets/pageflow/text_variants.css.scss +11 -2
- data/app/assets/stylesheets/pageflow/themes/default.css.scss +1 -41
- data/app/assets/stylesheets/pageflow/themes/default/base.css.scss +21 -0
- data/app/assets/stylesheets/pageflow/themes/default/overview.css.scss +16 -1
- data/app/assets/stylesheets/pageflow/themes/default/page.css.scss +5 -0
- data/app/assets/stylesheets/pageflow/themes/default/variables.css.scss +20 -0
- data/app/assets/stylesheets/pageflow/ui.css.scss +2 -0
- data/app/assets/stylesheets/pageflow/ui/input/extended_select_input.css.scss +105 -0
- data/app/controllers/concerns/pageflow/edit_locking.rb +2 -2
- data/app/controllers/concerns/pageflow/quota_verification.rb +1 -1
- data/app/controllers/pageflow/application_controller.rb +6 -2
- data/app/controllers/pageflow/editor/entries_controller.rb +5 -0
- data/app/controllers/pageflow/entries_controller.rb +3 -1
- data/app/controllers/pageflow/revisions_controller.rb +2 -0
- data/app/helpers/pageflow/admin/locales_helper.rb +11 -0
- data/app/helpers/pageflow/admin/users_helper.rb +1 -1
- data/app/helpers/pageflow/entries_helper.rb +8 -2
- data/app/helpers/pageflow/file_thumbnails_helper.rb +1 -1
- data/app/helpers/pageflow/files_helper.rb +13 -0
- data/app/helpers/pageflow/help_entries_helper.rb +19 -0
- data/app/helpers/pageflow/render_json_helper.rb +11 -0
- data/app/mailers/pageflow/user_mailer.rb +4 -1
- data/app/models/pageflow/draft_entry.rb +1 -0
- data/app/models/pageflow/positioned_file.rb +45 -0
- data/app/models/pageflow/published_entry.rb +12 -1
- data/app/models/pageflow/revision.rb +4 -0
- data/app/models/pageflow/theming.rb +1 -1
- data/app/models/pageflow/thumbnail_file_resolver.rb +20 -12
- data/app/views/admin/entries/_attributes_table.html.arb +3 -3
- data/app/views/admin/entries/_links.html.arb +3 -3
- data/app/views/admin/revisions/_form.html.erb +1 -1
- data/app/views/admin/users/_form.html.erb +8 -2
- data/app/views/admin/users/delete_me.html.erb +3 -3
- data/app/views/admin/users/me.html.erb +11 -3
- data/app/views/components/pageflow/admin/entries_tab.rb +1 -1
- data/app/views/components/pageflow/admin/grouped_folder_list.rb +7 -7
- data/app/views/components/pageflow/admin/members_tab.rb +4 -4
- data/app/views/components/pageflow/admin/revisions_tab.rb +8 -8
- data/app/views/components/pageflow/admin/users_tab.rb +1 -1
- data/app/views/layouts/pageflow/application.html.erb +2 -2
- data/app/views/pageflow/config/_editor_seeds.json.jbuilder +1 -1
- data/app/views/pageflow/devise/mailer/reset_password_instructions.html.erb +6 -4
- data/app/views/pageflow/editor/entries/_entry.json.jbuilder +1 -1
- data/app/views/pageflow/editor/entries/_help_entries_seed.html.erb +6 -0
- data/app/views/pageflow/editor/entries/seed.json.erb +14 -0
- data/app/views/pageflow/editor/entry_publications/_published_message.html.erb +1 -0
- data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +3 -0
- data/app/views/pageflow/entries/_entry.html.erb +3 -3
- data/app/views/pageflow/entries/_ie8_hint.html.erb +2 -13
- data/app/views/pageflow/entries/_mobile_navigation.html.erb +6 -6
- data/app/views/pageflow/entries/_multimedia_alert.html.erb +5 -9
- data/app/views/pageflow/entries/_non_js_hint.html.erb +1 -1
- data/app/views/pageflow/entries/_skip_links.html.erb +3 -3
- data/app/views/pageflow/entries/edit.html.erb +5 -23
- data/app/views/pageflow/entries/navigation/_bar_bottom.html.erb +5 -5
- data/app/views/pageflow/entries/navigation/_bar_top.html.erb +15 -15
- data/app/views/pageflow/entries/navigation/_home_button.html.erb +2 -2
- data/app/views/pageflow/entries/overview/_chapter.html.erb +1 -1
- data/app/views/pageflow/entries/overview/_entry.html.erb +6 -4
- data/app/views/pageflow/entries/show.html.erb +2 -2
- data/app/views/pageflow/help_entries/_menu.html.erb +5 -0
- data/app/views/pageflow/help_entries/_menu_item.html.erb +7 -0
- data/app/views/pageflow/help_entries/_section.html.erb +3 -0
- data/app/views/pageflow/page_types/_page_type.json.jbuilder +1 -1
- data/app/views/pageflow/pages/_page.html.erb +1 -1
- data/app/views/pageflow/pages/_video_tag.html.erb +1 -1
- data/app/views/pageflow/pages/templates/_audio.html.erb +1 -1
- data/app/views/pageflow/pages/templates/_background_video.html.erb +1 -1
- data/app/views/pageflow/pages/templates/_video.html.erb +1 -1
- data/app/views/pageflow/social_share/_entry_meta_tags.html.erb +3 -0
- data/app/views/pageflow/social_share/_image_tags.html.erb +4 -0
- data/app/views/pageflow/social_share/_page_meta_tags.html.erb +3 -0
- data/app/views/pageflow/user_mailer/invitation.html.erb +4 -6
- data/app/views/pageflow/user_mailer/invitation.text.erb +5 -6
- data/config/initializers/help_entries.rb +17 -0
- data/config/locales/de.yml +1866 -2
- data/config/locales/en.yml +1800 -1
- data/config/routes.rb +2 -0
- data/db/migrate/20141128150305_add_locale_to_users.rb +5 -0
- data/db/migrate/20141208161030_add_locale_to_revisions.rb +5 -0
- data/lib/active_admin/patches/views/pages/base.rb +8 -0
- data/lib/generators/pageflow/{active_admin_menu/active_admin_menu_generator.rb → active_admin_initializer/active_admin_initializer_generator.rb} +3 -1
- data/lib/generators/pageflow/install/install_generator.rb +1 -1
- data/lib/pageflow.rb +6 -0
- data/lib/pageflow/built_in_page_type.rb +8 -0
- data/lib/pageflow/configuration.rb +29 -0
- data/lib/pageflow/engine.rb +8 -5
- data/lib/pageflow/help_entries.rb +55 -0
- data/lib/pageflow/help_entry.rb +19 -0
- data/lib/pageflow/page_type.rb +23 -33
- data/lib/pageflow/plugin.rb +13 -0
- data/lib/pageflow/user_mixin.rb +4 -0
- data/lib/pageflow/version.rb +1 -1
- data/vendor/assets/javascripts/jquery.ui.all.js +4 -0
- metadata +52 -39
- data/app/assets/javascripts/pageflow/editor/templates/help.jst.ejs.erb +0 -160
- data/config/locales/activeadmin.de.yml +0 -114
- data/config/locales/activerecord.de.yml +0 -182
- data/config/locales/admin/accounts.yml +0 -5
- data/config/locales/admin/entries.yml +0 -42
- data/config/locales/admin/folders.de.yml +0 -7
- data/config/locales/admin/revisions.yml +0 -4
- data/config/locales/admin/tabs.de.yml +0 -8
- data/config/locales/admin/themings.yml +0 -7
- data/config/locales/admin/users.yml +0 -26
- data/config/locales/admin/users/delete_me.de.yml +0 -7
- data/config/locales/admin/users/me.de.yml +0 -9
- data/config/locales/devise.de.yml +0 -72
- data/config/locales/devise.en.yml +0 -59
- data/config/locales/edit_locks.de.yml +0 -16
- data/config/locales/editor.de.yml +0 -64
- data/config/locales/editor/blank_entry.yml +0 -9
- data/config/locales/editor/quotas.de.yml +0 -4
- data/config/locales/formtastic.de.yml +0 -10
- data/config/locales/pageflow/audio.de.yml +0 -4
- data/config/locales/pageflow/editor/background_positioning.de.yml +0 -13
- data/config/locales/pageflow/editor/errors.de.yml +0 -6
- data/config/locales/pageflow/ui.de.yml +0 -6
- data/config/locales/pageflow/user_mailer.yml +0 -5
- data/config/locales/pageflow/widgets.de.yml +0 -14
- data/config/locales/quotas.de.yml +0 -3
- data/config/locales/rails.de.yml +0 -199
@@ -2,5 +2,5 @@
|
|
2
2
|
<span class="name"></span>
|
3
3
|
<span class="inline_help"></span>
|
4
4
|
</label>
|
5
|
-
<p
|
5
|
+
<p><%= I18n.t('pageflow.ui.templates.inputs.page_reference.drag_hint') %></p>
|
6
6
|
<ul class="chapters outline"></ul>
|
@@ -7,17 +7,17 @@
|
|
7
7
|
<textarea style="width: 100%;"></textarea>
|
8
8
|
|
9
9
|
<div class="toolbar">
|
10
|
-
<a data-wysihtml5-command="bold" title="
|
11
|
-
<a data-wysihtml5-command="italic" title="
|
12
|
-
<a data-wysihtml5-command="underline" title="
|
13
|
-
<a data-wysihtml5-command="createLink" title="
|
10
|
+
<a data-wysihtml5-command="bold" title="<%= I18n.t('pageflow.ui.templates.inputs.text_area_input.bold') %>"></a>
|
11
|
+
<a data-wysihtml5-command="italic" title="<%= I18n.t('pageflow.ui.templates.inputs.text_area_input.italic') %>"></a>
|
12
|
+
<a data-wysihtml5-command="underline" title="<%= I18n.t('pageflow.ui.templates.inputs.text_area_input.underline') %>"></a>
|
13
|
+
<a data-wysihtml5-command="createLink" title="<%= I18n.t('pageflow.ui.templates.inputs.text_area_input.create_link') %>"></a>
|
14
14
|
|
15
15
|
<div data-wysihtml5-dialog="createLink" class="dialog" style="display: none;">
|
16
16
|
<label>
|
17
|
-
|
17
|
+
<%= I18n.t('pageflow.ui.templates.inputs.text_area_input.url') %>:
|
18
18
|
<input data-wysihtml5-dialog-field="href" value="http://">
|
19
19
|
</label>
|
20
|
-
<a data-wysihtml5-dialog-action="save"
|
21
|
-
<a data-wysihtml5-dialog-action="cancel"
|
20
|
+
<a data-wysihtml5-dialog-action="save"><%= I18n.t('pageflow.ui.templates.inputs.text_area_input.ok') %></a>
|
21
|
+
<a data-wysihtml5-dialog-action="cancel"><%= I18n.t('pageflow.ui.templates.inputs.text_area_input.cancel') %></a>
|
22
22
|
</div>
|
23
23
|
</div>
|
@@ -43,7 +43,7 @@ pageflow.CollectionView = Backbone.Marionette.View.extend({
|
|
43
43
|
addItem: function(item) {
|
44
44
|
var view = new this.options.itemViewConstructor(_.extend({
|
45
45
|
model: item
|
46
|
-
}, this.
|
46
|
+
}, this.getItemViewOptions(item)));
|
47
47
|
|
48
48
|
this.itemViews.add(view);
|
49
49
|
|
@@ -92,6 +92,15 @@ pageflow.CollectionView = Backbone.Marionette.View.extend({
|
|
92
92
|
}, this);
|
93
93
|
},
|
94
94
|
|
95
|
+
getItemViewOptions: function(item) {
|
96
|
+
if (typeof this.options.itemViewOptions === 'function') {
|
97
|
+
return this.options.itemViewOptions(item);
|
98
|
+
}
|
99
|
+
else {
|
100
|
+
return this.options.itemViewOptions || {};
|
101
|
+
}
|
102
|
+
},
|
103
|
+
|
95
104
|
closePlaceHolderView: function() {
|
96
105
|
if (this.placeHolderView) {
|
97
106
|
this.placeHolderView.close();
|
@@ -3,7 +3,7 @@ pageflow.ConfigurationEditorView = Backbone.Marionette.View.extend({
|
|
3
3
|
|
4
4
|
initialize: function() {
|
5
5
|
this.tabsView = new pageflow.TabsView({
|
6
|
-
i18n: '
|
6
|
+
i18n: 'pageflow.ui.configuration_editor.tabs',
|
7
7
|
defaultTab: this.options.tab
|
8
8
|
});
|
9
9
|
this.configure();
|
@@ -16,7 +16,9 @@ pageflow.CheckBoxInputView = Backbone.Marionette.ItemView.extend({
|
|
16
16
|
onRender: function() {
|
17
17
|
this.ui.label.attr('for', this.cid);
|
18
18
|
this.ui.input.attr('id', this.cid);
|
19
|
+
|
19
20
|
this.load();
|
21
|
+
this.listenTo(this.model, 'change:' + this.options.propertyName, this.load);
|
20
22
|
},
|
21
23
|
|
22
24
|
save: function() {
|
@@ -26,7 +28,9 @@ pageflow.CheckBoxInputView = Backbone.Marionette.ItemView.extend({
|
|
26
28
|
},
|
27
29
|
|
28
30
|
load: function() {
|
29
|
-
|
31
|
+
if (!this.isClosed) {
|
32
|
+
this.ui.input.prop('checked', this.displayValue());
|
33
|
+
}
|
30
34
|
},
|
31
35
|
|
32
36
|
displayValue: function() {
|
@@ -0,0 +1,106 @@
|
|
1
|
+
pageflow.ExtendedSelectInputView = pageflow.SelectInputView.extend({
|
2
|
+
className: 'extended_select_input',
|
3
|
+
|
4
|
+
initialize: function() {
|
5
|
+
pageflow.SelectInputView.prototype.initialize.apply(this, arguments);
|
6
|
+
|
7
|
+
if (this.options.collection) {
|
8
|
+
if (this.options.descriptionProperty) {
|
9
|
+
this.options.descriptions = _.pluck(this.options.collection, this.options.descriptionProperty);
|
10
|
+
}
|
11
|
+
else if (this.options.descriptionTranslationKeyProperty) {
|
12
|
+
this.options.descriptionTanslationKeys = _.pluck(this.options.collection, this.options.descriptionTranslationKeyProperty);
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
if (!this.options.descriptions) {
|
17
|
+
this.options.descriptions = _.map(this.options.descriptionTanslationKeys, function(key) {
|
18
|
+
return I18n.t(key);
|
19
|
+
});
|
20
|
+
}
|
21
|
+
},
|
22
|
+
|
23
|
+
onRender: function() {
|
24
|
+
var view = this,
|
25
|
+
options = this.options;
|
26
|
+
|
27
|
+
pageflow.SelectInputView.prototype.onRender.apply(this, arguments);
|
28
|
+
|
29
|
+
$.widget("custom.extendedselectmenu", $.ui.selectmenu, {
|
30
|
+
_renderItem: function(ul, item) {
|
31
|
+
var widget = this;
|
32
|
+
var li = $('<li>', { class: item.value });
|
33
|
+
var container = $('<div>', { class: 'text-container' }).appendTo(li);
|
34
|
+
var index = options.values.indexOf(item.value);
|
35
|
+
|
36
|
+
if (item.disabled) {
|
37
|
+
li.addClass('ui-state-disabled');
|
38
|
+
}
|
39
|
+
|
40
|
+
if (options.pictogramClass) {
|
41
|
+
$('<span>', {
|
42
|
+
class: options.pictogramClass
|
43
|
+
}).prependTo(li);
|
44
|
+
}
|
45
|
+
|
46
|
+
$('<p>', {
|
47
|
+
text: item.label,
|
48
|
+
class: 'item-text'
|
49
|
+
}).appendTo(container);
|
50
|
+
|
51
|
+
$('<p>', {
|
52
|
+
text: options.descriptions[index],
|
53
|
+
class: 'item-description'
|
54
|
+
}).appendTo(container);
|
55
|
+
|
56
|
+
if (options.helpLinkClicked) {
|
57
|
+
$('<a>', {
|
58
|
+
href: '#',
|
59
|
+
title: I18n.t('pageflow.ui.views.extended_select_input_view.display_help'),
|
60
|
+
})
|
61
|
+
.on('click', function() {
|
62
|
+
widget.close();
|
63
|
+
options.helpLinkClicked(item.value);
|
64
|
+
return false;
|
65
|
+
})
|
66
|
+
.appendTo(li);
|
67
|
+
}
|
68
|
+
|
69
|
+
return li.appendTo(ul);
|
70
|
+
},
|
71
|
+
|
72
|
+
_resizeMenu: function() {
|
73
|
+
this.menuWrap.addClass('extended_select_input_menu');
|
74
|
+
|
75
|
+
var menuHeight = this.menu.height(),
|
76
|
+
menuOffset = this.button.offset().top + this.button.outerHeight(),
|
77
|
+
bodyHeight = $('body').height();
|
78
|
+
|
79
|
+
if (menuHeight + menuOffset > bodyHeight) {
|
80
|
+
this.menuWrap.outerHeight(bodyHeight - menuOffset - 5).css({ 'overflow-y': 'scroll' });
|
81
|
+
}
|
82
|
+
else {
|
83
|
+
this.menuWrap.css({
|
84
|
+
height: 'initial',
|
85
|
+
'overflow-y': 'initial'
|
86
|
+
});
|
87
|
+
}
|
88
|
+
}
|
89
|
+
});
|
90
|
+
|
91
|
+
this.ui.select.extendedselectmenu({
|
92
|
+
select: view.select.bind(view),
|
93
|
+
width: '100%',
|
94
|
+
position: {
|
95
|
+
my: 'right top',
|
96
|
+
at: 'right bottom'
|
97
|
+
}
|
98
|
+
});
|
99
|
+
},
|
100
|
+
|
101
|
+
select: function(event, ui) {
|
102
|
+
this.ui.select.val(ui.item.value);
|
103
|
+
this.save();
|
104
|
+
}
|
105
|
+
|
106
|
+
});
|
@@ -63,7 +63,7 @@ pageflow.FileInputView = Backbone.Marionette.ItemView.extend({
|
|
63
63
|
update: function() {
|
64
64
|
var file = this._getFile();
|
65
65
|
|
66
|
-
this.ui.fileName.text(file ? file.get('file_name') :
|
66
|
+
this.ui.fileName.text(file ? file.get('file_name') : I18n.t('pageflow.ui.views.inputs.file_input_view.none'));
|
67
67
|
this.ui.unsetButton.toggle(!!file);
|
68
68
|
this.ui.editPositioningButton.toggle(this.options.positioning && !!file && file.isPositionable());
|
69
69
|
|
@@ -6,7 +6,7 @@ pageflow.ProxyUrlInputView = pageflow.UrlInputView.extend({
|
|
6
6
|
var view = this;
|
7
7
|
|
8
8
|
return $.Deferred(function(deferred) {
|
9
|
-
deferred.notify('
|
9
|
+
deferred.notify(I18n.t('pageflow.ui.views.inputs.proxy_url_input_view.url_validation'));
|
10
10
|
|
11
11
|
$.ajax({
|
12
12
|
url: view.rewriteUrl(url),
|
@@ -14,7 +14,7 @@ pageflow.ProxyUrlInputView = pageflow.UrlInputView.extend({
|
|
14
14
|
})
|
15
15
|
.done(deferred.resolve)
|
16
16
|
.fail(function(xhr) {
|
17
|
-
deferred.reject('
|
17
|
+
deferred.reject(I18n.t('pageflow.ui.views.inputs.proxy_url_input_view.http_error', { status: xhr.status}));
|
18
18
|
});
|
19
19
|
}).promise();
|
20
20
|
},
|
@@ -8,7 +8,8 @@ pageflow.SelectInputView = Backbone.Marionette.ItemView.extend({
|
|
8
8
|
},
|
9
9
|
|
10
10
|
ui: {
|
11
|
-
select: 'select'
|
11
|
+
select: 'select',
|
12
|
+
input: 'select'
|
12
13
|
},
|
13
14
|
|
14
15
|
initialize: function() {
|
@@ -21,6 +22,13 @@ pageflow.SelectInputView = Backbone.Marionette.ItemView.extend({
|
|
21
22
|
else if (this.options.translationKeyProperty) {
|
22
23
|
this.options.translationKeys = _.pluck(this.options.collection, this.options.translationKeyProperty);
|
23
24
|
}
|
25
|
+
|
26
|
+
if (this.options.groupProperty) {
|
27
|
+
this.options.groups = _.pluck(this.options.collection, this.options.groupProperty);
|
28
|
+
}
|
29
|
+
else if (this.options.groupTranslationKeyProperty) {
|
30
|
+
this.options.groupTanslationKeys = _.pluck(this.options.collection, this.options.groupTranslationKeyProperty);
|
31
|
+
}
|
24
32
|
}
|
25
33
|
|
26
34
|
if (!this.options.texts) {
|
@@ -35,23 +43,22 @@ pageflow.SelectInputView = Backbone.Marionette.ItemView.extend({
|
|
35
43
|
});
|
36
44
|
}
|
37
45
|
|
38
|
-
|
46
|
+
if (!this.options.groups) {
|
47
|
+
this.options.groups = _.map(this.options.groupTanslationKeys, function(key) {
|
48
|
+
return I18n.t(key);
|
49
|
+
});
|
50
|
+
}
|
51
|
+
|
52
|
+
this.optGroups = {};
|
39
53
|
},
|
40
54
|
|
41
55
|
onRender: function() {
|
42
56
|
this.appendBlank();
|
43
57
|
this.appendPlaceholder();
|
44
|
-
|
45
|
-
_.each(this.options.values, function(value, index) {
|
46
|
-
var option = document.createElement('option');
|
47
|
-
|
48
|
-
option.value = value;
|
49
|
-
option.text = this.options.texts[index];
|
50
|
-
|
51
|
-
this.ui.select.append(option);
|
52
|
-
}, this);
|
58
|
+
this.appendOptions();
|
53
59
|
|
54
60
|
this.load();
|
61
|
+
this.listenTo(this.model, 'change:' + this.options.propertyName, this.load);
|
55
62
|
|
56
63
|
if (this.options.ensureValueDefined && !this.ui.select.val()) {
|
57
64
|
this.ui.select.val(this.options.values[0]);
|
@@ -71,7 +78,7 @@ pageflow.SelectInputView = Backbone.Marionette.ItemView.extend({
|
|
71
78
|
var option = document.createElement('option');
|
72
79
|
|
73
80
|
option.value = '';
|
74
|
-
option.text = this.options.blankText || I18n.t('pageflow.ui.select_input_view.
|
81
|
+
option.text = this.options.blankText || I18n.t('pageflow.ui.views.inputs.select_input_view.none');
|
75
82
|
|
76
83
|
this.ui.select.append(option);
|
77
84
|
},
|
@@ -88,17 +95,46 @@ pageflow.SelectInputView = Backbone.Marionette.ItemView.extend({
|
|
88
95
|
var option = document.createElement('option');
|
89
96
|
|
90
97
|
option.value = '';
|
91
|
-
option.text = I18n.t('pageflow.ui.select_input_view.placeholder', {text: this.options.texts[placeholderIndex]});
|
98
|
+
option.text = I18n.t('pageflow.ui.views.inputs.select_input_view.placeholder', {text: this.options.texts[placeholderIndex]});
|
92
99
|
|
93
100
|
this.ui.select.append(option);
|
94
101
|
}
|
95
102
|
},
|
96
103
|
|
104
|
+
appendOptions: function() {
|
105
|
+
_.each(this.options.values, function(value, index) {
|
106
|
+
var option = document.createElement('option');
|
107
|
+
var group = this.options.groups[index];
|
108
|
+
|
109
|
+
option.value = value;
|
110
|
+
option.text = this.options.texts[index];
|
111
|
+
|
112
|
+
if (group) {
|
113
|
+
option.setAttribute('data-group', group);
|
114
|
+
this.findOrCreateOptGroup(group).append(option);
|
115
|
+
}
|
116
|
+
else {
|
117
|
+
this.ui.select.append(option);
|
118
|
+
}
|
119
|
+
}, this);
|
120
|
+
},
|
121
|
+
|
122
|
+
findOrCreateOptGroup: function(label) {
|
123
|
+
if (!this.optGroups[label]) {
|
124
|
+
this.optGroups[label] = $('<optgroup />', {label: label})
|
125
|
+
.appendTo(this.ui.select);
|
126
|
+
}
|
127
|
+
|
128
|
+
return this.optGroups[label];
|
129
|
+
},
|
130
|
+
|
97
131
|
save: function() {
|
98
132
|
this.model.set(this.options.propertyName, this.ui.select.val());
|
99
133
|
},
|
100
134
|
|
101
135
|
load: function() {
|
102
|
-
|
136
|
+
if (!this.isClosed) {
|
137
|
+
this.ui.select.val(this.model.get(this.options.propertyName));
|
138
|
+
}
|
103
139
|
}
|
104
140
|
});
|
@@ -34,7 +34,7 @@ pageflow.TextInputView = Backbone.Marionette.ItemView.extend({
|
|
34
34
|
|
35
35
|
validate: function() {
|
36
36
|
if (this.options.required && !this.ui.input.val()) {
|
37
|
-
this.displayValidationError('
|
37
|
+
this.displayValidationError(I18n.t('pageflow.ui.views.inputs.text_input_view.required_field'));
|
38
38
|
}
|
39
39
|
else {
|
40
40
|
this.resetValidationError();
|
@@ -84,19 +84,19 @@ pageflow.UrlInputView = Backbone.Marionette.Layout.extend({
|
|
84
84
|
var value = this.ui.input.val();
|
85
85
|
|
86
86
|
if (options.required && !value) {
|
87
|
-
displayValidationError('
|
87
|
+
displayValidationError(I18n.t('pageflow.ui.views.inputs.url_input_view.required_field'));
|
88
88
|
}
|
89
89
|
else if (value && !isValidUrl(value)) {
|
90
|
-
var errorMessage = '
|
90
|
+
var errorMessage = I18n.t('pageflow.ui.views.inputs.url_input_view.url_hint');
|
91
91
|
|
92
92
|
if (options.permitHttps) {
|
93
|
-
errorMessage = '
|
93
|
+
errorMessage = I18n.t('pageflow.ui.views.inputs.url_input_view.url_hint_https');
|
94
94
|
}
|
95
95
|
|
96
96
|
displayValidationError(errorMessage);
|
97
97
|
}
|
98
98
|
else if (value && !hasSupportedHost(value)) {
|
99
|
-
displayValidationError('
|
99
|
+
displayValidationError(I18n.t('pageflow.ui.views.inputs.url_input_view.supported_vendors') +
|
100
100
|
_.map(view.supportedHosts(), function(url) {
|
101
101
|
return '<li>' + url +'</li>';
|
102
102
|
}).join(''));
|
@@ -27,7 +27,7 @@ pageflow.inputView = {
|
|
27
27
|
},
|
28
28
|
|
29
29
|
inlineHelpText: function() {
|
30
|
-
var key = '
|
30
|
+
var key = 'pageflow.ui.inline_help.' + this.model.i18nKey + '.' + this.options.propertyName;
|
31
31
|
var text = I18n.t(key, {defaultValue: ''});
|
32
32
|
|
33
33
|
if (this.options.disabled) {
|
@@ -1,4 +1,5 @@
|
|
1
1
|
//= require_self
|
2
|
+
//= require ./video_player/media_events
|
2
3
|
//= require ./video_player/prebuffering
|
3
4
|
//= require ./video_player/buffer_underrun_waiting
|
4
5
|
//= require ./video_player/src_from_options_method
|
@@ -16,6 +17,10 @@ pageflow.VideoPlayer = function(element, options) {
|
|
16
17
|
pageflow.VideoPlayer.prebuffering(player);
|
17
18
|
pageflow.VideoPlayer.srcFromOptionsMethod(player);
|
18
19
|
|
20
|
+
if (options.mediaEvents) {
|
21
|
+
pageflow.VideoPlayer.mediaEvents(player);
|
22
|
+
}
|
23
|
+
|
19
24
|
if (options.bufferUnderrunWaiting) {
|
20
25
|
pageflow.VideoPlayer.bufferUnderrunWaiting(player);
|
21
26
|
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
pageflow.VideoPlayer.mediaEvents = function(player) {
|
2
|
+
function triggerMediaEvent(name) {
|
3
|
+
pageflow.events.trigger('media:' + name, {
|
4
|
+
fileName: player.currentSrc(),
|
5
|
+
currentTime: player.currentTime(),
|
6
|
+
duration: player.duration(),
|
7
|
+
volume: player.volume(),
|
8
|
+
bitrate: pageflow.features.has('high bandwidth') ? 3500000 : 2000000
|
9
|
+
});
|
10
|
+
}
|
11
|
+
|
12
|
+
player.on('play', function() {
|
13
|
+
triggerMediaEvent('play');
|
14
|
+
});
|
15
|
+
|
16
|
+
player.on('timeupdate', function() {
|
17
|
+
triggerMediaEvent('timeupdate');
|
18
|
+
});
|
19
|
+
|
20
|
+
player.on('pause', function() {
|
21
|
+
triggerMediaEvent('pause');
|
22
|
+
});
|
23
|
+
|
24
|
+
player.on('ended', function() {
|
25
|
+
triggerMediaEvent('ended');
|
26
|
+
});
|
27
|
+
};
|