diff --git a/composer.json b/composer.json index f4de42e..b9b9da0 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ } ], "require": { - "drupal/migrate_plus": ">=3.0", + "drupal/migrate_plus": ">=4.0", "digicol/dcx-sdk-php": "^2.0" }, "require-dev": { diff --git a/modules/dcx_article_import/dcx_article_import.info.yml b/modules/dcx_article_import/dcx_article_import.info.yml index e651b9e..00b15a8 100644 --- a/modules/dcx_article_import/dcx_article_import.info.yml +++ b/modules/dcx_article_import/dcx_article_import.info.yml @@ -6,3 +6,4 @@ package: dcx dependencies: - dcx_integration:dcx_integration - dcx_integration:dcx_migration + - paragraphs:paragraphs diff --git a/modules/dcx_article_import/dcx_article_import.libraries.yml b/modules/dcx_article_import/dcx_article_import.libraries.yml index 7adf66a..33775b6 100644 --- a/modules/dcx_article_import/dcx_article_import.libraries.yml +++ b/modules/dcx_article_import/dcx_article_import.libraries.yml @@ -5,3 +5,8 @@ dropzone: css: theme: css/dcx-article-import-ui.css: {} + dependencies: + - core/jquery + - core/drupal + - core/drupalSettings + - core/jquery.once diff --git a/modules/dcx_article_import/js/dcx-article-import-ui.js b/modules/dcx_article_import/js/dcx-article-import-ui.js index 4b73845..a23e74a 100644 --- a/modules/dcx_article_import/js/dcx-article-import-ui.js +++ b/modules/dcx_article_import/js/dcx-article-import-ui.js @@ -8,7 +8,10 @@ Drupal.behaviors.dcxArticleImportUi = { attach: function (context, settings) { var submitButton = $('#edit-submit'); - var textfield = $('input[data-drupal-selector=edit-dcx-id]'); + var textfield = $('input[data-drupal-selector=edit-dcx-id]').once('dcx_dropzone_init'); + if (textfield.length === 0) { + return; + } var dropzone = $('
').addClass('dcx-dropzone'); var message = $('
' + Drupal.t('Drop DC-X story link here!') + '
').addClass('message').appendTo(dropzone); diff --git a/modules/dcx_article_import/tests/src/FunctionalJavascript/ArticleImportTest.php b/modules/dcx_article_import/tests/src/FunctionalJavascript/ArticleImportTest.php new file mode 100644 index 0000000..2ec923f --- /dev/null +++ b/modules/dcx_article_import/tests/src/FunctionalJavascript/ArticleImportTest.php @@ -0,0 +1,41 @@ +config('dcx_integration.jsonclientsettings')->setData([ + 'url' => getenv('DCX_URL'), + 'username' => getenv('DCX_USER'), + 'password' => getenv('DCX_PASS'), + 'publication' => getenv('DCX_PUBLICATION'), + 'notification_access_key' => getenv('DCX_NOTIFICATION_KEY'), + ])->save(); + $this->config('system.site')->setData(['mail' => 'admin@admin.de', 'name' => 'Integration Test'])->save(); + + $this->drupalLogin($this->createUser(['import from dcx'])); + + $this->drupalGet('node/add/article/dcx-import'); + } + +} diff --git a/modules/dcx_migration/config/install/field.field.media.image.field_dcx_id.yml b/modules/dcx_migration/config/optional/field.field.media.image.field_dcx_id.yml similarity index 100% rename from modules/dcx_migration/config/install/field.field.media.image.field_dcx_id.yml rename to modules/dcx_migration/config/optional/field.field.media.image.field_dcx_id.yml diff --git a/modules/dcx_migration/config/install/field.storage.media.field_dcx_id.yml b/modules/dcx_migration/config/optional/field.storage.media.field_dcx_id.yml similarity index 100% rename from modules/dcx_migration/config/install/field.storage.media.field_dcx_id.yml rename to modules/dcx_migration/config/optional/field.storage.media.field_dcx_id.yml diff --git a/modules/dcx_migration/dcx_migration.info.yml b/modules/dcx_migration/dcx_migration.info.yml index a60578b..83734a0 100644 --- a/modules/dcx_migration/dcx_migration.info.yml +++ b/modules/dcx_migration/dcx_migration.info.yml @@ -3,10 +3,8 @@ type: module description: 'Migration of data from DC-X digital asset management.' core: '8.x' package: dcx - dependencies: - dcx_integration:dcx_integration - drupal:migrate - migrate_plus:migrate_plus - media_entity:media_entity - - thunder:thunder_media diff --git a/tests/modules/dcx_test/config/install/field.field.media.image.field_copyright.yml b/tests/modules/dcx_test/config/install/field.field.media.image.field_copyright.yml new file mode 100644 index 0000000..4d8e1e4 --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.field.media.image.field_copyright.yml @@ -0,0 +1,19 @@ +uuid: 5af4128c-f300-442e-a7ce-45879b1ee82b +langcode: en +status: true +dependencies: + config: + - field.storage.media.field_copyright + - media_entity.bundle.image +id: media.image.field_copyright +field_name: field_copyright +entity_type: media +bundle: image +label: Copyright +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/tests/modules/dcx_test/config/install/field.field.media.image.field_expires.yml b/tests/modules/dcx_test/config/install/field.field.media.image.field_expires.yml new file mode 100644 index 0000000..7a211e5 --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.field.media.image.field_expires.yml @@ -0,0 +1,21 @@ +uuid: fd203df1-2506-4051-9c65-943ddf0bd0ef +langcode: en +status: true +dependencies: + config: + - field.storage.media.field_expires + - media_entity.bundle.image + module: + - datetime +id: media.image.field_expires +field_name: field_expires +entity_type: media +bundle: image +label: Expires +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: datetime diff --git a/tests/modules/dcx_test/config/install/field.field.media.image.field_image.yml b/tests/modules/dcx_test/config/install/field.field.media.image.field_image.yml new file mode 100644 index 0000000..adb965d --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.field.media.image.field_image.yml @@ -0,0 +1,38 @@ +uuid: a1ae969d-7d6c-4607-be0a-0eb034469315 +langcode: en +status: true +dependencies: + config: + - field.storage.media.field_image + - media_entity.bundle.image + module: + - image +id: media.image.field_image +field_name: field_image +entity_type: media +bundle: image +label: Image +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + file_directory: '[date:custom:Y]-[date:custom:m]' + file_extensions: 'png gif jpg jpeg' + max_filesize: '' + max_resolution: '' + min_resolution: '' + alt_field: true + alt_field_required: true + title_field: false + title_field_required: false + default_image: + uuid: '' + alt: '' + title: '' + width: null + height: null + handler: 'default:file' + handler_settings: { } +field_type: image diff --git a/tests/modules/dcx_test/config/install/field.field.media.image.field_source.yml b/tests/modules/dcx_test/config/install/field.field.media.image.field_source.yml new file mode 100644 index 0000000..1dd0e84 --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.field.media.image.field_source.yml @@ -0,0 +1,19 @@ +uuid: a6103478-2b1c-4050-ae7f-0494c6be33e8 +langcode: en +status: true +dependencies: + config: + - field.storage.media.field_source + - media_entity.bundle.image +id: media.image.field_source +field_name: field_source +entity_type: media +bundle: image +label: Source +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/tests/modules/dcx_test/config/install/field.field.node.article.field_paragraphs.yml b/tests/modules/dcx_test/config/install/field.field.node.article.field_paragraphs.yml new file mode 100644 index 0000000..b06ff27 --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.field.node.article.field_paragraphs.yml @@ -0,0 +1,31 @@ +uuid: 341f7fba-b53b-4716-9b4a-563c8f54ba7f +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_paragraphs + - node.type.article + - paragraphs.paragraphs_type.image + module: + - entity_reference_revisions +id: node.article.field_paragraphs +field_name: field_paragraphs +entity_type: node +bundle: article +label: Paragraphs +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:paragraph' + handler_settings: + negate: 0 + target_bundles: + image: image + target_bundles_drag_drop: + image: + enabled: true + weight: 2 +field_type: entity_reference_revisions diff --git a/tests/modules/dcx_test/config/install/field.field.paragraph.image.field_image.yml b/tests/modules/dcx_test/config/install/field.field.paragraph.image.field_image.yml new file mode 100644 index 0000000..efd689a --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.field.paragraph.image.field_image.yml @@ -0,0 +1,28 @@ +uuid: d47d0055-395f-4c4d-a179-4dc78083a24d +langcode: en +status: true +dependencies: + config: + - field.storage.paragraph.field_image + - media_entity.bundle.image + - paragraphs.paragraphs_type.image +id: paragraph.image.field_image +field_name: field_image +entity_type: paragraph +bundle: image +label: Image +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:media' + handler_settings: + target_bundles: + image: image + sort: + field: _none + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/tests/modules/dcx_test/config/install/field.field.paragraph.text.field_text.yml b/tests/modules/dcx_test/config/install/field.field.paragraph.text.field_text.yml new file mode 100644 index 0000000..4d139b2 --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.field.paragraph.text.field_text.yml @@ -0,0 +1,21 @@ +uuid: d1c920ba-be79-40a1-840b-34fb257907c0 +langcode: en +status: true +dependencies: + config: + - field.storage.paragraph.field_text + - paragraphs.paragraphs_type.text + module: + - text +id: paragraph.text.field_text +field_name: field_text +entity_type: paragraph +bundle: text +label: Text +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: text_long diff --git a/tests/modules/dcx_test/config/install/field.storage.media.field_copyright.yml b/tests/modules/dcx_test/config/install/field.storage.media.field_copyright.yml new file mode 100644 index 0000000..0825da2 --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.storage.media.field_copyright.yml @@ -0,0 +1,21 @@ +uuid: b5a9b0da-70a3-4db6-a136-43260e6a5805 +langcode: en +status: true +dependencies: + module: + - media_entity +id: media.field_copyright +field_name: field_copyright +entity_type: media +type: string +settings: + max_length: 255 + is_ascii: false + case_sensitive: false +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/tests/modules/dcx_test/config/install/field.storage.media.field_expires.yml b/tests/modules/dcx_test/config/install/field.storage.media.field_expires.yml new file mode 100644 index 0000000..02cca91 --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.storage.media.field_expires.yml @@ -0,0 +1,20 @@ +uuid: 2791a276-3db7-4fcd-92e3-23fca4d5103e +langcode: en +status: true +dependencies: + module: + - datetime + - media_entity +id: media.field_expires +field_name: field_expires +entity_type: media +type: datetime +settings: + datetime_type: datetime +module: datetime +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/tests/modules/dcx_test/config/install/field.storage.media.field_image.yml b/tests/modules/dcx_test/config/install/field.storage.media.field_image.yml new file mode 100644 index 0000000..a13bf54 --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.storage.media.field_image.yml @@ -0,0 +1,30 @@ +uuid: ef7d7657-3a17-4752-83bd-dba3401c6b4a +langcode: en +status: true +dependencies: + module: + - file + - image + - media_entity +id: media.field_image +field_name: field_image +entity_type: media +type: image +settings: + uri_scheme: public + default_image: + uuid: '' + alt: '' + title: '' + width: null + height: null + target_type: file + display_field: false + display_default: false +module: image +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/tests/modules/dcx_test/config/install/field.storage.media.field_source.yml b/tests/modules/dcx_test/config/install/field.storage.media.field_source.yml new file mode 100644 index 0000000..61d5df6 --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.storage.media.field_source.yml @@ -0,0 +1,21 @@ +uuid: 071fc21b-8b4e-463a-b8a0-007383e229d9 +langcode: en +status: true +dependencies: + module: + - media_entity +id: media.field_source +field_name: field_source +entity_type: media +type: string +settings: + max_length: 255 + is_ascii: false + case_sensitive: false +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/tests/modules/dcx_test/config/install/field.storage.node.field_paragraphs.yml b/tests/modules/dcx_test/config/install/field.storage.node.field_paragraphs.yml new file mode 100644 index 0000000..20e306e --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.storage.node.field_paragraphs.yml @@ -0,0 +1,21 @@ +uuid: 2486cc03-26ed-44a1-bc8c-e8191c369c9f +langcode: en +status: true +dependencies: + module: + - entity_reference_revisions + - node + - paragraphs +id: node.field_paragraphs +field_name: field_paragraphs +entity_type: node +type: entity_reference_revisions +settings: + target_type: paragraph +module: entity_reference_revisions +locked: false +cardinality: -1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/tests/modules/dcx_test/config/install/field.storage.paragraph.field_image.yml b/tests/modules/dcx_test/config/install/field.storage.paragraph.field_image.yml new file mode 100644 index 0000000..3b47c12 --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.storage.paragraph.field_image.yml @@ -0,0 +1,20 @@ +uuid: 5e486716-5c3c-4e9f-89eb-5e9628e9d503 +langcode: en +status: true +dependencies: + module: + - media_entity + - paragraphs +id: paragraph.field_image +field_name: field_image +entity_type: paragraph +type: entity_reference +settings: + target_type: media +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/tests/modules/dcx_test/config/install/field.storage.paragraph.field_text.yml b/tests/modules/dcx_test/config/install/field.storage.paragraph.field_text.yml new file mode 100644 index 0000000..03a966f --- /dev/null +++ b/tests/modules/dcx_test/config/install/field.storage.paragraph.field_text.yml @@ -0,0 +1,19 @@ +uuid: 0db964c0-a859-4d7e-91a4-166b01a0ef97 +langcode: en +status: true +dependencies: + module: + - paragraphs + - text +id: paragraph.field_text +field_name: field_text +entity_type: paragraph +type: text_long +settings: { } +module: text +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/tests/modules/dcx_test/config/install/media_entity.bundle.image.yml b/tests/modules/dcx_test/config/install/media_entity.bundle.image.yml new file mode 100644 index 0000000..908b5f5 --- /dev/null +++ b/tests/modules/dcx_test/config/install/media_entity.bundle.image.yml @@ -0,0 +1,16 @@ +uuid: 5d8e7dca-2fea-47e1-8767-22a263fa0d1c +langcode: en +status: true +dependencies: + module: + - media_entity_image +id: image +label: Image +description: '' +type: image +queue_thumbnail_downloads: false +new_revision: false +type_configuration: + source_field: '' + gather_exif: false +field_map: { } diff --git a/tests/modules/dcx_test/config/install/node.type.article.yml b/tests/modules/dcx_test/config/install/node.type.article.yml new file mode 100644 index 0000000..196953e --- /dev/null +++ b/tests/modules/dcx_test/config/install/node.type.article.yml @@ -0,0 +1,13 @@ +uuid: a2a885b5-2c97-4585-b632-0885b05142f5 +langcode: en +status: true +dependencies: { } +_core: + default_config_hash: AeW1SEDgb1OTQACAWGhzvMknMYAJlcZu0jljfeU3oso +name: Article +type: article +description: 'Use articles for time-sensitive content like news, press releases or blog posts.' +help: '' +new_revision: true +preview_mode: 1 +display_submitted: true diff --git a/tests/modules/dcx_test/config/install/paragraphs.paragraphs_type.image.yml b/tests/modules/dcx_test/config/install/paragraphs.paragraphs_type.image.yml new file mode 100644 index 0000000..1d1ff5a --- /dev/null +++ b/tests/modules/dcx_test/config/install/paragraphs.paragraphs_type.image.yml @@ -0,0 +1,9 @@ +uuid: 07786908-4ef2-4390-8477-1e3163eacd5d +langcode: en +status: true +dependencies: { } +id: image +label: Image +icon_uuid: null +description: '' +behavior_plugins: { } diff --git a/tests/modules/dcx_test/config/install/paragraphs.paragraphs_type.text.yml b/tests/modules/dcx_test/config/install/paragraphs.paragraphs_type.text.yml new file mode 100644 index 0000000..846c970 --- /dev/null +++ b/tests/modules/dcx_test/config/install/paragraphs.paragraphs_type.text.yml @@ -0,0 +1,9 @@ +uuid: 672c99fe-fe15-4f87-92e7-2135a98ecde8 +langcode: en +status: true +dependencies: { } +id: text +label: Text +icon_uuid: null +description: '' +behavior_plugins: { } diff --git a/tests/modules/dcx_test/dcx_test.info.yml b/tests/modules/dcx_test/dcx_test.info.yml new file mode 100644 index 0000000..71995c5 --- /dev/null +++ b/tests/modules/dcx_test/dcx_test.info.yml @@ -0,0 +1,10 @@ +name: DC-X Test module +type: module +description: 'Only provides test config' +core: '8.x' +package: dcx +dependencies: + - media_entity_image:media_entity_image + - paragraphs:paragraphs + - drupal:node + - drupal:datetime