← All changes
|
modules/global-classes/global-classes-rest-api.php
+9
-2
4.1.0-dev3
→
4.3.1
View file →
| @@ -255,9 +255,9 @@ | ||
| 255 | 255 | |
| 256 | 256 | $repository = $this->get_repository()->set_preview( $is_preview ); |
| 257 | 257 | $global_order = array_keys( $repository->all_labels() ); |
| 258 | 258 | $filtered_order = array_values( array_intersect( $global_order, $document_class_ids ) ); |
| 259 | - $items = $repository->get_by_ids( $document_class_ids ); | |
| 259 | + $items = $repository->get_by_ids( $filtered_order ); | |
| 260 | 260 | |
| 261 | 261 | $result = []; |
| 262 | 262 | |
| 263 | 263 | foreach ( $document_class_ids as $id ) { |
| @@ -283,9 +283,9 @@ | ||
| 283 | 283 | |
| 284 | 284 | $repository = $this->get_repository()->set_preview( $is_preview ); |
| 285 | 285 | $global_order = array_keys( $repository->all_labels() ); |
| 286 | 286 | $filtered_order = array_values( array_intersect( $global_order, $requested_ids ) ); |
| 287 | - $items = $repository->get_by_ids( $requested_ids ); | |
| 287 | + $items = $repository->get_by_ids( $filtered_order ); | |
| 288 | 288 | |
| 289 | 289 | $result = []; |
| 290 | 290 | |
| 291 | 291 | foreach ( $requested_ids as $id ) { |
| @@ -361,8 +361,15 @@ | ||
| 361 | 361 | } |
| 362 | 362 | } |
| 363 | 363 | |
| 364 | 364 | $final_item_ids = array_keys( $this->merge_touched_with_existing_labels( $all_label_by_id, $touched_items, $deleted_ids ) ); |
| 365 | + | |
| 366 | + $final_item_ids_set = array_flip( $final_item_ids ); | |
| 367 | + $order_set = array_flip( $order ); | |
| 368 | + | |
| 369 | + $order = array_values( array_filter( $order, fn( $id ) => isset( $final_item_ids_set[ $id ] ) ) ); | |
| 370 | + $missing_from_order = array_values( array_filter( $final_item_ids, fn( $id ) => ! isset( $order_set[ $id ] ) ) ); | |
| 371 | + $order = array_merge( $order, $missing_from_order ); | |
| 365 | 372 | |
| 366 | 373 | $order_result = $parser->parse_order( $order, $final_item_ids ); |
| 367 | 374 | |
| 368 | 375 | if ( ! $order_result->is_valid() ) { |