WordPress.org

Make WordPress Core

Ticket #42737: 42737.patch

File 42737.patch, 1.8 KB (added by mkaz, 21 months ago)
  • src/wp-includes/js/wp-api.js

     
    6666                } );
    6767        };
    6868
     69        /**
     70         * Mapping associative array since WP object names do not map directly to Backbone models.
     71         */
     72        wp.api.utils.typeModelMapping = {
     73                'attachment': 'media',
     74                'post_tag'  : 'tag',
     75        }
    6976
    7077        /**
     78         * Mapping associative array since WP object names do not map directly to Backbone collections.
     79         */
     80        wp.api.utils.typeCollectionMapping = {
     81                'category': 'categories',
     82                'page'    : 'pages',
     83                'post'    : 'posts',
     84                'post_tag': 'tags',
     85        }
     86
     87        /**
     88         * Determine model based on object type.
     89         *
     90         * @param {string} type    The object type.
     91         *
     92         * @return {Backbone Model} The model found for given type. Undefined if not found.
     93         */
     94        wp.api.getModelByType = function( type ) {
     95                if ( wp.api.utils.typeModelMapping[ type ] ) {
     96                        type = wp.api.utils.typeModelMapping[ type ];
     97                }
     98                var modelName = wp.api.utils.capitalizeAndCamelCaseDashes( type );
     99                return wp.api.models[ modelName ];
     100        };
     101
     102        /**
     103         * Determine collection based on object type.
     104         *
     105         * @param {string} type    The object type.
     106         *
     107         * @return {Backbone Model} The collection found for given type. Undefined if not found.
     108         */
     109        wp.api.getCollectionByType = function( type ) {
     110                if ( wp.api.utils.typeCollectionMapping[ type ] ) {
     111                        type = wp.api.utils.typeCollectionMapping[ type ];
     112                }
     113                var collectionName = wp.api.utils.capitalizeAndCamelCaseDashes( type );
     114                return wp.api.collections[ collectionName ];
     115        };
     116
     117
     118        /**
    71119         * ECMAScript 5 shim, adapted from MDN.
    72120         * @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
    73121         */