Changeset 22494
- Timestamp:
- 11/09/2012 09:47:12 AM (12 years ago)
- Location:
- trunk/wp-includes
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/js/media-models.js
r22477 r22494 644 644 add: function( models, options ) { 645 645 if ( ! this.multiple ) { 646 models = _.isArray( models ) ? _.first( models ) : models;646 models = _.isArray( models ) && models.length ? _.first( models ) : models; 647 647 this.clear( options ); 648 648 } -
trunk/wp-includes/js/media-views.js
r22493 r22494 357 357 this.frame.$el.toggleClass( 'hide-sidebar hide-toolbar', this.get('empty') ); 358 358 this.content(); 359 this.refreshSelection(); 359 360 }, 360 361 … … 375 376 toggleSelection: function( model ) { 376 377 var selection = this.get('selection'); 378 379 if ( ! model ) 380 return; 377 381 378 382 if ( selection.has( model ) ) { … … 565 569 reset: function() { 566 570 this.states.invoke( 'trigger', 'reset' ); 571 return this; 567 572 } 568 573 }); … … 629 634 }); 630 635 631 632 /** 633 * wp.media.view.MediaFrame.Post 634 */ 635 media.view.MediaFrame.Post = media.view.MediaFrame.extend({ 636 /** 637 * wp.media.view.MediaFrame.Select 638 */ 639 media.view.MediaFrame.Select = media.view.MediaFrame.extend({ 636 640 initialize: function() { 637 641 media.view.MediaFrame.prototype.initialize.apply( this, arguments ); … … 641 645 selection: [], 642 646 library: {}, 643 multiple: false, 644 editing: false 647 multiple: false 645 648 }); 646 649 … … 653 656 }, 654 657 655 bindHandlers: function() {656 var handlers = {657 menu: {658 main: 'mainMenu',659 batch: 'batchMenu',660 gallery: 'galleryMenu'661 },662 663 content: {664 browse: 'browseContent',665 upload: 'uploadContent',666 embed: 'embedContent'667 },668 669 sidebar: {670 'clear': 'clearSidebar',671 'settings': 'settingsSidebar',672 'attachment-settings': 'attachmentSettingsSidebar'673 },674 675 toolbar: {676 'main-attachments': 'mainAttachmentsToolbar',677 'main-embed': 'mainEmbedToolbar',678 'batch-edit': 'batchEditToolbar',679 'batch-add': 'batchAddToolbar',680 'gallery-edit': 'galleryEditToolbar',681 'gallery-add': 'galleryAddToolbar'682 }683 };684 685 _.each( handlers, function( regionHandlers, region ) {686 _.each( regionHandlers, function( callback, handler ) {687 this[ region ].on( 'activate:' + handler, this[ callback ], this );688 }, this );689 }, this );690 691 _.each(['library', 'upload'], function( id ) {692 this.get( id ).on( 'refresh:selection', function( state, selection ) {693 var sidebar = this.sidebar;694 695 if ( ! selection.length )696 sidebar.mode('clear');697 else if ( selection.length === 1 )698 sidebar.mode('attachment-settings');699 else700 sidebar.mode('settings');701 }, this );702 }, this );703 704 this.sidebar.on( 'gallery-settings', this.onSidebarGallerySettings, this );705 },706 707 658 createSelection: function() { 708 659 var controller = this, … … 710 661 711 662 if ( ! (selection instanceof media.model.Selection) ) { 712 selection =this.options.selection = new media.model.Selection( selection, {663 this.options.selection = new media.model.Selection( selection, { 713 664 multiple: this.options.multiple 714 665 }); 715 666 } 667 }, 668 669 createStates: function() { 670 var options = this.options, 671 attributes; 672 673 attributes = { 674 multiple: this.options.multiple, 675 menu: 'main', 676 toolbar: 'select' 677 }; 678 679 // Add the default states. 680 this.states.add([ 681 // Main states. 682 new media.controller.Library( _.defaults({ 683 selection: options.selection, 684 library: media.query( options.library ) 685 }, attributes ) ), 686 687 new media.controller.Upload( attributes ) 688 ]); 689 }, 690 691 bindHandlers: function() { 692 this.menu.on( 'activate:main', this.mainMenu, this ); 693 this.content.on( 'activate:browse', this.browseContent, this ); 694 this.content.on( 'activate:upload', this.uploadContent, this ); 695 this.sidebar.on( 'activate:clear', this.clearSidebar, this ); 696 this.sidebar.on( 'activate:settings', this.settingsSidebar, this ); 697 this.toolbar.on( 'activate:select', this.selectToolbar, this ); 698 699 this.on( 'refresh:selection', this.refreshSelectToolbar, this ); 700 }, 701 702 mainMenu: function( options ) { 703 this.menu.view( new media.view.Menu({ 704 controller: this, 705 silent: options && options.silent, 706 707 views: { 708 upload: { 709 text: l10n.uploadFilesTitle, 710 priority: 20 711 }, 712 library: { 713 text: l10n.mediaLibraryTitle, 714 priority: 40 715 } 716 } 717 }) ); 718 }, 719 720 // Content 721 browseContent: function() { 722 var state = this.state(); 723 724 // Browse our library of attachments. 725 this.content.view( new media.view.AttachmentsBrowser({ 726 controller: this, 727 collection: state.get('library'), 728 model: state, 729 sortable: state.get('sortable'), 730 731 AttachmentView: state.get('AttachmentView') 732 }).render() ); 733 }, 734 735 uploadContent: function() { 736 // In the meantime, render an inline uploader. 737 this.content.view( new media.view.UploaderInline({ 738 controller: this 739 }).render() ); 740 }, 741 742 // Sidebars 743 clearSidebar: function() { 744 this.sidebar.view( new media.view.Sidebar({ 745 controller: this 746 }) ); 747 }, 748 749 settingsSidebar: function( options ) { 750 this.sidebar.view( new media.view.Sidebar({ 751 controller: this, 752 silent: options && options.silent, 753 754 views: { 755 details: new media.view.Attachment.Details({ 756 controller: this, 757 model: this.state().get('selection').single(), 758 priority: 80 759 }).render() 760 } 761 }) ); 762 }, 763 764 // Toolbars 765 selectToolbar: function() { 766 this.toolbar.view( new media.view.Toolbar({ 767 controller: this, 768 items: { 769 select: { 770 style: 'primary', 771 text: l10n.select, 772 priority: 80, 773 774 click: function() { 775 var controller = this.controller; 776 777 controller.close(); 778 controller.state().trigger('select'); 779 controller.reset().state( controller.options.state ); 780 } 781 } 782 } 783 }) ); 784 }, 785 786 refreshSelectToolbar: function() { 787 var selection = this.state().get('selection'); 788 789 if ( ! selection || 'select' !== this.toolbar.mode() ) 790 return; 791 792 this.toolbar.view().get('select').model.set( 'disabled', ! selection.length ); 793 } 794 }); 795 796 /** 797 * wp.media.view.MediaFrame.Post 798 */ 799 media.view.MediaFrame.Post = media.view.MediaFrame.Select.extend({ 800 initialize: function() { 801 _.defaults( this.options, { 802 state: 'upload', 803 multiple: true, 804 editing: false 805 }); 806 807 media.view.MediaFrame.Select.prototype.initialize.apply( this, arguments ); 716 808 }, 717 809 … … 791 883 }, 792 884 885 bindHandlers: function() { 886 media.view.MediaFrame.Select.prototype.bindHandlers.apply( this, arguments ); 887 888 var handlers = { 889 menu: { 890 batch: 'batchMenu', 891 gallery: 'galleryMenu' 892 }, 893 894 content: { 895 embed: 'embedContent' 896 }, 897 898 sidebar: { 899 'attachment-settings': 'attachmentSettingsSidebar' 900 }, 901 902 toolbar: { 903 'main-attachments': 'mainAttachmentsToolbar', 904 'main-embed': 'mainEmbedToolbar', 905 'batch-edit': 'batchEditToolbar', 906 'batch-add': 'batchAddToolbar', 907 'gallery-edit': 'galleryEditToolbar', 908 'gallery-add': 'galleryAddToolbar' 909 } 910 }; 911 912 _.each( handlers, function( regionHandlers, region ) { 913 _.each( regionHandlers, function( callback, handler ) { 914 this[ region ].on( 'activate:' + handler, this[ callback ], this ); 915 }, this ); 916 }, this ); 917 918 _.each(['library', 'upload'], function( id ) { 919 this.get( id ).on( 'refresh:selection', function( state, selection ) { 920 var sidebar = this.sidebar; 921 922 if ( ! selection.length ) 923 sidebar.mode('clear'); 924 else if ( selection.length === 1 ) 925 sidebar.mode('attachment-settings'); 926 else 927 sidebar.mode('settings'); 928 }, this ); 929 }, this ); 930 931 this.sidebar.on( 'gallery-settings', this.onSidebarGallerySettings, this ); 932 }, 933 793 934 // Menus 794 935 mainMenu: function() { 795 this.menu.view( new media.view.Menu({ 796 controller: this, 797 views: { 798 upload: { 799 text: l10n.uploadFilesTitle, 800 priority: 20 801 }, 802 library: { 803 text: l10n.mediaLibraryTitle, 804 priority: 40 805 }, 806 separateLibrary: new Backbone.View({ 807 className: 'separator', 808 priority: 60 809 }), 810 embed: { 811 text: l10n.embedFromUrlTitle, 812 priority: 80 813 } 936 media.view.MediaFrame.Select.prototype.mainMenu.call( this, { silent: true }); 937 938 this.menu.view().add({ 939 separateLibrary: new Backbone.View({ 940 className: 'separator', 941 priority: 60 942 }), 943 embed: { 944 text: l10n.embedFromUrlTitle, 945 priority: 80 814 946 } 815 }) );947 }); 816 948 }, 817 949 … … 891 1023 892 1024 // Content 893 browseContent: function() {894 var state = this.state();895 896 // Browse our library of attachments.897 this.content.view( new media.view.AttachmentsBrowser({898 controller: this,899 collection: state.get('library'),900 model: state,901 sortable: state.get('sortable'),902 903 AttachmentView: state.get('AttachmentView')904 }).render() );905 },906 907 uploadContent: function() {908 // In the meantime, render an inline uploader.909 this.content.view( new media.view.UploaderInline({910 controller: this911 }).render() );912 },913 914 1025 embedContent: function() {}, 915 1026 916 1027 // Sidebars 917 clearSidebar: function() {918 this.sidebar.view( new media.view.Sidebar({919 controller: this920 }) );921 },922 923 settingsSidebar: function( options ) {924 this.sidebar.view( new media.view.Sidebar({925 controller: this,926 silent: options && options.silent,927 928 views: {929 details: new media.view.Attachment.Details({930 controller: this,931 model: this.state().get('selection').single(),932 priority: 80933 }).render()934 }935 }) );936 },937 938 1028 onSidebarGallerySettings: function( options ) { 939 1029 this.sidebar.view().add({ -
trunk/wp-includes/script-loader.php
r22492 r22494 329 329 'insertMedia' => __( 'Insert Media' ), 330 330 'search' => __( 'Search' ), 331 'select' => __( 'Select' ), 331 332 'cancel' => __( 'Cancel' ), 332 333 'addImages' => __( 'Add images' ),
Note: See TracChangeset
for help on using the changeset viewer.