Changeset 21900
- Timestamp:
- 09/18/2012 10:19:05 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/js/media-models.js
r21898 r21900 441 441 } 442 442 }, { 443 defaultArgs: { 444 posts_per_page: 40, 443 defaultProps: { 445 444 orderby: 'date', 446 445 order: 'DESC' 447 446 }, 448 447 448 defaultArgs: { 449 posts_per_page: 40 450 }, 451 449 452 orderby: { 450 allowed: [ 'name', 'author', 'date', 'title', 'modified', 'parent', 'ID' ],451 keymap:{453 allowed: [ 'name', 'author', 'date', 'title', 'modified', 'uploadedTo', 'id' ], 454 valuemap: { 452 455 'id': 'ID', 453 456 'uploadedTo': 'parent' … … 466 469 var args = {}, 467 470 orderby = Query.orderby, 468 defaults = Query.default Args,471 defaults = Query.defaultProps, 469 472 query; 470 473 474 // Remove the `query` property. This isn't linked to a query, 475 // this *is* the query. 476 delete props.query; 477 478 // Fill default args. 479 _.defaults( props, defaults ); 480 481 // Normalize the order. 482 props.order = props.order.toUpperCase(); 483 if ( 'DESC' !== props.order && 'ASC' !== props.order ) 484 props.order = defaults.order.toUpperCase(); 485 486 // Ensure we have a valid orderby value. 487 if ( ! _.contains( orderby.allowed, props.orderby ) ) 488 props.orderby = defaults.orderby; 489 490 // Generate the query `args` object. 471 491 // Correct any differing property names. 472 492 _.each( props, function( value, prop ) { … … 474 494 }); 475 495 476 // Fill default args. 477 _.defaults( args, defaults ); 478 479 // Normalize the order. 480 args.order = args.order.toUpperCase(); 481 if ( 'DESC' !== args.order && 'ASC' !== args.order ) 482 args.order = defaults.order.toUpperCase(); 483 484 // Set allowed orderby values. 485 // These map directly to attachment keys in most scenarios. 496 // Fill any other default query args. 497 _.defaults( args, Query.defaultArgs ); 498 499 // `props.orderby` does not always map directly to `args.orderby`. 486 500 // Substitute exceptions specified in orderby.keymap. 487 args.orderby = orderby.keymap[ args.orderby ] || args.orderby; 488 489 // Ensure we have a valid orderby value. 490 if ( ! _.contains( orderby.allowed, args.orderby ) ) 491 args.orderby = defaults.orderby; 492 493 // Search the query cache. 501 args.orderby = orderby.valuemap[ props.orderby ] || props.orderby; 502 503 // Search the query cache for matches. 494 504 query = _.find( queries, function( query ) { 495 505 return _.isEqual( query.args, args ); … … 498 508 // Otherwise, create a new query and add it to the cache. 499 509 if ( ! query ) { 500 query = new Query( [], _.extend( options || {}, { args: args } ) ); 510 query = new Query( [], _.extend( options || {}, { 511 props: props, 512 args: args 513 } ) ); 501 514 queries.push( query ); 502 515 }
Note: See TracChangeset
for help on using the changeset viewer.