From a37eeea138fc99c91a70669b9a4b785cbf3342fc Mon Sep 17 00:00:00 2001 From: Rosie Le Faive Date: Thu, 3 Sep 2020 15:53:19 -0300 Subject: [PATCH 1/5] Explain what this means. --- src/Plugin/ContextReaction/JsonldTypeAlterReaction.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php b/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php index b2e757ff..191dd5e5 100644 --- a/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php +++ b/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php @@ -89,9 +89,9 @@ class JsonldTypeAlterReaction extends NormalizerAlterReaction { $config = $this->getConfiguration(); $form['source_field'] = [ '#type' => 'select', - '#title' => $this->t('Source Field'), + '#title' => $this->t('Type field'), '#options' => $options, - '#description' => $this->t("Select the field containing the type predicates."), + '#description' => $this->t("In JSON-LD representations, allow the rdf:type to vary based on the value of a field.
The field selected here must be an entity reference field and its allowable values must have field_external_uri. The value of the URL component of field_external_uri will be used as rdf:type for entities selected by this context."), '#default_value' => isset($config['source_field']) ? $config['source_field'] : '', ]; return $form; From 925f1520c98a4b47aca90718d8f4f15ec16faae4 Mon Sep 17 00:00:00 2001 From: Rosie Le Faive Date: Thu, 3 Sep 2020 16:25:26 -0300 Subject: [PATCH 2/5] Improve wording of jsonld type source field. --- src/Plugin/ContextReaction/JsonldTypeAlterReaction.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php b/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php index 191dd5e5..8588b82a 100644 --- a/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php +++ b/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php @@ -89,9 +89,13 @@ class JsonldTypeAlterReaction extends NormalizerAlterReaction { $config = $this->getConfiguration(); $form['source_field'] = [ '#type' => 'select', - '#title' => $this->t('Type field'), + '#title' => $this->t('Field containing RDF type information'), '#options' => $options, - '#description' => $this->t("In JSON-LD representations, allow the rdf:type to vary based on the value of a field.
The field selected here must be an entity reference field and its allowable values must have field_external_uri. The value of the URL component of field_external_uri will be used as rdf:type for entities selected by this context."), + '#description' => $this->t("In JSON-LD representations, allow the rdf:type to vary + based on the value of a field.
Note: The field selected + here must be an Entity reference field and its allowable targets must have + field_external_uri. The value of the URL component of field_external_uri in the + referenced entity will be used as rdf:type for entities selected by this context."), '#default_value' => isset($config['source_field']) ? $config['source_field'] : '', ]; return $form; From 5ade4bf5dcf4a1c78efe6c886e601fe7562fc144 Mon Sep 17 00:00:00 2001 From: Rosie Le Faive Date: Thu, 3 Sep 2020 20:52:45 -0300 Subject: [PATCH 3/5] Use new title in test. Document that strings allowed. --- .../.IslandoraFunctionalTestBase.php.swp | Bin 0 -> 16384 bytes .../.JsonldSelfReferenceReactionTest.php.swp | Bin 0 -> 16384 bytes .../.JsonldTypeAlterReactionTest.php.swp | Bin 0 -> 12288 bytes .../Functional/JsonldTypeAlterReactionTest.php | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 tests/src/Functional/.IslandoraFunctionalTestBase.php.swp create mode 100644 tests/src/Functional/.JsonldSelfReferenceReactionTest.php.swp create mode 100644 tests/src/Functional/.JsonldTypeAlterReactionTest.php.swp diff --git a/tests/src/Functional/.IslandoraFunctionalTestBase.php.swp b/tests/src/Functional/.IslandoraFunctionalTestBase.php.swp new file mode 100644 index 0000000000000000000000000000000000000000..07c64c3b8916a9ebbe55f80322df29e509825498 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/tests/src/Functional/JsonldTypeAlterReactionTest.php b/tests/src/Functional/JsonldTypeAlterReactionTest.php index ce5aa081..d983e36d 100644 --- a/tests/src/Functional/JsonldTypeAlterReactionTest.php +++ b/tests/src/Functional/JsonldTypeAlterReactionTest.php @@ -65,7 +65,7 @@ class JsonldTypeAlterReactionTest extends JsonldSelfReferenceReactionTest { $this->drupalGet("admin/structure/context/$context_name"); $this->getSession()->getPage() - ->fillField("Source Field", "field_type_predicate"); + ->fillField("Field containing RDF type information", "field_type_predicate"); $this->getSession()->getPage()->pressButton("Save and continue"); $this->assertSession() ->pageTextContains("The context $context_name has been saved"); From fca4e244aaa50f874d25e28dde955d5ad8c2360a Mon Sep 17 00:00:00 2001 From: Rosie Le Faive Date: Thu, 3 Sep 2020 20:57:03 -0300 Subject: [PATCH 4/5] Actually add documentation. --- src/Plugin/ContextReaction/JsonldTypeAlterReaction.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php b/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php index 8588b82a..0314e4cd 100644 --- a/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php +++ b/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php @@ -91,11 +91,11 @@ class JsonldTypeAlterReaction extends NormalizerAlterReaction { '#type' => 'select', '#title' => $this->t('Field containing RDF type information'), '#options' => $options, - '#description' => $this->t("In JSON-LD representations, allow the rdf:type to vary - based on the value of a field.
Note: The field selected - here must be an Entity reference field and its allowable targets must have - field_external_uri. The value of the URL component of field_external_uri in the - referenced entity will be used as rdf:type for entities selected by this context."), + '#description' => $this->t("Use a field to determine the rdf:type.

+ In JSON-LD representations, the @type attribute (shorthand for rdf:type) will + be populated from the value of this field, rather than the default for the bundle + as configured in the bundle's RDF mapping. If this field is an entity reference + field, the value of the referenced entity's `field_external_uri` will be used."), '#default_value' => isset($config['source_field']) ? $config['source_field'] : '', ]; return $form; From 26f8cfb7efabd6f9b18b198cf86ffa7452ee3e8d Mon Sep 17 00:00:00 2001 From: Rosie Le Faive Date: Fri, 4 Sep 2020 09:26:10 -0300 Subject: [PATCH 5/5] Remove swp files. --- .../.IslandoraFunctionalTestBase.php.swp | Bin 16384 -> 0 bytes .../.JsonldSelfReferenceReactionTest.php.swp | Bin 16384 -> 0 bytes .../.JsonldTypeAlterReactionTest.php.swp | Bin 12288 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/src/Functional/.IslandoraFunctionalTestBase.php.swp delete mode 100644 tests/src/Functional/.JsonldSelfReferenceReactionTest.php.swp delete mode 100644 tests/src/Functional/.JsonldTypeAlterReactionTest.php.swp diff --git a/tests/src/Functional/.IslandoraFunctionalTestBase.php.swp b/tests/src/Functional/.IslandoraFunctionalTestBase.php.swp deleted file mode 100644 index 07c64c3b8916a9ebbe55f80322df29e509825498..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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