Make WordPress Core

Ticket #40672: 40672.diff

File 40672.diff, 2.6 KB (added by adamsilverstein, 7 years ago)
  • src/wp-includes/js/wp-api.js

    diff --git src/wp-includes/js/wp-api.js src/wp-includes/js/wp-api.js
    index 3f950a4..1fa5cdc 100644
     
    11711171                                        routeName = 'me';
    11721172                                }
    11731173
     1174                                var initializeModel = function( attributes, options ) {
     1175                                        wp.api.WPApiBaseModel.prototype.initialize.call( this, attributes, options );
     1176
     1177                                        /**
     1178                                         * Determine if a model requires ?force=true to actually delete them.
     1179                                         */
     1180                                        if (
     1181                                                ! _.isEmpty(
     1182                                                        _.filter(
     1183                                                                this.endpoints,
     1184                                                                function( endpoint ) {
     1185                                                                        return (
     1186
     1187                                                                                // Does the method support DELETE?
     1188                                                                                'DELETE' === endpoint.methods[0] &&
     1189
     1190                                                                                // Exclude models that support trash (Post, Page).
     1191                                                                                (
     1192                                                                                        ! _.isUndefined( endpoint.args.force.description ) &&
     1193                                                                                        'Whether to bypass trash and force deletion.' !== endpoint.args.force.description
     1194                                                                                )
     1195                                                                        );
     1196                                                                }
     1197                                                        )
     1198                                                )
     1199                                        ) {
     1200                                                this.requireForceForDelete = true;
     1201                                        }
     1202                                };
     1203
    11741204                                // If the model has a parent in its route, add that to its class name.
    11751205                                if ( '' !== parentName && parentName !== routeName ) {
    11761206                                        modelClassName = wp.api.utils.capitalizeAndCamelCaseDashes( parentName ) + wp.api.utils.capitalizeAndCamelCaseDashes( routeName );
     
    12031233                                                // Include the array of route methods for easy reference.
    12041234                                                methods: modelRoute.route.methods,
    12051235
    1206                                                 initialize: function( attributes, options ) {
    1207                                                         wp.api.WPApiBaseModel.prototype.initialize.call( this, attributes, options );
    1208 
    1209                                                         /**
    1210                                                          * Posts and pages support trashing, other types don't support a trash
    1211                                                          * and require that you pass ?force=true to actually delete them.
    1212                                                          *
    1213                                                          * @todo we should be getting trashability from the Schema, not hard coding types here.
    1214                                                          */
    1215                                                         if (
    1216                                                                 'Posts' !== this.name &&
    1217                                                                 'Pages' !== this.name &&
    1218                                                                 _.includes( this.methods, 'DELETE' )
    1219                                                         ) {
    1220                                                                 this.requireForceForDelete = true;
    1221                                                         }
    1222                                                 }
     1236                                                // Include the array of route endpoints for easy reference.
     1237                                                endpoints: modelRoute.route.endpoints,
     1238
     1239                                                initialize: initializeModel
    12231240                                        } );
    12241241                                } else {
    12251242
     
    12471264                                                name: modelClassName,
    12481265
    12491266                                                // Include the array of route methods for easy reference.
    1250                                                 methods: modelRoute.route.methods
     1267                                                methods: modelRoute.route.methods,
     1268
     1269                                                // Include the array of route endpoints for easy reference.
     1270                                                endpoints: modelRoute.route.endpoints,
     1271
     1272                                                initialize: initializeModel
    12511273                                        } );
    12521274                                }
    12531275