From 95a8afa8525fb603116a5b27b94dd197b7db5484 Mon Sep 17 00:00:00 2001 From: Ramon Date: Mon, 18 Oct 2021 10:12:01 -0300 Subject: [PATCH 1/3] Fix label field on video editing --- assets/js/src/views/video-edit.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/js/src/views/video-edit.js b/assets/js/src/views/video-edit.js index 27f0d1e6..6ac51102 100644 --- a/assets/js/src/views/video-edit.js +++ b/assets/js/src/views/video-edit.js @@ -173,7 +173,7 @@ var VideoEditView = BrightcoveView.extend({ container = document.getElementById('js-bc-labels'); // Clean up our cloned row - newRow.find('input').prop('disabled', false); + newRow.find('input').prop('disabled', false).val(''); newRow.removeAttr('id'); newRow.removeClass('empty-row'); @@ -189,6 +189,9 @@ var VideoEditView = BrightcoveView.extend({ labelAutocomplete: function (evnt) { jQuery('.brightcove-labels').autocomplete({ source: wpbc.preload.labels, + select: function () { + $(this).parent('.bc-label-repeater.empty-row').removeClass('empty-row'); + }, }); }, From dcd03ee9374c6dd3e08fce23702a6907fb1311c1 Mon Sep 17 00:00:00 2001 From: Ramon Date: Mon, 18 Oct 2021 10:41:09 -0300 Subject: [PATCH 2/3] Update to append the autocomplete for the label fields on .media-modal --- assets/js/src/views/video-edit.js | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/js/src/views/video-edit.js b/assets/js/src/views/video-edit.js index 6ac51102..298e78bc 100644 --- a/assets/js/src/views/video-edit.js +++ b/assets/js/src/views/video-edit.js @@ -192,6 +192,7 @@ var VideoEditView = BrightcoveView.extend({ select: function () { $(this).parent('.bc-label-repeater.empty-row').removeClass('empty-row'); }, + appendTo: '.media-modal', }); }, From dfdae31cd7d7457e7aaf84b0707a08fec8f5c2c8 Mon Sep 17 00:00:00 2001 From: Ramon Date: Mon, 18 Oct 2021 10:41:57 -0300 Subject: [PATCH 3/3] build assets --- assets/js/brightcove-admin.js | 6 +++++- assets/js/brightcove-admin.js.map | 2 +- assets/js/brightcove-admin.min.js | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/assets/js/brightcove-admin.js b/assets/js/brightcove-admin.js index 3b430533..30d1f9d0 100644 --- a/assets/js/brightcove-admin.js +++ b/assets/js/brightcove-admin.js @@ -2908,7 +2908,7 @@ var VideoEditView = BrightcoveView.extend({ container = document.getElementById('js-bc-labels'); // Clean up our cloned row - newRow.find('input').prop('disabled', false); + newRow.find('input').prop('disabled', false).val(''); newRow.removeAttr('id'); newRow.removeClass('empty-row'); @@ -2924,6 +2924,10 @@ var VideoEditView = BrightcoveView.extend({ labelAutocomplete: function (evnt) { jQuery('.brightcove-labels').autocomplete({ source: wpbc.preload.labels, + select: function () { + $(this).parent('.bc-label-repeater.empty-row').removeClass('empty-row'); + }, + appendTo: '.media-modal', }); }, diff --git a/assets/js/brightcove-admin.js.map b/assets/js/brightcove-admin.js.map index d36b0732..b6cc19bb 100644 --- a/assets/js/brightcove-admin.js.map +++ b/assets/js/brightcove-admin.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/models/media.js","src/models/media-collection.js","src/models/brightcove-media-manager.js","src/models/brightcove-modal.js","src/models/upload-collection.js","src/models/upload.js","src/views/brightcove.js","src/views/toolbar.js","src/views/upload-video-manager.js","src/views/brightcove-media-manager.js","src/views/brightcove-modal.js","src/views/media-details.js","src/views/media.js","src/views/playlist-edit.js","src/views/upload-details.js","src/views/upload-window.js","src/views/upload.js","src/views/video-edit.js","src/views/video-preview.js","src/views/media-collection.js","src/app.js"],"names":[],"mappings":"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","file":"brightcove-admin.js","sourcesContent":["/**\n * Media model for Media CPT\n */\n\nvar MediaModel = Backbone.Model.extend({\n\t/**\n\t * Copied largely from WP Attachment sync function\n\t * Triggered when attachment details change\n\t * Overrides Backbone.Model.sync\n\t *\n\t * @param {string} method\n\t * @param {wp.media.model.Media} model\n\t * @param {Object} [options={}]\n\t *\n\t * @returns {Promise}\n\t */\n\tsync: function (method, model, options) {\n\t\tvar accountHash = null;\n\n\t\t// Set the accountHash to the wpbc.preload.accounts[*] where the account_id\n\t\t// matches this media objects account_id.\n\t\t_.find(\n\t\t\twpbc.preload.accounts,\n\t\t\tfunction (account, hash) {\n\t\t\t\tif (account.account_id === this.get('account_id')) {\n\t\t\t\t\taccountHash = hash;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\t// If the attachment does not yet have an `id`, return an instantly\n\t\t// rejected promise. Otherwise, all of our requests will fail.\n\t\tif (_.isUndefined(this.id)) {\n\t\t\treturn $.Deferred().rejectWith(this).promise();\n\t\t}\n\n\t\t// Overload the `read` request so Media.fetch() functions correctly.\n\t\tif (method === 'read') {\n\t\t\toptions = options || {};\n\t\t\toptions.context = this;\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taction: 'bc_media_fetch',\n\t\t\t\tid: this.id,\n\t\t\t});\n\n\t\t\treturn wp.media.ajax(options);\n\n\t\t\t// Overload the `update` request so properties can be saved.\n\t\t}\n\t\tif (method === 'update') {\n\t\t\toptions = options || {};\n\t\t\toptions.context = this;\n\t\t\t// Set the action and ID.\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taccount: accountHash,\n\t\t\t\taction: 'bc_media_update',\n\t\t\t\tdescription: this.get('description'),\n\t\t\t\tlong_description: this.get('long_description'),\n\t\t\t\tname: this.get('name'),\n\t\t\t\tnonce: wpbc.preload.nonce,\n\t\t\t\ttags: this.get('tags'),\n\t\t\t\toldFolderId: this.get('oldFolderId'),\n\t\t\t\tfolderId: this.get('folderId'),\n\t\t\t\ttype: this.get('mediaType'),\n\t\t\t\tcustom_fields: this.get('custom_fields'),\n\t\t\t\thistory: this.get('_change_history'),\n\t\t\t\tposter: this.get('poster'),\n\t\t\t\tthumbnail: this.get('thumbnail'),\n\t\t\t\tcaptions: this.get('captions'),\n\t\t\t\tlabels: this.get('labels'),\n\t\t\t});\n\n\t\t\tvar video_ids = this.get('video_ids');\n\t\t\tif (video_ids) {\n\t\t\t\toptions.data.playlist_id = this.id;\n\t\t\t\toptions.data.playlist_videos = video_ids;\n\t\t\t\toptions.data.type = 'playlists';\n\t\t\t} else {\n\t\t\t\toptions.data.video_id = this.id;\n\t\t\t}\n\n\t\t\toptions.success = this.successFunction;\n\t\t\toptions.error = this.failFunction;\n\n\t\t\twpbc.broadcast.trigger('spinner:on');\n\t\t\treturn wp.media.ajax(options);\n\n\t\t\t// Overload the `delete` request so attachments can be removed.\n\t\t\t// This will permanently delete an attachment.\n\t\t}\n\t\tif (method === 'delete') {\n\t\t\toptions = options || {};\n\t\t\tvar self = this;\n\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taccount: accountHash,\n\t\t\t\taction: 'bc_media_delete',\n\t\t\t\tid: this.get('id'),\n\t\t\t\tnonce: wpbc.preload.nonce,\n\t\t\t\ttype: this.get('mediaType'),\n\t\t\t});\n\n\t\t\treturn wp.media\n\t\t\t\t.ajax(options)\n\t\t\t\t.done(function (response) {\n\t\t\t\t\tself.destroyed = true;\n\t\t\t\t\twpbc.broadcast.trigger('delete:successful', response);\n\t\t\t\t\tif (\n\t\t\t\t\t\tself.get('mediaType') === 'videos' ||\n\t\t\t\t\t\t!_.isUndefined(self.get('video_ids'))\n\t\t\t\t\t) {\n\t\t\t\t\t\twpbc.preload.videos = undefined;\n\t\t\t\t\t} else {\n\t\t\t\t\t\twpbc.preload.playlists = undefined;\n\t\t\t\t\t}\n\t\t\t\t\twpbc.responses = {};\n\t\t\t\t})\n\t\t\t\t.fail(function (response) {\n\t\t\t\t\tself.destroyed = false;\n\t\t\t\t\twpbc.broadcast.trigger('videoEdit:message', response, 'error');\n\t\t\t\t\twpbc.broadcast.trigger('spinner:off');\n\t\t\t\t});\n\n\t\t\t// Otherwise, fall back to `Backbone.sync()`.\n\t\t}\n\t\t/**\n\t\t * Call `sync` directly on Backbone.Model\n\t\t */\n\t\treturn Backbone.Model.prototype.sync.apply(this, arguments);\n\t},\n\n\t/**\n\t * Convert date strings into Date objects.\n\t *\n\t * @param {Object} resp The raw response object, typically returned by fetch()\n\t * @returns {Object} The modified response object, which is the attributes hash\n\t * to be set on the model.\n\t */\n\tparse: function (resp) {\n\t\tif (!resp) {\n\t\t\treturn resp;\n\t\t}\n\n\t\tresp.date = new Date(resp.date);\n\t\tresp.modified = new Date(resp.modified);\n\t\treturn resp;\n\t},\n\n\tgetAccountName: function () {\n\t\tvar account_id = this.get('account_id');\n\t\tvar matchingAccount = _.findWhere(wpbc.preload.accounts, {\n\t\t\taccount_id: this.get('account_id'),\n\t\t});\n\t\treturn undefined === matchingAccount\n\t\t\t? this.getSelectedAccountName()\n\t\t\t: matchingAccount.account_name;\n\t},\n\n\tgetSelectedAccountName: function () {\n\t\tvar elt = document.getElementById('brightcove-media-source');\n\n\t\tif (elt.selectedIndex === -1) {\n\t\t\treturn 'unavailable';\n\t\t}\n\n\t\treturn elt.options[elt.selectedIndex].text;\n\t},\n\n\tgetReadableDuration: function () {\n\t\tvar duration = this.get('duration');\n\n\t\tif (duration) {\n\t\t\tduration = Number(duration / 1000);\n\t\t\tvar hours = Math.floor(duration / 3600);\n\t\t\tvar minutes = Math.floor((duration % 3600) / 60);\n\t\t\tvar seconds = Math.floor((duration % 3600) % 60);\n\t\t\treturn (\n\t\t\t\t(hours > 0 ? hours + ':' + (minutes < 10 ? '0' : '') : '') +\n\t\t\t\tminutes +\n\t\t\t\t':' +\n\t\t\t\t(seconds < 10 ? '0' : '') +\n\t\t\t\tseconds\n\t\t\t);\n\t\t}\n\t\treturn duration;\n\t},\n\n\tgetReadableDate: function (field) {\n\t\tvar updated_at = this.get(field);\n\n\t\tif (updated_at) {\n\t\t\tvar date = new Date(updated_at);\n\n\t\t\tvar hour = date.getHours();\n\t\t\tvar min = date.getMinutes();\n\t\t\tvar year = date.getFullYear();\n\t\t\tvar mon = date.getMonth() + 1;\n\t\t\tvar day = date.getDate();\n\t\t\tvar ampm = hour >= 12 ? 'pm' : 'am';\n\n\t\t\thour %= 12;\n\t\t\thour = hour || 12;\n\n\t\t\tmin = min < 10 ? '0' + min : min;\n\n\t\t\tvar readableDate = year + '/' + mon + '/' + day + ' - ' + hour + ':' + min + ' ' + ampm;\n\t\t\treturn readableDate;\n\t\t}\n\t\treturn updated_at;\n\t},\n\n\tsuccessFunction: function (message) {\n\t\twpbc.broadcast.trigger('videoEdit:message', message, 'success');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t\tif (_.isArray(this.get('video_ids')) && wpbc.preload && wpbc.preload.playlists) {\n\t\t\tvar id = this.get('id');\n\t\t\t_.each(\n\t\t\t\twpbc.preload.playlists,\n\t\t\t\tfunction (playlist, index) {\n\t\t\t\t\tif (playlist.id === id) {\n\t\t\t\t\t\twpbc.preload.playlists[index] = this.toJSON();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\t\t}\n\t\twpbc.responses = {};\n\t\tif (this.get('mediaType') === 'videos' || !_.isUndefined(this.get('video_ids'))) {\n\t\t\twpbc.preload.videos = undefined;\n\t\t} else {\n\t\t\twpbc.preload.playlists = undefined;\n\t\t}\n\t},\n\n\tfailFunction: function (message) {\n\t\twpbc.broadcast.trigger('videoEdit:message', message, 'error');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t},\n});\n","var MediaCollection = Backbone.Collection.extend({\n\tmodel: MediaModel,\n\t/**\n\t * @param {Array} [models=[]] Array of models used to populate the collection.\n\t * @param {Object} [options={}]\n\t */\n\tinitialize: function (models, options) {\n\t\toptions = options || {};\n\t\tif (options.activeAccount) {\n\t\t\tthis.activeAccount = options.activeAccount;\n\t\t}\n\n\t\tthis.additionalRequest = false;\n\n\t\tthis.pageNumber = this.pageNumber || 1;\n\n\t\tif (\n\t\t\t!this.mediaType &&\n\t\t\t(this.mediaCollectionViewType === 'existingPlaylists' ||\n\t\t\t\tthis.mediaCollectionViewType === 'libraryPlaylists')\n\t\t) {\n\t\t\tthis.mediaType = 'videos';\n\t\t}\n\n\t\tthis.mediaCollectionViewType = options.mediaCollectionViewType || 'grid';\n\n\t\tif (options.excludeVideoIds && options.mediaCollectionViewType === 'libraryPlaylists') {\n\t\t\tthis.excludeVideoIds = options.excludeVideoIds;\n\t\t}\n\n\t\tif (options.videoIds && !models) {\n\t\t\tthis.mediaType = 'videos';\n\t\t\tthis.videoIds = options.videoIds;\n\t\t\tthis.fetch();\n\t\t} else if (options.mediaType !== 'playlists') {\n\t\t\tthis.mediaType = 'videos';\n\t\t\tthis.fetch();\n\t\t}\n\n\t\tthis.mediaType = options.mediaType;\n\n\t\tif (this.mediaType === 'videos') {\n\t\t\tthis.listenTo(wpbc.broadcast, 'uploader:uploadedFileDetails', function (video) {\n\t\t\t\t// Add the newly uploaded file\n\t\t\t\tthis.add(video, { at: 0 });\n\t\t\t});\n\t\t}\n\n\t\tthis.activeAccount = options.activeAccount || 'all';\n\t\tthis.searchTerm = options.searchTerm || '';\n\t\tthis.dates = options.dates || 'all';\n\t\tthis.tag = options.tag || '';\n\t\tthis.folderId = options.folderId || '';\n\t\tthis.oldFolderId = options.oldFolderId || '';\n\t\tthis.labelPath = options.labelPath || '';\n\t\tthis.oldLabelPath = options.oldLabelPath || '';\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:activeAccount', function (accountId) {\n\t\t\tthis.activeAccount = accountId;\n\t\t\twp.heartbeat.enqueue('brightcove_heartbeat', { accountId: accountId }, true);\n\t\t\tthis.fetch();\n\t\t});\n\n\t\t$(document).on('heartbeat-tick.brightcove_heartbeat', function (event, data) {\n\t\t\tif (data.hasOwnProperty('brightcove_heartbeat')) {\n\t\t\t\twp.heartbeat.enqueue(\n\t\t\t\t\t'brightcove_heartbeat',\n\t\t\t\t\t{ accountId: data.brightcove_heartbeat.account_id },\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:searchTerm', function (searchTerm) {\n\t\t\tthis.searchTerm = searchTerm;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:tag', function (tag) {\n\t\t\tif (tag === 'all') {\n\t\t\t\ttag = '';\n\t\t\t}\n\n\t\t\tthis.tag = tag;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:folder', function (folderId) {\n\t\t\tthis.oldFolderId = this.folderId;\n\n\t\t\tif (folderId === 'all') {\n\t\t\t\tfolderId = '';\n\t\t\t}\n\n\t\t\tthis.folderId = folderId;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:label', function (labelPath) {\n\t\t\tthis.oldLabelPath = this.labelPath;\n\n\t\t\tif (labelPath === 'all') {\n\t\t\t\tlabelPath = '';\n\t\t\t}\n\n\t\t\tthis.labelPath = labelPath;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:stateChanged', function (state) {\n\t\t\tthis.oldState = this.state;\n\t\t\tthis.state = state;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:date', function (date) {\n\t\t\tthis.date = date;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'tabChange', function (settings) {\n\t\t\tthis.killPendingRequests();\n\t\t\tif (settings.mediaType !== this.mediaType) {\n\t\t\t\tthis.mediaType = settings.mediaType;\n\t\t\t\tvar preload = wpbc.preload[this.mediaType];\n\t\t\t\tvar model;\n\t\t\t\t// Remove all models from the collection\n\t\t\t\twhile ((model = this.first())) {\n\t\t\t\t\tthis.remove(model);\n\t\t\t\t}\n\t\t\t\tif (preload !== undefined) {\n\t\t\t\t\tthis.add(preload);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fetch();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tkillPendingRequests: function () {\n\t\t// Kill all pending requests\n\t\t_.each(wpbc.requests, function (request) {\n\t\t\trequest.abort();\n\t\t});\n\n\t\twpbc.requests = [];\n\t},\n\n\tchecksum: function (object) {\n\t\tif (!_.isString(object)) {\n\t\t\tif (_.isFunction(object.toJSON)) {\n\t\t\t\tobject = object.toJSON();\n\t\t\t} else {\n\t\t\t\tobject = JSON.stringify(object);\n\t\t\t}\n\t\t}\n\t\tvar checksum = 0x12345678;\n\n\t\tfor (var i = 0; i < object.length; i++) {\n\t\t\tchecksum += object.charCodeAt(i) * (i + 1);\n\t\t}\n\n\t\treturn checksum;\n\t},\n\n\t/**\n\t * Overrides Backbone.Collection.sync\n\t *\n\t * @param {String} method\n\t * @param {Backbone.Model} model\n\t * @param {Object} [options={}]\n\t * @returns {Promise}\n\t */\n\tsync: function (method, model, options) {\n\t\tvar args, fallback;\n\n\t\t// Overload the read method so Media.fetch() functions correctly.\n\t\tif (method === 'read') {\n\t\t\toptions = options || {};\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taction: 'bc_media_query',\n\t\t\t\taccount: this.activeAccount || wpbc.preload.defaultAccountId,\n\t\t\t\tdates: this.date,\n\t\t\t\tposts_per_page: wpbc.posts_per_page,\n\t\t\t\tpage_number: this.pageNumber,\n\t\t\t\tnonce: wpbc.preload.nonce,\n\t\t\t\tsearch: this.searchTerm,\n\t\t\t\ttags: this.tag,\n\t\t\t\tlabels: this.labels,\n\t\t\t\tlabelPath: this.labelPath,\n\t\t\t\toldLabelPath: this.oldLabelPath,\n\t\t\t\toldFolderId: this.oldFolderId,\n\t\t\t\tfolderId: this.folderId,\n\t\t\t\tstate: this.state,\n\t\t\t\toldState: this.oldState,\n\t\t\t\ttagName: wpbc.preload.tags[this.tag],\n\t\t\t\ttype: this.mediaType || 'videos',\n\t\t\t});\n\n\t\t\tvar previousRequest = _.pick(\n\t\t\t\toptions.data,\n\t\t\t\t'account',\n\t\t\t\t'dates',\n\t\t\t\t'posts_per_page',\n\t\t\t\t'search',\n\t\t\t\t'tags',\n\t\t\t\t'type',\n\t\t\t\t'folderId',\n\t\t\t\t'tagName',\n\t\t\t\t'state',\n\t\t\t);\n\n\t\t\t// Determine if we're infinite scrolling or not.\n\t\t\tthis.additionalRequest = _.isEqual(previousRequest, wpbc.previousRequest);\n\t\t\tif (!this.additionalRequest) {\n\t\t\t\toptions.data.page_number = 1;\n\t\t\t}\n\t\t\t/* Prevent reloading on the playlist edit as the playlist videos are one request and library videos another */\n\t\t\tif (this.mediaCollectionViewType !== 'existingPlaylists') {\n\t\t\t\twpbc.previousRequest = previousRequest;\n\t\t\t}\n\n\t\t\tif (this.videoIds) {\n\t\t\t\toptions.data.videoIds = this.videoIds.length ? this.videoIds : 'none';\n\t\t\t}\n\n\t\t\toptions.data.query = args;\n\n\t\t\tif (\n\t\t\t\t!_.contains(['libraryPlaylists', 'existingPlaylists'], this.mediaCollectionViewType)\n\t\t\t) {\n\t\t\t\tthis.killPendingRequests();\n\t\t\t}\n\n\t\t\tvar requestChecksum = this.checksum(options.data);\n\n\t\t\tif (!_.isUndefined(wpbc.responses[requestChecksum])) {\n\t\t\t\tthis.parse({ data: wpbc.responses[requestChecksum] }, 'cached');\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tvar request = $.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: wp.ajax.settings.url,\n\t\t\t\tcontext: this,\n\t\t\t\tdata: options.data,\n\t\t\t})\n\t\t\t\t.done(function (response, status, request) {\n\t\t\t\t\tthis.parse(response, status, request, requestChecksum);\n\t\t\t\t})\n\t\t\t\t.fail(this.fetchFail);\n\n\t\t\twpbc.requests.push(request);\n\t\t\twpbc.broadcast.trigger('spinner:on');\n\n\t\t\treturn request;\n\n\t\t\t// Otherwise, fall back to Backbone.sync()\n\t\t}\n\t\t/**\n\t\t * Call wp.media.model.MediaCollection.sync or Backbone.sync\n\t\t */\n\t\tfallback = MediaCollection.prototype.sync ? MediaCollection.prototype : Backbone;\n\t\treturn fallback.sync.apply(this, arguments);\n\t},\n\n\tfetchFail: function () {\n\t\tif (this.pageNumber > 1) {\n\t\t\tthis.pageNumber--;\n\t\t}\n\t\twpbc.broadcast.trigger('fetch:finished');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t\twpbc.broadcast.trigger('fetch:apiError');\n\t\tif (status === 'abort') {\n\t\t}\n\t},\n\n\t/**\n\t * A custom AJAX-response parser.\n\t *\n\t * See trac ticket #24753\n\t *\n\t * @param {Object|Array} resp The raw response Object/Array.\n\t * @param {Object} xhr\n\t * @returns {Array} The array of model attributes to be added to the\n\t * collection\n\t */\n\tparse: function (response, status, request, checksum) {\n\t\twpbc.broadcast.trigger('fetch:finished');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t\tif (\n\t\t\t!_.contains(['success', 'cached'], status) ||\n\t\t\t(status !== 'cached' && !response.success)\n\t\t) {\n\t\t\twpbc.broadcast.trigger('fetch:apiError');\n\t\t\treturn false;\n\t\t}\n\n\t\tvar data = response.data;\n\n\t\tif (status === 'success') {\n\t\t\twpbc.responses[checksum] = data;\n\t\t}\n\n\t\tif (data === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!_.isArray(data)) {\n\t\t\tdata = [data];\n\t\t}\n\n\t\t/**\n\t\t * In playlist video search, we remove the videos that already exist in\n\t\t * the playlist.\n\t\t */\n\t\tif (_.isArray(this.excludeVideoIds)) {\n\t\t\t_.each(this.excludeVideoIds, function (videoId) {\n\t\t\t\tdata = _.without(data, _.findWhere(data, { id: videoId }));\n\t\t\t});\n\t\t}\n\n\t\tif (data.length === 0) {\n\t\t\twpbc.broadcast.trigger('videoEdit:message', 'No videos found.', 'error', true);\n\t\t}\n\n\t\tvar allMedia = _.map(\n\t\t\tdata,\n\t\t\tfunction (attrs) {\n\t\t\t\tvar id, media, newAttributes;\n\n\t\t\t\tif (attrs instanceof Backbone.Model) {\n\t\t\t\t\tid = attrs.get('id');\n\t\t\t\t\tattrs = attrs.attributes;\n\t\t\t\t} else {\n\t\t\t\t\tid = attrs.id;\n\t\t\t\t}\n\n\t\t\t\tmedia = this.findWhere({ id: id });\n\t\t\t\tif (!media) {\n\t\t\t\t\tmedia = this.add(attrs);\n\t\t\t\t} else {\n\t\t\t\t\tnewAttributes = media.parse(attrs);\n\n\t\t\t\t\tif (!_.isEqual(media.attributes, newAttributes)) {\n\t\t\t\t\t\tmedia.set(newAttributes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tmedia.set('viewType', this.mediaCollectionViewType);\n\t\t\t\treturn media;\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\tif (this.additionalRequest) {\n\t\t\tthis.add(allMedia);\n\t\t} else {\n\t\t\tthis.set(allMedia);\n\t\t}\n\t},\n});\n","var BrightcoveMediaManagerModel = Backbone.Model.extend({\n\tdefaults: {\n\t\tview: 'grid',\n\t\tdate: 'all',\n\t\ttags: 'all',\n\t\ttype: null, // enum[playlist, video]\n\t\tpreload: true,\n\t\tsearch: '',\n\t\taccount: wpbc.preload.defaultAccountId,\n\t\tposter: {},\n\t\tthumbnail: {},\n\t},\n\tinitialize: function (options) {\n\t\t_.defaults(options, this.defaults);\n\n\t\twp.heartbeat.enqueue(\n\t\t\t'brightcove_heartbeat',\n\t\t\t{ accountId: wpbc.preload.defaultAccountId },\n\t\t\ttrue,\n\t\t);\n\n\t\tvar collection = new MediaCollection([], { mediaType: options.mediaType });\n\t\tcollection.reset();\n\t\t/* Prevent empty element from living in our collection */\n\n\t\tif (options.preload && options.preload.length) {\n\t\t\tcollection.add(options.preload);\n\t\t}\n\n\t\toptions.preload = !!options.preload; // Whether or not a preload var was present.\n\n\t\tthis.set('media-collection-view', new MediaCollectionView({ collection: collection }));\n\t\tthis.set('options', options);\n\t},\n});\n","/**\n * Media model for Media CPT\n */\n\nvar BrightcoveModalModel = Backbone.Model.extend({\n\tgetMediaManagerSettings: function () {\n\t\tvar tab = this.get('tab');\n\t\tvar settings = {\n\t\t\tupload: {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'videos',\n\t\t\t\tmode: 'uploader',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t\tposter: {},\n\t\t\t\tthumbnail: {},\n\t\t\t},\n\t\t\tvideos: {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'videos',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t\tplaylists: {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'playlists',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t\t'video-experience': {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'videoexperience',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t\t'playlist-experience': {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'playlistexperience',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t};\n\n\t\tif (undefined !== settings[tab]) {\n\t\t\treturn settings[tab];\n\t\t}\n\t\treturn false;\n\t},\n});\n","/**\n * Collection model to contain pending uploads\n */\n\nvar UploadModelCollection = Backbone.Collection.extend({\n\tinitialize: function (options) {\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:queuedFilesAdded', this.queuedFilesAdded);\n\t},\n\n\tqueuedFilesAdded: function (queuedFiles) {\n\t\t_.each(\n\t\t\tqueuedFiles,\n\t\t\tfunction (queuedFile) {\n\t\t\t\tthis.add(new UploadModel(queuedFile));\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\t},\n});\n","/**\n * Model to contain pending upload\n */\n\nvar UploadModel = Backbone.Model.extend({\n\tinitialize: function (options) {},\n\n\thumanReadableSize: function () {\n\t\tvar bytes = this.get('size');\n\t\tif (bytes === 0) {\n\t\t\treturn '0 Byte';\n\t\t}\n\t\tvar k = 1000;\n\t\tvar sizes = ['Bytes', 'KB', 'MB', 'GB'];\n\t\tvar i = Math.floor(Math.log(bytes) / Math.log(k));\n\t\treturn (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];\n\t},\n});\n","var BrightcoveView = wp.Backbone.View.extend({\n\tsubviews: null,\n\n\tregisterSubview: function (view) {\n\t\tthis.subviews = this.subviews || [];\n\t\tthis.subviews.push(view);\n\t},\n\n\tremove: function () {\n\t\t_.invoke(this.subviews, 'remove');\n\t\twp.Backbone.View.prototype.remove.call(this);\n\t},\n\n\tinsertShortcode: function () {\n\t\tif (!this.model) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar shortcode = wpbc.shortcode;\n\n\t\tif (undefined === this.mediaType) {\n\t\t\tvar template = wp.template('brightcove-mediatype-notice');\n\n\t\t\t// Throw a notice to the user that the file is not the correct format\n\t\t\t$('#lost-connection-notice').before(template);\n\n\t\t\t// Allow the user to dismiss the notice\n\t\t\t$('#js-mediatype-dismiss').on('click', function () {\n\t\t\t\t$('#js-mediatype-notice')\n\t\t\t\t\t.first()\n\t\t\t\t\t.fadeOut(500, function () {\n\t\t\t\t\t\t$(this).remove();\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tif (wpbc.modal.target === 'content') {\n\t\t\twindow.send_to_editor(shortcode);\n\t\t} else {\n\t\t\t$(wpbc.modal.target).val(shortcode);\n\t\t\t$(wpbc.modal.target).change();\n\t\t}\n\n\t\twpbc.broadcast.trigger('close:modal');\n\t},\n});\n","/**\n * This is the toolbar to handle sorting, filtering, searching and grid/list\n * view toggles. State is captured in the brightcove-media-manager model.\n */\nvar ToolbarView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'media-toolbar wp-filter',\n\ttemplate: wp.template('brightcove-media-toolbar'),\n\n\tevents: {\n\t\t'click .view-list': 'toggleList',\n\t\t'click .view-grid': 'toggleGrid',\n\t\t'click .brightcove-toolbar': 'toggleToolbar',\n\t\t'change .brightcove-media-source': 'sourceChanged',\n\t\t'change .brightcove-media-dates': 'datesChanged',\n\t\t'change .brightcove-media-tags': 'tagsChanged',\n\t\t'change .brightcove-media-folders': 'foldersChanged',\n\t\t'change .brightcove-media-labels': 'labelsChanged',\n\t\t'change .brightcove-empty-playlists': 'emptyPlaylistsChanged',\n\t\t'change .brightcove-media-state-filters': 'stateChanged',\n\t\t'click #media-search': 'searchHandler',\n\t\t'keyup .search': 'enterHandler',\n\t\t'input #media-search-input': 'handleEmptySearchInput',\n\t},\n\n\trender: function () {\n\t\tvar mediaType = this.model.get('mediaType');\n\t\tvar options = {\n\t\t\taccounts: wpbc.preload.accounts,\n\t\t\tdates: {},\n\t\t\tmediaType: mediaType,\n\t\t\ttags: wpbc.preload.tags,\n\t\t\tfolders: wpbc.preload.folders,\n\t\t\tlabels: wpbc.preload.labels,\n\t\t\tlabelPath: this.model.get('labelPath'),\n\t\t\tfolderId: this.model.get('folderId'),\n\t\t\taccount: this.model.get('account'),\n\t\t};\n\n\t\tvar dates = wpbc.preload.dates;\n\t\tvar date_var = this.model.get('date');\n\t\t/* @todo: find out if this is working */\n\t\tif (\n\t\t\tdates !== undefined &&\n\t\t\tdates[mediaType] !== undefined &&\n\t\t\tdates[mediaType][date_var] !== undefined\n\t\t) {\n\t\t\toptions.dates = dates[mediaType][date_var];\n\t\t}\n\n\t\tthis.$el.html(this.template(options));\n\t\tvar spinner = this.$el.find('.spinner');\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:on', function () {\n\t\t\tspinner.addClass('is-active').removeClass('hidden');\n\t\t});\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:off', function () {\n\t\t\tspinner.removeClass('is-active').addClass('hidden');\n\t\t});\n\t},\n\n\t// List view Selected\n\ttoggleList: function () {\n\t\tthis.trigger('viewType', 'list');\n\t\tthis.$el.find('.view-list').addClass('current');\n\t\tthis.$el.find('.view-grid').removeClass('current');\n\t},\n\n\t// Grid view Selected\n\ttoggleGrid: function () {\n\t\tthis.trigger('viewType', 'grid');\n\t\tthis.$el.find('.view-grid').addClass('current');\n\t\tthis.$el.find('.view-list').removeClass('current');\n\t},\n\n\t// Toggle toolbar help\n\ttoggleToolbar: function () {\n\t\tvar template = wp.template('brightcove-tooltip-notice');\n\n\t\t// Throw a notice to the user that the file is not the correct format\n\t\t$('.brightcove.media-frame-router').before(template);\n\t\t// Allow the user to dismiss the notice\n\t\t$('#js-tooltip-dismiss').on('click', function () {\n\t\t\t$('#js-tooltip-notice')\n\t\t\t\t.first()\n\t\t\t\t.fadeOut(500, function () {\n\t\t\t\t\t$(this).remove();\n\t\t\t\t});\n\t\t});\n\t},\n\n\t// Brightcove source changed\n\tsourceChanged: function (event) {\n\t\t// Store the currently selected account on the model.\n\t\tthis.model.set('account', event.target.value);\n\t\twpbc.broadcast.trigger('change:activeAccount', event.target.value);\n\t\t// Update wpbc object for later use on upload-details.js\n\t\twpbc.preload.defaultAccountId = event.target.value;\n\t\twpbc.preload.defaultAccount =\n\t\t\tevent.target.options[event.target.selectedIndex].getAttribute('data-hash');\n\t},\n\n\tdatesChanged: function (event) {\n\t\twpbc.broadcast.trigger('change:date', event.target.value);\n\t},\n\n\ttagsChanged: function (event) {\n\t\twpbc.broadcast.trigger('change:tag', event.target.value);\n\t},\n\n\tfoldersChanged: function (event) {\n\t\tthis.model.set('oldFolderId', this.model.get('folderId'));\n\t\tthis.model.set('folderId', event.target.value);\n\t\twpbc.broadcast.trigger('change:folder', event.target.value);\n\t},\n\n\tlabelsChanged: function (event) {\n\t\tthis.model.set('oldLabelPath', this.model.get('labelPath'));\n\t\tthis.model.set('labelPath', event.target.value);\n\t\twpbc.broadcast.trigger('change:label', event.target.value);\n\t},\n\n\temptyPlaylistsChanged: function (event) {\n\t\tvar emptyPlaylists = $(event.target).prop('checked');\n\t\twpbc.broadcast.trigger('change:emptyPlaylists', emptyPlaylists);\n\t},\n\n\tenterHandler: function (event) {\n\t\tif (event.keyCode === 13) {\n\t\t\tthis.searchHandler(event);\n\t\t}\n\t},\n\n\thandleEmptySearchInput: function (event) {\n\t\tif (this.model.get('search') && !event.target.value) {\n\t\t\tthis.model.set('search', '');\n\t\t\twpbc.broadcast.trigger('change:searchTerm', '');\n\t\t}\n\t},\n\n\tstateChanged: function (event) {\n\t\tthis.model.set('oldState', 'oldstate');\n\t\tthis.model.set('state', 'newstate');\n\t\twpbc.broadcast.trigger('change:stateChanged', event.target.value);\n\t},\n\n\tsearchHandler: function (event) {\n\t\tvar searchTerm = $('#media-search-input').val();\n\n\t\tif (searchTerm.length > 2 && searchTerm !== this.model.get('search')) {\n\t\t\tthis.model.set('search', searchTerm);\n\t\t\twpbc.broadcast.trigger('change:searchTerm', searchTerm);\n\t\t} else if (searchTerm.length === 0) {\n\t\t\twpbc.broadcast.trigger('change:searchTerm', '');\n\t\t}\n\t},\n});\n","var UploadVideoManagerView = BrightcoveView.extend({\n\tclassName: 'brightcove-file-uploader',\n\n\tevents: {\n\t\t'click .brightcove-start-upload': 'triggerUpload',\n\t},\n\n\tinitialize: function (options) {\n\t\t/**\n\t\t * If you're looking for the Plupload instance, you're in the wrong place, check the UploadWindowView\n\t\t */\n\t\tthis.collection = new UploadModelCollection();\n\t\tif (options) {\n\t\t\tthis.options = options;\n\n\t\t\tthis.successMessage = options.successMessage || this.successMessage;\n\t\t}\n\n\t\tthis.uploadWindow = new UploadWindowView();\n\n\t\tthis.listenTo(this.collection, 'add', this.fileAdded);\n\t\tthis.listenTo(wpbc.broadcast, 'pendingUpload:selectedItem', this.selectedItem);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:prepareUpload', this.prepareUpload);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:successMessage', this.successMessage);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:errorMessage', this.errorMessage);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:clear', this.resetUploads);\n\t\tthis.listenTo(wpbc.broadcast, 'upload:video', this.resetUploads);\n\t},\n\n\tresetUploads: function () {\n\t\twhile ((model = this.collection.first())) {\n\t\t\tthis.collection.remove(model);\n\t\t}\n\t},\n\n\terrorMessage: function (message) {\n\t\tthis.message(message, 'error');\n\t},\n\n\tsuccessMessage: function (message) {\n\t\tthis.message(message, 'success');\n\t},\n\n\tmessage: function (message, type) {\n\t\tvar messages = this.$el.find('.brightcove-messages');\n\t\tvar messageClasses = '';\n\t\tif (type === 'success') {\n\t\t\tmessageClasses = 'notice updated';\n\t\t} else if (type === 'error') {\n\t\t\tmessageClasses = 'error';\n\t\t}\n\t\tvar newMessage = $(\n\t\t\t'

',\n\t\t);\n\t\tmessages.append(newMessage);\n\t\tnewMessage.addClass(messageClasses).find('.message-text').text(message);\n\t\tnewMessage.delay(4000).fadeOut(500, function () {\n\t\t\t$(this).remove();\n\t\t\twpbc.broadcast.trigger('upload:video');\n\t\t});\n\t},\n\n\tprepareUpload: function () {\n\t\twpbc.uploads = wpbc.uploads || {};\n\t\tthis.collection.each(function (upload) {\n\t\t\twpbc.uploads[upload.get('id')] = {\n\t\t\t\taccount: upload.get('account'),\n\t\t\t\tname: upload.get('fileName'),\n\t\t\t\ttags: upload.get('tags'),\n\t\t\t};\n\t\t});\n\t\twpbc.broadcast.trigger('uploader:startUpload');\n\t},\n\n\tfileAdded: function (model, collection) {\n\t\t// Start upload triggers progress bars under every video.\n\t\t// Need to re-render when one model is added\n\t\tif (this.collection.length === 1) {\n\t\t\tthis.render();\n\t\t}\n\t\tvar pendingUpload = new UploadView({ model: model });\n\t\tpendingUpload.render();\n\t\tpendingUpload.$el.appendTo(this.$el.find('.brightcove-pending-uploads'));\n\t},\n\n\ttriggerUpload: function () {\n\t\twpbc.broadcast.trigger('uploader:prepareUpload');\n\t},\n\n\tselectedItem: function (model) {\n\t\tthis.uploadDetails = new UploadDetailsView({ model: model });\n\t\tthis.uploadDetails.render();\n\t\tthis.$el.find('.brightcove-pending-upload-details').remove();\n\t\tthis.uploadDetails.$el.appendTo(this.$el.find('.brightcove-upload-queued-files'));\n\t},\n\n\trender: function (options) {\n\t\tif (this.collection.length) {\n\t\t\tthis.template = wp.template('brightcove-uploader-queued-files');\n\t\t} else {\n\t\t\tthis.template = wp.template('brightcove-uploader-inline');\n\t\t\tthis.uploadWindow.render();\n\t\t\tthis.uploadWindow.$el.appendTo($('body'));\n\t\t}\n\t\tthis.$el.html(this.template(options));\n\t\tif (this.collection.length) {\n\t\t\tthis.$el.find('.brightcove-start-upload').show();\n\t\t} else {\n\t\t\tthis.$el.find('.brightcove-start-upload').hide();\n\t\t}\n\t},\n});\n","var BrightcoveRouter = Backbone.Router.extend({\n\troutes: {\n\t\t'add-new-brightcove-video': 'addNew',\n\t},\n\taddNew: function () {\n\t\twpbc.broadcast.trigger('upload:video');\n\t},\n});\n\nvar BrightcoveMediaManagerView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'brightcove-media',\n\n\tevents: {\n\t\t/*\n\t\t\t 'click .brightcove.media-button': 'insertIntoPost'\n\t\t\t */\n\t},\n\n\tscrollHandler: function () {\n\t\twpbc.broadcast.trigger('scroll:mediaGrid');\n\t},\n\n\tinitialize: function (options) {\n\t\tvar scrollRefreshSensitivity = wp.media.isTouchDevice ? 300 : 200;\n\t\tthis.scrollHandler = _.chain(this.scrollHandler)\n\t\t\t.bind(this)\n\t\t\t.throttle(scrollRefreshSensitivity)\n\t\t\t.value();\n\t\tthis.options = options;\n\t\tthis.mode = options.mode || 'manager';\n\n\t\toptions.preload = this.options.preload ? wpbc.preload[this.options.mediaType] : false;\n\n\t\tthis.model = new BrightcoveMediaManagerModel(options);\n\n\t\t/* Search and dropdowns */\n\t\tthis.toolbar = new ToolbarView({ model: this.model });\n\n\t\t/* Uploader View */\n\t\tthis.uploader = new UploadVideoManagerView();\n\n\t\tthis.model.set('accounts', wpbc.preload.accounts); // All accounts.\n\t\tthis.model.set('activeAccount', options.account); // Active account ID / All\n\n\t\tthis.listenTo(this.toolbar, 'viewType', function (viewType) {\n\t\t\tthis.model.set('view', viewType); // Set the model view type\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'videoEdit:message', this.message);\n\t\tthis.listenTo(wpbc.broadcast, 'permanent:message', this.permanentMessage);\n\n\t\tthis.listenTo(wpbc.broadcast, 'remove:permanentMessage', function () {\n\t\t\tif (wpbc.permanentMessage) {\n\t\t\t\twpbc.permanentMessage.remove();\n\t\t\t}\n\n\t\t\tthis.$el.find('.brightcove-message').addClass('hidden');\n\t\t});\n\n\t\t// We only care when a change occurs\n\t\tthis.listenTo(this.model, 'change:view', function (model, type) {\n\t\t\tthis.model.get('media-collection-view').setViewType(type);\n\t\t});\n\n\t\tthis.listenTo(this.model, 'change:mode', function (model, mode) {\n\t\t\tif (mode !== 'uploader') {\n\t\t\t\twpbc.broadcast.trigger('uploader:clear');\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'cancelPreview:media', function (settings) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.detailsView = undefined;\n\t\t\tthis.model.set('mode', 'manager');\n\t\t\tthis.render();\n\n\t\t\t// Disable \"Insert Into Post\" button since no video would be selected.\n\t\t\twpbc.broadcast.trigger('toggle:insertButton');\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:emptyPlaylists', function (hideEmptyPlaylists) {\n\t\t\tvar mediaCollectionView = this.model.get('media-collection-view');\n\t\t\tthis.model.set('mode', 'manager');\n\n\t\t\t_.each(mediaCollectionView.collection.models, function (playlistModel) {\n\t\t\t\t// Don't hide smart playlists. Only Manual playlists will have playlistType as 'EXPLICIT'.\n\t\t\t\tif (playlistModel.get('type') !== 'EXPLICIT') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Manual play list will have videos populated in video_ids. Empty playlists will have zero video_ids.\n\t\t\t\tif (playlistModel.get('video_ids').length === 0) {\n\t\t\t\t\tif (hideEmptyPlaylists) {\n\t\t\t\t\t\tplaylistModel.view.$el.hide();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tplaylistModel.view.$el.show();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'delete:successful', function (message) {\n\t\t\tthis.startGridView();\n\t\t\tthis.message(message, 'success');\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:activeAccount', function (accountId) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('activeAccount', accountId);\n\t\t\tthis.model.set('mode', 'manager');\n\t\t\tthis.render();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:tag', function (tag) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('tag', tag);\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:folder', function (folder) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('oldFolderId', this.model.get('folderId'));\n\t\t\tthis.model.set('folderId', folder);\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:label', function (labelPath) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('oldLabelPath', this.model.get('labelPath'));\n\t\t\tthis.model.set('labelPath', labelPath);\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:stateChanged', function (state) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('oldState', 'oldstate');\n\t\t\tthis.model.set('state', 'newstate');\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:date', function (date) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('date', date);\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'upload:video', function () {\n\t\t\tthis.showUploader();\n\t\t});\n\n\t\tthis.listenTo(this.model, 'change:search', function (model, searchTerm) {\n\t\t\tthis.model.get('search');\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'start:gridview', function () {\n\t\t\t_.invoke(this.subviews, 'remove');\n\n\t\t\tthis.detailsView = null; // Prevent selected view from not being toggleable when we hit the back button on edit\n\n\t\t\tthis.startGridView();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'tabChange', function (settings) {\n\t\t\tthis.model.set(settings);\n\n\t\t\tif (this.detailsView instanceof MediaDetailsView) {\n\t\t\t\tthis.detailsView.remove();\n\n\t\t\t\tthis.detailsView = undefined;\n\t\t\t}\n\n\t\t\tthis.render();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'edit:media', function (model) {\n\t\t\tvar mediaType = this.model.get('mediaType');\n\n\t\t\tif (mediaType === 'videos') {\n\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\tif (this.model.get('mode') === 'editVideo') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// hide the previous notification\n\t\t\t\tvar messages = this.$el.find('.brightcove-message');\n\t\t\t\tmessages.addClass('hidden');\n\n\t\t\t\tthis.editView = new VideoEditView({ model: model });\n\n\t\t\t\tthis.registerSubview(this.editView);\n\t\t\t\tthis.model.set('mode', 'editVideo');\n\t\t\t\tthis.render();\n\t\t\t} else if (mediaType === 'videoexperience') {\n\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\tif (this.model.get('mode') === 'editVideo') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// hide the previous notification\n\t\t\t\tvar messages = this.$el.find('.brightcove-message');\n\t\t\t\tmessages.addClass('hidden');\n\n\t\t\t\tthis.editView = new VideoEditView({ model: model });\n\n\t\t\t\tthis.registerSubview(this.editView);\n\t\t\t\tthis.model.set('mode', 'editVideo');\n\t\t\t\tthis.render();\n\t\t\t} else {\n\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\tif (this.model.get('mode') === 'editPlaylist') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tthis.editView = new PlaylistEditView({ model: model });\n\n\t\t\t\tthis.registerSubview(this.editView);\n\t\t\t\tthis.model.set('mode', 'editPlaylist');\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'preview:media', function (model, shortcode) {\n\t\t\tvar mediaType = this.model.get('mediaType');\n\n\t\t\tif (mediaType === 'videos') {\n\t\t\t\t// We just hit the preview button with the preview window already open.\n\t\t\t\tif (this.model.get('mode') === 'previewVideo') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tthis.previewView = new VideoPreviewView({ model: model, shortcode: shortcode });\n\n\t\t\t\tthis.registerSubview(this.previewView);\n\t\t\t\tthis.model.set('mode', 'previewVideo');\n\t\t\t\tthis.render();\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * @todo: playlist preview view\n\t\t\t\t */\n\t\t\t\tthis.model.set('mode', 'editPlaylist');\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:searchTerm', function (mediaView) {\n\t\t\tthis.clearPreview();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'select:media', function (mediaView) {\n\t\t\t// Handle selection in the video experience tab.\n\t\t\tif (\n\t\t\t\tmediaView.model.collection &&\n\t\t\t\tmediaView.model.collection.mediaType === 'videoexperience'\n\t\t\t) {\n\t\t\t\t// Toggle the selected state.\n\t\t\t\tmediaView.$el.toggleClass('highlighted');\n\t\t\t\tmediaView.model.set('isSelected', mediaView.$el.hasClass('highlighted'));\n\n\t\t\t\t// Collect the selected models and extract their IDs.\n\t\t\t\tvar selected = _.filter(mediaView.model.collection.models, function (model) {\n\t\t\t\t\t\treturn model.get('isSelected');\n\t\t\t\t\t}),\n\t\t\t\t\tselectedIds = _.map(selected, function (model) {\n\t\t\t\t\t\treturn model.get('id');\n\t\t\t\t\t});\n\n\t\t\t\tthis.detailsView.model.set('id', selectedIds);\n\n\t\t\t\t// Clear the shortcode and disable insertion if no items are selected.\n\t\t\t\tif (_.isEmpty(selectedIds) && this.model.get('mediaType') !== 'videoexperience') {\n\t\t\t\t\twpbc.broadcast.trigger('toggle:insertButton');\n\t\t\t\t\t$('#shortcode').val('');\n\t\t\t\t} else {\n\t\t\t\t\t// Otherwise, enable insertion.\n\t\t\t\t\twpbc.broadcast.trigger('toggle:insertButton', 'enabled');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t/* If user selects same thumbnail they want to hide the details view */\n\t\t\t\tif (this.detailsView && this.detailsView.model === mediaView.model) {\n\t\t\t\t\tthis.detailsView.$el.toggle();\n\t\t\t\t\tmediaView.$el.toggleClass('highlighted');\n\t\t\t\t\tthis.model.get('media-collection-view').$el.toggleClass('menu-visible');\n\t\t\t\t\twpbc.broadcast.trigger('toggle:insertButton');\n\t\t\t\t} else {\n\t\t\t\t\tthis.clearPreview();\n\t\t\t\t\tthis.detailsView = new MediaDetailsView({\n\t\t\t\t\t\tmodel: mediaView.model,\n\t\t\t\t\t\tel: $('.brightcove.media-frame-menu'),\n\t\t\t\t\t\tmediaType: this.model.get('mediaType'),\n\t\t\t\t\t});\n\t\t\t\t\tthis.registerSubview(this.detailsView);\n\n\t\t\t\t\tthis.detailsView.render();\n\t\t\t\t\tthis.detailsView.$el.toggle(true); // Always show new view\n\n\t\t\t\t\tconst contentElement = $('.brightcove-modal .media-frame-content').first();\n\n\t\t\t\t\tif (contentElement.length) {\n\t\t\t\t\t\tconst maxTopValue =\n\t\t\t\t\t\t\t$('#brightcove-media-frame-content').outerHeight() -\n\t\t\t\t\t\t\tthis.detailsView.$el.outerHeight();\n\n\t\t\t\t\t\tlet topValue =\n\t\t\t\t\t\t\tcontentElement.scrollTop() -\n\t\t\t\t\t\t\t$('#brightcove-media-frame-router').outerHeight() +\n\t\t\t\t\t\t\t25;\n\n\t\t\t\t\t\tif (topValue > maxTopValue) {\n\t\t\t\t\t\t\ttopValue = maxTopValue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.detailsView.$el.css('top', topValue > 0 ? topValue : 0);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.model.get('media-collection-view').$el.addClass('menu-visible');\n\t\t\t\t\tmediaView.$el.addClass('highlighted');\n\t\t\t\t\twpbc.broadcast.trigger('toggle:insertButton', 'enabled');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Clear the preview view and remove highlighted class from previous\n\t * selected video.\n\t */\n\tclearPreview: function () {\n\t\tvar messages = $('.brightcove-message');\n\t\tmessages.addClass('hidden');\n\n\t\tif (this.detailsView instanceof MediaDetailsView) {\n\t\t\tthis.detailsView.remove();\n\t\t}\n\n\t\tthis.model.get('media-collection-view').$el.find('.highlighted').removeClass('highlighted');\n\t},\n\n\tstartGridView: function () {\n\t\tthis.model.set('mode', 'manager');\n\t\tthis.render();\n\t},\n\n\tmessage: function (message, type, permanent) {\n\t\tvar messages = this.$el.find('.brightcove-message');\n\n\t\tif (type === 'success') {\n\t\t\tmessages.addClass('updated');\n\t\t\tmessages.removeClass('error');\n\t\t} else if (type === 'error') {\n\t\t\tmessages.addClass('error');\n\t\t\tmessages.removeClass('updated');\n\t\t}\n\n\t\tvar newMessage = $('

');\n\t\tnewMessage.text(message);\n\n\t\tmessages.html(newMessage);\n\t\tmessages.removeClass('hidden');\n\n\t\tif (permanent) {\n\t\t\tif (wpbc.permanentMessage) {\n\t\t\t\twpbc.permanentMessage.remove();\n\t\t\t}\n\n\t\t\twpbc.permanentMessage = newMessage;\n\t\t} else {\n\t\t\t// Make the notice dismissable.\n\t\t\tmessages.addClass('notice is-dismissible');\n\t\t\tthis.makeNoticesDismissible();\n\t\t}\n\t\t$('html, body').animate({ scrollTop: 0 }, 'fast');\n\t},\n\n\t// Make notices dismissible, mimics core function, fades them empties.\n\tmakeNoticesDismissible: function () {\n\t\t$('.notice.is-dismissible').each(function () {\n\t\t\tvar $el = $(this),\n\t\t\t\t$button = $(\n\t\t\t\t\t'',\n\t\t\t\t),\n\t\t\t\tbtnText = commonL10n.dismiss || '';\n\n\t\t\t// Ensure plain text\n\t\t\t$button.find('.screen-reader-text').text(btnText);\n\t\t\t$button.on('click.wp-dismiss-notice', function (event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t$el.fadeTo(100, 0, function () {\n\t\t\t\t\t$el.slideUp(100, function () {\n\t\t\t\t\t\t$el.addClass('hidden')\n\t\t\t\t\t\t\t.css({\n\t\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\t'margin-bottom': 0,\n\t\t\t\t\t\t\t\tdisplay: '',\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.empty();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t$el.append($button);\n\t\t});\n\t},\n\n\tshowUploader: function () {\n\t\tthis.model.set('mode', 'uploader');\n\t\tthis.render();\n\t},\n\n\tpermanentMessage: function (message) {\n\t\tthis.message(message, 'error', true);\n\t},\n\n\trender: function () {\n\t\tvar options = this.model.get('options');\n\t\tvar contentContainer;\n\n\t\tvar mode = this.model.get('mode');\n\n\t\t// Nuke all registered subviews\n\t\t_.invoke(this.subviews, 'remove');\n\n\t\tif (mode === 'uploader') {\n\t\t\tthis.template = wp.template('brightcove-uploader-container');\n\n\t\t\tthis.$el.empty();\n\t\t\tthis.$el.html(this.template(options));\n\t\t\tthis.uploader.render();\n\t\t\tthis.uploader.delegateEvents();\n\t\t\tthis.uploader.$el.appendTo($('.brightcove-uploader'));\n\t\t} else if (mode === 'manager') {\n\t\t\tthis.template = wp.template('brightcove-media');\n\n\t\t\tthis.$el.html(this.template(options));\n\t\t\tthis.toolbar.render();\n\t\t\tthis.toolbar.delegateEvents();\n\t\t\tthis.toolbar.$el.show();\n\t\t\tthis.toolbar.$el.appendTo(this.$el.find('.media-frame-router'));\n\n\t\t\t// Add the Media views to the media manager\n\t\t\tvar mediaCollectionView = this.model.get('media-collection-view');\n\n\t\t\tmediaCollectionView.render();\n\t\t\tmediaCollectionView.delegateEvents();\n\n\t\t\tvar mediaCollectionContainer = this.$el.find('.media-frame-content');\n\n\t\t\tmediaCollectionContainer.on('scroll', this.scrollHandler);\n\t\t\tmediaCollectionView.$el.appendTo(mediaCollectionContainer);\n\n\t\t\tif (wpbc.initialSync) {\n\t\t\t\twpbc.broadcast.trigger('remove:permanentMessage');\n\t\t\t\twpbc.broadcast.trigger('permanent:message', wpbc.preload.messages.ongoingSync);\n\t\t\t}\n\t\t\tif (this.model.get('mediaType') === 'videoexperience') {\n\t\t\t\tthis.detailsView = new MediaDetailsView({\n\t\t\t\t\tmodel: new MediaModel(this.model.attributes),\n\t\t\t\t\tel: $('.brightcove.media-frame-menu'),\n\t\t\t\t\tmediaType: this.model.get('mediaType'),\n\t\t\t\t});\n\t\t\t\tthis.registerSubview(this.detailsView);\n\n\t\t\t\tthis.detailsView.render();\n\t\t\t\tthis.detailsView.$el.toggle(true); // Always show new view\n\t\t\t\twpbc.broadcast.trigger('toggle:insertButton', 'enabled');\n\t\t\t\tthis.model.get('media-collection-view').$el.addClass('menu-visible');\n\t\t\t}\n\t\t} else if (mode === 'editVideo') {\n\t\t\tthis.toolbar.$el.hide();\n\n\t\t\tcontentContainer = this.$el.find('.media-frame-content');\n\n\t\t\tcontentContainer.empty();\n\t\t\tthis.editView.render();\n\t\t\tthis.editView.delegateEvents();\n\t\t\tthis.editView.$el.appendTo(contentContainer);\n\t\t\tthis.$el.find('.brightcove.media-frame-content').addClass('edit-view');\n\t\t} else if (mode === 'editPlaylist') {\n\t\t\tthis.toolbar.$el.hide();\n\n\t\t\tcontentContainer = this.$el;\n\n\t\t\tcontentContainer.empty();\n\t\t\tcontentContainer.html('
');\n\n\t\t\tcontentContainer = contentContainer.find('.playlist-edit-container');\n\n\t\t\tthis.editView.render();\n\t\t\tthis.editView.delegateEvents();\n\t\t\tthis.editView.$el.appendTo(contentContainer);\n\t\t\tcontentContainer.addClass('playlist');\n\t\t} else if (mode === 'previewVideo') {\n\t\t\tthis.toolbar.$el.hide();\n\n\t\t\tcontentContainer = this.$el.find('.media-frame-content');\n\n\t\t\tcontentContainer.empty();\n\t\t\tthis.previewView.render();\n\t\t\tthis.detailsView.render({ detailsMode: 'preview' });\n\t\t\tthis.previewView.delegateEvents();\n\t\t\tthis.previewView.$el.appendTo(contentContainer);\n\t\t\tthis.$el.find('.brightcove.media-frame-toolbar').hide();\n\t\t\tbrightcove.createExperiences();\n\t\t}\n\n\t\tif (mode !== 'editPlaylist') {\n\t\t\tthis.$el.find('.media-frame-content').removeClass('playlist');\n\t\t}\n\n\t\treturn this;\n\t},\n});\n","var BrightcoveModalView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'media-modal brightcove',\n\ttemplate: wp.template('brightcove-media-modal'),\n\n\tevents: {\n\t\t'click .brightcove.media-menu-item': 'changeTab',\n\t\t'click .brightcove.media-button-insert': 'insertIntoPost',\n\t\t'click .media-modal-close': 'closeModal',\n\t\t'click .brightcove.save-sync': 'saveSync',\n\t\t'click .brightcove.button.back': 'back',\n\t},\n\n\tinitialize: function (options) {\n\t\tthis.model = new BrightcoveModalModel({ tab: options.tab });\n\t\tthis.brightcoveMediaManager = new BrightcoveMediaManagerView(\n\t\t\tthis.model.getMediaManagerSettings(),\n\t\t);\n\t\tthis.registerSubview(this.brightcoveMediaManager);\n\t\tthis.listenTo(wpbc.broadcast, 'toggle:insertButton', function (state) {\n\t\t\tthis.toggleInsertButton(state);\n\t\t});\n\t\tthis.listenTo(wpbc.broadcast, 'close:modal', this.closeModal);\n\t},\n\n\tsaveSync: function (evnt) {\n\t\t// This event is triggered when the \"Save and Sync Changes\" button is clicked from edit video screen.\n\t\twpbc.broadcast.trigger('save:media', evnt);\n\t},\n\n\tback: function (evnt) {\n\t\t// This event is triggered when the \"Back\" button is clicked from edit video screen.\n\t\twpbc.broadcast.trigger('back:editvideo', evnt);\n\t},\n\n\tinsertIntoPost: function (evnt) {\n\t\tevnt.preventDefault();\n\n\t\t// Exit if the 'button' is disabled.\n\t\tif ($(evnt.currentTarget).hasClass('disabled')) {\n\t\t\treturn;\n\t\t}\n\n\t\twpbc.shortcode = $('#shortcode').val();\n\n\t\t// Media Details will trigger the insertion since it's always active and contains\n\t\t// the model we're inserting\n\t\twpbc.broadcast.trigger('insert:shortcode');\n\t},\n\n\ttoggleInsertButton: function (state) {\n\t\tvar button = this.$el.find('.brightcove.media-button-insert'),\n\t\t\tprocessing = $('.attachment.highlighted').find('.processing').length;\n\n\t\tbutton.show();\n\n\t\tif (processing === 1) {\n\t\t\tbutton.attr('disabled', 'disabled');\n\t\t} else if (state === 'enabled') {\n\t\t\tbutton.removeAttr('disabled');\n\t\t} else if (state === 'disabled') {\n\t\t\tbutton.attr('disabled', 'disabled');\n\t\t} else if (undefined !== button.attr('disabled')) {\n\t\t\tbutton.removeAttr('disabled');\n\t\t} else {\n\t\t\tbutton.attr('disabled', 'disabled');\n\t\t}\n\t},\n\n\tchangeTab: function (event) {\n\t\tevent.preventDefault();\n\n\t\tif ($(event.target).hasClass('active')) {\n\t\t\treturn; // Clicking the already active tab\n\t\t}\n\t\t$(event.target).addClass('active');\n\t\tvar tab = _.without(event.target.classList, 'media-menu-item', 'brightcove')[0];\n\t\tvar tabs = ['videos', 'upload', 'playlists', 'video-experience', 'playlist-experience'];\n\t\t_.each(_.without(tabs, tab), function (otherTab) {\n\t\t\t$('.brightcove.media-menu-item.' + otherTab).removeClass('active');\n\t\t});\n\n\t\tif (_.contains(tabs, tab)) {\n\t\t\tthis.model.set('tab', tab);\n\t\t\twpbc.broadcast.trigger('spinner:off');\n\t\t\twpbc.broadcast.trigger('tabChange', this.model.getMediaManagerSettings());\n\t\t}\n\t},\n\n\tcloseModal: function (evnt) {\n\t\t// If we are in the editVideo mode, switch back to the video view.\n\t\tif (wpbc.modal.brightcoveMediaManager.model.get('mode') === 'editVideo') {\n\t\t\twpbc.broadcast.trigger('start:gridview');\n\t\t}\n\n\t\t// Exit if the container button is disabled.\n\t\tif (!_.isUndefined(evnt) && $(evnt.currentTarget).parent().hasClass('disabled')) {\n\t\t\treturn;\n\t\t}\n\t\tthis.$el.hide();\n\t\t$('body').removeClass('modal-open');\n\t},\n\n\tmessage: function (message) {\n\t\tvar messageContainer = this.$el.find('.brightcove-message');\n\t},\n\n\trender: function (options) {\n\t\tthis.$el.html(this.template(options));\n\n\t\tthis.brightcoveMediaManager.render();\n\t\tthis.brightcoveMediaManager.$el.appendTo(this.$el.find('.media-frame-content'));\n\n\t\tthis.listenTo(wpbc.broadcast, 'edit:media', function (model, mediaType) {\n\t\t\tif (mediaType === 'videos') {\n\t\t\t\t// When edit Video screen is opened, hide the \"Insert Into Post\" button and show video save button.\n\t\t\t\tthis.$el.find('.brightcove.button.save-sync').show();\n\t\t\t\tthis.$el.find('.brightcove.button.back').show();\n\t\t\t\tthis.$el.find('.brightcove.media-button-insert').hide();\n\t\t\t} else {\n\t\t\t\t// When edit playlist screen is opened, hide all the buttons.\n\t\t\t\tthis.$el.find('.brightcove.button.save-sync').hide();\n\t\t\t\tthis.$el.find('.brightcove.button.back').hide();\n\t\t\t\tthis.$el.find('.brightcove.media-button-insert').hide();\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'save:media back:editvideo start:gridView', function () {\n\t\t\tthis.$el.find('.brightcove.button.save-sync').hide();\n\t\t\tthis.$el.find('.brightcove.button.back').hide();\n\t\t\tthis.$el.find('.brightcove.media-button-insert').show();\n\t\t\twpbc.broadcast.trigger('toggle:insertButton');\n\t\t});\n\t},\n});\n","var MediaDetailsView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'media-details',\n\n\tattributes: function () {\n\t\treturn {\n\t\t\ttabIndex: 0,\n\t\t\trole: 'checkbox',\n\t\t\t'aria-label': this.model.get('title'),\n\t\t\t'aria-checked': false,\n\t\t\t'data-id': this.model.get('id'),\n\t\t};\n\t},\n\n\tevents: {\n\t\t'click .brightcove.edit.button': 'triggerEditMedia',\n\t\t'click .brightcove.preview.button': 'triggerPreviewMedia',\n\t\t'click .brightcove.back.button': 'triggerCancelPreviewMedia',\n\t\t'click .playlist-details input[name=\"embed-style\"]': 'togglePlaylistSizing',\n\t\t'change #aspect-ratio': 'toggleUnits',\n\t\t'change #pictureinpicture': 'togglePictureinpicture',\n\t\t'change .experience-details input[name=\"sizing\"],.experience-details input[name=\"embed-style\"]':\n\t\t\t'toggleExperienceUnits',\n\t\t'change #video-player, #autoplay, #pictureinpicture, #playsinline, #mute, input[name=\"embed-style\"], input[name=\"sizing\"], #aspect-ratio, #width, #height':\n\t\t\t'generateShortcode',\n\t\t'change #generate-shortcode': 'toggleShortcodeGeneration',\n\t},\n\n\ttriggerEditMedia: function (event) {\n\t\tevent.preventDefault();\n\t\twpbc.broadcast.trigger('edit:media', this.model, this.mediaType);\n\t},\n\n\ttriggerPreviewMedia: function (event) {\n\t\tevent.preventDefault();\n\t\tvar shortcode = $('#shortcode').val();\n\t\twpbc.broadcast.trigger('preview:media', this.model, shortcode);\n\t},\n\n\ttriggerCancelPreviewMedia: function (event) {\n\t\twpbc.broadcast.trigger('cancelPreview:media', this.mediaType);\n\t},\n\n\ttogglePlaylistSizing: function (event) {\n\t\tvar embedStyle = $('.playlist-details input[name=\"embed-style\"]:checked').val(),\n\t\t\t$sizing = $('#sizing-fixed, #sizing-responsive');\n\n\t\tif (embedStyle === 'iframe') {\n\t\t\t$sizing.removeAttr('disabled');\n\t\t} else {\n\t\t\t$sizing.attr('disabled', true);\n\t\t}\n\t},\n\n\ttoggleUnits: function (event) {\n\t\tvar value = $('#aspect-ratio').val();\n\n\t\tif (value === 'custom') {\n\t\t\t$('#height').removeAttr('readonly');\n\t\t} else {\n\t\t\tvar $height = $('#height'),\n\t\t\t\twidth = $('#width').val();\n\n\t\t\t$height.attr('readonly', true);\n\n\t\t\tif (width > 0) {\n\t\t\t\tif (value === '16:9') {\n\t\t\t\t\t$height.val(width / (16 / 9));\n\t\t\t\t} else {\n\t\t\t\t\t$height.val(width / (4 / 3));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\ttogglePictureinpicture: function (event) {\n\t\tvar $iframeRadioButton = $('#embed-style-iframe'),\n\t\t\t$pictureinpicture_checked = $('#pictureinpicture').is(':checked');\n\n\t\tif ($pictureinpicture_checked) {\n\t\t\t$iframeRadioButton.prop('checked', false);\n\t\t\t$iframeRadioButton.attr('disabled', true);\n\t\t} else {\n\t\t\t$iframeRadioButton.attr('disabled', false);\n\t\t}\n\t},\n\n\ttoggleExperienceUnits: function (event) {\n\t\tvar $sizingField = $('input[name=\"sizing\"]:checked');\n\t\tvar $sizing = $sizingField.val();\n\t\tvar $embedStyle = $('input[name=\"embed-style\"]:checked').val();\n\t\tvar $height = $('#height');\n\t\tvar $width = $('#width');\n\t\tvar $inputSizing = $('input[name=\"sizing\"]');\n\t\tvar $sizingDiv = $('.embed-sizing-div');\n\n\t\t$height.removeAttr('readonly');\n\t\t$width.removeAttr('readonly');\n\t\t$sizingField.show();\n\t\t$sizingDiv.show();\n\n\t\tif ($sizing === 'responsive' && $embedStyle === 'javascript') {\n\t\t\t$height.attr('readonly', true);\n\t\t} else if ($sizing === 'fixed' && $embedStyle === 'javascript') {\n\t\t\t$height.removeAttr('readonly');\n\t\t\t$width.removeAttr('readonly');\n\t\t} else {\n\t\t\t$inputSizing.attr('checked', false);\n\t\t\t$('#sizing-fixed').attr('checked', true);\n\t\t\t$sizingDiv.hide();\n\t\t}\n\t},\n\n\tgenerateShortcode: function () {\n\t\tswitch (this.mediaType) {\n\t\t\tcase 'videos':\n\t\t\t\tthis.generateVideoShortcode();\n\t\t\t\tbreak;\n\t\t\tcase 'videoexperience':\n\t\t\t\tthis.generateExperienceShortcode();\n\t\t\t\tbreak;\n\t\t\tcase 'playlistexperience':\n\t\t\t\tthis.generatePlaylistExperienceShortcode();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.generatePlaylistShortcode();\n\t\t}\n\t},\n\n\tgenerateVideoShortcode: function () {\n\t\tvar videoId = this.model.get('id').replace(/\\D/g, ''),\n\t\t\taccountId = this.model.get('account_id').replace(/\\D/g, ''),\n\t\t\tplayerId = $('#video-player').val(),\n\t\t\tautoplay = $('#autoplay').is(':checked') ? 'autoplay' : '',\n\t\t\tplaysinline = $('#playsinline').is(':checked') ? 'playsinline' : '',\n\t\t\tpictureinpicture = $('#pictureinpicture').is(':checked') ? 'pictureinpicture' : '',\n\t\t\tmute = $('#mute').is(':checked') ? 'muted' : '',\n\t\t\tembedStyle = $('input[name=\"embed-style\"]:checked').val(),\n\t\t\tsizing = $('input[name=\"sizing\"]:checked').val(),\n\t\t\taspectRatio = $('#aspect-ratio').val(),\n\t\t\tpaddingTop = '',\n\t\t\twidth = $('#width').val(),\n\t\t\theight = $('#height').val(),\n\t\t\tunits = 'px',\n\t\t\tminWidth = '0px',\n\t\t\tmaxWidth = width + units,\n\t\t\tshortcode;\n\n\t\tif (aspectRatio === '16:9') {\n\t\t\tpaddingTop = '56';\n\t\t} else if (aspectRatio === '4:3') {\n\t\t\tpaddingTop = '75';\n\t\t} else {\n\t\t\tpaddingTop = (height / width) * 100;\n\t\t}\n\n\t\tif (sizing === 'responsive') {\n\t\t\twidth = '100%';\n\t\t\theight = '100%';\n\t\t} else {\n\t\t\twidth += units;\n\t\t\theight += units;\n\n\t\t\tif (embedStyle === 'iframe') {\n\t\t\t\tminWidth = width;\n\t\t\t}\n\t\t}\n\n\t\tshortcode =\n\t\t\t'[bc_video video_id=\"' +\n\t\t\tvideoId +\n\t\t\t'\" account_id=\"' +\n\t\t\taccountId +\n\t\t\t'\" player_id=\"' +\n\t\t\tplayerId +\n\t\t\t'\" ' +\n\t\t\t'embed=\"' +\n\t\t\tembedStyle +\n\t\t\t'\" padding_top=\"' +\n\t\t\tpaddingTop +\n\t\t\t'%\" autoplay=\"' +\n\t\t\tautoplay +\n\t\t\t'\" ' +\n\t\t\t'min_width=\"' +\n\t\t\tminWidth +\n\t\t\t'\" playsinline=\"' +\n\t\t\tplaysinline +\n\t\t\t'\" picture_in_picture=\"' +\n\t\t\tpictureinpicture +\n\t\t\t'\" max_width=\"' +\n\t\t\tmaxWidth +\n\t\t\t'\" ' +\n\t\t\t'mute=\"' +\n\t\t\tmute +\n\t\t\t'\" width=\"' +\n\t\t\twidth +\n\t\t\t'\" height=\"' +\n\t\t\theight +\n\t\t\t'\"' +\n\t\t\t' ]';\n\n\t\t$('#shortcode').val(shortcode);\n\t},\n\tgenerateExperienceShortcode: function () {\n\t\tvar videoIds, accountId;\n\t\tif (typeof this.model.get('id') !== 'undefined') {\n\t\t\tthis.model.set('account_id', this.model.get('account'));\n\t\t\tvideoIds = this.model.get('id').join(',');\n\t\t\taccountId = this.model.get('account_id').replace(/\\D/g, '');\n\t\t} else {\n\t\t\tvideoIds = '';\n\t\t\taccountId = document.getElementById('brightcove-media-source').value;\n\t\t}\n\n\t\tvar experienceId = $('#video-player').val(),\n\t\t\tembedStyle = $('input[name=\"embed-style\"]:checked').val(),\n\t\t\tsizing = $('input[name=\"sizing\"]:checked').val(),\n\t\t\twidth = $('#width').val(),\n\t\t\theight = $('#height').val(),\n\t\t\tunits = 'px',\n\t\t\tminWidth = '0px',\n\t\t\tmaxWidth = width + units,\n\t\t\tshortcode;\n\n\t\tif (sizing === 'responsive') {\n\t\t\twidth = '100%';\n\t\t\theight = '100%';\n\t\t} else {\n\t\t\twidth += units;\n\t\t\theight += units;\n\n\t\t\tif (embedStyle === 'iframe') {\n\t\t\t\tminWidth = width;\n\t\t\t}\n\t\t}\n\n\t\tshortcode =\n\t\t\t'[bc_experience experience_id=\"' +\n\t\t\texperienceId +\n\t\t\t'\" account_id=\"' +\n\t\t\taccountId +\n\t\t\t'\" ' +\n\t\t\t'embed=\"' +\n\t\t\tembedStyle +\n\t\t\t'\" min_width=\"' +\n\t\t\tminWidth +\n\t\t\t'\" max_width=\"' +\n\t\t\tmaxWidth +\n\t\t\t'\" ' +\n\t\t\t'width=\"' +\n\t\t\twidth +\n\t\t\t'\" height=\"' +\n\t\t\theight +\n\t\t\t'\" ' +\n\t\t\t'video_ids=\"' +\n\t\t\tvideoIds +\n\t\t\t'\" ' +\n\t\t\t' ]';\n\n\t\t$('#shortcode').val(shortcode);\n\t},\n\n\tgeneratePlaylistShortcode: function () {\n\t\tvar playlistId = this.model.get('id').replace(/\\D/g, ''),\n\t\t\taccountId = this.model.get('account_id').replace(/\\D/g, ''),\n\t\t\tplayerId = $('#video-player').val() || 'default',\n\t\t\tautoplay = $('#autoplay').is(':checked') ? 'autoplay' : '',\n\t\t\tplaysinline = $('#playsinline').is(':checked') ? 'playsinline' : '',\n\t\t\tmute = $('#mute').is(':checked') ? 'muted' : '',\n\t\t\tembedStyle = $('input[name=\"embed-style\"]:checked').val(),\n\t\t\tsizing = $('input[name=\"sizing\"]:checked').val(),\n\t\t\taspectRatio = $('#aspect-ratio').val(),\n\t\t\tpaddingTop = '',\n\t\t\twidth = $('#width').val(),\n\t\t\theight = $('#height').val(),\n\t\t\tunits = 'px',\n\t\t\tminWidth = '0px;',\n\t\t\tmaxWidth = width + units,\n\t\t\tshortcode;\n\n\t\tif (embedStyle === 'in-page-vertical') {\n\t\t\tshortcode =\n\t\t\t\t'[bc_playlist playlist_id=\"' +\n\t\t\t\tplaylistId +\n\t\t\t\t'\" account_id=\"' +\n\t\t\t\taccountId +\n\t\t\t\t'\" player_id=\"' +\n\t\t\t\tplayerId +\n\t\t\t\t'\" ' +\n\t\t\t\t'embed=\"in-page-vertical\" autoplay=\"' +\n\t\t\t\tautoplay +\n\t\t\t\t'\" playsinline=\"' +\n\t\t\t\tplaysinline +\n\t\t\t\t'\" mute=\"' +\n\t\t\t\tmute +\n\t\t\t\t'\" ' +\n\t\t\t\t'min_width=\"\" max_width=\"\" padding_top=\"\" ' +\n\t\t\t\t'width=\"' +\n\t\t\t\twidth +\n\t\t\t\tunits +\n\t\t\t\t'\" height=\"' +\n\t\t\t\theight +\n\t\t\t\tunits +\n\t\t\t\t'\"' +\n\t\t\t\t' ]';\n\t\t} else if (embedStyle === 'in-page-horizontal') {\n\t\t\tshortcode =\n\t\t\t\t'[bc_playlist playlist_id=\"' +\n\t\t\t\tplaylistId +\n\t\t\t\t'\" account_id=\"' +\n\t\t\t\taccountId +\n\t\t\t\t'\" player_id=\"' +\n\t\t\t\tplayerId +\n\t\t\t\t'\" ' +\n\t\t\t\t'embed=\"in-page-horizontal\" autoplay=\"' +\n\t\t\t\tautoplay +\n\t\t\t\t'\" playsinline=\"' +\n\t\t\t\tplaysinline +\n\t\t\t\t'\" mute=\"' +\n\t\t\t\tmute +\n\t\t\t\t'\" ' +\n\t\t\t\t'min_width=\"\" max_width=\"\" padding_top=\"\" ' +\n\t\t\t\t'width=\"' +\n\t\t\t\twidth +\n\t\t\t\tunits +\n\t\t\t\t'\" height=\"' +\n\t\t\t\theight +\n\t\t\t\tunits +\n\t\t\t\t'\"' +\n\t\t\t\t' ]';\n\t\t} else if (embedStyle === 'iframe') {\n\t\t\tif (aspectRatio === '16:9') {\n\t\t\t\tpaddingTop = '56';\n\t\t\t} else if (aspectRatio === '4:3') {\n\t\t\t\tpaddingTop = '75';\n\t\t\t} else {\n\t\t\t\tpaddingTop = (height / width) * 100;\n\t\t\t}\n\n\t\t\tif (sizing === 'responsive') {\n\t\t\t\twidth = '100%';\n\t\t\t\theight = '100%';\n\t\t\t} else {\n\t\t\t\twidth += units;\n\t\t\t\theight += units;\n\n\t\t\t\tminWidth = width;\n\t\t\t}\n\n\t\t\tshortcode =\n\t\t\t\t'[bc_playlist playlist_id=\"' +\n\t\t\t\tplaylistId +\n\t\t\t\t'\" account_id=\"' +\n\t\t\t\taccountId +\n\t\t\t\t'\" player_id=\"' +\n\t\t\t\tplayerId +\n\t\t\t\t'\" ' +\n\t\t\t\t'embed=\"iframe\" autoplay=\"' +\n\t\t\t\tautoplay +\n\t\t\t\t'\" playsinline=\"' +\n\t\t\t\tplaysinline +\n\t\t\t\t'\" mute=\"' +\n\t\t\t\tmute +\n\t\t\t\t'\" ' +\n\t\t\t\t'min_width=\"' +\n\t\t\t\tminWidth +\n\t\t\t\t'\" max_width=\"' +\n\t\t\t\tmaxWidth +\n\t\t\t\t'\" padding_top=\"' +\n\t\t\t\tpaddingTop +\n\t\t\t\t'%\" ' +\n\t\t\t\t'width=\"' +\n\t\t\t\twidth +\n\t\t\t\t'\" height=\"' +\n\t\t\t\theight +\n\t\t\t\t'\"' +\n\t\t\t\t' ]';\n\t\t}\n\n\t\t$('#shortcode').val(shortcode);\n\t},\n\tgeneratePlaylistExperienceShortcode: function () {\n\t\tvar playlistId = this.model.get('id').replace(/\\D/g, ''),\n\t\t\taccountId = this.model.get('account_id').replace(/\\D/g, ''),\n\t\t\texperienceId = $('#video-player').val(),\n\t\t\tembedStyle = $('input[name=\"embed-style\"]:checked').val(),\n\t\t\tsizing = $('input[name=\"sizing\"]:checked').val(),\n\t\t\twidth = $('#width').val(),\n\t\t\theight = $('#height').val(),\n\t\t\tunits = 'px',\n\t\t\tminWidth = '0px',\n\t\t\tmaxWidth = width + units,\n\t\t\tshortcode;\n\n\t\tif (sizing === 'responsive') {\n\t\t\twidth = '100%';\n\t\t\theight = '100%';\n\t\t} else {\n\t\t\twidth += units;\n\t\t\theight += units;\n\n\t\t\tif (embedStyle === 'iframe') {\n\t\t\t\tminWidth = width;\n\t\t\t}\n\t\t}\n\n\t\tshortcode =\n\t\t\t'[bc_experience experience_id=\"' +\n\t\t\texperienceId +\n\t\t\t'\" account_id=\"' +\n\t\t\taccountId +\n\t\t\t'\" ' +\n\t\t\t'embed=\"' +\n\t\t\tembedStyle +\n\t\t\t'\" min_width=\"' +\n\t\t\tminWidth +\n\t\t\t'\" max_width=\"' +\n\t\t\tmaxWidth +\n\t\t\t'\" ' +\n\t\t\t'width=\"' +\n\t\t\twidth +\n\t\t\t'\" height=\"' +\n\t\t\theight +\n\t\t\t'\" ' +\n\t\t\t'playlist_id=\"' +\n\t\t\tplaylistId +\n\t\t\t'\" ' +\n\t\t\t' ]';\n\n\t\t$('#shortcode').val(shortcode);\n\t},\n\n\ttoggleShortcodeGeneration: function () {\n\t\tvar method = $('#generate-shortcode').val(),\n\t\t\t$fields = $(\n\t\t\t\t'#video-player, #autoplay, #mute, input[name=\"embed-style\"], input[name=\"sizing\"], #aspect-ratio, #width, #height, #units',\n\t\t\t);\n\n\t\tif (method === 'manual') {\n\t\t\t$('#shortcode').removeAttr('readonly');\n\t\t\t$fields.attr('disabled', true);\n\t\t} else {\n\t\t\t$('#shortcode').attr('readonly', true);\n\t\t\t$fields.removeAttr('disabled');\n\t\t}\n\t},\n\n\tinitialize: function (options) {\n\t\toptions = options || {};\n\t\tthis.type = options.type ? options.type : 'grid';\n\t\tthis.mediaType = options.mediaType;\n\t\tthis.listenTo(wpbc.broadcast, 'insert:shortcode', this.insertShortcode);\n\t\tthis.listenTo(this.model, 'change', this.render);\n\t},\n\n\t/**\n\t * @returns {wp.media.view.Media} Returns itself to allow chaining\n\t */\n\trender: function (options) {\n\t\toptions = _.extend({}, options, this.model.toJSON());\n\t\toptions.duration = this.model.getReadableDuration();\n\t\toptions.updated_at_readable = this.model.getReadableDate('updated_at');\n\t\toptions.created_at_readable = this.model.getReadableDate('created_at');\n\t\toptions.account_name = this.model.getAccountName();\n\n\t\tthis.template = wp.template('brightcove-media-item-details-' + this.mediaType);\n\n\t\tthis.$el.html(this.template(options));\n\n\t\tthis.delegateEvents();\n\t\tthis.generateShortcode();\n\n\t\treturn this;\n\t},\n\n\t/* Prevent this.remove() from removing the container element for the details view */\n\tremove: function () {\n\t\tthis.undelegateEvents();\n\t\tthis.$el.empty();\n\t\tthis.stopListening();\n\t\treturn this;\n\t},\n});\n","var MediaView = BrightcoveView.extend({\n\ttagName: 'li',\n\tclassName: 'attachment brightcove',\n\n\tattributes: function () {\n\t\treturn {\n\t\t\ttabIndex: 0,\n\t\t\trole: 'checkbox',\n\t\t\t'aria-label': this.model.get('title'),\n\t\t\t'aria-checked': false,\n\t\t\t'data-id': this.model.get('id'),\n\t\t};\n\t},\n\n\tevents: {\n\t\t'click .attachment-preview': 'toggleDetailView',\n\t\t'click .video-move-up': 'videoMoveUp',\n\t\t'click .video-move-down': 'videoMoveDown',\n\t\t'click .trash': 'removeVideoFromPlaylist',\n\t\t'click .add-to-playlist': 'videoAdd',\n\t\t'click .edit': 'triggerEditMedia',\n\t\t'click .preview': 'triggerPreviewMedia',\n\t},\n\n\ttriggerEditMedia: function (event) {\n\t\tevent.preventDefault();\n\t\twpbc.broadcast.trigger('edit:media', this.model);\n\t},\n\n\ttriggerPreviewMedia: function (event) {\n\t\tevent.preventDefault();\n\t\twpbc.broadcast.trigger('preview:media', this.model);\n\t},\n\n\tbuttons: {},\n\n\tinitialize: function (options) {\n\t\toptions = options || {};\n\t\tthis.type = options.type ? options.type : 'grid';\n\n\t\t// We only care when a change occurs\n\t\tthis.listenTo(this.model, 'change:view', function (model, type) {\n\t\t\tif (this.type !== type) {\n\t\t\t\tthis.type = type;\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t});\n\n\t\tthis.render();\n\t},\n\n\trender: function () {\n\t\tvar options = this.model.toJSON();\n\t\toptions.duration = this.model.getReadableDuration();\n\t\toptions.updated_at_readable = this.model.getReadableDate('updated_at');\n\t\toptions.account_name = this.model.getAccountName();\n\n\t\tif (options.viewType === 'existingPlaylists') {\n\t\t\tthis.template = wp.template('brightcove-playlist-edit-video-in-playlist');\n\t\t} else if (options.viewType === 'libraryPlaylists') {\n\t\t\tthis.template = wp.template('brightcove-playlist-edit-video-in-library');\n\t\t} else {\n\t\t\tthis.template = wp.template('brightcove-media-item-' + this.type);\n\t\t}\n\n\t\toptions.buttons = this.buttons;\n\n\t\tthis.$el.html(this.template(options));\n\n\t\tthis.$el.toggleClass('uploading', options.uploading);\n\n\t\treturn this;\n\t},\n\n\ttoggleDetailView: function () {\n\t\twpbc.broadcast.trigger('select:media', this);\n\t},\n\n\tvideoMoveUp: function () {\n\t\twpbc.broadcast.trigger('playlist:moveUp', this);\n\t},\n\n\tvideoMoveDown: function () {\n\t\twpbc.broadcast.trigger('playlist:moveDown', this);\n\t},\n\n\tvideoAdd: function () {\n\t\twpbc.broadcast.trigger('playlist:add', this);\n\t},\n\n\tremoveVideoFromPlaylist: function () {\n\t\twpbc.broadcast.trigger('playlist:remove', this);\n\t},\n});\n","var PlaylistEditView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'playlist-edit brightcove attachment-details',\n\ttemplate: wp.template('brightcove-playlist-edit'),\n\n\tevents: {\n\t\t'click .brightcove.button.save-sync': 'saveSync',\n\t\t'click .brightcove.playlist-back': 'back',\n\t\t'change .brightcove-name': 'updatedName',\n\t},\n\n\tdeleteVideo: function (event) {\n\t\tevent.preventDefault();\n\t\tthis.model.set('mediaType', 'videos');\n\t\tthis.model.destroy();\n\t},\n\n\tupdatedName: function (event) {\n\t\tvar name = this.model.get('name');\n\t\tif (name !== event.target.value) {\n\t\t\tthis.model.set('name', event.target.value);\n\t\t\tthis.model.save();\n\t\t}\n\t},\n\n\tback: function (event) {\n\t\tevent.preventDefault();\n\t\twpbc.broadcast.trigger('start:gridview');\n\t},\n\n\tsaveSync: function (event) {\n\t\tevent.preventDefault();\n\t\tthis.model.set('name', this.$el.find('.brightcove-name').val());\n\t\tthis.model.set('description', this.$el.find('.brightcove-description').val());\n\t\tthis.model.set('long_description', this.$el.find('.brightcove-long-description').val());\n\t\tthis.model.set('tags', this.$el.find('.brightcove-tags').val());\n\t\tthis.model.set('mediaType', 'videos');\n\t\tthis.model.save();\n\t},\n\n\tinitialize: function () {\n\t\tthis.listenTo(wpbc.broadcast, 'tabChange', function () {\n\t\t\t_.invoke(this.subviews, 'remove');\n\t\t});\n\t\twpbc.broadcast.trigger('spinner:off');\n\t},\n\n\trender: function (options) {\n\t\toptions = this.model.toJSON();\n\t\tthis.$el.html(this.template(options));\n\t\tthis.spinner = this.$el.find('.spinner');\n\n\t\tif (options.video_ids) {\n\t\t\tthis.killPendingRequests();\n\n\t\t\tthis.playlistVideosView = new MediaCollectionView({\n\t\t\t\tel: this.$el.find('.existing-videos'),\n\t\t\t\tvideoIds: options.video_ids,\n\t\t\t\tactiveAccount: this.model.get('account_id'),\n\t\t\t\tmediaCollectionViewType: 'existingPlaylists',\n\t\t\t\tmediaType: 'playlists',\n\t\t\t});\n\n\t\t\tthis.libraryVideosView = new MediaCollectionView({\n\t\t\t\tel: this.$el.find('.library-videos'),\n\t\t\t\texcludeVideoIds: options.video_ids,\n\t\t\t\tactiveAccount: this.model.get('account_id'),\n\t\t\t\tmediaCollectionViewType: 'libraryPlaylists',\n\t\t\t\tmediaType: 'playlists',\n\t\t\t});\n\n\t\t\tthis.registerSubview(this.playlistVideosView);\n\t\t\tthis.registerSubview(this.libraryVideosView);\n\n\t\t\tthis.listenTo(\n\t\t\t\twpbc.broadcast,\n\t\t\t\t'playlist:changed',\n\t\t\t\t_.throttle(this.playlistChanged, 300),\n\t\t\t);\n\t\t\tthis.listenTo(wpbc.broadcast, 'insert:shortcode', this.insertShortcode);\n\t\t}\n\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:on', function () {\n\t\t\tthis.spinner.addClass('is-active').removeClass('hidden');\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:off', function () {\n\t\t\tthis.spinner.removeClass('is-active').addClass('hidden');\n\t\t});\n\t},\n\n\tplaylistChanged: function (videoIds) {\n\t\tthis.killPendingRequests();\n\t\tthis.model.set('video_ids', videoIds);\n\t\tthis.model.save();\n\t},\n\n\tkillPendingRequests: function () {\n\t\t// Kill all pending requests\n\t\t_.each(wpbc.requests, function (request) {\n\t\t\trequest.abort();\n\t\t});\n\n\t\twpbc.requests = [];\n\t},\n});\n","var UploadDetailsView = BrightcoveView.extend({\n\tclassName: 'brightcove-pending-upload-details attachment-details',\n\ttagName: 'div',\n\ttemplate: wp.template('brightcove-pending-upload-details'),\n\n\tevents: {\n\t\t'keyup .brightcove-name': 'nameChanged',\n\t\t'keyup .brightcove-tags': 'tagsChanged',\n\t\t'change .brightcove-media-source': 'accountChanged',\n\t},\n\n\tinitialize: function (options) {\n\t\tthis.listenTo(wpbc.broadcast, 'pendingUpload:hideDetails', this.hide);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:fileUploaded', function (file) {\n\t\t\tif (file.id === this.model.get('id')) {\n\t\t\t\tthis.model.set('uploaded', true);\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t});\n\t\tthis.model.set('ingestSuccess', true);\n\t\tthis.model.set('uploadSuccess', true);\n\t},\n\n\tnameChanged: function (event) {\n\t\tthis.model.set('fileName', event.target.value);\n\t},\n\n\ttagsChanged: function (event) {\n\t\tthis.model.set('tags', event.target.value);\n\t},\n\n\taccountChanged: function (event) {\n\t\tthis.model.set('account', event.target.value);\n\t},\n\n\thide: function () {\n\t\tthis.$el.hide();\n\t},\n\n\trender: function (options) {\n\t\toptions = options || {};\n\t\toptions.fileName = this.model.get('fileName');\n\t\toptions.tags = this.model.get('tags');\n\t\toptions.size = this.model.humanReadableSize();\n\t\toptions.accounts = this.model.get('accounts');\n\t\toptions.account = this.model.get('account');\n\t\toptions.uploaded = this.model.get('uploaded');\n\t\tthis.$el.html(this.template(options));\n\t},\n});\n","UploadWindowView = BrightcoveView.extend({\n\tclassName: 'uploader-window',\n\ttemplate: wp.template('brightcove-uploader-window'),\n\n\tinitialize: function (options) {\n\t\t_.bindAll(this, 'uploaderFilesAdded');\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:queuedFilesAdded', this.hide);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:startUpload', this.uploaderStartUpload);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:clear', this.resetUploads);\n\t},\n\n\trender: function (options) {\n\t\tthis.$el.html(this.template(options));\n\t\t_.defer(_.bind(this.afterRender, this));\n\t},\n\n\tresetUploads: function () {\n\t\tif (this.uploader && this.uploader.files) {\n\t\t\tthis.uploader.files = []; // Reset pending uploads\n\t\t}\n\t},\n\n\tafterRender: function () {\n\t\tthis.uploader = new plupload.Uploader(_.defaults(this.options, wpbc.preload.plupload));\n\n\t\t// Uploader has neither .on nor .listenTo\n\t\tthis.uploader.added = this.uploaderFilesAdded;\n\t\tthis.uploader.progress = this.uploaderUploadProgress;\n\t\tthis.uploader.bind('FilesAdded', this.uploaderFilesAdded);\n\t\tthis.uploader.bind('UploadProgress', this.uploaderUploadProgress);\n\t\tthis.uploader.bind('BeforeUpload', this.uploaderBeforeUpload);\n\t\tthis.uploader.bind('FileUploaded', this.uploaderFileUploaded);\n\n\t\tthis.uploader.bind('init', this.uploaderAfterInit);\n\n\t\tthis.uploader.init();\n\t\t$('html').on('dragenter', _.bind(this.show, this));\n\t\t/* the following dropzone function code is taken from the wp.Uploader code */\n\t\tvar drop_element = wpbc.preload.plupload.drop_element.replace(/[^a-zA-Z0-9-]+/g, '');\n\t\tvar dropzone = $('#' + drop_element);\n\t\tdropzone.on('dropzone:leave', _.bind(this.hide, this));\n\t},\n\n\tuploaderAfterInit: function (uploader) {\n\t\tvar drop_element = wpbc.preload.plupload.drop_element.replace(/[^a-zA-Z0-9-]+/g, '');\n\t\tvar timer,\n\t\t\tactive,\n\t\t\tdragdrop,\n\t\t\tdropzone = $('#' + drop_element);\n\n\t\tdragdrop = uploader.features.dragdrop;\n\n\t\t// Generate drag/drop helper classes.\n\t\tif (!dropzone) {\n\t\t\treturn;\n\t\t}\n\n\t\tdropzone.toggleClass('supports-drag-drop', !!dragdrop);\n\n\t\tif (!dragdrop) {\n\t\t\treturn dropzone.unbind('.wp-uploader');\n\t\t}\n\n\t\t// 'dragenter' doesn't fire correctly, simulate it with a limited 'dragover'.\n\t\tdropzone.bind('dragover.wp-uploader', function () {\n\t\t\tif (timer) {\n\t\t\t\tclearTimeout(timer);\n\t\t\t}\n\n\t\t\tif (active) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdropzone.trigger('dropzone:enter').addClass('drag-over');\n\t\t\tactive = true;\n\t\t});\n\n\t\tdropzone.bind('dragleave.wp-uploader, drop.wp-uploader', function () {\n\t\t\t// Using an instant timer prevents the drag-over class from\n\t\t\t// being quickly removed and re-added when elements inside the\n\t\t\t// dropzone are repositioned.\n\t\t\t//\n\t\t\t// @see https://core.trac.wordpress.org/ticket/21705\n\t\t\ttimer = setTimeout(function () {\n\t\t\t\tactive = false;\n\t\t\t\tdropzone.trigger('dropzone:leave').removeClass('drag-over');\n\t\t\t}, 0);\n\t\t});\n\t},\n\n\tshow: function () {\n\t\tvar $el = this.$el.show();\n\n\t\t// Ensure that the animation is triggered by waiting until\n\t\t// the transparent element is painted into the DOM.\n\t\t_.defer(function () {\n\t\t\t$el.css({ opacity: 1 });\n\t\t});\n\t},\n\n\thide: function () {\n\t\tvar $el = this.$el.css({ opacity: 0 });\n\n\t\twp.media.transition($el).done(function () {\n\t\t\t// Transition end events are subject to race conditions.\n\t\t\t// Make sure that the value is set as intended.\n\t\t\tif ($el.css('opacity') === '0') {\n\t\t\t\t$el.hide();\n\t\t\t}\n\t\t});\n\n\t\t// https://core.trac.wordpress.org/ticket/27341\n\t\t_.delay(function () {\n\t\t\tif ($el.css('opacity') === '0' && $el.is(':visible')) {\n\t\t\t\t$el.hide();\n\t\t\t}\n\t\t}, 500);\n\t},\n\n\tuploaderFilesAdded: function (uploader, queuedFiles) {\n\t\twpbc.broadcast.trigger('uploader:queuedFilesAdded', queuedFiles);\n\t},\n\n\tuploaderStartUpload: function () {\n\t\tthis.uploader.start();\n\t},\n\n\tuploaderUploadProgress: function (up, file) {\n\t\twpbc.broadcast.trigger('uploader:uploadProgress', file);\n\t},\n\n\tuploaderBeforeUpload: function (up, file) {\n\t\tup.settings.multipart_params = _.defaults(\n\t\t\twpbc.uploads[file.id],\n\t\t\twpbc.preload.plupload.multipart_params,\n\t\t\t{ nonce: wpbc.preload.nonce },\n\t\t);\n\t},\n\n\tuploaderFileUploaded: function (up, file, response) {\n\t\tvar status = JSON.parse(response.response);\n\t\twpbc.broadcast.trigger('uploader:fileUploaded', file);\n\t\tif (status.data.upload === 'success' && status.data.ingest === 'success') {\n\t\t\tif (status.data.videoDetails) {\n\t\t\t\t// Add newly uploaded file to preload list.\n\t\t\t\twpbc.broadcast.trigger('uploader:uploadedFileDetails', status.data.videoDetails);\n\t\t\t}\n\t\t\twpbc.broadcast.trigger('uploader:successfulUploadIngest', file);\n\t\t} else {\n\t\t\tfile.percent = 0;\n\t\t\tfile.status = plupload.UPLOADING;\n\t\t\tup.state = plupload.STARTED;\n\t\t\tup.trigger('StateChanged');\n\t\t\twpbc.broadcast.trigger('uploader:failedUploadIngest', file);\n\t\t}\n\t},\n});\n","var UploadView = BrightcoveView.extend({\n\tclassName: 'brightcove-pending-upload',\n\ttagName: 'tr',\n\ttemplate: wp.template('brightcove-pending-upload'),\n\n\tevents: {\n\t\tclick: 'toggleRow',\n\t},\n\n\tinitialize: function () {\n\t\tthis.listenTo(wpbc.broadcast, 'pendingUpload:selectedRow', this.otherToggledRow);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:uploadProgress', this.uploadProgress);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:getParams', this.getParams);\n\t\tthis.listenTo(\n\t\t\twpbc.broadcast,\n\t\t\t'uploader:successfulUploadIngest',\n\t\t\tthis.successfulUploadIngest,\n\t\t);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:failedUploadIngest', this.failedUploadIngest);\n\n\t\tvar options = {\n\t\t\tfileName: this.model.get('name'),\n\t\t\ttags: '',\n\t\t\taccounts: wpbc.preload.accounts, // All accounts.\n\t\t\taccount: wpbc.preload.defaultAccount,\n\t\t\tingestSuccess: false,\n\t\t\tuploadSuccess: false,\n\t\t\tuploaded: false,\n\t\t};\n\n\t\tthis.model.set(options);\n\n\t\tthis.listenTo(this.model, 'change:fileName', this.render);\n\t\tthis.listenTo(this.model, 'change:account', this.render);\n\t},\n\n\trender: function (options) {\n\t\toptions = options || {};\n\t\toptions.fileName = this.model.get('fileName');\n\t\toptions.size = this.model.humanReadableSize();\n\t\tvar sourceHash = this.model.get('account');\n\t\toptions.accountName = wpbc.preload.accounts[sourceHash].account_name;\n\t\toptions.percent = this.model.get('percent');\n\t\toptions.activeUpload = this.model.get('activeUpload');\n\t\toptions.ingestSuccess = this.model.get('ingestSuccess');\n\t\toptions.uploadSuccess = this.model.get('uploadSuccess');\n\n\t\tthis.$el.html(this.template(options));\n\t\tif (this.model.get('selected')) {\n\t\t\tthis.$el.addClass('selected');\n\t\t}\n\t\tif (this.model.get('ingestSuccess')) {\n\t\t\tthis.$el.addClass('ingest-success');\n\t\t}\n\t\tif (this.model.get('uploadSuccess')) {\n\t\t\tthis.$el.addClass('upload-success');\n\t\t}\n\t},\n\n\tgetParams: function (fileId) {\n\t\twpbc.broadcast.trigger('uploader:params', 'abcde');\n\t},\n\n\tfailedUploadIngest: function (file) {\n\t\t// Make sure we're acting on the right file.\n\t\tif (file.id === this.model.get('id')) {\n\t\t\twpbc.broadcast.trigger(\n\t\t\t\t'uploader:errorMessage',\n\t\t\t\twpbc.preload.messages.unableToUpload.replace('%%s%%', this.model.get('fileName')),\n\t\t\t);\n\t\t\tthis.render();\n\t\t}\n\t},\n\n\tsuccessfulUploadIngest: function (file) {\n\t\t// Make sure we're acting on the right file.\n\t\tif (file.id === this.model.get('id')) {\n\t\t\twpbc.broadcast.trigger(\n\t\t\t\t'uploader:successMessage',\n\t\t\t\twpbc.preload.messages.successUpload.replace('%%s%%', this.model.get('fileName')),\n\t\t\t);\n\t\t\tthis.render();\n\t\t}\n\t},\n\n\t/**\n\t * Render if we're the active upload.\n\t * Re-render if we thought we were but we no longer are.\n\t * @param file Fired from UploadProgress on plUpload\n\t */\n\tuploadProgress: function (file) {\n\t\t// Make sure we're acting on the right file.\n\t\tif (file.id === this.model.get('id')) {\n\t\t\tthis.model.set('activeUpload', true);\n\t\t\tthis.model.set('percent', file.percent);\n\t\t\tthis.render();\n\t\t} else {\n\t\t\tif (this.model.get('activeUpload')) {\n\t\t\t\tthis.model.unset('activeUpload');\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t}\n\t},\n\n\ttoggleRow: function (event) {\n\t\tthis.$el.toggleClass('selected');\n\t\tif (this.$el.hasClass('selected')) {\n\t\t\tthis.model.set('selected', true);\n\t\t\twpbc.broadcast.trigger('pendingUpload:selectedRow', this.cid);\n\t\t} else {\n\t\t\twpbc.broadcast.trigger('pendingUpload:hideDetails', this.cid);\n\t\t}\n\t},\n\n\totherToggledRow: function (cid) {\n\t\t// Ignore broadcast from self\n\t\tif (cid !== this.cid) {\n\t\t\tthis.$el.removeClass('selected');\n\t\t\tthis.model.unset('selected');\n\t\t} else {\n\t\t\twpbc.broadcast.trigger('pendingUpload:selectedItem', this.model);\n\t\t}\n\t},\n});\n","var VideoEditView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'video-edit brightcove attachment-details',\n\ttemplate: wp.template('brightcove-video-edit'),\n\n\tevents: {\n\t\t'click .brightcove.button.save-sync': 'saveSync',\n\t\t'click .brightcove.delete': 'deleteVideo',\n\t\t'click .brightcove.button.back': 'back',\n\t\t'click .setting .button': 'openMediaManager',\n\t\t'click .attachment .check': 'removeAttachment',\n\t\t'click .caption-secondary-fields .delete': 'removeCaptionRow',\n\t\t'click .add-remote-caption': 'addCaptionRow',\n\t\t'click .add-bc-label': 'addLabelRow',\n\t\t'keypress .brightcove-labels': 'labelAutocomplete',\n\t\t'click .bc-label-secondary-fields .delete': 'removeLabelRow',\n\t},\n\n\tback: function (event) {\n\t\tevent.preventDefault();\n\n\t\t// Exit if the 'button' is disabled.\n\t\tif ($(event.currentTarget).hasClass('disabled')) {\n\t\t\treturn;\n\t\t}\n\t\twpbc.broadcast.trigger('start:gridview');\n\t},\n\n\tdeleteVideo: function () {\n\t\tif (confirm(wpbc.preload.messages.confirmDelete)) {\n\t\t\twpbc.broadcast.trigger('spinner:on');\n\t\t\tthis.model.set('mediaType', 'videos');\n\t\t\tthis.model.destroy();\n\t\t}\n\t},\n\n\t/**\n\t * Allow the user to attach a video still or thumbnail.\n\t *\n\t * @param {Event} evnt\n\t */\n\topenMediaManager: function (evnt) {\n\t\tevnt.preventDefault();\n\n\t\tvar elem = $(evnt.currentTarget).parents('.setting'),\n\t\t\teditor = elem.data('editor'),\n\t\t\tmediaManager = (wp.media.frames.brightcove = wp.media()),\n\t\t\tthat = this,\n\t\t\toptions = {\n\t\t\t\tstate: 'insert',\n\t\t\t\ttitle: wp.media.view.l10n.addMedia,\n\t\t\t\tmultiple: false,\n\t\t\t};\n\n\t\t// Open the media manager\n\t\tmediaManager.open(editor, options);\n\n\t\t// Listen for selection of media\n\t\tmediaManager.on('select', function () {\n\t\t\tvar media = mediaManager.state().get('selection').first().toJSON(),\n\t\t\t\tfield = $(evnt).parents('.setting');\n\n\t\t\t// Set the selected attachment to the correct field\n\t\t\tthat.setAttachment(media, field);\n\n\t\t\t// Make this action available to other areas of the application\n\t\t\twpbc.broadcast.trigger('media:selected');\n\t\t});\n\t},\n\n\t/**\n\t * Set the hidden input to the ID of the selected attachment.\n\t *\n\t * @param {Object} media\n\t * @param {String} field\n\t * @returns {boolean}\n\t */\n\tsetAttachment: function (media, field) {\n\t\tvar field = field.prevObject[0].currentTarget,\n\t\t\tfield = $(field).prev('input'),\n\t\t\tattachment = field.parents('.attachment'),\n\t\t\tpreview = attachment.find('.-image'),\n\t\t\tThumbnailOrPoster = ['brightcove-poster', 'brightcove-thumbnail'];\n\n\t\t// Perform different setup actions based on the type of upload\n\t\tif (ThumbnailOrPoster.includes(field.attr('class'))) {\n\t\t\t// Executed if the user is uploading a poster image or thumbnail\n\t\t\tvar selectedMedia = {\n\t\t\t\turl: media.sizes.full.url,\n\t\t\t\twidth: media.sizes.full.width,\n\t\t\t\theight: media.sizes.full.height,\n\t\t\t};\n\n\t\t\t// Set up our preview image\n\t\t\tvar image = document.createElement('img');\n\n\t\t\t// Set image properties\n\t\t\timage.src = media.sizes.full.url;\n\t\t\timage.className = 'thumbnail';\n\n\t\t\t// Display a preview image\n\t\t\tattachment.addClass('active');\n\t\t\tpreview.html(image); // .html() considered okay because auth is required to view this screen\n\t\t} else {\n\t\t\t// Executed if the user is uploading a closed caption\n\t\t\tif (media.subtype === 'vtt') {\n\t\t\t\tthis.addCaptionRow(false, media);\n\t\t\t} else {\n\t\t\t\tvar template = wp.template('brightcove-badformat-notice');\n\n\t\t\t\t// Throw a notice to the user that the file is not the correct format\n\t\t\t\t$('.brightcove-media-videos').prepend(template);\n\n\t\t\t\t// Allow the user to dismiss the notice\n\t\t\t\t$('.badformat.notice-dismiss').on('click', function () {\n\t\t\t\t\t$('.notice.badformat')\n\t\t\t\t\t\t.first()\n\t\t\t\t\t\t.fadeOut(500, function () {\n\t\t\t\t\t\t\t$(this).remove();\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Add our meta to the hidden field\n\t\tfield.val(JSON.stringify(selectedMedia));\n\t},\n\n\t/**\n\t * Allow the user to remove media from a given field.\n\t *\n\t * @param {Event} evnt\n\t * @returns {boolean}\n\t */\n\tremoveAttachment: function (evnt) {\n\t\tvar container = $(evnt.currentTarget).parents('.attachment'),\n\t\t\timage = container.find('.-image'),\n\t\t\tfield = container.next('input');\n\n\t\t// Empty the field\n\t\tfield.val('');\n\n\t\t// Remove the preview image\n\t\tcontainer.removeClass('active');\n\t\timage.empty();\n\t},\n\n\t/**\n\t * Add a label row\n\t *\n\t * @param {Event} evnt\n\t * @param {Object} media\n\t */\n\taddLabelRow: function (evnt, media) {\n\t\tvar source = undefined;\n\t\tif (media) {\n\t\t\tsource = media.url;\n\t\t}\n\n\t\tthis.addLabel(source);\n\t},\n\n\t/**\n\t * Adds a label\n\t *\n\t * @param source\n\t * @param language\n\t * @param label\n\t * @param defaultcap\n\t */\n\taddLabel: function (source, language, label, defaultcap) {\n\t\tlet newRow = $(document.getElementById('js-bc-label-empty-row')).clone(),\n\t\t\tcontainer = document.getElementById('js-bc-labels');\n\n\t\t// Clean up our cloned row\n\t\tnewRow.find('input').prop('disabled', false);\n\t\tnewRow.removeAttr('id');\n\t\tnewRow.removeClass('empty-row');\n\n\t\t// Append our new row to the container\n\t\t$(container).append(newRow);\n\t},\n\n\t/**\n\t * Fires the autocomplete function\n\t *\n\t * @param {Event} evnt\n\t */\n\tlabelAutocomplete: function (evnt) {\n\t\tjQuery('.brightcove-labels').autocomplete({\n\t\t\tsource: wpbc.preload.labels,\n\t\t});\n\t},\n\n\t/**\n\t * Removes a label row\n\t * @param {Event} evnt\n\t */\n\tremoveLabelRow: function (evnt) {\n\t\tevnt.preventDefault();\n\n\t\tlet label = evnt.currentTarget,\n\t\t\tcontainer = $(label).parents('.bc-label-repeater'),\n\t\t\tsource = container.find('.brightcove-labels');\n\n\t\t// Empty the input fields\n\t\t$(source).val('');\n\n\t\t// Remove the container entirely\n\t\tcontainer.remove();\n\t},\n\n\t/**\n\t * Add a caption row\n\t *\n\t * @param {Event} evnt\n\t * @param {Object} media\n\t */\n\taddCaptionRow: function (evnt, media) {\n\t\t// If using the add remote file link, prevent the page from jumping to the top\n\t\tif (evnt) {\n\t\t\tevnt.preventDefault();\n\t\t}\n\n\t\tvar source = undefined;\n\t\tif (media) {\n\t\t\tsource = media.url;\n\t\t}\n\n\t\tthis.addCaption(source);\n\t},\n\n\taddCaption: function (source, language, label, defaultcap) {\n\t\tvar newRow = $(document.getElementById('js-caption-empty-row')).clone(),\n\t\t\tcontainer = document.getElementById('js-captions'),\n\t\t\tcaptionUrl = document.getElementById('js-caption-url');\n\n\t\t// Clean up our cloned row\n\t\tnewRow.find('input').prop('disabled', false);\n\t\tnewRow.removeAttr('id');\n\t\tnewRow.removeClass('empty-row');\n\n\t\tif (source) {\n\t\t\tnewRow.find('.brightcove-captions').val(source);\n\t\t}\n\n\t\tif (language) {\n\t\t\tnewRow.find('.brightcove-captions-language').val(language);\n\t\t}\n\n\t\tif (label) {\n\t\t\tnewRow.find('.brightcove-captions-label').val(label);\n\t\t}\n\n\t\tif (defaultcap) {\n\t\t\tnewRow.find('.brightcove-captions-default').val(defaultcap);\n\t\t}\n\n\t\t// Append our new row to the container\n\t\t$(container).append(newRow);\n\n\t\t// Update the context button text\n\t\tthis.updateCaptionText();\n\t},\n\n\t/**\n\t * Remove a caption\n\t *\n\t * @param {Event} evnt\n\t */\n\tremoveCaptionRow: function (evnt) {\n\t\tevnt.preventDefault();\n\n\t\tvar caption = evnt.currentTarget,\n\t\t\tcontainer = $(caption).parents('.caption-repeater'),\n\t\t\tsource = container.find('.brightcove-captions'),\n\t\t\tlanguage = container.find('.brightcove-captions-launguage'),\n\t\t\tlabel = container.find('.brightcove-captions-label'),\n\t\t\tdefaultcap = container.find('.brightcove-captions-default');\n\n\t\t// Empty the input fields\n\t\t$(source).val('');\n\t\t$(language).val('');\n\t\t$(label).val('');\n\t\t$(defaultcap).val('');\n\n\t\t// Remove the container entirely\n\t\tcontainer.remove();\n\n\t\t// Update the context button text\n\t\tthis.updateCaptionText();\n\t},\n\n\t/**\n\t * Updates the caption text based on number of captions\n\t */\n\tupdateCaptionText: function () {\n\t\tvar button = $('.captions .button-secondary'),\n\t\t\tlink = $('.add-remote-caption');\n\n\t\tif (document.getElementsByClassName('caption-repeater').length > 1) {\n\t\t\tbutton.text(wpbc.str_addcaption);\n\t\t\tlink.text(wpbc.str_addremote);\n\t\t} else {\n\t\t\tbutton.text(wpbc.str_selectfile);\n\t\t\tlink.text(wpbc.str_useremote);\n\t\t}\n\t},\n\n\tsaveSync: function (evnt) {\n\t\tevnt.preventDefault();\n\n\t\tvar $mediaFrame = $(evnt.currentTarget).parents('.media-modal'),\n\t\t\t$allButtons = $mediaFrame.find('.button, .button-link'),\n\t\t\tSELF = this;\n\n\t\t// Exit if the 'button' is disabled.\n\t\tif ($allButtons.hasClass('disabled')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Disable the button for the duration of the request.\n\t\t$allButtons.addClass('disabled');\n\n\t\t// Hide the delete link for the duration of the request.\n\t\t$mediaFrame.find('.delete-action').hide();\n\n\t\twpbc.broadcast.trigger('spinner:on');\n\t\tthis.model.set('name', this.$el.find('.brightcove-name').val());\n\t\tthis.model.set('description', this.$el.find('.brightcove-description').val());\n\t\tthis.model.set('long_description', this.$el.find('.brightcove-long-description').val());\n\n\t\t// Trim whitespace and commas from tags beginning/end.\n\t\tthis.model.set(\n\t\t\t'tags',\n\t\t\tthis.$el\n\t\t\t\t.find('.brightcove-tags')\n\t\t\t\t.val()\n\t\t\t\t.trim()\n\t\t\t\t.replace(/(^,)|(,$)/g, ''),\n\t\t);\n\t\tthis.model.set('height', this.$el.find('.brightcove-height').val());\n\t\tthis.model.set('width', this.$el.find('.brightcove-width').val());\n\t\tthis.model.set('mediaType', 'videos');\n\t\tthis.model.set('poster', this.$el.find('.brightcove-poster').val());\n\t\tthis.model.set('thumbnail', this.$el.find('.brightcove-thumbnail').val());\n\t\tthis.model.set('folderId', this.$el.find('.brightcove-folder').val());\n\n\t\t// Captions\n\t\tvar captions = [];\n\t\tthis.$el\n\t\t\t.find('.caption-repeater.repeater-row')\n\t\t\t.not('.empty-row')\n\t\t\t.each(function () {\n\t\t\t\tvar caption = $(this),\n\t\t\t\t\tfileName = caption.find('.brightcove-captions').val(),\n\t\t\t\t\textension = fileName.split('?')[0], // if the URL has a query string, strip it before validating filetype\n\t\t\t\t\textension = extension.split('.').pop();\n\n\t\t\t\tif (extension === 'vtt') {\n\t\t\t\t\tcaptions.push({\n\t\t\t\t\t\tsource: fileName,\n\t\t\t\t\t\tlanguage: caption.find('.brightcove-captions-language').val(),\n\t\t\t\t\t\tlabel: caption.find('.brightcove-captions-label').val(),\n\t\t\t\t\t\tdefault: caption.find('.brightcove-captions-default').attr('checked'),\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tvar template = wp.template('brightcove-badformat-notice');\n\n\t\t\t\t\t// Throw a notice to the user that the file is not the correct format\n\t\t\t\t\t$('.brightcove-media-videos').prepend(template);\n\n\t\t\t\t\t// Allow the user to dismiss the notice\n\t\t\t\t\t$('.badformat.notice-dismiss').on('click', function () {\n\t\t\t\t\t\t$('.notice.badformat')\n\t\t\t\t\t\t\t.first()\n\t\t\t\t\t\t\t.fadeOut(500, function () {\n\t\t\t\t\t\t\t\t$(this).remove();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\tthis.model.set('captions', captions);\n\n\t\t// Labels\n\t\tvar labels = [];\n\t\tthis.$el\n\t\t\t.find('.bc-label-repeater.repeater-row')\n\t\t\t.not('.empty-row')\n\t\t\t.each(function () {\n\t\t\t\tvar label = $(this),\n\t\t\t\t\tName = label.find('.brightcove-labels').val();\n\n\t\t\t\tlabels.push(Name);\n\t\t\t});\n\n\t\tthis.model.set('labels', labels);\n\n\t\t// Custom fields\n\t\tvar custom = {},\n\t\t\tcustom_fields = this.model.get('custom');\n\n\t\t_.each(\n\t\t\tthis.$el.find('.brightcove-custom-string, .brightcove-custom-enum'),\n\t\t\tfunction (item) {\n\t\t\t\tvar key = item.getAttribute('data-id'),\n\t\t\t\t\tval = item.value.trim();\n\n\t\t\t\tif (val !== '') {\n\t\t\t\t\tcustom[key] = val;\n\n\t\t\t\t\tvar obj = _.find(custom_fields, function (item) {\n\t\t\t\t\t\treturn item.id == key;\n\t\t\t\t\t});\n\t\t\t\t\tobj.value = val;\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\n\t\tthis.model.set('custom_fields', custom);\n\t\tthis.model.set('custom', custom_fields);\n\n\t\tthis.model\n\t\t\t.save()\n\t\t\t.done(function () {\n\t\t\t\tif ($mediaFrame.length > 0) {\n\t\t\t\t\t// Update the tag dropdown and wpbc.preload.tags with any new tag values.\n\t\t\t\t\tvar tagInput = $mediaFrame.find('.brightcove-tags').val(),\n\t\t\t\t\t\teditTags,\n\t\t\t\t\t\tnewTags;\n\n\t\t\t\t\tif (tagInput) {\n\t\t\t\t\t\teditTags = tagInput.split(',');\n\t\t\t\t\t\tnewTags = _.difference(editTags, wpbc.preload.tags);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add any new tags to the tags object and the dropdown.\n\t\t\t\t\t_.each(newTags, function (newTag) {\n\t\t\t\t\t\tnewTag = newTag.trim();\n\t\t\t\t\t\tif (newTag !== '') {\n\t\t\t\t\t\t\twpbc.preload.tags.push(newTag);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\twpbc.preload.tags.sort();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.always(function () {\n\t\t\t\t// Re-enable the button when the request has completed.\n\t\t\t\t$allButtons.removeClass('disabled');\n\n\t\t\t\t// Show the delete link.\n\t\t\t\t$mediaFrame.find('.delete-action').show();\n\t\t\t});\n\n\t\t// Hide the video edit screen after save.\n\t\twpbc.broadcast.trigger('start:gridview');\n\t},\n\n\t/**\n\t * Render the actual view for the Video Edit screen.\n\t *\n\t * @param {Object} options\n\t */\n\trender: function (options) {\n\t\tthis.listenTo(wpbc.broadcast, 'save:media', this.saveSync);\n\t\tthis.listenTo(wpbc.broadcast, 'back:editvideo', this.back);\n\n\t\tthis.listenTo(wpbc.broadcast, 'insert:shortcode', this.insertShortcode);\n\t\toptions = this.model.toJSON();\n\t\toptions.folders = wpbc.preload.folders;\n\t\tthis.model.set('oldFolderId', options.folder_id);\n\n\t\t// Render the model into the template\n\t\tthis.$el.html(this.template(options));\n\n\t\t// Render custom fields into the template\n\t\tvar customContainer = this.$el.find('#brightcove-custom-fields'),\n\t\t\tstringTmp = wp.template('brightcove-video-edit-custom-string'),\n\t\t\tenumTmp = wp.template('brightcove-video-edit-custom-enum');\n\n\t\t_.each(this.model.get('custom'), function (custom) {\n\t\t\tif (custom.id === '_change_history') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tswitch (custom.type) {\n\t\t\t\tcase 'string':\n\t\t\t\t\tcustomContainer.append(stringTmp(custom));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'enum':\n\t\t\t\t\tcustomContainer.append(enumTmp(custom));\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\n\t\t// Render the change history\n\t\tvar history = this.model.get('history');\n\n\t\tif (history !== undefined) {\n\t\t\tvar historyStr = '';\n\n\t\t\t// Parse our fetched JSON object\n\t\t\thistory = JSON.parse(history);\n\n\t\t\t_.each(history, function (item) {\n\t\t\t\thistoryStr += item.user + ' - ' + item.time + '\\n';\n\t\t\t});\n\n\t\t\tif (historyStr !== '') {\n\t\t\t\tthis.$el.find('textarea.brightcove-change-history').val(historyStr);\n\t\t\t}\n\t\t}\n\n\t\t// Configure a spinner to provide feedback during updates\n\t\tvar spinner = this.$el.find('.spinner');\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:on', function () {\n\t\t\tspinner.addClass('is-active').removeClass('hidden');\n\t\t});\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:off', function () {\n\t\t\tspinner.removeClass('is-active').addClass('hidden');\n\t\t});\n\n\t\t// If there's already a poster or thumbnail set, display it\n\t\tif (this.model.get('poster')) {\n\t\t\tthis.displayAttachment('poster');\n\t\t}\n\n\t\tif (this.model.get('thumbnail')) {\n\t\t\tthis.displayAttachment('thumbnail');\n\t\t}\n\n\t\t// Captions\n\t\tif (this.model.get('captions')) {\n\t\t\tvar captions = this.model.get('captions');\n\t\t\tfor (var i = 0, l = captions.length; i < l; i++) {\n\t\t\t\tvar caption = captions[i];\n\t\t\t\tthis.addCaption(caption.source, caption.language, caption.label, caption.default);\n\t\t\t}\n\t\t}\n\t},\n});\n","var VideoPreviewView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'video-preview brightcove',\n\ttemplate: wp.template('brightcove-video-preview'),\n\tshortcode: '',\n\n\tinitialize: function (options) {\n\t\tthis.shortcode = options.shortcode;\n\t},\n\n\trender: function (options) {\n\t\tvar that = this;\n\n\t\toptions = options || {};\n\t\toptions.id = this.model.get('id');\n\t\toptions.account_id = this.model.get('account_id');\n\n\t\t$.ajax({\n\t\t\turl: ajaxurl,\n\t\t\tdataType: 'json',\n\t\t\tmethod: 'POST',\n\t\t\tdata: {\n\t\t\t\taction: 'bc_resolve_shortcode',\n\t\t\t\tshortcode: this.shortcode,\n\t\t\t\tvideo_id: options.id,\n\t\t\t\taccount_id: options.account_id,\n\t\t\t},\n\t\t\tsuccess: function (results) {\n\t\t\t\tthat.$el.html(results.data);\n\t\t\t},\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'insert:shortcode', this.insertShortcode);\n\t},\n});\n","var MediaCollectionView = BrightcoveView.extend({\n\ttagName: 'ul',\n\tclassName: 'brightcove-media attachments',\n\n\tattributes: {\n\t\ttabIndex: -1,\n\t},\n\n\tevents: {\n\t\t/* scroll fired on playlist edits, but for media grids it's handled by firing 'scroll:mediaGrid' in brightcove-media-manager */\n\t\tscroll: 'scrollHandler',\n\t},\n\n\tloadMoreMediaItems: function () {\n\t\tthis.fetchingResults = true;\n\t\tthis.collection.fetch();\n\t},\n\n\tscrollHandler: function () {\n\t\t// We don't fetch for videos in an existing playlist\n\t\tif (this.collection.mediaCollectionViewType === 'existingPlaylists') {\n\t\t\treturn;\n\t\t}\n\n\t\tvar scrollThreshold = 200; // How many px from bottom until we fetch the next page.\n\t\tif (\n\t\t\t!this.fetchingResults &&\n\t\t\tthis.el.scrollTop + this.el.clientHeight + scrollThreshold > this.el.scrollHeight\n\t\t) {\n\t\t\tthis.collection.pageNumber += 1;\n\t\t\tthis.loadMoreMediaItems();\n\t\t}\n\t},\n\n\tinitialize: function (options) {\n\t\tthis.fetchingResults = false;\n\t\tthis.listenTo(wpbc.broadcast, 'fetch:finished', function () {\n\t\t\tthis.fetchingResults = false;\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'fetch:apiError', this.handleAPIError);\n\n\t\tvar scrollRefreshSensitivity = wp.media.isTouchDevice ? 300 : 200;\n\t\tthis.scrollHandler = _.chain(this.scrollHandler)\n\t\t\t.bind(this)\n\t\t\t.throttle(scrollRefreshSensitivity)\n\t\t\t.value();\n\t\tthis.listenTo(wpbc.broadcast, 'scroll:mediaGrid', this.scrollHandler);\n\t\toptions = options || {};\n\t\tthis.el.id = _.uniqueId('__attachments-view-');\n\n\t\t// Occurs on playlist edit, existing videos.\n\t\tif (!this.collection && options.videoIds) {\n\t\t\tthis.collection = new MediaCollection(null, {\n\t\t\t\tvideoIds: options.videoIds,\n\t\t\t\tactiveAccount: options.activeAccount,\n\t\t\t\tmediaCollectionViewType: options.mediaCollectionViewType,\n\t\t\t});\n\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:moveUp', this.videoMoveUp);\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:moveDown', this.videoMoveDown);\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:remove', this.videoRemove);\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:add', this.videoAdd);\n\t\t} else if (!this.collection && options.mediaCollectionViewType === 'libraryPlaylists') {\n\t\t\tthis.collection = new MediaCollection(null, {\n\t\t\t\texcludeVideoIds: options.excludeVideoIds,\n\t\t\t\tactiveAccount: options.activeAccount,\n\t\t\t\tmediaCollectionViewType: options.mediaCollectionViewType,\n\t\t\t});\n\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:remove', this.videoRemove);\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:add', this.videoAdd);\n\t\t}\n\n\t\t_.defaults(this.options, {\n\t\t\trefreshSensitivity: wp.media.isTouchDevice ? 300 : 200,\n\t\t\trefreshThreshold: 3,\n\t\t\tVideoView: wp.media.view.Video,\n\t\t\tsortable: false,\n\t\t\tresize: true,\n\t\t\tidealColumnWidth: 202,\n\t\t});\n\n\t\tthis._viewsByCid = {};\n\t\tthis.resizeEvent = 'resize.media-modal-columns';\n\n\t\tthis.listenTo(\n\t\t\tthis.collection,\n\t\t\t'add',\n\t\t\tfunction (media) {\n\t\t\t\tthis.views.add(this.createMediaView(media), {\n\t\t\t\t\tat: this.collection.indexOf(media),\n\t\t\t\t});\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\tthis.listenTo(\n\t\t\tthis.collection,\n\t\t\t'remove',\n\t\t\tfunction (media) {\n\t\t\t\tif (media) {\n\t\t\t\t\tif (media.view) {\n\t\t\t\t\t\tmedia.view.remove();\n\t\t\t\t\t} else if (media.cid && this._viewsByCid[media.cid]) {\n\t\t\t\t\t\tthis._viewsByCid[media.cid].remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\tthis.listenTo(this.collection, 'reset', this.render);\n\n\t\t// Throttle the scroll handler and bind this.\n\t\tthis.scroll = _.chain(this.scroll)\n\t\t\t.bind(this)\n\t\t\t.throttle(this.options.refreshSensitivity)\n\t\t\t.value();\n\n\t\tthis.options.scrollElement = this.options.scrollElement || this.el;\n\t\t$(this.options.scrollElement).on('scroll', this.scroll);\n\n\t\t_.bindAll(this, 'setColumns');\n\n\t\tif (this.options.resize) {\n\t\t\tthis.on('ready', this.bindEvents);\n\t\t\t// this.controller.on('open', this.setColumns);\n\n\t\t\t// Call this.setColumns() after this view has been rendered in the DOM so\n\t\t\t// attachments get proper width applied.\n\t\t\t_.defer(this.setColumns, this);\n\t\t}\n\t},\n\n\thandleAPIError: function () {\n\t\tthis.el.innerText = wpbc.str_apifailure;\n\t},\n\n\trender: function () {\n\t\t// hide the spinner when content has finished loading\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:off', function () {\n\t\t\t$('#js-media-loading').css('display', 'none');\n\t\t});\n\n\t\tthis.$el.empty();\n\t\tthis.collection.each(function (mediaModel) {\n\t\t\tmediaModel.view = new MediaView({ model: mediaModel });\n\t\t\tthis.registerSubview(mediaModel.view);\n\t\t\tmediaModel.view.render();\n\t\t\tmediaModel.view.delegateEvents();\n\t\t\tmediaModel.view.$el.appendTo(this.$el);\n\n\t\t\twpbc.broadcast.trigger('spinner:off');\n\t\t}, this);\n\t},\n\n\tsetViewType: function (type) {\n\t\tthis.collection.each(function (mediaModel) {\n\t\t\tmediaModel.set('view', type);\n\t\t}, this);\n\t},\n\n\tbindEvents: function () {\n\t\tthis.$window.off(this.resizeEvent).on(this.resizeEvent, _.debounce(this.setColumns, 50));\n\t},\n\n\tsetColumns: function () {\n\t\tvar prev = this.columns,\n\t\t\twidth = this.$el.width();\n\n\t\tif (width) {\n\t\t\tthis.columns = Math.min(Math.round(width / this.options.idealColumnWidth), 12) || 1;\n\n\t\t\tif (!prev || prev !== this.columns) {\n\t\t\t\tthis.$el.closest('.media-frame-content').attr('data-columns', this.columns);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * @param {wp.media.model.Video} attachment\n\t * @returns {wp.media.View}\n\t */\n\tcreateMediaView: function (attachment) {\n\t\tattachment.set('viewType', this.collection.mediaCollectionViewType);\n\t\tvar view = new MediaView({\n\t\t\tcontroller: this.controller,\n\t\t\tmodel: attachment,\n\t\t\tcollection: this.collection,\n\t\t\tselection: this.options.selection,\n\t\t});\n\t\tthis.registerSubview(view);\n\t\tthis._viewsByCid[attachment.cid] = view;\n\t\treturn view;\n\t},\n\n\tprepare: function () {\n\t\t// Create all of the Video views, and replace\n\t\t// the list in a single DOM operation.\n\t\tif (this.collection.length) {\n\t\t\tthis.views.set(this.collection.map(this.createMediaView, this));\n\n\t\t\t// If there are no elements, clear the views and load some.\n\t\t} else {\n\t\t\tthis.views.unset();\n\t\t\tthis.collection.more().done(this.scroll);\n\t\t}\n\t},\n\n\tready: function () {\n\t\t// Trigger the scroll event to check if we're within the\n\t\t// threshold to query for additional attachments.\n\t\tthis.scroll();\n\t},\n\n\tscroll: function () {\n\t\tvar view = this,\n\t\t\tel = this.options.scrollElement,\n\t\t\tscrollTop = el.scrollTop,\n\t\t\ttoolbar;\n\n\t\t// The scroll event occurs on the document, but the element\n\t\t// that should be checked is the document body.\n\t\tif (el === document) {\n\t\t\tel = document.body;\n\t\t\tscrollTop = $(document).scrollTop();\n\t\t}\n\n\t\tif (\n\t\t\tthis.collection.hasMore !== 'function' ||\n\t\t\t!$(el).is(':visible') ||\n\t\t\t!this.collection.hasMore()\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\ttoolbar = this.views.parent.toolbar;\n\n\t\t// Show the spinner only if we are close to the bottom.\n\t\tif (el.scrollHeight - (scrollTop + el.clientHeight) < el.clientHeight / 3) {\n\t\t\ttoolbar.get('spinner').show();\n\t\t}\n\n\t\tif (el.scrollHeight < scrollTop + el.clientHeight * this.options.refreshThreshold) {\n\t\t\tthis.collection.more().done(function () {\n\t\t\t\tview.scroll();\n\t\t\t\ttoolbar.get('spinner').hide();\n\t\t\t});\n\t\t}\n\t},\n\n\tvideoMoveUp: function (videoView) {\n\t\tvar model = videoView.model;\n\t\tvar index = this.collection.indexOf(model);\n\t\tif (index > 0) {\n\t\t\tthis.collection.remove(model, { silent: true }); // silence this to stop excess event triggers\n\t\t\tthis.collection.add(model, { at: index - 1 });\n\t\t}\n\t\tthis.render();\n\t\tthis.playlistChanged();\n\t},\n\n\tvideoMoveDown: function (videoView) {\n\t\tvar model = videoView.model;\n\t\tvar index = this.collection.indexOf(model);\n\t\tif (index < this.collection.models.length) {\n\t\t\tthis.collection.remove(model, { silent: true }); // silence this to stop excess event triggers\n\t\t\tthis.collection.add(model, { at: index + 1 });\n\t\t}\n\t\tthis.render();\n\t\tthis.playlistChanged();\n\t},\n\n\tvideoRemove: function (videoView) {\n\t\tvar model = videoView.model;\n\t\tif (this.collection.indexOf(model) === -1) {\n\t\t\t// this is the library model\n\t\t\tthis.collection.add(model);\n\t\t} else {\n\t\t\t// this is the playlist collection\n\t\t\tthis.collection.remove(model, { silent: true }); // silence this to stop excess event triggers\n\t\t\tthis.playlistChanged();\n\t\t}\n\t\tthis.render();\n\t},\n\n\tvideoAdd: function (videoView) {\n\t\t/**\n\t\t * Video add is heard by two collections, the one containing the videos for the playlists\n\t\t * and the one containing the videos that we can add to them.\n\t\t * We handle the add by adding from the collection where it doesn't exist (the playlist) and removing\n\t\t * where it does (the library).\n\t\t */\n\t\tvar model = videoView.model;\n\t\tif (this.collection.indexOf(model) === -1) {\n\t\t\t// this is the playlist collection\n\t\t\tthis.collection.add(model);\n\t\t\tthis.playlistChanged();\n\t\t} else {\n\t\t\t// this is the library model\n\t\t\tthis.collection.remove(model, { silent: true });\n\t\t\tthis.render();\n\t\t}\n\t},\n\n\tplaylistChanged: function () {\n\t\tvar videoIds = [];\n\t\tthis.collection.each(function (video) {\n\t\t\tvideoIds.push(video.id);\n\t\t});\n\t\tthis.videoIds = videoIds;\n\t\t// var syncPlaylist = _.throttle(_.bind(this.syncPlaylist, this), 2000);\n\t\tthis.syncPlaylist();\n\t},\n\n\tsyncPlaylist: function () {\n\t\twpbc.broadcast.trigger('playlist:changed', this.videoIds);\n\t},\n});\n","var App = {\n\trenderMediaManager: function (mediaType) {\n\t\tvar brightcoveMediaContainer = $('.brightcove-media-' + mediaType);\n\t\tvar content_ifr = document.getElementById('content_ifr');\n\t\tif (brightcoveMediaContainer.length) {\n\t\t\tvar brightcoveMediaManager = new BrightcoveMediaManagerView({\n\t\t\t\tel: brightcoveMediaContainer,\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'page',\n\t\t\t\tpreload: true,\n\t\t\t\tmode: 'manager',\n\t\t\t\tsearch: '',\n\t\t\t\taccounts: 'all',\n\t\t\t\ttags: 'all',\n\t\t\t\tmediaType: mediaType,\n\t\t\t\tviewType: 'grid',\n\t\t\t});\n\t\t\tbrightcoveMediaManager.render();\n\t\t}\n\t},\n\n\tload: function () {\n\t\twpbc.requests = [];\n\t\twpbc.responses = {};\n\t\twpbc.broadcast = _.extend({}, Backbone.Events); // pubSub object\n\n\t\tthis.loaded();\n\t},\n\n\tloaded: function () {\n\t\tvar brightcoveModalContainer = $('.brightcove-modal');\n\n\t\tvar router = new BrightcoveRouter();\n\t\twpbc.triggerModal = function () {\n\t\t\tif (!wpbc.modal) {\n\t\t\t\twpbc.modal = new BrightcoveModalView({\n\t\t\t\t\tel: brightcoveModalContainer,\n\t\t\t\t\ttab: 'videos',\n\t\t\t\t});\n\t\t\t\twpbc.modal.render();\n\t\t\t\twpbc.modal.$el.find('.spinner').addClass('is-active');\n\t\t\t} else {\n\t\t\t\twpbc.modal.$el.show();\n\t\t\t}\n\n\t\t\t// Prevent body scrolling by adding a class to 'body'.\n\t\t\t$('body').addClass('modal-open');\n\t\t};\n\n\t\tvar bc_sanitize_ids = function (id) {\n\t\t\treturn id.replace(/\\D/g, '');\n\t\t};\n\n\t\t// Load the appropriate media type manager into the container element,\n\t\t// We only support loading one per page.\n\t\t_.each(['videos', 'playlists'], function (mediaType) {\n\t\t\tApp.renderMediaManager(mediaType);\n\t\t});\n\n\t\t$('.account-toggle-button').on('click', function (event) {\n\t\t\tevent.preventDefault();\n\t\t\t$(this).hide();\n\t\t\t$('.brightcove-account-row.hidden').show();\n\t\t});\n\n\t\t$('.brightcove-add-new-video').on('click', function (e) {\n\t\t\te.preventDefault();\n\t\t\trouter.navigate('add-new-brightcove-video', { trigger: true });\n\t\t});\n\n\t\t$(document).on('click', '.brightcove-add-media', function (e) {\n\t\t\te.preventDefault();\n\t\t\twpbc.triggerModal();\n\t\t\twpbc.modal.target = e.currentTarget.dataset.target;\n\t\t});\n\n\t\t$(document).keyup(function (e) {\n\t\t\tif (e.keyCode === 27) {\n\t\t\t\t// Close modal on ESCAPE if it's open.\n\t\t\t\twpbc.broadcast.trigger('close:modal');\n\t\t\t}\n\t\t});\n\n\t\t$('a.brightcove-action-delete-source').on('click', function (e) {\n\t\t\tvar message = $(this).data('alert-message');\n\t\t\tif (!confirm(message)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t},\n};\n\njQuery(document).ready(function () {\n\tApp.load();\n\tvar router = new BrightcoveRouter();\n\tif (!Backbone.History.started) {\n\t\tBackbone.history.start();\n\t}\n});\n"]} \ No newline at end of file +{"version":3,"sources":["src/models/media.js","src/models/media-collection.js","src/models/brightcove-media-manager.js","src/models/brightcove-modal.js","src/models/upload-collection.js","src/models/upload.js","src/views/brightcove.js","src/views/toolbar.js","src/views/upload-video-manager.js","src/views/brightcove-media-manager.js","src/views/brightcove-modal.js","src/views/media-details.js","src/views/media.js","src/views/playlist-edit.js","src/views/upload-details.js","src/views/upload-window.js","src/views/upload.js","src/views/video-edit.js","src/views/video-preview.js","src/views/media-collection.js","src/app.js"],"names":[],"mappings":"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","file":"brightcove-admin.js","sourcesContent":["/**\n * Media model for Media CPT\n */\n\nvar MediaModel = Backbone.Model.extend({\n\t/**\n\t * Copied largely from WP Attachment sync function\n\t * Triggered when attachment details change\n\t * Overrides Backbone.Model.sync\n\t *\n\t * @param {string} method\n\t * @param {wp.media.model.Media} model\n\t * @param {Object} [options={}]\n\t *\n\t * @returns {Promise}\n\t */\n\tsync: function (method, model, options) {\n\t\tvar accountHash = null;\n\n\t\t// Set the accountHash to the wpbc.preload.accounts[*] where the account_id\n\t\t// matches this media objects account_id.\n\t\t_.find(\n\t\t\twpbc.preload.accounts,\n\t\t\tfunction (account, hash) {\n\t\t\t\tif (account.account_id === this.get('account_id')) {\n\t\t\t\t\taccountHash = hash;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\t// If the attachment does not yet have an `id`, return an instantly\n\t\t// rejected promise. Otherwise, all of our requests will fail.\n\t\tif (_.isUndefined(this.id)) {\n\t\t\treturn $.Deferred().rejectWith(this).promise();\n\t\t}\n\n\t\t// Overload the `read` request so Media.fetch() functions correctly.\n\t\tif (method === 'read') {\n\t\t\toptions = options || {};\n\t\t\toptions.context = this;\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taction: 'bc_media_fetch',\n\t\t\t\tid: this.id,\n\t\t\t});\n\n\t\t\treturn wp.media.ajax(options);\n\n\t\t\t// Overload the `update` request so properties can be saved.\n\t\t}\n\t\tif (method === 'update') {\n\t\t\toptions = options || {};\n\t\t\toptions.context = this;\n\t\t\t// Set the action and ID.\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taccount: accountHash,\n\t\t\t\taction: 'bc_media_update',\n\t\t\t\tdescription: this.get('description'),\n\t\t\t\tlong_description: this.get('long_description'),\n\t\t\t\tname: this.get('name'),\n\t\t\t\tnonce: wpbc.preload.nonce,\n\t\t\t\ttags: this.get('tags'),\n\t\t\t\toldFolderId: this.get('oldFolderId'),\n\t\t\t\tfolderId: this.get('folderId'),\n\t\t\t\ttype: this.get('mediaType'),\n\t\t\t\tcustom_fields: this.get('custom_fields'),\n\t\t\t\thistory: this.get('_change_history'),\n\t\t\t\tposter: this.get('poster'),\n\t\t\t\tthumbnail: this.get('thumbnail'),\n\t\t\t\tcaptions: this.get('captions'),\n\t\t\t\tlabels: this.get('labels'),\n\t\t\t});\n\n\t\t\tvar video_ids = this.get('video_ids');\n\t\t\tif (video_ids) {\n\t\t\t\toptions.data.playlist_id = this.id;\n\t\t\t\toptions.data.playlist_videos = video_ids;\n\t\t\t\toptions.data.type = 'playlists';\n\t\t\t} else {\n\t\t\t\toptions.data.video_id = this.id;\n\t\t\t}\n\n\t\t\toptions.success = this.successFunction;\n\t\t\toptions.error = this.failFunction;\n\n\t\t\twpbc.broadcast.trigger('spinner:on');\n\t\t\treturn wp.media.ajax(options);\n\n\t\t\t// Overload the `delete` request so attachments can be removed.\n\t\t\t// This will permanently delete an attachment.\n\t\t}\n\t\tif (method === 'delete') {\n\t\t\toptions = options || {};\n\t\t\tvar self = this;\n\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taccount: accountHash,\n\t\t\t\taction: 'bc_media_delete',\n\t\t\t\tid: this.get('id'),\n\t\t\t\tnonce: wpbc.preload.nonce,\n\t\t\t\ttype: this.get('mediaType'),\n\t\t\t});\n\n\t\t\treturn wp.media\n\t\t\t\t.ajax(options)\n\t\t\t\t.done(function (response) {\n\t\t\t\t\tself.destroyed = true;\n\t\t\t\t\twpbc.broadcast.trigger('delete:successful', response);\n\t\t\t\t\tif (\n\t\t\t\t\t\tself.get('mediaType') === 'videos' ||\n\t\t\t\t\t\t!_.isUndefined(self.get('video_ids'))\n\t\t\t\t\t) {\n\t\t\t\t\t\twpbc.preload.videos = undefined;\n\t\t\t\t\t} else {\n\t\t\t\t\t\twpbc.preload.playlists = undefined;\n\t\t\t\t\t}\n\t\t\t\t\twpbc.responses = {};\n\t\t\t\t})\n\t\t\t\t.fail(function (response) {\n\t\t\t\t\tself.destroyed = false;\n\t\t\t\t\twpbc.broadcast.trigger('videoEdit:message', response, 'error');\n\t\t\t\t\twpbc.broadcast.trigger('spinner:off');\n\t\t\t\t});\n\n\t\t\t// Otherwise, fall back to `Backbone.sync()`.\n\t\t}\n\t\t/**\n\t\t * Call `sync` directly on Backbone.Model\n\t\t */\n\t\treturn Backbone.Model.prototype.sync.apply(this, arguments);\n\t},\n\n\t/**\n\t * Convert date strings into Date objects.\n\t *\n\t * @param {Object} resp The raw response object, typically returned by fetch()\n\t * @returns {Object} The modified response object, which is the attributes hash\n\t * to be set on the model.\n\t */\n\tparse: function (resp) {\n\t\tif (!resp) {\n\t\t\treturn resp;\n\t\t}\n\n\t\tresp.date = new Date(resp.date);\n\t\tresp.modified = new Date(resp.modified);\n\t\treturn resp;\n\t},\n\n\tgetAccountName: function () {\n\t\tvar account_id = this.get('account_id');\n\t\tvar matchingAccount = _.findWhere(wpbc.preload.accounts, {\n\t\t\taccount_id: this.get('account_id'),\n\t\t});\n\t\treturn undefined === matchingAccount\n\t\t\t? this.getSelectedAccountName()\n\t\t\t: matchingAccount.account_name;\n\t},\n\n\tgetSelectedAccountName: function () {\n\t\tvar elt = document.getElementById('brightcove-media-source');\n\n\t\tif (elt.selectedIndex === -1) {\n\t\t\treturn 'unavailable';\n\t\t}\n\n\t\treturn elt.options[elt.selectedIndex].text;\n\t},\n\n\tgetReadableDuration: function () {\n\t\tvar duration = this.get('duration');\n\n\t\tif (duration) {\n\t\t\tduration = Number(duration / 1000);\n\t\t\tvar hours = Math.floor(duration / 3600);\n\t\t\tvar minutes = Math.floor((duration % 3600) / 60);\n\t\t\tvar seconds = Math.floor((duration % 3600) % 60);\n\t\t\treturn (\n\t\t\t\t(hours > 0 ? hours + ':' + (minutes < 10 ? '0' : '') : '') +\n\t\t\t\tminutes +\n\t\t\t\t':' +\n\t\t\t\t(seconds < 10 ? '0' : '') +\n\t\t\t\tseconds\n\t\t\t);\n\t\t}\n\t\treturn duration;\n\t},\n\n\tgetReadableDate: function (field) {\n\t\tvar updated_at = this.get(field);\n\n\t\tif (updated_at) {\n\t\t\tvar date = new Date(updated_at);\n\n\t\t\tvar hour = date.getHours();\n\t\t\tvar min = date.getMinutes();\n\t\t\tvar year = date.getFullYear();\n\t\t\tvar mon = date.getMonth() + 1;\n\t\t\tvar day = date.getDate();\n\t\t\tvar ampm = hour >= 12 ? 'pm' : 'am';\n\n\t\t\thour %= 12;\n\t\t\thour = hour || 12;\n\n\t\t\tmin = min < 10 ? '0' + min : min;\n\n\t\t\tvar readableDate = year + '/' + mon + '/' + day + ' - ' + hour + ':' + min + ' ' + ampm;\n\t\t\treturn readableDate;\n\t\t}\n\t\treturn updated_at;\n\t},\n\n\tsuccessFunction: function (message) {\n\t\twpbc.broadcast.trigger('videoEdit:message', message, 'success');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t\tif (_.isArray(this.get('video_ids')) && wpbc.preload && wpbc.preload.playlists) {\n\t\t\tvar id = this.get('id');\n\t\t\t_.each(\n\t\t\t\twpbc.preload.playlists,\n\t\t\t\tfunction (playlist, index) {\n\t\t\t\t\tif (playlist.id === id) {\n\t\t\t\t\t\twpbc.preload.playlists[index] = this.toJSON();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\t\t}\n\t\twpbc.responses = {};\n\t\tif (this.get('mediaType') === 'videos' || !_.isUndefined(this.get('video_ids'))) {\n\t\t\twpbc.preload.videos = undefined;\n\t\t} else {\n\t\t\twpbc.preload.playlists = undefined;\n\t\t}\n\t},\n\n\tfailFunction: function (message) {\n\t\twpbc.broadcast.trigger('videoEdit:message', message, 'error');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t},\n});\n","var MediaCollection = Backbone.Collection.extend({\n\tmodel: MediaModel,\n\t/**\n\t * @param {Array} [models=[]] Array of models used to populate the collection.\n\t * @param {Object} [options={}]\n\t */\n\tinitialize: function (models, options) {\n\t\toptions = options || {};\n\t\tif (options.activeAccount) {\n\t\t\tthis.activeAccount = options.activeAccount;\n\t\t}\n\n\t\tthis.additionalRequest = false;\n\n\t\tthis.pageNumber = this.pageNumber || 1;\n\n\t\tif (\n\t\t\t!this.mediaType &&\n\t\t\t(this.mediaCollectionViewType === 'existingPlaylists' ||\n\t\t\t\tthis.mediaCollectionViewType === 'libraryPlaylists')\n\t\t) {\n\t\t\tthis.mediaType = 'videos';\n\t\t}\n\n\t\tthis.mediaCollectionViewType = options.mediaCollectionViewType || 'grid';\n\n\t\tif (options.excludeVideoIds && options.mediaCollectionViewType === 'libraryPlaylists') {\n\t\t\tthis.excludeVideoIds = options.excludeVideoIds;\n\t\t}\n\n\t\tif (options.videoIds && !models) {\n\t\t\tthis.mediaType = 'videos';\n\t\t\tthis.videoIds = options.videoIds;\n\t\t\tthis.fetch();\n\t\t} else if (options.mediaType !== 'playlists') {\n\t\t\tthis.mediaType = 'videos';\n\t\t\tthis.fetch();\n\t\t}\n\n\t\tthis.mediaType = options.mediaType;\n\n\t\tif (this.mediaType === 'videos') {\n\t\t\tthis.listenTo(wpbc.broadcast, 'uploader:uploadedFileDetails', function (video) {\n\t\t\t\t// Add the newly uploaded file\n\t\t\t\tthis.add(video, { at: 0 });\n\t\t\t});\n\t\t}\n\n\t\tthis.activeAccount = options.activeAccount || 'all';\n\t\tthis.searchTerm = options.searchTerm || '';\n\t\tthis.dates = options.dates || 'all';\n\t\tthis.tag = options.tag || '';\n\t\tthis.folderId = options.folderId || '';\n\t\tthis.oldFolderId = options.oldFolderId || '';\n\t\tthis.labelPath = options.labelPath || '';\n\t\tthis.oldLabelPath = options.oldLabelPath || '';\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:activeAccount', function (accountId) {\n\t\t\tthis.activeAccount = accountId;\n\t\t\twp.heartbeat.enqueue('brightcove_heartbeat', { accountId: accountId }, true);\n\t\t\tthis.fetch();\n\t\t});\n\n\t\t$(document).on('heartbeat-tick.brightcove_heartbeat', function (event, data) {\n\t\t\tif (data.hasOwnProperty('brightcove_heartbeat')) {\n\t\t\t\twp.heartbeat.enqueue(\n\t\t\t\t\t'brightcove_heartbeat',\n\t\t\t\t\t{ accountId: data.brightcove_heartbeat.account_id },\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:searchTerm', function (searchTerm) {\n\t\t\tthis.searchTerm = searchTerm;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:tag', function (tag) {\n\t\t\tif (tag === 'all') {\n\t\t\t\ttag = '';\n\t\t\t}\n\n\t\t\tthis.tag = tag;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:folder', function (folderId) {\n\t\t\tthis.oldFolderId = this.folderId;\n\n\t\t\tif (folderId === 'all') {\n\t\t\t\tfolderId = '';\n\t\t\t}\n\n\t\t\tthis.folderId = folderId;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:label', function (labelPath) {\n\t\t\tthis.oldLabelPath = this.labelPath;\n\n\t\t\tif (labelPath === 'all') {\n\t\t\t\tlabelPath = '';\n\t\t\t}\n\n\t\t\tthis.labelPath = labelPath;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:stateChanged', function (state) {\n\t\t\tthis.oldState = this.state;\n\t\t\tthis.state = state;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:date', function (date) {\n\t\t\tthis.date = date;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'tabChange', function (settings) {\n\t\t\tthis.killPendingRequests();\n\t\t\tif (settings.mediaType !== this.mediaType) {\n\t\t\t\tthis.mediaType = settings.mediaType;\n\t\t\t\tvar preload = wpbc.preload[this.mediaType];\n\t\t\t\tvar model;\n\t\t\t\t// Remove all models from the collection\n\t\t\t\twhile ((model = this.first())) {\n\t\t\t\t\tthis.remove(model);\n\t\t\t\t}\n\t\t\t\tif (preload !== undefined) {\n\t\t\t\t\tthis.add(preload);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fetch();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tkillPendingRequests: function () {\n\t\t// Kill all pending requests\n\t\t_.each(wpbc.requests, function (request) {\n\t\t\trequest.abort();\n\t\t});\n\n\t\twpbc.requests = [];\n\t},\n\n\tchecksum: function (object) {\n\t\tif (!_.isString(object)) {\n\t\t\tif (_.isFunction(object.toJSON)) {\n\t\t\t\tobject = object.toJSON();\n\t\t\t} else {\n\t\t\t\tobject = JSON.stringify(object);\n\t\t\t}\n\t\t}\n\t\tvar checksum = 0x12345678;\n\n\t\tfor (var i = 0; i < object.length; i++) {\n\t\t\tchecksum += object.charCodeAt(i) * (i + 1);\n\t\t}\n\n\t\treturn checksum;\n\t},\n\n\t/**\n\t * Overrides Backbone.Collection.sync\n\t *\n\t * @param {String} method\n\t * @param {Backbone.Model} model\n\t * @param {Object} [options={}]\n\t * @returns {Promise}\n\t */\n\tsync: function (method, model, options) {\n\t\tvar args, fallback;\n\n\t\t// Overload the read method so Media.fetch() functions correctly.\n\t\tif (method === 'read') {\n\t\t\toptions = options || {};\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taction: 'bc_media_query',\n\t\t\t\taccount: this.activeAccount || wpbc.preload.defaultAccountId,\n\t\t\t\tdates: this.date,\n\t\t\t\tposts_per_page: wpbc.posts_per_page,\n\t\t\t\tpage_number: this.pageNumber,\n\t\t\t\tnonce: wpbc.preload.nonce,\n\t\t\t\tsearch: this.searchTerm,\n\t\t\t\ttags: this.tag,\n\t\t\t\tlabels: this.labels,\n\t\t\t\tlabelPath: this.labelPath,\n\t\t\t\toldLabelPath: this.oldLabelPath,\n\t\t\t\toldFolderId: this.oldFolderId,\n\t\t\t\tfolderId: this.folderId,\n\t\t\t\tstate: this.state,\n\t\t\t\toldState: this.oldState,\n\t\t\t\ttagName: wpbc.preload.tags[this.tag],\n\t\t\t\ttype: this.mediaType || 'videos',\n\t\t\t});\n\n\t\t\tvar previousRequest = _.pick(\n\t\t\t\toptions.data,\n\t\t\t\t'account',\n\t\t\t\t'dates',\n\t\t\t\t'posts_per_page',\n\t\t\t\t'search',\n\t\t\t\t'tags',\n\t\t\t\t'type',\n\t\t\t\t'folderId',\n\t\t\t\t'tagName',\n\t\t\t\t'state',\n\t\t\t);\n\n\t\t\t// Determine if we're infinite scrolling or not.\n\t\t\tthis.additionalRequest = _.isEqual(previousRequest, wpbc.previousRequest);\n\t\t\tif (!this.additionalRequest) {\n\t\t\t\toptions.data.page_number = 1;\n\t\t\t}\n\t\t\t/* Prevent reloading on the playlist edit as the playlist videos are one request and library videos another */\n\t\t\tif (this.mediaCollectionViewType !== 'existingPlaylists') {\n\t\t\t\twpbc.previousRequest = previousRequest;\n\t\t\t}\n\n\t\t\tif (this.videoIds) {\n\t\t\t\toptions.data.videoIds = this.videoIds.length ? this.videoIds : 'none';\n\t\t\t}\n\n\t\t\toptions.data.query = args;\n\n\t\t\tif (\n\t\t\t\t!_.contains(['libraryPlaylists', 'existingPlaylists'], this.mediaCollectionViewType)\n\t\t\t) {\n\t\t\t\tthis.killPendingRequests();\n\t\t\t}\n\n\t\t\tvar requestChecksum = this.checksum(options.data);\n\n\t\t\tif (!_.isUndefined(wpbc.responses[requestChecksum])) {\n\t\t\t\tthis.parse({ data: wpbc.responses[requestChecksum] }, 'cached');\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tvar request = $.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: wp.ajax.settings.url,\n\t\t\t\tcontext: this,\n\t\t\t\tdata: options.data,\n\t\t\t})\n\t\t\t\t.done(function (response, status, request) {\n\t\t\t\t\tthis.parse(response, status, request, requestChecksum);\n\t\t\t\t})\n\t\t\t\t.fail(this.fetchFail);\n\n\t\t\twpbc.requests.push(request);\n\t\t\twpbc.broadcast.trigger('spinner:on');\n\n\t\t\treturn request;\n\n\t\t\t// Otherwise, fall back to Backbone.sync()\n\t\t}\n\t\t/**\n\t\t * Call wp.media.model.MediaCollection.sync or Backbone.sync\n\t\t */\n\t\tfallback = MediaCollection.prototype.sync ? MediaCollection.prototype : Backbone;\n\t\treturn fallback.sync.apply(this, arguments);\n\t},\n\n\tfetchFail: function () {\n\t\tif (this.pageNumber > 1) {\n\t\t\tthis.pageNumber--;\n\t\t}\n\t\twpbc.broadcast.trigger('fetch:finished');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t\twpbc.broadcast.trigger('fetch:apiError');\n\t\tif (status === 'abort') {\n\t\t}\n\t},\n\n\t/**\n\t * A custom AJAX-response parser.\n\t *\n\t * See trac ticket #24753\n\t *\n\t * @param {Object|Array} resp The raw response Object/Array.\n\t * @param {Object} xhr\n\t * @returns {Array} The array of model attributes to be added to the\n\t * collection\n\t */\n\tparse: function (response, status, request, checksum) {\n\t\twpbc.broadcast.trigger('fetch:finished');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t\tif (\n\t\t\t!_.contains(['success', 'cached'], status) ||\n\t\t\t(status !== 'cached' && !response.success)\n\t\t) {\n\t\t\twpbc.broadcast.trigger('fetch:apiError');\n\t\t\treturn false;\n\t\t}\n\n\t\tvar data = response.data;\n\n\t\tif (status === 'success') {\n\t\t\twpbc.responses[checksum] = data;\n\t\t}\n\n\t\tif (data === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!_.isArray(data)) {\n\t\t\tdata = [data];\n\t\t}\n\n\t\t/**\n\t\t * In playlist video search, we remove the videos that already exist in\n\t\t * the playlist.\n\t\t */\n\t\tif (_.isArray(this.excludeVideoIds)) {\n\t\t\t_.each(this.excludeVideoIds, function (videoId) {\n\t\t\t\tdata = _.without(data, _.findWhere(data, { id: videoId }));\n\t\t\t});\n\t\t}\n\n\t\tif (data.length === 0) {\n\t\t\twpbc.broadcast.trigger('videoEdit:message', 'No videos found.', 'error', true);\n\t\t}\n\n\t\tvar allMedia = _.map(\n\t\t\tdata,\n\t\t\tfunction (attrs) {\n\t\t\t\tvar id, media, newAttributes;\n\n\t\t\t\tif (attrs instanceof Backbone.Model) {\n\t\t\t\t\tid = attrs.get('id');\n\t\t\t\t\tattrs = attrs.attributes;\n\t\t\t\t} else {\n\t\t\t\t\tid = attrs.id;\n\t\t\t\t}\n\n\t\t\t\tmedia = this.findWhere({ id: id });\n\t\t\t\tif (!media) {\n\t\t\t\t\tmedia = this.add(attrs);\n\t\t\t\t} else {\n\t\t\t\t\tnewAttributes = media.parse(attrs);\n\n\t\t\t\t\tif (!_.isEqual(media.attributes, newAttributes)) {\n\t\t\t\t\t\tmedia.set(newAttributes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tmedia.set('viewType', this.mediaCollectionViewType);\n\t\t\t\treturn media;\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\tif (this.additionalRequest) {\n\t\t\tthis.add(allMedia);\n\t\t} else {\n\t\t\tthis.set(allMedia);\n\t\t}\n\t},\n});\n","var BrightcoveMediaManagerModel = Backbone.Model.extend({\n\tdefaults: {\n\t\tview: 'grid',\n\t\tdate: 'all',\n\t\ttags: 'all',\n\t\ttype: null, // enum[playlist, video]\n\t\tpreload: true,\n\t\tsearch: '',\n\t\taccount: wpbc.preload.defaultAccountId,\n\t\tposter: {},\n\t\tthumbnail: {},\n\t},\n\tinitialize: function (options) {\n\t\t_.defaults(options, this.defaults);\n\n\t\twp.heartbeat.enqueue(\n\t\t\t'brightcove_heartbeat',\n\t\t\t{ accountId: wpbc.preload.defaultAccountId },\n\t\t\ttrue,\n\t\t);\n\n\t\tvar collection = new MediaCollection([], { mediaType: options.mediaType });\n\t\tcollection.reset();\n\t\t/* Prevent empty element from living in our collection */\n\n\t\tif (options.preload && options.preload.length) {\n\t\t\tcollection.add(options.preload);\n\t\t}\n\n\t\toptions.preload = !!options.preload; // Whether or not a preload var was present.\n\n\t\tthis.set('media-collection-view', new MediaCollectionView({ collection: collection }));\n\t\tthis.set('options', options);\n\t},\n});\n","/**\n * Media model for Media CPT\n */\n\nvar BrightcoveModalModel = Backbone.Model.extend({\n\tgetMediaManagerSettings: function () {\n\t\tvar tab = this.get('tab');\n\t\tvar settings = {\n\t\t\tupload: {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'videos',\n\t\t\t\tmode: 'uploader',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t\tposter: {},\n\t\t\t\tthumbnail: {},\n\t\t\t},\n\t\t\tvideos: {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'videos',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t\tplaylists: {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'playlists',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t\t'video-experience': {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'videoexperience',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t\t'playlist-experience': {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'playlistexperience',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t};\n\n\t\tif (undefined !== settings[tab]) {\n\t\t\treturn settings[tab];\n\t\t}\n\t\treturn false;\n\t},\n});\n","/**\n * Collection model to contain pending uploads\n */\n\nvar UploadModelCollection = Backbone.Collection.extend({\n\tinitialize: function (options) {\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:queuedFilesAdded', this.queuedFilesAdded);\n\t},\n\n\tqueuedFilesAdded: function (queuedFiles) {\n\t\t_.each(\n\t\t\tqueuedFiles,\n\t\t\tfunction (queuedFile) {\n\t\t\t\tthis.add(new UploadModel(queuedFile));\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\t},\n});\n","/**\n * Model to contain pending upload\n */\n\nvar UploadModel = Backbone.Model.extend({\n\tinitialize: function (options) {},\n\n\thumanReadableSize: function () {\n\t\tvar bytes = this.get('size');\n\t\tif (bytes === 0) {\n\t\t\treturn '0 Byte';\n\t\t}\n\t\tvar k = 1000;\n\t\tvar sizes = ['Bytes', 'KB', 'MB', 'GB'];\n\t\tvar i = Math.floor(Math.log(bytes) / Math.log(k));\n\t\treturn (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];\n\t},\n});\n","var BrightcoveView = wp.Backbone.View.extend({\n\tsubviews: null,\n\n\tregisterSubview: function (view) {\n\t\tthis.subviews = this.subviews || [];\n\t\tthis.subviews.push(view);\n\t},\n\n\tremove: function () {\n\t\t_.invoke(this.subviews, 'remove');\n\t\twp.Backbone.View.prototype.remove.call(this);\n\t},\n\n\tinsertShortcode: function () {\n\t\tif (!this.model) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar shortcode = wpbc.shortcode;\n\n\t\tif (undefined === this.mediaType) {\n\t\t\tvar template = wp.template('brightcove-mediatype-notice');\n\n\t\t\t// Throw a notice to the user that the file is not the correct format\n\t\t\t$('#lost-connection-notice').before(template);\n\n\t\t\t// Allow the user to dismiss the notice\n\t\t\t$('#js-mediatype-dismiss').on('click', function () {\n\t\t\t\t$('#js-mediatype-notice')\n\t\t\t\t\t.first()\n\t\t\t\t\t.fadeOut(500, function () {\n\t\t\t\t\t\t$(this).remove();\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tif (wpbc.modal.target === 'content') {\n\t\t\twindow.send_to_editor(shortcode);\n\t\t} else {\n\t\t\t$(wpbc.modal.target).val(shortcode);\n\t\t\t$(wpbc.modal.target).change();\n\t\t}\n\n\t\twpbc.broadcast.trigger('close:modal');\n\t},\n});\n","/**\n * This is the toolbar to handle sorting, filtering, searching and grid/list\n * view toggles. State is captured in the brightcove-media-manager model.\n */\nvar ToolbarView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'media-toolbar wp-filter',\n\ttemplate: wp.template('brightcove-media-toolbar'),\n\n\tevents: {\n\t\t'click .view-list': 'toggleList',\n\t\t'click .view-grid': 'toggleGrid',\n\t\t'click .brightcove-toolbar': 'toggleToolbar',\n\t\t'change .brightcove-media-source': 'sourceChanged',\n\t\t'change .brightcove-media-dates': 'datesChanged',\n\t\t'change .brightcove-media-tags': 'tagsChanged',\n\t\t'change .brightcove-media-folders': 'foldersChanged',\n\t\t'change .brightcove-media-labels': 'labelsChanged',\n\t\t'change .brightcove-empty-playlists': 'emptyPlaylistsChanged',\n\t\t'change .brightcove-media-state-filters': 'stateChanged',\n\t\t'click #media-search': 'searchHandler',\n\t\t'keyup .search': 'enterHandler',\n\t\t'input #media-search-input': 'handleEmptySearchInput',\n\t},\n\n\trender: function () {\n\t\tvar mediaType = this.model.get('mediaType');\n\t\tvar options = {\n\t\t\taccounts: wpbc.preload.accounts,\n\t\t\tdates: {},\n\t\t\tmediaType: mediaType,\n\t\t\ttags: wpbc.preload.tags,\n\t\t\tfolders: wpbc.preload.folders,\n\t\t\tlabels: wpbc.preload.labels,\n\t\t\tlabelPath: this.model.get('labelPath'),\n\t\t\tfolderId: this.model.get('folderId'),\n\t\t\taccount: this.model.get('account'),\n\t\t};\n\n\t\tvar dates = wpbc.preload.dates;\n\t\tvar date_var = this.model.get('date');\n\t\t/* @todo: find out if this is working */\n\t\tif (\n\t\t\tdates !== undefined &&\n\t\t\tdates[mediaType] !== undefined &&\n\t\t\tdates[mediaType][date_var] !== undefined\n\t\t) {\n\t\t\toptions.dates = dates[mediaType][date_var];\n\t\t}\n\n\t\tthis.$el.html(this.template(options));\n\t\tvar spinner = this.$el.find('.spinner');\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:on', function () {\n\t\t\tspinner.addClass('is-active').removeClass('hidden');\n\t\t});\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:off', function () {\n\t\t\tspinner.removeClass('is-active').addClass('hidden');\n\t\t});\n\t},\n\n\t// List view Selected\n\ttoggleList: function () {\n\t\tthis.trigger('viewType', 'list');\n\t\tthis.$el.find('.view-list').addClass('current');\n\t\tthis.$el.find('.view-grid').removeClass('current');\n\t},\n\n\t// Grid view Selected\n\ttoggleGrid: function () {\n\t\tthis.trigger('viewType', 'grid');\n\t\tthis.$el.find('.view-grid').addClass('current');\n\t\tthis.$el.find('.view-list').removeClass('current');\n\t},\n\n\t// Toggle toolbar help\n\ttoggleToolbar: function () {\n\t\tvar template = wp.template('brightcove-tooltip-notice');\n\n\t\t// Throw a notice to the user that the file is not the correct format\n\t\t$('.brightcove.media-frame-router').before(template);\n\t\t// Allow the user to dismiss the notice\n\t\t$('#js-tooltip-dismiss').on('click', function () {\n\t\t\t$('#js-tooltip-notice')\n\t\t\t\t.first()\n\t\t\t\t.fadeOut(500, function () {\n\t\t\t\t\t$(this).remove();\n\t\t\t\t});\n\t\t});\n\t},\n\n\t// Brightcove source changed\n\tsourceChanged: function (event) {\n\t\t// Store the currently selected account on the model.\n\t\tthis.model.set('account', event.target.value);\n\t\twpbc.broadcast.trigger('change:activeAccount', event.target.value);\n\t\t// Update wpbc object for later use on upload-details.js\n\t\twpbc.preload.defaultAccountId = event.target.value;\n\t\twpbc.preload.defaultAccount =\n\t\t\tevent.target.options[event.target.selectedIndex].getAttribute('data-hash');\n\t},\n\n\tdatesChanged: function (event) {\n\t\twpbc.broadcast.trigger('change:date', event.target.value);\n\t},\n\n\ttagsChanged: function (event) {\n\t\twpbc.broadcast.trigger('change:tag', event.target.value);\n\t},\n\n\tfoldersChanged: function (event) {\n\t\tthis.model.set('oldFolderId', this.model.get('folderId'));\n\t\tthis.model.set('folderId', event.target.value);\n\t\twpbc.broadcast.trigger('change:folder', event.target.value);\n\t},\n\n\tlabelsChanged: function (event) {\n\t\tthis.model.set('oldLabelPath', this.model.get('labelPath'));\n\t\tthis.model.set('labelPath', event.target.value);\n\t\twpbc.broadcast.trigger('change:label', event.target.value);\n\t},\n\n\temptyPlaylistsChanged: function (event) {\n\t\tvar emptyPlaylists = $(event.target).prop('checked');\n\t\twpbc.broadcast.trigger('change:emptyPlaylists', emptyPlaylists);\n\t},\n\n\tenterHandler: function (event) {\n\t\tif (event.keyCode === 13) {\n\t\t\tthis.searchHandler(event);\n\t\t}\n\t},\n\n\thandleEmptySearchInput: function (event) {\n\t\tif (this.model.get('search') && !event.target.value) {\n\t\t\tthis.model.set('search', '');\n\t\t\twpbc.broadcast.trigger('change:searchTerm', '');\n\t\t}\n\t},\n\n\tstateChanged: function (event) {\n\t\tthis.model.set('oldState', 'oldstate');\n\t\tthis.model.set('state', 'newstate');\n\t\twpbc.broadcast.trigger('change:stateChanged', event.target.value);\n\t},\n\n\tsearchHandler: function (event) {\n\t\tvar searchTerm = $('#media-search-input').val();\n\n\t\tif (searchTerm.length > 2 && searchTerm !== this.model.get('search')) {\n\t\t\tthis.model.set('search', searchTerm);\n\t\t\twpbc.broadcast.trigger('change:searchTerm', searchTerm);\n\t\t} else if (searchTerm.length === 0) {\n\t\t\twpbc.broadcast.trigger('change:searchTerm', '');\n\t\t}\n\t},\n});\n","var UploadVideoManagerView = BrightcoveView.extend({\n\tclassName: 'brightcove-file-uploader',\n\n\tevents: {\n\t\t'click .brightcove-start-upload': 'triggerUpload',\n\t},\n\n\tinitialize: function (options) {\n\t\t/**\n\t\t * If you're looking for the Plupload instance, you're in the wrong place, check the UploadWindowView\n\t\t */\n\t\tthis.collection = new UploadModelCollection();\n\t\tif (options) {\n\t\t\tthis.options = options;\n\n\t\t\tthis.successMessage = options.successMessage || this.successMessage;\n\t\t}\n\n\t\tthis.uploadWindow = new UploadWindowView();\n\n\t\tthis.listenTo(this.collection, 'add', this.fileAdded);\n\t\tthis.listenTo(wpbc.broadcast, 'pendingUpload:selectedItem', this.selectedItem);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:prepareUpload', this.prepareUpload);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:successMessage', this.successMessage);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:errorMessage', this.errorMessage);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:clear', this.resetUploads);\n\t\tthis.listenTo(wpbc.broadcast, 'upload:video', this.resetUploads);\n\t},\n\n\tresetUploads: function () {\n\t\twhile ((model = this.collection.first())) {\n\t\t\tthis.collection.remove(model);\n\t\t}\n\t},\n\n\terrorMessage: function (message) {\n\t\tthis.message(message, 'error');\n\t},\n\n\tsuccessMessage: function (message) {\n\t\tthis.message(message, 'success');\n\t},\n\n\tmessage: function (message, type) {\n\t\tvar messages = this.$el.find('.brightcove-messages');\n\t\tvar messageClasses = '';\n\t\tif (type === 'success') {\n\t\t\tmessageClasses = 'notice updated';\n\t\t} else if (type === 'error') {\n\t\t\tmessageClasses = 'error';\n\t\t}\n\t\tvar newMessage = $(\n\t\t\t'

',\n\t\t);\n\t\tmessages.append(newMessage);\n\t\tnewMessage.addClass(messageClasses).find('.message-text').text(message);\n\t\tnewMessage.delay(4000).fadeOut(500, function () {\n\t\t\t$(this).remove();\n\t\t\twpbc.broadcast.trigger('upload:video');\n\t\t});\n\t},\n\n\tprepareUpload: function () {\n\t\twpbc.uploads = wpbc.uploads || {};\n\t\tthis.collection.each(function (upload) {\n\t\t\twpbc.uploads[upload.get('id')] = {\n\t\t\t\taccount: upload.get('account'),\n\t\t\t\tname: upload.get('fileName'),\n\t\t\t\ttags: upload.get('tags'),\n\t\t\t};\n\t\t});\n\t\twpbc.broadcast.trigger('uploader:startUpload');\n\t},\n\n\tfileAdded: function (model, collection) {\n\t\t// Start upload triggers progress bars under every video.\n\t\t// Need to re-render when one model is added\n\t\tif (this.collection.length === 1) {\n\t\t\tthis.render();\n\t\t}\n\t\tvar pendingUpload = new UploadView({ model: model });\n\t\tpendingUpload.render();\n\t\tpendingUpload.$el.appendTo(this.$el.find('.brightcove-pending-uploads'));\n\t},\n\n\ttriggerUpload: function () {\n\t\twpbc.broadcast.trigger('uploader:prepareUpload');\n\t},\n\n\tselectedItem: function (model) {\n\t\tthis.uploadDetails = new UploadDetailsView({ model: model });\n\t\tthis.uploadDetails.render();\n\t\tthis.$el.find('.brightcove-pending-upload-details').remove();\n\t\tthis.uploadDetails.$el.appendTo(this.$el.find('.brightcove-upload-queued-files'));\n\t},\n\n\trender: function (options) {\n\t\tif (this.collection.length) {\n\t\t\tthis.template = wp.template('brightcove-uploader-queued-files');\n\t\t} else {\n\t\t\tthis.template = wp.template('brightcove-uploader-inline');\n\t\t\tthis.uploadWindow.render();\n\t\t\tthis.uploadWindow.$el.appendTo($('body'));\n\t\t}\n\t\tthis.$el.html(this.template(options));\n\t\tif (this.collection.length) {\n\t\t\tthis.$el.find('.brightcove-start-upload').show();\n\t\t} else {\n\t\t\tthis.$el.find('.brightcove-start-upload').hide();\n\t\t}\n\t},\n});\n","var BrightcoveRouter = Backbone.Router.extend({\n\troutes: {\n\t\t'add-new-brightcove-video': 'addNew',\n\t},\n\taddNew: function () {\n\t\twpbc.broadcast.trigger('upload:video');\n\t},\n});\n\nvar BrightcoveMediaManagerView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'brightcove-media',\n\n\tevents: {\n\t\t/*\n\t\t\t 'click .brightcove.media-button': 'insertIntoPost'\n\t\t\t */\n\t},\n\n\tscrollHandler: function () {\n\t\twpbc.broadcast.trigger('scroll:mediaGrid');\n\t},\n\n\tinitialize: function (options) {\n\t\tvar scrollRefreshSensitivity = wp.media.isTouchDevice ? 300 : 200;\n\t\tthis.scrollHandler = _.chain(this.scrollHandler)\n\t\t\t.bind(this)\n\t\t\t.throttle(scrollRefreshSensitivity)\n\t\t\t.value();\n\t\tthis.options = options;\n\t\tthis.mode = options.mode || 'manager';\n\n\t\toptions.preload = this.options.preload ? wpbc.preload[this.options.mediaType] : false;\n\n\t\tthis.model = new BrightcoveMediaManagerModel(options);\n\n\t\t/* Search and dropdowns */\n\t\tthis.toolbar = new ToolbarView({ model: this.model });\n\n\t\t/* Uploader View */\n\t\tthis.uploader = new UploadVideoManagerView();\n\n\t\tthis.model.set('accounts', wpbc.preload.accounts); // All accounts.\n\t\tthis.model.set('activeAccount', options.account); // Active account ID / All\n\n\t\tthis.listenTo(this.toolbar, 'viewType', function (viewType) {\n\t\t\tthis.model.set('view', viewType); // Set the model view type\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'videoEdit:message', this.message);\n\t\tthis.listenTo(wpbc.broadcast, 'permanent:message', this.permanentMessage);\n\n\t\tthis.listenTo(wpbc.broadcast, 'remove:permanentMessage', function () {\n\t\t\tif (wpbc.permanentMessage) {\n\t\t\t\twpbc.permanentMessage.remove();\n\t\t\t}\n\n\t\t\tthis.$el.find('.brightcove-message').addClass('hidden');\n\t\t});\n\n\t\t// We only care when a change occurs\n\t\tthis.listenTo(this.model, 'change:view', function (model, type) {\n\t\t\tthis.model.get('media-collection-view').setViewType(type);\n\t\t});\n\n\t\tthis.listenTo(this.model, 'change:mode', function (model, mode) {\n\t\t\tif (mode !== 'uploader') {\n\t\t\t\twpbc.broadcast.trigger('uploader:clear');\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'cancelPreview:media', function (settings) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.detailsView = undefined;\n\t\t\tthis.model.set('mode', 'manager');\n\t\t\tthis.render();\n\n\t\t\t// Disable \"Insert Into Post\" button since no video would be selected.\n\t\t\twpbc.broadcast.trigger('toggle:insertButton');\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:emptyPlaylists', function (hideEmptyPlaylists) {\n\t\t\tvar mediaCollectionView = this.model.get('media-collection-view');\n\t\t\tthis.model.set('mode', 'manager');\n\n\t\t\t_.each(mediaCollectionView.collection.models, function (playlistModel) {\n\t\t\t\t// Don't hide smart playlists. Only Manual playlists will have playlistType as 'EXPLICIT'.\n\t\t\t\tif (playlistModel.get('type') !== 'EXPLICIT') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Manual play list will have videos populated in video_ids. Empty playlists will have zero video_ids.\n\t\t\t\tif (playlistModel.get('video_ids').length === 0) {\n\t\t\t\t\tif (hideEmptyPlaylists) {\n\t\t\t\t\t\tplaylistModel.view.$el.hide();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tplaylistModel.view.$el.show();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'delete:successful', function (message) {\n\t\t\tthis.startGridView();\n\t\t\tthis.message(message, 'success');\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:activeAccount', function (accountId) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('activeAccount', accountId);\n\t\t\tthis.model.set('mode', 'manager');\n\t\t\tthis.render();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:tag', function (tag) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('tag', tag);\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:folder', function (folder) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('oldFolderId', this.model.get('folderId'));\n\t\t\tthis.model.set('folderId', folder);\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:label', function (labelPath) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('oldLabelPath', this.model.get('labelPath'));\n\t\t\tthis.model.set('labelPath', labelPath);\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:stateChanged', function (state) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('oldState', 'oldstate');\n\t\t\tthis.model.set('state', 'newstate');\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:date', function (date) {\n\t\t\tthis.clearPreview();\n\t\t\tthis.model.set('date', date);\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'upload:video', function () {\n\t\t\tthis.showUploader();\n\t\t});\n\n\t\tthis.listenTo(this.model, 'change:search', function (model, searchTerm) {\n\t\t\tthis.model.get('search');\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'start:gridview', function () {\n\t\t\t_.invoke(this.subviews, 'remove');\n\n\t\t\tthis.detailsView = null; // Prevent selected view from not being toggleable when we hit the back button on edit\n\n\t\t\tthis.startGridView();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'tabChange', function (settings) {\n\t\t\tthis.model.set(settings);\n\n\t\t\tif (this.detailsView instanceof MediaDetailsView) {\n\t\t\t\tthis.detailsView.remove();\n\n\t\t\t\tthis.detailsView = undefined;\n\t\t\t}\n\n\t\t\tthis.render();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'edit:media', function (model) {\n\t\t\tvar mediaType = this.model.get('mediaType');\n\n\t\t\tif (mediaType === 'videos') {\n\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\tif (this.model.get('mode') === 'editVideo') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// hide the previous notification\n\t\t\t\tvar messages = this.$el.find('.brightcove-message');\n\t\t\t\tmessages.addClass('hidden');\n\n\t\t\t\tthis.editView = new VideoEditView({ model: model });\n\n\t\t\t\tthis.registerSubview(this.editView);\n\t\t\t\tthis.model.set('mode', 'editVideo');\n\t\t\t\tthis.render();\n\t\t\t} else if (mediaType === 'videoexperience') {\n\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\tif (this.model.get('mode') === 'editVideo') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// hide the previous notification\n\t\t\t\tvar messages = this.$el.find('.brightcove-message');\n\t\t\t\tmessages.addClass('hidden');\n\n\t\t\t\tthis.editView = new VideoEditView({ model: model });\n\n\t\t\t\tthis.registerSubview(this.editView);\n\t\t\t\tthis.model.set('mode', 'editVideo');\n\t\t\t\tthis.render();\n\t\t\t} else {\n\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\tif (this.model.get('mode') === 'editPlaylist') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tthis.editView = new PlaylistEditView({ model: model });\n\n\t\t\t\tthis.registerSubview(this.editView);\n\t\t\t\tthis.model.set('mode', 'editPlaylist');\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'preview:media', function (model, shortcode) {\n\t\t\tvar mediaType = this.model.get('mediaType');\n\n\t\t\tif (mediaType === 'videos') {\n\t\t\t\t// We just hit the preview button with the preview window already open.\n\t\t\t\tif (this.model.get('mode') === 'previewVideo') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tthis.previewView = new VideoPreviewView({ model: model, shortcode: shortcode });\n\n\t\t\t\tthis.registerSubview(this.previewView);\n\t\t\t\tthis.model.set('mode', 'previewVideo');\n\t\t\t\tthis.render();\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * @todo: playlist preview view\n\t\t\t\t */\n\t\t\t\tthis.model.set('mode', 'editPlaylist');\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:searchTerm', function (mediaView) {\n\t\t\tthis.clearPreview();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'select:media', function (mediaView) {\n\t\t\t// Handle selection in the video experience tab.\n\t\t\tif (\n\t\t\t\tmediaView.model.collection &&\n\t\t\t\tmediaView.model.collection.mediaType === 'videoexperience'\n\t\t\t) {\n\t\t\t\t// Toggle the selected state.\n\t\t\t\tmediaView.$el.toggleClass('highlighted');\n\t\t\t\tmediaView.model.set('isSelected', mediaView.$el.hasClass('highlighted'));\n\n\t\t\t\t// Collect the selected models and extract their IDs.\n\t\t\t\tvar selected = _.filter(mediaView.model.collection.models, function (model) {\n\t\t\t\t\t\treturn model.get('isSelected');\n\t\t\t\t\t}),\n\t\t\t\t\tselectedIds = _.map(selected, function (model) {\n\t\t\t\t\t\treturn model.get('id');\n\t\t\t\t\t});\n\n\t\t\t\tthis.detailsView.model.set('id', selectedIds);\n\n\t\t\t\t// Clear the shortcode and disable insertion if no items are selected.\n\t\t\t\tif (_.isEmpty(selectedIds) && this.model.get('mediaType') !== 'videoexperience') {\n\t\t\t\t\twpbc.broadcast.trigger('toggle:insertButton');\n\t\t\t\t\t$('#shortcode').val('');\n\t\t\t\t} else {\n\t\t\t\t\t// Otherwise, enable insertion.\n\t\t\t\t\twpbc.broadcast.trigger('toggle:insertButton', 'enabled');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t/* If user selects same thumbnail they want to hide the details view */\n\t\t\t\tif (this.detailsView && this.detailsView.model === mediaView.model) {\n\t\t\t\t\tthis.detailsView.$el.toggle();\n\t\t\t\t\tmediaView.$el.toggleClass('highlighted');\n\t\t\t\t\tthis.model.get('media-collection-view').$el.toggleClass('menu-visible');\n\t\t\t\t\twpbc.broadcast.trigger('toggle:insertButton');\n\t\t\t\t} else {\n\t\t\t\t\tthis.clearPreview();\n\t\t\t\t\tthis.detailsView = new MediaDetailsView({\n\t\t\t\t\t\tmodel: mediaView.model,\n\t\t\t\t\t\tel: $('.brightcove.media-frame-menu'),\n\t\t\t\t\t\tmediaType: this.model.get('mediaType'),\n\t\t\t\t\t});\n\t\t\t\t\tthis.registerSubview(this.detailsView);\n\n\t\t\t\t\tthis.detailsView.render();\n\t\t\t\t\tthis.detailsView.$el.toggle(true); // Always show new view\n\n\t\t\t\t\tconst contentElement = $('.brightcove-modal .media-frame-content').first();\n\n\t\t\t\t\tif (contentElement.length) {\n\t\t\t\t\t\tconst maxTopValue =\n\t\t\t\t\t\t\t$('#brightcove-media-frame-content').outerHeight() -\n\t\t\t\t\t\t\tthis.detailsView.$el.outerHeight();\n\n\t\t\t\t\t\tlet topValue =\n\t\t\t\t\t\t\tcontentElement.scrollTop() -\n\t\t\t\t\t\t\t$('#brightcove-media-frame-router').outerHeight() +\n\t\t\t\t\t\t\t25;\n\n\t\t\t\t\t\tif (topValue > maxTopValue) {\n\t\t\t\t\t\t\ttopValue = maxTopValue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.detailsView.$el.css('top', topValue > 0 ? topValue : 0);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.model.get('media-collection-view').$el.addClass('menu-visible');\n\t\t\t\t\tmediaView.$el.addClass('highlighted');\n\t\t\t\t\twpbc.broadcast.trigger('toggle:insertButton', 'enabled');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Clear the preview view and remove highlighted class from previous\n\t * selected video.\n\t */\n\tclearPreview: function () {\n\t\tvar messages = $('.brightcove-message');\n\t\tmessages.addClass('hidden');\n\n\t\tif (this.detailsView instanceof MediaDetailsView) {\n\t\t\tthis.detailsView.remove();\n\t\t}\n\n\t\tthis.model.get('media-collection-view').$el.find('.highlighted').removeClass('highlighted');\n\t},\n\n\tstartGridView: function () {\n\t\tthis.model.set('mode', 'manager');\n\t\tthis.render();\n\t},\n\n\tmessage: function (message, type, permanent) {\n\t\tvar messages = this.$el.find('.brightcove-message');\n\n\t\tif (type === 'success') {\n\t\t\tmessages.addClass('updated');\n\t\t\tmessages.removeClass('error');\n\t\t} else if (type === 'error') {\n\t\t\tmessages.addClass('error');\n\t\t\tmessages.removeClass('updated');\n\t\t}\n\n\t\tvar newMessage = $('

');\n\t\tnewMessage.text(message);\n\n\t\tmessages.html(newMessage);\n\t\tmessages.removeClass('hidden');\n\n\t\tif (permanent) {\n\t\t\tif (wpbc.permanentMessage) {\n\t\t\t\twpbc.permanentMessage.remove();\n\t\t\t}\n\n\t\t\twpbc.permanentMessage = newMessage;\n\t\t} else {\n\t\t\t// Make the notice dismissable.\n\t\t\tmessages.addClass('notice is-dismissible');\n\t\t\tthis.makeNoticesDismissible();\n\t\t}\n\t\t$('html, body').animate({ scrollTop: 0 }, 'fast');\n\t},\n\n\t// Make notices dismissible, mimics core function, fades them empties.\n\tmakeNoticesDismissible: function () {\n\t\t$('.notice.is-dismissible').each(function () {\n\t\t\tvar $el = $(this),\n\t\t\t\t$button = $(\n\t\t\t\t\t'',\n\t\t\t\t),\n\t\t\t\tbtnText = commonL10n.dismiss || '';\n\n\t\t\t// Ensure plain text\n\t\t\t$button.find('.screen-reader-text').text(btnText);\n\t\t\t$button.on('click.wp-dismiss-notice', function (event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t$el.fadeTo(100, 0, function () {\n\t\t\t\t\t$el.slideUp(100, function () {\n\t\t\t\t\t\t$el.addClass('hidden')\n\t\t\t\t\t\t\t.css({\n\t\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\t'margin-bottom': 0,\n\t\t\t\t\t\t\t\tdisplay: '',\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.empty();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t$el.append($button);\n\t\t});\n\t},\n\n\tshowUploader: function () {\n\t\tthis.model.set('mode', 'uploader');\n\t\tthis.render();\n\t},\n\n\tpermanentMessage: function (message) {\n\t\tthis.message(message, 'error', true);\n\t},\n\n\trender: function () {\n\t\tvar options = this.model.get('options');\n\t\tvar contentContainer;\n\n\t\tvar mode = this.model.get('mode');\n\n\t\t// Nuke all registered subviews\n\t\t_.invoke(this.subviews, 'remove');\n\n\t\tif (mode === 'uploader') {\n\t\t\tthis.template = wp.template('brightcove-uploader-container');\n\n\t\t\tthis.$el.empty();\n\t\t\tthis.$el.html(this.template(options));\n\t\t\tthis.uploader.render();\n\t\t\tthis.uploader.delegateEvents();\n\t\t\tthis.uploader.$el.appendTo($('.brightcove-uploader'));\n\t\t} else if (mode === 'manager') {\n\t\t\tthis.template = wp.template('brightcove-media');\n\n\t\t\tthis.$el.html(this.template(options));\n\t\t\tthis.toolbar.render();\n\t\t\tthis.toolbar.delegateEvents();\n\t\t\tthis.toolbar.$el.show();\n\t\t\tthis.toolbar.$el.appendTo(this.$el.find('.media-frame-router'));\n\n\t\t\t// Add the Media views to the media manager\n\t\t\tvar mediaCollectionView = this.model.get('media-collection-view');\n\n\t\t\tmediaCollectionView.render();\n\t\t\tmediaCollectionView.delegateEvents();\n\n\t\t\tvar mediaCollectionContainer = this.$el.find('.media-frame-content');\n\n\t\t\tmediaCollectionContainer.on('scroll', this.scrollHandler);\n\t\t\tmediaCollectionView.$el.appendTo(mediaCollectionContainer);\n\n\t\t\tif (wpbc.initialSync) {\n\t\t\t\twpbc.broadcast.trigger('remove:permanentMessage');\n\t\t\t\twpbc.broadcast.trigger('permanent:message', wpbc.preload.messages.ongoingSync);\n\t\t\t}\n\t\t\tif (this.model.get('mediaType') === 'videoexperience') {\n\t\t\t\tthis.detailsView = new MediaDetailsView({\n\t\t\t\t\tmodel: new MediaModel(this.model.attributes),\n\t\t\t\t\tel: $('.brightcove.media-frame-menu'),\n\t\t\t\t\tmediaType: this.model.get('mediaType'),\n\t\t\t\t});\n\t\t\t\tthis.registerSubview(this.detailsView);\n\n\t\t\t\tthis.detailsView.render();\n\t\t\t\tthis.detailsView.$el.toggle(true); // Always show new view\n\t\t\t\twpbc.broadcast.trigger('toggle:insertButton', 'enabled');\n\t\t\t\tthis.model.get('media-collection-view').$el.addClass('menu-visible');\n\t\t\t}\n\t\t} else if (mode === 'editVideo') {\n\t\t\tthis.toolbar.$el.hide();\n\n\t\t\tcontentContainer = this.$el.find('.media-frame-content');\n\n\t\t\tcontentContainer.empty();\n\t\t\tthis.editView.render();\n\t\t\tthis.editView.delegateEvents();\n\t\t\tthis.editView.$el.appendTo(contentContainer);\n\t\t\tthis.$el.find('.brightcove.media-frame-content').addClass('edit-view');\n\t\t} else if (mode === 'editPlaylist') {\n\t\t\tthis.toolbar.$el.hide();\n\n\t\t\tcontentContainer = this.$el;\n\n\t\t\tcontentContainer.empty();\n\t\t\tcontentContainer.html('
');\n\n\t\t\tcontentContainer = contentContainer.find('.playlist-edit-container');\n\n\t\t\tthis.editView.render();\n\t\t\tthis.editView.delegateEvents();\n\t\t\tthis.editView.$el.appendTo(contentContainer);\n\t\t\tcontentContainer.addClass('playlist');\n\t\t} else if (mode === 'previewVideo') {\n\t\t\tthis.toolbar.$el.hide();\n\n\t\t\tcontentContainer = this.$el.find('.media-frame-content');\n\n\t\t\tcontentContainer.empty();\n\t\t\tthis.previewView.render();\n\t\t\tthis.detailsView.render({ detailsMode: 'preview' });\n\t\t\tthis.previewView.delegateEvents();\n\t\t\tthis.previewView.$el.appendTo(contentContainer);\n\t\t\tthis.$el.find('.brightcove.media-frame-toolbar').hide();\n\t\t\tbrightcove.createExperiences();\n\t\t}\n\n\t\tif (mode !== 'editPlaylist') {\n\t\t\tthis.$el.find('.media-frame-content').removeClass('playlist');\n\t\t}\n\n\t\treturn this;\n\t},\n});\n","var BrightcoveModalView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'media-modal brightcove',\n\ttemplate: wp.template('brightcove-media-modal'),\n\n\tevents: {\n\t\t'click .brightcove.media-menu-item': 'changeTab',\n\t\t'click .brightcove.media-button-insert': 'insertIntoPost',\n\t\t'click .media-modal-close': 'closeModal',\n\t\t'click .brightcove.save-sync': 'saveSync',\n\t\t'click .brightcove.button.back': 'back',\n\t},\n\n\tinitialize: function (options) {\n\t\tthis.model = new BrightcoveModalModel({ tab: options.tab });\n\t\tthis.brightcoveMediaManager = new BrightcoveMediaManagerView(\n\t\t\tthis.model.getMediaManagerSettings(),\n\t\t);\n\t\tthis.registerSubview(this.brightcoveMediaManager);\n\t\tthis.listenTo(wpbc.broadcast, 'toggle:insertButton', function (state) {\n\t\t\tthis.toggleInsertButton(state);\n\t\t});\n\t\tthis.listenTo(wpbc.broadcast, 'close:modal', this.closeModal);\n\t},\n\n\tsaveSync: function (evnt) {\n\t\t// This event is triggered when the \"Save and Sync Changes\" button is clicked from edit video screen.\n\t\twpbc.broadcast.trigger('save:media', evnt);\n\t},\n\n\tback: function (evnt) {\n\t\t// This event is triggered when the \"Back\" button is clicked from edit video screen.\n\t\twpbc.broadcast.trigger('back:editvideo', evnt);\n\t},\n\n\tinsertIntoPost: function (evnt) {\n\t\tevnt.preventDefault();\n\n\t\t// Exit if the 'button' is disabled.\n\t\tif ($(evnt.currentTarget).hasClass('disabled')) {\n\t\t\treturn;\n\t\t}\n\n\t\twpbc.shortcode = $('#shortcode').val();\n\n\t\t// Media Details will trigger the insertion since it's always active and contains\n\t\t// the model we're inserting\n\t\twpbc.broadcast.trigger('insert:shortcode');\n\t},\n\n\ttoggleInsertButton: function (state) {\n\t\tvar button = this.$el.find('.brightcove.media-button-insert'),\n\t\t\tprocessing = $('.attachment.highlighted').find('.processing').length;\n\n\t\tbutton.show();\n\n\t\tif (processing === 1) {\n\t\t\tbutton.attr('disabled', 'disabled');\n\t\t} else if (state === 'enabled') {\n\t\t\tbutton.removeAttr('disabled');\n\t\t} else if (state === 'disabled') {\n\t\t\tbutton.attr('disabled', 'disabled');\n\t\t} else if (undefined !== button.attr('disabled')) {\n\t\t\tbutton.removeAttr('disabled');\n\t\t} else {\n\t\t\tbutton.attr('disabled', 'disabled');\n\t\t}\n\t},\n\n\tchangeTab: function (event) {\n\t\tevent.preventDefault();\n\n\t\tif ($(event.target).hasClass('active')) {\n\t\t\treturn; // Clicking the already active tab\n\t\t}\n\t\t$(event.target).addClass('active');\n\t\tvar tab = _.without(event.target.classList, 'media-menu-item', 'brightcove')[0];\n\t\tvar tabs = ['videos', 'upload', 'playlists', 'video-experience', 'playlist-experience'];\n\t\t_.each(_.without(tabs, tab), function (otherTab) {\n\t\t\t$('.brightcove.media-menu-item.' + otherTab).removeClass('active');\n\t\t});\n\n\t\tif (_.contains(tabs, tab)) {\n\t\t\tthis.model.set('tab', tab);\n\t\t\twpbc.broadcast.trigger('spinner:off');\n\t\t\twpbc.broadcast.trigger('tabChange', this.model.getMediaManagerSettings());\n\t\t}\n\t},\n\n\tcloseModal: function (evnt) {\n\t\t// If we are in the editVideo mode, switch back to the video view.\n\t\tif (wpbc.modal.brightcoveMediaManager.model.get('mode') === 'editVideo') {\n\t\t\twpbc.broadcast.trigger('start:gridview');\n\t\t}\n\n\t\t// Exit if the container button is disabled.\n\t\tif (!_.isUndefined(evnt) && $(evnt.currentTarget).parent().hasClass('disabled')) {\n\t\t\treturn;\n\t\t}\n\t\tthis.$el.hide();\n\t\t$('body').removeClass('modal-open');\n\t},\n\n\tmessage: function (message) {\n\t\tvar messageContainer = this.$el.find('.brightcove-message');\n\t},\n\n\trender: function (options) {\n\t\tthis.$el.html(this.template(options));\n\n\t\tthis.brightcoveMediaManager.render();\n\t\tthis.brightcoveMediaManager.$el.appendTo(this.$el.find('.media-frame-content'));\n\n\t\tthis.listenTo(wpbc.broadcast, 'edit:media', function (model, mediaType) {\n\t\t\tif (mediaType === 'videos') {\n\t\t\t\t// When edit Video screen is opened, hide the \"Insert Into Post\" button and show video save button.\n\t\t\t\tthis.$el.find('.brightcove.button.save-sync').show();\n\t\t\t\tthis.$el.find('.brightcove.button.back').show();\n\t\t\t\tthis.$el.find('.brightcove.media-button-insert').hide();\n\t\t\t} else {\n\t\t\t\t// When edit playlist screen is opened, hide all the buttons.\n\t\t\t\tthis.$el.find('.brightcove.button.save-sync').hide();\n\t\t\t\tthis.$el.find('.brightcove.button.back').hide();\n\t\t\t\tthis.$el.find('.brightcove.media-button-insert').hide();\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'save:media back:editvideo start:gridView', function () {\n\t\t\tthis.$el.find('.brightcove.button.save-sync').hide();\n\t\t\tthis.$el.find('.brightcove.button.back').hide();\n\t\t\tthis.$el.find('.brightcove.media-button-insert').show();\n\t\t\twpbc.broadcast.trigger('toggle:insertButton');\n\t\t});\n\t},\n});\n","var MediaDetailsView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'media-details',\n\n\tattributes: function () {\n\t\treturn {\n\t\t\ttabIndex: 0,\n\t\t\trole: 'checkbox',\n\t\t\t'aria-label': this.model.get('title'),\n\t\t\t'aria-checked': false,\n\t\t\t'data-id': this.model.get('id'),\n\t\t};\n\t},\n\n\tevents: {\n\t\t'click .brightcove.edit.button': 'triggerEditMedia',\n\t\t'click .brightcove.preview.button': 'triggerPreviewMedia',\n\t\t'click .brightcove.back.button': 'triggerCancelPreviewMedia',\n\t\t'click .playlist-details input[name=\"embed-style\"]': 'togglePlaylistSizing',\n\t\t'change #aspect-ratio': 'toggleUnits',\n\t\t'change #pictureinpicture': 'togglePictureinpicture',\n\t\t'change .experience-details input[name=\"sizing\"],.experience-details input[name=\"embed-style\"]':\n\t\t\t'toggleExperienceUnits',\n\t\t'change #video-player, #autoplay, #pictureinpicture, #playsinline, #mute, input[name=\"embed-style\"], input[name=\"sizing\"], #aspect-ratio, #width, #height':\n\t\t\t'generateShortcode',\n\t\t'change #generate-shortcode': 'toggleShortcodeGeneration',\n\t},\n\n\ttriggerEditMedia: function (event) {\n\t\tevent.preventDefault();\n\t\twpbc.broadcast.trigger('edit:media', this.model, this.mediaType);\n\t},\n\n\ttriggerPreviewMedia: function (event) {\n\t\tevent.preventDefault();\n\t\tvar shortcode = $('#shortcode').val();\n\t\twpbc.broadcast.trigger('preview:media', this.model, shortcode);\n\t},\n\n\ttriggerCancelPreviewMedia: function (event) {\n\t\twpbc.broadcast.trigger('cancelPreview:media', this.mediaType);\n\t},\n\n\ttogglePlaylistSizing: function (event) {\n\t\tvar embedStyle = $('.playlist-details input[name=\"embed-style\"]:checked').val(),\n\t\t\t$sizing = $('#sizing-fixed, #sizing-responsive');\n\n\t\tif (embedStyle === 'iframe') {\n\t\t\t$sizing.removeAttr('disabled');\n\t\t} else {\n\t\t\t$sizing.attr('disabled', true);\n\t\t}\n\t},\n\n\ttoggleUnits: function (event) {\n\t\tvar value = $('#aspect-ratio').val();\n\n\t\tif (value === 'custom') {\n\t\t\t$('#height').removeAttr('readonly');\n\t\t} else {\n\t\t\tvar $height = $('#height'),\n\t\t\t\twidth = $('#width').val();\n\n\t\t\t$height.attr('readonly', true);\n\n\t\t\tif (width > 0) {\n\t\t\t\tif (value === '16:9') {\n\t\t\t\t\t$height.val(width / (16 / 9));\n\t\t\t\t} else {\n\t\t\t\t\t$height.val(width / (4 / 3));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\ttogglePictureinpicture: function (event) {\n\t\tvar $iframeRadioButton = $('#embed-style-iframe'),\n\t\t\t$pictureinpicture_checked = $('#pictureinpicture').is(':checked');\n\n\t\tif ($pictureinpicture_checked) {\n\t\t\t$iframeRadioButton.prop('checked', false);\n\t\t\t$iframeRadioButton.attr('disabled', true);\n\t\t} else {\n\t\t\t$iframeRadioButton.attr('disabled', false);\n\t\t}\n\t},\n\n\ttoggleExperienceUnits: function (event) {\n\t\tvar $sizingField = $('input[name=\"sizing\"]:checked');\n\t\tvar $sizing = $sizingField.val();\n\t\tvar $embedStyle = $('input[name=\"embed-style\"]:checked').val();\n\t\tvar $height = $('#height');\n\t\tvar $width = $('#width');\n\t\tvar $inputSizing = $('input[name=\"sizing\"]');\n\t\tvar $sizingDiv = $('.embed-sizing-div');\n\n\t\t$height.removeAttr('readonly');\n\t\t$width.removeAttr('readonly');\n\t\t$sizingField.show();\n\t\t$sizingDiv.show();\n\n\t\tif ($sizing === 'responsive' && $embedStyle === 'javascript') {\n\t\t\t$height.attr('readonly', true);\n\t\t} else if ($sizing === 'fixed' && $embedStyle === 'javascript') {\n\t\t\t$height.removeAttr('readonly');\n\t\t\t$width.removeAttr('readonly');\n\t\t} else {\n\t\t\t$inputSizing.attr('checked', false);\n\t\t\t$('#sizing-fixed').attr('checked', true);\n\t\t\t$sizingDiv.hide();\n\t\t}\n\t},\n\n\tgenerateShortcode: function () {\n\t\tswitch (this.mediaType) {\n\t\t\tcase 'videos':\n\t\t\t\tthis.generateVideoShortcode();\n\t\t\t\tbreak;\n\t\t\tcase 'videoexperience':\n\t\t\t\tthis.generateExperienceShortcode();\n\t\t\t\tbreak;\n\t\t\tcase 'playlistexperience':\n\t\t\t\tthis.generatePlaylistExperienceShortcode();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.generatePlaylistShortcode();\n\t\t}\n\t},\n\n\tgenerateVideoShortcode: function () {\n\t\tvar videoId = this.model.get('id').replace(/\\D/g, ''),\n\t\t\taccountId = this.model.get('account_id').replace(/\\D/g, ''),\n\t\t\tplayerId = $('#video-player').val(),\n\t\t\tautoplay = $('#autoplay').is(':checked') ? 'autoplay' : '',\n\t\t\tplaysinline = $('#playsinline').is(':checked') ? 'playsinline' : '',\n\t\t\tpictureinpicture = $('#pictureinpicture').is(':checked') ? 'pictureinpicture' : '',\n\t\t\tmute = $('#mute').is(':checked') ? 'muted' : '',\n\t\t\tembedStyle = $('input[name=\"embed-style\"]:checked').val(),\n\t\t\tsizing = $('input[name=\"sizing\"]:checked').val(),\n\t\t\taspectRatio = $('#aspect-ratio').val(),\n\t\t\tpaddingTop = '',\n\t\t\twidth = $('#width').val(),\n\t\t\theight = $('#height').val(),\n\t\t\tunits = 'px',\n\t\t\tminWidth = '0px',\n\t\t\tmaxWidth = width + units,\n\t\t\tshortcode;\n\n\t\tif (aspectRatio === '16:9') {\n\t\t\tpaddingTop = '56';\n\t\t} else if (aspectRatio === '4:3') {\n\t\t\tpaddingTop = '75';\n\t\t} else {\n\t\t\tpaddingTop = (height / width) * 100;\n\t\t}\n\n\t\tif (sizing === 'responsive') {\n\t\t\twidth = '100%';\n\t\t\theight = '100%';\n\t\t} else {\n\t\t\twidth += units;\n\t\t\theight += units;\n\n\t\t\tif (embedStyle === 'iframe') {\n\t\t\t\tminWidth = width;\n\t\t\t}\n\t\t}\n\n\t\tshortcode =\n\t\t\t'[bc_video video_id=\"' +\n\t\t\tvideoId +\n\t\t\t'\" account_id=\"' +\n\t\t\taccountId +\n\t\t\t'\" player_id=\"' +\n\t\t\tplayerId +\n\t\t\t'\" ' +\n\t\t\t'embed=\"' +\n\t\t\tembedStyle +\n\t\t\t'\" padding_top=\"' +\n\t\t\tpaddingTop +\n\t\t\t'%\" autoplay=\"' +\n\t\t\tautoplay +\n\t\t\t'\" ' +\n\t\t\t'min_width=\"' +\n\t\t\tminWidth +\n\t\t\t'\" playsinline=\"' +\n\t\t\tplaysinline +\n\t\t\t'\" picture_in_picture=\"' +\n\t\t\tpictureinpicture +\n\t\t\t'\" max_width=\"' +\n\t\t\tmaxWidth +\n\t\t\t'\" ' +\n\t\t\t'mute=\"' +\n\t\t\tmute +\n\t\t\t'\" width=\"' +\n\t\t\twidth +\n\t\t\t'\" height=\"' +\n\t\t\theight +\n\t\t\t'\"' +\n\t\t\t' ]';\n\n\t\t$('#shortcode').val(shortcode);\n\t},\n\tgenerateExperienceShortcode: function () {\n\t\tvar videoIds, accountId;\n\t\tif (typeof this.model.get('id') !== 'undefined') {\n\t\t\tthis.model.set('account_id', this.model.get('account'));\n\t\t\tvideoIds = this.model.get('id').join(',');\n\t\t\taccountId = this.model.get('account_id').replace(/\\D/g, '');\n\t\t} else {\n\t\t\tvideoIds = '';\n\t\t\taccountId = document.getElementById('brightcove-media-source').value;\n\t\t}\n\n\t\tvar experienceId = $('#video-player').val(),\n\t\t\tembedStyle = $('input[name=\"embed-style\"]:checked').val(),\n\t\t\tsizing = $('input[name=\"sizing\"]:checked').val(),\n\t\t\twidth = $('#width').val(),\n\t\t\theight = $('#height').val(),\n\t\t\tunits = 'px',\n\t\t\tminWidth = '0px',\n\t\t\tmaxWidth = width + units,\n\t\t\tshortcode;\n\n\t\tif (sizing === 'responsive') {\n\t\t\twidth = '100%';\n\t\t\theight = '100%';\n\t\t} else {\n\t\t\twidth += units;\n\t\t\theight += units;\n\n\t\t\tif (embedStyle === 'iframe') {\n\t\t\t\tminWidth = width;\n\t\t\t}\n\t\t}\n\n\t\tshortcode =\n\t\t\t'[bc_experience experience_id=\"' +\n\t\t\texperienceId +\n\t\t\t'\" account_id=\"' +\n\t\t\taccountId +\n\t\t\t'\" ' +\n\t\t\t'embed=\"' +\n\t\t\tembedStyle +\n\t\t\t'\" min_width=\"' +\n\t\t\tminWidth +\n\t\t\t'\" max_width=\"' +\n\t\t\tmaxWidth +\n\t\t\t'\" ' +\n\t\t\t'width=\"' +\n\t\t\twidth +\n\t\t\t'\" height=\"' +\n\t\t\theight +\n\t\t\t'\" ' +\n\t\t\t'video_ids=\"' +\n\t\t\tvideoIds +\n\t\t\t'\" ' +\n\t\t\t' ]';\n\n\t\t$('#shortcode').val(shortcode);\n\t},\n\n\tgeneratePlaylistShortcode: function () {\n\t\tvar playlistId = this.model.get('id').replace(/\\D/g, ''),\n\t\t\taccountId = this.model.get('account_id').replace(/\\D/g, ''),\n\t\t\tplayerId = $('#video-player').val() || 'default',\n\t\t\tautoplay = $('#autoplay').is(':checked') ? 'autoplay' : '',\n\t\t\tplaysinline = $('#playsinline').is(':checked') ? 'playsinline' : '',\n\t\t\tmute = $('#mute').is(':checked') ? 'muted' : '',\n\t\t\tembedStyle = $('input[name=\"embed-style\"]:checked').val(),\n\t\t\tsizing = $('input[name=\"sizing\"]:checked').val(),\n\t\t\taspectRatio = $('#aspect-ratio').val(),\n\t\t\tpaddingTop = '',\n\t\t\twidth = $('#width').val(),\n\t\t\theight = $('#height').val(),\n\t\t\tunits = 'px',\n\t\t\tminWidth = '0px;',\n\t\t\tmaxWidth = width + units,\n\t\t\tshortcode;\n\n\t\tif (embedStyle === 'in-page-vertical') {\n\t\t\tshortcode =\n\t\t\t\t'[bc_playlist playlist_id=\"' +\n\t\t\t\tplaylistId +\n\t\t\t\t'\" account_id=\"' +\n\t\t\t\taccountId +\n\t\t\t\t'\" player_id=\"' +\n\t\t\t\tplayerId +\n\t\t\t\t'\" ' +\n\t\t\t\t'embed=\"in-page-vertical\" autoplay=\"' +\n\t\t\t\tautoplay +\n\t\t\t\t'\" playsinline=\"' +\n\t\t\t\tplaysinline +\n\t\t\t\t'\" mute=\"' +\n\t\t\t\tmute +\n\t\t\t\t'\" ' +\n\t\t\t\t'min_width=\"\" max_width=\"\" padding_top=\"\" ' +\n\t\t\t\t'width=\"' +\n\t\t\t\twidth +\n\t\t\t\tunits +\n\t\t\t\t'\" height=\"' +\n\t\t\t\theight +\n\t\t\t\tunits +\n\t\t\t\t'\"' +\n\t\t\t\t' ]';\n\t\t} else if (embedStyle === 'in-page-horizontal') {\n\t\t\tshortcode =\n\t\t\t\t'[bc_playlist playlist_id=\"' +\n\t\t\t\tplaylistId +\n\t\t\t\t'\" account_id=\"' +\n\t\t\t\taccountId +\n\t\t\t\t'\" player_id=\"' +\n\t\t\t\tplayerId +\n\t\t\t\t'\" ' +\n\t\t\t\t'embed=\"in-page-horizontal\" autoplay=\"' +\n\t\t\t\tautoplay +\n\t\t\t\t'\" playsinline=\"' +\n\t\t\t\tplaysinline +\n\t\t\t\t'\" mute=\"' +\n\t\t\t\tmute +\n\t\t\t\t'\" ' +\n\t\t\t\t'min_width=\"\" max_width=\"\" padding_top=\"\" ' +\n\t\t\t\t'width=\"' +\n\t\t\t\twidth +\n\t\t\t\tunits +\n\t\t\t\t'\" height=\"' +\n\t\t\t\theight +\n\t\t\t\tunits +\n\t\t\t\t'\"' +\n\t\t\t\t' ]';\n\t\t} else if (embedStyle === 'iframe') {\n\t\t\tif (aspectRatio === '16:9') {\n\t\t\t\tpaddingTop = '56';\n\t\t\t} else if (aspectRatio === '4:3') {\n\t\t\t\tpaddingTop = '75';\n\t\t\t} else {\n\t\t\t\tpaddingTop = (height / width) * 100;\n\t\t\t}\n\n\t\t\tif (sizing === 'responsive') {\n\t\t\t\twidth = '100%';\n\t\t\t\theight = '100%';\n\t\t\t} else {\n\t\t\t\twidth += units;\n\t\t\t\theight += units;\n\n\t\t\t\tminWidth = width;\n\t\t\t}\n\n\t\t\tshortcode =\n\t\t\t\t'[bc_playlist playlist_id=\"' +\n\t\t\t\tplaylistId +\n\t\t\t\t'\" account_id=\"' +\n\t\t\t\taccountId +\n\t\t\t\t'\" player_id=\"' +\n\t\t\t\tplayerId +\n\t\t\t\t'\" ' +\n\t\t\t\t'embed=\"iframe\" autoplay=\"' +\n\t\t\t\tautoplay +\n\t\t\t\t'\" playsinline=\"' +\n\t\t\t\tplaysinline +\n\t\t\t\t'\" mute=\"' +\n\t\t\t\tmute +\n\t\t\t\t'\" ' +\n\t\t\t\t'min_width=\"' +\n\t\t\t\tminWidth +\n\t\t\t\t'\" max_width=\"' +\n\t\t\t\tmaxWidth +\n\t\t\t\t'\" padding_top=\"' +\n\t\t\t\tpaddingTop +\n\t\t\t\t'%\" ' +\n\t\t\t\t'width=\"' +\n\t\t\t\twidth +\n\t\t\t\t'\" height=\"' +\n\t\t\t\theight +\n\t\t\t\t'\"' +\n\t\t\t\t' ]';\n\t\t}\n\n\t\t$('#shortcode').val(shortcode);\n\t},\n\tgeneratePlaylistExperienceShortcode: function () {\n\t\tvar playlistId = this.model.get('id').replace(/\\D/g, ''),\n\t\t\taccountId = this.model.get('account_id').replace(/\\D/g, ''),\n\t\t\texperienceId = $('#video-player').val(),\n\t\t\tembedStyle = $('input[name=\"embed-style\"]:checked').val(),\n\t\t\tsizing = $('input[name=\"sizing\"]:checked').val(),\n\t\t\twidth = $('#width').val(),\n\t\t\theight = $('#height').val(),\n\t\t\tunits = 'px',\n\t\t\tminWidth = '0px',\n\t\t\tmaxWidth = width + units,\n\t\t\tshortcode;\n\n\t\tif (sizing === 'responsive') {\n\t\t\twidth = '100%';\n\t\t\theight = '100%';\n\t\t} else {\n\t\t\twidth += units;\n\t\t\theight += units;\n\n\t\t\tif (embedStyle === 'iframe') {\n\t\t\t\tminWidth = width;\n\t\t\t}\n\t\t}\n\n\t\tshortcode =\n\t\t\t'[bc_experience experience_id=\"' +\n\t\t\texperienceId +\n\t\t\t'\" account_id=\"' +\n\t\t\taccountId +\n\t\t\t'\" ' +\n\t\t\t'embed=\"' +\n\t\t\tembedStyle +\n\t\t\t'\" min_width=\"' +\n\t\t\tminWidth +\n\t\t\t'\" max_width=\"' +\n\t\t\tmaxWidth +\n\t\t\t'\" ' +\n\t\t\t'width=\"' +\n\t\t\twidth +\n\t\t\t'\" height=\"' +\n\t\t\theight +\n\t\t\t'\" ' +\n\t\t\t'playlist_id=\"' +\n\t\t\tplaylistId +\n\t\t\t'\" ' +\n\t\t\t' ]';\n\n\t\t$('#shortcode').val(shortcode);\n\t},\n\n\ttoggleShortcodeGeneration: function () {\n\t\tvar method = $('#generate-shortcode').val(),\n\t\t\t$fields = $(\n\t\t\t\t'#video-player, #autoplay, #mute, input[name=\"embed-style\"], input[name=\"sizing\"], #aspect-ratio, #width, #height, #units',\n\t\t\t);\n\n\t\tif (method === 'manual') {\n\t\t\t$('#shortcode').removeAttr('readonly');\n\t\t\t$fields.attr('disabled', true);\n\t\t} else {\n\t\t\t$('#shortcode').attr('readonly', true);\n\t\t\t$fields.removeAttr('disabled');\n\t\t}\n\t},\n\n\tinitialize: function (options) {\n\t\toptions = options || {};\n\t\tthis.type = options.type ? options.type : 'grid';\n\t\tthis.mediaType = options.mediaType;\n\t\tthis.listenTo(wpbc.broadcast, 'insert:shortcode', this.insertShortcode);\n\t\tthis.listenTo(this.model, 'change', this.render);\n\t},\n\n\t/**\n\t * @returns {wp.media.view.Media} Returns itself to allow chaining\n\t */\n\trender: function (options) {\n\t\toptions = _.extend({}, options, this.model.toJSON());\n\t\toptions.duration = this.model.getReadableDuration();\n\t\toptions.updated_at_readable = this.model.getReadableDate('updated_at');\n\t\toptions.created_at_readable = this.model.getReadableDate('created_at');\n\t\toptions.account_name = this.model.getAccountName();\n\n\t\tthis.template = wp.template('brightcove-media-item-details-' + this.mediaType);\n\n\t\tthis.$el.html(this.template(options));\n\n\t\tthis.delegateEvents();\n\t\tthis.generateShortcode();\n\n\t\treturn this;\n\t},\n\n\t/* Prevent this.remove() from removing the container element for the details view */\n\tremove: function () {\n\t\tthis.undelegateEvents();\n\t\tthis.$el.empty();\n\t\tthis.stopListening();\n\t\treturn this;\n\t},\n});\n","var MediaView = BrightcoveView.extend({\n\ttagName: 'li',\n\tclassName: 'attachment brightcove',\n\n\tattributes: function () {\n\t\treturn {\n\t\t\ttabIndex: 0,\n\t\t\trole: 'checkbox',\n\t\t\t'aria-label': this.model.get('title'),\n\t\t\t'aria-checked': false,\n\t\t\t'data-id': this.model.get('id'),\n\t\t};\n\t},\n\n\tevents: {\n\t\t'click .attachment-preview': 'toggleDetailView',\n\t\t'click .video-move-up': 'videoMoveUp',\n\t\t'click .video-move-down': 'videoMoveDown',\n\t\t'click .trash': 'removeVideoFromPlaylist',\n\t\t'click .add-to-playlist': 'videoAdd',\n\t\t'click .edit': 'triggerEditMedia',\n\t\t'click .preview': 'triggerPreviewMedia',\n\t},\n\n\ttriggerEditMedia: function (event) {\n\t\tevent.preventDefault();\n\t\twpbc.broadcast.trigger('edit:media', this.model);\n\t},\n\n\ttriggerPreviewMedia: function (event) {\n\t\tevent.preventDefault();\n\t\twpbc.broadcast.trigger('preview:media', this.model);\n\t},\n\n\tbuttons: {},\n\n\tinitialize: function (options) {\n\t\toptions = options || {};\n\t\tthis.type = options.type ? options.type : 'grid';\n\n\t\t// We only care when a change occurs\n\t\tthis.listenTo(this.model, 'change:view', function (model, type) {\n\t\t\tif (this.type !== type) {\n\t\t\t\tthis.type = type;\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t});\n\n\t\tthis.render();\n\t},\n\n\trender: function () {\n\t\tvar options = this.model.toJSON();\n\t\toptions.duration = this.model.getReadableDuration();\n\t\toptions.updated_at_readable = this.model.getReadableDate('updated_at');\n\t\toptions.account_name = this.model.getAccountName();\n\n\t\tif (options.viewType === 'existingPlaylists') {\n\t\t\tthis.template = wp.template('brightcove-playlist-edit-video-in-playlist');\n\t\t} else if (options.viewType === 'libraryPlaylists') {\n\t\t\tthis.template = wp.template('brightcove-playlist-edit-video-in-library');\n\t\t} else {\n\t\t\tthis.template = wp.template('brightcove-media-item-' + this.type);\n\t\t}\n\n\t\toptions.buttons = this.buttons;\n\n\t\tthis.$el.html(this.template(options));\n\n\t\tthis.$el.toggleClass('uploading', options.uploading);\n\n\t\treturn this;\n\t},\n\n\ttoggleDetailView: function () {\n\t\twpbc.broadcast.trigger('select:media', this);\n\t},\n\n\tvideoMoveUp: function () {\n\t\twpbc.broadcast.trigger('playlist:moveUp', this);\n\t},\n\n\tvideoMoveDown: function () {\n\t\twpbc.broadcast.trigger('playlist:moveDown', this);\n\t},\n\n\tvideoAdd: function () {\n\t\twpbc.broadcast.trigger('playlist:add', this);\n\t},\n\n\tremoveVideoFromPlaylist: function () {\n\t\twpbc.broadcast.trigger('playlist:remove', this);\n\t},\n});\n","var PlaylistEditView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'playlist-edit brightcove attachment-details',\n\ttemplate: wp.template('brightcove-playlist-edit'),\n\n\tevents: {\n\t\t'click .brightcove.button.save-sync': 'saveSync',\n\t\t'click .brightcove.playlist-back': 'back',\n\t\t'change .brightcove-name': 'updatedName',\n\t},\n\n\tdeleteVideo: function (event) {\n\t\tevent.preventDefault();\n\t\tthis.model.set('mediaType', 'videos');\n\t\tthis.model.destroy();\n\t},\n\n\tupdatedName: function (event) {\n\t\tvar name = this.model.get('name');\n\t\tif (name !== event.target.value) {\n\t\t\tthis.model.set('name', event.target.value);\n\t\t\tthis.model.save();\n\t\t}\n\t},\n\n\tback: function (event) {\n\t\tevent.preventDefault();\n\t\twpbc.broadcast.trigger('start:gridview');\n\t},\n\n\tsaveSync: function (event) {\n\t\tevent.preventDefault();\n\t\tthis.model.set('name', this.$el.find('.brightcove-name').val());\n\t\tthis.model.set('description', this.$el.find('.brightcove-description').val());\n\t\tthis.model.set('long_description', this.$el.find('.brightcove-long-description').val());\n\t\tthis.model.set('tags', this.$el.find('.brightcove-tags').val());\n\t\tthis.model.set('mediaType', 'videos');\n\t\tthis.model.save();\n\t},\n\n\tinitialize: function () {\n\t\tthis.listenTo(wpbc.broadcast, 'tabChange', function () {\n\t\t\t_.invoke(this.subviews, 'remove');\n\t\t});\n\t\twpbc.broadcast.trigger('spinner:off');\n\t},\n\n\trender: function (options) {\n\t\toptions = this.model.toJSON();\n\t\tthis.$el.html(this.template(options));\n\t\tthis.spinner = this.$el.find('.spinner');\n\n\t\tif (options.video_ids) {\n\t\t\tthis.killPendingRequests();\n\n\t\t\tthis.playlistVideosView = new MediaCollectionView({\n\t\t\t\tel: this.$el.find('.existing-videos'),\n\t\t\t\tvideoIds: options.video_ids,\n\t\t\t\tactiveAccount: this.model.get('account_id'),\n\t\t\t\tmediaCollectionViewType: 'existingPlaylists',\n\t\t\t\tmediaType: 'playlists',\n\t\t\t});\n\n\t\t\tthis.libraryVideosView = new MediaCollectionView({\n\t\t\t\tel: this.$el.find('.library-videos'),\n\t\t\t\texcludeVideoIds: options.video_ids,\n\t\t\t\tactiveAccount: this.model.get('account_id'),\n\t\t\t\tmediaCollectionViewType: 'libraryPlaylists',\n\t\t\t\tmediaType: 'playlists',\n\t\t\t});\n\n\t\t\tthis.registerSubview(this.playlistVideosView);\n\t\t\tthis.registerSubview(this.libraryVideosView);\n\n\t\t\tthis.listenTo(\n\t\t\t\twpbc.broadcast,\n\t\t\t\t'playlist:changed',\n\t\t\t\t_.throttle(this.playlistChanged, 300),\n\t\t\t);\n\t\t\tthis.listenTo(wpbc.broadcast, 'insert:shortcode', this.insertShortcode);\n\t\t}\n\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:on', function () {\n\t\t\tthis.spinner.addClass('is-active').removeClass('hidden');\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:off', function () {\n\t\t\tthis.spinner.removeClass('is-active').addClass('hidden');\n\t\t});\n\t},\n\n\tplaylistChanged: function (videoIds) {\n\t\tthis.killPendingRequests();\n\t\tthis.model.set('video_ids', videoIds);\n\t\tthis.model.save();\n\t},\n\n\tkillPendingRequests: function () {\n\t\t// Kill all pending requests\n\t\t_.each(wpbc.requests, function (request) {\n\t\t\trequest.abort();\n\t\t});\n\n\t\twpbc.requests = [];\n\t},\n});\n","var UploadDetailsView = BrightcoveView.extend({\n\tclassName: 'brightcove-pending-upload-details attachment-details',\n\ttagName: 'div',\n\ttemplate: wp.template('brightcove-pending-upload-details'),\n\n\tevents: {\n\t\t'keyup .brightcove-name': 'nameChanged',\n\t\t'keyup .brightcove-tags': 'tagsChanged',\n\t\t'change .brightcove-media-source': 'accountChanged',\n\t},\n\n\tinitialize: function (options) {\n\t\tthis.listenTo(wpbc.broadcast, 'pendingUpload:hideDetails', this.hide);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:fileUploaded', function (file) {\n\t\t\tif (file.id === this.model.get('id')) {\n\t\t\t\tthis.model.set('uploaded', true);\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t});\n\t\tthis.model.set('ingestSuccess', true);\n\t\tthis.model.set('uploadSuccess', true);\n\t},\n\n\tnameChanged: function (event) {\n\t\tthis.model.set('fileName', event.target.value);\n\t},\n\n\ttagsChanged: function (event) {\n\t\tthis.model.set('tags', event.target.value);\n\t},\n\n\taccountChanged: function (event) {\n\t\tthis.model.set('account', event.target.value);\n\t},\n\n\thide: function () {\n\t\tthis.$el.hide();\n\t},\n\n\trender: function (options) {\n\t\toptions = options || {};\n\t\toptions.fileName = this.model.get('fileName');\n\t\toptions.tags = this.model.get('tags');\n\t\toptions.size = this.model.humanReadableSize();\n\t\toptions.accounts = this.model.get('accounts');\n\t\toptions.account = this.model.get('account');\n\t\toptions.uploaded = this.model.get('uploaded');\n\t\tthis.$el.html(this.template(options));\n\t},\n});\n","UploadWindowView = BrightcoveView.extend({\n\tclassName: 'uploader-window',\n\ttemplate: wp.template('brightcove-uploader-window'),\n\n\tinitialize: function (options) {\n\t\t_.bindAll(this, 'uploaderFilesAdded');\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:queuedFilesAdded', this.hide);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:startUpload', this.uploaderStartUpload);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:clear', this.resetUploads);\n\t},\n\n\trender: function (options) {\n\t\tthis.$el.html(this.template(options));\n\t\t_.defer(_.bind(this.afterRender, this));\n\t},\n\n\tresetUploads: function () {\n\t\tif (this.uploader && this.uploader.files) {\n\t\t\tthis.uploader.files = []; // Reset pending uploads\n\t\t}\n\t},\n\n\tafterRender: function () {\n\t\tthis.uploader = new plupload.Uploader(_.defaults(this.options, wpbc.preload.plupload));\n\n\t\t// Uploader has neither .on nor .listenTo\n\t\tthis.uploader.added = this.uploaderFilesAdded;\n\t\tthis.uploader.progress = this.uploaderUploadProgress;\n\t\tthis.uploader.bind('FilesAdded', this.uploaderFilesAdded);\n\t\tthis.uploader.bind('UploadProgress', this.uploaderUploadProgress);\n\t\tthis.uploader.bind('BeforeUpload', this.uploaderBeforeUpload);\n\t\tthis.uploader.bind('FileUploaded', this.uploaderFileUploaded);\n\n\t\tthis.uploader.bind('init', this.uploaderAfterInit);\n\n\t\tthis.uploader.init();\n\t\t$('html').on('dragenter', _.bind(this.show, this));\n\t\t/* the following dropzone function code is taken from the wp.Uploader code */\n\t\tvar drop_element = wpbc.preload.plupload.drop_element.replace(/[^a-zA-Z0-9-]+/g, '');\n\t\tvar dropzone = $('#' + drop_element);\n\t\tdropzone.on('dropzone:leave', _.bind(this.hide, this));\n\t},\n\n\tuploaderAfterInit: function (uploader) {\n\t\tvar drop_element = wpbc.preload.plupload.drop_element.replace(/[^a-zA-Z0-9-]+/g, '');\n\t\tvar timer,\n\t\t\tactive,\n\t\t\tdragdrop,\n\t\t\tdropzone = $('#' + drop_element);\n\n\t\tdragdrop = uploader.features.dragdrop;\n\n\t\t// Generate drag/drop helper classes.\n\t\tif (!dropzone) {\n\t\t\treturn;\n\t\t}\n\n\t\tdropzone.toggleClass('supports-drag-drop', !!dragdrop);\n\n\t\tif (!dragdrop) {\n\t\t\treturn dropzone.unbind('.wp-uploader');\n\t\t}\n\n\t\t// 'dragenter' doesn't fire correctly, simulate it with a limited 'dragover'.\n\t\tdropzone.bind('dragover.wp-uploader', function () {\n\t\t\tif (timer) {\n\t\t\t\tclearTimeout(timer);\n\t\t\t}\n\n\t\t\tif (active) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdropzone.trigger('dropzone:enter').addClass('drag-over');\n\t\t\tactive = true;\n\t\t});\n\n\t\tdropzone.bind('dragleave.wp-uploader, drop.wp-uploader', function () {\n\t\t\t// Using an instant timer prevents the drag-over class from\n\t\t\t// being quickly removed and re-added when elements inside the\n\t\t\t// dropzone are repositioned.\n\t\t\t//\n\t\t\t// @see https://core.trac.wordpress.org/ticket/21705\n\t\t\ttimer = setTimeout(function () {\n\t\t\t\tactive = false;\n\t\t\t\tdropzone.trigger('dropzone:leave').removeClass('drag-over');\n\t\t\t}, 0);\n\t\t});\n\t},\n\n\tshow: function () {\n\t\tvar $el = this.$el.show();\n\n\t\t// Ensure that the animation is triggered by waiting until\n\t\t// the transparent element is painted into the DOM.\n\t\t_.defer(function () {\n\t\t\t$el.css({ opacity: 1 });\n\t\t});\n\t},\n\n\thide: function () {\n\t\tvar $el = this.$el.css({ opacity: 0 });\n\n\t\twp.media.transition($el).done(function () {\n\t\t\t// Transition end events are subject to race conditions.\n\t\t\t// Make sure that the value is set as intended.\n\t\t\tif ($el.css('opacity') === '0') {\n\t\t\t\t$el.hide();\n\t\t\t}\n\t\t});\n\n\t\t// https://core.trac.wordpress.org/ticket/27341\n\t\t_.delay(function () {\n\t\t\tif ($el.css('opacity') === '0' && $el.is(':visible')) {\n\t\t\t\t$el.hide();\n\t\t\t}\n\t\t}, 500);\n\t},\n\n\tuploaderFilesAdded: function (uploader, queuedFiles) {\n\t\twpbc.broadcast.trigger('uploader:queuedFilesAdded', queuedFiles);\n\t},\n\n\tuploaderStartUpload: function () {\n\t\tthis.uploader.start();\n\t},\n\n\tuploaderUploadProgress: function (up, file) {\n\t\twpbc.broadcast.trigger('uploader:uploadProgress', file);\n\t},\n\n\tuploaderBeforeUpload: function (up, file) {\n\t\tup.settings.multipart_params = _.defaults(\n\t\t\twpbc.uploads[file.id],\n\t\t\twpbc.preload.plupload.multipart_params,\n\t\t\t{ nonce: wpbc.preload.nonce },\n\t\t);\n\t},\n\n\tuploaderFileUploaded: function (up, file, response) {\n\t\tvar status = JSON.parse(response.response);\n\t\twpbc.broadcast.trigger('uploader:fileUploaded', file);\n\t\tif (status.data.upload === 'success' && status.data.ingest === 'success') {\n\t\t\tif (status.data.videoDetails) {\n\t\t\t\t// Add newly uploaded file to preload list.\n\t\t\t\twpbc.broadcast.trigger('uploader:uploadedFileDetails', status.data.videoDetails);\n\t\t\t}\n\t\t\twpbc.broadcast.trigger('uploader:successfulUploadIngest', file);\n\t\t} else {\n\t\t\tfile.percent = 0;\n\t\t\tfile.status = plupload.UPLOADING;\n\t\t\tup.state = plupload.STARTED;\n\t\t\tup.trigger('StateChanged');\n\t\t\twpbc.broadcast.trigger('uploader:failedUploadIngest', file);\n\t\t}\n\t},\n});\n","var UploadView = BrightcoveView.extend({\n\tclassName: 'brightcove-pending-upload',\n\ttagName: 'tr',\n\ttemplate: wp.template('brightcove-pending-upload'),\n\n\tevents: {\n\t\tclick: 'toggleRow',\n\t},\n\n\tinitialize: function () {\n\t\tthis.listenTo(wpbc.broadcast, 'pendingUpload:selectedRow', this.otherToggledRow);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:uploadProgress', this.uploadProgress);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:getParams', this.getParams);\n\t\tthis.listenTo(\n\t\t\twpbc.broadcast,\n\t\t\t'uploader:successfulUploadIngest',\n\t\t\tthis.successfulUploadIngest,\n\t\t);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:failedUploadIngest', this.failedUploadIngest);\n\n\t\tvar options = {\n\t\t\tfileName: this.model.get('name'),\n\t\t\ttags: '',\n\t\t\taccounts: wpbc.preload.accounts, // All accounts.\n\t\t\taccount: wpbc.preload.defaultAccount,\n\t\t\tingestSuccess: false,\n\t\t\tuploadSuccess: false,\n\t\t\tuploaded: false,\n\t\t};\n\n\t\tthis.model.set(options);\n\n\t\tthis.listenTo(this.model, 'change:fileName', this.render);\n\t\tthis.listenTo(this.model, 'change:account', this.render);\n\t},\n\n\trender: function (options) {\n\t\toptions = options || {};\n\t\toptions.fileName = this.model.get('fileName');\n\t\toptions.size = this.model.humanReadableSize();\n\t\tvar sourceHash = this.model.get('account');\n\t\toptions.accountName = wpbc.preload.accounts[sourceHash].account_name;\n\t\toptions.percent = this.model.get('percent');\n\t\toptions.activeUpload = this.model.get('activeUpload');\n\t\toptions.ingestSuccess = this.model.get('ingestSuccess');\n\t\toptions.uploadSuccess = this.model.get('uploadSuccess');\n\n\t\tthis.$el.html(this.template(options));\n\t\tif (this.model.get('selected')) {\n\t\t\tthis.$el.addClass('selected');\n\t\t}\n\t\tif (this.model.get('ingestSuccess')) {\n\t\t\tthis.$el.addClass('ingest-success');\n\t\t}\n\t\tif (this.model.get('uploadSuccess')) {\n\t\t\tthis.$el.addClass('upload-success');\n\t\t}\n\t},\n\n\tgetParams: function (fileId) {\n\t\twpbc.broadcast.trigger('uploader:params', 'abcde');\n\t},\n\n\tfailedUploadIngest: function (file) {\n\t\t// Make sure we're acting on the right file.\n\t\tif (file.id === this.model.get('id')) {\n\t\t\twpbc.broadcast.trigger(\n\t\t\t\t'uploader:errorMessage',\n\t\t\t\twpbc.preload.messages.unableToUpload.replace('%%s%%', this.model.get('fileName')),\n\t\t\t);\n\t\t\tthis.render();\n\t\t}\n\t},\n\n\tsuccessfulUploadIngest: function (file) {\n\t\t// Make sure we're acting on the right file.\n\t\tif (file.id === this.model.get('id')) {\n\t\t\twpbc.broadcast.trigger(\n\t\t\t\t'uploader:successMessage',\n\t\t\t\twpbc.preload.messages.successUpload.replace('%%s%%', this.model.get('fileName')),\n\t\t\t);\n\t\t\tthis.render();\n\t\t}\n\t},\n\n\t/**\n\t * Render if we're the active upload.\n\t * Re-render if we thought we were but we no longer are.\n\t * @param file Fired from UploadProgress on plUpload\n\t */\n\tuploadProgress: function (file) {\n\t\t// Make sure we're acting on the right file.\n\t\tif (file.id === this.model.get('id')) {\n\t\t\tthis.model.set('activeUpload', true);\n\t\t\tthis.model.set('percent', file.percent);\n\t\t\tthis.render();\n\t\t} else {\n\t\t\tif (this.model.get('activeUpload')) {\n\t\t\t\tthis.model.unset('activeUpload');\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t}\n\t},\n\n\ttoggleRow: function (event) {\n\t\tthis.$el.toggleClass('selected');\n\t\tif (this.$el.hasClass('selected')) {\n\t\t\tthis.model.set('selected', true);\n\t\t\twpbc.broadcast.trigger('pendingUpload:selectedRow', this.cid);\n\t\t} else {\n\t\t\twpbc.broadcast.trigger('pendingUpload:hideDetails', this.cid);\n\t\t}\n\t},\n\n\totherToggledRow: function (cid) {\n\t\t// Ignore broadcast from self\n\t\tif (cid !== this.cid) {\n\t\t\tthis.$el.removeClass('selected');\n\t\t\tthis.model.unset('selected');\n\t\t} else {\n\t\t\twpbc.broadcast.trigger('pendingUpload:selectedItem', this.model);\n\t\t}\n\t},\n});\n","var VideoEditView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'video-edit brightcove attachment-details',\n\ttemplate: wp.template('brightcove-video-edit'),\n\n\tevents: {\n\t\t'click .brightcove.button.save-sync': 'saveSync',\n\t\t'click .brightcove.delete': 'deleteVideo',\n\t\t'click .brightcove.button.back': 'back',\n\t\t'click .setting .button': 'openMediaManager',\n\t\t'click .attachment .check': 'removeAttachment',\n\t\t'click .caption-secondary-fields .delete': 'removeCaptionRow',\n\t\t'click .add-remote-caption': 'addCaptionRow',\n\t\t'click .add-bc-label': 'addLabelRow',\n\t\t'keypress .brightcove-labels': 'labelAutocomplete',\n\t\t'click .bc-label-secondary-fields .delete': 'removeLabelRow',\n\t},\n\n\tback: function (event) {\n\t\tevent.preventDefault();\n\n\t\t// Exit if the 'button' is disabled.\n\t\tif ($(event.currentTarget).hasClass('disabled')) {\n\t\t\treturn;\n\t\t}\n\t\twpbc.broadcast.trigger('start:gridview');\n\t},\n\n\tdeleteVideo: function () {\n\t\tif (confirm(wpbc.preload.messages.confirmDelete)) {\n\t\t\twpbc.broadcast.trigger('spinner:on');\n\t\t\tthis.model.set('mediaType', 'videos');\n\t\t\tthis.model.destroy();\n\t\t}\n\t},\n\n\t/**\n\t * Allow the user to attach a video still or thumbnail.\n\t *\n\t * @param {Event} evnt\n\t */\n\topenMediaManager: function (evnt) {\n\t\tevnt.preventDefault();\n\n\t\tvar elem = $(evnt.currentTarget).parents('.setting'),\n\t\t\teditor = elem.data('editor'),\n\t\t\tmediaManager = (wp.media.frames.brightcove = wp.media()),\n\t\t\tthat = this,\n\t\t\toptions = {\n\t\t\t\tstate: 'insert',\n\t\t\t\ttitle: wp.media.view.l10n.addMedia,\n\t\t\t\tmultiple: false,\n\t\t\t};\n\n\t\t// Open the media manager\n\t\tmediaManager.open(editor, options);\n\n\t\t// Listen for selection of media\n\t\tmediaManager.on('select', function () {\n\t\t\tvar media = mediaManager.state().get('selection').first().toJSON(),\n\t\t\t\tfield = $(evnt).parents('.setting');\n\n\t\t\t// Set the selected attachment to the correct field\n\t\t\tthat.setAttachment(media, field);\n\n\t\t\t// Make this action available to other areas of the application\n\t\t\twpbc.broadcast.trigger('media:selected');\n\t\t});\n\t},\n\n\t/**\n\t * Set the hidden input to the ID of the selected attachment.\n\t *\n\t * @param {Object} media\n\t * @param {String} field\n\t * @returns {boolean}\n\t */\n\tsetAttachment: function (media, field) {\n\t\tvar field = field.prevObject[0].currentTarget,\n\t\t\tfield = $(field).prev('input'),\n\t\t\tattachment = field.parents('.attachment'),\n\t\t\tpreview = attachment.find('.-image'),\n\t\t\tThumbnailOrPoster = ['brightcove-poster', 'brightcove-thumbnail'];\n\n\t\t// Perform different setup actions based on the type of upload\n\t\tif (ThumbnailOrPoster.includes(field.attr('class'))) {\n\t\t\t// Executed if the user is uploading a poster image or thumbnail\n\t\t\tvar selectedMedia = {\n\t\t\t\turl: media.sizes.full.url,\n\t\t\t\twidth: media.sizes.full.width,\n\t\t\t\theight: media.sizes.full.height,\n\t\t\t};\n\n\t\t\t// Set up our preview image\n\t\t\tvar image = document.createElement('img');\n\n\t\t\t// Set image properties\n\t\t\timage.src = media.sizes.full.url;\n\t\t\timage.className = 'thumbnail';\n\n\t\t\t// Display a preview image\n\t\t\tattachment.addClass('active');\n\t\t\tpreview.html(image); // .html() considered okay because auth is required to view this screen\n\t\t} else {\n\t\t\t// Executed if the user is uploading a closed caption\n\t\t\tif (media.subtype === 'vtt') {\n\t\t\t\tthis.addCaptionRow(false, media);\n\t\t\t} else {\n\t\t\t\tvar template = wp.template('brightcove-badformat-notice');\n\n\t\t\t\t// Throw a notice to the user that the file is not the correct format\n\t\t\t\t$('.brightcove-media-videos').prepend(template);\n\n\t\t\t\t// Allow the user to dismiss the notice\n\t\t\t\t$('.badformat.notice-dismiss').on('click', function () {\n\t\t\t\t\t$('.notice.badformat')\n\t\t\t\t\t\t.first()\n\t\t\t\t\t\t.fadeOut(500, function () {\n\t\t\t\t\t\t\t$(this).remove();\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Add our meta to the hidden field\n\t\tfield.val(JSON.stringify(selectedMedia));\n\t},\n\n\t/**\n\t * Allow the user to remove media from a given field.\n\t *\n\t * @param {Event} evnt\n\t * @returns {boolean}\n\t */\n\tremoveAttachment: function (evnt) {\n\t\tvar container = $(evnt.currentTarget).parents('.attachment'),\n\t\t\timage = container.find('.-image'),\n\t\t\tfield = container.next('input');\n\n\t\t// Empty the field\n\t\tfield.val('');\n\n\t\t// Remove the preview image\n\t\tcontainer.removeClass('active');\n\t\timage.empty();\n\t},\n\n\t/**\n\t * Add a label row\n\t *\n\t * @param {Event} evnt\n\t * @param {Object} media\n\t */\n\taddLabelRow: function (evnt, media) {\n\t\tvar source = undefined;\n\t\tif (media) {\n\t\t\tsource = media.url;\n\t\t}\n\n\t\tthis.addLabel(source);\n\t},\n\n\t/**\n\t * Adds a label\n\t *\n\t * @param source\n\t * @param language\n\t * @param label\n\t * @param defaultcap\n\t */\n\taddLabel: function (source, language, label, defaultcap) {\n\t\tlet newRow = $(document.getElementById('js-bc-label-empty-row')).clone(),\n\t\t\tcontainer = document.getElementById('js-bc-labels');\n\n\t\t// Clean up our cloned row\n\t\tnewRow.find('input').prop('disabled', false).val('');\n\t\tnewRow.removeAttr('id');\n\t\tnewRow.removeClass('empty-row');\n\n\t\t// Append our new row to the container\n\t\t$(container).append(newRow);\n\t},\n\n\t/**\n\t * Fires the autocomplete function\n\t *\n\t * @param {Event} evnt\n\t */\n\tlabelAutocomplete: function (evnt) {\n\t\tjQuery('.brightcove-labels').autocomplete({\n\t\t\tsource: wpbc.preload.labels,\n\t\t\tselect: function () {\n\t\t\t\t$(this).parent('.bc-label-repeater.empty-row').removeClass('empty-row');\n\t\t\t},\n\t\t\tappendTo: '.media-modal',\n\t\t});\n\t},\n\n\t/**\n\t * Removes a label row\n\t * @param {Event} evnt\n\t */\n\tremoveLabelRow: function (evnt) {\n\t\tevnt.preventDefault();\n\n\t\tlet label = evnt.currentTarget,\n\t\t\tcontainer = $(label).parents('.bc-label-repeater'),\n\t\t\tsource = container.find('.brightcove-labels');\n\n\t\t// Empty the input fields\n\t\t$(source).val('');\n\n\t\t// Remove the container entirely\n\t\tcontainer.remove();\n\t},\n\n\t/**\n\t * Add a caption row\n\t *\n\t * @param {Event} evnt\n\t * @param {Object} media\n\t */\n\taddCaptionRow: function (evnt, media) {\n\t\t// If using the add remote file link, prevent the page from jumping to the top\n\t\tif (evnt) {\n\t\t\tevnt.preventDefault();\n\t\t}\n\n\t\tvar source = undefined;\n\t\tif (media) {\n\t\t\tsource = media.url;\n\t\t}\n\n\t\tthis.addCaption(source);\n\t},\n\n\taddCaption: function (source, language, label, defaultcap) {\n\t\tvar newRow = $(document.getElementById('js-caption-empty-row')).clone(),\n\t\t\tcontainer = document.getElementById('js-captions'),\n\t\t\tcaptionUrl = document.getElementById('js-caption-url');\n\n\t\t// Clean up our cloned row\n\t\tnewRow.find('input').prop('disabled', false);\n\t\tnewRow.removeAttr('id');\n\t\tnewRow.removeClass('empty-row');\n\n\t\tif (source) {\n\t\t\tnewRow.find('.brightcove-captions').val(source);\n\t\t}\n\n\t\tif (language) {\n\t\t\tnewRow.find('.brightcove-captions-language').val(language);\n\t\t}\n\n\t\tif (label) {\n\t\t\tnewRow.find('.brightcove-captions-label').val(label);\n\t\t}\n\n\t\tif (defaultcap) {\n\t\t\tnewRow.find('.brightcove-captions-default').val(defaultcap);\n\t\t}\n\n\t\t// Append our new row to the container\n\t\t$(container).append(newRow);\n\n\t\t// Update the context button text\n\t\tthis.updateCaptionText();\n\t},\n\n\t/**\n\t * Remove a caption\n\t *\n\t * @param {Event} evnt\n\t */\n\tremoveCaptionRow: function (evnt) {\n\t\tevnt.preventDefault();\n\n\t\tvar caption = evnt.currentTarget,\n\t\t\tcontainer = $(caption).parents('.caption-repeater'),\n\t\t\tsource = container.find('.brightcove-captions'),\n\t\t\tlanguage = container.find('.brightcove-captions-launguage'),\n\t\t\tlabel = container.find('.brightcove-captions-label'),\n\t\t\tdefaultcap = container.find('.brightcove-captions-default');\n\n\t\t// Empty the input fields\n\t\t$(source).val('');\n\t\t$(language).val('');\n\t\t$(label).val('');\n\t\t$(defaultcap).val('');\n\n\t\t// Remove the container entirely\n\t\tcontainer.remove();\n\n\t\t// Update the context button text\n\t\tthis.updateCaptionText();\n\t},\n\n\t/**\n\t * Updates the caption text based on number of captions\n\t */\n\tupdateCaptionText: function () {\n\t\tvar button = $('.captions .button-secondary'),\n\t\t\tlink = $('.add-remote-caption');\n\n\t\tif (document.getElementsByClassName('caption-repeater').length > 1) {\n\t\t\tbutton.text(wpbc.str_addcaption);\n\t\t\tlink.text(wpbc.str_addremote);\n\t\t} else {\n\t\t\tbutton.text(wpbc.str_selectfile);\n\t\t\tlink.text(wpbc.str_useremote);\n\t\t}\n\t},\n\n\tsaveSync: function (evnt) {\n\t\tevnt.preventDefault();\n\n\t\tvar $mediaFrame = $(evnt.currentTarget).parents('.media-modal'),\n\t\t\t$allButtons = $mediaFrame.find('.button, .button-link'),\n\t\t\tSELF = this;\n\n\t\t// Exit if the 'button' is disabled.\n\t\tif ($allButtons.hasClass('disabled')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Disable the button for the duration of the request.\n\t\t$allButtons.addClass('disabled');\n\n\t\t// Hide the delete link for the duration of the request.\n\t\t$mediaFrame.find('.delete-action').hide();\n\n\t\twpbc.broadcast.trigger('spinner:on');\n\t\tthis.model.set('name', this.$el.find('.brightcove-name').val());\n\t\tthis.model.set('description', this.$el.find('.brightcove-description').val());\n\t\tthis.model.set('long_description', this.$el.find('.brightcove-long-description').val());\n\n\t\t// Trim whitespace and commas from tags beginning/end.\n\t\tthis.model.set(\n\t\t\t'tags',\n\t\t\tthis.$el\n\t\t\t\t.find('.brightcove-tags')\n\t\t\t\t.val()\n\t\t\t\t.trim()\n\t\t\t\t.replace(/(^,)|(,$)/g, ''),\n\t\t);\n\t\tthis.model.set('height', this.$el.find('.brightcove-height').val());\n\t\tthis.model.set('width', this.$el.find('.brightcove-width').val());\n\t\tthis.model.set('mediaType', 'videos');\n\t\tthis.model.set('poster', this.$el.find('.brightcove-poster').val());\n\t\tthis.model.set('thumbnail', this.$el.find('.brightcove-thumbnail').val());\n\t\tthis.model.set('folderId', this.$el.find('.brightcove-folder').val());\n\n\t\t// Captions\n\t\tvar captions = [];\n\t\tthis.$el\n\t\t\t.find('.caption-repeater.repeater-row')\n\t\t\t.not('.empty-row')\n\t\t\t.each(function () {\n\t\t\t\tvar caption = $(this),\n\t\t\t\t\tfileName = caption.find('.brightcove-captions').val(),\n\t\t\t\t\textension = fileName.split('?')[0], // if the URL has a query string, strip it before validating filetype\n\t\t\t\t\textension = extension.split('.').pop();\n\n\t\t\t\tif (extension === 'vtt') {\n\t\t\t\t\tcaptions.push({\n\t\t\t\t\t\tsource: fileName,\n\t\t\t\t\t\tlanguage: caption.find('.brightcove-captions-language').val(),\n\t\t\t\t\t\tlabel: caption.find('.brightcove-captions-label').val(),\n\t\t\t\t\t\tdefault: caption.find('.brightcove-captions-default').attr('checked'),\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tvar template = wp.template('brightcove-badformat-notice');\n\n\t\t\t\t\t// Throw a notice to the user that the file is not the correct format\n\t\t\t\t\t$('.brightcove-media-videos').prepend(template);\n\n\t\t\t\t\t// Allow the user to dismiss the notice\n\t\t\t\t\t$('.badformat.notice-dismiss').on('click', function () {\n\t\t\t\t\t\t$('.notice.badformat')\n\t\t\t\t\t\t\t.first()\n\t\t\t\t\t\t\t.fadeOut(500, function () {\n\t\t\t\t\t\t\t\t$(this).remove();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\tthis.model.set('captions', captions);\n\n\t\t// Labels\n\t\tvar labels = [];\n\t\tthis.$el\n\t\t\t.find('.bc-label-repeater.repeater-row')\n\t\t\t.not('.empty-row')\n\t\t\t.each(function () {\n\t\t\t\tvar label = $(this),\n\t\t\t\t\tName = label.find('.brightcove-labels').val();\n\n\t\t\t\tlabels.push(Name);\n\t\t\t});\n\n\t\tthis.model.set('labels', labels);\n\n\t\t// Custom fields\n\t\tvar custom = {},\n\t\t\tcustom_fields = this.model.get('custom');\n\n\t\t_.each(\n\t\t\tthis.$el.find('.brightcove-custom-string, .brightcove-custom-enum'),\n\t\t\tfunction (item) {\n\t\t\t\tvar key = item.getAttribute('data-id'),\n\t\t\t\t\tval = item.value.trim();\n\n\t\t\t\tif (val !== '') {\n\t\t\t\t\tcustom[key] = val;\n\n\t\t\t\t\tvar obj = _.find(custom_fields, function (item) {\n\t\t\t\t\t\treturn item.id == key;\n\t\t\t\t\t});\n\t\t\t\t\tobj.value = val;\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\n\t\tthis.model.set('custom_fields', custom);\n\t\tthis.model.set('custom', custom_fields);\n\n\t\tthis.model\n\t\t\t.save()\n\t\t\t.done(function () {\n\t\t\t\tif ($mediaFrame.length > 0) {\n\t\t\t\t\t// Update the tag dropdown and wpbc.preload.tags with any new tag values.\n\t\t\t\t\tvar tagInput = $mediaFrame.find('.brightcove-tags').val(),\n\t\t\t\t\t\teditTags,\n\t\t\t\t\t\tnewTags;\n\n\t\t\t\t\tif (tagInput) {\n\t\t\t\t\t\teditTags = tagInput.split(',');\n\t\t\t\t\t\tnewTags = _.difference(editTags, wpbc.preload.tags);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add any new tags to the tags object and the dropdown.\n\t\t\t\t\t_.each(newTags, function (newTag) {\n\t\t\t\t\t\tnewTag = newTag.trim();\n\t\t\t\t\t\tif (newTag !== '') {\n\t\t\t\t\t\t\twpbc.preload.tags.push(newTag);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\twpbc.preload.tags.sort();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.always(function () {\n\t\t\t\t// Re-enable the button when the request has completed.\n\t\t\t\t$allButtons.removeClass('disabled');\n\n\t\t\t\t// Show the delete link.\n\t\t\t\t$mediaFrame.find('.delete-action').show();\n\t\t\t});\n\n\t\t// Hide the video edit screen after save.\n\t\twpbc.broadcast.trigger('start:gridview');\n\t},\n\n\t/**\n\t * Render the actual view for the Video Edit screen.\n\t *\n\t * @param {Object} options\n\t */\n\trender: function (options) {\n\t\tthis.listenTo(wpbc.broadcast, 'save:media', this.saveSync);\n\t\tthis.listenTo(wpbc.broadcast, 'back:editvideo', this.back);\n\n\t\tthis.listenTo(wpbc.broadcast, 'insert:shortcode', this.insertShortcode);\n\t\toptions = this.model.toJSON();\n\t\toptions.folders = wpbc.preload.folders;\n\t\tthis.model.set('oldFolderId', options.folder_id);\n\n\t\t// Render the model into the template\n\t\tthis.$el.html(this.template(options));\n\n\t\t// Render custom fields into the template\n\t\tvar customContainer = this.$el.find('#brightcove-custom-fields'),\n\t\t\tstringTmp = wp.template('brightcove-video-edit-custom-string'),\n\t\t\tenumTmp = wp.template('brightcove-video-edit-custom-enum');\n\n\t\t_.each(this.model.get('custom'), function (custom) {\n\t\t\tif (custom.id === '_change_history') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tswitch (custom.type) {\n\t\t\t\tcase 'string':\n\t\t\t\t\tcustomContainer.append(stringTmp(custom));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'enum':\n\t\t\t\t\tcustomContainer.append(enumTmp(custom));\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\n\t\t// Render the change history\n\t\tvar history = this.model.get('history');\n\n\t\tif (history !== undefined) {\n\t\t\tvar historyStr = '';\n\n\t\t\t// Parse our fetched JSON object\n\t\t\thistory = JSON.parse(history);\n\n\t\t\t_.each(history, function (item) {\n\t\t\t\thistoryStr += item.user + ' - ' + item.time + '\\n';\n\t\t\t});\n\n\t\t\tif (historyStr !== '') {\n\t\t\t\tthis.$el.find('textarea.brightcove-change-history').val(historyStr);\n\t\t\t}\n\t\t}\n\n\t\t// Configure a spinner to provide feedback during updates\n\t\tvar spinner = this.$el.find('.spinner');\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:on', function () {\n\t\t\tspinner.addClass('is-active').removeClass('hidden');\n\t\t});\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:off', function () {\n\t\t\tspinner.removeClass('is-active').addClass('hidden');\n\t\t});\n\n\t\t// If there's already a poster or thumbnail set, display it\n\t\tif (this.model.get('poster')) {\n\t\t\tthis.displayAttachment('poster');\n\t\t}\n\n\t\tif (this.model.get('thumbnail')) {\n\t\t\tthis.displayAttachment('thumbnail');\n\t\t}\n\n\t\t// Captions\n\t\tif (this.model.get('captions')) {\n\t\t\tvar captions = this.model.get('captions');\n\t\t\tfor (var i = 0, l = captions.length; i < l; i++) {\n\t\t\t\tvar caption = captions[i];\n\t\t\t\tthis.addCaption(caption.source, caption.language, caption.label, caption.default);\n\t\t\t}\n\t\t}\n\t},\n});\n","var VideoPreviewView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'video-preview brightcove',\n\ttemplate: wp.template('brightcove-video-preview'),\n\tshortcode: '',\n\n\tinitialize: function (options) {\n\t\tthis.shortcode = options.shortcode;\n\t},\n\n\trender: function (options) {\n\t\tvar that = this;\n\n\t\toptions = options || {};\n\t\toptions.id = this.model.get('id');\n\t\toptions.account_id = this.model.get('account_id');\n\n\t\t$.ajax({\n\t\t\turl: ajaxurl,\n\t\t\tdataType: 'json',\n\t\t\tmethod: 'POST',\n\t\t\tdata: {\n\t\t\t\taction: 'bc_resolve_shortcode',\n\t\t\t\tshortcode: this.shortcode,\n\t\t\t\tvideo_id: options.id,\n\t\t\t\taccount_id: options.account_id,\n\t\t\t},\n\t\t\tsuccess: function (results) {\n\t\t\t\tthat.$el.html(results.data);\n\t\t\t},\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'insert:shortcode', this.insertShortcode);\n\t},\n});\n","var MediaCollectionView = BrightcoveView.extend({\n\ttagName: 'ul',\n\tclassName: 'brightcove-media attachments',\n\n\tattributes: {\n\t\ttabIndex: -1,\n\t},\n\n\tevents: {\n\t\t/* scroll fired on playlist edits, but for media grids it's handled by firing 'scroll:mediaGrid' in brightcove-media-manager */\n\t\tscroll: 'scrollHandler',\n\t},\n\n\tloadMoreMediaItems: function () {\n\t\tthis.fetchingResults = true;\n\t\tthis.collection.fetch();\n\t},\n\n\tscrollHandler: function () {\n\t\t// We don't fetch for videos in an existing playlist\n\t\tif (this.collection.mediaCollectionViewType === 'existingPlaylists') {\n\t\t\treturn;\n\t\t}\n\n\t\tvar scrollThreshold = 200; // How many px from bottom until we fetch the next page.\n\t\tif (\n\t\t\t!this.fetchingResults &&\n\t\t\tthis.el.scrollTop + this.el.clientHeight + scrollThreshold > this.el.scrollHeight\n\t\t) {\n\t\t\tthis.collection.pageNumber += 1;\n\t\t\tthis.loadMoreMediaItems();\n\t\t}\n\t},\n\n\tinitialize: function (options) {\n\t\tthis.fetchingResults = false;\n\t\tthis.listenTo(wpbc.broadcast, 'fetch:finished', function () {\n\t\t\tthis.fetchingResults = false;\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'fetch:apiError', this.handleAPIError);\n\n\t\tvar scrollRefreshSensitivity = wp.media.isTouchDevice ? 300 : 200;\n\t\tthis.scrollHandler = _.chain(this.scrollHandler)\n\t\t\t.bind(this)\n\t\t\t.throttle(scrollRefreshSensitivity)\n\t\t\t.value();\n\t\tthis.listenTo(wpbc.broadcast, 'scroll:mediaGrid', this.scrollHandler);\n\t\toptions = options || {};\n\t\tthis.el.id = _.uniqueId('__attachments-view-');\n\n\t\t// Occurs on playlist edit, existing videos.\n\t\tif (!this.collection && options.videoIds) {\n\t\t\tthis.collection = new MediaCollection(null, {\n\t\t\t\tvideoIds: options.videoIds,\n\t\t\t\tactiveAccount: options.activeAccount,\n\t\t\t\tmediaCollectionViewType: options.mediaCollectionViewType,\n\t\t\t});\n\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:moveUp', this.videoMoveUp);\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:moveDown', this.videoMoveDown);\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:remove', this.videoRemove);\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:add', this.videoAdd);\n\t\t} else if (!this.collection && options.mediaCollectionViewType === 'libraryPlaylists') {\n\t\t\tthis.collection = new MediaCollection(null, {\n\t\t\t\texcludeVideoIds: options.excludeVideoIds,\n\t\t\t\tactiveAccount: options.activeAccount,\n\t\t\t\tmediaCollectionViewType: options.mediaCollectionViewType,\n\t\t\t});\n\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:remove', this.videoRemove);\n\t\t\tthis.listenTo(wpbc.broadcast, 'playlist:add', this.videoAdd);\n\t\t}\n\n\t\t_.defaults(this.options, {\n\t\t\trefreshSensitivity: wp.media.isTouchDevice ? 300 : 200,\n\t\t\trefreshThreshold: 3,\n\t\t\tVideoView: wp.media.view.Video,\n\t\t\tsortable: false,\n\t\t\tresize: true,\n\t\t\tidealColumnWidth: 202,\n\t\t});\n\n\t\tthis._viewsByCid = {};\n\t\tthis.resizeEvent = 'resize.media-modal-columns';\n\n\t\tthis.listenTo(\n\t\t\tthis.collection,\n\t\t\t'add',\n\t\t\tfunction (media) {\n\t\t\t\tthis.views.add(this.createMediaView(media), {\n\t\t\t\t\tat: this.collection.indexOf(media),\n\t\t\t\t});\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\tthis.listenTo(\n\t\t\tthis.collection,\n\t\t\t'remove',\n\t\t\tfunction (media) {\n\t\t\t\tif (media) {\n\t\t\t\t\tif (media.view) {\n\t\t\t\t\t\tmedia.view.remove();\n\t\t\t\t\t} else if (media.cid && this._viewsByCid[media.cid]) {\n\t\t\t\t\t\tthis._viewsByCid[media.cid].remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\tthis.listenTo(this.collection, 'reset', this.render);\n\n\t\t// Throttle the scroll handler and bind this.\n\t\tthis.scroll = _.chain(this.scroll)\n\t\t\t.bind(this)\n\t\t\t.throttle(this.options.refreshSensitivity)\n\t\t\t.value();\n\n\t\tthis.options.scrollElement = this.options.scrollElement || this.el;\n\t\t$(this.options.scrollElement).on('scroll', this.scroll);\n\n\t\t_.bindAll(this, 'setColumns');\n\n\t\tif (this.options.resize) {\n\t\t\tthis.on('ready', this.bindEvents);\n\t\t\t// this.controller.on('open', this.setColumns);\n\n\t\t\t// Call this.setColumns() after this view has been rendered in the DOM so\n\t\t\t// attachments get proper width applied.\n\t\t\t_.defer(this.setColumns, this);\n\t\t}\n\t},\n\n\thandleAPIError: function () {\n\t\tthis.el.innerText = wpbc.str_apifailure;\n\t},\n\n\trender: function () {\n\t\t// hide the spinner when content has finished loading\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:off', function () {\n\t\t\t$('#js-media-loading').css('display', 'none');\n\t\t});\n\n\t\tthis.$el.empty();\n\t\tthis.collection.each(function (mediaModel) {\n\t\t\tmediaModel.view = new MediaView({ model: mediaModel });\n\t\t\tthis.registerSubview(mediaModel.view);\n\t\t\tmediaModel.view.render();\n\t\t\tmediaModel.view.delegateEvents();\n\t\t\tmediaModel.view.$el.appendTo(this.$el);\n\n\t\t\twpbc.broadcast.trigger('spinner:off');\n\t\t}, this);\n\t},\n\n\tsetViewType: function (type) {\n\t\tthis.collection.each(function (mediaModel) {\n\t\t\tmediaModel.set('view', type);\n\t\t}, this);\n\t},\n\n\tbindEvents: function () {\n\t\tthis.$window.off(this.resizeEvent).on(this.resizeEvent, _.debounce(this.setColumns, 50));\n\t},\n\n\tsetColumns: function () {\n\t\tvar prev = this.columns,\n\t\t\twidth = this.$el.width();\n\n\t\tif (width) {\n\t\t\tthis.columns = Math.min(Math.round(width / this.options.idealColumnWidth), 12) || 1;\n\n\t\t\tif (!prev || prev !== this.columns) {\n\t\t\t\tthis.$el.closest('.media-frame-content').attr('data-columns', this.columns);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * @param {wp.media.model.Video} attachment\n\t * @returns {wp.media.View}\n\t */\n\tcreateMediaView: function (attachment) {\n\t\tattachment.set('viewType', this.collection.mediaCollectionViewType);\n\t\tvar view = new MediaView({\n\t\t\tcontroller: this.controller,\n\t\t\tmodel: attachment,\n\t\t\tcollection: this.collection,\n\t\t\tselection: this.options.selection,\n\t\t});\n\t\tthis.registerSubview(view);\n\t\tthis._viewsByCid[attachment.cid] = view;\n\t\treturn view;\n\t},\n\n\tprepare: function () {\n\t\t// Create all of the Video views, and replace\n\t\t// the list in a single DOM operation.\n\t\tif (this.collection.length) {\n\t\t\tthis.views.set(this.collection.map(this.createMediaView, this));\n\n\t\t\t// If there are no elements, clear the views and load some.\n\t\t} else {\n\t\t\tthis.views.unset();\n\t\t\tthis.collection.more().done(this.scroll);\n\t\t}\n\t},\n\n\tready: function () {\n\t\t// Trigger the scroll event to check if we're within the\n\t\t// threshold to query for additional attachments.\n\t\tthis.scroll();\n\t},\n\n\tscroll: function () {\n\t\tvar view = this,\n\t\t\tel = this.options.scrollElement,\n\t\t\tscrollTop = el.scrollTop,\n\t\t\ttoolbar;\n\n\t\t// The scroll event occurs on the document, but the element\n\t\t// that should be checked is the document body.\n\t\tif (el === document) {\n\t\t\tel = document.body;\n\t\t\tscrollTop = $(document).scrollTop();\n\t\t}\n\n\t\tif (\n\t\t\tthis.collection.hasMore !== 'function' ||\n\t\t\t!$(el).is(':visible') ||\n\t\t\t!this.collection.hasMore()\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\ttoolbar = this.views.parent.toolbar;\n\n\t\t// Show the spinner only if we are close to the bottom.\n\t\tif (el.scrollHeight - (scrollTop + el.clientHeight) < el.clientHeight / 3) {\n\t\t\ttoolbar.get('spinner').show();\n\t\t}\n\n\t\tif (el.scrollHeight < scrollTop + el.clientHeight * this.options.refreshThreshold) {\n\t\t\tthis.collection.more().done(function () {\n\t\t\t\tview.scroll();\n\t\t\t\ttoolbar.get('spinner').hide();\n\t\t\t});\n\t\t}\n\t},\n\n\tvideoMoveUp: function (videoView) {\n\t\tvar model = videoView.model;\n\t\tvar index = this.collection.indexOf(model);\n\t\tif (index > 0) {\n\t\t\tthis.collection.remove(model, { silent: true }); // silence this to stop excess event triggers\n\t\t\tthis.collection.add(model, { at: index - 1 });\n\t\t}\n\t\tthis.render();\n\t\tthis.playlistChanged();\n\t},\n\n\tvideoMoveDown: function (videoView) {\n\t\tvar model = videoView.model;\n\t\tvar index = this.collection.indexOf(model);\n\t\tif (index < this.collection.models.length) {\n\t\t\tthis.collection.remove(model, { silent: true }); // silence this to stop excess event triggers\n\t\t\tthis.collection.add(model, { at: index + 1 });\n\t\t}\n\t\tthis.render();\n\t\tthis.playlistChanged();\n\t},\n\n\tvideoRemove: function (videoView) {\n\t\tvar model = videoView.model;\n\t\tif (this.collection.indexOf(model) === -1) {\n\t\t\t// this is the library model\n\t\t\tthis.collection.add(model);\n\t\t} else {\n\t\t\t// this is the playlist collection\n\t\t\tthis.collection.remove(model, { silent: true }); // silence this to stop excess event triggers\n\t\t\tthis.playlistChanged();\n\t\t}\n\t\tthis.render();\n\t},\n\n\tvideoAdd: function (videoView) {\n\t\t/**\n\t\t * Video add is heard by two collections, the one containing the videos for the playlists\n\t\t * and the one containing the videos that we can add to them.\n\t\t * We handle the add by adding from the collection where it doesn't exist (the playlist) and removing\n\t\t * where it does (the library).\n\t\t */\n\t\tvar model = videoView.model;\n\t\tif (this.collection.indexOf(model) === -1) {\n\t\t\t// this is the playlist collection\n\t\t\tthis.collection.add(model);\n\t\t\tthis.playlistChanged();\n\t\t} else {\n\t\t\t// this is the library model\n\t\t\tthis.collection.remove(model, { silent: true });\n\t\t\tthis.render();\n\t\t}\n\t},\n\n\tplaylistChanged: function () {\n\t\tvar videoIds = [];\n\t\tthis.collection.each(function (video) {\n\t\t\tvideoIds.push(video.id);\n\t\t});\n\t\tthis.videoIds = videoIds;\n\t\t// var syncPlaylist = _.throttle(_.bind(this.syncPlaylist, this), 2000);\n\t\tthis.syncPlaylist();\n\t},\n\n\tsyncPlaylist: function () {\n\t\twpbc.broadcast.trigger('playlist:changed', this.videoIds);\n\t},\n});\n","var App = {\n\trenderMediaManager: function (mediaType) {\n\t\tvar brightcoveMediaContainer = $('.brightcove-media-' + mediaType);\n\t\tvar content_ifr = document.getElementById('content_ifr');\n\t\tif (brightcoveMediaContainer.length) {\n\t\t\tvar brightcoveMediaManager = new BrightcoveMediaManagerView({\n\t\t\t\tel: brightcoveMediaContainer,\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'page',\n\t\t\t\tpreload: true,\n\t\t\t\tmode: 'manager',\n\t\t\t\tsearch: '',\n\t\t\t\taccounts: 'all',\n\t\t\t\ttags: 'all',\n\t\t\t\tmediaType: mediaType,\n\t\t\t\tviewType: 'grid',\n\t\t\t});\n\t\t\tbrightcoveMediaManager.render();\n\t\t}\n\t},\n\n\tload: function () {\n\t\twpbc.requests = [];\n\t\twpbc.responses = {};\n\t\twpbc.broadcast = _.extend({}, Backbone.Events); // pubSub object\n\n\t\tthis.loaded();\n\t},\n\n\tloaded: function () {\n\t\tvar brightcoveModalContainer = $('.brightcove-modal');\n\n\t\tvar router = new BrightcoveRouter();\n\t\twpbc.triggerModal = function () {\n\t\t\tif (!wpbc.modal) {\n\t\t\t\twpbc.modal = new BrightcoveModalView({\n\t\t\t\t\tel: brightcoveModalContainer,\n\t\t\t\t\ttab: 'videos',\n\t\t\t\t});\n\t\t\t\twpbc.modal.render();\n\t\t\t\twpbc.modal.$el.find('.spinner').addClass('is-active');\n\t\t\t} else {\n\t\t\t\twpbc.modal.$el.show();\n\t\t\t}\n\n\t\t\t// Prevent body scrolling by adding a class to 'body'.\n\t\t\t$('body').addClass('modal-open');\n\t\t};\n\n\t\tvar bc_sanitize_ids = function (id) {\n\t\t\treturn id.replace(/\\D/g, '');\n\t\t};\n\n\t\t// Load the appropriate media type manager into the container element,\n\t\t// We only support loading one per page.\n\t\t_.each(['videos', 'playlists'], function (mediaType) {\n\t\t\tApp.renderMediaManager(mediaType);\n\t\t});\n\n\t\t$('.account-toggle-button').on('click', function (event) {\n\t\t\tevent.preventDefault();\n\t\t\t$(this).hide();\n\t\t\t$('.brightcove-account-row.hidden').show();\n\t\t});\n\n\t\t$('.brightcove-add-new-video').on('click', function (e) {\n\t\t\te.preventDefault();\n\t\t\trouter.navigate('add-new-brightcove-video', { trigger: true });\n\t\t});\n\n\t\t$(document).on('click', '.brightcove-add-media', function (e) {\n\t\t\te.preventDefault();\n\t\t\twpbc.triggerModal();\n\t\t\twpbc.modal.target = e.currentTarget.dataset.target;\n\t\t});\n\n\t\t$(document).keyup(function (e) {\n\t\t\tif (e.keyCode === 27) {\n\t\t\t\t// Close modal on ESCAPE if it's open.\n\t\t\t\twpbc.broadcast.trigger('close:modal');\n\t\t\t}\n\t\t});\n\n\t\t$('a.brightcove-action-delete-source').on('click', function (e) {\n\t\t\tvar message = $(this).data('alert-message');\n\t\t\tif (!confirm(message)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t},\n};\n\njQuery(document).ready(function () {\n\tApp.load();\n\tvar router = new BrightcoveRouter();\n\tif (!Backbone.History.started) {\n\t\tBackbone.history.start();\n\t}\n});\n"]} \ No newline at end of file diff --git a/assets/js/brightcove-admin.min.js b/assets/js/brightcove-admin.min.js index 1269545f..6f965cf5 100644 --- a/assets/js/brightcove-admin.min.js +++ b/assets/js/brightcove-admin.min.js @@ -1,4 +1,4 @@ ( function( $ ){ -var MediaModel=Backbone.Model.extend({sync:function(e,t,i){var a=null;if(_.find(wpbc.preload.accounts,function(e,t){if(e.account_id===this.get("account_id"))return a=t,!0},this),_.isUndefined(this.id))return $.Deferred().rejectWith(this).promise();if("read"===e)return(i=i||{}).context=this,i.data=_.extend(i.data||{},{action:"bc_media_fetch",id:this.id}),wp.media.ajax(i);if("update"===e){(i=i||{}).context=this,i.data=_.extend(i.data||{},{account:a,action:"bc_media_update",description:this.get("description"),long_description:this.get("long_description"),name:this.get("name"),nonce:wpbc.preload.nonce,tags:this.get("tags"),oldFolderId:this.get("oldFolderId"),folderId:this.get("folderId"),type:this.get("mediaType"),custom_fields:this.get("custom_fields"),history:this.get("_change_history"),poster:this.get("poster"),thumbnail:this.get("thumbnail"),captions:this.get("captions"),labels:this.get("labels")});var s=this.get("video_ids");return s?(i.data.playlist_id=this.id,i.data.playlist_videos=s,i.data.type="playlists"):i.data.video_id=this.id,i.success=this.successFunction,i.error=this.failFunction,wpbc.broadcast.trigger("spinner:on"),wp.media.ajax(i)}if("delete"!==e)return Backbone.Model.prototype.sync.apply(this,arguments);var o=this;return(i=i||{}).data=_.extend(i.data||{},{account:a,action:"bc_media_delete",id:this.get("id"),nonce:wpbc.preload.nonce,type:this.get("mediaType")}),wp.media.ajax(i).done(function(e){o.destroyed=!0,wpbc.broadcast.trigger("delete:successful",e),"videos"!==o.get("mediaType")&&_.isUndefined(o.get("video_ids"))?wpbc.preload.playlists=void 0:wpbc.preload.videos=void 0,wpbc.responses={}}).fail(function(e){o.destroyed=!1,wpbc.broadcast.trigger("videoEdit:message",e,"error"),wpbc.broadcast.trigger("spinner:off")})},parse:function(e){return e&&(e.date=new Date(e.date),e.modified=new Date(e.modified),e)},getAccountName:function(){this.get("account_id");var e=_.findWhere(wpbc.preload.accounts,{account_id:this.get("account_id")});return void 0===e?this.getSelectedAccountName():e.account_name},getSelectedAccountName:function(){var e=document.getElementById("brightcove-media-source");return-1===e.selectedIndex?"unavailable":e.options[e.selectedIndex].text},getReadableDuration:function(){if(e=this.get("duration")){var e=Number(e/1e3),t=Math.floor(e/3600),i=Math.floor(e%3600/60),a=Math.floor(e%3600%60);return(0

');i.append(t),t.addClass(a).find(".message-text").text(e),t.delay(4e3).fadeOut(500,function(){$(this).remove(),wpbc.broadcast.trigger("upload:video")})},prepareUpload:function(){wpbc.uploads=wpbc.uploads||{},this.collection.each(function(e){wpbc.uploads[e.get("id")]={account:e.get("account"),name:e.get("fileName"),tags:e.get("tags")}}),wpbc.broadcast.trigger("uploader:startUpload")},fileAdded:function(e,t){1===this.collection.length&&this.render();e=new UploadView({model:e});e.render(),e.$el.appendTo(this.$el.find(".brightcove-pending-uploads"))},triggerUpload:function(){wpbc.broadcast.trigger("uploader:prepareUpload")},selectedItem:function(e){this.uploadDetails=new UploadDetailsView({model:e}),this.uploadDetails.render(),this.$el.find(".brightcove-pending-upload-details").remove(),this.uploadDetails.$el.appendTo(this.$el.find(".brightcove-upload-queued-files"))},render:function(e){this.collection.length?this.template=wp.template("brightcove-uploader-queued-files"):(this.template=wp.template("brightcove-uploader-inline"),this.uploadWindow.render(),this.uploadWindow.$el.appendTo($("body"))),this.$el.html(this.template(e)),this.collection.length?this.$el.find(".brightcove-start-upload").show():this.$el.find(".brightcove-start-upload").hide()}}),BrightcoveRouter=Backbone.Router.extend({routes:{"add-new-brightcove-video":"addNew"},addNew:function(){wpbc.broadcast.trigger("upload:video")}}),BrightcoveMediaManagerView=BrightcoveView.extend({tagName:"div",className:"brightcove-media",events:{},scrollHandler:function(){wpbc.broadcast.trigger("scroll:mediaGrid")},initialize:function(e){var t=wp.media.isTouchDevice?300:200;this.scrollHandler=_.chain(this.scrollHandler).bind(this).throttle(t).value(),this.options=e,this.mode=e.mode||"manager",e.preload=!!this.options.preload&&wpbc.preload[this.options.mediaType],this.model=new BrightcoveMediaManagerModel(e),this.toolbar=new ToolbarView({model:this.model}),this.uploader=new UploadVideoManagerView,this.model.set("accounts",wpbc.preload.accounts),this.model.set("activeAccount",e.account),this.listenTo(this.toolbar,"viewType",function(e){this.model.set("view",e)}),this.listenTo(wpbc.broadcast,"videoEdit:message",this.message),this.listenTo(wpbc.broadcast,"permanent:message",this.permanentMessage),this.listenTo(wpbc.broadcast,"remove:permanentMessage",function(){wpbc.permanentMessage&&wpbc.permanentMessage.remove(),this.$el.find(".brightcove-message").addClass("hidden")}),this.listenTo(this.model,"change:view",function(e,t){this.model.get("media-collection-view").setViewType(t)}),this.listenTo(this.model,"change:mode",function(e,t){"uploader"!==t&&wpbc.broadcast.trigger("uploader:clear")}),this.listenTo(wpbc.broadcast,"cancelPreview:media",function(e){this.clearPreview(),this.detailsView=void 0,this.model.set("mode","manager"),this.render(),wpbc.broadcast.trigger("toggle:insertButton")}),this.listenTo(wpbc.broadcast,"change:emptyPlaylists",function(t){var e=this.model.get("media-collection-view");this.model.set("mode","manager"),_.each(e.collection.models,function(e){"EXPLICIT"===e.get("type")&&0===e.get("video_ids").length&&(t?e.view.$el.hide():e.view.$el.show())})}),this.listenTo(wpbc.broadcast,"delete:successful",function(e){this.startGridView(),this.message(e,"success")}),this.listenTo(wpbc.broadcast,"change:activeAccount",function(e){this.clearPreview(),this.model.set("activeAccount",e),this.model.set("mode","manager"),this.render()}),this.listenTo(wpbc.broadcast,"change:tag",function(e){this.clearPreview(),this.model.set("tag",e)}),this.listenTo(wpbc.broadcast,"change:folder",function(e){this.clearPreview(),this.model.set("oldFolderId",this.model.get("folderId")),this.model.set("folderId",e)}),this.listenTo(wpbc.broadcast,"change:label",function(e){this.clearPreview(),this.model.set("oldLabelPath",this.model.get("labelPath")),this.model.set("labelPath",e)}),this.listenTo(wpbc.broadcast,"change:stateChanged",function(e){this.clearPreview(),this.model.set("oldState","oldstate"),this.model.set("state","newstate")}),this.listenTo(wpbc.broadcast,"change:date",function(e){this.clearPreview(),this.model.set("date",e)}),this.listenTo(wpbc.broadcast,"upload:video",function(){this.showUploader()}),this.listenTo(this.model,"change:search",function(e,t){this.model.get("search")}),this.listenTo(wpbc.broadcast,"start:gridview",function(){_.invoke(this.subviews,"remove"),this.detailsView=null,this.startGridView()}),this.listenTo(wpbc.broadcast,"tabChange",function(e){this.model.set(e),this.detailsView instanceof MediaDetailsView&&(this.detailsView.remove(),this.detailsView=void 0),this.render()}),this.listenTo(wpbc.broadcast,"edit:media",function(e){var t=this.model.get("mediaType");if("videos"===t){if("editVideo"===this.model.get("mode"))return!0;this.$el.find(".brightcove-message").addClass("hidden"),this.editView=new VideoEditView({model:e}),this.registerSubview(this.editView),this.model.set("mode","editVideo"),this.render()}else if("videoexperience"===t){if("editVideo"===this.model.get("mode"))return!0;this.$el.find(".brightcove-message").addClass("hidden"),this.editView=new VideoEditView({model:e}),this.registerSubview(this.editView),this.model.set("mode","editVideo"),this.render()}else{if("editPlaylist"===this.model.get("mode"))return!0;this.editView=new PlaylistEditView({model:e}),this.registerSubview(this.editView),this.model.set("mode","editPlaylist"),this.render()}}),this.listenTo(wpbc.broadcast,"preview:media",function(e,t){if("videos"===this.model.get("mediaType")){if("previewVideo"===this.model.get("mode"))return!0;this.previewView=new VideoPreviewView({model:e,shortcode:t}),this.registerSubview(this.previewView),this.model.set("mode","previewVideo"),this.render()}else this.model.set("mode","editPlaylist")}),this.listenTo(wpbc.broadcast,"change:searchTerm",function(e){this.clearPreview()}),this.listenTo(wpbc.broadcast,"select:media",function(e){if(e.model.collection&&"videoexperience"===e.model.collection.mediaType){e.$el.toggleClass("highlighted"),e.model.set("isSelected",e.$el.hasClass("highlighted"));var t=_.filter(e.model.collection.models,function(e){return e.get("isSelected")}),t=_.map(t,function(e){return e.get("id")});this.detailsView.model.set("id",t),_.isEmpty(t)&&"videoexperience"!==this.model.get("mediaType")?(wpbc.broadcast.trigger("toggle:insertButton"),$("#shortcode").val("")):wpbc.broadcast.trigger("toggle:insertButton","enabled")}else if(this.detailsView&&this.detailsView.model===e.model)this.detailsView.$el.toggle(),e.$el.toggleClass("highlighted"),this.model.get("media-collection-view").$el.toggleClass("menu-visible"),wpbc.broadcast.trigger("toggle:insertButton");else{this.clearPreview(),this.detailsView=new MediaDetailsView({model:e.model,el:$(".brightcove.media-frame-menu"),mediaType:this.model.get("mediaType")}),this.registerSubview(this.detailsView),this.detailsView.render(),this.detailsView.$el.toggle(!0);const i=$(".brightcove-modal .media-frame-content").first();if(i.length){t=$("#brightcove-media-frame-content").outerHeight()-this.detailsView.$el.outerHeight();let e=i.scrollTop()-$("#brightcove-media-frame-router").outerHeight()+25;e>t&&(e=t),this.detailsView.$el.css("top",0

");t.text(e),a.html(t),a.removeClass("hidden"),i?(wpbc.permanentMessage&&wpbc.permanentMessage.remove(),wpbc.permanentMessage=t):(a.addClass("notice is-dismissible"),this.makeNoticesDismissible()),$("html, body").animate({scrollTop:0},"fast")},makeNoticesDismissible:function(){$(".notice.is-dismissible").each(function(){var t=$(this),e=$(''),i=commonL10n.dismiss||"";e.find(".screen-reader-text").text(i),e.on("click.wp-dismiss-notice",function(e){e.preventDefault(),t.fadeTo(100,0,function(){t.slideUp(100,function(){t.addClass("hidden").css({opacity:1,"margin-bottom":0,display:""}).empty()})})}),t.append(e)})},showUploader:function(){this.model.set("mode","uploader"),this.render()},permanentMessage:function(e){this.message(e,"error",!0)},render:function(){var e,t,i=this.model.get("options"),a=this.model.get("mode");return _.invoke(this.subviews,"remove"),"uploader"===a?(this.template=wp.template("brightcove-uploader-container"),this.$el.empty(),this.$el.html(this.template(i)),this.uploader.render(),this.uploader.delegateEvents(),this.uploader.$el.appendTo($(".brightcove-uploader"))):"manager"===a?(this.template=wp.template("brightcove-media"),this.$el.html(this.template(i)),this.toolbar.render(),this.toolbar.delegateEvents(),this.toolbar.$el.show(),this.toolbar.$el.appendTo(this.$el.find(".media-frame-router")),(t=this.model.get("media-collection-view")).render(),t.delegateEvents(),(i=this.$el.find(".media-frame-content")).on("scroll",this.scrollHandler),t.$el.appendTo(i),wpbc.initialSync&&(wpbc.broadcast.trigger("remove:permanentMessage"),wpbc.broadcast.trigger("permanent:message",wpbc.preload.messages.ongoingSync)),"videoexperience"===this.model.get("mediaType")&&(this.detailsView=new MediaDetailsView({model:new MediaModel(this.model.attributes),el:$(".brightcove.media-frame-menu"),mediaType:this.model.get("mediaType")}),this.registerSubview(this.detailsView),this.detailsView.render(),this.detailsView.$el.toggle(!0),wpbc.broadcast.trigger("toggle:insertButton","enabled"),this.model.get("media-collection-view").$el.addClass("menu-visible"))):"editVideo"===a?(this.toolbar.$el.hide(),(e=this.$el.find(".media-frame-content")).empty(),this.editView.render(),this.editView.delegateEvents(),this.editView.$el.appendTo(e),this.$el.find(".brightcove.media-frame-content").addClass("edit-view")):"editPlaylist"===a?(this.toolbar.$el.hide(),(e=this.$el).empty(),e.html('
'),e=e.find(".playlist-edit-container"),this.editView.render(),this.editView.delegateEvents(),this.editView.$el.appendTo(e),e.addClass("playlist")):"previewVideo"===a&&(this.toolbar.$el.hide(),(e=this.$el.find(".media-frame-content")).empty(),this.previewView.render(),this.detailsView.render({detailsMode:"preview"}),this.previewView.delegateEvents(),this.previewView.$el.appendTo(e),this.$el.find(".brightcove.media-frame-toolbar").hide(),brightcove.createExperiences()),"editPlaylist"!==a&&this.$el.find(".media-frame-content").removeClass("playlist"),this}}),BrightcoveModalView=BrightcoveView.extend({tagName:"div",className:"media-modal brightcove",template:wp.template("brightcove-media-modal"),events:{"click .brightcove.media-menu-item":"changeTab","click .brightcove.media-button-insert":"insertIntoPost","click .media-modal-close":"closeModal","click .brightcove.save-sync":"saveSync","click .brightcove.button.back":"back"},initialize:function(e){this.model=new BrightcoveModalModel({tab:e.tab}),this.brightcoveMediaManager=new BrightcoveMediaManagerView(this.model.getMediaManagerSettings()),this.registerSubview(this.brightcoveMediaManager),this.listenTo(wpbc.broadcast,"toggle:insertButton",function(e){this.toggleInsertButton(e)}),this.listenTo(wpbc.broadcast,"close:modal",this.closeModal)},saveSync:function(e){wpbc.broadcast.trigger("save:media",e)},back:function(e){wpbc.broadcast.trigger("back:editvideo",e)},insertIntoPost:function(e){e.preventDefault(),$(e.currentTarget).hasClass("disabled")||(wpbc.shortcode=$("#shortcode").val(),wpbc.broadcast.trigger("insert:shortcode"))},toggleInsertButton:function(e){var t=this.$el.find(".brightcove.media-button-insert"),i=$(".attachment.highlighted").find(".processing").length;t.show(),1!==i&&("enabled"===e||"disabled"!==e&&void 0!==t.attr("disabled"))?t.removeAttr("disabled"):t.attr("disabled","disabled")},changeTab:function(e){var t;e.preventDefault(),$(e.target).hasClass("active")||($(e.target).addClass("active"),t=_.without(e.target.classList,"media-menu-item","brightcove")[0],e=["videos","upload","playlists","video-experience","playlist-experience"],_.each(_.without(e,t),function(e){$(".brightcove.media-menu-item."+e).removeClass("active")}),_.contains(e,t)&&(this.model.set("tab",t),wpbc.broadcast.trigger("spinner:off"),wpbc.broadcast.trigger("tabChange",this.model.getMediaManagerSettings())))},closeModal:function(e){"editVideo"===wpbc.modal.brightcoveMediaManager.model.get("mode")&&wpbc.broadcast.trigger("start:gridview"),!_.isUndefined(e)&&$(e.currentTarget).parent().hasClass("disabled")||(this.$el.hide(),$("body").removeClass("modal-open"))},message:function(e){this.$el.find(".brightcove-message")},render:function(e){this.$el.html(this.template(e)),this.brightcoveMediaManager.render(),this.brightcoveMediaManager.$el.appendTo(this.$el.find(".media-frame-content")),this.listenTo(wpbc.broadcast,"edit:media",function(e,t){"videos"===t?(this.$el.find(".brightcove.button.save-sync").show(),this.$el.find(".brightcove.button.back").show()):(this.$el.find(".brightcove.button.save-sync").hide(),this.$el.find(".brightcove.button.back").hide()),this.$el.find(".brightcove.media-button-insert").hide()}),this.listenTo(wpbc.broadcast,"save:media back:editvideo start:gridView",function(){this.$el.find(".brightcove.button.save-sync").hide(),this.$el.find(".brightcove.button.back").hide(),this.$el.find(".brightcove.media-button-insert").show(),wpbc.broadcast.trigger("toggle:insertButton")})}}),MediaDetailsView=BrightcoveView.extend({tagName:"div",className:"media-details",attributes:function(){return{tabIndex:0,role:"checkbox","aria-label":this.model.get("title"),"aria-checked":!1,"data-id":this.model.get("id")}},events:{"click .brightcove.edit.button":"triggerEditMedia","click .brightcove.preview.button":"triggerPreviewMedia","click .brightcove.back.button":"triggerCancelPreviewMedia",'click .playlist-details input[name="embed-style"]':"togglePlaylistSizing","change #aspect-ratio":"toggleUnits","change #pictureinpicture":"togglePictureinpicture",'change .experience-details input[name="sizing"],.experience-details input[name="embed-style"]':"toggleExperienceUnits",'change #video-player, #autoplay, #pictureinpicture, #playsinline, #mute, input[name="embed-style"], input[name="sizing"], #aspect-ratio, #width, #height':"generateShortcode","change #generate-shortcode":"toggleShortcodeGeneration"},triggerEditMedia:function(e){e.preventDefault(),wpbc.broadcast.trigger("edit:media",this.model,this.mediaType)},triggerPreviewMedia:function(e){e.preventDefault();e=$("#shortcode").val();wpbc.broadcast.trigger("preview:media",this.model,e)},triggerCancelPreviewMedia:function(e){wpbc.broadcast.trigger("cancelPreview:media",this.mediaType)},togglePlaylistSizing:function(e){var t=$('.playlist-details input[name="embed-style"]:checked').val(),i=$("#sizing-fixed, #sizing-responsive");"iframe"===t?i.removeAttr("disabled"):i.attr("disabled",!0)},toggleUnits:function(e){var t,i,a=$("#aspect-ratio").val();"custom"===a?$("#height").removeAttr("readonly"):(t=$("#height"),i=$("#width").val(),t.attr("readonly",!0),0this.el.scrollHeight&&(this.collection.pageNumber+=1,this.loadMoreMediaItems())},initialize:function(e){this.fetchingResults=!1,this.listenTo(wpbc.broadcast,"fetch:finished",function(){this.fetchingResults=!1}),this.listenTo(wpbc.broadcast,"fetch:apiError",this.handleAPIError);var t=wp.media.isTouchDevice?300:200;this.scrollHandler=_.chain(this.scrollHandler).bind(this).throttle(t).value(),this.listenTo(wpbc.broadcast,"scroll:mediaGrid",this.scrollHandler),e=e||{},this.el.id=_.uniqueId("__attachments-view-"),!this.collection&&e.videoIds?(this.collection=new MediaCollection(null,{videoIds:e.videoIds,activeAccount:e.activeAccount,mediaCollectionViewType:e.mediaCollectionViewType}),this.listenTo(wpbc.broadcast,"playlist:moveUp",this.videoMoveUp),this.listenTo(wpbc.broadcast,"playlist:moveDown",this.videoMoveDown),this.listenTo(wpbc.broadcast,"playlist:remove",this.videoRemove),this.listenTo(wpbc.broadcast,"playlist:add",this.videoAdd)):this.collection||"libraryPlaylists"!==e.mediaCollectionViewType||(this.collection=new MediaCollection(null,{excludeVideoIds:e.excludeVideoIds,activeAccount:e.activeAccount,mediaCollectionViewType:e.mediaCollectionViewType}),this.listenTo(wpbc.broadcast,"playlist:remove",this.videoRemove),this.listenTo(wpbc.broadcast,"playlist:add",this.videoAdd)),_.defaults(this.options,{refreshSensitivity:wp.media.isTouchDevice?300:200,refreshThreshold:3,VideoView:wp.media.view.Video,sortable:!1,resize:!0,idealColumnWidth:202}),this._viewsByCid={},this.resizeEvent="resize.media-modal-columns",this.listenTo(this.collection,"add",function(e){this.views.add(this.createMediaView(e),{at:this.collection.indexOf(e)})},this),this.listenTo(this.collection,"remove",function(e){e&&(e.view?e.view.remove():e.cid&&this._viewsByCid[e.cid]&&this._viewsByCid[e.cid].remove())},this),this.listenTo(this.collection,"reset",this.render),this.scroll=_.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value(),this.options.scrollElement=this.options.scrollElement||this.el,$(this.options.scrollElement).on("scroll",this.scroll),_.bindAll(this,"setColumns"),this.options.resize&&(this.on("ready",this.bindEvents),_.defer(this.setColumns,this))},handleAPIError:function(){this.el.innerText=wpbc.str_apifailure},render:function(){this.listenTo(wpbc.broadcast,"spinner:off",function(){$("#js-media-loading").css("display","none")}),this.$el.empty(),this.collection.each(function(e){e.view=new MediaView({model:e}),this.registerSubview(e.view),e.view.render(),e.view.delegateEvents(),e.view.$el.appendTo(this.$el),wpbc.broadcast.trigger("spinner:off")},this)},setViewType:function(t){this.collection.each(function(e){e.set("view",t)},this)},bindEvents:function(){this.$window.off(this.resizeEvent).on(this.resizeEvent,_.debounce(this.setColumns,50))},setColumns:function(){var e=this.columns,t=this.$el.width();t&&(this.columns=Math.min(Math.round(t/this.options.idealColumnWidth),12)||1,e&&e===this.columns||this.$el.closest(".media-frame-content").attr("data-columns",this.columns))},createMediaView:function(e){e.set("viewType",this.collection.mediaCollectionViewType);var t=new MediaView({controller:this.controller,model:e,collection:this.collection,selection:this.options.selection});return this.registerSubview(t),this._viewsByCid[e.cid]=t},prepare:function(){this.collection.length?this.views.set(this.collection.map(this.createMediaView,this)):(this.views.unset(),this.collection.more().done(this.scroll))},ready:function(){this.scroll()},scroll:function(){var e,t=this,i=this.options.scrollElement,a=i.scrollTop;i===document&&(i=document.body,a=$(document).scrollTop()),"function"===this.collection.hasMore&&$(i).is(":visible")&&this.collection.hasMore()&&(e=this.views.parent.toolbar,i.scrollHeight-(a+i.clientHeight)

');i.append(t),t.addClass(a).find(".message-text").text(e),t.delay(4e3).fadeOut(500,function(){$(this).remove(),wpbc.broadcast.trigger("upload:video")})},prepareUpload:function(){wpbc.uploads=wpbc.uploads||{},this.collection.each(function(e){wpbc.uploads[e.get("id")]={account:e.get("account"),name:e.get("fileName"),tags:e.get("tags")}}),wpbc.broadcast.trigger("uploader:startUpload")},fileAdded:function(e,t){1===this.collection.length&&this.render();e=new UploadView({model:e});e.render(),e.$el.appendTo(this.$el.find(".brightcove-pending-uploads"))},triggerUpload:function(){wpbc.broadcast.trigger("uploader:prepareUpload")},selectedItem:function(e){this.uploadDetails=new UploadDetailsView({model:e}),this.uploadDetails.render(),this.$el.find(".brightcove-pending-upload-details").remove(),this.uploadDetails.$el.appendTo(this.$el.find(".brightcove-upload-queued-files"))},render:function(e){this.collection.length?this.template=wp.template("brightcove-uploader-queued-files"):(this.template=wp.template("brightcove-uploader-inline"),this.uploadWindow.render(),this.uploadWindow.$el.appendTo($("body"))),this.$el.html(this.template(e)),this.collection.length?this.$el.find(".brightcove-start-upload").show():this.$el.find(".brightcove-start-upload").hide()}}),BrightcoveRouter=Backbone.Router.extend({routes:{"add-new-brightcove-video":"addNew"},addNew:function(){wpbc.broadcast.trigger("upload:video")}}),BrightcoveMediaManagerView=BrightcoveView.extend({tagName:"div",className:"brightcove-media",events:{},scrollHandler:function(){wpbc.broadcast.trigger("scroll:mediaGrid")},initialize:function(e){var t=wp.media.isTouchDevice?300:200;this.scrollHandler=_.chain(this.scrollHandler).bind(this).throttle(t).value(),this.options=e,this.mode=e.mode||"manager",e.preload=!!this.options.preload&&wpbc.preload[this.options.mediaType],this.model=new BrightcoveMediaManagerModel(e),this.toolbar=new ToolbarView({model:this.model}),this.uploader=new UploadVideoManagerView,this.model.set("accounts",wpbc.preload.accounts),this.model.set("activeAccount",e.account),this.listenTo(this.toolbar,"viewType",function(e){this.model.set("view",e)}),this.listenTo(wpbc.broadcast,"videoEdit:message",this.message),this.listenTo(wpbc.broadcast,"permanent:message",this.permanentMessage),this.listenTo(wpbc.broadcast,"remove:permanentMessage",function(){wpbc.permanentMessage&&wpbc.permanentMessage.remove(),this.$el.find(".brightcove-message").addClass("hidden")}),this.listenTo(this.model,"change:view",function(e,t){this.model.get("media-collection-view").setViewType(t)}),this.listenTo(this.model,"change:mode",function(e,t){"uploader"!==t&&wpbc.broadcast.trigger("uploader:clear")}),this.listenTo(wpbc.broadcast,"cancelPreview:media",function(e){this.clearPreview(),this.detailsView=void 0,this.model.set("mode","manager"),this.render(),wpbc.broadcast.trigger("toggle:insertButton")}),this.listenTo(wpbc.broadcast,"change:emptyPlaylists",function(t){var e=this.model.get("media-collection-view");this.model.set("mode","manager"),_.each(e.collection.models,function(e){"EXPLICIT"===e.get("type")&&0===e.get("video_ids").length&&(t?e.view.$el.hide():e.view.$el.show())})}),this.listenTo(wpbc.broadcast,"delete:successful",function(e){this.startGridView(),this.message(e,"success")}),this.listenTo(wpbc.broadcast,"change:activeAccount",function(e){this.clearPreview(),this.model.set("activeAccount",e),this.model.set("mode","manager"),this.render()}),this.listenTo(wpbc.broadcast,"change:tag",function(e){this.clearPreview(),this.model.set("tag",e)}),this.listenTo(wpbc.broadcast,"change:folder",function(e){this.clearPreview(),this.model.set("oldFolderId",this.model.get("folderId")),this.model.set("folderId",e)}),this.listenTo(wpbc.broadcast,"change:label",function(e){this.clearPreview(),this.model.set("oldLabelPath",this.model.get("labelPath")),this.model.set("labelPath",e)}),this.listenTo(wpbc.broadcast,"change:stateChanged",function(e){this.clearPreview(),this.model.set("oldState","oldstate"),this.model.set("state","newstate")}),this.listenTo(wpbc.broadcast,"change:date",function(e){this.clearPreview(),this.model.set("date",e)}),this.listenTo(wpbc.broadcast,"upload:video",function(){this.showUploader()}),this.listenTo(this.model,"change:search",function(e,t){this.model.get("search")}),this.listenTo(wpbc.broadcast,"start:gridview",function(){_.invoke(this.subviews,"remove"),this.detailsView=null,this.startGridView()}),this.listenTo(wpbc.broadcast,"tabChange",function(e){this.model.set(e),this.detailsView instanceof MediaDetailsView&&(this.detailsView.remove(),this.detailsView=void 0),this.render()}),this.listenTo(wpbc.broadcast,"edit:media",function(e){var t=this.model.get("mediaType");if("videos"===t){if("editVideo"===this.model.get("mode"))return!0;this.$el.find(".brightcove-message").addClass("hidden"),this.editView=new VideoEditView({model:e}),this.registerSubview(this.editView),this.model.set("mode","editVideo"),this.render()}else if("videoexperience"===t){if("editVideo"===this.model.get("mode"))return!0;this.$el.find(".brightcove-message").addClass("hidden"),this.editView=new VideoEditView({model:e}),this.registerSubview(this.editView),this.model.set("mode","editVideo"),this.render()}else{if("editPlaylist"===this.model.get("mode"))return!0;this.editView=new PlaylistEditView({model:e}),this.registerSubview(this.editView),this.model.set("mode","editPlaylist"),this.render()}}),this.listenTo(wpbc.broadcast,"preview:media",function(e,t){if("videos"===this.model.get("mediaType")){if("previewVideo"===this.model.get("mode"))return!0;this.previewView=new VideoPreviewView({model:e,shortcode:t}),this.registerSubview(this.previewView),this.model.set("mode","previewVideo"),this.render()}else this.model.set("mode","editPlaylist")}),this.listenTo(wpbc.broadcast,"change:searchTerm",function(e){this.clearPreview()}),this.listenTo(wpbc.broadcast,"select:media",function(e){if(e.model.collection&&"videoexperience"===e.model.collection.mediaType){e.$el.toggleClass("highlighted"),e.model.set("isSelected",e.$el.hasClass("highlighted"));var t=_.filter(e.model.collection.models,function(e){return e.get("isSelected")}),t=_.map(t,function(e){return e.get("id")});this.detailsView.model.set("id",t),_.isEmpty(t)&&"videoexperience"!==this.model.get("mediaType")?(wpbc.broadcast.trigger("toggle:insertButton"),$("#shortcode").val("")):wpbc.broadcast.trigger("toggle:insertButton","enabled")}else if(this.detailsView&&this.detailsView.model===e.model)this.detailsView.$el.toggle(),e.$el.toggleClass("highlighted"),this.model.get("media-collection-view").$el.toggleClass("menu-visible"),wpbc.broadcast.trigger("toggle:insertButton");else{this.clearPreview(),this.detailsView=new MediaDetailsView({model:e.model,el:$(".brightcove.media-frame-menu"),mediaType:this.model.get("mediaType")}),this.registerSubview(this.detailsView),this.detailsView.render(),this.detailsView.$el.toggle(!0);const i=$(".brightcove-modal .media-frame-content").first();if(i.length){t=$("#brightcove-media-frame-content").outerHeight()-this.detailsView.$el.outerHeight();let e=i.scrollTop()-$("#brightcove-media-frame-router").outerHeight()+25;e>t&&(e=t),this.detailsView.$el.css("top",0

");t.text(e),a.html(t),a.removeClass("hidden"),i?(wpbc.permanentMessage&&wpbc.permanentMessage.remove(),wpbc.permanentMessage=t):(a.addClass("notice is-dismissible"),this.makeNoticesDismissible()),$("html, body").animate({scrollTop:0},"fast")},makeNoticesDismissible:function(){$(".notice.is-dismissible").each(function(){var t=$(this),e=$(''),i=commonL10n.dismiss||"";e.find(".screen-reader-text").text(i),e.on("click.wp-dismiss-notice",function(e){e.preventDefault(),t.fadeTo(100,0,function(){t.slideUp(100,function(){t.addClass("hidden").css({opacity:1,"margin-bottom":0,display:""}).empty()})})}),t.append(e)})},showUploader:function(){this.model.set("mode","uploader"),this.render()},permanentMessage:function(e){this.message(e,"error",!0)},render:function(){var e,t,i=this.model.get("options"),a=this.model.get("mode");return _.invoke(this.subviews,"remove"),"uploader"===a?(this.template=wp.template("brightcove-uploader-container"),this.$el.empty(),this.$el.html(this.template(i)),this.uploader.render(),this.uploader.delegateEvents(),this.uploader.$el.appendTo($(".brightcove-uploader"))):"manager"===a?(this.template=wp.template("brightcove-media"),this.$el.html(this.template(i)),this.toolbar.render(),this.toolbar.delegateEvents(),this.toolbar.$el.show(),this.toolbar.$el.appendTo(this.$el.find(".media-frame-router")),(t=this.model.get("media-collection-view")).render(),t.delegateEvents(),(i=this.$el.find(".media-frame-content")).on("scroll",this.scrollHandler),t.$el.appendTo(i),wpbc.initialSync&&(wpbc.broadcast.trigger("remove:permanentMessage"),wpbc.broadcast.trigger("permanent:message",wpbc.preload.messages.ongoingSync)),"videoexperience"===this.model.get("mediaType")&&(this.detailsView=new MediaDetailsView({model:new MediaModel(this.model.attributes),el:$(".brightcove.media-frame-menu"),mediaType:this.model.get("mediaType")}),this.registerSubview(this.detailsView),this.detailsView.render(),this.detailsView.$el.toggle(!0),wpbc.broadcast.trigger("toggle:insertButton","enabled"),this.model.get("media-collection-view").$el.addClass("menu-visible"))):"editVideo"===a?(this.toolbar.$el.hide(),(e=this.$el.find(".media-frame-content")).empty(),this.editView.render(),this.editView.delegateEvents(),this.editView.$el.appendTo(e),this.$el.find(".brightcove.media-frame-content").addClass("edit-view")):"editPlaylist"===a?(this.toolbar.$el.hide(),(e=this.$el).empty(),e.html('
'),e=e.find(".playlist-edit-container"),this.editView.render(),this.editView.delegateEvents(),this.editView.$el.appendTo(e),e.addClass("playlist")):"previewVideo"===a&&(this.toolbar.$el.hide(),(e=this.$el.find(".media-frame-content")).empty(),this.previewView.render(),this.detailsView.render({detailsMode:"preview"}),this.previewView.delegateEvents(),this.previewView.$el.appendTo(e),this.$el.find(".brightcove.media-frame-toolbar").hide(),brightcove.createExperiences()),"editPlaylist"!==a&&this.$el.find(".media-frame-content").removeClass("playlist"),this}}),BrightcoveModalView=BrightcoveView.extend({tagName:"div",className:"media-modal brightcove",template:wp.template("brightcove-media-modal"),events:{"click .brightcove.media-menu-item":"changeTab","click .brightcove.media-button-insert":"insertIntoPost","click .media-modal-close":"closeModal","click .brightcove.save-sync":"saveSync","click .brightcove.button.back":"back"},initialize:function(e){this.model=new BrightcoveModalModel({tab:e.tab}),this.brightcoveMediaManager=new BrightcoveMediaManagerView(this.model.getMediaManagerSettings()),this.registerSubview(this.brightcoveMediaManager),this.listenTo(wpbc.broadcast,"toggle:insertButton",function(e){this.toggleInsertButton(e)}),this.listenTo(wpbc.broadcast,"close:modal",this.closeModal)},saveSync:function(e){wpbc.broadcast.trigger("save:media",e)},back:function(e){wpbc.broadcast.trigger("back:editvideo",e)},insertIntoPost:function(e){e.preventDefault(),$(e.currentTarget).hasClass("disabled")||(wpbc.shortcode=$("#shortcode").val(),wpbc.broadcast.trigger("insert:shortcode"))},toggleInsertButton:function(e){var t=this.$el.find(".brightcove.media-button-insert"),i=$(".attachment.highlighted").find(".processing").length;t.show(),1!==i&&("enabled"===e||"disabled"!==e&&void 0!==t.attr("disabled"))?t.removeAttr("disabled"):t.attr("disabled","disabled")},changeTab:function(e){var t;e.preventDefault(),$(e.target).hasClass("active")||($(e.target).addClass("active"),t=_.without(e.target.classList,"media-menu-item","brightcove")[0],e=["videos","upload","playlists","video-experience","playlist-experience"],_.each(_.without(e,t),function(e){$(".brightcove.media-menu-item."+e).removeClass("active")}),_.contains(e,t)&&(this.model.set("tab",t),wpbc.broadcast.trigger("spinner:off"),wpbc.broadcast.trigger("tabChange",this.model.getMediaManagerSettings())))},closeModal:function(e){"editVideo"===wpbc.modal.brightcoveMediaManager.model.get("mode")&&wpbc.broadcast.trigger("start:gridview"),!_.isUndefined(e)&&$(e.currentTarget).parent().hasClass("disabled")||(this.$el.hide(),$("body").removeClass("modal-open"))},message:function(e){this.$el.find(".brightcove-message")},render:function(e){this.$el.html(this.template(e)),this.brightcoveMediaManager.render(),this.brightcoveMediaManager.$el.appendTo(this.$el.find(".media-frame-content")),this.listenTo(wpbc.broadcast,"edit:media",function(e,t){"videos"===t?(this.$el.find(".brightcove.button.save-sync").show(),this.$el.find(".brightcove.button.back").show()):(this.$el.find(".brightcove.button.save-sync").hide(),this.$el.find(".brightcove.button.back").hide()),this.$el.find(".brightcove.media-button-insert").hide()}),this.listenTo(wpbc.broadcast,"save:media back:editvideo start:gridView",function(){this.$el.find(".brightcove.button.save-sync").hide(),this.$el.find(".brightcove.button.back").hide(),this.$el.find(".brightcove.media-button-insert").show(),wpbc.broadcast.trigger("toggle:insertButton")})}}),MediaDetailsView=BrightcoveView.extend({tagName:"div",className:"media-details",attributes:function(){return{tabIndex:0,role:"checkbox","aria-label":this.model.get("title"),"aria-checked":!1,"data-id":this.model.get("id")}},events:{"click .brightcove.edit.button":"triggerEditMedia","click .brightcove.preview.button":"triggerPreviewMedia","click .brightcove.back.button":"triggerCancelPreviewMedia",'click .playlist-details input[name="embed-style"]':"togglePlaylistSizing","change #aspect-ratio":"toggleUnits","change #pictureinpicture":"togglePictureinpicture",'change .experience-details input[name="sizing"],.experience-details input[name="embed-style"]':"toggleExperienceUnits",'change #video-player, #autoplay, #pictureinpicture, #playsinline, #mute, input[name="embed-style"], input[name="sizing"], #aspect-ratio, #width, #height':"generateShortcode","change #generate-shortcode":"toggleShortcodeGeneration"},triggerEditMedia:function(e){e.preventDefault(),wpbc.broadcast.trigger("edit:media",this.model,this.mediaType)},triggerPreviewMedia:function(e){e.preventDefault();e=$("#shortcode").val();wpbc.broadcast.trigger("preview:media",this.model,e)},triggerCancelPreviewMedia:function(e){wpbc.broadcast.trigger("cancelPreview:media",this.mediaType)},togglePlaylistSizing:function(e){var t=$('.playlist-details input[name="embed-style"]:checked').val(),i=$("#sizing-fixed, #sizing-responsive");"iframe"===t?i.removeAttr("disabled"):i.attr("disabled",!0)},toggleUnits:function(e){var t,i,a=$("#aspect-ratio").val();"custom"===a?$("#height").removeAttr("readonly"):(t=$("#height"),i=$("#width").val(),t.attr("readonly",!0),0this.el.scrollHeight&&(this.collection.pageNumber+=1,this.loadMoreMediaItems())},initialize:function(e){this.fetchingResults=!1,this.listenTo(wpbc.broadcast,"fetch:finished",function(){this.fetchingResults=!1}),this.listenTo(wpbc.broadcast,"fetch:apiError",this.handleAPIError);var t=wp.media.isTouchDevice?300:200;this.scrollHandler=_.chain(this.scrollHandler).bind(this).throttle(t).value(),this.listenTo(wpbc.broadcast,"scroll:mediaGrid",this.scrollHandler),e=e||{},this.el.id=_.uniqueId("__attachments-view-"),!this.collection&&e.videoIds?(this.collection=new MediaCollection(null,{videoIds:e.videoIds,activeAccount:e.activeAccount,mediaCollectionViewType:e.mediaCollectionViewType}),this.listenTo(wpbc.broadcast,"playlist:moveUp",this.videoMoveUp),this.listenTo(wpbc.broadcast,"playlist:moveDown",this.videoMoveDown),this.listenTo(wpbc.broadcast,"playlist:remove",this.videoRemove),this.listenTo(wpbc.broadcast,"playlist:add",this.videoAdd)):this.collection||"libraryPlaylists"!==e.mediaCollectionViewType||(this.collection=new MediaCollection(null,{excludeVideoIds:e.excludeVideoIds,activeAccount:e.activeAccount,mediaCollectionViewType:e.mediaCollectionViewType}),this.listenTo(wpbc.broadcast,"playlist:remove",this.videoRemove),this.listenTo(wpbc.broadcast,"playlist:add",this.videoAdd)),_.defaults(this.options,{refreshSensitivity:wp.media.isTouchDevice?300:200,refreshThreshold:3,VideoView:wp.media.view.Video,sortable:!1,resize:!0,idealColumnWidth:202}),this._viewsByCid={},this.resizeEvent="resize.media-modal-columns",this.listenTo(this.collection,"add",function(e){this.views.add(this.createMediaView(e),{at:this.collection.indexOf(e)})},this),this.listenTo(this.collection,"remove",function(e){e&&(e.view?e.view.remove():e.cid&&this._viewsByCid[e.cid]&&this._viewsByCid[e.cid].remove())},this),this.listenTo(this.collection,"reset",this.render),this.scroll=_.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value(),this.options.scrollElement=this.options.scrollElement||this.el,$(this.options.scrollElement).on("scroll",this.scroll),_.bindAll(this,"setColumns"),this.options.resize&&(this.on("ready",this.bindEvents),_.defer(this.setColumns,this))},handleAPIError:function(){this.el.innerText=wpbc.str_apifailure},render:function(){this.listenTo(wpbc.broadcast,"spinner:off",function(){$("#js-media-loading").css("display","none")}),this.$el.empty(),this.collection.each(function(e){e.view=new MediaView({model:e}),this.registerSubview(e.view),e.view.render(),e.view.delegateEvents(),e.view.$el.appendTo(this.$el),wpbc.broadcast.trigger("spinner:off")},this)},setViewType:function(t){this.collection.each(function(e){e.set("view",t)},this)},bindEvents:function(){this.$window.off(this.resizeEvent).on(this.resizeEvent,_.debounce(this.setColumns,50))},setColumns:function(){var e=this.columns,t=this.$el.width();t&&(this.columns=Math.min(Math.round(t/this.options.idealColumnWidth),12)||1,e&&e===this.columns||this.$el.closest(".media-frame-content").attr("data-columns",this.columns))},createMediaView:function(e){e.set("viewType",this.collection.mediaCollectionViewType);var t=new MediaView({controller:this.controller,model:e,collection:this.collection,selection:this.options.selection});return this.registerSubview(t),this._viewsByCid[e.cid]=t},prepare:function(){this.collection.length?this.views.set(this.collection.map(this.createMediaView,this)):(this.views.unset(),this.collection.more().done(this.scroll))},ready:function(){this.scroll()},scroll:function(){var e,t=this,i=this.options.scrollElement,a=i.scrollTop;i===document&&(i=document.body,a=$(document).scrollTop()),"function"===this.collection.hasMore&&$(i).is(":visible")&&this.collection.hasMore()&&(e=this.views.parent.toolbar,i.scrollHeight-(a+i.clientHeight)