pageflow 16.0.0 → 16.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +86 -33
- data/README.md +6 -6
- data/Rakefile +1 -1
- data/admins/pageflow/entry.rb +0 -1
- data/admins/pageflow/sites.rb +3 -0
- data/app/assets/images/pageflow/admin/icons/published_with_noindex.svg +4 -0
- data/app/assets/javascripts/pageflow/dist/ui.js +299 -72
- data/app/assets/stylesheets/pageflow/admin/active_admin_patches.scss +1 -1
- data/app/assets/stylesheets/pageflow/admin/entries.scss +4 -0
- data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +10 -0
- data/app/assets/stylesheets/pageflow/admin/publication_state_indicator.scss +4 -0
- data/app/assets/stylesheets/pageflow/editor/base.scss +0 -1
- data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +61 -7
- data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +12 -1
- data/app/assets/stylesheets/pageflow/editor/file_thumbnails.scss +4 -0
- data/app/assets/stylesheets/pageflow/editor/help.scss +3 -3
- data/app/assets/stylesheets/pageflow/editor/info_box.scss +7 -0
- data/app/assets/stylesheets/pageflow/editor/inputs/file_input.scss +0 -5
- data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -4
- data/app/assets/stylesheets/pageflow/{editor/wysihtml5.scss → ui/input/text_area_input.scss} +13 -1
- data/app/assets/stylesheets/pageflow/ui.scss +1 -0
- data/app/controllers/pageflow/chapters_controller.rb +2 -2
- data/app/controllers/pageflow/editor/entry_publications_controller.rb +5 -1
- data/app/controllers/pageflow/editor/file_import_controller.rb +1 -1
- data/app/controllers/pageflow/editor/files_controller.rb +1 -1
- data/app/controllers/pageflow/entries_controller.rb +12 -2
- data/app/controllers/pageflow/feeds_controller.rb +18 -0
- data/app/controllers/pageflow/pages_controller.rb +2 -2
- data/app/controllers/pageflow/sitemaps_controller.rb +15 -0
- data/app/controllers/pageflow/storylines_controller.rb +2 -2
- data/app/helpers/pageflow/entries_helper.rb +4 -1
- data/app/helpers/pageflow/feeds_helper.rb +66 -0
- data/app/helpers/pageflow/meta_tags_helper.rb +2 -1
- data/app/helpers/pageflow/page_types_helper.rb +10 -10
- data/app/helpers/pageflow/revision_file_helper.rb +3 -3
- data/app/helpers/pageflow/social_share_helper.rb +2 -2
- data/app/inputs/pageflow_permalink_input.rb +15 -3
- data/app/models/concerns/pageflow/entry_publication_states.rb +9 -0
- data/app/models/concerns/pageflow/reusable_file.rb +3 -3
- data/app/models/concerns/pageflow/uploadable_file.rb +5 -0
- data/app/models/pageflow/account.rb +8 -0
- data/app/models/pageflow/audio_file_url_templates.rb +2 -1
- data/app/models/pageflow/draft_entry.rb +1 -1
- data/app/models/pageflow/entries_feed.rb +32 -0
- data/app/models/pageflow/entry.rb +7 -5
- data/app/models/pageflow/entry_at_revision.rb +2 -0
- data/app/models/pageflow/image_file.rb +34 -8
- data/app/models/pageflow/image_file_url_templates.rb +7 -1
- data/app/models/pageflow/membership.rb +3 -2
- data/app/models/pageflow/other_file.rb +5 -0
- data/app/models/pageflow/other_file_url_templates.rb +16 -0
- data/app/models/pageflow/published_entry.rb +6 -0
- data/app/models/pageflow/revision.rb +6 -0
- data/app/models/pageflow/site.rb +8 -0
- data/app/models/pageflow/sitemaps.rb +14 -0
- data/app/models/pageflow/used_file.rb +10 -2
- data/app/models/pageflow/video_file_url_templates.rb +3 -1
- data/app/models/pageflow/widget.rb +9 -1
- data/app/views/admin/entries/_permalink_inputs.html.erb +1 -2
- data/app/views/admin/sites/_attributes_table.html.arb +3 -0
- data/app/views/admin/sites/_fields.html.erb +6 -0
- data/app/views/components/pageflow/admin/extensible_attributes_table.rb +2 -2
- data/app/views/components/pageflow/admin/revisions_tab.rb +8 -0
- data/app/views/components/pageflow/admin/sites_tab.rb +3 -0
- data/app/views/pageflow/editor/config/_seeds.json.jbuilder +2 -0
- data/app/views/pageflow/editor/entries/_entry.json.jbuilder +1 -0
- data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +1 -0
- data/app/views/pageflow/feeds/index.atom.builder +20 -0
- data/app/views/pageflow/image_files/_image_file.json.jbuilder +1 -0
- data/app/views/pageflow/meta_tags/_entry.html.erb +1 -0
- data/app/views/pageflow/sitemaps/index.xml.builder +9 -0
- data/config/initializers/features.rb +3 -0
- data/config/initializers/paperclip.rb +8 -0
- data/config/locales/de.yml +77 -6
- data/config/locales/en.yml +79 -4
- data/config/routes.rb +3 -0
- data/config/spring.rb +1 -1
- data/db/migrate/20230120092923_create_other_files.rb +23 -0
- data/db/migrate/20230323115745_add_feeds_enabled_to_sites.rb +5 -0
- data/db/migrate/20230323154323_add_sitemap_enabled_to_sites.rb +5 -0
- data/db/migrate/20230331103823_add_title_to_sites.rb +5 -0
- data/db/migrate/20230405103612_add_custom_feed_url_to_sites.rb +5 -0
- data/db/migrate/20231024062501_add_output_presences_to_image_files.rb +5 -0
- data/db/migrate/20231128124523_add_noindex_to_revisions.rb +5 -0
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +710 -259
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +34 -5
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +1 -1
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +1 -1
- data/entry_types/paged/app/controllers/pageflow_paged/editor/entries_controller.rb +0 -2
- data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +2 -1
- data/entry_types/paged/app/views/pageflow_paged/entries/show.html.erb +1 -0
- data/entry_types/paged/config/initializers/features.rb +0 -1
- data/entry_types/paged/lib/pageflow_paged/engine.rb +13 -1
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +2 -2
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +3 -4
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +13 -6
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +11 -3
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +11 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +42 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +8 -5
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +17 -12
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +9 -1
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +1 -1
- data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +23 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -1
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_seed.json.jbuilder +1 -5
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/sections/_section_with_content_elements.json.jbuilder +10 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +44 -41
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_consent_vendors.json.jbuilder +16 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +7 -0
- data/entry_types/scrolled/config/initializers/features.rb +5 -0
- data/entry_types/scrolled/config/locales/consent_widget.de.yml +4 -0
- data/entry_types/scrolled/config/locales/consent_widget.en.yml +4 -0
- data/entry_types/scrolled/config/locales/de.yml +225 -8
- data/entry_types/scrolled/config/locales/en.yml +239 -2
- data/entry_types/scrolled/config/routes.rb +4 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +69 -44
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +2 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +1 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +96 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/content_element_consent_vendors.rb +38 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +13 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +30 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +6 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/web_app_manifest.rb +1 -1
- data/entry_types/scrolled/lib/tasks/pageflow_scrolled/dummy.rake +1 -1
- data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +1 -2
- data/entry_types/scrolled/package/config/webpack.js +26 -0
- data/entry_types/scrolled/package/contentElements-editor.js +330 -32
- data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
- data/entry_types/scrolled/package/contentElements-frontend.js +920 -145
- data/entry_types/scrolled/package/editor.js +819 -239
- data/entry_types/scrolled/package/frontend/{EditableInlineText.module-14c7b097.js → EditableInlineText.module-6ee0e024.js} +1975 -1792
- data/entry_types/scrolled/package/frontend/PhonePlatformContext-b28d991a.js +32 -0
- data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-8242f213.js +107 -0
- data/entry_types/scrolled/package/frontend/Viewer-32cd1ac1.js +154 -0
- data/entry_types/scrolled/package/frontend/{Viewer-b6becc57.js → Viewer-6e4d14ed.js} +32 -161
- data/entry_types/scrolled/package/frontend/arrowRight-e42e6011.js +77 -0
- data/entry_types/scrolled/package/frontend/{components-b3160dd7.js → components-24363f97.js} +188 -47
- data/entry_types/scrolled/package/frontend/{PhonePlatformContext-f6093cc6.js → i18n-71c39823.js} +191 -111
- data/entry_types/scrolled/package/frontend/index-fc4b13e6.js +118 -0
- data/entry_types/scrolled/package/frontend/index.css +1 -1
- data/entry_types/scrolled/package/frontend/index.js +252 -76
- data/entry_types/scrolled/package/frontend/useContentElementEditorState-245f1986.js +52 -0
- data/entry_types/scrolled/package/package.json +6 -4
- data/entry_types/scrolled/package/testHelpers.js +11 -2
- data/entry_types/scrolled/package/values/colors.module.css +15 -0
- data/entry_types/scrolled/package/widgets/consentBar.css +1 -0
- data/entry_types/scrolled/package/widgets/consentBar.js +426 -0
- data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
- data/entry_types/scrolled/package/widgets/defaultNavigation.js +39 -4
- data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -0
- data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +49 -0
- data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -0
- data/entry_types/scrolled/package/widgets/textInlineFileRights.js +37 -0
- data/lib/generators/pageflow/resque/resque_generator.rb +1 -1
- data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
- data/lib/generators/pageflow/resque/templates/resque.rb +1 -1
- data/lib/generators/pageflow/routes/routes_generator.rb +1 -1
- data/lib/pageflow/ability_mixin.rb +5 -5
- data/lib/pageflow/active_admin_can_can_fix.rb +2 -2
- data/lib/pageflow/built_in_file_type.rb +7 -0
- data/lib/pageflow/configuration.rb +29 -1
- data/lib/pageflow/engine.rb +18 -40
- data/lib/pageflow/entry_export_import/revision_serialization.rb +1 -1
- data/lib/pageflow/file_type.rb +2 -2
- data/lib/pageflow/global_config_api.rb +2 -2
- data/lib/pageflow/nested_revision_component.rb +23 -5
- data/lib/pageflow/page_type.rb +1 -1
- data/lib/pageflow/paperclip_processors/webp.rb +63 -0
- data/lib/pageflow/rails_version.rb +19 -0
- data/lib/pageflow/seeds.rb +10 -7
- data/lib/pageflow/user_mixin.rb +1 -1
- data/lib/pageflow/version.rb +1 -1
- data/lib/pageflow/widget_types.rb +4 -0
- data/package/config/jest/index.js +3 -1
- data/package/config/webpack5.js +14 -0
- data/package/editor.js +410 -181
- data/package/frontend.js +34 -4
- data/package/testHelpers.js +1 -1
- data/package/ui.js +297 -71
- data/spec/factories/entries.rb +34 -3
- data/spec/factories/sites.rb +3 -0
- data/vendor/assets/javascripts/iscroll.js +4 -7
- metadata +118 -80
- data/app/helpers/pageflow/admin/permalinks_helper.rb +0 -15
- data/entry_types/scrolled/package/frontend/arrowRight-78a7cee4.js +0 -42
data/package/editor.js
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
import Backbone from 'backbone';
|
2
2
|
import _ from 'underscore';
|
3
|
-
import { Object as Object$1,
|
3
|
+
import { Object as Object$1, TabsView, ConfigurationEditorView, CollectionView, tooltipContainer, SelectInputView, inputView, TextInputView, TextAreaInputView, CheckBoxGroupInputView, i18nUtils, ConfigurationEditorTabView, SeparatorView, UrlDisplayView, TableView, TextTableCellView, PresenceTableCellView, SortableCollectionView, attributeBinding, DeleteRowTableCellView, CheckBoxInputView, SliderInputView, IconTableCellView } from 'pageflow/ui';
|
4
4
|
export * from 'pageflow/ui';
|
5
5
|
import Cocktail from 'cocktail';
|
6
6
|
import I18n$1 from 'i18n-js';
|
7
7
|
import Marionette from 'backbone.marionette';
|
8
8
|
import $ from 'jquery';
|
9
9
|
import { browser, features, Audio, events } from 'pageflow/frontend';
|
10
|
+
import 'jquery-ui';
|
10
11
|
|
11
12
|
(function () {
|
12
13
|
var sync = Backbone.sync;
|
@@ -234,7 +235,7 @@ var UnmatchedUploadError = UploadError.extend({
|
|
234
235
|
});
|
235
236
|
var validFileTypeTranslationList = {
|
236
237
|
validFileTypeTranslations: function validFileTypeTranslations(validFileTypes) {
|
237
|
-
return
|
238
|
+
return validFileTypes.map(function (validFileType) {
|
238
239
|
return I18n$1.t('activerecord.models.' + validFileType.i18nKey + '.other');
|
239
240
|
}).join(', ');
|
240
241
|
}
|
@@ -264,7 +265,7 @@ var InvalidNestedTypeError = UploadError.extend({
|
|
264
265
|
initialize: function initialize(upload, options) {
|
265
266
|
var editor = options.editor;
|
266
267
|
var fileType = options.fileType;
|
267
|
-
var validFileTypes = editor.nextUploadTargetFile.fileType().nestedFileTypes
|
268
|
+
var validFileTypes = editor.nextUploadTargetFile.fileType().nestedFileTypes;
|
268
269
|
var validFileTypeTranslations = this.validFileTypeTranslations(validFileTypes);
|
269
270
|
var typeI18nKey = fileType.i18nKey;
|
270
271
|
var typeSingularTranslation = I18n$1.t('activerecord.models.' + typeI18nKey + '.one');
|
@@ -314,58 +315,6 @@ _.each(['each', 'map', 'reduce', 'first', 'find', 'contains', 'filter'], functio
|
|
314
315
|
};
|
315
316
|
});
|
316
317
|
|
317
|
-
var state = window.pageflow || {};
|
318
|
-
|
319
|
-
function template(data) {
|
320
|
-
var __p = '';
|
321
|
-
__p += '';
|
322
|
-
return __p
|
323
|
-
}
|
324
|
-
|
325
|
-
var EditFileView = Marionette.ItemView.extend({
|
326
|
-
template: template,
|
327
|
-
className: 'edit_file',
|
328
|
-
onRender: function onRender() {
|
329
|
-
var fileType = this.model.fileType();
|
330
|
-
var entry = this.options.entry || state.entry;
|
331
|
-
var tab = new ConfigurationEditorTabView({
|
332
|
-
model: this.model.configuration,
|
333
|
-
attributeTranslationKeyPrefixes: ['pageflow.editor.files.attributes.' + fileType.collectionName, 'pageflow.editor.files.common_attributes', 'pageflow.editor.nested_files.' + fileType.collectionName, 'pageflow.editor.nested_files.common_attributes']
|
334
|
-
});
|
335
|
-
|
336
|
-
if (this.options.displayFileName) {
|
337
|
-
tab.input('file_name', TextInputView, {
|
338
|
-
model: this.model,
|
339
|
-
disabled: true
|
340
|
-
});
|
341
|
-
}
|
342
|
-
|
343
|
-
tab.input('rights', TextInputView, {
|
344
|
-
model: this.model,
|
345
|
-
placeholder: entry.get('default_file_rights')
|
346
|
-
});
|
347
|
-
|
348
|
-
_(this.fileTypeInputs()).each(function (options) {
|
349
|
-
tab.input(options.name, options.inputView, options.inputViewOptions);
|
350
|
-
});
|
351
|
-
|
352
|
-
tab.input('original_url', UrlDisplayView, {
|
353
|
-
model: this.model
|
354
|
-
});
|
355
|
-
this.appendSubview(tab);
|
356
|
-
},
|
357
|
-
fileTypeInputs: function fileTypeInputs() {
|
358
|
-
var fileType = this.model.fileType();
|
359
|
-
return _.chain(fileType.configurationEditorInputs).map(function (inputs) {
|
360
|
-
if (_.isFunction(inputs)) {
|
361
|
-
return inputs(this.model);
|
362
|
-
} else {
|
363
|
-
return inputs;
|
364
|
-
}
|
365
|
-
}, this).flatten().value();
|
366
|
-
}
|
367
|
-
});
|
368
|
-
|
369
318
|
var app = new Marionette.Application();
|
370
319
|
|
371
320
|
var dialogView = {
|
@@ -382,7 +331,7 @@ var dialogView = {
|
|
382
331
|
}
|
383
332
|
};
|
384
333
|
|
385
|
-
function template
|
334
|
+
function template(data) {
|
386
335
|
var __t, __p = '';
|
387
336
|
__p += '<div class="box">\n <div class="content">\n <h1 class="dialog-header"></h1>\n </div>\n\n <div class="footer">\n <a href="" class="close">\n ' +
|
388
337
|
((__t = ( I18n.t('pageflow.editor.templates.file_settings_dialog.close') )) == null ? '' : __t) +
|
@@ -391,7 +340,7 @@ return __p
|
|
391
340
|
}
|
392
341
|
|
393
342
|
var FileSettingsDialogView = Marionette.ItemView.extend({
|
394
|
-
template: template
|
343
|
+
template: template,
|
395
344
|
className: 'file_settings_dialog editor dialog',
|
396
345
|
mixins: [dialogView],
|
397
346
|
ui: {
|
@@ -422,11 +371,11 @@ FileSettingsDialogView.open = function (options) {
|
|
422
371
|
app.dialogRegion.show(new FileSettingsDialogView(options));
|
423
372
|
};
|
424
373
|
|
425
|
-
function template$
|
374
|
+
function template$1(data) {
|
426
375
|
var __t, __p = '';
|
427
|
-
__p += '<a class="edit" href="" title="' +
|
376
|
+
__p += '<span class="value"></span>\n<a class="edit" href="" title="' +
|
428
377
|
((__t = ( I18n.t('pageflow.editor.templates.file_meta_data_item_value_view.edit') )) == null ? '' : __t) +
|
429
|
-
'">\n</a>\n
|
378
|
+
'">\n</a>\n\n';
|
430
379
|
return __p
|
431
380
|
}
|
432
381
|
|
@@ -449,7 +398,8 @@ return __p
|
|
449
398
|
*/
|
450
399
|
|
451
400
|
var FileMetaDataItemValueView = Marionette.ItemView.extend({
|
452
|
-
template: template$
|
401
|
+
template: template$1,
|
402
|
+
className: 'value_wrapper',
|
453
403
|
ui: {
|
454
404
|
value: '.value',
|
455
405
|
editLink: '.edit'
|
@@ -491,7 +441,13 @@ var TextFileMetaDataItemValueView = FileMetaDataItemValueView.extend({
|
|
491
441
|
model = this.model;
|
492
442
|
}
|
493
443
|
|
494
|
-
|
444
|
+
var value = model.get(this.options.name);
|
445
|
+
|
446
|
+
if (value && this.options.formatValue) {
|
447
|
+
return this.options.formatValue(value);
|
448
|
+
}
|
449
|
+
|
450
|
+
return value;
|
495
451
|
}
|
496
452
|
});
|
497
453
|
|
@@ -504,6 +460,7 @@ var FileType = Object$1.extend({
|
|
504
460
|
this.paramKey = options.paramKey;
|
505
461
|
this.i18nKey = options.i18nKey;
|
506
462
|
this.nestedFileTypes = [];
|
463
|
+
this.settingsDialogTabs = options.settingsDialogTabs || [];
|
507
464
|
this.confirmUploadTableColumns = options.confirmUploadTableColumns || [];
|
508
465
|
this.configurationEditorInputs = [].concat(options.configurationEditorInputs || []);
|
509
466
|
this.configurationUpdaters = options.configurationUpdaters || [];
|
@@ -511,17 +468,8 @@ var FileType = Object$1.extend({
|
|
511
468
|
this.nestedFilesOrder = options.nestedFilesOrder;
|
512
469
|
this.skipUploadConfirmation = options.skipUploadConfirmation || false;
|
513
470
|
this.filters = options.filters || [];
|
514
|
-
this.
|
515
|
-
|
516
|
-
valueView: TextFileMetaDataItemValueView,
|
517
|
-
valueViewOptions: {
|
518
|
-
settingsDialogTabLink: 'general'
|
519
|
-
}
|
520
|
-
}].concat(options.metaDataAttributes || []);
|
521
|
-
this.settingsDialogTabs = [{
|
522
|
-
name: 'general',
|
523
|
-
view: EditFileView
|
524
|
-
}].concat(options.settingsDialogTabs || []);
|
471
|
+
this.noExtendedFileRights = options.noExtendedFileRights;
|
472
|
+
this.metaDataAttributes = options.metaDataAttributes || [];
|
525
473
|
|
526
474
|
if (typeof options.matchUpload === 'function') {
|
527
475
|
this.matchUpload = options.matchUpload;
|
@@ -561,6 +509,8 @@ var FileTypes = Object$1.extend({
|
|
561
509
|
initialize: function initialize() {
|
562
510
|
this.clientSideConfigs = [];
|
563
511
|
this.clientSideConfigModifications = {};
|
512
|
+
this.commonSettingsDialogTabs = [];
|
513
|
+
this.commonMetaDataAttributes = [];
|
564
514
|
},
|
565
515
|
register: function register(name, config) {
|
566
516
|
if (this._setup) {
|
@@ -578,22 +528,30 @@ var FileTypes = Object$1.extend({
|
|
578
528
|
this.clientSideConfigModifications[name].push(config);
|
579
529
|
},
|
580
530
|
setup: function setup(serverSideConfigs) {
|
531
|
+
var _this = this;
|
532
|
+
|
581
533
|
var clientSideConfigs = this.clientSideConfigs;
|
582
534
|
this._setup = true;
|
583
|
-
|
535
|
+
|
536
|
+
var configs = _.chain(serverSideConfigs).map(function (serverSideConfig) {
|
584
537
|
var clientSideConfig = clientSideConfigs[serverSideConfig.collectionName];
|
585
538
|
|
586
539
|
if (!clientSideConfig) {
|
587
540
|
throw 'Missing client side config for file type "' + serverSideConfig.collectionName + '"';
|
588
541
|
}
|
589
542
|
|
590
|
-
|
591
|
-
this.lintModification(modification, serverSideConfig.collectionName);
|
592
|
-
this.applyModification(clientSideConfig, modification);
|
593
|
-
}, this);
|
543
|
+
_this.applyCommonConfig(clientSideConfig);
|
594
544
|
|
595
|
-
|
596
|
-
|
545
|
+
_this.applyModifications(serverSideConfig, clientSideConfig);
|
546
|
+
|
547
|
+
return _.extend({}, serverSideConfig, clientSideConfig);
|
548
|
+
}).sortBy(function (config) {
|
549
|
+
return config.priority || 10;
|
550
|
+
}).value();
|
551
|
+
|
552
|
+
this.collection = new FileTypesCollection(_.map(configs, function (config) {
|
553
|
+
return new FileType(config);
|
554
|
+
}));
|
597
555
|
var those = this;
|
598
556
|
|
599
557
|
_.map(serverSideConfigs, function (serverSideConfig) {
|
@@ -603,6 +561,16 @@ var FileTypes = Object$1.extend({
|
|
603
561
|
})));
|
604
562
|
});
|
605
563
|
},
|
564
|
+
applyCommonConfig: function applyCommonConfig(clientSideConfig) {
|
565
|
+
clientSideConfig.settingsDialogTabs = this.commonSettingsDialogTabs.concat(clientSideConfig.settingsDialogTabs || []);
|
566
|
+
clientSideConfig.metaDataAttributes = this.commonMetaDataAttributes.concat(clientSideConfig.metaDataAttributes || []);
|
567
|
+
},
|
568
|
+
applyModifications: function applyModifications(serverSideConfig, clientSideConfig) {
|
569
|
+
_(this.clientSideConfigModifications[serverSideConfig.collectionName]).each(function (modification) {
|
570
|
+
this.lintModification(modification, serverSideConfig.collectionName);
|
571
|
+
this.applyModification(clientSideConfig, modification);
|
572
|
+
}, this);
|
573
|
+
},
|
606
574
|
lintModification: function lintModification(modification, collectionName) {
|
607
575
|
var unmodifyableProperties = _.difference(_.keys(modification), this.modifyableProperties);
|
608
576
|
|
@@ -885,6 +853,8 @@ var WidgetTypes = Object$1.extend({
|
|
885
853
|
}
|
886
854
|
});
|
887
855
|
|
856
|
+
var state = window.pageflow || {};
|
857
|
+
|
888
858
|
/**
|
889
859
|
* Interface for engines providing editor extensions.
|
890
860
|
* @alias editor
|
@@ -895,6 +865,7 @@ var EditorApi = Object$1.extend(
|
|
895
865
|
{
|
896
866
|
initialize: function initialize(options) {
|
897
867
|
this.router = options && options.router;
|
868
|
+
this.entryType = {};
|
898
869
|
this.sideBarRoutings = [];
|
899
870
|
this.mainMenuItems = [];
|
900
871
|
this.initializers = [];
|
@@ -964,6 +935,9 @@ var EditorApi = Object$1.extend(
|
|
964
935
|
* Checks to see if the browser is supported.
|
965
936
|
* @param {function} options.browserNotSupportedView
|
966
937
|
* Backbone view that will be rendered if the browser is not supported.
|
938
|
+
* @param {boolean} [options.supportsExtendedFileRights]
|
939
|
+
* Offer additional inputs for files to specify source url, license and default
|
940
|
+
* display location.
|
967
941
|
*/
|
968
942
|
registerEntryType: function registerEntryType(name, options) {
|
969
943
|
this.entryType = _objectSpread2({
|
@@ -1107,10 +1081,12 @@ var EditorApi = Object$1.extend(
|
|
1107
1081
|
* Trigger selection of the given file type with the given
|
1108
1082
|
* handler. Payload hash is passed to selection handler as options.
|
1109
1083
|
*
|
1110
|
-
* @param {string|{name: string, filter: string}} fileType
|
1084
|
+
* @param {string|{name: string, filter: string}|{defaultTab: string, filter: string}} fileType
|
1111
1085
|
* Either collection name of a file type or and object containing
|
1112
1086
|
* the collection name a file type and a the name of a file type
|
1113
|
-
* filter
|
1087
|
+
* filter or an object containingn a defaultTab property that controls
|
1088
|
+
* which tab will visible initially, while allowing selecting files of
|
1089
|
+
* any type.
|
1114
1090
|
*
|
1115
1091
|
* @param {string} handlerName
|
1116
1092
|
* The name of a handler registered via {@link
|
@@ -1136,7 +1112,7 @@ var EditorApi = Object$1.extend(
|
|
1136
1112
|
};
|
1137
1113
|
}
|
1138
1114
|
|
1139
|
-
this.navigate('/files/' + fileType.name + '?handler=' + handlerName + '&payload=' + encodeURIComponent(JSON.stringify(payload)) + (fileType.filter ? '&filter=' + fileType.filter : ''), {
|
1115
|
+
this.navigate('/files/' + (fileType.defaultTab ? "".concat(fileType.defaultTab, ":default") : fileType.name) + '?handler=' + handlerName + '&payload=' + encodeURIComponent(JSON.stringify(payload)) + (fileType.filter ? '&filter=' + fileType.filter : ''), {
|
1140
1116
|
trigger: true
|
1141
1117
|
});
|
1142
1118
|
},
|
@@ -3352,7 +3328,7 @@ var Entry = Backbone.Model.extend({
|
|
3352
3328
|
},
|
3353
3329
|
parse: function parse(response, options) {
|
3354
3330
|
if (response) {
|
3355
|
-
this.set(_.pick(response, 'published', 'published_until', 'password_protected'));
|
3331
|
+
this.set(_.pick(response, 'published', 'published_until', 'password_protected', 'last_published_with_noindex'));
|
3356
3332
|
|
3357
3333
|
this._setFiles(response, {
|
3358
3334
|
add: false,
|
@@ -3555,6 +3531,13 @@ var ForeignKeySubsetCollection = SubsetCollection.extend({
|
|
3555
3531
|
var parent = options.parent;
|
3556
3532
|
var parentModel = options.parentModel;
|
3557
3533
|
this.autoConsolidatePositions = options.autoConsolidatePositions;
|
3534
|
+
this.listenTo(this, 'add', function (model) {
|
3535
|
+
if (options.parentReferenceAttribute) {
|
3536
|
+
model[options.parentReferenceAttribute] = parentModel;
|
3537
|
+
}
|
3538
|
+
|
3539
|
+
model.set(options.foreignKeyAttribute, parentModel.id);
|
3540
|
+
});
|
3558
3541
|
SubsetCollection.prototype.constructor.call(this, {
|
3559
3542
|
parent: parent,
|
3560
3543
|
parentModel: parentModel,
|
@@ -3565,13 +3548,6 @@ var ForeignKeySubsetCollection = SubsetCollection.extend({
|
|
3565
3548
|
return item.get('position');
|
3566
3549
|
}
|
3567
3550
|
});
|
3568
|
-
this.listenTo(this, 'add', function (model) {
|
3569
|
-
if (options.parentReferenceAttribute) {
|
3570
|
-
model[options.parentReferenceAttribute] = parentModel;
|
3571
|
-
}
|
3572
|
-
|
3573
|
-
model.set(options.foreignKeyAttribute, parentModel.id);
|
3574
|
-
});
|
3575
3551
|
this.listenTo(parentModel, 'destroy dependentDestroy', function () {
|
3576
3552
|
this.invoke('trigger', 'dependentDestroy');
|
3577
3553
|
this.clear();
|
@@ -3824,7 +3800,65 @@ var SidebarRouter = Marionette.AppRouter.extend({
|
|
3824
3800
|
}
|
3825
3801
|
});
|
3826
3802
|
|
3827
|
-
function
|
3803
|
+
function _arrayWithHoles(arr) {
|
3804
|
+
if (Array.isArray(arr)) return arr;
|
3805
|
+
}
|
3806
|
+
|
3807
|
+
function _iterableToArrayLimit(arr, i) {
|
3808
|
+
if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
|
3809
|
+
var _arr = [];
|
3810
|
+
var _n = true;
|
3811
|
+
var _d = false;
|
3812
|
+
var _e = undefined;
|
3813
|
+
|
3814
|
+
try {
|
3815
|
+
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
3816
|
+
_arr.push(_s.value);
|
3817
|
+
|
3818
|
+
if (i && _arr.length === i) break;
|
3819
|
+
}
|
3820
|
+
} catch (err) {
|
3821
|
+
_d = true;
|
3822
|
+
_e = err;
|
3823
|
+
} finally {
|
3824
|
+
try {
|
3825
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
3826
|
+
} finally {
|
3827
|
+
if (_d) throw _e;
|
3828
|
+
}
|
3829
|
+
}
|
3830
|
+
|
3831
|
+
return _arr;
|
3832
|
+
}
|
3833
|
+
|
3834
|
+
function _arrayLikeToArray(arr, len) {
|
3835
|
+
if (len == null || len > arr.length) len = arr.length;
|
3836
|
+
|
3837
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) {
|
3838
|
+
arr2[i] = arr[i];
|
3839
|
+
}
|
3840
|
+
|
3841
|
+
return arr2;
|
3842
|
+
}
|
3843
|
+
|
3844
|
+
function _unsupportedIterableToArray(o, minLen) {
|
3845
|
+
if (!o) return;
|
3846
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
3847
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
3848
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
3849
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
3850
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
3851
|
+
}
|
3852
|
+
|
3853
|
+
function _nonIterableRest() {
|
3854
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
3855
|
+
}
|
3856
|
+
|
3857
|
+
function _slicedToArray(arr, i) {
|
3858
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
3859
|
+
}
|
3860
|
+
|
3861
|
+
function template$2(data) {
|
3828
3862
|
var __t, __p = '';
|
3829
3863
|
__p += '<a class="back">' +
|
3830
3864
|
((__t = ( I18n.t('pageflow.editor.templates.back_button_decorator.outline') )) == null ? '' : __t) +
|
@@ -3833,7 +3867,7 @@ return __p
|
|
3833
3867
|
}
|
3834
3868
|
|
3835
3869
|
var BackButtonDecoratorView = Marionette.Layout.extend({
|
3836
|
-
template: template$
|
3870
|
+
template: template$2,
|
3837
3871
|
className: 'back_button_decorator',
|
3838
3872
|
events: {
|
3839
3873
|
'click a.back': 'goBack'
|
@@ -3852,7 +3886,7 @@ var BackButtonDecoratorView = Marionette.Layout.extend({
|
|
3852
3886
|
}
|
3853
3887
|
});
|
3854
3888
|
|
3855
|
-
function template$
|
3889
|
+
function template$3(data) {
|
3856
3890
|
var __t, __p = '';
|
3857
3891
|
__p += '<input type="checkbox">\n<label class="file_name"></label>\n<span class="duration"></span>\n\n<div class="actions">\n <a class="remove" title="' +
|
3858
3892
|
((__t = ( I18n.t('pageflow.editor.templates.confirmable_file_item.remove') )) == null ? '' : __t) +
|
@@ -3862,7 +3896,7 @@ return __p
|
|
3862
3896
|
|
3863
3897
|
var ConfirmableFileItemView = Marionette.ItemView.extend({
|
3864
3898
|
tagName: 'li',
|
3865
|
-
template: template$
|
3899
|
+
template: template$3,
|
3866
3900
|
ui: {
|
3867
3901
|
fileName: '.file_name',
|
3868
3902
|
duration: '.duration',
|
@@ -3895,7 +3929,7 @@ var ConfirmableFileItemView = Marionette.ItemView.extend({
|
|
3895
3929
|
}
|
3896
3930
|
});
|
3897
3931
|
|
3898
|
-
function template$
|
3932
|
+
function template$4(data) {
|
3899
3933
|
var __t, __p = '';
|
3900
3934
|
__p += '<div class="blank_slate">\n <p>\n ' +
|
3901
3935
|
((__t = ( I18n.t('pageflow.editor.templates.confirm_encoding.all_released') )) == null ? '' : __t) +
|
@@ -3914,7 +3948,7 @@ return __p
|
|
3914
3948
|
}
|
3915
3949
|
|
3916
3950
|
var ConfirmEncodingView = Marionette.ItemView.extend({
|
3917
|
-
template: template$
|
3951
|
+
template: template$4,
|
3918
3952
|
className: 'confirm_encoding',
|
3919
3953
|
ui: {
|
3920
3954
|
blankSlate: '.blank_slate',
|
@@ -4068,7 +4102,7 @@ var failureIndicatingView = modelLifecycleTrackingView({
|
|
4068
4102
|
}
|
4069
4103
|
});
|
4070
4104
|
|
4071
|
-
function template$
|
4105
|
+
function template$5(data) {
|
4072
4106
|
var __t, __p = '';
|
4073
4107
|
__p += '<a class="close" href="#">' +
|
4074
4108
|
((__t = ( I18n.t('pageflow.editor.templates.edit_entry.close') )) == null ? '' : __t) +
|
@@ -4085,7 +4119,7 @@ return __p
|
|
4085
4119
|
}
|
4086
4120
|
|
4087
4121
|
var EditEntryView = Marionette.Layout.extend({
|
4088
|
-
template: template$
|
4122
|
+
template: template$5,
|
4089
4123
|
mixins: [failureIndicatingView, tooltipContainer],
|
4090
4124
|
ui: {
|
4091
4125
|
publishButton: 'a.publish',
|
@@ -4167,7 +4201,7 @@ var EditEntryView = Marionette.Layout.extend({
|
|
4167
4201
|
}
|
4168
4202
|
});
|
4169
4203
|
|
4170
|
-
function template$
|
4204
|
+
function template$6(data) {
|
4171
4205
|
var __t, __p = '';
|
4172
4206
|
__p += '<div class="widget_type">\n</div>\n<a class="settings" title="' +
|
4173
4207
|
((__t = ( I18n.t('pageflow.editor.templates.widget_item.settings') )) == null ? '' : __t) +
|
@@ -4176,7 +4210,7 @@ return __p
|
|
4176
4210
|
}
|
4177
4211
|
|
4178
4212
|
var WidgetItemView = Marionette.Layout.extend({
|
4179
|
-
template: template$
|
4213
|
+
template: template$6,
|
4180
4214
|
tagName: 'li',
|
4181
4215
|
className: 'widget_item',
|
4182
4216
|
regions: {
|
@@ -4213,14 +4247,14 @@ var WidgetItemView = Marionette.Layout.extend({
|
|
4213
4247
|
}
|
4214
4248
|
});
|
4215
4249
|
|
4216
|
-
function template$
|
4250
|
+
function template$7(data) {
|
4217
4251
|
var __p = '';
|
4218
4252
|
__p += '<ol class="widgets">\n</ol>\n';
|
4219
4253
|
return __p
|
4220
4254
|
}
|
4221
4255
|
|
4222
4256
|
var EditWidgetsView = Marionette.Layout.extend({
|
4223
|
-
template: template$
|
4257
|
+
template: template$7,
|
4224
4258
|
ui: {
|
4225
4259
|
widgets: '.widgets'
|
4226
4260
|
},
|
@@ -4236,14 +4270,14 @@ var EditWidgetsView = Marionette.Layout.extend({
|
|
4236
4270
|
}
|
4237
4271
|
});
|
4238
4272
|
|
4239
|
-
function template$
|
4273
|
+
function template$8(data) {
|
4240
4274
|
var __p = '';
|
4241
4275
|
__p += '<div class="image"></div>\n<div class="label"></div>\n';
|
4242
4276
|
return __p
|
4243
4277
|
}
|
4244
4278
|
|
4245
4279
|
var BackgroundPositioningPreviewView = Marionette.ItemView.extend({
|
4246
|
-
template: template$
|
4280
|
+
template: template$8,
|
4247
4281
|
className: 'preview',
|
4248
4282
|
modelEvents: {
|
4249
4283
|
change: 'update'
|
@@ -4274,14 +4308,14 @@ var BackgroundPositioningPreviewView = Marionette.ItemView.extend({
|
|
4274
4308
|
}
|
4275
4309
|
});
|
4276
4310
|
|
4277
|
-
function template$
|
4311
|
+
function template$9(data) {
|
4278
4312
|
var __p = '';
|
4279
4313
|
__p += '<div class="container">\n <div class="slider horizontal">\n </div>\n <div class="slider vertical">\n </div>\n <div class="percent horizontal">\n <input type="number" min="0" max="100">\n %\n </div>\n <div class="percent vertical">\n <input type="number" min="0" max="100">\n %\n </div>\n</div>\n';
|
4280
4314
|
return __p
|
4281
4315
|
}
|
4282
4316
|
|
4283
4317
|
var BackgroundPositioningSlidersView = Marionette.ItemView.extend({
|
4284
|
-
template: template$
|
4318
|
+
template: template$9,
|
4285
4319
|
className: '',
|
4286
4320
|
ui: {
|
4287
4321
|
container: '.container',
|
@@ -4362,7 +4396,7 @@ var BackgroundPositioningSlidersView = Marionette.ItemView.extend({
|
|
4362
4396
|
}
|
4363
4397
|
});
|
4364
4398
|
|
4365
|
-
function template$
|
4399
|
+
function template$a(data) {
|
4366
4400
|
var __t, __p = '';
|
4367
4401
|
__p += '<div class="box">\n <div class="content">\n <h2 class="dialog-header">' +
|
4368
4402
|
((__t = ( I18n.t('pageflow.editor.templates.background_positioning.title') )) == null ? '' : __t) +
|
@@ -4379,7 +4413,7 @@ return __p
|
|
4379
4413
|
}
|
4380
4414
|
|
4381
4415
|
var BackgroundPositioningView = Marionette.ItemView.extend({
|
4382
|
-
template: template$
|
4416
|
+
template: template$a,
|
4383
4417
|
className: 'background_positioning editor dialog',
|
4384
4418
|
mixins: [dialogView],
|
4385
4419
|
ui: {
|
@@ -4433,14 +4467,14 @@ BackgroundPositioningView.open = function (options) {
|
|
4433
4467
|
app.dialogRegion.show(new BackgroundPositioningView(options));
|
4434
4468
|
};
|
4435
4469
|
|
4436
|
-
function template$
|
4470
|
+
function template$b(data) {
|
4437
4471
|
var __p = '';
|
4438
4472
|
__p += '<div class="label"></div>\n<a href="#"></a>\n';
|
4439
4473
|
return __p
|
4440
4474
|
}
|
4441
4475
|
|
4442
4476
|
var DropDownButtonItemView = Marionette.ItemView.extend({
|
4443
|
-
template: template$
|
4477
|
+
template: template$b,
|
4444
4478
|
tagName: 'li',
|
4445
4479
|
className: 'drop_down_button_item',
|
4446
4480
|
ui: {
|
@@ -4454,6 +4488,10 @@ var DropDownButtonItemView = Marionette.ItemView.extend({
|
|
4454
4488
|
}
|
4455
4489
|
|
4456
4490
|
event.preventDefault();
|
4491
|
+
|
4492
|
+
if (this.model.get('kind') === 'checkBox' || this.model.get('kind') === 'radio') {
|
4493
|
+
event.stopPropagation();
|
4494
|
+
}
|
4457
4495
|
}
|
4458
4496
|
},
|
4459
4497
|
modelEvents: {
|
@@ -4473,7 +4511,11 @@ var DropDownButtonItemView = Marionette.ItemView.extend({
|
|
4473
4511
|
this.ui.label.text(this.model.get('label'));
|
4474
4512
|
this.$el.toggleClass('is_selectable', !!this.model.selected);
|
4475
4513
|
this.$el.toggleClass('is_disabled', !!this.model.get('disabled'));
|
4514
|
+
this.$el.toggleClass('is_hidden', !!this.model.get('hidden'));
|
4515
|
+
this.$el.toggleClass('has_check_box', this.model.get('kind') === 'checkBox');
|
4516
|
+
this.$el.toggleClass('has_radio', this.model.get('kind') === 'radio');
|
4476
4517
|
this.$el.toggleClass('is_checked', !!this.model.get('checked'));
|
4518
|
+
this.$el.toggleClass('separated', !!this.model.get('separated'));
|
4477
4519
|
this.$el.data('name', this.model.get('name'));
|
4478
4520
|
}
|
4479
4521
|
});
|
@@ -4490,7 +4532,7 @@ var DropDownButtonItemListView = function DropDownButtonItemListView(options) {
|
|
4490
4532
|
});
|
4491
4533
|
};
|
4492
4534
|
|
4493
|
-
function template$
|
4535
|
+
function template$c(data) {
|
4494
4536
|
var __p = '';
|
4495
4537
|
__p += '<button></button>\n\n<div class="drop_down_button_menu">\n</div>\n';
|
4496
4538
|
return __p
|
@@ -4514,6 +4556,13 @@ return __p
|
|
4514
4556
|
* Require click to open menu. By default, menu opens on when the
|
4515
4557
|
* mouse enters the button.
|
4516
4558
|
*
|
4559
|
+
* @param {String} [options.alignMenu]
|
4560
|
+
* "right" to align menu on the right. Aligned on the left by
|
4561
|
+
* default.
|
4562
|
+
*
|
4563
|
+
* @param {String} [options.buttonClassName]
|
4564
|
+
* CSS class name for button element.
|
4565
|
+
*
|
4517
4566
|
* ## Item Models
|
4518
4567
|
*
|
4519
4568
|
* The following model attributes can be used to control the
|
@@ -4532,7 +4581,7 @@ return __p
|
|
4532
4581
|
*/
|
4533
4582
|
|
4534
4583
|
var DropDownButtonView = Marionette.ItemView.extend({
|
4535
|
-
template: template$
|
4584
|
+
template: template$c,
|
4536
4585
|
className: 'drop_down_button',
|
4537
4586
|
ui: {
|
4538
4587
|
button: '> button',
|
@@ -4553,7 +4602,9 @@ var DropDownButtonView = Marionette.ItemView.extend({
|
|
4553
4602
|
this.$el.toggleClass('full_width', !!this.options.fullWidth);
|
4554
4603
|
this.ui.button.toggleClass('has_icon_and_text', !!this.options.label);
|
4555
4604
|
this.ui.button.toggleClass('has_icon_only', !this.options.label);
|
4605
|
+
this.ui.button.toggleClass('ellipsis_icon', !!this.options.ellipsisIcon);
|
4556
4606
|
this.ui.button.text(this.options.label);
|
4607
|
+
this.ui.button.addClass(this.options.buttonClassName);
|
4557
4608
|
this.ui.menu.append(this.subview(new DropDownButtonItemListView({
|
4558
4609
|
items: this.options.items
|
4559
4610
|
})).el);
|
@@ -4577,7 +4628,7 @@ var DropDownButtonView = Marionette.ItemView.extend({
|
|
4577
4628
|
var offset = this.$el.offset();
|
4578
4629
|
this.ui.menu.css({
|
4579
4630
|
top: offset.top + this.$el.height(),
|
4580
|
-
left: offset.left,
|
4631
|
+
left: this.options.alignMenu === 'right' ? offset.left + this.$el.width() - this.ui.menu.outerWidth() : offset.left,
|
4581
4632
|
width: this.options.fullWidth ? this.$el.width() : null
|
4582
4633
|
});
|
4583
4634
|
},
|
@@ -4607,7 +4658,7 @@ var DropDownButtonView = Marionette.ItemView.extend({
|
|
4607
4658
|
}
|
4608
4659
|
});
|
4609
4660
|
|
4610
|
-
function template$
|
4661
|
+
function template$d(data) {
|
4611
4662
|
var __p = '';
|
4612
4663
|
__p += '<div class="pictogram"></div>\n';
|
4613
4664
|
return __p
|
@@ -4615,7 +4666,7 @@ return __p
|
|
4615
4666
|
|
4616
4667
|
var FileThumbnailView = Marionette.ItemView.extend({
|
4617
4668
|
className: 'file_thumbnail',
|
4618
|
-
template: template$
|
4669
|
+
template: template$d,
|
4619
4670
|
modelEvents: {
|
4620
4671
|
'change:state': 'update'
|
4621
4672
|
},
|
@@ -4712,6 +4763,7 @@ var FileInputView = Marionette.ItemView.extend({
|
|
4712
4763
|
if (dropDownMenuItems.length) {
|
4713
4764
|
this.appendSubview(new DropDownButtonView({
|
4714
4765
|
items: dropDownMenuItems,
|
4766
|
+
ellipsisIcon: true,
|
4715
4767
|
openOnClick: true
|
4716
4768
|
}));
|
4717
4769
|
}
|
@@ -4756,15 +4808,7 @@ var FileInputView = Marionette.ItemView.extend({
|
|
4756
4808
|
|
4757
4809
|
if (file) {
|
4758
4810
|
_.each(this.options.dropDownMenuItems, function (item) {
|
4759
|
-
items.add(
|
4760
|
-
name: item.name,
|
4761
|
-
label: item.label
|
4762
|
-
}, {
|
4763
|
-
inputModel: _this.model,
|
4764
|
-
propertyName: _this.options.propertyName,
|
4765
|
-
file: file,
|
4766
|
-
selected: item.selected
|
4767
|
-
}));
|
4811
|
+
items.add(_this._createCustomMenuItem(file, item));
|
4768
4812
|
});
|
4769
4813
|
|
4770
4814
|
items.add(new FileInputView.EditFileSettingsMenuItem({
|
@@ -4777,6 +4821,31 @@ var FileInputView = Marionette.ItemView.extend({
|
|
4777
4821
|
|
4778
4822
|
return items;
|
4779
4823
|
},
|
4824
|
+
_createCustomMenuItem: function _createCustomMenuItem(file, item) {
|
4825
|
+
var _this2 = this;
|
4826
|
+
|
4827
|
+
var options = {
|
4828
|
+
inputModel: this.model,
|
4829
|
+
propertyName: this.options.propertyName,
|
4830
|
+
file: file
|
4831
|
+
};
|
4832
|
+
|
4833
|
+
if (typeof item === 'function') {
|
4834
|
+
return new item({}, options);
|
4835
|
+
} else {
|
4836
|
+
return new FileInputView.CustomMenuItem({
|
4837
|
+
name: item.name,
|
4838
|
+
label: item.label,
|
4839
|
+
checked: item.checked,
|
4840
|
+
items: item.items && new Backbone.Collection(item.items.map(function (item) {
|
4841
|
+
return _this2._createCustomMenuItem(file, item);
|
4842
|
+
}))
|
4843
|
+
}, _objectSpread2(_objectSpread2({}, options), {}, {
|
4844
|
+
selected: item.selected,
|
4845
|
+
items: item.items
|
4846
|
+
}));
|
4847
|
+
}
|
4848
|
+
},
|
4780
4849
|
_listenToNestedTextTrackFiles: function _listenToNestedTextTrackFiles(file) {
|
4781
4850
|
if (this.textTrackFiles) {
|
4782
4851
|
this.stopListening(this.textTrackFiles);
|
@@ -4851,6 +4920,7 @@ FileInputView.DefaultTextTrackFileMenuItem = Backbone.Model.extend({
|
|
4851
4920
|
this.update();
|
4852
4921
|
},
|
4853
4922
|
update: function update() {
|
4923
|
+
this.set('kind', 'radio');
|
4854
4924
|
this.set('checked', this.options.textTrackFile == this.getDefaultTextTrackFile());
|
4855
4925
|
this.set('name', this.options.textTrackFile ? null : 'no_default_text_track');
|
4856
4926
|
this.set('label', this.options.textTrackFile ? this.options.textTrackFile.displayLabel() : this.options.textTrackFiles.length ? I18n$1.t('pageflow.editor.views.inputs.file_input.auto_default_text_track') : I18n$1.t('pageflow.editor.views.inputs.file_input.no_default_text_track'));
|
@@ -4867,14 +4937,14 @@ FileInputView.DefaultTextTrackFileMenuItem = Backbone.Model.extend({
|
|
4867
4937
|
}
|
4868
4938
|
});
|
4869
4939
|
|
4870
|
-
function template$
|
4940
|
+
function template$e(data) {
|
4871
4941
|
var __p = '';
|
4872
4942
|
__p += '<div class="spinner">\n <div class="rect1"></div>\n <div class="rect2"></div>\n <div class="rect3"></div>\n <div class="rect4"></div>\n <div class="rect5"></div>\n</div>\n';
|
4873
4943
|
return __p
|
4874
4944
|
}
|
4875
4945
|
|
4876
4946
|
var LoadingView = Marionette.ItemView.extend({
|
4877
|
-
template: template$
|
4947
|
+
template: template$e,
|
4878
4948
|
className: 'loading',
|
4879
4949
|
tagName: 'li'
|
4880
4950
|
});
|
@@ -4897,7 +4967,7 @@ var selectableView = {
|
|
4897
4967
|
}
|
4898
4968
|
};
|
4899
4969
|
|
4900
|
-
function template$
|
4970
|
+
function template$f(data) {
|
4901
4971
|
var __t, __p = '';
|
4902
4972
|
__p += '<span class="theme_name"></span>\n<span class="button_or_checkmark">\n <p class="theme_in_use"></p>\n <a class="use_theme">' +
|
4903
4973
|
((__t = ( I18n.t('pageflow.editor.templates.theme.use') )) == null ? '' : __t) +
|
@@ -4907,7 +4977,7 @@ return __p
|
|
4907
4977
|
|
4908
4978
|
var ThemeItemView = Marionette.ItemView.extend({
|
4909
4979
|
tagName: 'li',
|
4910
|
-
template: template$
|
4980
|
+
template: template$f,
|
4911
4981
|
className: 'theme_item',
|
4912
4982
|
mixins: [selectableView],
|
4913
4983
|
selectionAttribute: 'theme',
|
@@ -4938,7 +5008,7 @@ var ThemeItemView = Marionette.ItemView.extend({
|
|
4938
5008
|
}
|
4939
5009
|
});
|
4940
5010
|
|
4941
|
-
function template$
|
5011
|
+
function template$g(data) {
|
4942
5012
|
var __t, __p = '';
|
4943
5013
|
__p += '<div class="box">\n <h1 class="dialog-header">\n ' +
|
4944
5014
|
((__t = ( I18n.t('pageflow.editor.templates.change_theme_dialog.header') )) == null ? '' : __t) +
|
@@ -4953,7 +5023,7 @@ return __p
|
|
4953
5023
|
}
|
4954
5024
|
|
4955
5025
|
var ChangeThemeDialogView = Marionette.ItemView.extend({
|
4956
|
-
template: template$
|
5026
|
+
template: template$g,
|
4957
5027
|
className: 'change_theme dialog editor',
|
4958
5028
|
mixins: [dialogView],
|
4959
5029
|
ui: {
|
@@ -5021,14 +5091,14 @@ ChangeThemeDialogView.changeTheme = function (options) {
|
|
5021
5091
|
}).promise();
|
5022
5092
|
};
|
5023
5093
|
|
5024
|
-
function template$
|
5094
|
+
function template$h(data) {
|
5025
5095
|
var __p = '';
|
5026
5096
|
__p += '\n';
|
5027
5097
|
return __p
|
5028
5098
|
}
|
5029
5099
|
|
5030
5100
|
var StaticThumbnailView = Marionette.ItemView.extend({
|
5031
|
-
template: template$
|
5101
|
+
template: template$h,
|
5032
5102
|
className: 'static_thumbnail',
|
5033
5103
|
modelEvents: {
|
5034
5104
|
'change:configuration': 'update'
|
@@ -5092,7 +5162,7 @@ var ModelThumbnailView = Marionette.View.extend({
|
|
5092
5162
|
}
|
5093
5163
|
});
|
5094
5164
|
|
5095
|
-
function template$
|
5165
|
+
function template$i(data) {
|
5096
5166
|
var __p = '';
|
5097
5167
|
__p += '<label>\n <span class="name"></span>\n <span class="inline_help"></span>\n</label>\n<div class="title"></div>\n<button class="unset"></button>\n<button class="choose"></button>\n';
|
5098
5168
|
return __p
|
@@ -5108,7 +5178,7 @@ var ReferenceInputView = Marionette.ItemView.extend(
|
|
5108
5178
|
/** @lends ReferenceInputView.prototype */
|
5109
5179
|
{
|
5110
5180
|
mixins: [inputView],
|
5111
|
-
template: template$
|
5181
|
+
template: template$i,
|
5112
5182
|
className: 'reference_input',
|
5113
5183
|
ui: {
|
5114
5184
|
title: '.title',
|
@@ -5207,7 +5277,7 @@ var ThemeInputView = ReferenceInputView.extend({
|
|
5207
5277
|
}
|
5208
5278
|
});
|
5209
5279
|
|
5210
|
-
function template$
|
5280
|
+
function template$j(data) {
|
5211
5281
|
var __t, __p = '';
|
5212
5282
|
__p += '<a class="back">' +
|
5213
5283
|
((__t = ( I18n.t('pageflow.editor.templates.edit_meta_data.outline') )) == null ? '' : __t) +
|
@@ -5220,7 +5290,7 @@ return __p
|
|
5220
5290
|
}
|
5221
5291
|
|
5222
5292
|
var EditMetaDataView = Marionette.Layout.extend({
|
5223
|
-
template: template$
|
5293
|
+
template: template$j,
|
5224
5294
|
className: 'edit_meta_data',
|
5225
5295
|
mixins: [failureIndicatingView],
|
5226
5296
|
regions: {
|
@@ -5320,7 +5390,7 @@ var EditMetaDataView = Marionette.Layout.extend({
|
|
5320
5390
|
}
|
5321
5391
|
});
|
5322
5392
|
|
5323
|
-
function template$
|
5393
|
+
function template$k(data) {
|
5324
5394
|
var __t, __p = '';
|
5325
5395
|
__p += '<a class="back">' +
|
5326
5396
|
((__t = ( I18n.t('pageflow.editor.templates.edit_widget.back') )) == null ? '' : __t) +
|
@@ -5329,7 +5399,7 @@ return __p
|
|
5329
5399
|
}
|
5330
5400
|
|
5331
5401
|
var EditWidgetView = Marionette.ItemView.extend({
|
5332
|
-
template: template$
|
5402
|
+
template: template$k,
|
5333
5403
|
className: 'edit_widget',
|
5334
5404
|
events: {
|
5335
5405
|
'click a.back': function clickABack() {
|
@@ -5361,7 +5431,7 @@ var loadable = modelLifecycleTrackingView({
|
|
5361
5431
|
}
|
5362
5432
|
});
|
5363
5433
|
|
5364
|
-
function template$
|
5434
|
+
function template$l(data) {
|
5365
5435
|
var __p = '';
|
5366
5436
|
__p += '<span class="file_thumbnail"></span>\n\n<span class="file_name"></span>\n';
|
5367
5437
|
return __p
|
@@ -5369,7 +5439,7 @@ return __p
|
|
5369
5439
|
|
5370
5440
|
var ExplorerFileItemView = Marionette.ItemView.extend({
|
5371
5441
|
tagName: 'li',
|
5372
|
-
template: template$
|
5442
|
+
template: template$l,
|
5373
5443
|
mixins: [loadable, selectableView],
|
5374
5444
|
selectionAttribute: 'file',
|
5375
5445
|
ui: {
|
@@ -5406,14 +5476,14 @@ var ExplorerFileItemView = Marionette.ItemView.extend({
|
|
5406
5476
|
}
|
5407
5477
|
});
|
5408
5478
|
|
5409
|
-
function template$
|
5479
|
+
function template$m(data) {
|
5410
5480
|
var __p = '';
|
5411
5481
|
__p += '<a href="">\n <span class="title"></span>\n</a>\n';
|
5412
5482
|
return __p
|
5413
5483
|
}
|
5414
5484
|
|
5415
5485
|
var OtherEntryItemView = Marionette.ItemView.extend({
|
5416
|
-
template: template$
|
5486
|
+
template: template$m,
|
5417
5487
|
className: 'other_entry_item',
|
5418
5488
|
tagName: 'li',
|
5419
5489
|
mixins: [selectableView],
|
@@ -5428,7 +5498,7 @@ var OtherEntryItemView = Marionette.ItemView.extend({
|
|
5428
5498
|
}
|
5429
5499
|
});
|
5430
5500
|
|
5431
|
-
function template$
|
5501
|
+
function template$n(data) {
|
5432
5502
|
var __t, __p = '';
|
5433
5503
|
__p +=
|
5434
5504
|
((__t = ( I18n.t('pageflow.editor.templates.other_entries_blank_slate.none_available') )) == null ? '' : __t) +
|
@@ -5454,7 +5524,7 @@ var OtherEntriesCollectionView = Marionette.View.extend({
|
|
5454
5524
|
selection: this.options.selection
|
5455
5525
|
},
|
5456
5526
|
blankSlateViewConstructor: Marionette.ItemView.extend({
|
5457
|
-
template: template$
|
5527
|
+
template: template$n,
|
5458
5528
|
tagName: 'li',
|
5459
5529
|
className: 'blank_slate'
|
5460
5530
|
}),
|
@@ -5465,7 +5535,7 @@ var OtherEntriesCollectionView = Marionette.View.extend({
|
|
5465
5535
|
}
|
5466
5536
|
});
|
5467
5537
|
|
5468
|
-
function template$
|
5538
|
+
function template$o(data) {
|
5469
5539
|
var __t, __p = '';
|
5470
5540
|
__p += '<div class="box">\n <h1 class="dialog-header">\n ' +
|
5471
5541
|
((__t = ( I18n.t('pageflow.editor.templates.files_explorer.reuse_files') )) == null ? '' : __t) +
|
@@ -5494,7 +5564,7 @@ return __p
|
|
5494
5564
|
}
|
5495
5565
|
|
5496
5566
|
var FilesExplorerView = Marionette.ItemView.extend({
|
5497
|
-
template: template$
|
5567
|
+
template: template$o,
|
5498
5568
|
className: 'files_explorer editor dialog',
|
5499
5569
|
mixins: [dialogView],
|
5500
5570
|
ui: {
|
@@ -5581,7 +5651,7 @@ FilesExplorerView.open = function (options) {
|
|
5581
5651
|
app.dialogRegion.show(new FilesExplorerView(options));
|
5582
5652
|
};
|
5583
5653
|
|
5584
|
-
function template$
|
5654
|
+
function template$p(data) {
|
5585
5655
|
var __p = '';
|
5586
5656
|
__p += '<th></th>\n<td></td>';
|
5587
5657
|
return __p
|
@@ -5589,17 +5659,18 @@ return __p
|
|
5589
5659
|
|
5590
5660
|
var FileMetaDataItemView = Marionette.ItemView.extend({
|
5591
5661
|
tagName: 'tr',
|
5592
|
-
template: template$
|
5662
|
+
template: template$p,
|
5593
5663
|
ui: {
|
5594
5664
|
label: 'th',
|
5595
5665
|
value: 'td'
|
5596
5666
|
},
|
5597
5667
|
onRender: function onRender() {
|
5598
|
-
this.
|
5599
|
-
el: this.ui.value,
|
5668
|
+
this.appendSubview(new this.options.valueView(_.extend({
|
5600
5669
|
model: this.model,
|
5601
5670
|
name: this.options.name
|
5602
|
-
}, this.options.valueViewOptions || {}))
|
5671
|
+
}, this.options.valueViewOptions || {})), {
|
5672
|
+
to: this.ui.value
|
5673
|
+
});
|
5603
5674
|
this.ui.label.text(this.labelText());
|
5604
5675
|
},
|
5605
5676
|
labelText: function labelText() {
|
@@ -5611,7 +5682,7 @@ var FileMetaDataItemView = Marionette.ItemView.extend({
|
|
5611
5682
|
}
|
5612
5683
|
});
|
5613
5684
|
|
5614
|
-
function template$
|
5685
|
+
function template$q(data) {
|
5615
5686
|
var __p = '';
|
5616
5687
|
__p += '<p class="percent"></p>\n<p class="description"></p>\n<p class="error_message"></p>';
|
5617
5688
|
return __p
|
@@ -5620,7 +5691,7 @@ return __p
|
|
5620
5691
|
var FileStageItemView = Marionette.ItemView.extend({
|
5621
5692
|
tagName: 'li',
|
5622
5693
|
className: 'file_stage_item',
|
5623
|
-
template: template$
|
5694
|
+
template: template$q,
|
5624
5695
|
ui: {
|
5625
5696
|
description: '.description',
|
5626
5697
|
percent: '.percent',
|
@@ -5661,7 +5732,7 @@ var FileStageItemView = Marionette.ItemView.extend({
|
|
5661
5732
|
}
|
5662
5733
|
});
|
5663
5734
|
|
5664
|
-
function template$
|
5735
|
+
function template$r(data) {
|
5665
5736
|
var __t, __p = '';
|
5666
5737
|
__p += '<span class="file_thumbnail"></span>\n\n<span class="file_name"></span>\n<a class="select">' +
|
5667
5738
|
((__t = ( I18n.t('pageflow.editor.templates.file_item.select') )) == null ? '' : __t) +
|
@@ -5685,7 +5756,7 @@ return __p
|
|
5685
5756
|
|
5686
5757
|
var FileItemView = Marionette.ItemView.extend({
|
5687
5758
|
tagName: 'li',
|
5688
|
-
template: template$
|
5759
|
+
template: template$r,
|
5689
5760
|
mixins: [loadable],
|
5690
5761
|
ui: {
|
5691
5762
|
fileName: '.file_name',
|
@@ -5800,7 +5871,7 @@ var FileItemView = Marionette.ItemView.extend({
|
|
5800
5871
|
}
|
5801
5872
|
});
|
5802
5873
|
|
5803
|
-
function template$
|
5874
|
+
function template$s(data) {
|
5804
5875
|
var __t, __p = '';
|
5805
5876
|
__p += '<div class="filtered_files-banner">\n <span class="filtered_files-banner_prefix">\n ' +
|
5806
5877
|
((__t = ( I18n.t('pageflow.editor.views.filtered_files_view.banner_prefix') )) == null ? '' : __t) +
|
@@ -5819,7 +5890,7 @@ return __p
|
|
5819
5890
|
}
|
5820
5891
|
|
5821
5892
|
var FilteredFilesView = Marionette.ItemView.extend({
|
5822
|
-
template: template$
|
5893
|
+
template: template$s,
|
5823
5894
|
className: 'filtered_files',
|
5824
5895
|
ui: {
|
5825
5896
|
banner: '.filtered_files-banner',
|
@@ -5883,7 +5954,7 @@ var FilteredFilesView = Marionette.ItemView.extend({
|
|
5883
5954
|
}
|
5884
5955
|
});
|
5885
5956
|
|
5886
|
-
function template$
|
5957
|
+
function template$t(data) {
|
5887
5958
|
var __t, __p = '';
|
5888
5959
|
__p += '<div class="box choose_importer_box">\n <h1 class="dialog-header">' +
|
5889
5960
|
((__t = ( I18n.t('pageflow.editor.views.files_view.importer.heading') )) == null ? '' : __t) +
|
@@ -5893,7 +5964,7 @@ __p += '<div class="box choose_importer_box">\n <h1 class="dialog-header">' +
|
|
5893
5964
|
return __p
|
5894
5965
|
}
|
5895
5966
|
|
5896
|
-
function template$
|
5967
|
+
function template$u(data) {
|
5897
5968
|
var __t, __p = '';
|
5898
5969
|
__p += '<button class=\'importer\' data-key=\'' +
|
5899
5970
|
((__t = ( data.fileImporter.key )) == null ? '' : __t) +
|
@@ -5908,7 +5979,7 @@ return __p
|
|
5908
5979
|
}
|
5909
5980
|
|
5910
5981
|
var ImporterSelectView = Marionette.ItemView.extend({
|
5911
|
-
template: template$
|
5982
|
+
template: template$u,
|
5912
5983
|
className: 'importer_select',
|
5913
5984
|
tagName: 'li',
|
5914
5985
|
events: {
|
@@ -5925,7 +5996,7 @@ var ImporterSelectView = Marionette.ItemView.extend({
|
|
5925
5996
|
});
|
5926
5997
|
|
5927
5998
|
var ChooseImporterView = Marionette.ItemView.extend({
|
5928
|
-
template: template$
|
5999
|
+
template: template$t,
|
5929
6000
|
className: 'choose_importer editor dialog',
|
5930
6001
|
mixins: [dialogView],
|
5931
6002
|
ui: {
|
@@ -5960,7 +6031,7 @@ ChooseImporterView.open = function (options) {
|
|
5960
6031
|
app.dialogRegion.show(new ChooseImporterView(options).render());
|
5961
6032
|
};
|
5962
6033
|
|
5963
|
-
function template$
|
6034
|
+
function template$v(data) {
|
5964
6035
|
var __t, __p = '';
|
5965
6036
|
__p += '<div class="box file_importer_box">\n <h1 class="dialog-header">' +
|
5966
6037
|
((__t = ( I18n.t('pageflow.editor.file_importers.'+data.importerKey+'.dialog_label') )) == null ? '' : __t) +
|
@@ -5974,7 +6045,7 @@ __p += '<div class="box file_importer_box">\n <h1 class="dialog-header">' +
|
|
5974
6045
|
return __p
|
5975
6046
|
}
|
5976
6047
|
|
5977
|
-
function template$
|
6048
|
+
function template$w(data) {
|
5978
6049
|
var __t, __p = '';
|
5979
6050
|
__p += '<div class="box">\n <h1 class="dialog-header">' +
|
5980
6051
|
((__t = ( I18n.t('pageflow.editor.templates.confirm_upload.header') )) == null ? '' : __t) +
|
@@ -5990,6 +6061,73 @@ __p += '<div class="box">\n <h1 class="dialog-header">' +
|
|
5990
6061
|
return __p
|
5991
6062
|
}
|
5992
6063
|
|
6064
|
+
function template$x(data) {
|
6065
|
+
var __p = '';
|
6066
|
+
__p += '';
|
6067
|
+
return __p
|
6068
|
+
}
|
6069
|
+
|
6070
|
+
var EditFileView = Marionette.ItemView.extend({
|
6071
|
+
template: template$x,
|
6072
|
+
className: 'edit_file',
|
6073
|
+
onRender: function onRender() {
|
6074
|
+
var fileType = this.model.fileType();
|
6075
|
+
var entry = this.options.entry || state.entry;
|
6076
|
+
var tab = new ConfigurationEditorTabView({
|
6077
|
+
model: this.model.configuration,
|
6078
|
+
attributeTranslationKeyPrefixes: ['pageflow.editor.files.attributes.' + fileType.collectionName, 'pageflow.editor.files.common_attributes', 'pageflow.editor.nested_files.' + fileType.collectionName, 'pageflow.editor.nested_files.common_attributes']
|
6079
|
+
});
|
6080
|
+
|
6081
|
+
if (this.options.displayFileName) {
|
6082
|
+
tab.input('file_name', TextInputView, {
|
6083
|
+
model: this.model,
|
6084
|
+
disabled: true
|
6085
|
+
});
|
6086
|
+
}
|
6087
|
+
|
6088
|
+
tab.input('rights', TextInputView, {
|
6089
|
+
model: this.model,
|
6090
|
+
placeholder: entry.get('default_file_rights')
|
6091
|
+
});
|
6092
|
+
|
6093
|
+
if (editor.entryType.supportsExtendedFileRights && !fileType.noExtendedFileRights) {
|
6094
|
+
tab.input('source_url', TextInputView);
|
6095
|
+
tab.input('license', SelectInputView, {
|
6096
|
+
includeBlank: true,
|
6097
|
+
blankTranslationKey: 'pageflow.editor.files.common_attributes.license.blank',
|
6098
|
+
values: state.config.availableFileLicenses,
|
6099
|
+
texts: state.config.availableFileLicenses.map(function (name) {
|
6100
|
+
return I18n$1.t("pageflow.file_licenses.".concat(name, ".name"));
|
6101
|
+
})
|
6102
|
+
});
|
6103
|
+
tab.input('rights_display', SelectInputView, {
|
6104
|
+
values: ['credits', 'inline']
|
6105
|
+
});
|
6106
|
+
}
|
6107
|
+
|
6108
|
+
tab.view(SeparatorView);
|
6109
|
+
|
6110
|
+
_(this.fileTypeInputs()).each(function (options) {
|
6111
|
+
tab.input(options.name, options.inputView, options.inputViewOptions);
|
6112
|
+
});
|
6113
|
+
|
6114
|
+
tab.input('original_url', UrlDisplayView, {
|
6115
|
+
model: this.model
|
6116
|
+
});
|
6117
|
+
this.appendSubview(tab);
|
6118
|
+
},
|
6119
|
+
fileTypeInputs: function fileTypeInputs() {
|
6120
|
+
var fileType = this.model.fileType();
|
6121
|
+
return _.chain(fileType.configurationEditorInputs).map(function (inputs) {
|
6122
|
+
if (_.isFunction(inputs)) {
|
6123
|
+
return inputs(this.model);
|
6124
|
+
} else {
|
6125
|
+
return inputs;
|
6126
|
+
}
|
6127
|
+
}, this).flatten().value();
|
6128
|
+
}
|
6129
|
+
});
|
6130
|
+
|
5993
6131
|
var UploadableFilesView = Marionette.View.extend({
|
5994
6132
|
className: 'uploadable_files',
|
5995
6133
|
initialize: function initialize() {
|
@@ -6036,7 +6174,7 @@ var UploadableFilesView = Marionette.View.extend({
|
|
6036
6174
|
});
|
6037
6175
|
|
6038
6176
|
var ConfirmFileImportUploadView = Marionette.Layout.extend({
|
6039
|
-
template: template$
|
6177
|
+
template: template$w,
|
6040
6178
|
className: 'confirm_upload editor dialog',
|
6041
6179
|
mixins: [dialogView],
|
6042
6180
|
regions: {
|
@@ -6106,7 +6244,7 @@ ConfirmFileImportUploadView.open = function (options) {
|
|
6106
6244
|
};
|
6107
6245
|
|
6108
6246
|
var FilesImporterView = Marionette.ItemView.extend({
|
6109
|
-
template: template$
|
6247
|
+
template: template$v,
|
6110
6248
|
className: 'files_importer editor dialog',
|
6111
6249
|
mixins: [dialogView],
|
6112
6250
|
ui: {
|
@@ -6164,7 +6302,10 @@ var FilesImporterView = Marionette.ItemView.extend({
|
|
6164
6302
|
content_type: file.type,
|
6165
6303
|
file_size: -1,
|
6166
6304
|
rights: file.rights,
|
6167
|
-
source_url: file.url
|
6305
|
+
source_url: file.url,
|
6306
|
+
configuration: {
|
6307
|
+
source_url: file.source_url
|
6308
|
+
}
|
6168
6309
|
}, {
|
6169
6310
|
fileType: fileType
|
6170
6311
|
});
|
@@ -6302,7 +6443,7 @@ var FilesView = Marionette.ItemView.extend({
|
|
6302
6443
|
this.$el.append(this.subview(this.tabsView).el);
|
6303
6444
|
},
|
6304
6445
|
tab: function tab(fileType) {
|
6305
|
-
var selectionMode = this.options.tabName === fileType.collectionName;
|
6446
|
+
var selectionMode = this.options.allowSelectingAny || this.options.tabName === fileType.collectionName;
|
6306
6447
|
this.tabsView.tab(fileType.collectionName, _.bind(function () {
|
6307
6448
|
return this.subview(new FilteredFilesView({
|
6308
6449
|
entry: state.entry,
|
@@ -6401,7 +6542,11 @@ __p += '<div class="files_pending notice">\n <p>' +
|
|
6401
6542
|
((__t = ( I18n.t('pageflow.editor.templates.publish_entry.date') )) == null ? '' : __t) +
|
6402
6543
|
'\n <input type="text" name="publish_until">\n </label>\n\n <label>\n ' +
|
6403
6544
|
((__t = ( I18n.t('pageflow.editor.templates.publish_entry.time') )) == null ? '' : __t) +
|
6404
|
-
'\n <input type="text" name="publish_until_time" value="00:00">\n </label>\n </div>\n\n <div class="check_box_input">\n <input id="
|
6545
|
+
'\n <input type="text" name="publish_until_time" value="00:00">\n </label>\n </div>\n\n <div class="check_box_input">\n <input id="publish_with_noindex" type="checkbox" name="noindex" value="1">\n <label for="publish_with_noindex">\n <span class="name">\n ' +
|
6546
|
+
((__t = ( I18n.t('pageflow.editor.templates.publish_entry.noindex') )) == null ? '' : __t) +
|
6547
|
+
'\n </span>\n <span class="inline_help">\n ' +
|
6548
|
+
((__t = ( I18n.t('pageflow.editor.templates.publish_entry.noindex_help') )) == null ? '' : __t) +
|
6549
|
+
'\n </span>\n </label>\n </div>\n\n <div class="check_box_input">\n <input id="publish_password_protected" type="checkbox" name="password_protected" value="1">\n <label for="publish_password_protected">\n <span class="name">\n ' +
|
6405
6550
|
((__t = ( I18n.t('pageflow.editor.templates.publish_entry.password_protected') )) == null ? '' : __t) +
|
6406
6551
|
'\n </span>\n <span class="inline_help">\n ' +
|
6407
6552
|
((__t = ( I18n.t('pageflow.editor.templates.publish_entry.password_help') )) == null ? '' : __t) +
|
@@ -6438,6 +6583,7 @@ var PublishEntryView = Marionette.ItemView.extend({
|
|
6438
6583
|
passwordFields: '.password_fields',
|
6439
6584
|
userNameField: 'input[name=user_name]',
|
6440
6585
|
passwordField: 'input[name=password]',
|
6586
|
+
noindexCheckBox: 'input[name=noindex]',
|
6441
6587
|
alreadyPublishedWithPassword: '.already_published_with_password',
|
6442
6588
|
previouslyPublishedWithPassword: '.previously_published_with_password',
|
6443
6589
|
alreadyPublishedWithoutPassword: '.already_published_without_password',
|
@@ -6488,10 +6634,10 @@ var PublishEntryView = Marionette.ItemView.extend({
|
|
6488
6634
|
this.ui.publishUntilField.datepicker('setDate', publishedUntil);
|
6489
6635
|
this.ui.publishUntilTimeField.val(timeStr(publishedUntil));
|
6490
6636
|
} else {
|
6491
|
-
this.ui.publishUntilField.datepicker('setDate',
|
6637
|
+
this.ui.publishUntilField.datepicker('setDate', this.defaultPublishedUntilDate());
|
6492
6638
|
}
|
6493
6639
|
|
6494
|
-
this.ui.userNameField.val(
|
6640
|
+
this.ui.userNameField.val(this.options.account.get('name'));
|
6495
6641
|
|
6496
6642
|
if (this.model.get('password_protected')) {
|
6497
6643
|
this.ui.passwordProtectedCheckBox.prop('checked', true);
|
@@ -6500,6 +6646,7 @@ var PublishEntryView = Marionette.ItemView.extend({
|
|
6500
6646
|
this.ui.passwordField.val(this.randomPassword());
|
6501
6647
|
}
|
6502
6648
|
|
6649
|
+
this.ui.noindexCheckBox.prop('checked', this.model.get('last_published_with_noindex'));
|
6503
6650
|
this.ui.alreadyPublishedWithPassword.toggle(this.model.get('published') && this.model.get('password_protected'));
|
6504
6651
|
this.ui.previouslyPublishedWithPassword.toggle(!this.model.get('published') && this.model.get('password_protected'));
|
6505
6652
|
this.ui.alreadyPublishedWithoutPassword.toggle(this.model.get('published') && !this.model.get('password_protected')); // Helpers
|
@@ -6511,12 +6658,6 @@ var PublishEntryView = Marionette.ItemView.extend({
|
|
6511
6658
|
return ("0" + val).slice(-2);
|
6512
6659
|
}
|
6513
6660
|
}
|
6514
|
-
|
6515
|
-
function oneYearFromNow() {
|
6516
|
-
var date = new Date();
|
6517
|
-
date.setFullYear(date.getFullYear() + 1);
|
6518
|
-
return date;
|
6519
|
-
}
|
6520
6661
|
},
|
6521
6662
|
save: function save() {
|
6522
6663
|
var publishedUntil = null;
|
@@ -6546,7 +6687,8 @@ var PublishEntryView = Marionette.ItemView.extend({
|
|
6546
6687
|
this.options.entryPublication.publish({
|
6547
6688
|
published_until: publishedUntil,
|
6548
6689
|
password_protected: this.ui.passwordProtectedCheckBox.is(':checked'),
|
6549
|
-
password: this.ui.passwordField.val()
|
6690
|
+
password: this.ui.passwordField.val(),
|
6691
|
+
noindex: this.ui.noindexCheckBox.is(':checked')
|
6550
6692
|
}).fail(function () {
|
6551
6693
|
alert('Beim Veröffentlichen ist ein Fehler aufgetreten');
|
6552
6694
|
}).always(function () {
|
@@ -6591,6 +6733,11 @@ var PublishEntryView = Marionette.ItemView.extend({
|
|
6591
6733
|
return false;
|
6592
6734
|
}
|
6593
6735
|
},
|
6736
|
+
defaultPublishedUntilDate: function defaultPublishedUntilDate() {
|
6737
|
+
var date = new Date();
|
6738
|
+
date.setMonth(date.getMonth() + this.options.config.defaultPublishedUntilDurationInMonths);
|
6739
|
+
return date;
|
6740
|
+
},
|
6594
6741
|
enableSave: function enableSave() {
|
6595
6742
|
this.ui.saveButton.removeAttr('disabled');
|
6596
6743
|
},
|
@@ -6690,10 +6837,16 @@ var SidebarController = Marionette.Controller.extend({
|
|
6690
6837
|
}));
|
6691
6838
|
},
|
6692
6839
|
files: function files(collectionName, handler, payload, filterName) {
|
6840
|
+
var _split = (collectionName || '').split(':'),
|
6841
|
+
_split2 = _slicedToArray(_split, 2),
|
6842
|
+
tabName = _split2[0],
|
6843
|
+
suffix = _split2[1];
|
6844
|
+
|
6693
6845
|
this.region.show(new FilesView({
|
6694
6846
|
model: this.entry,
|
6695
6847
|
selectionHandler: handler && editor.createFileSelectionHandler(handler, payload),
|
6696
|
-
tabName:
|
6848
|
+
tabName: tabName,
|
6849
|
+
allowSelectingAny: suffix === 'default',
|
6697
6850
|
filterName: filterName
|
6698
6851
|
}));
|
6699
6852
|
editor.setDefaultHelpEntry('pageflow.help_entries.files');
|
@@ -6720,7 +6873,9 @@ var SidebarController = Marionette.Controller.extend({
|
|
6720
6873
|
publish: function publish() {
|
6721
6874
|
this.region.show(PublishEntryView.create({
|
6722
6875
|
model: this.entry,
|
6723
|
-
|
6876
|
+
account: state.account,
|
6877
|
+
entryPublication: new EntryPublication(),
|
6878
|
+
config: state.config
|
6724
6879
|
}));
|
6725
6880
|
editor.setDefaultHelpEntry('pageflow.help_entries.publish');
|
6726
6881
|
},
|
@@ -7090,7 +7245,15 @@ var HelpImageView = Marionette.View.extend({
|
|
7090
7245
|
|
7091
7246
|
var InfoBoxView = Marionette.View.extend({
|
7092
7247
|
className: 'info_box',
|
7248
|
+
mixins: [attributeBinding],
|
7249
|
+
initialize: function initialize() {
|
7250
|
+
this.setupBooleanAttributeBinding('visible', this.updateVisible);
|
7251
|
+
},
|
7252
|
+
updateVisible: function updateVisible() {
|
7253
|
+
this.$el.toggleClass('hidden_via_binding', this.getBooleanAttributBoundOption('visible') === false);
|
7254
|
+
},
|
7093
7255
|
render: function render() {
|
7256
|
+
this.$el.addClass(this.options.level);
|
7094
7257
|
this.$el.html(this.options.text);
|
7095
7258
|
return this;
|
7096
7259
|
}
|
@@ -7706,7 +7869,7 @@ var ListView = Marionette.ItemView.extend({
|
|
7706
7869
|
});
|
7707
7870
|
|
7708
7871
|
var ConfirmUploadView = Marionette.Layout.extend({
|
7709
|
-
template: template$
|
7872
|
+
template: template$w,
|
7710
7873
|
className: 'confirm_upload editor dialog',
|
7711
7874
|
mixins: [dialogView],
|
7712
7875
|
regions: {
|
@@ -8006,7 +8169,60 @@ app.addInitializer(function () {
|
|
8006
8169
|
});
|
8007
8170
|
});
|
8008
8171
|
|
8172
|
+
function _arrayWithoutHoles(arr) {
|
8173
|
+
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
8174
|
+
}
|
8175
|
+
|
8176
|
+
function _iterableToArray(iter) {
|
8177
|
+
if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
|
8178
|
+
}
|
8179
|
+
|
8180
|
+
function _nonIterableSpread() {
|
8181
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
8182
|
+
}
|
8183
|
+
|
8184
|
+
function _toConsumableArray(arr) {
|
8185
|
+
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
8186
|
+
}
|
8187
|
+
|
8188
|
+
var OtherFile = UploadableFile.extend({
|
8189
|
+
thumbnailPictogram: 'other'
|
8190
|
+
});
|
8191
|
+
|
8009
8192
|
app.addInitializer(function (options) {
|
8193
|
+
editor.fileTypes.commonMetaDataAttributes = [{
|
8194
|
+
name: 'rights',
|
8195
|
+
valueView: TextFileMetaDataItemValueView,
|
8196
|
+
valueViewOptions: {
|
8197
|
+
settingsDialogTabLink: 'general'
|
8198
|
+
}
|
8199
|
+
}];
|
8200
|
+
|
8201
|
+
if (editor.entryType.supportsExtendedFileRights) {
|
8202
|
+
editor.fileTypes.commonMetaDataAttributes = [].concat(_toConsumableArray(editor.fileTypes.commonMetaDataAttributes), [{
|
8203
|
+
name: 'source_url',
|
8204
|
+
valueView: TextFileMetaDataItemValueView,
|
8205
|
+
valueViewOptions: {
|
8206
|
+
fromConfiguration: true,
|
8207
|
+
settingsDialogTabLink: 'general'
|
8208
|
+
}
|
8209
|
+
}, {
|
8210
|
+
name: 'license',
|
8211
|
+
valueView: TextFileMetaDataItemValueView,
|
8212
|
+
valueViewOptions: {
|
8213
|
+
fromConfiguration: true,
|
8214
|
+
formatValue: function formatValue(value) {
|
8215
|
+
return I18n$1.t("pageflow.file_licenses.".concat(value, ".name"));
|
8216
|
+
},
|
8217
|
+
settingsDialogTabLink: 'general'
|
8218
|
+
}
|
8219
|
+
}]);
|
8220
|
+
}
|
8221
|
+
|
8222
|
+
editor.fileTypes.commonSettingsDialogTabs = [{
|
8223
|
+
name: 'general',
|
8224
|
+
view: EditFileView
|
8225
|
+
}];
|
8010
8226
|
var textTracksMetaDataAttribute = {
|
8011
8227
|
name: 'text_tracks',
|
8012
8228
|
valueView: TextTracksFileMetaDataItemValueView,
|
@@ -8066,6 +8282,7 @@ app.addInitializer(function (options) {
|
|
8066
8282
|
return upload.name.match(/\.vtt$/) || upload.name.match(/\.srt$/);
|
8067
8283
|
},
|
8068
8284
|
skipUploadConfirmation: true,
|
8285
|
+
noExtendedFileRights: true,
|
8069
8286
|
configurationEditorInputs: [{
|
8070
8287
|
name: 'label',
|
8071
8288
|
inputView: TextInputView,
|
@@ -8115,6 +8332,18 @@ app.addInitializer(function (options) {
|
|
8115
8332
|
binding: 'label'
|
8116
8333
|
}
|
8117
8334
|
});
|
8335
|
+
editor.fileTypes.register('other_files', {
|
8336
|
+
model: OtherFile,
|
8337
|
+
metaDataAttributes: [altMetaDataAttribute],
|
8338
|
+
matchUpload: function matchUpload() {
|
8339
|
+
return true;
|
8340
|
+
},
|
8341
|
+
priority: 100,
|
8342
|
+
configurationEditorInputs: [{
|
8343
|
+
name: 'alt',
|
8344
|
+
inputView: TextInputView
|
8345
|
+
}]
|
8346
|
+
});
|
8118
8347
|
editor.fileTypes.setup(options.config.fileTypes);
|
8119
8348
|
});
|
8120
8349
|
|