diff --git src/wp-includes/js/media-views.js src/wp-includes/js/media-views.js
index 7bcf5b5..1864f05 100644
|
|
|
1885 | 1885 | */ |
1886 | 1886 | media.view.MediaFrame.Post = media.view.MediaFrame.Select.extend({ |
1887 | 1887 | initialize: function() { |
| 1888 | this.counts = { |
| 1889 | audio: { |
| 1890 | count: media.view.settings.attachmentCounts.audio, |
| 1891 | state: 'playlist' |
| 1892 | }, |
| 1893 | video: { |
| 1894 | count: media.view.settings.attachmentCounts.video, |
| 1895 | state: 'video-playlist' |
| 1896 | } |
| 1897 | }; |
| 1898 | |
1888 | 1899 | _.defaults( this.options, { |
1889 | 1900 | multiple: true, |
1890 | 1901 | editing: false, |
… |
… |
|
1895 | 1906 | */ |
1896 | 1907 | media.view.MediaFrame.Select.prototype.initialize.apply( this, arguments ); |
1897 | 1908 | this.createIframeStates(); |
| 1909 | |
1898 | 1910 | }, |
1899 | 1911 | |
1900 | 1912 | createStates: function() { |
… |
… |
|
2032 | 2044 | }, |
2033 | 2045 | |
2034 | 2046 | bindHandlers: function() { |
2035 | | /** |
2036 | | * call 'bindHandlers' directly on the parent class |
2037 | | */ |
| 2047 | var handlers, checkCounts; |
| 2048 | |
2038 | 2049 | media.view.MediaFrame.Select.prototype.bindHandlers.apply( this, arguments ); |
| 2050 | |
| 2051 | this.on( 'activate', this.activate, this ); |
| 2052 | |
| 2053 | // Only bother checking media type counts if one of the counts is zero |
| 2054 | checkCounts = _.find( this.counts, function( type ) { |
| 2055 | return type.count === 0; |
| 2056 | } ); |
| 2057 | |
| 2058 | if ( typeof checkCounts !== 'undefined' ) { |
| 2059 | this.listenTo( media.model.Attachments.all, 'change:type', this.mediaTypeCounts ); |
| 2060 | } |
| 2061 | |
2039 | 2062 | this.on( 'menu:create:gallery', this.createMenu, this ); |
2040 | 2063 | this.on( 'menu:create:playlist', this.createMenu, this ); |
2041 | 2064 | this.on( 'menu:create:video-playlist', this.createMenu, this ); |
… |
… |
|
2046 | 2069 | this.on( 'toolbar:create:featured-image', this.featuredImageToolbar, this ); |
2047 | 2070 | this.on( 'toolbar:create:main-embed', this.mainEmbedToolbar, this ); |
2048 | 2071 | |
2049 | | var handlers = { |
| 2072 | handlers = { |
2050 | 2073 | menu: { |
2051 | 2074 | 'default': 'mainMenu', |
2052 | 2075 | 'gallery': 'galleryMenu', |
… |
… |
|
2081 | 2104 | }, this ); |
2082 | 2105 | }, |
2083 | 2106 | |
| 2107 | activate: function() { |
| 2108 | // Hide menu items for states tied to particular media types if there are no items |
| 2109 | _.each( this.counts, function( type ) { |
| 2110 | if ( type.count < 1 ) { |
| 2111 | this.menuItemVisibility( type.state, 'hide' ); |
| 2112 | } |
| 2113 | }, this ); |
| 2114 | }, |
| 2115 | |
| 2116 | mediaTypeCounts: function( model, attr ) { |
| 2117 | if ( typeof this.counts[ attr ] !== 'undefined' && this.counts[ attr ].count < 1 ) { |
| 2118 | this.counts[ attr ].count++; |
| 2119 | this.menuItemVisibility( this.counts[ attr ].state, 'show' ); |
| 2120 | } |
| 2121 | }, |
| 2122 | |
2084 | 2123 | // Menus |
2085 | 2124 | /** |
2086 | 2125 | * @param {wp.Backbone.View} view |
… |
… |
|
2093 | 2132 | }) |
2094 | 2133 | }); |
2095 | 2134 | }, |
| 2135 | |
| 2136 | menuItemVisibility: function( state, visibility ) { |
| 2137 | var menu = this.menu.get(); |
| 2138 | if ( visibility === 'hide' ) { |
| 2139 | menu.hide( state ); |
| 2140 | } else if ( visibility === 'show' ) { |
| 2141 | menu.show( state ); |
| 2142 | } |
| 2143 | }, |
2096 | 2144 | /** |
2097 | 2145 | * @param {wp.Backbone.View} view |
2098 | 2146 | */ |
… |
… |
|
4066 | 4114 | |
4067 | 4115 | deselect: function() { |
4068 | 4116 | this.$el.children().removeClass('active'); |
| 4117 | }, |
| 4118 | |
| 4119 | hide: function( id ) { |
| 4120 | var view = this.get( id ); |
| 4121 | |
| 4122 | if ( ! view ) { |
| 4123 | return; |
| 4124 | } |
| 4125 | |
| 4126 | view.$el.addClass('hidden'); |
| 4127 | }, |
| 4128 | |
| 4129 | show: function( id ) { |
| 4130 | var view = this.get( id ); |
| 4131 | |
| 4132 | if ( ! view ) { |
| 4133 | return; |
| 4134 | } |
| 4135 | |
| 4136 | view.$el.removeClass('hidden'); |
4069 | 4137 | } |
4070 | 4138 | }); |
4071 | 4139 | |