diff --git a/resources/js/components/entries/PublishForm.vue b/resources/js/components/entries/PublishForm.vue index 2f8d0b9d53..ab1ee5c131 100644 --- a/resources/js/components/entries/PublishForm.vue +++ b/resources/js/components/entries/PublishForm.vue @@ -608,6 +608,7 @@ export default { if (this.revisionsEnabled) { clearTimeout(this.trackDirtyStateTimeout) this.trackDirtyState = false + this.meta = response.data.data.meta; this.values = this.resetValuesFromResponse(response.data.data.values); this.extraValues = response.data.data.extraValues; this.trackDirtyStateTimeout = setTimeout(() => (this.trackDirtyState = true), 500) @@ -633,6 +634,7 @@ export default { else { clearTimeout(this.trackDirtyStateTimeout); this.trackDirtyState = false; + this.meta = response.data.data.meta; this.values = this.resetValuesFromResponse(response.data.data.values); this.extraValues = response.data.data.extraValues; this.trackDirtyStateTimeout = setTimeout(() => (this.trackDirtyState = true), 500); diff --git a/resources/js/components/terms/PublishForm.vue b/resources/js/components/terms/PublishForm.vue index 9e12d6ebdb..462a8ffdbb 100644 --- a/resources/js/components/terms/PublishForm.vue +++ b/resources/js/components/terms/PublishForm.vue @@ -486,6 +486,7 @@ export default { .then(() => { // If revisions are enabled, just emit event. if (this.revisionsEnabled) { + this.meta = response.data.data.meta; this.values = this.resetValuesFromResponse(response.data.data.values); this.$nextTick(() => this.$emit('saved', response)); return; @@ -507,6 +508,7 @@ export default { // the hooks are resolved because if this form is being shown in a stack, we only // want to close it once everything's done. else { + this.meta = response.data.data.meta; this.values = this.resetValuesFromResponse(response.data.data.values); this.$nextTick(() => this.$emit('saved', response)); } diff --git a/src/Http/Controllers/CP/Collections/EntriesController.php b/src/Http/Controllers/CP/Collections/EntriesController.php index 5535e11a30..641d61deed 100644 --- a/src/Http/Controllers/CP/Collections/EntriesController.php +++ b/src/Http/Controllers/CP/Collections/EntriesController.php @@ -275,6 +275,7 @@ public function update(Request $request, $collection, $entry) return [ 'data' => array_merge((new EntryResource($entry->fresh()))->resolve()['data'], [ + 'meta' => $meta, 'values' => $values, 'extraValues' => $extraValues, ]), diff --git a/src/Http/Controllers/CP/Collections/ExtractsFromEntryFields.php b/src/Http/Controllers/CP/Collections/ExtractsFromEntryFields.php index e196ada88a..7305e814b8 100644 --- a/src/Http/Controllers/CP/Collections/ExtractsFromEntryFields.php +++ b/src/Http/Controllers/CP/Collections/ExtractsFromEntryFields.php @@ -11,7 +11,7 @@ protected function extractFromFields($entry, $blueprint) $values = collect(); $target = $entry; while ($target) { - $values = $target->data()->merge($target->computedData())->merge($values); + $values = $target->data()->filter()->merge($target->computedData())->merge($values); $target = $target->origin(); } $values = $values->all(); diff --git a/src/Http/Controllers/CP/Taxonomies/ExtractsFromTermFields.php b/src/Http/Controllers/CP/Taxonomies/ExtractsFromTermFields.php index 71c84d63e9..516d4c60fc 100644 --- a/src/Http/Controllers/CP/Taxonomies/ExtractsFromTermFields.php +++ b/src/Http/Controllers/CP/Taxonomies/ExtractsFromTermFields.php @@ -10,7 +10,7 @@ protected function extractFromFields($term, $blueprint) // We don't want injected taxonomy values, which $term->values() would have given us. $values = $term->inDefaultLocale()->data()->merge( $term->data() - ); + )->filter(); $fields = $blueprint ->fields() diff --git a/src/Http/Controllers/CP/Taxonomies/TermsController.php b/src/Http/Controllers/CP/Taxonomies/TermsController.php index d336504858..94559fa05d 100644 --- a/src/Http/Controllers/CP/Taxonomies/TermsController.php +++ b/src/Http/Controllers/CP/Taxonomies/TermsController.php @@ -208,12 +208,13 @@ public function update(Request $request, $taxonomy, $term, $site) $saved = $term->updateLastModified(User::current())->save(); } - [$values] = $this->extractFromFields($term, $term->blueprint()); + [$values, $meta] = $this->extractFromFields($term, $term->blueprint()); return (new TermResource($term)) ->additional([ 'saved' => $saved, 'data' => [ + 'meta' => $meta, 'values' => $values, ], ]);