diff --git a/Gruntfile.js b/Gruntfile.js
index fc8996b0..f438d389 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -1,5 +1,5 @@
module.exports = function ( grunt ) {
-
+ const sass = require('node-sass');
// Start out by loading the grunt modules we'll need
require ( 'load-grunt-tasks' ) ( grunt );
@@ -46,6 +46,7 @@ module.exports = function ( grunt ) {
production : {
options : {
+ implementation: sass,
style : 'expanded',
noCache : true
},
diff --git a/README.md b/README.md
index 08b591ce..d22502f7 100644
--- a/README.md
+++ b/README.md
@@ -60,6 +60,16 @@ http://httpd.apache.org/docs/current/mod/core.html#limitrequestbody (LimitReques
## Changelog
+##### 1.6.0
+
+* Enhancement: Gutenberg support.
+* Fix: Fixed a bug causing video previews not to show.
+* Fix: Fixed a bug causing playlist videos to not be listed.
+* Fix: Update to the 'brightcove_media_query_results' filter to allow $processed_results to be used.
+* Fix: Removal of deprecated options for Plupload.
+* Fix: Adding last two parameters to add_action to remove PHP 7.2 warnings.
+* Fix: Removal of hardcoded video page height.
+
##### 1.5.0
* Enhancement: Video Experience player.
diff --git a/assets/css/brightcove_video_connect.css b/assets/css/brightcove_video_connect.css
index 4c53ae97..ff4bdeb4 100644
--- a/assets/css/brightcove_video_connect.css
+++ b/assets/css/brightcove_video_connect.css
@@ -147,7 +147,6 @@ div.brightcove-uploader div.brightcove-messages .updated {
border-right: 1px solid #ddd;
border-top: none;
position: static;
- height: 600px;
width: calc(100% - 370px);
float: left;
margin-right: 30px;
diff --git a/assets/css/brightcove_video_connect.min.css b/assets/css/brightcove_video_connect.min.css
index 65b4dc7c..f2367cab 100644
--- a/assets/css/brightcove_video_connect.min.css
+++ b/assets/css/brightcove_video_connect.min.css
@@ -1 +1 @@
-div.brightcove-messages{text-align:left;width:calc(100% - 4px)}div.brightcove-messages .updated{margin-left:0;margin-bottom:15px}div.brightcove-uploader div.brightcove-messages .updated{margin:20px 15px 2px}.brightcove-file-uploader{text-align:center}.brightcove-upload-queued-files{display:table;width:calc(100% - 20px);border:1px solid #ddd}.brightcove-pending-upload td{cursor:pointer}.brightcove-pending-upload td:nth-child(1){width:35%}.brightcove-pending-upload td:nth-child(2){width:10%}.brightcove-pending-upload td:nth-child(3){width:20%}.brightcove-pending-upload td:nth-child(4){width:35%}.brightcove-pending-upload.selected{background-color:#35a3ca}.brightcove-pending-upload.selected td{color:#fff}.ingest-success{background-color:#00adff}.upload-success{color:#003148}.brightcove-pending-upload-details{width:30%;display:table-cell;padding:20px;background-color:#f3f3f3;text-align:left;vertical-align:top}.pending-uploads{display:table-cell;width:70%;text-align:left;vertical-align:top;background-color:#fff}.pending-uploads table.widefat{border:0}.pending-uploads .brightcove-start-upload{margin-left:10px;margin-bottom:10px}.brightcove-media .spinner,.brightcove-media-videos .spinner{float:none;margin:5px 0;vertical-align:top}.brightcove-modal .media-frame-content,.brightcove-modal .media-frame-router,.brightcove-modal .media-frame-title,.brightcove-modal .media-frame-toolbar{left:0}.brightcove-modal .brightcove-media{overflow:hidden}.brightcove-modal .brightcove .wp-filter{border:0;box-shadow:none;right:0;width:100%;margin:0}.brightcove-modal .brightcove .media-toolbar-secondary{padding:0;min-width:280px}.brightcove-modal .brightcove .media-toolbar-primary.search-form input[type=search]{float:left;padding-bottom:0;width:200px}.brightcove-modal .brightcove #media-search{float:left;margin-left:10px;margin-right:5px}.brightcove-modal .pending-uploads{width:calc(100% - 40px);display:block;margin:20px}.brightcove-modal .brightcove-upload-queued-files{border:0;width:100%}.brightcove-modal .brightcove.media-frame-content{padding:0 20px;width:100%}@media screen and (min-width:700px){.brightcove-modal .brightcove.media-frame-content{width:calc(100% - 390px)}}.brightcove-modal .brightcove.video-preview{margin-top:20px}.brightcove-modal .video-preview-frame .brightcove.media-frame-content{padding:20px;box-sizing:border-box;border-right:1px solid #ddd;transform:translate3d(0,0,0)}.brightcove-modal .video-preview-frame .brightcove.brightcove.media-frame-menu{padding-top:20px}@media screen and (max-width:900px){.media-frame:not(.hide-menu) .media-frame-menu{width:300px}}.brightcove.media-frame-menu .attachment-detail .playlist-details label.experiencelabel,.brightcove.media-frame-menu .attachment-detail .video-details label.experiencelabel,select.experienceplayer{width:100%}.bc-page-icon{padding-right:10px}.notice{margin:5px 20px 2px 0}.brightcove-media-videos .error{margin:5px 20px 10px 0;text-align:left}.brightcove-media.playlist,.brightcove.media-frame-content{border-bottom:none;border-right:1px solid #ddd;border-top:none;position:static;height:600px;width:calc(100% - 370px);float:left;margin-right:30px;padding-right:20px}.brightcove-media.playlist .video-preview,.brightcove.media-frame-content .video-preview{padding-bottom:56.25%;position:relative}.brightcove-media.playlist .video-preview iframe,.brightcove.media-frame-content .video-preview iframe{height:100%;position:absolute;width:100%}.brightcove-media.playlist .brightcove-buttons,.brightcove.media-frame-content .brightcove-buttons{float:right;margin-top:20px}.brightcove-media.playlist.edit-view,.brightcove.media-frame-content.edit-view{width:calc(100% - 20px);border-right:none;height:auto}.brightcove-media.playlist .video-edit,.brightcove.media-frame-content .video-edit{max-width:721px;padding:5px}.brightcove-buttons .delete{color:#a00;padding-top:6px;display:inline-block}.brightcove-buttons .delete:hover{color:red}.brightcove.media-frame-router{position:relative;left:0;top:auto;height:auto}.brightcove.media-frame-router a.brightcove-toolbar{margin-left:1em}.brightcove.media-frame-menu{left:inherit;width:300px;position:relative;padding-top:0;left:auto;right:auto;top:auto;bottom:auto;float:left}.brightcove.media-frame-menu .brightcove-buttons::after{clear:both;content:"";display:table}.brightcove.media-frame-menu .more-actions{float:right}.brightcove.media-toolbar{padding:0}.brightcove.media-toolbar .wp-filter{padding:0 16px}.brightcove.media-toolbar .media-toolbar-secondary{margin:8px}@media screen and (max-width:780px){.brightcove.media-toolbar .brightcove.media-toolbar-secondary{margin:4px}}@media screen and (min-width:1500px){.brightcove-media.playlist .video-preview,.brightcove.media-frame-content .video-preview{padding-bottom:43.25%}}.brightcove .media-toolbar{position:relative;right:10px;width:calc(100% - 10px);height:auto}@media screen and (min-width:782px){.brightcove .media-toolbar{right:20px;width:calc(100% - 20px)}}.brightcove .media-toolbar-secondary{padding:12px 0;box-sizing:border-box}.wp-core-ui .brightcove.attachment{float:none}.wp-core-ui .brightcove.attachment.details:focus,.wp-core-ui .brightcove.attachment:focus,.wp-core-ui .selected.brightcove.attachment:focus{box-shadow:none}.brightcove.media-frame-content,.playlist-edit-container{background-color:transparent}.brightcove.media-frame-content .spinner,.playlist-edit-container .spinner{display:inline-block;margin:7px;visibility:visible}.brightcove.media-frame-content .spinner.hidden,.playlist-edit-container .spinner.hidden{visibility:hidden}.brightcove.media-frame-content .menu-visible .highlighted .thumbnail,.playlist-edit-container .menu-visible .highlighted .thumbnail{box-shadow:0 0 2px 5px #5b9dd9;outline:0}.brightcove.media-frame-content ul,.playlist-edit-container ul{text-align:justify}.brightcove.media-frame-content .attachment,.playlist-edit-container .attachment{display:inline-block;margin:0;vertical-align:top;word-wrap:break-word;padding:10px;width:100%}@media screen and (min-width:700px){.brightcove.media-frame-content .attachment,.playlist-edit-container .attachment{width:50%}}@media screen and (min-width:1000px){.brightcove.media-frame-content .attachment,.playlist-edit-container .attachment{width:33%}}@media screen and (min-width:1200px){.brightcove.media-frame-content .attachment,.playlist-edit-container .attachment{width:25%}}.brightcove.media-frame-content .attachment .attachment-preview,.playlist-edit-container .attachment .attachment-preview{background-color:transparent;box-shadow:none}.brightcove.media-frame-content .attachment .attachment-preview:before,.playlist-edit-container .attachment .attachment-preview:before{display:none}.brightcove.media-frame-content .attachment .thumbnail,.playlist-edit-container .attachment .thumbnail{overflow:hidden;position:relative;margin-bottom:10px}.brightcove.media-frame-content .attachment .thumbnail:after,.playlist-edit-container .attachment .thumbnail:after{display:none}.brightcove.media-frame-content .attachment .thumbnail img,.playlist-edit-container .attachment .thumbnail img{display:block;position:relative;width:100%;height:auto}.brightcove.media-frame-content .attachment .thumbnail .processing,.playlist-edit-container .attachment .thumbnail .processing{position:absolute;z-index:9999;top:0;left:0;width:100%;text-align:center;background:rgba(50,50,50,.7);color:#fff;font-size:12px;height:100%}.brightcove.media-frame-content .attachment .thumbnail .processing span,.playlist-edit-container .attachment .thumbnail .processing span{position:absolute;top:50%;margin-top:-9px;width:100%;left:0;text-align:center}.brightcove.media-frame-content .attachment .thumbnail .duration,.brightcove.media-frame-content .attachment .thumbnail .video-count,.playlist-edit-container .attachment .thumbnail .duration,.playlist-edit-container .attachment .thumbnail .video-count{background-color:#fff;bottom:0;padding:3px;position:absolute;right:0;width:auto;z-index:1000}.brightcove.media-frame-content .attachment .bc-info,.playlist-edit-container .attachment .bc-info{clear:both;display:block;height:auto;padding:1px;position:relative}.brightcove.media-frame-content .attachment .bc-info .bc-name,.playlist-edit-container .attachment .bc-info .bc-name{background-color:transparent;box-shadow:none!important;clear:both;display:inline;float:left;font-weight:700;height:auto;text-align:left!important;top:95px;word-break:break-word}.brightcove.media-frame-content .attachment .bc-info .bc-name div,.playlist-edit-container .attachment .bc-info .bc-name div{padding:0}.brightcove.media-frame-content .attachment .bc-info .bc-updated,.playlist-edit-container .attachment .bc-info .bc-updated{clear:both;color:#999;float:left;font-weight:400;height:100%}.brightcove.media-frame-content .attachment .media-actions,.playlist-edit-container .attachment .media-actions{clear:both;text-align:right}.brightcove.media-frame-content .attachment .media-actions .button,.playlist-edit-container .attachment .media-actions .button{margin-left:1em}@media screen and (min-width:700px){.brightcove.media-frame-content .attachment .media-actions,.playlist-edit-container .attachment .media-actions{display:none}}.brightcove.media-frame-menu{height:100%;box-sizing:border-box}.brightcove.media-frame-menu .attachment-detail .thumbnail{clear:both;position:relative}.brightcove.media-frame-menu .attachment-detail .thumbnail img{display:block;max-width:100%;height:auto}.brightcove.media-frame-menu .attachment-detail .thumbnail .processing{position:absolute;z-index:9999;top:0;left:0;width:100%;text-align:center;background:rgba(50,50,50,.7);color:#fff;font-size:12px;height:100%}.brightcove.media-frame-menu .attachment-detail .thumbnail .processing span{position:absolute;top:50%;margin-top:-6px;width:100%;left:0;text-align:center}.brightcove.media-frame-menu .attachment-detail .thumbnail .detail-duration,.brightcove.media-frame-menu .attachment-detail .thumbnail .detail-video-count{bottom:0;padding:0;position:absolute;right:0;z-index:1000}.brightcove.media-frame-menu .attachment-detail .thumbnail .detail-duration span,.brightcove.media-frame-menu .attachment-detail .thumbnail .detail-video-count span{background-color:#fff;float:right;padding:3px}.brightcove.media-frame-menu .attachment-detail .playlist-info,.brightcove.media-frame-menu .attachment-detail .video-info{margin:10px 0;overflow:hidden}.brightcove.media-frame-menu .attachment-detail .playlist-info .playlist-name,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-name,.brightcove.media-frame-menu .attachment-detail .video-info .playlist-name,.brightcove.media-frame-menu .attachment-detail .video-info .video-name{clear:both;float:left;font-size:130%;font-weight:700;margin:5px 0 10px 0;word-break:break-word}.brightcove.media-frame-menu .attachment-detail .playlist-info .bc-video-section,.brightcove.media-frame-menu .attachment-detail .video-info .bc-video-section{display:block;float:left;height:auto;margin-bottom:20px;width:100%}.brightcove.media-frame-menu .attachment-detail .playlist-info .brightcove-player,.brightcove.media-frame-menu .attachment-detail .video-info .brightcove-player{display:block;padding:3px 0}.brightcove.media-frame-menu .attachment-detail .playlist-info .account-name,.brightcove.media-frame-menu .attachment-detail .playlist-info .created-date,.brightcove.media-frame-menu .attachment-detail .playlist-info .playlist-id,.brightcove.media-frame-menu .attachment-detail .playlist-info .playlist-type,.brightcove.media-frame-menu .attachment-detail .playlist-info .updated-date,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-created,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-description,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-long-description,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-updated,.brightcove.media-frame-menu .attachment-detail .video-info .account-name,.brightcove.media-frame-menu .attachment-detail .video-info .created-date,.brightcove.media-frame-menu .attachment-detail .video-info .playlist-id,.brightcove.media-frame-menu .attachment-detail .video-info .playlist-type,.brightcove.media-frame-menu .attachment-detail .video-info .updated-date,.brightcove.media-frame-menu .attachment-detail .video-info .video-created,.brightcove.media-frame-menu .attachment-detail .video-info .video-description,.brightcove.media-frame-menu .attachment-detail .video-info .video-long-description,.brightcove.media-frame-menu .attachment-detail .video-info .video-updated{clear:both;display:block;color:#999;float:left}.brightcove.media-frame-menu .attachment-detail .playlist-info .account-name .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .created-date .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .playlist-id .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .playlist-type .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .updated-date .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-created .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-description .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-long-description .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-updated .title,.brightcove.media-frame-menu .attachment-detail .video-info .account-name .title,.brightcove.media-frame-menu .attachment-detail .video-info .created-date .title,.brightcove.media-frame-menu .attachment-detail .video-info .playlist-id .title,.brightcove.media-frame-menu .attachment-detail .video-info .playlist-type .title,.brightcove.media-frame-menu .attachment-detail .video-info .updated-date .title,.brightcove.media-frame-menu .attachment-detail .video-info .video-created .title,.brightcove.media-frame-menu .attachment-detail .video-info .video-description .title,.brightcove.media-frame-menu .attachment-detail .video-info .video-long-description .title,.brightcove.media-frame-menu .attachment-detail .video-info .video-updated .title{margin-right:5px}.brightcove.media-frame-menu .attachment-detail .playlist-details .left-col,.brightcove.media-frame-menu .attachment-detail .playlist-details label,.brightcove.media-frame-menu .attachment-detail .video-details .left-col,.brightcove.media-frame-menu .attachment-detail .video-details label{display:inline-block;float:left;clear:left;width:100px;padding-top:5px}.brightcove.media-frame-menu .attachment-detail .playlist-details .right-col,.brightcove.media-frame-menu .attachment-detail .video-details .right-col{display:inline-block;float:left;padding-top:5px}.brightcove.media-frame-menu .attachment-detail .playlist-details .clear,.brightcove.media-frame-menu .attachment-detail .video-details .clear{clear:both}.brightcove.media-frame-menu .attachment-detail .playlist-details input[type=number],.brightcove.media-frame-menu .attachment-detail .video-details input[type=number]{width:20%}.brightcove.media-frame-menu .attachment-detail .playlist-details textarea,.brightcove.media-frame-menu .attachment-detail .video-details textarea{margin-top:10px;width:100%}.brightcove.media-frame-menu .attachment-detail .playlist-details #custom,.brightcove.media-frame-menu .attachment-detail .video-details #custom{display:none}@media screen and (max-width:700px){.brightcove.media-frame-content{border-right-width:0;margin-right:0;padding-right:0;width:auto}}@media screen and (max-width:412px){.brightcove.media-frame-content .attachment{padding:20px 10px}}.brightcove.video-edit .image-preview,.brightcove.video-edit .setting{margin-bottom:8px}.brightcove.video-edit .image-preview .description,.brightcove.video-edit .setting .description{margin-left:0}@media screen and (min-width:900px){.brightcove.video-edit .image-preview .description,.brightcove.video-edit .setting .description{margin-left:252px}}.brightcove.video-edit .setting-content,.brightcove.video-edit select{margin-left:7px}.brightcove.video-edit .setting-content{float:left;width:64%}.brightcove.video-edit .setting-content .button-secondary{clear:left;display:block}.brightcove.video-edit .attachment{cursor:pointer;padding:8px 0 0;width:auto}.brightcove.video-edit .attachment.active{display:block;max-width:100%}.brightcove.video-edit .attachment.active .check{display:block;top:9px}.brightcove.video-edit .attachment.active .button{display:none}.brightcove.video-edit .attachment img{height:auto;max-width:100%}.brightcove.video-edit .action-row{clear:both}.brightcove.video-edit .action-row .delete{color:#a00;display:inline-block;padding-top:6px}.brightcove.video-edit .caption-url,.brightcove.video-edit button.-captions{float:left}.brightcove.video-edit button.-captions{margin-right:1em}.brightcove.video-edit .caption-url{color:#666;line-height:28px}.brightcove.video-edit .add-remote-caption{line-height:28px}.brightcove.video-edit .caption-repeater{box-sizing:border-box;-moz-box-sizing:border-box;border-bottom:1px solid #d5d5d5;clear:both;padding:1em 0;width:100%}.brightcove.video-edit .caption-repeater:nth-last-child(1){border-bottom:0}.brightcove.video-edit .caption-repeater.empty-row{display:none}.brightcove.video-edit .caption-repeater.active{display:block}.brightcove.video-edit input.brightcove-captions{clear:both;margin-bottom:.75em;width:100%}.brightcove.video-edit .caption-secondary-fields{clear:both}.brightcove.video-edit .caption-secondary-fields:after,.brightcove.video-edit .caption-secondary-fields:before{content:" ";display:table}.brightcove.video-edit .caption-secondary-fields:after{clear:both}.brightcove.video-edit .caption-secondary-fields label{box-sizing:border-box;display:block;float:left;width:50%}.brightcove.video-edit .caption-secondary-fields label:after,.brightcove.video-edit .caption-secondary-fields label:before{content:" ";display:table}.brightcove.video-edit .caption-secondary-fields label:after{clear:both}.brightcove.video-edit .caption-secondary-fields label:nth-child(1){padding-right:1em}.brightcove.video-edit .caption-secondary-fields label input,.brightcove.video-edit .caption-secondary-fields label select,.brightcove.video-edit .caption-secondary-fields label span{margin:0;min-width:100%;text-align:left;width:100%}.playlist-edit.brightcove.attachment-details{width:100%;height:auto;margin-right:0;float:none;overflow:hidden;padding:20px;box-sizing:border-box}.playlist-edit.brightcove.attachment-details .settings{max-width:50%;margin-bottom:20px}.playlist-edit.brightcove.attachment-details .playlist-name{font-weight:700}.playlist-edit.brightcove.attachment-details .playlist-name span{display:inline-block;margin-right:20px;margin-left:10px}.playlist-edit.brightcove.attachment-details .playlist-name input{width:65%}.playlist-edit.brightcove.attachment-details .playlist-videos-list{border-right:1px solid #ddd;clear:both}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list,.playlist-edit.brightcove.attachment-details .playlist-videos-list{width:50%;float:left;box-sizing:border-box}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list h2,.playlist-edit.brightcove.attachment-details .playlist-videos-list h2{margin-bottom:0;padding-bottom:10px;padding-left:10px;border-bottom:1px solid #ddd}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list ul,.playlist-edit.brightcove.attachment-details .playlist-videos-list ul{height:450px;overflow:auto}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list .attachment,.playlist-edit.brightcove.attachment-details .playlist-videos-list .attachment{width:100%!important}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list .thumbnail,.playlist-edit.brightcove.attachment-details .playlist-videos-list .thumbnail{width:162px;float:left}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list .bc-info,.playlist-edit.brightcove.attachment-details .playlist-videos-list .bc-info{clear:none;float:left;margin-left:10px}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list .row-actions,.playlist-edit.brightcove.attachment-details .playlist-videos-list .row-actions{visibility:visible;clear:both;display:block;text-align:left;position:relative;left:auto}
\ No newline at end of file
+div.brightcove-messages{text-align:left;width:calc(100% - 4px)}div.brightcove-messages .updated{margin-left:0;margin-bottom:15px}div.brightcove-uploader div.brightcove-messages .updated{margin:20px 15px 2px}.brightcove-file-uploader{text-align:center}.brightcove-upload-queued-files{display:table;width:calc(100% - 20px);border:1px solid #ddd}.brightcove-pending-upload td{cursor:pointer}.brightcove-pending-upload td:nth-child(1){width:35%}.brightcove-pending-upload td:nth-child(2){width:10%}.brightcove-pending-upload td:nth-child(3){width:20%}.brightcove-pending-upload td:nth-child(4){width:35%}.brightcove-pending-upload.selected{background-color:#35a3ca}.brightcove-pending-upload.selected td{color:#fff}.ingest-success{background-color:#00adff}.upload-success{color:#003148}.brightcove-pending-upload-details{width:30%;display:table-cell;padding:20px;background-color:#f3f3f3;text-align:left;vertical-align:top}.pending-uploads{display:table-cell;width:70%;text-align:left;vertical-align:top;background-color:#fff}.pending-uploads table.widefat{border:0}.pending-uploads .brightcove-start-upload{margin-left:10px;margin-bottom:10px}.brightcove-media .spinner,.brightcove-media-videos .spinner{float:none;margin:5px 0;vertical-align:top}.brightcove-modal .media-frame-content,.brightcove-modal .media-frame-router,.brightcove-modal .media-frame-title,.brightcove-modal .media-frame-toolbar{left:0}.brightcove-modal .brightcove-media{overflow:hidden}.brightcove-modal .brightcove .wp-filter{border:0;box-shadow:none;right:0;width:100%;margin:0}.brightcove-modal .brightcove .media-toolbar-secondary{padding:0;min-width:280px}.brightcove-modal .brightcove .media-toolbar-primary.search-form input[type=search]{float:left;padding-bottom:0;width:200px}.brightcove-modal .brightcove #media-search{float:left;margin-left:10px;margin-right:5px}.brightcove-modal .pending-uploads{width:calc(100% - 40px);display:block;margin:20px}.brightcove-modal .brightcove-upload-queued-files{border:0;width:100%}.brightcove-modal .brightcove.media-frame-content{padding:0 20px;width:100%}@media screen and (min-width:700px){.brightcove-modal .brightcove.media-frame-content{width:calc(100% - 390px)}}.brightcove-modal .brightcove.video-preview{margin-top:20px}.brightcove-modal .video-preview-frame .brightcove.media-frame-content{padding:20px;box-sizing:border-box;border-right:1px solid #ddd;transform:translate3d(0,0,0)}.brightcove-modal .video-preview-frame .brightcove.brightcove.media-frame-menu{padding-top:20px}@media screen and (max-width:900px){.media-frame:not(.hide-menu) .media-frame-menu{width:300px}}.brightcove.media-frame-menu .attachment-detail .playlist-details label.experiencelabel,.brightcove.media-frame-menu .attachment-detail .video-details label.experiencelabel,select.experienceplayer{width:100%}.bc-page-icon{padding-right:10px}.notice{margin:5px 20px 2px 0}.brightcove-media-videos .error{margin:5px 20px 10px 0;text-align:left}.brightcove-media.playlist,.brightcove.media-frame-content{border-bottom:none;border-right:1px solid #ddd;border-top:none;position:static;width:calc(100% - 370px);float:left;margin-right:30px;padding-right:20px}.brightcove-media.playlist .video-preview,.brightcove.media-frame-content .video-preview{padding-bottom:56.25%;position:relative}.brightcove-media.playlist .video-preview iframe,.brightcove.media-frame-content .video-preview iframe{height:100%;position:absolute;width:100%}.brightcove-media.playlist .brightcove-buttons,.brightcove.media-frame-content .brightcove-buttons{float:right;margin-top:20px}.brightcove-media.playlist.edit-view,.brightcove.media-frame-content.edit-view{width:calc(100% - 20px);border-right:none;height:auto}.brightcove-media.playlist .video-edit,.brightcove.media-frame-content .video-edit{max-width:721px;padding:5px}.brightcove-buttons .delete{color:#a00;padding-top:6px;display:inline-block}.brightcove-buttons .delete:hover{color:red}.brightcove.media-frame-router{position:relative;left:0;top:auto;height:auto}.brightcove.media-frame-router a.brightcove-toolbar{margin-left:1em}.brightcove.media-frame-menu{left:inherit;width:300px;position:relative;padding-top:0;left:auto;right:auto;top:auto;bottom:auto;float:left}.brightcove.media-frame-menu .brightcove-buttons::after{clear:both;content:"";display:table}.brightcove.media-frame-menu .more-actions{float:right}.brightcove.media-toolbar{padding:0}.brightcove.media-toolbar .wp-filter{padding:0 16px}.brightcove.media-toolbar .media-toolbar-secondary{margin:8px}@media screen and (max-width:780px){.brightcove.media-toolbar .brightcove.media-toolbar-secondary{margin:4px}}@media screen and (min-width:1500px){.brightcove-media.playlist .video-preview,.brightcove.media-frame-content .video-preview{padding-bottom:43.25%}}.brightcove .media-toolbar{position:relative;right:10px;width:calc(100% - 10px);height:auto}@media screen and (min-width:782px){.brightcove .media-toolbar{right:20px;width:calc(100% - 20px)}}.brightcove .media-toolbar-secondary{padding:12px 0;box-sizing:border-box}.wp-core-ui .brightcove.attachment{float:none}.wp-core-ui .brightcove.attachment.details:focus,.wp-core-ui .brightcove.attachment:focus,.wp-core-ui .selected.brightcove.attachment:focus{box-shadow:none}.brightcove.media-frame-content,.playlist-edit-container{background-color:transparent}.brightcove.media-frame-content .spinner,.playlist-edit-container .spinner{display:inline-block;margin:7px;visibility:visible}.brightcove.media-frame-content .spinner.hidden,.playlist-edit-container .spinner.hidden{visibility:hidden}.brightcove.media-frame-content .menu-visible .highlighted .thumbnail,.playlist-edit-container .menu-visible .highlighted .thumbnail{box-shadow:0 0 2px 5px #5b9dd9;outline:0}.brightcove.media-frame-content ul,.playlist-edit-container ul{text-align:justify}.brightcove.media-frame-content .attachment,.playlist-edit-container .attachment{display:inline-block;margin:0;vertical-align:top;word-wrap:break-word;padding:10px;width:100%}@media screen and (min-width:700px){.brightcove.media-frame-content .attachment,.playlist-edit-container .attachment{width:50%}}@media screen and (min-width:1000px){.brightcove.media-frame-content .attachment,.playlist-edit-container .attachment{width:33%}}@media screen and (min-width:1200px){.brightcove.media-frame-content .attachment,.playlist-edit-container .attachment{width:25%}}.brightcove.media-frame-content .attachment .attachment-preview,.playlist-edit-container .attachment .attachment-preview{background-color:transparent;box-shadow:none}.brightcove.media-frame-content .attachment .attachment-preview:before,.playlist-edit-container .attachment .attachment-preview:before{display:none}.brightcove.media-frame-content .attachment .thumbnail,.playlist-edit-container .attachment .thumbnail{overflow:hidden;position:relative;margin-bottom:10px}.brightcove.media-frame-content .attachment .thumbnail:after,.playlist-edit-container .attachment .thumbnail:after{display:none}.brightcove.media-frame-content .attachment .thumbnail img,.playlist-edit-container .attachment .thumbnail img{display:block;position:relative;width:100%;height:auto}.brightcove.media-frame-content .attachment .thumbnail .processing,.playlist-edit-container .attachment .thumbnail .processing{position:absolute;z-index:9999;top:0;left:0;width:100%;text-align:center;background:rgba(50,50,50,.7);color:#fff;font-size:12px;height:100%}.brightcove.media-frame-content .attachment .thumbnail .processing span,.playlist-edit-container .attachment .thumbnail .processing span{position:absolute;top:50%;margin-top:-9px;width:100%;left:0;text-align:center}.brightcove.media-frame-content .attachment .thumbnail .duration,.brightcove.media-frame-content .attachment .thumbnail .video-count,.playlist-edit-container .attachment .thumbnail .duration,.playlist-edit-container .attachment .thumbnail .video-count{background-color:#fff;bottom:0;padding:3px;position:absolute;right:0;width:auto;z-index:1000}.brightcove.media-frame-content .attachment .bc-info,.playlist-edit-container .attachment .bc-info{clear:both;display:block;height:auto;padding:1px;position:relative}.brightcove.media-frame-content .attachment .bc-info .bc-name,.playlist-edit-container .attachment .bc-info .bc-name{background-color:transparent;box-shadow:none!important;clear:both;display:inline;float:left;font-weight:700;height:auto;text-align:left!important;top:95px;word-break:break-word}.brightcove.media-frame-content .attachment .bc-info .bc-name div,.playlist-edit-container .attachment .bc-info .bc-name div{padding:0}.brightcove.media-frame-content .attachment .bc-info .bc-updated,.playlist-edit-container .attachment .bc-info .bc-updated{clear:both;color:#999;float:left;font-weight:400;height:100%}.brightcove.media-frame-content .attachment .media-actions,.playlist-edit-container .attachment .media-actions{clear:both;text-align:right}.brightcove.media-frame-content .attachment .media-actions .button,.playlist-edit-container .attachment .media-actions .button{margin-left:1em}@media screen and (min-width:700px){.brightcove.media-frame-content .attachment .media-actions,.playlist-edit-container .attachment .media-actions{display:none}}.brightcove.media-frame-menu{height:100%;box-sizing:border-box}.brightcove.media-frame-menu .attachment-detail .thumbnail{clear:both;position:relative}.brightcove.media-frame-menu .attachment-detail .thumbnail img{display:block;max-width:100%;height:auto}.brightcove.media-frame-menu .attachment-detail .thumbnail .processing{position:absolute;z-index:9999;top:0;left:0;width:100%;text-align:center;background:rgba(50,50,50,.7);color:#fff;font-size:12px;height:100%}.brightcove.media-frame-menu .attachment-detail .thumbnail .processing span{position:absolute;top:50%;margin-top:-6px;width:100%;left:0;text-align:center}.brightcove.media-frame-menu .attachment-detail .thumbnail .detail-duration,.brightcove.media-frame-menu .attachment-detail .thumbnail .detail-video-count{bottom:0;padding:0;position:absolute;right:0;z-index:1000}.brightcove.media-frame-menu .attachment-detail .thumbnail .detail-duration span,.brightcove.media-frame-menu .attachment-detail .thumbnail .detail-video-count span{background-color:#fff;float:right;padding:3px}.brightcove.media-frame-menu .attachment-detail .playlist-info,.brightcove.media-frame-menu .attachment-detail .video-info{margin:10px 0;overflow:hidden}.brightcove.media-frame-menu .attachment-detail .playlist-info .playlist-name,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-name,.brightcove.media-frame-menu .attachment-detail .video-info .playlist-name,.brightcove.media-frame-menu .attachment-detail .video-info .video-name{clear:both;float:left;font-size:130%;font-weight:700;margin:5px 0 10px 0;word-break:break-word}.brightcove.media-frame-menu .attachment-detail .playlist-info .bc-video-section,.brightcove.media-frame-menu .attachment-detail .video-info .bc-video-section{display:block;float:left;height:auto;margin-bottom:20px;width:100%}.brightcove.media-frame-menu .attachment-detail .playlist-info .brightcove-player,.brightcove.media-frame-menu .attachment-detail .video-info .brightcove-player{display:block;padding:3px 0}.brightcove.media-frame-menu .attachment-detail .playlist-info .account-name,.brightcove.media-frame-menu .attachment-detail .playlist-info .created-date,.brightcove.media-frame-menu .attachment-detail .playlist-info .playlist-id,.brightcove.media-frame-menu .attachment-detail .playlist-info .playlist-type,.brightcove.media-frame-menu .attachment-detail .playlist-info .updated-date,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-created,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-description,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-long-description,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-updated,.brightcove.media-frame-menu .attachment-detail .video-info .account-name,.brightcove.media-frame-menu .attachment-detail .video-info .created-date,.brightcove.media-frame-menu .attachment-detail .video-info .playlist-id,.brightcove.media-frame-menu .attachment-detail .video-info .playlist-type,.brightcove.media-frame-menu .attachment-detail .video-info .updated-date,.brightcove.media-frame-menu .attachment-detail .video-info .video-created,.brightcove.media-frame-menu .attachment-detail .video-info .video-description,.brightcove.media-frame-menu .attachment-detail .video-info .video-long-description,.brightcove.media-frame-menu .attachment-detail .video-info .video-updated{clear:both;display:block;color:#999;float:left}.brightcove.media-frame-menu .attachment-detail .playlist-info .account-name .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .created-date .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .playlist-id .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .playlist-type .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .updated-date .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-created .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-description .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-long-description .title,.brightcove.media-frame-menu .attachment-detail .playlist-info .video-updated .title,.brightcove.media-frame-menu .attachment-detail .video-info .account-name .title,.brightcove.media-frame-menu .attachment-detail .video-info .created-date .title,.brightcove.media-frame-menu .attachment-detail .video-info .playlist-id .title,.brightcove.media-frame-menu .attachment-detail .video-info .playlist-type .title,.brightcove.media-frame-menu .attachment-detail .video-info .updated-date .title,.brightcove.media-frame-menu .attachment-detail .video-info .video-created .title,.brightcove.media-frame-menu .attachment-detail .video-info .video-description .title,.brightcove.media-frame-menu .attachment-detail .video-info .video-long-description .title,.brightcove.media-frame-menu .attachment-detail .video-info .video-updated .title{margin-right:5px}.brightcove.media-frame-menu .attachment-detail .playlist-details .left-col,.brightcove.media-frame-menu .attachment-detail .playlist-details label,.brightcove.media-frame-menu .attachment-detail .video-details .left-col,.brightcove.media-frame-menu .attachment-detail .video-details label{display:inline-block;float:left;clear:left;width:100px;padding-top:5px}.brightcove.media-frame-menu .attachment-detail .playlist-details .right-col,.brightcove.media-frame-menu .attachment-detail .video-details .right-col{display:inline-block;float:left;padding-top:5px}.brightcove.media-frame-menu .attachment-detail .playlist-details .clear,.brightcove.media-frame-menu .attachment-detail .video-details .clear{clear:both}.brightcove.media-frame-menu .attachment-detail .playlist-details input[type=number],.brightcove.media-frame-menu .attachment-detail .video-details input[type=number]{width:20%}.brightcove.media-frame-menu .attachment-detail .playlist-details textarea,.brightcove.media-frame-menu .attachment-detail .video-details textarea{margin-top:10px;width:100%}.brightcove.media-frame-menu .attachment-detail .playlist-details #custom,.brightcove.media-frame-menu .attachment-detail .video-details #custom{display:none}@media screen and (max-width:700px){.brightcove.media-frame-content{border-right-width:0;margin-right:0;padding-right:0;width:auto}}@media screen and (max-width:412px){.brightcove.media-frame-content .attachment{padding:20px 10px}}.brightcove.video-edit .image-preview,.brightcove.video-edit .setting{margin-bottom:8px}.brightcove.video-edit .image-preview .description,.brightcove.video-edit .setting .description{margin-left:0}@media screen and (min-width:900px){.brightcove.video-edit .image-preview .description,.brightcove.video-edit .setting .description{margin-left:252px}}.brightcove.video-edit .setting-content,.brightcove.video-edit select{margin-left:7px}.brightcove.video-edit .setting-content{float:left;width:64%}.brightcove.video-edit .setting-content .button-secondary{clear:left;display:block}.brightcove.video-edit .attachment{cursor:pointer;padding:8px 0 0;width:auto}.brightcove.video-edit .attachment.active{display:block;max-width:100%}.brightcove.video-edit .attachment.active .check{display:block;top:9px}.brightcove.video-edit .attachment.active .button{display:none}.brightcove.video-edit .attachment img{height:auto;max-width:100%}.brightcove.video-edit .action-row{clear:both}.brightcove.video-edit .action-row .delete{color:#a00;display:inline-block;padding-top:6px}.brightcove.video-edit .caption-url,.brightcove.video-edit button.-captions{float:left}.brightcove.video-edit button.-captions{margin-right:1em}.brightcove.video-edit .caption-url{color:#666;line-height:28px}.brightcove.video-edit .add-remote-caption{line-height:28px}.brightcove.video-edit .caption-repeater{box-sizing:border-box;-moz-box-sizing:border-box;border-bottom:1px solid #d5d5d5;clear:both;padding:1em 0;width:100%}.brightcove.video-edit .caption-repeater:nth-last-child(1){border-bottom:0}.brightcove.video-edit .caption-repeater.empty-row{display:none}.brightcove.video-edit .caption-repeater.active{display:block}.brightcove.video-edit input.brightcove-captions{clear:both;margin-bottom:.75em;width:100%}.brightcove.video-edit .caption-secondary-fields{clear:both}.brightcove.video-edit .caption-secondary-fields:after,.brightcove.video-edit .caption-secondary-fields:before{content:" ";display:table}.brightcove.video-edit .caption-secondary-fields:after{clear:both}.brightcove.video-edit .caption-secondary-fields label{box-sizing:border-box;display:block;float:left;width:50%}.brightcove.video-edit .caption-secondary-fields label:after,.brightcove.video-edit .caption-secondary-fields label:before{content:" ";display:table}.brightcove.video-edit .caption-secondary-fields label:after{clear:both}.brightcove.video-edit .caption-secondary-fields label:nth-child(1){padding-right:1em}.brightcove.video-edit .caption-secondary-fields label input,.brightcove.video-edit .caption-secondary-fields label select,.brightcove.video-edit .caption-secondary-fields label span{margin:0;min-width:100%;text-align:left;width:100%}.playlist-edit.brightcove.attachment-details{width:100%;height:auto;margin-right:0;float:none;overflow:hidden;padding:20px;box-sizing:border-box}.playlist-edit.brightcove.attachment-details .settings{max-width:50%;margin-bottom:20px}.playlist-edit.brightcove.attachment-details .playlist-name{font-weight:700}.playlist-edit.brightcove.attachment-details .playlist-name span{display:inline-block;margin-right:20px;margin-left:10px}.playlist-edit.brightcove.attachment-details .playlist-name input{width:65%}.playlist-edit.brightcove.attachment-details .playlist-videos-list{border-right:1px solid #ddd;clear:both}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list,.playlist-edit.brightcove.attachment-details .playlist-videos-list{width:50%;float:left;box-sizing:border-box}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list h2,.playlist-edit.brightcove.attachment-details .playlist-videos-list h2{margin-bottom:0;padding-bottom:10px;padding-left:10px;border-bottom:1px solid #ddd}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list ul,.playlist-edit.brightcove.attachment-details .playlist-videos-list ul{height:450px;overflow:auto}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list .attachment,.playlist-edit.brightcove.attachment-details .playlist-videos-list .attachment{width:100%!important}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list .thumbnail,.playlist-edit.brightcove.attachment-details .playlist-videos-list .thumbnail{width:162px;float:left}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list .bc-info,.playlist-edit.brightcove.attachment-details .playlist-videos-list .bc-info{clear:none;float:left;margin-left:10px}.playlist-edit.brightcove.attachment-details .playlist-add-videos-list .row-actions,.playlist-edit.brightcove.attachment-details .playlist-videos-list .row-actions{visibility:visible;clear:both;display:block;text-align:left;position:relative;left:auto}
\ No newline at end of file
diff --git a/assets/js/brightcove-admin.js b/assets/js/brightcove-admin.js
index 67dbf9d5..883f5c12 100644
--- a/assets/js/brightcove-admin.js
+++ b/assets/js/brightcove-admin.js
@@ -2965,7 +2965,9 @@ var VideoPreviewView = BrightcoveView.extend( {
method: 'POST',
data: {
'action':'bc_resolve_shortcode',
- 'shortcode': this.shortcode
+ 'shortcode': this.shortcode,
+ 'video_id' : options.id,
+ 'account_id': options.account_id,
},
success: function( results ) {
that.$el.html( results.data );
diff --git a/assets/js/brightcove-admin.js.map b/assets/js/brightcove-admin.js.map
index f25249f3..c40bb4b3 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\n\t\t/**\n\t\t * Copied largely from WP Attachment sync function\n\t\t * Triggered when attachment details change\n\t\t * Overrides Backbone.Model.sync\n\t\t *\n\t\t * @param {string} method\n\t\t * @param {wp.media.model.Media} model\n\t\t * @param {Object} [options={}]\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\tsync : function ( method, model, options ) {\n\n\t\t\tvar accountHash = null;\n\n\t\t\t// Set the accountHash to the wpbc.preload.accounts[*] where the account_id\n\t\t\t// matches this media objects account_id.\n\t\t\t_.find( wpbc.preload.accounts, function ( 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}, this );\n\n\t\t\t// If the attachment does not yet have an `id`, return an instantly\n\t\t\t// rejected promise. Otherwise, all of our requests will fail.\n\t\t\tif ( _.isUndefined( this.id ) ) {\n\t\t\t\treturn $.Deferred().rejectWith( this ).promise();\n\t\t\t}\n\n\t\t\t// Overload the `read` request so Media.fetch() functions correctly.\n\t\t\tif ( 'read' === method ) {\n\t\t\t\toptions = options || {};\n\t\t\t\toptions.context = this;\n\t\t\t\toptions.data = _.extend( options.data || {}, {\n\t\t\t\t\taction : 'bc_media_fetch',\n\t\t\t\t\tid : this.id\n\t\t\t\t} );\n\n\t\t\t\treturn wp.media.ajax( options );\n\n\t\t\t\t// Overload the `update` request so properties can be saved.\n\t\t\t} else if ( 'update' === method ) {\n\t\t\t\toptions = options || {};\n\t\t\t\toptions.context = this;\n\t\t\t\t// Set the action and ID.\n\t\t\t\toptions.data = _.extend( options.data || {}, {\n\t\t\t\t\taccount : accountHash,\n\t\t\t\t\taction : 'bc_media_update',\n\t\t\t\t\tdescription : this.get( 'description' ),\n\t\t\t\t\tlong_description : this.get( 'long_description' ),\n\t\t\t\t\tname : this.get( 'name' ),\n\t\t\t\t\tnonce : wpbc.preload.nonce,\n\t\t\t\t\ttags : this.get( 'tags' ),\n\t\t\t\t\ttype : this.get( 'mediaType' ),\n\t\t\t\t\tcustom_fields: this.get( 'custom_fields' ),\n\t\t\t\t\thistory: this.get( '_change_history' ),\n\t\t\t\t\tposter: this.get( 'poster' ),\n\t\t\t\t\tthumbnail: this.get( 'thumbnail' ),\n\t\t\t\t\tcaptions: this.get( 'captions' )\n\t\t\t\t} );\n\n\t\t\t\tvar video_ids = this.get( 'video_ids' );\n\t\t\t\tif ( video_ids ) {\n\t\t\t\t\toptions.data.playlist_id = this.id;\n\t\t\t\t\toptions.data.playlist_videos = video_ids;\n\t\t\t\t\toptions.data.type = 'playlists';\n\t\t\t\t} else {\n\t\t\t\t\toptions.data.video_id = this.id;\n\t\t\t\t}\n\n\t\t\t\toptions.success = this.successFunction;\n\t\t\t\toptions.error = this.failFunction;\n\n\t\t\t\twpbc.broadcast.trigger( 'spinner:on' );\n\t\t\t\treturn wp.media.ajax( options );\n\n\t\t\t\t// Overload the `delete` request so attachments can be removed.\n\t\t\t\t// This will permanently delete an attachment.\n\t\t\t} else if ( 'delete' === method ) {\n\t\t\t\toptions = options || {};\n\t\t\t\tvar self = this;\n\n\t\t\t\toptions.data = _.extend( options.data || {}, {\n\t\t\t\t\taccount : accountHash,\n\t\t\t\t\taction : 'bc_media_delete',\n\t\t\t\t\tid : this.get( 'id' ),\n\t\t\t\t\tnonce : wpbc.preload.nonce,\n\t\t\t\t\ttype : this.get( 'mediaType' ),\n\t\t\t\t} );\n\n\t\t\t\treturn wp.media.ajax( options ).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 ( 'videos' === self.get( 'mediaType' ) || ! _.isUndefined( self.get( 'video_ids' ) ) ) {\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} ).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\t// Otherwise, fall back to `Backbone.sync()`.\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * Call `sync` directly on Backbone.Model\n\t\t\t\t */\n\t\t\t\treturn Backbone.Model.prototype.sync.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Convert date strings into Date objects.\n\t\t *\n\t\t * @param {Object} resp The raw response object, typically returned by fetch()\n\t\t * @returns {Object} The modified response object, which is the attributes hash\n\t\t * to be set on the model.\n\t\t */\n\t\tparse : function ( resp ) {\n\t\t\tif ( ! resp ) {\n\t\t\t\treturn resp;\n\t\t\t}\n\n\t\t\tresp.date = new Date( resp.date );\n\t\t\tresp.modified = new Date( resp.modified );\n\t\t\treturn resp;\n\t\t},\n\n\t\tgetAccountName : function () {\n\n\t\t\tvar account_id = this.get( 'account_id' );\n\t\t\tvar matchingAccount = _.findWhere( wpbc.preload.accounts, {account_id : this.get( 'account_id' )} );\n\t\t\treturn undefined === matchingAccount ? this.getSelectedAccountName() : matchingAccount.account_name;\n\t\t},\n\n\t\tgetSelectedAccountName : function () {\n var elt = document.getElementById( 'brightcove-media-source' );\n\n if ( elt.selectedIndex === -1 ) {\n return 'unavailable';\n }\n\n return elt.options[elt.selectedIndex].text;\n\t\t},\n\n\t\tgetReadableDuration : function () {\n\n\t\t\tvar duration = this.get( 'duration' );\n\n\t\t\tif ( duration ) {\n\t\t\t\tduration = Number( duration / 1000 );\n\t\t\t\tvar hours = Math.floor( duration / 3600 );\n\t\t\t\tvar minutes = Math.floor( duration % 3600 / 60 );\n\t\t\t\tvar seconds = Math.floor( duration % 3600 % 60 );\n\t\t\t\treturn ((hours > 0 ? hours + \":\" + (minutes < 10 ? \"0\" : \"\") : \"\") + minutes + \":\" + (seconds < 10 ? \"0\" : \"\") + seconds);\n\t\t\t}\n\t\t\treturn duration;\n\t\t},\n\n\t\tgetReadableDate : function ( field ) {\n\n\t\t\tvar updated_at = this.get( field );\n\n\t\t\tif ( updated_at ) {\n\n\t\t\t\tvar date = new Date( updated_at );\n\n\t\t\t\tvar hour = date.getHours();\n\t\t\t\tvar min = date.getMinutes();\n\t\t\t\tvar year = date.getFullYear();\n\t\t\t\tvar mon = date.getMonth() + 1;\n\t\t\t\tvar day = date.getDate();\n\t\t\t\tvar ampm = hour >= 12 ? 'pm' : 'am';\n\n\t\t\t\thour = hour % 12;\n\t\t\t\thour = hour ? hour : 12;\n\n\t\t\t\tmin = min < 10 ? '0' + min : min;\n\n\t\t\t\tvar readableDate = year + '/' + mon + '/' + day + ' - ' + hour + ':' + min + ' ' + ampm;\n\t\t\t\treturn readableDate;\n\t\t\t}\n\t\t\treturn updated_at;\n\t\t},\n\n\t\tsuccessFunction : function ( message ) {\n\t\t\twpbc.broadcast.trigger( 'videoEdit:message', message, 'success' );\n\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t\tif ( _.isArray( this.get( 'video_ids' ) ) && wpbc.preload && wpbc.preload.playlists ) {\n\t\t\t\tvar id = this.get( 'id' );\n\t\t\t\t_.each( wpbc.preload.playlists, function ( 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}, this );\n\t\t\t}\n\t\t\twpbc.responses = {};\n\t\t\tif ( 'videos' === this.get( 'mediaType' ) || ! _.isUndefined( this.get( 'video_ids' ) ) ) {\n\t\t\t\twpbc.preload.videos = undefined;\n\t\t\t} else {\n\t\t\t\twpbc.preload.playlists = undefined;\n\t\t\t}\n\t\t},\n\n\t\tfailFunction : function ( message ) {\n\t\t\twpbc.broadcast.trigger( 'videoEdit:message', message, 'error' );\n\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t}\n\t}\n);\n","var MediaCollection = Backbone.Collection.extend(\n\t{\n\t\tmodel : MediaModel,\n\t\t/**\n\t\t * @param {Array} [models=[]] Array of models used to populate the collection.\n\t\t * @param {Object} [options={}]\n\t\t */\n\t\tinitialize : function ( models, options ) {\n\t\t\toptions = options || {};\n\t\t\tif ( options.activeAccount ) {\n\t\t\t\tthis.activeAccount = options.activeAccount;\n\t\t\t}\n\n\t\t\tthis.additionalRequest = false;\n\n\t\t\tthis.pageNumber = this.pageNumber || 1;\n\n\t\t\tif ( ! this.mediaType && (this.mediaCollectionViewType === 'existingPlaylists' || this.mediaCollectionViewType === 'libraryPlaylists') ) {\n\t\t\t\tthis.mediaType = 'videos';\n\t\t\t}\n\n\t\t\tthis.mediaCollectionViewType = options.mediaCollectionViewType || 'grid';\n\n\t\t\tif ( options.excludeVideoIds && 'libraryPlaylists' === options.mediaCollectionViewType ) {\n\t\t\t\tthis.excludeVideoIds = options.excludeVideoIds;\n\t\t\t}\n\n\t\t\tif ( options.videoIds && ! models ) {\n\t\t\t\tthis.mediaType = 'videos';\n\t\t\t\tthis.videoIds = options.videoIds;\n\t\t\t\tthis.fetch();\n\t\t\t} else if ( 'playlists' !== options.mediaType ) {\n\t\t\t\tthis.mediaType = 'videos';\n\t\t\t\tthis.fetch();\n\t\t\t}\n\n\t\t\tthis.mediaType = options.mediaType;\n\n\t\t\tif ( 'videos' === this.mediaType ) {\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:uploadedFileDetails', function ( video ) {\n\t\t\t\t\t// Add the newly uploaded file\n\t\t\t\t\tthis.add( video, {at : 0} );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tthis.activeAccount = options.activeAccount || 'all';\n\t\t\tthis.searchTerm = options.searchTerm || '';\n\t\t\tthis.dates = options.dates || 'all';\n\t\t\tthis.tag = options.tag || '';\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:activeAccount', function ( accountId ) {\n\t\t\t\tthis.activeAccount = accountId;\n\t\t\t\twp.heartbeat.enqueue( 'brightcove_heartbeat', { 'accountId': accountId }, true );\n\t\t\t\tthis.fetch();\n\t\t\t} );\n\n\t\t\t$( document ).on( 'heartbeat-tick.brightcove_heartbeat', function( event, data ) {\n\t\t\t\tif ( data.hasOwnProperty( 'brightcove_heartbeat' ) ) {\n\t\t\t\t\twp.heartbeat.enqueue( 'brightcove_heartbeat', { 'accountId': data['brightcove_heartbeat']['account_id'] }, true );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:searchTerm', function ( searchTerm ) {\n\t\t\t\tthis.searchTerm = searchTerm;\n\t\t\t\tthis.fetch();\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:tag', function ( tag ) {\n\n\t\t\t\tif ( 'all' === tag ) {\n\t\t\t\t\ttag = '';\n\t\t\t\t}\n\n\t\t\t\tthis.tag = tag;\n\t\t\t\tthis.fetch();\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:date', function ( date ) {\n\t\t\t\tthis.date = date;\n\t\t\t\tthis.fetch();\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'tabChange', function ( settings ) {\n\t\t\t\tthis.killPendingRequests();\n\t\t\t\tif ( settings.mediaType !== this.mediaType ) {\n\t\t\t\t\tthis.mediaType = settings.mediaType;\n\t\t\t\t\tvar preload = wpbc.preload[this.mediaType];\n\t\t\t\t\tvar model;\n\t\t\t\t\t// Remove all models from the collection\n\t\t\t\t\twhile ( model = this.first() ) {\n\t\t\t\t\t\tthis.remove( model );\n\t\t\t\t\t}\n\t\t\t\t\tif ( preload !== undefined ) {\n\t\t\t\t\t\tthis.add( preload );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.fetch();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tkillPendingRequests : function () {\n\t\t\t// Kill all pending requests\n\t\t\t_.each( wpbc.requests, function ( request ) {\n\t\t\t\trequest.abort();\n\t\t\t} );\n\n\t\t\twpbc.requests = [];\n\t\t},\n\n\t\tchecksum : function ( object ) {\n\t\t\tif ( ! _.isString( object ) ) {\n\t\t\t\tif ( _.isFunction( object.toJSON ) ) {\n\t\t\t\t\tobject = object.toJSON();\n\t\t\t\t} else {\n\t\t\t\t\tobject = JSON.stringify( object );\n\t\t\t\t}\n\n\t\t\t}\n\t\t\tvar checksum = 0x12345678;\n\n\t\t\tfor ( var i = 0; i < object.length; i ++ ) {\n\t\t\t\tchecksum += (object.charCodeAt( i ) * (i + 1));\n\t\t\t}\n\n\t\t\treturn checksum;\n\t\t},\n\n\t\t/**\n\t\t * Overrides Backbone.Collection.sync\n\t\t *\n\t\t * @param {String} method\n\t\t * @param {Backbone.Model} model\n\t\t * @param {Object} [options={}]\n\t\t * @returns {Promise}\n\t\t */\n\t\tsync : function ( method, model, options ) {\n\t\t\tvar args, fallback;\n\n\t\t\t// Overload the read method so Media.fetch() functions correctly.\n\t\t\tif ( 'read' === method ) {\n\t\t\t\toptions = options || {};\n\t\t\t\toptions.data = _.extend( options.data || {}, {\n\t\t\t\t\taction : 'bc_media_query',\n\t\t\t\t\taccount : this.activeAccount || wpbc.preload.defaultAccountId,\n\t\t\t\t\tdates : this.date,\n\t\t\t\t\tposts_per_page : wpbc.posts_per_page,\n\t\t\t\t\tpage_number : this.pageNumber,\n\t\t\t\t\tnonce : wpbc.preload.nonce,\n\t\t\t\t\tsearch : this.searchTerm,\n\t\t\t\t\ttags : this.tag,\n\t\t\t\t\ttagName : wpbc.preload.tags[this.tag],\n\t\t\t\t\ttype : this.mediaType || 'videos'\n\t\t\t\t} );\n\n\t\t\t\tvar previousRequest = _.pick( options.data, 'account', 'dates', 'posts_per_page', 'search', 'tags', 'type' );\n\n\t\t\t\t// Determine if we're infinite scrolling or not.\n\t\t\t\tthis.additionalRequest = _.isEqual( previousRequest, wpbc.previousRequest );\n\t\t\t\tif ( ! this.additionalRequest ) {\n\t\t\t\t\toptions.data.page_number = 1;\n\t\t\t\t}\n\t\t\t\t/* Prevent reloading on the playlist edit as the playlist videos are one request and library videos another */\n\t\t\t\tif ( this.mediaCollectionViewType !== 'existingPlaylists' ) {\n\t\t\t\t\twpbc.previousRequest = previousRequest;\n\t\t\t\t}\n\n\t\t\t\tif ( this.videoIds ) {\n\t\t\t\t\toptions.data.videoIds = this.videoIds.length ? this.videoIds : 'none';\n\t\t\t\t}\n\n\t\t\t\toptions.data.query = args;\n\n\t\t\t\tif ( ! _.contains( ['libraryPlaylists', 'existingPlaylists'], this.mediaCollectionViewType ) ) {\n\t\t\t\t\tthis.killPendingRequests();\n\t\t\t\t}\n\n\t\t\t\tvar requestChecksum = this.checksum( options.data );\n\n\t\t\t\tif ( ! _.isUndefined( wpbc.responses[requestChecksum] ) ) {\n\t\t\t\t\tthis.parse( {data : wpbc.responses[requestChecksum]}, 'cached' );\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tvar request = $.ajax( {\n\t\t\t\t\t type : 'POST',\n\t\t\t\t\t url : wp.ajax.settings.url,\n\t\t\t\t\t context : this,\n\t\t\t\t\t data : options.data\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} ).fail( this.fetchFail );\n\n\t\t\t\twpbc.requests.push( request );\n\t\t\t\twpbc.broadcast.trigger( 'spinner:on' );\n\n\t\t\t\treturn request;\n\n\t\t\t\t// Otherwise, fall back to Backbone.sync()\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * Call wp.media.model.MediaCollection.sync or Backbone.sync\n\t\t\t\t */\n\t\t\t\tfallback = MediaCollection.prototype.sync ? MediaCollection.prototype : Backbone;\n\t\t\t\treturn fallback.sync.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tfetchFail : function () {\n\t\t\tif ( this.pageNumber > 1 ) {\n\t\t\t\tthis.pageNumber --;\n\t\t\t}\n\t\t\twpbc.broadcast.trigger( 'fetch:finished' );\n\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t\twpbc.broadcast.trigger( 'fetch:apiError' );\n\t\t\tif ( 'abort' === status ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * A custom AJAX-response parser.\n\t\t *\n\t\t * See trac ticket #24753\n\t\t *\n\t\t * @param {Object|Array} resp The raw response Object/Array.\n\t\t * @param {Object} xhr\n\t\t * @returns {Array} The array of model attributes to be added to the collection\n\t\t */\n\t\tparse : function ( response, status, request, checksum ) {\n\t\t\twpbc.broadcast.trigger( 'fetch:finished' );\n\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t\tif ( ! _.contains( ['success', 'cached'], status ) || ( 'cached' !== status && ! response['success'] ) ) {\n\t\t\t\twpbc.broadcast.trigger( 'fetch:apiError' );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar data = response.data;\n\n\t\t\tif ( \"success\" === status ) {\n\t\t\t\twpbc.responses[checksum] = data;\n\t\t\t}\n\n\t\t\tif ( false === data ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif ( ! _.isArray( data ) ) {\n\t\t\t\tdata = [data];\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * In playlist video search, we remove the videos that already exist in the playlist.\n\t\t\t */\n\t\t\tif ( _.isArray( this.excludeVideoIds ) ) {\n\t\t\t\t_.each( this.excludeVideoIds, function ( videoId ) {\n\t\t\t\t\tdata = _.without( data, _.findWhere( data, {id : videoId} ) );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tvar allMedia = _.map( data, function ( 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}, this );\n\n\t\t\tif ( this.additionalRequest ) {\n\t\t\t\tthis.add( allMedia );\n\t\t\t} else {\n\t\t\t\tthis.set( allMedia );\n\t\t\t}\n\t\t}\n\t}\n);\n","var BrightcoveMediaManagerModel = Backbone.Model.extend(\n\t{\n\t\tdefaults : {\n\t\t\tview : 'grid',\n\t\t\tdate : 'all',\n\t\t\ttags : 'all',\n\t\t\ttype : null, // enum[playlist, video]\n\t\t\tpreload : true,\n\t\t\tsearch : '',\n\t\t\taccount : wpbc.preload.defaultAccountId,\n\t\t\tposter: {},\n\t\t\tthumbnail: {}\n\t\t},\n\t\tinitialize : function ( options ) {\n\t\t\t_.defaults( options, this.defaults );\n\n\t\t\twp.heartbeat.enqueue( 'brightcove_heartbeat', { 'accountId': wpbc.preload.defaultAccountId }, true );\n\n\t\t\tvar collection = new MediaCollection( [], {mediaType : options.mediaType} );\n\t\t\tcollection.reset();\n\t\t\t/* Prevent empty element from living in our collection */\n\n\t\t\tif ( options.preload && options.preload.length ) {\n\t\t\t\tcollection.add( options.preload );\n\t\t\t}\n\n\t\t\toptions.preload = ! ! options.preload; // Whether or not a preload var was present.\n\n\t\t\tthis.set( 'media-collection-view', new MediaCollectionView( {collection : collection} ) );\n\t\t\tthis.set( 'options', options );\n\n\t\t}\n\t}\n);\n\n","/**\n * Media model for Media CPT\n */\n\nvar BrightcoveModalModel = Backbone.Model.extend(\n\t{\n\n\t\tgetMediaManagerSettings : function () {\n\t\t\tvar tab = this.get( 'tab' );\n\t\t\tvar settings = {\n\t\t\t\t'upload' : {\n\t\t\t\t\taccounts : 'all',\n\t\t\t\t\tdate : 'all',\n\t\t\t\t\tembedType : 'modal',\n\t\t\t\t\tmediaType : 'videos',\n\t\t\t\t\tmode : 'uploader',\n\t\t\t\t\tpreload : true,\n\t\t\t\t\tsearch : '',\n\t\t\t\t\ttags : 'all',\n\t\t\t\t\tviewType : 'grid',\n\t\t\t\t\tposter: {},\n\t\t\t\t\tthumbnail: {}\n\t\t\t\t},\n\t\t\t\t'videos' : {\n\t\t\t\t\taccounts : 'all',\n\t\t\t\t\tdate : 'all',\n\t\t\t\t\tembedType : 'modal',\n\t\t\t\t\tmediaType : 'videos',\n\t\t\t\t\tmode : 'manager',\n\t\t\t\t\tpreload : true,\n\t\t\t\t\tsearch : '',\n\t\t\t\t\ttags : 'all',\n\t\t\t\t\tviewType : 'grid'\n\t\t\t\t},\n\t\t\t\t'playlists' : {\n\t\t\t\t\taccounts : 'all',\n\t\t\t\t\tdate : 'all',\n\t\t\t\t\tembedType : 'modal',\n\t\t\t\t\tmediaType : 'playlists',\n\t\t\t\t\tmode : 'manager',\n\t\t\t\t\tpreload : true,\n\t\t\t\t\tsearch : '',\n\t\t\t\t\ttags : 'all',\n\t\t\t\t\tviewType : 'grid'\n\t\t\t\t},\n 'video-experience' : {\n accounts : 'all',\n date : 'all',\n embedType : 'modal',\n mediaType : 'videoexperience',\n mode : 'manager',\n preload : true,\n search : '',\n tags : 'all',\n viewType : 'grid'\n }\n ,\n 'playlist-experience' : {\n accounts : 'all',\n date : 'all',\n embedType : 'modal',\n mediaType : 'playlistexperience',\n mode : 'manager',\n preload : true,\n search : '',\n tags : 'all',\n viewType : 'grid'\n }\n\t\t\t};\n\n\t\t\tif ( undefined !== settings[tab] ) {\n\t\t\t\treturn settings[tab];\n\t\t\t}\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n);\n\n","/**\n * Collection model to contain pending uploads\n */\n\nvar UploadModelCollection = Backbone.Collection.extend(\n\t{\n\n\t\tinitialize : function ( options ) {\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:queuedFilesAdded', this.queuedFilesAdded );\n\t\t},\n\n\t\tqueuedFilesAdded : function ( queuedFiles ) {\n\t\t\t_.each( queuedFiles, function ( queuedFile ) {\n\t\t\t\tthis.add( new UploadModel( queuedFile ) );\n\t\t\t}, this );\n\t\t}\n\n\t}\n);\n\n","/**\n * Model to contain pending upload\n */\n\nvar UploadModel = Backbone.Model.extend(\n\t{\n\n\t\tinitialize : function ( options ) {\n\t\t},\n\n\t\thumanReadableSize : function () {\n\t\t\tvar bytes = this.get( 'size' );\n\t\t\tif ( bytes === 0 ) {\n\t\t\t\treturn '0 Byte';\n\t\t\t}\n\t\t\tvar k = 1000;\n\t\t\tvar sizes = ['Bytes', 'KB', 'MB', 'GB'];\n\t\t\tvar i = Math.floor( Math.log( bytes ) / Math.log( k ) );\n\t\t\treturn (bytes / Math.pow( k, i )).toPrecision( 3 ) + ' ' + sizes[i];\n\t\t}\n\n\t}\n);\n","var BrightcoveView = wp.Backbone.View.extend(\n\t{\n\t\tsubviews : null,\n\n\t\tregisterSubview : function ( view ) {\n\n\t\t\tthis.subviews = this.subviews || [];\n\t\t\tthis.subviews.push( view );\n\n\t\t},\n\n\t\tremove : function () {\n\n\t\t\t_.invoke( this.subviews, 'remove' );\n\t\t\twp.Backbone.View.prototype.remove.call( this );\n\n\t\t},\n\n\t\tinsertShortcode : function () {\n\n\t\t\tif ( ! this.model ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar shortcode = wpbc.shortcode;\n\n if ( undefined === this.mediaType ) {\n\t\t\t\tvar template = wp.template( 'brightcove-mediatype-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$( '#lost-connection-notice' ).before( template );\n\n\t\t\t\t// Allow the user to dismiss the notice\n\t\t\t\t$( '#js-mediatype-dismiss' ).on( 'click', function() {\n\t\t\t\t\t$( '#js-mediatype-notice' ).first().fadeOut( 500, function() {\n\t\t\t\t\t\t$( this ).remove();\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif( wpbc.modal.target === 'content' ) {\n\t\t\t\twindow.send_to_editor( shortcode );\n\t\t\t} else {\n\t\t\t\t$( wpbc.modal.target ).val( shortcode );\n\t\t\t\t$( wpbc.modal.target ).change();\n\t\t\t}\n\n\t\t\twpbc.broadcast.trigger( 'close:modal' );\n\t\t}\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\t{\n\t\ttagName : 'div',\n\t\tclassName : 'media-toolbar wp-filter',\n\t\ttemplate : wp.template( 'brightcove-media-toolbar' ),\n\n\t\tevents : {\n 'click .view-list': 'toggleList',\n 'click .view-grid': 'toggleGrid',\n 'click .brightcove-toolbar': 'toggleToolbar',\n 'change .brightcove-media-source': 'sourceChanged',\n 'change .brightcove-media-dates': 'datesChanged',\n 'change .brightcove-media-tags': 'tagsChanged',\n 'change .brightcove-empty-playlists': 'emptyPlaylistsChanged',\n 'click #media-search': 'searchHandler',\n 'keyup .search': 'enterHandler'\n\t\t},\n\n\t\trender : function () {\n\t\t\tvar mediaType = this.model.get( 'mediaType' );\n\t\t\tvar options = {\n\t\t\t\taccounts : wpbc.preload.accounts,\n\t\t\t\tdates : {},\n\t\t\t\tmediaType : mediaType,\n\t\t\t\ttags : wpbc.preload.tags,\n\t\t\t\taccount : this.model.get( 'account' )\n\t\t\t};\n\n\t\t\tvar dates = wpbc.preload.dates;\n\t\t\tvar date_var = this.model.get( 'date' );\n\t\t\t/* @todo: find out if this is working */\n\t\t\tif ( dates !== undefined && dates[mediaType] !== undefined && dates[mediaType][date_var] !== undefined ) {\n\t\t\t\toptions.dates = dates[mediaType][date_var];\n\t\t\t}\n\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t\tvar spinner = this.$el.find( '.spinner' );\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:on', function () {\n\t\t\t\tspinner.addClass( 'is-active' ).removeClass( 'hidden' );\n\t\t\t} );\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:off', function () {\n\t\t\t\tspinner.removeClass( 'is-active' ).addClass( 'hidden' );\n\t\t\t} );\n\t\t},\n\n\t\t// List view Selected\n\t\ttoggleList : function () {\n\t\t\tthis.trigger( 'viewType', 'list' );\n\t\t\tthis.$el.find( '.view-list' ).addClass( 'current' );\n\t\t\tthis.$el.find( '.view-grid' ).removeClass( 'current' );\n\t\t},\n\n\t\t// Grid view Selected\n\t\ttoggleGrid : function () {\n\t\t\tthis.trigger( 'viewType', 'grid' );\n\t\t\tthis.$el.find( '.view-grid' ).addClass( 'current' );\n\t\t\tthis.$el.find( '.view-list' ).removeClass( 'current' );\n\t\t},\n\n\t\t// Toggle toolbar help\n\t\ttoggleToolbar : function () {\n\t\t\tvar template = wp.template( 'brightcove-tooltip-notice' );\n\n\t\t\t// Throw a notice to the user that the file is not the correct format\n\t\t\t$( '.brightcove-media-videos' ).before( template );\n\t\t\t// Allow the user to dismiss the notice\n\t\t\t$( '#js-tooltip-dismiss' ).on( 'click', function() {\n\t\t\t\t$( '#js-tooltip-notice' ).first().fadeOut( 500, function() {\n\t\t\t\t\t$( this ).remove();\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\n\t\t// Brightcove source changed\n\t\tsourceChanged : function ( event ) {\n\n\t\t\t// Store the currently selected account on the model.\n\t\t\tthis.model.set( 'account', event.target.value );\n\t\t\twpbc.broadcast.trigger( 'change:activeAccount', event.target.value );\n\t\t},\n\n\t\tdatesChanged : function ( event ) {\n\t\t\twpbc.broadcast.trigger( 'change:date', event.target.value );\n\t\t},\n\n\t\ttagsChanged : function ( event ) {\n\t\t\twpbc.broadcast.trigger( 'change:tag', event.target.value );\n\t\t},\n\n\t\temptyPlaylistsChanged : function ( event ) {\n\t\t\tvar emptyPlaylists = $( event.target ).prop( 'checked' );\n\t\t\twpbc.broadcast.trigger( 'change:emptyPlaylists', emptyPlaylists );\n\t\t},\n\n enterHandler : function ( event ) {\n if ( event.keyCode === 13 ) {\n this.searchHandler( event );\n }\n },\n\n\t\tsearchHandler : function ( event ) {\n\t\t\tvar searchTerm = $( '#media-search-input' ).val();\n\n\t\t\tif ( searchTerm.length > 2 && searchTerm !== this.model.get( 'search' ) ) {\n\t\t\t\tthis.model.set( 'search', searchTerm );\n\t\t\t\twpbc.broadcast.trigger( 'change:searchTerm', searchTerm );\n\t\t\t} else if (searchTerm.length === 0) {\n \t\t\twpbc.broadcast.trigger( 'change:searchTerm', \"\" );\n\t\t\t}\n\t\t}\n\t}\n);\n\n","var UploadVideoManagerView = BrightcoveView.extend(\n\t{\n\t\tclassName : \"brightcove-file-uploader\",\n\n\t\tevents : {\n\t\t\t'click .brightcove-start-upload' : 'triggerUpload'\n\t\t},\n\n\t\tinitialize : function ( options ) {\n\t\t\t/**\n\t\t\t * If you're looking for the Plupload instance, you're in the wrong place, check the UploadWindowView\n\t\t\t */\n\t\t\tthis.collection = new UploadModelCollection();\n\t\t\tif ( options ) {\n\t\t\t\tthis.options = options;\n\n\t\t\t\tthis.successMessage = options.successMessage || this.successMessage;\n\t\t\t}\n\n\t\t\tthis.uploadWindow = new UploadWindowView();\n\n\t\t\tthis.listenTo( this.collection, 'add', this.fileAdded );\n\t\t\tthis.listenTo( wpbc.broadcast, 'pendingUpload:selectedItem', this.selectedItem );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:prepareUpload', this.prepareUpload );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:successMessage', this.successMessage );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:errorMessage', this.errorMessage );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:clear', this.resetUploads );\n\t\t\tthis.listenTo( wpbc.broadcast, 'upload:video', this.resetUploads );\n\t\t},\n\n\t\tresetUploads : function () {\n\t\t\twhile ( model = this.collection.first() ) {\n\t\t\t\tthis.collection.remove( model );\n\t\t\t}\n\t\t},\n\n\t\terrorMessage : function ( message ) {\n\t\t\tthis.message( message, 'error' );\n\t\t},\n\n\t\tsuccessMessage : function ( message ) {\n\t\t\tthis.message( message, 'success' );\n\t\t},\n\n\t\tmessage : function ( message, type ) {\n\t\t\tvar messages = this.$el.find( '.brightcove-messages' );\n\t\t\tvar messageClasses = '';\n\t\t\tif ( 'success' === type ) {\n\t\t\t\tmessageClasses = 'notice updated';\n\t\t\t} else if ( 'error' === type ) {\n\t\t\t\tmessageClasses = 'error';\n\t\t\t}\n\t\t\tvar newMessage = $( '
' );\n\t\t\tmessages.append( newMessage );\n\t\t\tnewMessage.addClass( messageClasses ).find( '.message-text' ).text( message );\n\t\t\tnewMessage.delay( 4000 ).fadeOut( 500, function () {\n\t\t\t\t$( this ).remove();\n\t\t\t\twpbc.broadcast.trigger('upload:video');\n\t\t\t} );\n\t\t},\n\n\t\tprepareUpload : function () {\n\t\t\twpbc.uploads = wpbc.uploads || {};\n\t\t\tthis.collection.each( function ( upload ) {\n\t\t\t\twpbc.uploads[upload.get( 'id' )] = {\n\t\t\t\t\taccount : upload.get( 'account' ),\n\t\t\t\t\tname : upload.get( 'fileName' ),\n\t\t\t\t\ttags : upload.get( 'tags' )\n\t\t\t\t};\n\t\t\t} );\n\t\t\twpbc.broadcast.trigger( 'uploader:startUpload' );\n\t\t},\n\n\t\tfileAdded : function ( model, collection ) {\n\t\t\t// Start upload triggers progress bars under every video.\n\t\t\t// Need to re-render when one model is added\n\t\t\tif ( this.collection.length === 1 ) {\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t\tvar pendingUpload = new UploadView( {model : model} );\n\t\t\tpendingUpload.render();\n\t\t\tpendingUpload.$el.appendTo( this.$el.find( '.brightcove-pending-uploads' ) );\n\t\t},\n\n\t\ttriggerUpload : function () {\n\t\t\twpbc.broadcast.trigger( 'uploader:prepareUpload' );\n\t\t},\n\n\t\tselectedItem : function ( model ) {\n\t\t\tthis.uploadDetails = new UploadDetailsView( {model : model} );\n\t\t\tthis.uploadDetails.render();\n\t\t\tthis.$el.find( '.brightcove-pending-upload-details' ).remove();\n\t\t\tthis.uploadDetails.$el.appendTo( this.$el.find( '.brightcove-upload-queued-files' ) );\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\tif ( this.collection.length ) {\n\t\t\t\tthis.template = wp.template( 'brightcove-uploader-queued-files' );\n\t\t\t} else {\n\t\t\t\tthis.template = wp.template( 'brightcove-uploader-inline' );\n\t\t\t\tthis.uploadWindow.render();\n\t\t\t\tthis.uploadWindow.$el.appendTo( $( 'body' ) );\n\t\t\t}\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t\tif ( this.collection.length ) {\n\t\t\t\tthis.$el.find( '.brightcove-start-upload' ).show();\n\t\t\t} else {\n\t\t\t\tthis.$el.find( '.brightcove-start-upload' ).hide();\n\t\t\t}\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\t{\n\t\ttagName : 'div',\n\t\tclassName : 'brightcove-media',\n\n\t\tevents : {\n\t\t\t/*\n\t\t\t 'click .brightcove.media-button': 'insertIntoPost'\n\t\t\t */\n\t\t},\n\n\t\tscrollHandler : function () {\n\t\t\twpbc.broadcast.trigger( 'scroll:mediaGrid' );\n\t\t},\n\n\t\tinitialize : function ( options ) {\n\n\t\t\tvar scrollRefreshSensitivity = wp.media.isTouchDevice ? 300 : 200;\n\t\t\tthis.scrollHandler = _.chain( this.scrollHandler ).bind( this ).throttle( scrollRefreshSensitivity ).value();\n\t\t\tthis.options = options;\n\t\t\tthis.mode = options.mode || 'manager';\n\n\t\t\toptions.preload = this.options.preload ? wpbc.preload[this.options.mediaType] : false;\n\n\t\t\tthis.model = new BrightcoveMediaManagerModel( options );\n\n\t\t\t/* Search and dropdowns */\n\t\t\tthis.toolbar = new ToolbarView( {model : this.model} );\n\n\t\t\t/* Uploader View */\n\t\t\tthis.uploader = new UploadVideoManagerView();\n\n\t\t\tthis.model.set( 'accounts', wpbc.preload.accounts ); // All accounts.\n\t\t\tthis.model.set( 'activeAccount', options.account ); // Active account ID / All\n\n\t\t\tthis.listenTo( this.toolbar, 'viewType', function ( viewType ) {\n\t\t\t\tthis.model.set( 'view', viewType ); // Set the model view type\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'videoEdit:message', this.message );\n\t\t\tthis.listenTo( wpbc.broadcast, 'permanent:message', this.permanentMessage );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'remove:permanentMessage', function () {\n\n\t\t\t\tif ( wpbc.permanentMessage ) {\n\t\t\t\t\twpbc.permanentMessage.remove();\n\t\t\t\t}\n\n\t\t\t\tthis.$el.find( '.brightcove-message' ).addClass( 'hidden' );\n\n\t\t\t} );\n\n\t\t\t// We only care when a change occurs\n\t\t\tthis.listenTo( this.model, 'change:view', function ( model, type ) {\n\t\t\t\tthis.model.get( 'media-collection-view' ).setViewType( type );\n\t\t\t} );\n\n\t\t\tthis.listenTo( this.model, 'change:mode', function ( model, mode ) {\n\n\t\t\t\tif ( 'uploader' !== mode ) {\n\t\t\t\t\twpbc.broadcast.trigger( 'uploader:clear' );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'cancelPreview:media', function ( settings ) {\n\t\t\t\tthis.clearPreview();\n\t\t\t\tthis.detailsView = undefined;\n\t\t\t\tthis.model.set( 'mode', 'manager' );\n\t\t\t\tthis.render();\n\n\t\t\t\t// Disable \"Insert Into Post\" button since no video would be selected.\n\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton' );\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:emptyPlaylists', function ( hideEmptyPlaylists ) {\n\n\t\t\t\tvar mediaCollectionView = this.model.get( 'media-collection-view' );\n\t\t\t\tthis.model.set( 'mode', 'manager' );\n\n\t\t\t\t_.each( mediaCollectionView.collection.models, function ( playlistModel ) {\n\n\t\t\t\t\t// Don't hide smart playlists. Only Manual playlists will have playlistType as 'EXPLICIT'.\n\t\t\t\t\tif ( 'EXPLICIT' !== playlistModel.get ( 'type' ) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\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\t\tif ( playlistModel.get( 'video_ids' ).length === 0 ) {\n\t\t\t\t\t\tif ( hideEmptyPlaylists ) {\n\t\t\t\t\t\t\tplaylistModel.view.$el.hide();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tplaylistModel.view.$el.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'delete:successful', function ( message ) {\n\n\t\t\t\tthis.startGridView();\n\t\t\t\tthis.message( message, 'success' );\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:activeAccount', function ( accountId ) {\n\n\t\t\t\tthis.clearPreview();\n\t\t\t\tthis.model.set( 'activeAccount', accountId );\n\t\t\t\tthis.model.set( 'mode', 'manager' );\n\t\t\t\tthis.render();\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:tag', function ( tag ) {\n\n\t\t\t\tthis.clearPreview();\n\t\t\t\tthis.model.set( 'tag', tag );\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:date', function ( date ) {\n\n\t\t\t\tthis.clearPreview();\n\t\t\t\tthis.model.set( 'date', date );\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'upload:video', function () {\n\t\t\t\tthis.showUploader();\n\t\t\t} );\n\n\t\t\tthis.listenTo( this.model, 'change:search', function ( model, searchTerm ) {\n\t\t\t\tthis.model.get( 'search' );\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'start:gridview', function () {\n\n\t\t\t\t_.invoke( this.subviews, 'remove' );\n\n\t\t\t\tthis.detailsView = null; // Prevent selected view from not being toggleable when we hit the back button on edit\n\n\t\t\t\tthis.startGridView();\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'tabChange', function ( settings ) {\n\n\t\t\t\tthis.model.set( settings );\n\n\t\t\t\tif ( this.detailsView instanceof MediaDetailsView ) {\n\n\t\t\t\t\tthis.detailsView.remove();\n\n\t\t\t\t\tthis.detailsView = undefined;\n\n\t\t\t\t}\n\n\t\t\t\tthis.render();\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'edit:media', function ( model ) {\n\n\t\t\t\tvar mediaType = this.model.get( 'mediaType' );\n\n\t\t\t\tif ( mediaType === 'videos' ) {\n\n\t\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\t\tif ( 'editVideo' === this.model.get( 'mode' ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// hide the previous notification\n\t\t\t\t\tvar messages = this.$el.find( '.brightcove-message' );\n\t\t\t\t\tmessages.addClass( 'hidden' );\n\n\t\t\t\t\tthis.editView = new VideoEditView( {model : model} );\n\n\t\t\t\t\tthis.registerSubview( this.editView );\n\t\t\t\t\tthis.model.set( 'mode', 'editVideo' );\n\t\t\t\t\tthis.render();\n\n\t\t\t\t} else if ( mediaType === 'videoexperience' ) {\n\n\t\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\t\tif ( 'editVideo' === this.model.get( 'mode' ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// hide the previous notification\n\t\t\t\t\tvar messages = this.$el.find( '.brightcove-message' );\n\t\t\t\t\tmessages.addClass( 'hidden' );\n\n\t\t\t\t\tthis.editView = new VideoEditView( {model : model} );\n\n\t\t\t\t\tthis.registerSubview( this.editView );\n\t\t\t\t\tthis.model.set( 'mode', 'editVideo' );\n\t\t\t\t\tthis.render();\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\t\tif ( 'editPlaylist' === this.model.get( 'mode' ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.editView = new PlaylistEditView( {model : model} );\n\n\t\t\t\t\tthis.registerSubview( this.editView );\n\t\t\t\t\tthis.model.set( 'mode', 'editPlaylist' );\n\t\t\t\t\tthis.render();\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'preview:media', function ( model, shortcode ) {\n\n\t\t\t\tvar mediaType = this.model.get( 'mediaType' );\n\n\t\t\t\tif ( mediaType === 'videos' ) {\n\n\t\t\t\t\t// We just hit the preview button with the preview window already open.\n\t\t\t\t\tif ( 'previewVideo' === this.model.get( 'mode' ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.previewView = new VideoPreviewView( {model : model, shortcode: shortcode} );\n\n\t\t\t\t\tthis.registerSubview( this.previewView );\n\t\t\t\t\tthis.model.set( 'mode', 'previewVideo' );\n\t\t\t\t\tthis.render();\n\n\t\t\t\t} else {\n\n\t\t\t\t\t/**\n\t\t\t\t\t * @todo: playlist preview view\n\t\t\t\t\t */\n\t\t\t\t\tthis.model.set( 'mode', 'editPlaylist' );\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:searchTerm', function ( mediaView ) {\n\t\t\t\tthis.clearPreview();\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'select:media', function ( mediaView ) {\n\n\t\t\t\t// Handle selection in the video experience tab.\n\t\t\t\tif ( mediaView.model.collection && 'videoexperience' === mediaView.model.collection.mediaType ) {\n\n\t\t\t\t\t// Toggle the selected state.\n\t\t\t\t\tmediaView.$el.toggleClass( 'highlighted' );\n\t\t\t\t\tmediaView.model.set( 'isSelected', mediaView.$el.hasClass( 'highlighted' ) );\n\n\t\t\t\t\t// Collect the selected models and extract their IDs.\n\t\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\t\tthis.detailsView.model.set( 'id', selectedIds );\n\n\t\t\t\t\t// Clear the shortcode and disable insertion if no items are selected.\n\t\t\t\t\tif ( _.isEmpty( selectedIds ) && 'videoexperience' !== this.model.get( 'mediaType' )) {\n\t\t\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton' );\n\t\t\t\t\t\t$( '#shortcode' ).val( '' );\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Otherwise, enable insertion.\n\t\t\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton', 'enabled' );\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t/* If user selects same thumbnail they want to hide the details view */\n\t\t\t\t\tif ( this.detailsView && this.detailsView.model === mediaView.model ) {\n\n\t\t\t\t\t\tthis.detailsView.$el.toggle();\n\t\t\t\t\t\tmediaView.$el.toggleClass( 'highlighted' );\n\t\t\t\t\t\tthis.model.get( 'media-collection-view' ).$el.toggleClass( 'menu-visible' );\n\t\t\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton' );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.clearPreview();\n\t\t\t\t\t\tthis.detailsView = new MediaDetailsView( {model : mediaView.model, el : $( '.brightcove.media-frame-menu' ), mediaType : this.model.get( 'mediaType' )} );\n\t\t\t\t\t\tthis.registerSubview( this.detailsView );\n\n\t\t\t\t\t\tthis.detailsView.render();\n\t\t\t\t\t\tthis.detailsView.$el.toggle( true ); // Always show new view\n\t\t\t\t\t\tthis.model.get( 'media-collection-view' ).$el.addClass( 'menu-visible' );\n\t\t\t\t\t\tmediaView.$el.addClass( 'highlighted' );\n\t\t\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton', 'enabled' );\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Clear the preview view and remove highlighted class from previous selected video.\n\t\t */\n\t\tclearPreview : function () {\n\n\t\t\tif ( this.detailsView instanceof MediaDetailsView ) {\n\t\t\t\tthis.detailsView.remove();\n\t\t\t}\n\n\t\t\tthis.model.get( 'media-collection-view' ).$el.find( '.highlighted' ).removeClass( 'highlighted' );\n\n\t\t},\n\n\t\tstartGridView : function () {\n\n\t\t\tthis.model.set( 'mode', 'manager' );\n\t\t\tthis.render();\n\n\t\t},\n\n\t\tmessage : function ( message, type, permanent ) {\n\n\t\t\tvar messages = this.$el.find( '.brightcove-message' );\n\n\t\t\tif ( 'success' === type ) {\n\n\t\t\t\tmessages.addClass( 'updated' );\n\t\t\t\tmessages.removeClass( 'error' );\n\n\t\t\t} else if ( 'error' === type ) {\n\n\t\t\t\tmessages.addClass( 'error' );\n\t\t\t\tmessages.removeClass( 'updated' );\n\n\t\t\t}\n\n\t\t\tvar newMessage = $( '' );\n\t\t\tnewMessage.text( message );\n\n\t\t\tmessages.append( newMessage );\n\t\t\tmessages.removeClass( 'hidden' );\n\n\t\t\tif ( permanent ) {\n\n\t\t\t\tif ( wpbc.permanentMessage ) {\n\t\t\t\t\twpbc.permanentMessage.remove();\n\t\t\t\t}\n\n\t\t\t\twpbc.permanentMessage = newMessage;\n\n\t\t\t} else {\n\t\t\t\t// Make the notice dismissable.\n\t\t\t\tmessages.addClass( 'notice is-dismissible' );\n\t\t\t\tthis.makeNoticesDismissible();\n\t\t\t}\n\t\t},\n\n\t\t// Make notices dismissible, mimics core function, fades them empties.\n\t\tmakeNoticesDismissible : function() {\n\t\t\t$( '.notice.is-dismissible' ).each( function() {\n\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t$button = $( '' ),\n\t\t\t\t\tbtnText = commonL10n.dismiss || '';\n\n\t\t\t\t// Ensure plain text\n\t\t\t\t$button.find( '.screen-reader-text' ).text( btnText );\n\t\t\t\t$button.on( 'click.wp-dismiss-notice', function( event ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t$el.fadeTo( 100, 0, function() {\n\t\t\t\t\t\t$el.slideUp( 100, function() {\n\t\t\t\t\t\t\t$el.addClass( 'hidden' )\n\t\t\t\t\t\t\t\t.css( {\n\t\t\t\t\t\t\t\t\t'opacity': 1,\n\t\t\t\t\t\t\t\t\t'margin-bottom': 0,\n\t\t\t\t\t\t\t\t\t'display': ''\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t.empty();\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t$el.append( $button );\n\t\t\t});\n\t\t},\n\n\t\tshowUploader : function () {\n\n\t\t\tthis.model.set( 'mode', 'uploader' );\n\t\t\tthis.render();\n\n\t\t},\n\n\t\tpermanentMessage : function ( message ) {\n\t\t\tthis.message( message, 'error', true );\n\t\t},\n\n\t\trender : function () {\n\n\t\t\tvar options = this.model.get( 'options' );\n\t\t\tvar contentContainer;\n\n\t\t\tvar mode = this.model.get( 'mode' );\n\n\t\t\t// Nuke all registered subviews\n\t\t\t_.invoke( this.subviews, 'remove' );\n\n\t\t\tif ( 'uploader' === mode ) {\n\n\t\t\t\tthis.template = wp.template( 'brightcove-uploader-container' );\n\n\t\t\t\tthis.$el.empty();\n\t\t\t\tthis.$el.html( this.template( options ) );\n\t\t\t\tthis.uploader.render();\n\t\t\t\tthis.uploader.delegateEvents();\n\t\t\t\tthis.uploader.$el.appendTo( $( '.brightcove-uploader' ) );\n\n\t\t\t} else if ( 'manager' === mode ) {\n\n\t\t\t\tthis.template = wp.template( 'brightcove-media' );\n\n\t\t\t\tthis.$el.html( this.template( options ) );\n\t\t\t\tthis.toolbar.render();\n\t\t\t\tthis.toolbar.delegateEvents();\n\t\t\t\tthis.toolbar.$el.show();\n\t\t\t\tthis.toolbar.$el.appendTo( this.$el.find( '.media-frame-router' ) );\n\n\t\t\t\t// Add the Media views to the media manager\n\t\t\t\tvar mediaCollectionView = this.model.get( 'media-collection-view' );\n\n\t\t\t\tmediaCollectionView.render();\n\t\t\t\tmediaCollectionView.delegateEvents();\n\n\t\t\t\tvar mediaCollectionContainer = this.$el.find( '.media-frame-content' );\n\n\t\t\t\tmediaCollectionContainer.on( 'scroll', this.scrollHandler );\n\t\t\t\tmediaCollectionView.$el.appendTo( mediaCollectionContainer );\n\n\t\t\t\tif ( ! ! wpbc.initialSync ) {\n\n\t\t\t\t\twpbc.broadcast.trigger( 'remove:permanentMessage' );\n\t\t\t\t\twpbc.broadcast.trigger( 'permanent:message', wpbc.preload.messages.ongoingSync );\n\n\t\t\t\t}\n\t\t\t\tif ( 'videoexperience' === this.model.get( 'mediaType' ) ) {\n\t\t\t\t\tthis.detailsView = new MediaDetailsView( {\n\t\t\t\t\t\tmodel : new MediaModel( this.model.attributes ),\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 wpbc.broadcast.trigger( 'toggle:insertButton', 'enabled' );\n\t\t\t\t\tthis.model.get( 'media-collection-view' ).$el.addClass( 'menu-visible' );\n\t\t\t\t}\n\t\t\t} else if ( 'editVideo' === mode ) {\n\n\t\t\t\tthis.toolbar.$el.hide();\n\n\t\t\t\tcontentContainer = this.$el.find( '.media-frame-content' );\n\n\t\t\t\tcontentContainer.empty();\n\t\t\t\tthis.editView.render();\n\t\t\t\tthis.editView.delegateEvents();\n\t\t\t\tthis.editView.$el.appendTo( contentContainer );\n\t\t\t\tthis.$el.find( '.brightcove.media-frame-content' ).addClass( 'edit-view' );\n\n\t\t\t} else if ( 'editPlaylist' === mode ) {\n\n\t\t\t\tthis.toolbar.$el.hide();\n\n\t\t\t\tcontentContainer = this.$el;\n\n\t\t\t\tcontentContainer.empty();\n\t\t\t\tcontentContainer.html( '' );\n\n\t\t\t\tcontentContainer = contentContainer.find( '.playlist-edit-container' );\n\n\t\t\t\tthis.editView.render();\n\t\t\t\tthis.editView.delegateEvents();\n\t\t\t\tthis.editView.$el.appendTo( contentContainer );\n\t\t\t\tcontentContainer.addClass( 'playlist' );\n\n\t\t\t} else if ( 'previewVideo' === mode ) {\n\n\t\t\t\tthis.toolbar.$el.hide();\n\n\t\t\t\tcontentContainer = this.$el.find( '.media-frame-content' );\n\n\t\t\t\tcontentContainer.empty();\n\t\t\t\tthis.previewView.render();\n\t\t\t\tthis.detailsView.render( {detailsMode : 'preview'} );\n\t\t\t\tthis.previewView.delegateEvents();\n\t\t\t\tthis.previewView.$el.appendTo( contentContainer );\n\t\t\t\tthis.$el.find( '.brightcove.media-frame-toolbar' ).hide();\n\t\t\t\tbrightcove.createExperiences();\n\n\t\t\t}\n\n\t\t\tif ( 'editPlaylist' !== mode ) {\n\t\t\t\tthis.$el.find( '.media-frame-content' ).removeClass( 'playlist' );\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t}\n);\n","var BrightcoveModalView = BrightcoveView.extend(\n\t{\n\t\ttagName : 'div',\n\t\tclassName : 'media-modal brightcove',\n\t\ttemplate : wp.template( 'brightcove-media-modal' ),\n\n\t\tevents : {\n\t\t\t'click .brightcove.media-menu-item' : 'changeTab',\n\t\t\t'click .brightcove.media-button-insert' : 'insertIntoPost',\n\t\t\t'click .media-modal-close' : 'closeModal',\n\t\t\t'click .brightcove.save-sync' : 'saveSync',\n\t\t\t'click .brightcove.button.back' : 'back'\n\t\t},\n\n\t\tinitialize : function ( options ) {\n\t\t\tthis.model = new BrightcoveModalModel( {tab : options.tab} );\n\t\t\tthis.brightcoveMediaManager = new BrightcoveMediaManagerView( this.model.getMediaManagerSettings() );\n\t\t\tthis.registerSubview( this.brightcoveMediaManager );\n\t\t\tthis.listenTo( wpbc.broadcast, 'toggle:insertButton', function ( state ) {\n\t\t\t\tthis.toggleInsertButton( state );\n\t\t\t} );\n\t\t\tthis.listenTo( wpbc.broadcast, 'close:modal', this.closeModal );\n\t\t},\n\n\t\tsaveSync : function( evnt ) {\n\t\t\t// This event is triggered when the \"Save and Sync Changes\" button is clicked from edit video screen.\n\t\t\twpbc.broadcast.trigger( 'save:media', evnt );\n\t\t},\n\n\t\tback : function( evnt ) {\n\t\t\t// This event is triggered when the \"Back\" button is clicked from edit video screen.\n\t\t\twpbc.broadcast.trigger( 'back:editvideo', evnt );\n\t\t},\n\n\t\tinsertIntoPost : function ( evnt ) {\n\t\t\tevnt.preventDefault();\n\n\t\t\t// Exit if the 'button' is disabled.\n\t\t\tif ( $( evnt.currentTarget ).hasClass( 'disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twpbc.shortcode = $( '#shortcode' ).val();\n\n\t\t\t// Media Details will trigger the insertion since it's always active and contains\n\t\t\t// the model we're inserting\n\t\t\twpbc.broadcast.trigger( 'insert:shortcode' );\n\t\t},\n\n\t\ttoggleInsertButton : function ( state ) {\n\t\t\tvar button = this.$el.find( '.brightcove.media-button-insert' ),\n\t\t\t\tprocessing = $('.attachment.highlighted' ).find( '.processing' ).length;\n\n\t\t\tbutton.show();\n\n\t\t\tif ( 1 === processing ) {\n\t\t\t\tbutton.attr( 'disabled', 'disabled' );\n\t\t\t} else if ( 'enabled' === state ) {\n\t\t\t\tbutton.removeAttr( 'disabled' );\n\t\t\t} else if ( 'disabled' === state ) {\n\t\t\t\tbutton.attr( 'disabled', 'disabled' );\n\t\t\t} else if ( undefined !== button.attr( 'disabled' ) ) {\n\t\t\t\tbutton.removeAttr( 'disabled' );\n\t\t\t} else {\n\t\t\t\tbutton.attr( 'disabled', 'disabled' );\n\t\t\t}\n\t\t},\n\n\t\tchangeTab : function ( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( $( event.target ).hasClass( 'active' ) ) {\n\t\t\t\treturn; // Clicking the already active tab\n\t\t\t}\n\t\t\t$( event.target ).addClass( 'active' );\n\t\t\tvar tab = _.without( event.target.classList, 'media-menu-item', 'brightcove' )[0];\n\t\t\tvar tabs = ['videos', 'upload', 'playlists', 'video-experience', 'playlist-experience'];\n\t\t\t_.each( _.without( tabs, tab ), function ( otherTab ) {\n\t\t\t\t$( '.brightcove.media-menu-item.' + otherTab ).removeClass( 'active' );\n\t\t\t} );\n\n\t\t\tif ( _.contains( tabs, tab ) ) {\n\t\t\t\tthis.model.set( 'tab', tab );\n\t\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t\t\twpbc.broadcast.trigger( 'tabChange', this.model.getMediaManagerSettings() );\n\t\t\t}\n\n\t\t},\n\n\t\tcloseModal : function ( evnt ) {\n\n\t\t\t// If we are in the editVideo mode, switch back to the video view.\n\t\t\tif ( 'editVideo' === wpbc.modal.brightcoveMediaManager.model.get('mode') ) {\n\t\t\t\twpbc.broadcast.trigger( 'start:gridview' );\n\t\t\t}\n\n\t\t\t// Exit if the container button is disabled.\n\t\t\tif ( ! _.isUndefined( evnt ) && $( evnt.currentTarget ).parent().hasClass( 'disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.$el.hide();\n\t\t\t$( 'body' ).removeClass( 'modal-open' );\n\t\t},\n\n\t\tmessage : function ( message ) {\n\t\t\tvar messageContainer = this.$el.find( '.brightcove-message' );\n\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\tthis.$el.html( this.template( options ) );\n\n\t\t\tthis.brightcoveMediaManager.render();\n\t\t\tthis.brightcoveMediaManager.$el.appendTo( this.$el.find( '.media-frame-content' ) );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'edit:media', function( model, mediaType ) {\n\t\t\t\tif ( 'videos' === mediaType ) {\n\t\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\t\tthis.$el.find( '.brightcove.button.save-sync' ).show();\n\t\t\t\t\tthis.$el.find( '.brightcove.button.back' ).show();\n\t\t\t\t\tthis.$el.find( '.brightcove.media-button-insert' ).hide();\n\t\t\t\t} else {\n\t\t\t\t\t// When edit playlist screen is opened, hide all the buttons.\n\t\t\t\t\tthis.$el.find( '.brightcove.button.save-sync' ).hide();\n\t\t\t\t\tthis.$el.find( '.brightcove.button.back' ).hide();\n\t\t\t\t\tthis.$el.find( '.brightcove.media-button-insert' ).hide();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'save:media back:editvideo start:gridView', function() {\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' ).show();\n\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton' );\n\t\t\t} );\n\t\t}\n\n\t}\n);\n\n","var MediaDetailsView = BrightcoveView.extend(\n\t{\n\t\ttagName : 'div',\n\t\tclassName : 'media-details',\n\n\t\tattributes : function () {\n\t\t\treturn {\n\t\t\t\t'tabIndex' : 0,\n\t\t\t\t'role' : 'checkbox',\n\t\t\t\t'aria-label' : this.model.get( 'title' ),\n\t\t\t\t'aria-checked' : false,\n\t\t\t\t'data-id' : this.model.get( 'id' )\n\t\t\t};\n\t\t},\n\n\t\tevents : {\n\t\t\t'click .brightcove.edit.button' : 'triggerEditMedia',\n\t\t\t'click .brightcove.preview.button' : 'triggerPreviewMedia',\n\t\t\t'click .brightcove.back.button' : 'triggerCancelPreviewMedia',\n\t\t\t'click .playlist-details input[name=\"embed-style\"]' : 'togglePlaylistSizing',\n 'change #aspect-ratio' : 'toggleUnits',\n 'change .experience-details input[name=\"sizing\"],.experience-details input[name=\"embed-style\"]' : 'toggleExperienceUnits',\n 'change #video-player, #autoplay, #mute, input[name=\"embed-style\"], input[name=\"sizing\"], #aspect-ratio, #width, #height' : 'generateShortcode',\n\t\t\t'change #generate-shortcode' : 'toggleShortcodeGeneration',\n\t\t},\n\n\t\ttriggerEditMedia : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\twpbc.broadcast.trigger( 'edit:media', this.model, this.mediaType );\n\t\t},\n\n\t\ttriggerPreviewMedia : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tvar shortcode = $( '#shortcode' ).val();\n\t\t\twpbc.broadcast.trigger( 'preview:media', this.model, shortcode );\n\t\t},\n\n\t\ttriggerCancelPreviewMedia : function ( event ) {\n\t\t\twpbc.broadcast.trigger( 'cancelPreview:media', this.mediaType );\n\t\t},\n\n\t\ttogglePlaylistSizing: function( event ) {\n\t\t\tvar embedStyle = $( '.playlist-details input[name=\"embed-style\"]:checked' ).val(),\n\t\t\t\t$sizing = $( '#sizing-fixed, #sizing-responsive' );\n\n\t\t\tif ( 'iframe' === embedStyle ) {\n\t\t\t\t$sizing.removeAttr( 'disabled' );\n\t\t\t} else {\n\t\t\t\t$sizing.attr( 'disabled', true );\n\t\t\t}\n\t\t},\n\n\t\ttoggleUnits: function( event ) {\n\t\t\tvar value = $( '#aspect-ratio' ).val();\n\n\t\t\tif ( 'custom' === value ) {\n\t\t\t\t$( '#height' ).removeAttr( 'readonly' );\n\t\t\t} else {\n\t\t\t\tvar $height = $( '#height' ),\n\t\t\t\t\twidth = $( '#width' ).val();\n\n\t\t\t\t$height.attr( 'readonly', true );\n\n\t\t\t\tif ( width > 0 ) {\n\t\t\t\t\tif ( '16:9' === value ) {\n\t\t\t\t\t\t$height.val( width/( 16/9 ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$height.val( width/( 4/3 ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n toggleExperienceUnits: function( event ) {\n var $sizingField=$( 'input[name=\"sizing\"]:checked' );\n var $sizing = $sizingField.val();\n var $embedStyle = $( 'input[name=\"embed-style\"]:checked' ).val();\n var $height = $( '#height' );\n var $width = $( '#width' );\n var $inputSizing = $( 'input[name=\"sizing\"]' );\n var $sizingDiv = $('.embed-sizing-div');\n\n $height.removeAttr('readonly');\n $width.removeAttr('readonly');\n $sizingField.show();\n $sizingDiv.show();\n\n if ( 'responsive' === $sizing && 'javascript' === $embedStyle ) {\n $height.attr('readonly', true);\n }\n else if ( 'fixed' === $sizing && 'javascript' === $embedStyle ) {\n $height.removeAttr('readonly');\n $width.removeAttr('readonly');\n }\n else {\n \t$inputSizing.attr('checked',false);\n $('#sizing-fixed').attr('checked', true);\n $sizingDiv.hide();\n }\n\n },\n\n\t\tgenerateShortcode: function () {\n\t\t\tswitch (this.mediaType){\n\t\t\t\tcase 'videos':\n\t\t\t\t\tthis.generateVideoShortcode();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'videoexperience':\n\t\t\t\t\tthis.generateExperienceShortcode();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'playlistexperience':\n\t\t\t\t\tthis.generatePlaylistExperienceShortcode();\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.generatePlaylistShortcode();\n\t\t\t}\n\t\t},\n\n\t\tgenerateVideoShortcode: function () {\n\t\t\tvar videoId = this.model.get( 'id' ).replace( /\\D/g, '' ),\n\t\t\t\taccountId = this.model.get( 'account_id' ).replace( /\\D/g, '' ),\n\t\t\t\tplayerId = $( '#video-player' ).val(),\n\t\t\t\tautoplay = ( $( '#autoplay' ).is( ':checked' ) ) ? 'autoplay': '',\n\t\t\t\tmute = ( $( '#mute' ).is( ':checked' ) ) ? 'muted': '',\n\t\t\t\tembedStyle = $( 'input[name=\"embed-style\"]:checked' ).val(),\n\t\t\t\tsizing = $( 'input[name=\"sizing\"]:checked' ).val(),\n\t\t\t\taspectRatio = $( '#aspect-ratio' ).val(),\n\t\t\t\tpaddingTop = '',\n\t\t\t\twidth = $( '#width' ).val(),\n\t\t\t\theight = $( '#height' ).val(),\n\t\t\t\tunits = 'px',\n\t\t\t\tminWidth = '0px',\n\t\t\t\tmaxWidth = width + units,\n\t\t\t\tshortcode;\n\n\t\t\tif ( '16:9' === aspectRatio ) {\n\t\t\t\tpaddingTop = '56';\n\t\t\t} else if ( '4:3' === aspectRatio ) {\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 ( 'responsive' === sizing ) {\n\t\t\t\twidth = '100%';\n\t\t\t\theight = '100%';\n\t\t\t} else {\n\t\t\t\twidth = width + units;\n\t\t\t\theight = height + units;\n\n\t\t\t\tif ( 'iframe' === embedStyle ) {\n\t\t\t\t\tminWidth = width;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tshortcode = '[bc_video video_id=\"' + videoId + '\" account_id=\"' + accountId + '\" player_id=\"' + playerId + '\" ' +\n\t\t\t\t'embed=\"' + embedStyle + '\" padding_top=\"' + paddingTop + '%\" autoplay=\"' + autoplay + '\" ' +\n\t\t\t\t'min_width=\"' + minWidth + '\" max_width=\"' + maxWidth + '\" ' +\n\t\t\t\t'mute=\"' + mute + '\" width=\"' + width + '\" height=\"' + height + '\"' +\n\t\t\t\t']';\n\n\t\t\t$( '#shortcode' ).val( shortcode );\n\t\t},\n\t\tgenerateExperienceShortcode: function () {\n\t\t\tvar videoIds, accountId;\n\t\t\tif ( 'undefined' !== typeof this.model.get( 'id' ) ) {\n this.model.set( 'account_id', this.model.get( 'account' ) );\n videoIds = this.model.get( 'id' ).join( ',' );\n accountId = this.model.get( 'account_id' ).replace( /\\D/g, '' );\n\t\t\t} else {\n videoIds = '';\n accountId = document.getElementById( 'brightcove-media-source' ).value;\n\t\t\t}\n\n\t\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\n\t\t\tif ( 'responsive' === sizing ) {\n\t\t\t\twidth = '100%';\n\t\t\t\theight = '100%';\n\t\t\t} else {\n\t\t\t\twidth = width + units;\n\t\t\t\theight = height + units;\n\n\t\t\tif ( 'iframe' === embedStyle ) {\n\t\t\t\tminWidth = width;\n\t\t\t}\n\t\t}\n\n\t\tshortcode = '[bc_experience experience_id=\"' + experienceId + '\" account_id=\"' + accountId + '\" ' +\n\t\t'embed=\"' + embedStyle + '\" min_width=\"' + minWidth + '\" max_width=\"' + maxWidth + '\" ' +\n\t\t'width=\"' + width + '\" height=\"' + height + '\" ' +\n\t\t'video_ids=\"' + videoIds + '\" ' +\n\t\t']';\n\n\t\t$( '#shortcode' ).val( shortcode );\n\t\t},\n\n\n\t\tgeneratePlaylistShortcode: function () {\n\t\t var playlistId = this.model.get( 'id' ).replace( /\\D/g, '' ),\n\t\t\t\taccountId = this.model.get( 'account_id' ).replace( /\\D/g, '' ),\n\t\t\t\tplayerId = $( '#video-player' ).val(),\n\t\t\t\tautoplay = ( $( '#autoplay' ).is( ':checked' ) ) ? 'autoplay': '',\n\t\t\t\tmute = ( $( '#mute' ).is( ':checked' ) ) ? 'muted': '',\n\t\t\t\tembedStyle = $( 'input[name=\"embed-style\"]:checked' ).val(),\n\t\t\t\tsizing = $( 'input[name=\"sizing\"]:checked' ).val(),\n\t\t\t\taspectRatio = $( '#aspect-ratio' ).val(),\n\t\t\t\tpaddingTop = '',\n\t\t\t\twidth = $( '#width' ).val(),\n\t\t\t\theight = $( '#height' ).val(),\n\t\t\t units = 'px',\n\t\t\t minWidth = '0px;',\n\t\t\t maxWidth = width + units,\n\t\t\t\tshortcode;\n\n\t\t if ( 'in-page-vertical' === embedStyle ) {\n\t\t\t shortcode = '[bc_playlist playlist_id=\"' + playlistId + '\" account_id=\"' + accountId + '\" player_id=\"' + playerId + '\" ' +\n\t\t\t\t 'embed=\"in-page-vertical\" autoplay=\"' + autoplay + '\" mute=\"' + mute + '\" ' +\n\t\t\t\t 'min_width=\"\" max_width=\"\" padding_top=\"\" ' +\n\t\t\t\t 'width=\"' + width + units + '\" height=\"' + height + units + '\"' +\n\t\t\t\t ']';\n\t\t } else if ( 'in-page-horizontal' === embedStyle ) {\n\t\t\t shortcode = '[bc_playlist playlist_id=\"' + playlistId + '\" account_id=\"' + accountId + '\" player_id=\"' + playerId + '\" ' +\n\t\t\t\t 'embed=\"in-page-horizontal\" autoplay=\"' + autoplay + '\" mute=\"' + mute + '\" ' +\n\t\t\t\t 'min_width=\"\" max_width=\"\" padding_top=\"\" ' +\n\t\t\t\t 'width=\"' + width + units + '\" height=\"' + height + units + '\"' +\n\t\t\t\t ']';\n\t\t } else if ( 'iframe' === embedStyle ) {\n\t\t\t if ( '16:9' === aspectRatio ) {\n\t\t\t\t paddingTop = '56';\n\t\t\t } else if ( '4:3' === aspectRatio ) {\n\t\t\t\t paddingTop = '75';\n\t\t\t } else {\n\t\t\t\t paddingTop = ( ( height / width ) * 100 );\n\t\t\t }\n\n\t\t\t if ( 'responsive' === sizing ) {\n\t\t\t\t width = '100%';\n\t\t\t\t height = '100%';\n\t\t\t } else {\n\t\t\t \twidth = width + units;\n\t\t\t \theight = height + units;\n\n\t\t\t\t\tminWidth = width;\n\t\t\t }\n\n\t\t\t shortcode = '[bc_playlist playlist_id=\"' + playlistId + '\" account_id=\"' + accountId + '\" player_id=\"' + playerId + '\" ' +\n\t\t\t\t 'embed=\"iframe\" autoplay=\"' + autoplay + '\" mute=\"' + mute + '\" ' +\n\t\t\t\t 'min_width=\"' + minWidth + '\" max_width=\"' + maxWidth + '\" padding_top=\"' + paddingTop + '%\" ' +\n\t\t\t\t 'width=\"' + width + '\" height=\"' + height + '\"' +\n\t\t\t\t ']';\n\t\t }\n\n\t\t $( '#shortcode' ).val( shortcode );\n },\n\t\tgeneratePlaylistExperienceShortcode:function () {\n var playlistId = this.model.get( 'id' ).replace( /\\D/g, '' ),\n accountId = this.model.get( 'account_id' ).replace( /\\D/g, '' ),\n experienceId = $( '#video-player' ).val(),\n embedStyle = $( 'input[name=\"embed-style\"]:checked' ).val(),\n sizing = $( 'input[name=\"sizing\"]:checked' ).val(),\n width = $( '#width' ).val(),\n height = $( '#height' ).val(),\n units = 'px',\n minWidth = '0px',\n maxWidth = width + units,\n shortcode;\n\n\n if ( 'responsive' === sizing ) {\n width = '100%';\n height = '100%';\n } else {\n width = width + units;\n height = height + units;\n\n if ( 'iframe' === embedStyle ) {\n minWidth = width;\n }\n }\n\n shortcode = '[bc_experience experience_id=\"' + experienceId + '\" account_id=\"' + accountId + '\" ' +\n 'embed=\"' + embedStyle + '\" min_width=\"' + minWidth + '\" max_width=\"' + maxWidth + '\" ' +\n 'width=\"' + width + '\" height=\"' + height + '\" ' +\n 'playlist_id=\"' + playlistId + '\" ' +\n ']';\n\n $( '#shortcode' ).val( shortcode );\n },\n\n\t\ttoggleShortcodeGeneration: function () {\n\t\t var method = $( '#generate-shortcode' ).val(),\n $fields = $( '#video-player, #autoplay, input[name=\"embed-style\"], input[name=\"sizing\"], #aspect-ratio, #width, #height, #units' );\n\n\t\t if ( 'manual' === method ) {\n\t\t \t$( '#shortcode' ).removeAttr( 'readonly' );\n $fields.attr( 'disabled', true );\n\t\t\t} else {\n $( '#shortcode' ).attr( 'readonly', true );\n $fields.removeAttr( 'disabled' );\n\t\t\t}\n },\n\n\t\tinitialize : function ( options ) {\n\t\t\toptions = options || {};\n\t\t\tthis.type = options.type ? options.type : 'grid';\n\t\t\tthis.mediaType = options.mediaType;\n\t\t\tthis.listenTo( wpbc.broadcast, 'insert:shortcode', this.insertShortcode );\n\t\t\tthis.listenTo( this.model, 'change', this.render );\n\t\t},\n\n\t\t/**\n\t\t * @returns {wp.media.view.Media} Returns itself to allow chaining\n\t\t */\n\t\trender : function ( options ) {\n\t\t\toptions = _.extend( {}, options, this.model.toJSON() );\n\t\t\toptions.duration = this.model.getReadableDuration();\n\t\t\toptions.updated_at_readable = this.model.getReadableDate( 'updated_at' );\n\t\t\toptions.created_at_readable = this.model.getReadableDate( 'created_at' );\n\t\t\toptions.account_name = this.model.getAccountName();\n\n\t\t\tthis.template = wp.template( 'brightcove-media-item-details-' + this.mediaType );\n\n\t\t\tthis.$el.html( this.template( options ) );\n\n\t\t\tthis.delegateEvents();\n\t\t\tthis.generateShortcode();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/* Prevent this.remove() from removing the container element for the details view */\n\t\tremove : function () {\n\t\t\tthis.undelegateEvents();\n\t\t\tthis.$el.empty();\n\t\t\tthis.stopListening();\n\t\t\treturn this;\n\t\t}\n\t}\n);\n\n","var MediaView = BrightcoveView.extend(\n\t{\n\t\ttagName : 'li',\n\t\tclassName : 'attachment brightcove',\n\n\t\tattributes : function () {\n\t\t\treturn {\n\t\t\t\t'tabIndex' : 0,\n\t\t\t\t'role' : 'checkbox',\n\t\t\t\t'aria-label' : this.model.get( 'title' ),\n\t\t\t\t'aria-checked' : false,\n\t\t\t\t'data-id' : this.model.get( 'id' )\n\t\t\t};\n\t\t},\n\n\t\tevents : {\n\t\t\t'click .attachment-preview' : 'toggleDetailView',\n\t\t\t'click .video-move-up' : 'videoMoveUp',\n\t\t\t'click .video-move-down' : 'videoMoveDown',\n\t\t\t'click .trash' : 'removeVideoFromPlaylist',\n\t\t\t'click .add-to-playlist' : 'videoAdd',\n\t\t\t'click .edit' : 'triggerEditMedia',\n\t\t\t'click .preview' : 'triggerPreviewMedia'\n\t\t},\n\n\t\ttriggerEditMedia : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\twpbc.broadcast.trigger( 'edit:media', this.model );\n\t\t},\n\n\t\ttriggerPreviewMedia : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\twpbc.broadcast.trigger( 'preview:media', this.model );\n\t\t},\n\n\t\tbuttons : {},\n\n\t\tinitialize : function ( options ) {\n\t\t\toptions = options || {};\n\t\t\tthis.type = options.type ? options.type : 'grid';\n\n\t\t\t// We only care when a change occurs\n\t\t\tthis.listenTo( this.model, 'change:view', function ( model, type ) {\n\t\t\t\tif ( this.type !== type ) {\n\t\t\t\t\tthis.type = type;\n\t\t\t\t\tthis.render();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.render();\n\t\t},\n\n\t\trender : function () {\n\t\t\tvar options = this.model.toJSON();\n\t\t\toptions.duration = this.model.getReadableDuration();\n\t\t\toptions.updated_at_readable = this.model.getReadableDate( 'updated_at' );\n\t\t\toptions.account_name = this.model.getAccountName();\n\n\t\t\tif ( 'existingPlaylists' === options.viewType ) {\n\t\t\t\tthis.template = wp.template( 'brightcove-playlist-edit-video-in-playlist' );\n\t\t\t} else if ( 'libraryPlaylists' === options.viewType ) {\n\t\t\t\tthis.template = wp.template( 'brightcove-playlist-edit-video-in-library' );\n\t\t\t} else {\n\t\t\t\tthis.template = wp.template( 'brightcove-media-item-' + this.type );\n\t\t\t}\n\n\t\t\toptions.buttons = this.buttons;\n\n\t\t\tthis.$el.html( this.template( options ) );\n\n\t\t\tthis.$el.toggleClass( 'uploading', options.uploading );\n\n\t\t\treturn this;\n\t\t},\n\n\t\ttoggleDetailView : function () {\n\t\t\twpbc.broadcast.trigger( 'select:media', this );\n\t\t},\n\n\t\tvideoMoveUp : function () {\n\t\t\twpbc.broadcast.trigger( 'playlist:moveUp', this );\n\t\t},\n\n\t\tvideoMoveDown : function () {\n\t\t\twpbc.broadcast.trigger( 'playlist:moveDown', this );\n\t\t},\n\n\t\tvideoAdd : function () {\n\t\t\twpbc.broadcast.trigger( 'playlist:add', this );\n\t\t},\n\n\t\tremoveVideoFromPlaylist : function () {\n\t\t\twpbc.broadcast.trigger( 'playlist:remove', this );\n\t\t}\n\t}\n);\n","var PlaylistEditView = BrightcoveView.extend(\n\t{\n\t\ttagName : 'div',\n\t\tclassName : 'playlist-edit brightcove attachment-details',\n\t\ttemplate : wp.template( 'brightcove-playlist-edit' ),\n\n\t\tevents : {\n\t\t\t'click .brightcove.button.save-sync' : 'saveSync',\n\t\t\t'click .brightcove.playlist-back' : 'back',\n\t\t\t'change .brightcove-name' : 'updatedName'\n\t\t},\n\n\t\tdeleteVideo : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.model.set( 'mediaType', 'videos' );\n\t\t\tthis.model.destroy();\n\t\t},\n\n\t\tupdatedName : function ( event ) {\n\t\t\tvar name = this.model.get( 'name' );\n\t\t\tif ( name !== event.target.value ) {\n\t\t\t\tthis.model.set( 'name', event.target.value );\n\t\t\t\tthis.model.save();\n\t\t\t}\n\t\t},\n\n\t\tback : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\twpbc.broadcast.trigger( 'start:gridview' );\n\n\t\t},\n\n\t\tsaveSync : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.model.set( 'name', this.$el.find( '.brightcove-name' ).val() );\n\t\t\tthis.model.set( 'description', this.$el.find( '.brightcove-description' ).val() );\n\t\t\tthis.model.set( 'long_description', this.$el.find( '.brightcove-long-description' ).val() );\n\t\t\tthis.model.set( 'tags', this.$el.find( '.brightcove-tags' ).val() );\n\t\t\tthis.model.set( 'mediaType', 'videos' );\n\t\t\tthis.model.save();\n\t\t},\n\n\t\tinitialize : function () {\n\t\t\tthis.listenTo( wpbc.broadcast, 'tabChange', function () {\n\t\t\t\t_.invoke( this.subviews, 'remove' );\n\t\t\t} );\n\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\toptions = this.model.toJSON();\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t\tthis.spinner = this.$el.find( '.spinner' );\n\n\t\t\tif ( options.video_ids ) {\n\t\t\t\tthis.killPendingRequests();\n\n\t\t\t\tthis.playlistVideosView = new MediaCollectionView( {\n\t\t\t\t\tel : this.$el.find( '.existing-videos' ),\n\t\t\t\t\tvideoIds : options.video_ids,\n\t\t\t\t\tactiveAccount : this.model.get( 'account_id' ),\n\t\t\t\t\tmediaCollectionViewType : 'existingPlaylists',\n\t\t\t\t\tmediaType : 'playlists'\n\t\t\t\t} );\n\n\t\t\t\tthis.libraryVideosView = new MediaCollectionView( {\n\t\t\t\t\tel : this.$el.find( '.library-videos' ),\n\t\t\t\t\texcludeVideoIds : options.video_ids,\n\t\t\t\t\tactiveAccount : this.model.get( 'account_id' ),\n\t\t\t\t\tmediaCollectionViewType : 'libraryPlaylists',\n\t\t\t\t\tmediaType : 'playlists'\n\t\t\t\t} );\n\n\t\t\t\tthis.registerSubview( this.playlistVideosView );\n\t\t\t\tthis.registerSubview( this.libraryVideosView );\n\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:changed', _.throttle( this.playlistChanged, 300 ) );\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'insert:shortcode', this.insertShortcode );\n\t\t\t}\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:on', function () {\n\t\t\t\tthis.spinner.addClass( 'is-active' ).removeClass( 'hidden' );\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:off', function () {\n\t\t\t\tthis.spinner.removeClass( 'is-active' ).addClass( 'hidden' );\n\t\t\t} );\n\t\t},\n\n\t\tplaylistChanged : function ( videoIds ) {\n\t\t\tthis.killPendingRequests();\n\t\t\tthis.model.set( 'video_ids', videoIds );\n\t\t\tthis.model.save();\n\t\t},\n\n\t\tkillPendingRequests : function () {\n\t\t\t// Kill all pending requests\n\t\t\t_.each( wpbc.requests, function ( request ) {\n\t\t\t\trequest.abort();\n\t\t\t} );\n\n\t\t\twpbc.requests = [];\n\t\t}\n\t}\n);\n","var UploadDetailsView = BrightcoveView.extend(\n\t{\n\t\tclassName : 'brightcove-pending-upload-details attachment-details',\n\t\ttagName : 'div',\n\t\ttemplate : wp.template( 'brightcove-pending-upload-details' ),\n\n\t\tevents : {\n\t\t\t'keyup .brightcove-name' : 'nameChanged',\n\t\t\t'keyup .brightcove-tags' : 'tagsChanged',\n\t\t\t'change .brightcove-media-source' : 'accountChanged'\n\t\t},\n\n\t\tinitialize : function ( options ) {\n\t\t\tthis.listenTo( wpbc.broadcast, 'pendingUpload:hideDetails', this.hide );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:fileUploaded', function ( file ) {\n\t\t\t\tif ( file.id === this.model.get( 'id' ) ) {\n\t\t\t\t\tthis.model.set( 'uploaded', true );\n\t\t\t\t\tthis.render();\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.model.set( 'ingestSuccess', true );\n\t\t\tthis.model.set( 'uploadSuccess', true );\n\t\t},\n\n\t\tnameChanged : function ( event ) {\n\t\t\tthis.model.set( 'fileName', event.target.value );\n\t\t},\n\n\t\ttagsChanged : function ( event ) {\n\t\t\tthis.model.set( 'tags', event.target.value );\n\t\t},\n\n\t\taccountChanged : function ( event ) {\n\t\t\tthis.model.set( 'account', event.target.value );\n\t\t},\n\n\t\thide : function () {\n\t\t\tthis.$el.hide();\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\toptions = options || {};\n\t\t\toptions.fileName = this.model.get( 'fileName' );\n\t\t\toptions.tags = this.model.get( 'tags' );\n\t\t\toptions.size = this.model.humanReadableSize();\n\t\t\toptions.accounts = this.model.get( 'accounts' );\n\t\t\toptions.account = this.model.get( 'account' );\n\t\t\toptions.uploaded = this.model.get( 'uploaded' );\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t}\n\n\t}\n);\n","UploadWindowView = BrightcoveView.extend(\n\t{\n\t\tclassName : 'uploader-window',\n\t\ttemplate : wp.template( 'brightcove-uploader-window' ),\n\n\t\tinitialize : function ( options ) {\n\t\t\t_.bindAll( this, 'uploaderFilesAdded' );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:queuedFilesAdded', this.hide );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:startUpload', this.uploaderStartUpload );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:clear', this.resetUploads );\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t\t_.defer( _.bind( this.afterRender, this ) );\n\t\t},\n\n\t\tresetUploads : function () {\n\t\t\tif ( this.uploader && this.uploader.files ) {\n\t\t\t\tthis.uploader.files = []; // Reset pending uploads\n\t\t\t}\n\t\t},\n\n\t\tafterRender : function () {\n\t\t\tthis.uploader = new plupload.Uploader( _.defaults( this.options, wpbc.preload.plupload ) );\n\n\t\t\t// Uploader has neither .on nor .listenTo\n\t\t\tthis.uploader.added = this.uploaderFilesAdded;\n\t\t\tthis.uploader.progress = this.uploaderUploadProgress;\n\t\t\tthis.uploader.bind( 'FilesAdded', this.uploaderFilesAdded );\n\t\t\tthis.uploader.bind( 'UploadProgress', this.uploaderUploadProgress );\n\t\t\tthis.uploader.bind( 'BeforeUpload', this.uploaderBeforeUpload );\n\t\t\tthis.uploader.bind( 'FileUploaded', this.uploaderFileUploaded );\n\n\t\t\tthis.uploader.bind( 'init', this.uploaderAfterInit );\n\n\t\t\tthis.uploader.init();\n\t\t\t$( 'html' ).on( 'dragenter', _.bind( this.show, this ) );\n\t\t\t/* the following dropzone function code is taken from the wp.Uploader code */\n\t\t\tvar drop_element = wpbc.preload.plupload.drop_element.replace( /[^a-zA-Z0-9-]+/g, '' );\n\t\t\tvar dropzone = $( '#' + drop_element );\n\t\t\tdropzone.on( 'dropzone:leave', _.bind( this.hide, this ) );\n\t\t},\n\n\t\tuploaderAfterInit : function ( uploader ) {\n\t\t\tvar drop_element = wpbc.preload.plupload.drop_element.replace( /[^a-zA-Z0-9-]+/g, '' );\n\t\t\tvar timer, active, dragdrop,\n\t\t\t dropzone = $( '#' + drop_element );\n\n\t\t\tdragdrop = uploader.features.dragdrop;\n\n\t\t\t// Generate drag/drop helper classes.\n\t\t\tif ( ! dropzone ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdropzone.toggleClass( 'supports-drag-drop', ! ! dragdrop );\n\n\t\t\tif ( ! dragdrop ) {\n\t\t\t\treturn dropzone.unbind( '.wp-uploader' );\n\t\t\t}\n\n\t\t\t// 'dragenter' doesn't fire correctly, simulate it with a limited 'dragover'.\n\t\t\tdropzone.bind( 'dragover.wp-uploader', function () {\n\t\t\t\tif ( timer ) {\n\t\t\t\t\tclearTimeout( timer );\n\t\t\t\t}\n\n\t\t\t\tif ( active ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tdropzone.trigger( 'dropzone:enter' ).addClass( 'drag-over' );\n\t\t\t\tactive = true;\n\t\t\t} );\n\n\t\t\tdropzone.bind( 'dragleave.wp-uploader, drop.wp-uploader', function () {\n\t\t\t\t// Using an instant timer prevents the drag-over class from\n\t\t\t\t// being quickly removed and re-added when elements inside the\n\t\t\t\t// dropzone are repositioned.\n\t\t\t\t//\n\t\t\t\t// @see https://core.trac.wordpress.org/ticket/21705\n\t\t\t\ttimer = setTimeout( function () {\n\t\t\t\t\tactive = false;\n\t\t\t\t\tdropzone.trigger( 'dropzone:leave' ).removeClass( 'drag-over' );\n\t\t\t\t}, 0 );\n\t\t\t} );\n\t\t},\n\n\t\tshow : function () {\n\t\t\tvar $el = this.$el.show();\n\n\t\t\t// Ensure that the animation is triggered by waiting until\n\t\t\t// the transparent element is painted into the DOM.\n\t\t\t_.defer( function () {\n\t\t\t\t$el.css( {opacity : 1} );\n\t\t\t} );\n\t\t},\n\n\t\thide : function () {\n\t\t\tvar $el = this.$el.css( {opacity : 0} );\n\n\t\t\twp.media.transition( $el ).done( function () {\n\t\t\t\t// Transition end events are subject to race conditions.\n\t\t\t\t// Make sure that the value is set as intended.\n\t\t\t\tif ( '0' === $el.css( 'opacity' ) ) {\n\t\t\t\t\t$el.hide();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// https://core.trac.wordpress.org/ticket/27341\n\t\t\t_.delay( function () {\n\t\t\t\tif ( '0' === $el.css( 'opacity' ) && $el.is( ':visible' ) ) {\n\t\t\t\t\t$el.hide();\n\t\t\t\t}\n\t\t\t}, 500 );\n\t\t},\n\n\t\tuploaderFilesAdded : function ( uploader, queuedFiles ) {\n\t\t\twpbc.broadcast.trigger( 'uploader:queuedFilesAdded', queuedFiles );\n\t\t},\n\n\t\tuploaderStartUpload : function () {\n\t\t\tthis.uploader.start();\n\t\t},\n\n\t\tuploaderUploadProgress : function ( up, file ) {\n\t\t\twpbc.broadcast.trigger( 'uploader:uploadProgress', file );\n\t\t},\n\n\t\tuploaderBeforeUpload : function ( up, file ) {\n\t\t\tup.settings.multipart_params = _.defaults(\n\t\t\t\twpbc.uploads[file.id],\n\t\t\t\twpbc.preload.plupload.multipart_params,\n\t\t\t\t{nonce : wpbc.preload.nonce}\n\t\t\t);\n\t\t},\n\n\t\tuploaderFileUploaded : function ( up, file, response ) {\n\t\t\tvar status = JSON.parse( response.response );\n\t\t\twpbc.broadcast.trigger( 'uploader:fileUploaded', file );\n\t\t\tif ( status.data.upload === 'success' && status.data.ingest === 'success' ) {\n\t\t\t\tif ( status.data.videoDetails ) {\n\t\t\t\t\t// Add newly uploaded file to preload list.\n\t\t\t\t\twpbc.broadcast.trigger( 'uploader:uploadedFileDetails', status.data.videoDetails );\n\t\t\t\t}\n\t\t\t\twpbc.broadcast.trigger( 'uploader:successfulUploadIngest', file );\n\t\t\t} else {\n\t\t\t\tfile.percent = 0;\n\t\t\t\tfile.status = plupload.UPLOADING;\n\t\t\t\tup.state = plupload.STARTED;\n\t\t\t\tup.trigger( 'StateChanged' );\n\t\t\t\twpbc.broadcast.trigger( 'uploader:failedUploadIngest', file );\n\t\t\t}\n\t\t}\n\t}\n);\n","var UploadView = BrightcoveView.extend(\n\t{\n\t\tclassName : 'brightcove-pending-upload',\n\t\ttagName : 'tr',\n\t\ttemplate : wp.template( 'brightcove-pending-upload' ),\n\n\t\tevents : {\n\t\t\t'click' : 'toggleRow'\n\t\t},\n\n\t\tinitialize : function () {\n\t\t\tthis.listenTo( wpbc.broadcast, 'pendingUpload:selectedRow', this.otherToggledRow );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:uploadProgress', this.uploadProgress );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:getParams', this.getParams );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:successfulUploadIngest', this.successfulUploadIngest );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:failedUploadIngest', this.failedUploadIngest );\n\n\t\t\tvar options = {\n\t\t\t\t'fileName' : this.model.get( 'name' ),\n\t\t\t\t'tags' : '',\n\t\t\t\t'accounts' : wpbc.preload.accounts, // All accounts.\n\t\t\t\t'account' : wpbc.preload.defaultAccount,\n\t\t\t\t'ingestSuccess' : false,\n\t\t\t\t'uploadSuccess' : false,\n\t\t\t\t'uploaded' : false\n\t\t\t};\n\n\t\t\tthis.model.set( options );\n\n\t\t\tthis.listenTo( this.model, 'change:fileName', this.render );\n\t\t\tthis.listenTo( this.model, 'change:account', this.render );\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\toptions = options || {};\n\t\t\toptions.fileName = this.model.get( 'fileName' );\n\t\t\toptions.size = this.model.humanReadableSize();\n\t\t\tvar sourceHash = this.model.get( 'account' );\n\t\t\toptions.accountName = wpbc.preload.accounts[sourceHash].account_name;\n\t\t\toptions.percent = this.model.get( 'percent' );\n\t\t\toptions.activeUpload = this.model.get( 'activeUpload' );\n\t\t\toptions.ingestSuccess = this.model.get( 'ingestSuccess' );\n\t\t\toptions.uploadSuccess = this.model.get( 'uploadSuccess' );\n\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t\tif ( this.model.get( 'selected' ) ) {\n\t\t\t\tthis.$el.addClass( 'selected' );\n\t\t\t}\n\t\t\tif ( this.model.get( 'ingestSuccess' ) ) {\n\t\t\t\tthis.$el.addClass( 'ingest-success' );\n\t\t\t}\n\t\t\tif ( this.model.get( 'uploadSuccess' ) ) {\n\t\t\t\tthis.$el.addClass( 'upload-success' );\n\t\t\t}\n\t\t},\n\n\t\tgetParams : function ( fileId ) {\n\t\t\twpbc.broadcast.trigger( 'uploader:params', \"abcde\" );\n\t\t},\n\n\t\tfailedUploadIngest : function ( file ) {\n\t\t\t// Make sure we're acting on the right file.\n\t\t\tif ( file.id === this.model.get( 'id' ) ) {\n\t\t\t\twpbc.broadcast.trigger( 'uploader:errorMessage', wpbc.preload.messages.unableToUpload.replace( '%%s%%', this.model.get( 'fileName' ) ) );\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t},\n\n\t\tsuccessfulUploadIngest : function ( file ) {\n\t\t\t// Make sure we're acting on the right file.\n\t\t\tif ( file.id === this.model.get( 'id' ) ) {\n\t\t\t\twpbc.broadcast.trigger( 'uploader:successMessage', wpbc.preload.messages.successUpload.replace( '%%s%%', this.model.get( 'fileName' ) ) );\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Render if we're the active upload.\n\t\t * Re-render if we thought we were but we no longer are.\n\t\t * @param file Fired from UploadProgress on plUpload\n\t\t */\n\t\tuploadProgress : function ( file ) {\n\t\t\t// Make sure we're acting on the right file.\n\t\t\tif ( file.id === this.model.get( 'id' ) ) {\n\t\t\t\tthis.model.set( 'activeUpload', true );\n\t\t\t\tthis.model.set( 'percent', file.percent );\n\t\t\t\tthis.render();\n\t\t\t} else {\n\t\t\t\tif ( this.model.get( 'activeUpload' ) ) {\n\t\t\t\t\tthis.model.unset( 'activeUpload' );\n\t\t\t\t\tthis.render();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\ttoggleRow : function ( event ) {\n\t\t\tthis.$el.toggleClass( 'selected' );\n\t\t\tif ( this.$el.hasClass( 'selected' ) ) {\n\t\t\t\tthis.model.set( 'selected', true );\n\t\t\t\twpbc.broadcast.trigger( 'pendingUpload:selectedRow', this.cid );\n\t\t\t} else {\n\t\t\t\twpbc.broadcast.trigger( 'pendingUpload:hideDetails', this.cid );\n\t\t\t}\n\t\t},\n\n\t\totherToggledRow : function ( cid ) {\n\t\t\t// Ignore broadcast from self\n\t\t\tif ( cid !== this.cid ) {\n\t\t\t\tthis.$el.removeClass( 'selected' );\n\t\t\t\tthis.model.unset( 'selected' );\n\t\t\t} else {\n\t\t\t\twpbc.broadcast.trigger( 'pendingUpload:selectedItem', this.model );\n\t\t\t}\n\t\t}\n\t}\n);\n","var VideoEditView = BrightcoveView.extend(\n\t{\n\t\ttagName : 'div',\n\t\tclassName : 'video-edit brightcove attachment-details',\n\t\ttemplate : wp.template( 'brightcove-video-edit' ),\n\n\t\tevents : {\n\t\t\t'click .brightcove.button.save-sync' : 'saveSync',\n\t\t\t'click .brightcove.delete' : 'deleteVideo',\n\t\t\t'click .brightcove.button.back' : 'back',\n\t\t\t'click .setting .button' : 'openMediaManager',\n\t\t\t'click .attachment .check' : 'removeAttachment',\n\t\t\t'click .caption-secondary-fields .delete' : 'removeCaptionRow',\n\t\t\t'click .add-remote-caption' : 'addCaptionRow'\n\t\t},\n\n\t\tback : function ( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\t// Exit if the 'button' is disabled.\n\t\t\tif ( $( event.currentTarget ).hasClass( 'disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\twpbc.broadcast.trigger( 'start:gridview' );\n\t\t},\n\n\t\tdeleteVideo : function () {\n\t\t\tif ( confirm( wpbc.preload.messages.confirmDelete ) ) {\n\t\t\t\twpbc.broadcast.trigger( 'spinner:on' );\n\t\t\t\tthis.model.set( 'mediaType', 'videos' );\n\t\t\t\tthis.model.destroy();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Allow the user to attach a video still or thumbnail.\n\t\t *\n\t\t * @param {Event} evnt\n\t\t */\n\t\topenMediaManager: function ( evnt ) {\n\t\t\tevnt.preventDefault();\n\n\t\t\tvar elem = $( evnt.currentTarget ).parents( '.setting' ),\n\t\t\t\teditor = elem.data('editor'),\n\t\t\t\tmediaManager = wp.media.frames.brightcove = wp.media(),\n\t\t\t\tthat = this,\n\t\t\t\toptions = {\n\t\t\t\t\tstate: 'insert',\n\t\t\t\t\ttitle: wp.media.view.l10n.addMedia,\n\t\t\t\t\tmultiple: false\n\t\t\t\t};\n\n\t\t\t// Open the media manager\n\t\t\tmediaManager.open( editor, options );\n\n\t\t\t// Listen for selection of media\n\t\t\tmediaManager.on( 'select', function() {\n\t\t\t\tvar media = mediaManager.state().get( 'selection' ).first().toJSON(),\n\t\t\t\t\tfield = $( evnt ).parents( '.setting' );\n\n\t\t\t\t// Set the selected attachment to the correct field\n\t\t\t\tthat.setAttachment( media, field );\n\n\t\t\t\t// Make this action available to other areas of the application\n\t\t\t\twpbc.broadcast.trigger( 'media:selected' );\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Set the hidden input to the ID of the selected attachment.\n\t\t *\n\t\t * @param {Object} media\n\t\t * @param {String} field\n\t\t * @returns {boolean}\n\t\t */\n\t\tsetAttachment: function( media, field ) {\n\t\t\tvar field = field.prevObject[0].currentTarget,\n\t\t\t\tfield = $( field ).prev( 'input' ),\n\t\t\t\tattachment = field.parents( '.attachment' ),\n\t\t\t\tpreview = attachment.find( '.-image' );\n\n\t\t\t// Perform different setup actions based on the type of upload\n\t\t\tif ( attachment.context.className.indexOf( 'captions' ) > -1 ) {\n\t\t\t\t// Executed if the user is uploading a closed caption\n\t\t\t\tif ( 'vtt' === media.subtype ) {\n\t\t\t\t\tthis.addCaptionRow( false, media );\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' ).first().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\t} );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Executed if the user is uploading a poster image or thumbnail\n\t\t\t\tvar selectedMedia = {\n\t\t\t\t\turl: media.sizes.full.url,\n\t\t\t\t\twidth: media.sizes.full.width,\n\t\t\t\t\theight: media.sizes.full.height\n\t\t\t\t};\n\n\t\t\t\t// Set up our preview image\n\t\t\t\tvar image = document.createElement( 'img' );\n\n\t\t\t\t// Set image properties\n\t\t\t\timage.src = media.sizes.full.url;\n\t\t\t\timage.className = 'thumbnail';\n\n\t\t\t\t// Display a preview image\n\t\t\t\tattachment.addClass( 'active' );\n\t\t\t\tpreview.html( image ); // .html() considered okay because auth is required to view this screen\n\t\t\t}\n\n\t\t\t// Add our meta to the hidden field\n\t\t\tfield.val( JSON.stringify( selectedMedia ) );\n\t\t},\n\n\t\t/**\n\t\t * Allow the user to remove media from a given field.\n\t\t *\n\t\t * @param {Event} evnt\n\t\t * @returns {boolean}\n\t\t */\n\t\tremoveAttachment: function( evnt ) {\n\t\t\tvar container = $( evnt.currentTarget ).parents( '.attachment' ),\n\t\t\t\timage = container.find( '.-image' ),\n\t\t\t\tfield = container.next( 'input' );\n\n\t\t\t// Empty the field\n\t\t\tfield.val( '' );\n\n\t\t\t// Remove the preview image\n\t\t\tcontainer.removeClass( 'active' );\n\t\t\timage.empty();\n\t\t},\n\n\t\t/**\n\t\t * Add a caption row\n\t\t *\n\t\t * @param {Event} evnt\n\t\t * @param {Object} media\n\t\t */\n\t\taddCaptionRow: function( evnt, media ) {\n\t\t\t// If using the add remote file link, prevent the page from jumping to the top\n\t\t\tif ( evnt ) {\n\t\t\t\tevnt.preventDefault();\n\t\t\t}\n\n\t\t\tvar source = undefined;\n\t\t\tif ( media ) {\n\t\t\t\tsource = media.url;\n\t\t\t}\n\n\t\t\tthis.addCaption( source );\n\t\t},\n\n\t\taddCaption: function( source, language, label ) {\n\t\t\tvar newRow = $( document.getElementById( 'js-caption-empty-row' ) ).clone(),\n\t\t\t\tcontainer = document.getElementById( 'js-captions' ),\n\t\t\t\tcaptionUrl = document.getElementById( 'js-caption-url' );\n\n\t\t\t// Clean up our cloned row\n\t\t\tnewRow.find( 'input' ).prop( 'disabled', false );\n\t\t\tnewRow.removeAttr( 'id' );\n\t\t\tnewRow.removeClass( 'empty-row' );\n\n\t\t\tif ( source ) {\n\t\t\t\tnewRow.find( '.brightcove-captions' ).val( source );\n\t\t\t}\n\n\t\t\tif ( language ) {\n\t\t\t\tnewRow.find( '.brightcove-captions-language' ).val( language );\n\t\t\t}\n\n\t\t\tif ( label ) {\n\t\t\t\tnewRow.find( '.brightcove-captions-label' ).val( label );\n\t\t\t}\n\n\t\t\t// Append our new row to the container\n\t\t\t$( container ).append( newRow );\n\n\t\t\t// Update the context button text\n\t\t\tthis.updateCaptionText();\n\t\t},\n\n\t\t/**\n\t\t * Remove a caption\n\t\t *\n\t\t * @param {Event} evnt\n\t\t */\n\t\tremoveCaptionRow: function( evnt ) {\n\t\t\tevnt.preventDefault();\n\n\t\t\tvar caption = evnt.currentTarget,\n\t\t\t\tcontainer = $( caption ).parents( '.caption-repeater' ),\n\t\t\t\tsource = container.find( '.brightcove-captions' ),\n\t\t\t\tlanguage = container.find( '.brightcove-captions-launguage' ),\n\t\t\t\tlabel = container.find( '.brightcove-captions-label' );\n\n\t\t\t// Empty the input fields\n\t\t\t$( source ).val( '' );\n\t\t\t$( language ).val( '' );\n\t\t\t$( label ).val( '' );\n\n\t\t\t// Remove the container entirely\n\t\t\tcontainer.remove();\n\n\t\t\t// Update the context button text\n\t\t\tthis.updateCaptionText();\n\t\t},\n\n\t\t/**\n\t\t * Updates the caption text based on number of captions\n\t\t */\n\t\tupdateCaptionText: function() {\n\t\t\tvar button = $( '.captions .button-secondary' ),\n\t\t\t\tlink = $( '.add-remote-caption' );\n\n\t\t\tif ( 1 < document.getElementsByClassName( 'caption-repeater' ).length ) {\n\t\t\t\tbutton.text( wpbc.str_addcaption );\n\t\t\t\tlink.text( wpbc.str_addremote );\n\t\t\t} else {\n\t\t\t\tbutton.text( wpbc.str_selectfile );\n\t\t\t\tlink.text( wpbc.str_useremote );\n\t\t\t}\n\t\t},\n\n\t\tsaveSync : function ( evnt ) {\n\t\t\tevnt.preventDefault();\n\n\t\t\tvar $mediaFrame = $( evnt.currentTarget ).parents( '.media-modal' ),\n\t\t\t\t$allButtons = $mediaFrame.find( '.button, .button-link'),\n\t\t\t\tSELF = this;\n\n\t\t\t// Exit if the 'button' is disabled.\n\t\t\tif ( $allButtons.hasClass( 'disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Disable the button for the duration of the request.\n\t\t\t$allButtons.addClass( 'disabled' );\n\n\t\t\t// Hide the delete link for the duration of the request.\n\t\t\t$mediaFrame.find( '.delete-action' ).hide();\n\n\t\t\twpbc.broadcast.trigger( 'spinner:on' );\n\t\t\tthis.model.set( 'name', this.$el.find( '.brightcove-name' ).val() );\n\t\t\tthis.model.set( 'description', this.$el.find( '.brightcove-description' ).val() );\n\t\t\tthis.model.set( 'long_description', this.$el.find( '.brightcove-long-description' ).val() );\n\n\t\t\t// Trim whitespace and commas from tags beginning/end.\n\t\t\tthis.model.set( 'tags', this.$el.find( '.brightcove-tags' ).val().trim().replace(/(^,)|(,$)/g, '' ) );\n\t\t\tthis.model.set( 'height', this.$el.find( '.brightcove-height' ).val() );\n\t\t\tthis.model.set( 'width', this.$el.find( '.brightcove-width' ).val() );\n\t\t\tthis.model.set( 'mediaType', 'videos' );\n\t\t\tthis.model.set( 'poster', this.$el.find( '.brightcove-poster' ).val() );\n\t\t\tthis.model.set( 'thumbnail', this.$el.find( '.brightcove-thumbnail' ).val() );\n\n\t\t\t// Captions\n\t\t\tvar captions = [];\n\t\t\tthis.$el.find( '.caption-repeater.repeater-row' ).not( '.empty-row' ).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 ( 'vtt' === extension ) {\n\t\t\t\t\tcaptions.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'source' : fileName,\n\t\t\t\t\t\t\t'language': caption.find( '.brightcove-captions-language' ).val(),\n\t\t\t\t\t\t\t'label' : caption.find( '.brightcove-captions-label' ).val()\n\t\t\t\t\t\t}\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' ).first().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\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.model.set( 'captions', captions );\n\n\t\t\t// Custom fields\n\t\t\tvar custom = {},\n\t\t\t\tcustom_fields = this.model.get( 'custom' );\n\n\t\t\t_.each( this.$el.find( '.brightcove-custom-string, .brightcove-custom-enum' ), function( 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 ) { return item.id == key } );\n\t\t\t\t\tobj.value = val;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.model.set( 'custom_fields', custom );\n\t\t\tthis.model.set( 'custom', custom_fields );\n\n\t\t\tthis.model.save()\n\t\t\t\t.done( function() {\n\t\t\t\t\tif ( $mediaFrame.length > 0 ) {\n\t\t\t\t\t\t// Update the tag dropdown and wpbc.preload.tags with any new tag values.\n\t\t\t\t\t\tvar tagInput = $mediaFrame.find( '.brightcove-tags' ).val(),\n\t\t\t\t\t\t\teditTags,\n\t\t\t\t\t\t\tnewTags;\n\n\t\t\t\t\t\tif ( tagInput ) {\n\t\t\t\t\t\t\teditTags = tagInput.split( ',' );\n\t\t\t\t\t\t\tnewTags = _.difference( editTags, wpbc.preload.tags );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Add any new tags to the tags object and the dropdown.\n\t\t\t\t\t\t_.each( newTags, function( newTag ){\n\t\t\t\t\t\t\tnewTag = newTag.trim();\n\t\t\t\t\t\t\tif ( '' !== newTag ) {\n\t\t\t\t\t\t\t\twpbc.preload.tags.push( newTag );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\twpbc.preload.tags.sort();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.always( function() {\n\t\t\t\t\t// Re-enable the button when the request has completed.\n\t\t\t\t\t$allButtons.removeClass( 'disabled' );\n\n\t\t\t\t\t// Show the delete link.\n\t\t\t\t\t$mediaFrame.find( '.delete-action' ).show();\n\t\t\t\t} );\n\n\t\t\t// Hide the video edit screen after save.\n\t\t\twpbc.broadcast.trigger( 'start:gridview' );\n\t\t},\n\n\t\t/**\n\t\t * Render the actual view for the Video Edit screen.\n\t\t *\n\t\t * @param {Object} options\n\t\t */\n\t\trender : function ( options ) {\n\t\t\tthis.listenTo( wpbc.broadcast, 'save:media', this.saveSync );\n\t\t\tthis.listenTo( wpbc.broadcast, 'back:editvideo', this.back );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'insert:shortcode', this.insertShortcode );\n\t\t\toptions = this.model.toJSON();\n\n\t\t\t// Render the model into the template\n\t\t\tthis.$el.html( this.template( options ) );\n\n\t\t\t// Render custom fields into the template\n\t\t\tvar customContainer = this.$el.find( '#brightcove-custom-fields' ),\n\t\t\t\tstringTmp = wp.template( 'brightcove-video-edit-custom-string' ),\n\t\t\t\tenumTmp = wp.template( 'brightcove-video-edit-custom-enum' );\n\n\t\t\t_.each( this.model.get('custom'), function( custom ) {\n\t\t\t\tif ( '_change_history' === custom.id ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tswitch( custom.type ) {\n\t\t\t\t\tcase 'string':\n\t\t\t\t\t\tcustomContainer.append( stringTmp( custom ) );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'enum':\n\t\t\t\t\t\tcustomContainer.append( enumTmp( custom ) );\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Render the change history\n\t\t\tvar history = this.model.get( 'history' );\n\n\t\t\tif ( history !== undefined ) {\n\t\t\t\tvar historyStr = '';\n\n\t\t\t\t// Parse our fetched JSON object\n\t\t\t\thistory = JSON.parse( history );\n\n\t\t\t\t_.each( history, function( item ) {\n\t\t\t\t\thistoryStr += item.user + ' - ' + item.time + '\\n';\n\t\t\t\t} );\n\n\t\t\t\tif ( '' !== historyStr ) {\n\t\t\t\t\tthis.$el.find( 'textarea.brightcove-change-history' ).val( historyStr );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Configure a spinner to provide feedback during updates\n\t\t\tvar spinner = this.$el.find( '.spinner' );\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:on', function () {\n\t\t\t\tspinner.addClass( 'is-active' ).removeClass( 'hidden' );\n\t\t\t} );\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:off', function () {\n\t\t\t\tspinner.removeClass( 'is-active' ).addClass( 'hidden' );\n\t\t\t} );\n\n\t\t\t// If there's already a poster or thumbnail set, display it\n\t\t\tif ( this.model.get( 'poster' ) ) {\n\t\t\t\tthis.displayAttachment( 'poster' );\n\t\t\t}\n\n\t\t\tif ( this.model.get( 'thumbnail' ) ) {\n\t\t\t\tthis.displayAttachment( 'thumbnail' );\n\t\t\t}\n\n\t\t\t// Captions\n\t\t\tif ( this.model.get( 'captions' ) ) {\n\t\t\t\tvar captions = this.model.get( 'captions' );\n\t\t\t\tfor ( var i = 0, l = captions.length; i < l; i++ ) {\n\t\t\t\t\tvar caption = captions[i];\n\t\t\t\t\tthis.addCaption( caption.source, caption.language, caption.label );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\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\t'action':'bc_resolve_shortcode',\n\t\t\t\t'shortcode': this.shortcode\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\t{\n\t\ttagName : 'ul',\n\t\tclassName : 'brightcove-media attachments',\n\n\t\tattributes : {\n\t\t\ttabIndex : - 1\n\t\t},\n\n\t\tevents : {\n\t\t\t/* scroll fired on playlist edits, but for media grids it's handled by firing 'scroll:mediaGrid' in brightcove-media-manager */\n\t\t\t'scroll' : 'scrollHandler'\n\t\t},\n\n\t\tloadMoreMediaItems : function () {\n\t\t\tthis.fetchingResults = true;\n\t\t\tthis.collection.fetch();\n\t\t},\n\n\t\tscrollHandler : function () {\n\t\t\t// We don't fetch for videos in an existing playlist\n\t\t\tif ( 'existingPlaylists' === this.collection.mediaCollectionViewType ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar scrollThreshold = 200; // How many px from bottom until we fetch the next page.\n\t\t\tif ( ! this.fetchingResults && this.el.scrollTop + this.el.clientHeight + scrollThreshold > this.el.scrollHeight ) {\n\t\t\t\tthis.collection.pageNumber += 1;\n\t\t\t\tthis.loadMoreMediaItems();\n\t\t\t}\n\t\t},\n\n\t\tinitialize : function ( options ) {\n\t\t\tthis.fetchingResults = false;\n\t\t\tthis.listenTo( wpbc.broadcast, 'fetch:finished', function () {\n\t\t\t\tthis.fetchingResults = false;\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'fetch:apiError', this.handleAPIError );\n\n\t\t\tvar scrollRefreshSensitivity = wp.media.isTouchDevice ? 300 : 200;\n\t\t\tthis.scrollHandler = _.chain( this.scrollHandler ).bind( this ).throttle( scrollRefreshSensitivity ).value();\n\t\t\tthis.listenTo( wpbc.broadcast, 'scroll:mediaGrid', this.scrollHandler );\n\t\t\toptions = options || {};\n\t\t\tthis.el.id = _.uniqueId( '__attachments-view-' );\n\n\t\t\t// Occurs on playlist edit, existing videos.\n\t\t\tif ( ! this.collection && options.videoIds ) {\n\t\t\t\tthis.collection = new MediaCollection(\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tvideoIds : options.videoIds,\n\t\t\t\t\t\tactiveAccount : options.activeAccount,\n\t\t\t\t\t\tmediaCollectionViewType : options.mediaCollectionViewType\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:moveUp', this.videoMoveUp );\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:moveDown', this.videoMoveDown );\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:remove', this.videoRemove );\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:add', this.videoAdd );\n\t\t\t} else if ( ! this.collection && 'libraryPlaylists' === options.mediaCollectionViewType ) {\n\t\t\t\tthis.collection = new MediaCollection(\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\texcludeVideoIds : options.excludeVideoIds,\n\t\t\t\t\t\tactiveAccount : options.activeAccount,\n\t\t\t\t\t\tmediaCollectionViewType : options.mediaCollectionViewType\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:remove', this.videoRemove );\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:add', this.videoAdd );\n\t\t\t}\n\n\t\t\t_.defaults( this.options, {\n\t\t\t\trefreshSensitivity : wp.media.isTouchDevice ? 300 : 200,\n\t\t\t\trefreshThreshold : 3,\n\t\t\t\tVideoView : wp.media.view.Video,\n\t\t\t\tsortable : false,\n\t\t\t\tresize : true,\n\t\t\t\tidealColumnWidth : 202\n\t\t\t} );\n\n\t\t\tthis._viewsByCid = {};\n\t\t\tthis.resizeEvent = 'resize.media-modal-columns';\n\n\t\t\tthis.listenTo( this.collection, 'add', function ( 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}, this );\n\n\t\t\tthis.listenTo( this.collection, 'remove', function ( 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}, this );\n\n\t\t\tthis.listenTo( this.collection, 'reset', this.render );\n\n\t\t\t// Throttle the scroll handler and bind this.\n\t\t\tthis.scroll = _.chain( this.scroll ).bind( this ).throttle( this.options.refreshSensitivity ).value();\n\n\t\t\tthis.options.scrollElement = this.options.scrollElement || this.el;\n\t\t\t$( this.options.scrollElement ).on( 'scroll', this.scroll );\n\n\t\t\t_.bindAll( this, 'setColumns' );\n\n\t\t\tif ( this.options.resize ) {\n\t\t\t\tthis.on( 'ready', this.bindEvents );\n\t\t\t\t// this.controller.on('open', this.setColumns);\n\n\t\t\t\t// Call this.setColumns() after this view has been rendered in the DOM so\n\t\t\t\t// attachments get proper width applied.\n\t\t\t\t_.defer( this.setColumns, this );\n\t\t\t}\n\t\t},\n\n\t\thandleAPIError: function() {\n\t\t\tthis.el.innerText = wpbc.str_apifailure;\n\t\t},\n\n\t\trender : function () {\n\t\t\t// hide the spinner when content has finished loading\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:off', function() {\n\t\t\t\t$( '#js-media-loading' ).css( 'display', 'none' );\n\t\t\t} );\n\n\t\t\tthis.$el.empty();\n\t\t\tthis.collection.each( function ( mediaModel ) {\n\t\t\t\tmediaModel.view = new MediaView( {model : mediaModel} );\n\t\t\t\tthis.registerSubview( mediaModel.view );\n\t\t\t\tmediaModel.view.render();\n\t\t\t\tmediaModel.view.delegateEvents();\n\t\t\t\tmediaModel.view.$el.appendTo( this.$el );\n\n\t\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t\t}, this );\n\t\t},\n\n\t\tsetViewType : function ( type ) {\n\t\t\tthis.collection.each( function ( mediaModel ) {\n\t\t\t\tmediaModel.set( 'view', type );\n\t\t\t}, this );\n\t\t},\n\n\t\tbindEvents : function () {\n\t\t\tthis.$window.off( this.resizeEvent ).on( this.resizeEvent, _.debounce( this.setColumns, 50 ) );\n\t\t},\n\n\t\tsetColumns : function () {\n\t\t\tvar prev = this.columns,\n\t\t\t width = this.$el.width();\n\n\t\t\tif ( width ) {\n\t\t\t\tthis.columns = Math.min( Math.round( width / this.options.idealColumnWidth ), 12 ) || 1;\n\n\t\t\t\tif ( ! prev || prev !== this.columns ) {\n\t\t\t\t\tthis.$el.closest( '.media-frame-content' ).attr( 'data-columns', this.columns );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {wp.media.model.Video} attachment\n\t\t * @returns {wp.media.View}\n\t\t */\n\t\tcreateMediaView : function ( attachment ) {\n\t\t\tattachment.set( 'viewType', this.collection.mediaCollectionViewType );\n\t\t\tvar view = new MediaView( {\n\t\t\t\tcontroller : this.controller,\n\t\t\t\tmodel : attachment,\n\t\t\t\tcollection : this.collection,\n\t\t\t\tselection : this.options.selection\n\t\t\t} );\n\t\t\tthis.registerSubview( view );\n\t\t\tthis._viewsByCid[attachment.cid] = view;\n\t\t\treturn view;\n\t\t},\n\n\t\tprepare : function () {\n\t\t\t// Create all of the Video views, and replace\n\t\t\t// the list in a single DOM operation.\n\t\t\tif ( this.collection.length ) {\n\t\t\t\tthis.views.set( this.collection.map( this.createMediaView, this ) );\n\n\t\t\t\t// If there are no elements, clear the views and load some.\n\t\t\t} else {\n\t\t\t\tthis.views.unset();\n\t\t\t\tthis.collection.more().done( this.scroll );\n\t\t\t}\n\t\t},\n\n\t\tready : function () {\n\t\t\t// Trigger the scroll event to check if we're within the\n\t\t\t// threshold to query for additional attachments.\n\t\t\tthis.scroll();\n\t\t},\n\n\t\tscroll : function () {\n\t\t\tvar view = this,\n\t\t\t el = this.options.scrollElement,\n\t\t\t scrollTop = el.scrollTop,\n\t\t\t toolbar;\n\n\t\t\t// The scroll event occurs on the document, but the element\n\t\t\t// that should be checked is the document body.\n\t\t\tif ( el === document ) {\n\t\t\t\tel = document.body;\n\t\t\t\tscrollTop = $( document ).scrollTop();\n\t\t\t}\n\n\t\t\tif ( 'function' !== this.collection.hasMore || ! $( el ).is( ':visible' ) || ! this.collection.hasMore() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttoolbar = this.views.parent.toolbar;\n\n\t\t\t// Show the spinner only if we are close to the bottom.\n\t\t\tif ( el.scrollHeight - ( scrollTop + el.clientHeight ) < el.clientHeight / 3 ) {\n\t\t\t\ttoolbar.get( 'spinner' ).show();\n\t\t\t}\n\n\t\t\tif ( el.scrollHeight < scrollTop + ( el.clientHeight * this.options.refreshThreshold ) ) {\n\t\t\t\tthis.collection.more().done( function () {\n\t\t\t\t\tview.scroll();\n\t\t\t\t\ttoolbar.get( 'spinner' ).hide();\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\tvideoMoveUp : function ( videoView ) {\n\t\t\tvar model = videoView.model;\n\t\t\tvar index = this.collection.indexOf( model );\n\t\t\tif ( index > 0 ) {\n\t\t\t\tthis.collection.remove( model, {silent : true} ); // silence this to stop excess event triggers\n\t\t\t\tthis.collection.add( model, {at : index - 1} );\n\t\t\t}\n\t\t\tthis.render();\n\t\t\tthis.playlistChanged();\n\t\t},\n\n\t\tvideoMoveDown : function ( videoView ) {\n\t\t\tvar model = videoView.model;\n\t\t\tvar index = this.collection.indexOf( model );\n\t\t\tif ( index < this.collection.models.length ) {\n\t\t\t\tthis.collection.remove( model, {silent : true} ); // silence this to stop excess event triggers\n\t\t\t\tthis.collection.add( model, {at : index + 1} );\n\t\t\t}\n\t\t\tthis.render();\n\t\t\tthis.playlistChanged();\n\t\t},\n\n\t\tvideoRemove : function ( videoView ) {\n\t\t\tvar model = videoView.model;\n\t\t\tif ( - 1 === this.collection.indexOf( model ) ) {\n\t\t\t\t// this is the library model\n\t\t\t\tthis.collection.add( model );\n\t\t\t} else {\n\t\t\t\t// this is the playlist collection\n\t\t\t\tthis.collection.remove( model, {silent : true} ); // silence this to stop excess event triggers\n\t\t\t\tthis.playlistChanged();\n\t\t\t}\n\t\t\tthis.render();\n\t\t},\n\n\t\tvideoAdd : function ( videoView ) {\n\t\t\t/**\n\t\t\t * Video add is heard by two collections, the one containing the videos for the playlists\n\t\t\t * and the one containing the videos that we can add to them.\n\t\t\t * We handle the add by adding from the collection where it doesn't exist (the playlist) and removing\n\t\t\t * where it does (the library).\n\t\t\t */\n\t\t\tvar model = videoView.model;\n\t\t\tif ( - 1 === this.collection.indexOf( model ) ) {\n\t\t\t\t// this is the playlist collection\n\t\t\t\tthis.collection.add( model );\n\t\t\t\tthis.playlistChanged();\n\t\t\t} else {\n\t\t\t\t// this is the library model\n\t\t\t\tthis.collection.remove( model, {silent : true} );\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t},\n\n\t\tplaylistChanged : function () {\n\t\t\tvar videoIds = [];\n\t\t\tthis.collection.each( function ( video ) {\n\t\t\t\tvideoIds.push( video.id );\n\t\t\t} );\n\t\t\tthis.videoIds = videoIds;\n\t\t\t// var syncPlaylist = _.throttle(_.bind(this.syncPlaylist, this), 2000);\n\t\t\tthis.syncPlaylist();\n\t\t},\n\n\t\tsyncPlaylist : function () {\n\t\t\twpbc.broadcast.trigger( 'playlist:changed', this.videoIds );\n\t\t}\n\n\t}\n);\n\n","\tvar App = {\n\t\trenderMediaManager: function(mediaType) {\n\t\t\tvar brightcoveMediaContainer = $('.brightcove-media-' + mediaType);\n\t\t\tvar content_ifr = document.getElementById('content_ifr');\n\t\t\tif ( brightcoveMediaContainer.length ) {\n\t\t\t\tvar brightcoveMediaManager = new BrightcoveMediaManagerView({\n\t\t\t\t\tel: brightcoveMediaContainer,\n\t\t\t\t\tdate: 'all',\n\t\t\t\t\tembedType: 'page',\n\t\t\t\t\tpreload: true,\n\t\t\t\t\tmode: 'manager',\n\t\t\t\t\tsearch: '',\n\t\t\t\t\taccounts: 'all',\n\t\t\t\t\ttags: 'all',\n\t\t\t\t\tmediaType: mediaType,\n\t\t\t\t\tviewType: 'grid'\n\t\t\t\t});\n\t\t\t\tbrightcoveMediaManager.render();\n\t\t\t}\n\t\t},\n\n\t\tload: function() {\n\t\t\twpbc.requests = [];\n\t\t\twpbc.responses = {};\n\t\t\twpbc.broadcast = _.extend({}, Backbone.Events); // pubSub object\n\n\t\t\tthis.loaded();\n\n\t\t},\n\n\t\tloaded: function() {\n\t\t\tvar brightcoveModalContainer = $('.brightcove-modal');\n\n\t\t\tvar router = new BrightcoveRouter;\n\t\t\twpbc.triggerModal = function() {\n\t\t\t\tif (!wpbc.modal) {\n\t\t\t\t\twpbc.modal = new BrightcoveModalView({\n\t\t\t\t\t\tel: brightcoveModalContainer,\n\t\t\t\t\t\ttab: 'videos'\n\t\t\t\t\t});\n\t\t\t\t\twpbc.modal.render();\n\t\t\t\t\twpbc.modal.$el.find( '.spinner' ).addClass( 'is-active' );\n\t\t\t\t} else {\n\t\t\t\t\twpbc.modal.$el.show();\n\t\t\t\t}\n\n\t\t\t\t// Prevent body scrolling by adding a class to 'body'.\n\t\t\t\t$( 'body' ).addClass( 'modal-open' );\n\t\t\t};\n\n\t\t\tvar bc_sanitize_ids = function( id ) {\n\t\t\t\treturn id.replace(/\\D/g,'');\n\t\t\t};\n\n\t\t\t// Load the appropriate media type manager into the container element,\n\t\t\t// We only support loading one per page.\n\t\t\t_.each(['videos', 'playlists'], function(mediaType){\n\t\t\t\tApp.renderMediaManager(mediaType);\n\t\t\t});\n\n\t\t\t$('.account-toggle-button').on('click',function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\t$(this).hide();\n\t\t\t\t$('.brightcove-account-row.hidden').show();\n\t\t\t});\n\n\t\t\t$('.brightcove-add-new-video').on('click', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\trouter.navigate('add-new-brightcove-video', { trigger:true });\n\t\t\t});\n\n\t\t\t$(document).on('click', '.brightcove-add-media', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\twpbc.triggerModal();\n\t\t\t\twpbc.modal.target = e.currentTarget.dataset.target;\n\t\t\t});\n\n\t\t\t$(document).keyup(function(e) {\n\t\t\t\tif (27 === e.keyCode) {\n\t\t\t\t\t// Close modal on ESCAPE if it's open.\n\t\t\t\t\twpbc.broadcast.trigger('close:modal');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$('a.brightcove-action-delete-source').on('click',function(e){\n\t\t\t\tvar message = $(this).data('alert-message');\n\t\t\t\tif( !confirm( message ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t}\n\t};\n\n\tjQuery( document ).ready( function() {\n\t\tApp.load();\n\t\tvar router = new BrightcoveRouter;\n\t\tif ( ! Backbone.History.started ) {\n\t\t\tBackbone.history.start();\n\t\t}\n\t} );\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\n\t\t/**\n\t\t * Copied largely from WP Attachment sync function\n\t\t * Triggered when attachment details change\n\t\t * Overrides Backbone.Model.sync\n\t\t *\n\t\t * @param {string} method\n\t\t * @param {wp.media.model.Media} model\n\t\t * @param {Object} [options={}]\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\tsync : function ( method, model, options ) {\n\n\t\t\tvar accountHash = null;\n\n\t\t\t// Set the accountHash to the wpbc.preload.accounts[*] where the account_id\n\t\t\t// matches this media objects account_id.\n\t\t\t_.find( wpbc.preload.accounts, function ( 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}, this );\n\n\t\t\t// If the attachment does not yet have an `id`, return an instantly\n\t\t\t// rejected promise. Otherwise, all of our requests will fail.\n\t\t\tif ( _.isUndefined( this.id ) ) {\n\t\t\t\treturn $.Deferred().rejectWith( this ).promise();\n\t\t\t}\n\n\t\t\t// Overload the `read` request so Media.fetch() functions correctly.\n\t\t\tif ( 'read' === method ) {\n\t\t\t\toptions = options || {};\n\t\t\t\toptions.context = this;\n\t\t\t\toptions.data = _.extend( options.data || {}, {\n\t\t\t\t\taction : 'bc_media_fetch',\n\t\t\t\t\tid : this.id\n\t\t\t\t} );\n\n\t\t\t\treturn wp.media.ajax( options );\n\n\t\t\t\t// Overload the `update` request so properties can be saved.\n\t\t\t} else if ( 'update' === method ) {\n\t\t\t\toptions = options || {};\n\t\t\t\toptions.context = this;\n\t\t\t\t// Set the action and ID.\n\t\t\t\toptions.data = _.extend( options.data || {}, {\n\t\t\t\t\taccount : accountHash,\n\t\t\t\t\taction : 'bc_media_update',\n\t\t\t\t\tdescription : this.get( 'description' ),\n\t\t\t\t\tlong_description : this.get( 'long_description' ),\n\t\t\t\t\tname : this.get( 'name' ),\n\t\t\t\t\tnonce : wpbc.preload.nonce,\n\t\t\t\t\ttags : this.get( 'tags' ),\n\t\t\t\t\ttype : this.get( 'mediaType' ),\n\t\t\t\t\tcustom_fields: this.get( 'custom_fields' ),\n\t\t\t\t\thistory: this.get( '_change_history' ),\n\t\t\t\t\tposter: this.get( 'poster' ),\n\t\t\t\t\tthumbnail: this.get( 'thumbnail' ),\n\t\t\t\t\tcaptions: this.get( 'captions' )\n\t\t\t\t} );\n\n\t\t\t\tvar video_ids = this.get( 'video_ids' );\n\t\t\t\tif ( video_ids ) {\n\t\t\t\t\toptions.data.playlist_id = this.id;\n\t\t\t\t\toptions.data.playlist_videos = video_ids;\n\t\t\t\t\toptions.data.type = 'playlists';\n\t\t\t\t} else {\n\t\t\t\t\toptions.data.video_id = this.id;\n\t\t\t\t}\n\n\t\t\t\toptions.success = this.successFunction;\n\t\t\t\toptions.error = this.failFunction;\n\n\t\t\t\twpbc.broadcast.trigger( 'spinner:on' );\n\t\t\t\treturn wp.media.ajax( options );\n\n\t\t\t\t// Overload the `delete` request so attachments can be removed.\n\t\t\t\t// This will permanently delete an attachment.\n\t\t\t} else if ( 'delete' === method ) {\n\t\t\t\toptions = options || {};\n\t\t\t\tvar self = this;\n\n\t\t\t\toptions.data = _.extend( options.data || {}, {\n\t\t\t\t\taccount : accountHash,\n\t\t\t\t\taction : 'bc_media_delete',\n\t\t\t\t\tid : this.get( 'id' ),\n\t\t\t\t\tnonce : wpbc.preload.nonce,\n\t\t\t\t\ttype : this.get( 'mediaType' ),\n\t\t\t\t} );\n\n\t\t\t\treturn wp.media.ajax( options ).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 ( 'videos' === self.get( 'mediaType' ) || ! _.isUndefined( self.get( 'video_ids' ) ) ) {\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} ).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\t// Otherwise, fall back to `Backbone.sync()`.\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * Call `sync` directly on Backbone.Model\n\t\t\t\t */\n\t\t\t\treturn Backbone.Model.prototype.sync.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Convert date strings into Date objects.\n\t\t *\n\t\t * @param {Object} resp The raw response object, typically returned by fetch()\n\t\t * @returns {Object} The modified response object, which is the attributes hash\n\t\t * to be set on the model.\n\t\t */\n\t\tparse : function ( resp ) {\n\t\t\tif ( ! resp ) {\n\t\t\t\treturn resp;\n\t\t\t}\n\n\t\t\tresp.date = new Date( resp.date );\n\t\t\tresp.modified = new Date( resp.modified );\n\t\t\treturn resp;\n\t\t},\n\n\t\tgetAccountName : function () {\n\n\t\t\tvar account_id = this.get( 'account_id' );\n\t\t\tvar matchingAccount = _.findWhere( wpbc.preload.accounts, {account_id : this.get( 'account_id' )} );\n\t\t\treturn undefined === matchingAccount ? this.getSelectedAccountName() : matchingAccount.account_name;\n\t\t},\n\n\t\tgetSelectedAccountName : function () {\n var elt = document.getElementById( 'brightcove-media-source' );\n\n if ( elt.selectedIndex === -1 ) {\n return 'unavailable';\n }\n\n return elt.options[elt.selectedIndex].text;\n\t\t},\n\n\t\tgetReadableDuration : function () {\n\n\t\t\tvar duration = this.get( 'duration' );\n\n\t\t\tif ( duration ) {\n\t\t\t\tduration = Number( duration / 1000 );\n\t\t\t\tvar hours = Math.floor( duration / 3600 );\n\t\t\t\tvar minutes = Math.floor( duration % 3600 / 60 );\n\t\t\t\tvar seconds = Math.floor( duration % 3600 % 60 );\n\t\t\t\treturn ((hours > 0 ? hours + \":\" + (minutes < 10 ? \"0\" : \"\") : \"\") + minutes + \":\" + (seconds < 10 ? \"0\" : \"\") + seconds);\n\t\t\t}\n\t\t\treturn duration;\n\t\t},\n\n\t\tgetReadableDate : function ( field ) {\n\n\t\t\tvar updated_at = this.get( field );\n\n\t\t\tif ( updated_at ) {\n\n\t\t\t\tvar date = new Date( updated_at );\n\n\t\t\t\tvar hour = date.getHours();\n\t\t\t\tvar min = date.getMinutes();\n\t\t\t\tvar year = date.getFullYear();\n\t\t\t\tvar mon = date.getMonth() + 1;\n\t\t\t\tvar day = date.getDate();\n\t\t\t\tvar ampm = hour >= 12 ? 'pm' : 'am';\n\n\t\t\t\thour = hour % 12;\n\t\t\t\thour = hour ? hour : 12;\n\n\t\t\t\tmin = min < 10 ? '0' + min : min;\n\n\t\t\t\tvar readableDate = year + '/' + mon + '/' + day + ' - ' + hour + ':' + min + ' ' + ampm;\n\t\t\t\treturn readableDate;\n\t\t\t}\n\t\t\treturn updated_at;\n\t\t},\n\n\t\tsuccessFunction : function ( message ) {\n\t\t\twpbc.broadcast.trigger( 'videoEdit:message', message, 'success' );\n\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t\tif ( _.isArray( this.get( 'video_ids' ) ) && wpbc.preload && wpbc.preload.playlists ) {\n\t\t\t\tvar id = this.get( 'id' );\n\t\t\t\t_.each( wpbc.preload.playlists, function ( 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}, this );\n\t\t\t}\n\t\t\twpbc.responses = {};\n\t\t\tif ( 'videos' === this.get( 'mediaType' ) || ! _.isUndefined( this.get( 'video_ids' ) ) ) {\n\t\t\t\twpbc.preload.videos = undefined;\n\t\t\t} else {\n\t\t\t\twpbc.preload.playlists = undefined;\n\t\t\t}\n\t\t},\n\n\t\tfailFunction : function ( message ) {\n\t\t\twpbc.broadcast.trigger( 'videoEdit:message', message, 'error' );\n\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t}\n\t}\n);\n","var MediaCollection = Backbone.Collection.extend(\n\t{\n\t\tmodel : MediaModel,\n\t\t/**\n\t\t * @param {Array} [models=[]] Array of models used to populate the collection.\n\t\t * @param {Object} [options={}]\n\t\t */\n\t\tinitialize : function ( models, options ) {\n\t\t\toptions = options || {};\n\t\t\tif ( options.activeAccount ) {\n\t\t\t\tthis.activeAccount = options.activeAccount;\n\t\t\t}\n\n\t\t\tthis.additionalRequest = false;\n\n\t\t\tthis.pageNumber = this.pageNumber || 1;\n\n\t\t\tif ( ! this.mediaType && (this.mediaCollectionViewType === 'existingPlaylists' || this.mediaCollectionViewType === 'libraryPlaylists') ) {\n\t\t\t\tthis.mediaType = 'videos';\n\t\t\t}\n\n\t\t\tthis.mediaCollectionViewType = options.mediaCollectionViewType || 'grid';\n\n\t\t\tif ( options.excludeVideoIds && 'libraryPlaylists' === options.mediaCollectionViewType ) {\n\t\t\t\tthis.excludeVideoIds = options.excludeVideoIds;\n\t\t\t}\n\n\t\t\tif ( options.videoIds && ! models ) {\n\t\t\t\tthis.mediaType = 'videos';\n\t\t\t\tthis.videoIds = options.videoIds;\n\t\t\t\tthis.fetch();\n\t\t\t} else if ( 'playlists' !== options.mediaType ) {\n\t\t\t\tthis.mediaType = 'videos';\n\t\t\t\tthis.fetch();\n\t\t\t}\n\n\t\t\tthis.mediaType = options.mediaType;\n\n\t\t\tif ( 'videos' === this.mediaType ) {\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:uploadedFileDetails', function ( video ) {\n\t\t\t\t\t// Add the newly uploaded file\n\t\t\t\t\tthis.add( video, {at : 0} );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tthis.activeAccount = options.activeAccount || 'all';\n\t\t\tthis.searchTerm = options.searchTerm || '';\n\t\t\tthis.dates = options.dates || 'all';\n\t\t\tthis.tag = options.tag || '';\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:activeAccount', function ( accountId ) {\n\t\t\t\tthis.activeAccount = accountId;\n\t\t\t\twp.heartbeat.enqueue( 'brightcove_heartbeat', { 'accountId': accountId }, true );\n\t\t\t\tthis.fetch();\n\t\t\t} );\n\n\t\t\t$( document ).on( 'heartbeat-tick.brightcove_heartbeat', function( event, data ) {\n\t\t\t\tif ( data.hasOwnProperty( 'brightcove_heartbeat' ) ) {\n\t\t\t\t\twp.heartbeat.enqueue( 'brightcove_heartbeat', { 'accountId': data['brightcove_heartbeat']['account_id'] }, true );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:searchTerm', function ( searchTerm ) {\n\t\t\t\tthis.searchTerm = searchTerm;\n\t\t\t\tthis.fetch();\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:tag', function ( tag ) {\n\n\t\t\t\tif ( 'all' === tag ) {\n\t\t\t\t\ttag = '';\n\t\t\t\t}\n\n\t\t\t\tthis.tag = tag;\n\t\t\t\tthis.fetch();\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:date', function ( date ) {\n\t\t\t\tthis.date = date;\n\t\t\t\tthis.fetch();\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'tabChange', function ( settings ) {\n\t\t\t\tthis.killPendingRequests();\n\t\t\t\tif ( settings.mediaType !== this.mediaType ) {\n\t\t\t\t\tthis.mediaType = settings.mediaType;\n\t\t\t\t\tvar preload = wpbc.preload[this.mediaType];\n\t\t\t\t\tvar model;\n\t\t\t\t\t// Remove all models from the collection\n\t\t\t\t\twhile ( model = this.first() ) {\n\t\t\t\t\t\tthis.remove( model );\n\t\t\t\t\t}\n\t\t\t\t\tif ( preload !== undefined ) {\n\t\t\t\t\t\tthis.add( preload );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.fetch();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tkillPendingRequests : function () {\n\t\t\t// Kill all pending requests\n\t\t\t_.each( wpbc.requests, function ( request ) {\n\t\t\t\trequest.abort();\n\t\t\t} );\n\n\t\t\twpbc.requests = [];\n\t\t},\n\n\t\tchecksum : function ( object ) {\n\t\t\tif ( ! _.isString( object ) ) {\n\t\t\t\tif ( _.isFunction( object.toJSON ) ) {\n\t\t\t\t\tobject = object.toJSON();\n\t\t\t\t} else {\n\t\t\t\t\tobject = JSON.stringify( object );\n\t\t\t\t}\n\n\t\t\t}\n\t\t\tvar checksum = 0x12345678;\n\n\t\t\tfor ( var i = 0; i < object.length; i ++ ) {\n\t\t\t\tchecksum += (object.charCodeAt( i ) * (i + 1));\n\t\t\t}\n\n\t\t\treturn checksum;\n\t\t},\n\n\t\t/**\n\t\t * Overrides Backbone.Collection.sync\n\t\t *\n\t\t * @param {String} method\n\t\t * @param {Backbone.Model} model\n\t\t * @param {Object} [options={}]\n\t\t * @returns {Promise}\n\t\t */\n\t\tsync : function ( method, model, options ) {\n\t\t\tvar args, fallback;\n\n\t\t\t// Overload the read method so Media.fetch() functions correctly.\n\t\t\tif ( 'read' === method ) {\n\t\t\t\toptions = options || {};\n\t\t\t\toptions.data = _.extend( options.data || {}, {\n\t\t\t\t\taction : 'bc_media_query',\n\t\t\t\t\taccount : this.activeAccount || wpbc.preload.defaultAccountId,\n\t\t\t\t\tdates : this.date,\n\t\t\t\t\tposts_per_page : wpbc.posts_per_page,\n\t\t\t\t\tpage_number : this.pageNumber,\n\t\t\t\t\tnonce : wpbc.preload.nonce,\n\t\t\t\t\tsearch : this.searchTerm,\n\t\t\t\t\ttags : this.tag,\n\t\t\t\t\ttagName : wpbc.preload.tags[this.tag],\n\t\t\t\t\ttype : this.mediaType || 'videos'\n\t\t\t\t} );\n\n\t\t\t\tvar previousRequest = _.pick( options.data, 'account', 'dates', 'posts_per_page', 'search', 'tags', 'type' );\n\n\t\t\t\t// Determine if we're infinite scrolling or not.\n\t\t\t\tthis.additionalRequest = _.isEqual( previousRequest, wpbc.previousRequest );\n\t\t\t\tif ( ! this.additionalRequest ) {\n\t\t\t\t\toptions.data.page_number = 1;\n\t\t\t\t}\n\t\t\t\t/* Prevent reloading on the playlist edit as the playlist videos are one request and library videos another */\n\t\t\t\tif ( this.mediaCollectionViewType !== 'existingPlaylists' ) {\n\t\t\t\t\twpbc.previousRequest = previousRequest;\n\t\t\t\t}\n\n\t\t\t\tif ( this.videoIds ) {\n\t\t\t\t\toptions.data.videoIds = this.videoIds.length ? this.videoIds : 'none';\n\t\t\t\t}\n\n\t\t\t\toptions.data.query = args;\n\n\t\t\t\tif ( ! _.contains( ['libraryPlaylists', 'existingPlaylists'], this.mediaCollectionViewType ) ) {\n\t\t\t\t\tthis.killPendingRequests();\n\t\t\t\t}\n\n\t\t\t\tvar requestChecksum = this.checksum( options.data );\n\n\t\t\t\tif ( ! _.isUndefined( wpbc.responses[requestChecksum] ) ) {\n\t\t\t\t\tthis.parse( {data : wpbc.responses[requestChecksum]}, 'cached' );\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tvar request = $.ajax( {\n\t\t\t\t\t type : 'POST',\n\t\t\t\t\t url : wp.ajax.settings.url,\n\t\t\t\t\t context : this,\n\t\t\t\t\t data : options.data\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} ).fail( this.fetchFail );\n\n\t\t\t\twpbc.requests.push( request );\n\t\t\t\twpbc.broadcast.trigger( 'spinner:on' );\n\n\t\t\t\treturn request;\n\n\t\t\t\t// Otherwise, fall back to Backbone.sync()\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * Call wp.media.model.MediaCollection.sync or Backbone.sync\n\t\t\t\t */\n\t\t\t\tfallback = MediaCollection.prototype.sync ? MediaCollection.prototype : Backbone;\n\t\t\t\treturn fallback.sync.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tfetchFail : function () {\n\t\t\tif ( this.pageNumber > 1 ) {\n\t\t\t\tthis.pageNumber --;\n\t\t\t}\n\t\t\twpbc.broadcast.trigger( 'fetch:finished' );\n\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t\twpbc.broadcast.trigger( 'fetch:apiError' );\n\t\t\tif ( 'abort' === status ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * A custom AJAX-response parser.\n\t\t *\n\t\t * See trac ticket #24753\n\t\t *\n\t\t * @param {Object|Array} resp The raw response Object/Array.\n\t\t * @param {Object} xhr\n\t\t * @returns {Array} The array of model attributes to be added to the collection\n\t\t */\n\t\tparse : function ( response, status, request, checksum ) {\n\t\t\twpbc.broadcast.trigger( 'fetch:finished' );\n\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t\tif ( ! _.contains( ['success', 'cached'], status ) || ( 'cached' !== status && ! response['success'] ) ) {\n\t\t\t\twpbc.broadcast.trigger( 'fetch:apiError' );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar data = response.data;\n\n\t\t\tif ( \"success\" === status ) {\n\t\t\t\twpbc.responses[checksum] = data;\n\t\t\t}\n\n\t\t\tif ( false === data ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif ( ! _.isArray( data ) ) {\n\t\t\t\tdata = [data];\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * In playlist video search, we remove the videos that already exist in the playlist.\n\t\t\t */\n\t\t\tif ( _.isArray( this.excludeVideoIds ) ) {\n\t\t\t\t_.each( this.excludeVideoIds, function ( videoId ) {\n\t\t\t\t\tdata = _.without( data, _.findWhere( data, {id : videoId} ) );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tvar allMedia = _.map( data, function ( 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}, this );\n\n\t\t\tif ( this.additionalRequest ) {\n\t\t\t\tthis.add( allMedia );\n\t\t\t} else {\n\t\t\t\tthis.set( allMedia );\n\t\t\t}\n\t\t}\n\t}\n);\n","var BrightcoveMediaManagerModel = Backbone.Model.extend(\n\t{\n\t\tdefaults : {\n\t\t\tview : 'grid',\n\t\t\tdate : 'all',\n\t\t\ttags : 'all',\n\t\t\ttype : null, // enum[playlist, video]\n\t\t\tpreload : true,\n\t\t\tsearch : '',\n\t\t\taccount : wpbc.preload.defaultAccountId,\n\t\t\tposter: {},\n\t\t\tthumbnail: {}\n\t\t},\n\t\tinitialize : function ( options ) {\n\t\t\t_.defaults( options, this.defaults );\n\n\t\t\twp.heartbeat.enqueue( 'brightcove_heartbeat', { 'accountId': wpbc.preload.defaultAccountId }, true );\n\n\t\t\tvar collection = new MediaCollection( [], {mediaType : options.mediaType} );\n\t\t\tcollection.reset();\n\t\t\t/* Prevent empty element from living in our collection */\n\n\t\t\tif ( options.preload && options.preload.length ) {\n\t\t\t\tcollection.add( options.preload );\n\t\t\t}\n\n\t\t\toptions.preload = ! ! options.preload; // Whether or not a preload var was present.\n\n\t\t\tthis.set( 'media-collection-view', new MediaCollectionView( {collection : collection} ) );\n\t\t\tthis.set( 'options', options );\n\n\t\t}\n\t}\n);\n\n","/**\n * Media model for Media CPT\n */\n\nvar BrightcoveModalModel = Backbone.Model.extend(\n\t{\n\n\t\tgetMediaManagerSettings : function () {\n\t\t\tvar tab = this.get( 'tab' );\n\t\t\tvar settings = {\n\t\t\t\t'upload' : {\n\t\t\t\t\taccounts : 'all',\n\t\t\t\t\tdate : 'all',\n\t\t\t\t\tembedType : 'modal',\n\t\t\t\t\tmediaType : 'videos',\n\t\t\t\t\tmode : 'uploader',\n\t\t\t\t\tpreload : true,\n\t\t\t\t\tsearch : '',\n\t\t\t\t\ttags : 'all',\n\t\t\t\t\tviewType : 'grid',\n\t\t\t\t\tposter: {},\n\t\t\t\t\tthumbnail: {}\n\t\t\t\t},\n\t\t\t\t'videos' : {\n\t\t\t\t\taccounts : 'all',\n\t\t\t\t\tdate : 'all',\n\t\t\t\t\tembedType : 'modal',\n\t\t\t\t\tmediaType : 'videos',\n\t\t\t\t\tmode : 'manager',\n\t\t\t\t\tpreload : true,\n\t\t\t\t\tsearch : '',\n\t\t\t\t\ttags : 'all',\n\t\t\t\t\tviewType : 'grid'\n\t\t\t\t},\n\t\t\t\t'playlists' : {\n\t\t\t\t\taccounts : 'all',\n\t\t\t\t\tdate : 'all',\n\t\t\t\t\tembedType : 'modal',\n\t\t\t\t\tmediaType : 'playlists',\n\t\t\t\t\tmode : 'manager',\n\t\t\t\t\tpreload : true,\n\t\t\t\t\tsearch : '',\n\t\t\t\t\ttags : 'all',\n\t\t\t\t\tviewType : 'grid'\n\t\t\t\t},\n 'video-experience' : {\n accounts : 'all',\n date : 'all',\n embedType : 'modal',\n mediaType : 'videoexperience',\n mode : 'manager',\n preload : true,\n search : '',\n tags : 'all',\n viewType : 'grid'\n }\n ,\n 'playlist-experience' : {\n accounts : 'all',\n date : 'all',\n embedType : 'modal',\n mediaType : 'playlistexperience',\n mode : 'manager',\n preload : true,\n search : '',\n tags : 'all',\n viewType : 'grid'\n }\n\t\t\t};\n\n\t\t\tif ( undefined !== settings[tab] ) {\n\t\t\t\treturn settings[tab];\n\t\t\t}\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n);\n\n","/**\n * Collection model to contain pending uploads\n */\n\nvar UploadModelCollection = Backbone.Collection.extend(\n\t{\n\n\t\tinitialize : function ( options ) {\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:queuedFilesAdded', this.queuedFilesAdded );\n\t\t},\n\n\t\tqueuedFilesAdded : function ( queuedFiles ) {\n\t\t\t_.each( queuedFiles, function ( queuedFile ) {\n\t\t\t\tthis.add( new UploadModel( queuedFile ) );\n\t\t\t}, this );\n\t\t}\n\n\t}\n);\n\n","/**\n * Model to contain pending upload\n */\n\nvar UploadModel = Backbone.Model.extend(\n\t{\n\n\t\tinitialize : function ( options ) {\n\t\t},\n\n\t\thumanReadableSize : function () {\n\t\t\tvar bytes = this.get( 'size' );\n\t\t\tif ( bytes === 0 ) {\n\t\t\t\treturn '0 Byte';\n\t\t\t}\n\t\t\tvar k = 1000;\n\t\t\tvar sizes = ['Bytes', 'KB', 'MB', 'GB'];\n\t\t\tvar i = Math.floor( Math.log( bytes ) / Math.log( k ) );\n\t\t\treturn (bytes / Math.pow( k, i )).toPrecision( 3 ) + ' ' + sizes[i];\n\t\t}\n\n\t}\n);\n","var BrightcoveView = wp.Backbone.View.extend(\n\t{\n\t\tsubviews : null,\n\n\t\tregisterSubview : function ( view ) {\n\n\t\t\tthis.subviews = this.subviews || [];\n\t\t\tthis.subviews.push( view );\n\n\t\t},\n\n\t\tremove : function () {\n\n\t\t\t_.invoke( this.subviews, 'remove' );\n\t\t\twp.Backbone.View.prototype.remove.call( this );\n\n\t\t},\n\n\t\tinsertShortcode : function () {\n\n\t\t\tif ( ! this.model ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar shortcode = wpbc.shortcode;\n\n if ( undefined === this.mediaType ) {\n\t\t\t\tvar template = wp.template( 'brightcove-mediatype-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$( '#lost-connection-notice' ).before( template );\n\n\t\t\t\t// Allow the user to dismiss the notice\n\t\t\t\t$( '#js-mediatype-dismiss' ).on( 'click', function() {\n\t\t\t\t\t$( '#js-mediatype-notice' ).first().fadeOut( 500, function() {\n\t\t\t\t\t\t$( this ).remove();\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif( wpbc.modal.target === 'content' ) {\n\t\t\t\twindow.send_to_editor( shortcode );\n\t\t\t} else {\n\t\t\t\t$( wpbc.modal.target ).val( shortcode );\n\t\t\t\t$( wpbc.modal.target ).change();\n\t\t\t}\n\n\t\t\twpbc.broadcast.trigger( 'close:modal' );\n\t\t}\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\t{\n\t\ttagName : 'div',\n\t\tclassName : 'media-toolbar wp-filter',\n\t\ttemplate : wp.template( 'brightcove-media-toolbar' ),\n\n\t\tevents : {\n 'click .view-list': 'toggleList',\n 'click .view-grid': 'toggleGrid',\n 'click .brightcove-toolbar': 'toggleToolbar',\n 'change .brightcove-media-source': 'sourceChanged',\n 'change .brightcove-media-dates': 'datesChanged',\n 'change .brightcove-media-tags': 'tagsChanged',\n 'change .brightcove-empty-playlists': 'emptyPlaylistsChanged',\n 'click #media-search': 'searchHandler',\n 'keyup .search': 'enterHandler'\n\t\t},\n\n\t\trender : function () {\n\t\t\tvar mediaType = this.model.get( 'mediaType' );\n\t\t\tvar options = {\n\t\t\t\taccounts : wpbc.preload.accounts,\n\t\t\t\tdates : {},\n\t\t\t\tmediaType : mediaType,\n\t\t\t\ttags : wpbc.preload.tags,\n\t\t\t\taccount : this.model.get( 'account' )\n\t\t\t};\n\n\t\t\tvar dates = wpbc.preload.dates;\n\t\t\tvar date_var = this.model.get( 'date' );\n\t\t\t/* @todo: find out if this is working */\n\t\t\tif ( dates !== undefined && dates[mediaType] !== undefined && dates[mediaType][date_var] !== undefined ) {\n\t\t\t\toptions.dates = dates[mediaType][date_var];\n\t\t\t}\n\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t\tvar spinner = this.$el.find( '.spinner' );\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:on', function () {\n\t\t\t\tspinner.addClass( 'is-active' ).removeClass( 'hidden' );\n\t\t\t} );\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:off', function () {\n\t\t\t\tspinner.removeClass( 'is-active' ).addClass( 'hidden' );\n\t\t\t} );\n\t\t},\n\n\t\t// List view Selected\n\t\ttoggleList : function () {\n\t\t\tthis.trigger( 'viewType', 'list' );\n\t\t\tthis.$el.find( '.view-list' ).addClass( 'current' );\n\t\t\tthis.$el.find( '.view-grid' ).removeClass( 'current' );\n\t\t},\n\n\t\t// Grid view Selected\n\t\ttoggleGrid : function () {\n\t\t\tthis.trigger( 'viewType', 'grid' );\n\t\t\tthis.$el.find( '.view-grid' ).addClass( 'current' );\n\t\t\tthis.$el.find( '.view-list' ).removeClass( 'current' );\n\t\t},\n\n\t\t// Toggle toolbar help\n\t\ttoggleToolbar : function () {\n\t\t\tvar template = wp.template( 'brightcove-tooltip-notice' );\n\n\t\t\t// Throw a notice to the user that the file is not the correct format\n\t\t\t$( '.brightcove-media-videos' ).before( template );\n\t\t\t// Allow the user to dismiss the notice\n\t\t\t$( '#js-tooltip-dismiss' ).on( 'click', function() {\n\t\t\t\t$( '#js-tooltip-notice' ).first().fadeOut( 500, function() {\n\t\t\t\t\t$( this ).remove();\n\t\t\t\t} );\n\t\t\t} );\n\t\t},\n\n\t\t// Brightcove source changed\n\t\tsourceChanged : function ( event ) {\n\n\t\t\t// Store the currently selected account on the model.\n\t\t\tthis.model.set( 'account', event.target.value );\n\t\t\twpbc.broadcast.trigger( 'change:activeAccount', event.target.value );\n\t\t},\n\n\t\tdatesChanged : function ( event ) {\n\t\t\twpbc.broadcast.trigger( 'change:date', event.target.value );\n\t\t},\n\n\t\ttagsChanged : function ( event ) {\n\t\t\twpbc.broadcast.trigger( 'change:tag', event.target.value );\n\t\t},\n\n\t\temptyPlaylistsChanged : function ( event ) {\n\t\t\tvar emptyPlaylists = $( event.target ).prop( 'checked' );\n\t\t\twpbc.broadcast.trigger( 'change:emptyPlaylists', emptyPlaylists );\n\t\t},\n\n enterHandler : function ( event ) {\n if ( event.keyCode === 13 ) {\n this.searchHandler( event );\n }\n },\n\n\t\tsearchHandler : function ( event ) {\n\t\t\tvar searchTerm = $( '#media-search-input' ).val();\n\n\t\t\tif ( searchTerm.length > 2 && searchTerm !== this.model.get( 'search' ) ) {\n\t\t\t\tthis.model.set( 'search', searchTerm );\n\t\t\t\twpbc.broadcast.trigger( 'change:searchTerm', searchTerm );\n\t\t\t} else if (searchTerm.length === 0) {\n \t\t\twpbc.broadcast.trigger( 'change:searchTerm', \"\" );\n\t\t\t}\n\t\t}\n\t}\n);\n\n","var UploadVideoManagerView = BrightcoveView.extend(\n\t{\n\t\tclassName : \"brightcove-file-uploader\",\n\n\t\tevents : {\n\t\t\t'click .brightcove-start-upload' : 'triggerUpload'\n\t\t},\n\n\t\tinitialize : function ( options ) {\n\t\t\t/**\n\t\t\t * If you're looking for the Plupload instance, you're in the wrong place, check the UploadWindowView\n\t\t\t */\n\t\t\tthis.collection = new UploadModelCollection();\n\t\t\tif ( options ) {\n\t\t\t\tthis.options = options;\n\n\t\t\t\tthis.successMessage = options.successMessage || this.successMessage;\n\t\t\t}\n\n\t\t\tthis.uploadWindow = new UploadWindowView();\n\n\t\t\tthis.listenTo( this.collection, 'add', this.fileAdded );\n\t\t\tthis.listenTo( wpbc.broadcast, 'pendingUpload:selectedItem', this.selectedItem );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:prepareUpload', this.prepareUpload );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:successMessage', this.successMessage );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:errorMessage', this.errorMessage );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:clear', this.resetUploads );\n\t\t\tthis.listenTo( wpbc.broadcast, 'upload:video', this.resetUploads );\n\t\t},\n\n\t\tresetUploads : function () {\n\t\t\twhile ( model = this.collection.first() ) {\n\t\t\t\tthis.collection.remove( model );\n\t\t\t}\n\t\t},\n\n\t\terrorMessage : function ( message ) {\n\t\t\tthis.message( message, 'error' );\n\t\t},\n\n\t\tsuccessMessage : function ( message ) {\n\t\t\tthis.message( message, 'success' );\n\t\t},\n\n\t\tmessage : function ( message, type ) {\n\t\t\tvar messages = this.$el.find( '.brightcove-messages' );\n\t\t\tvar messageClasses = '';\n\t\t\tif ( 'success' === type ) {\n\t\t\t\tmessageClasses = 'notice updated';\n\t\t\t} else if ( 'error' === type ) {\n\t\t\t\tmessageClasses = 'error';\n\t\t\t}\n\t\t\tvar newMessage = $( '' );\n\t\t\tmessages.append( newMessage );\n\t\t\tnewMessage.addClass( messageClasses ).find( '.message-text' ).text( message );\n\t\t\tnewMessage.delay( 4000 ).fadeOut( 500, function () {\n\t\t\t\t$( this ).remove();\n\t\t\t\twpbc.broadcast.trigger('upload:video');\n\t\t\t} );\n\t\t},\n\n\t\tprepareUpload : function () {\n\t\t\twpbc.uploads = wpbc.uploads || {};\n\t\t\tthis.collection.each( function ( upload ) {\n\t\t\t\twpbc.uploads[upload.get( 'id' )] = {\n\t\t\t\t\taccount : upload.get( 'account' ),\n\t\t\t\t\tname : upload.get( 'fileName' ),\n\t\t\t\t\ttags : upload.get( 'tags' )\n\t\t\t\t};\n\t\t\t} );\n\t\t\twpbc.broadcast.trigger( 'uploader:startUpload' );\n\t\t},\n\n\t\tfileAdded : function ( model, collection ) {\n\t\t\t// Start upload triggers progress bars under every video.\n\t\t\t// Need to re-render when one model is added\n\t\t\tif ( this.collection.length === 1 ) {\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t\tvar pendingUpload = new UploadView( {model : model} );\n\t\t\tpendingUpload.render();\n\t\t\tpendingUpload.$el.appendTo( this.$el.find( '.brightcove-pending-uploads' ) );\n\t\t},\n\n\t\ttriggerUpload : function () {\n\t\t\twpbc.broadcast.trigger( 'uploader:prepareUpload' );\n\t\t},\n\n\t\tselectedItem : function ( model ) {\n\t\t\tthis.uploadDetails = new UploadDetailsView( {model : model} );\n\t\t\tthis.uploadDetails.render();\n\t\t\tthis.$el.find( '.brightcove-pending-upload-details' ).remove();\n\t\t\tthis.uploadDetails.$el.appendTo( this.$el.find( '.brightcove-upload-queued-files' ) );\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\tif ( this.collection.length ) {\n\t\t\t\tthis.template = wp.template( 'brightcove-uploader-queued-files' );\n\t\t\t} else {\n\t\t\t\tthis.template = wp.template( 'brightcove-uploader-inline' );\n\t\t\t\tthis.uploadWindow.render();\n\t\t\t\tthis.uploadWindow.$el.appendTo( $( 'body' ) );\n\t\t\t}\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t\tif ( this.collection.length ) {\n\t\t\t\tthis.$el.find( '.brightcove-start-upload' ).show();\n\t\t\t} else {\n\t\t\t\tthis.$el.find( '.brightcove-start-upload' ).hide();\n\t\t\t}\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\t{\n\t\ttagName : 'div',\n\t\tclassName : 'brightcove-media',\n\n\t\tevents : {\n\t\t\t/*\n\t\t\t 'click .brightcove.media-button': 'insertIntoPost'\n\t\t\t */\n\t\t},\n\n\t\tscrollHandler : function () {\n\t\t\twpbc.broadcast.trigger( 'scroll:mediaGrid' );\n\t\t},\n\n\t\tinitialize : function ( options ) {\n\n\t\t\tvar scrollRefreshSensitivity = wp.media.isTouchDevice ? 300 : 200;\n\t\t\tthis.scrollHandler = _.chain( this.scrollHandler ).bind( this ).throttle( scrollRefreshSensitivity ).value();\n\t\t\tthis.options = options;\n\t\t\tthis.mode = options.mode || 'manager';\n\n\t\t\toptions.preload = this.options.preload ? wpbc.preload[this.options.mediaType] : false;\n\n\t\t\tthis.model = new BrightcoveMediaManagerModel( options );\n\n\t\t\t/* Search and dropdowns */\n\t\t\tthis.toolbar = new ToolbarView( {model : this.model} );\n\n\t\t\t/* Uploader View */\n\t\t\tthis.uploader = new UploadVideoManagerView();\n\n\t\t\tthis.model.set( 'accounts', wpbc.preload.accounts ); // All accounts.\n\t\t\tthis.model.set( 'activeAccount', options.account ); // Active account ID / All\n\n\t\t\tthis.listenTo( this.toolbar, 'viewType', function ( viewType ) {\n\t\t\t\tthis.model.set( 'view', viewType ); // Set the model view type\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'videoEdit:message', this.message );\n\t\t\tthis.listenTo( wpbc.broadcast, 'permanent:message', this.permanentMessage );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'remove:permanentMessage', function () {\n\n\t\t\t\tif ( wpbc.permanentMessage ) {\n\t\t\t\t\twpbc.permanentMessage.remove();\n\t\t\t\t}\n\n\t\t\t\tthis.$el.find( '.brightcove-message' ).addClass( 'hidden' );\n\n\t\t\t} );\n\n\t\t\t// We only care when a change occurs\n\t\t\tthis.listenTo( this.model, 'change:view', function ( model, type ) {\n\t\t\t\tthis.model.get( 'media-collection-view' ).setViewType( type );\n\t\t\t} );\n\n\t\t\tthis.listenTo( this.model, 'change:mode', function ( model, mode ) {\n\n\t\t\t\tif ( 'uploader' !== mode ) {\n\t\t\t\t\twpbc.broadcast.trigger( 'uploader:clear' );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'cancelPreview:media', function ( settings ) {\n\t\t\t\tthis.clearPreview();\n\t\t\t\tthis.detailsView = undefined;\n\t\t\t\tthis.model.set( 'mode', 'manager' );\n\t\t\t\tthis.render();\n\n\t\t\t\t// Disable \"Insert Into Post\" button since no video would be selected.\n\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton' );\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:emptyPlaylists', function ( hideEmptyPlaylists ) {\n\n\t\t\t\tvar mediaCollectionView = this.model.get( 'media-collection-view' );\n\t\t\t\tthis.model.set( 'mode', 'manager' );\n\n\t\t\t\t_.each( mediaCollectionView.collection.models, function ( playlistModel ) {\n\n\t\t\t\t\t// Don't hide smart playlists. Only Manual playlists will have playlistType as 'EXPLICIT'.\n\t\t\t\t\tif ( 'EXPLICIT' !== playlistModel.get ( 'type' ) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\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\t\tif ( playlistModel.get( 'video_ids' ).length === 0 ) {\n\t\t\t\t\t\tif ( hideEmptyPlaylists ) {\n\t\t\t\t\t\t\tplaylistModel.view.$el.hide();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tplaylistModel.view.$el.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'delete:successful', function ( message ) {\n\n\t\t\t\tthis.startGridView();\n\t\t\t\tthis.message( message, 'success' );\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:activeAccount', function ( accountId ) {\n\n\t\t\t\tthis.clearPreview();\n\t\t\t\tthis.model.set( 'activeAccount', accountId );\n\t\t\t\tthis.model.set( 'mode', 'manager' );\n\t\t\t\tthis.render();\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:tag', function ( tag ) {\n\n\t\t\t\tthis.clearPreview();\n\t\t\t\tthis.model.set( 'tag', tag );\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:date', function ( date ) {\n\n\t\t\t\tthis.clearPreview();\n\t\t\t\tthis.model.set( 'date', date );\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'upload:video', function () {\n\t\t\t\tthis.showUploader();\n\t\t\t} );\n\n\t\t\tthis.listenTo( this.model, 'change:search', function ( model, searchTerm ) {\n\t\t\t\tthis.model.get( 'search' );\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'start:gridview', function () {\n\n\t\t\t\t_.invoke( this.subviews, 'remove' );\n\n\t\t\t\tthis.detailsView = null; // Prevent selected view from not being toggleable when we hit the back button on edit\n\n\t\t\t\tthis.startGridView();\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'tabChange', function ( settings ) {\n\n\t\t\t\tthis.model.set( settings );\n\n\t\t\t\tif ( this.detailsView instanceof MediaDetailsView ) {\n\n\t\t\t\t\tthis.detailsView.remove();\n\n\t\t\t\t\tthis.detailsView = undefined;\n\n\t\t\t\t}\n\n\t\t\t\tthis.render();\n\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'edit:media', function ( model ) {\n\n\t\t\t\tvar mediaType = this.model.get( 'mediaType' );\n\n\t\t\t\tif ( mediaType === 'videos' ) {\n\n\t\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\t\tif ( 'editVideo' === this.model.get( 'mode' ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// hide the previous notification\n\t\t\t\t\tvar messages = this.$el.find( '.brightcove-message' );\n\t\t\t\t\tmessages.addClass( 'hidden' );\n\n\t\t\t\t\tthis.editView = new VideoEditView( {model : model} );\n\n\t\t\t\t\tthis.registerSubview( this.editView );\n\t\t\t\t\tthis.model.set( 'mode', 'editVideo' );\n\t\t\t\t\tthis.render();\n\n\t\t\t\t} else if ( mediaType === 'videoexperience' ) {\n\n\t\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\t\tif ( 'editVideo' === this.model.get( 'mode' ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// hide the previous notification\n\t\t\t\t\tvar messages = this.$el.find( '.brightcove-message' );\n\t\t\t\t\tmessages.addClass( 'hidden' );\n\n\t\t\t\t\tthis.editView = new VideoEditView( {model : model} );\n\n\t\t\t\t\tthis.registerSubview( this.editView );\n\t\t\t\t\tthis.model.set( 'mode', 'editVideo' );\n\t\t\t\t\tthis.render();\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// We just hit the edit button with the edit window already open.\n\t\t\t\t\tif ( 'editPlaylist' === this.model.get( 'mode' ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.editView = new PlaylistEditView( {model : model} );\n\n\t\t\t\t\tthis.registerSubview( this.editView );\n\t\t\t\t\tthis.model.set( 'mode', 'editPlaylist' );\n\t\t\t\t\tthis.render();\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'preview:media', function ( model, shortcode ) {\n\n\t\t\t\tvar mediaType = this.model.get( 'mediaType' );\n\n\t\t\t\tif ( mediaType === 'videos' ) {\n\n\t\t\t\t\t// We just hit the preview button with the preview window already open.\n\t\t\t\t\tif ( 'previewVideo' === this.model.get( 'mode' ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.previewView = new VideoPreviewView( {model : model, shortcode: shortcode} );\n\n\t\t\t\t\tthis.registerSubview( this.previewView );\n\t\t\t\t\tthis.model.set( 'mode', 'previewVideo' );\n\t\t\t\t\tthis.render();\n\n\t\t\t\t} else {\n\n\t\t\t\t\t/**\n\t\t\t\t\t * @todo: playlist preview view\n\t\t\t\t\t */\n\t\t\t\t\tthis.model.set( 'mode', 'editPlaylist' );\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'change:searchTerm', function ( mediaView ) {\n\t\t\t\tthis.clearPreview();\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'select:media', function ( mediaView ) {\n\n\t\t\t\t// Handle selection in the video experience tab.\n\t\t\t\tif ( mediaView.model.collection && 'videoexperience' === mediaView.model.collection.mediaType ) {\n\n\t\t\t\t\t// Toggle the selected state.\n\t\t\t\t\tmediaView.$el.toggleClass( 'highlighted' );\n\t\t\t\t\tmediaView.model.set( 'isSelected', mediaView.$el.hasClass( 'highlighted' ) );\n\n\t\t\t\t\t// Collect the selected models and extract their IDs.\n\t\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\t\tthis.detailsView.model.set( 'id', selectedIds );\n\n\t\t\t\t\t// Clear the shortcode and disable insertion if no items are selected.\n\t\t\t\t\tif ( _.isEmpty( selectedIds ) && 'videoexperience' !== this.model.get( 'mediaType' )) {\n\t\t\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton' );\n\t\t\t\t\t\t$( '#shortcode' ).val( '' );\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Otherwise, enable insertion.\n\t\t\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton', 'enabled' );\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t/* If user selects same thumbnail they want to hide the details view */\n\t\t\t\t\tif ( this.detailsView && this.detailsView.model === mediaView.model ) {\n\n\t\t\t\t\t\tthis.detailsView.$el.toggle();\n\t\t\t\t\t\tmediaView.$el.toggleClass( 'highlighted' );\n\t\t\t\t\t\tthis.model.get( 'media-collection-view' ).$el.toggleClass( 'menu-visible' );\n\t\t\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton' );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.clearPreview();\n\t\t\t\t\t\tthis.detailsView = new MediaDetailsView( {model : mediaView.model, el : $( '.brightcove.media-frame-menu' ), mediaType : this.model.get( 'mediaType' )} );\n\t\t\t\t\t\tthis.registerSubview( this.detailsView );\n\n\t\t\t\t\t\tthis.detailsView.render();\n\t\t\t\t\t\tthis.detailsView.$el.toggle( true ); // Always show new view\n\t\t\t\t\t\tthis.model.get( 'media-collection-view' ).$el.addClass( 'menu-visible' );\n\t\t\t\t\t\tmediaView.$el.addClass( 'highlighted' );\n\t\t\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton', 'enabled' );\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Clear the preview view and remove highlighted class from previous selected video.\n\t\t */\n\t\tclearPreview : function () {\n\n\t\t\tif ( this.detailsView instanceof MediaDetailsView ) {\n\t\t\t\tthis.detailsView.remove();\n\t\t\t}\n\n\t\t\tthis.model.get( 'media-collection-view' ).$el.find( '.highlighted' ).removeClass( 'highlighted' );\n\n\t\t},\n\n\t\tstartGridView : function () {\n\n\t\t\tthis.model.set( 'mode', 'manager' );\n\t\t\tthis.render();\n\n\t\t},\n\n\t\tmessage : function ( message, type, permanent ) {\n\n\t\t\tvar messages = this.$el.find( '.brightcove-message' );\n\n\t\t\tif ( 'success' === type ) {\n\n\t\t\t\tmessages.addClass( 'updated' );\n\t\t\t\tmessages.removeClass( 'error' );\n\n\t\t\t} else if ( 'error' === type ) {\n\n\t\t\t\tmessages.addClass( 'error' );\n\t\t\t\tmessages.removeClass( 'updated' );\n\n\t\t\t}\n\n\t\t\tvar newMessage = $( '' );\n\t\t\tnewMessage.text( message );\n\n\t\t\tmessages.append( newMessage );\n\t\t\tmessages.removeClass( 'hidden' );\n\n\t\t\tif ( permanent ) {\n\n\t\t\t\tif ( wpbc.permanentMessage ) {\n\t\t\t\t\twpbc.permanentMessage.remove();\n\t\t\t\t}\n\n\t\t\t\twpbc.permanentMessage = newMessage;\n\n\t\t\t} else {\n\t\t\t\t// Make the notice dismissable.\n\t\t\t\tmessages.addClass( 'notice is-dismissible' );\n\t\t\t\tthis.makeNoticesDismissible();\n\t\t\t}\n\t\t},\n\n\t\t// Make notices dismissible, mimics core function, fades them empties.\n\t\tmakeNoticesDismissible : function() {\n\t\t\t$( '.notice.is-dismissible' ).each( function() {\n\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t$button = $( '' ),\n\t\t\t\t\tbtnText = commonL10n.dismiss || '';\n\n\t\t\t\t// Ensure plain text\n\t\t\t\t$button.find( '.screen-reader-text' ).text( btnText );\n\t\t\t\t$button.on( 'click.wp-dismiss-notice', function( event ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t$el.fadeTo( 100, 0, function() {\n\t\t\t\t\t\t$el.slideUp( 100, function() {\n\t\t\t\t\t\t\t$el.addClass( 'hidden' )\n\t\t\t\t\t\t\t\t.css( {\n\t\t\t\t\t\t\t\t\t'opacity': 1,\n\t\t\t\t\t\t\t\t\t'margin-bottom': 0,\n\t\t\t\t\t\t\t\t\t'display': ''\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t.empty();\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t$el.append( $button );\n\t\t\t});\n\t\t},\n\n\t\tshowUploader : function () {\n\n\t\t\tthis.model.set( 'mode', 'uploader' );\n\t\t\tthis.render();\n\n\t\t},\n\n\t\tpermanentMessage : function ( message ) {\n\t\t\tthis.message( message, 'error', true );\n\t\t},\n\n\t\trender : function () {\n\n\t\t\tvar options = this.model.get( 'options' );\n\t\t\tvar contentContainer;\n\n\t\t\tvar mode = this.model.get( 'mode' );\n\n\t\t\t// Nuke all registered subviews\n\t\t\t_.invoke( this.subviews, 'remove' );\n\n\t\t\tif ( 'uploader' === mode ) {\n\n\t\t\t\tthis.template = wp.template( 'brightcove-uploader-container' );\n\n\t\t\t\tthis.$el.empty();\n\t\t\t\tthis.$el.html( this.template( options ) );\n\t\t\t\tthis.uploader.render();\n\t\t\t\tthis.uploader.delegateEvents();\n\t\t\t\tthis.uploader.$el.appendTo( $( '.brightcove-uploader' ) );\n\n\t\t\t} else if ( 'manager' === mode ) {\n\n\t\t\t\tthis.template = wp.template( 'brightcove-media' );\n\n\t\t\t\tthis.$el.html( this.template( options ) );\n\t\t\t\tthis.toolbar.render();\n\t\t\t\tthis.toolbar.delegateEvents();\n\t\t\t\tthis.toolbar.$el.show();\n\t\t\t\tthis.toolbar.$el.appendTo( this.$el.find( '.media-frame-router' ) );\n\n\t\t\t\t// Add the Media views to the media manager\n\t\t\t\tvar mediaCollectionView = this.model.get( 'media-collection-view' );\n\n\t\t\t\tmediaCollectionView.render();\n\t\t\t\tmediaCollectionView.delegateEvents();\n\n\t\t\t\tvar mediaCollectionContainer = this.$el.find( '.media-frame-content' );\n\n\t\t\t\tmediaCollectionContainer.on( 'scroll', this.scrollHandler );\n\t\t\t\tmediaCollectionView.$el.appendTo( mediaCollectionContainer );\n\n\t\t\t\tif ( ! ! wpbc.initialSync ) {\n\n\t\t\t\t\twpbc.broadcast.trigger( 'remove:permanentMessage' );\n\t\t\t\t\twpbc.broadcast.trigger( 'permanent:message', wpbc.preload.messages.ongoingSync );\n\n\t\t\t\t}\n\t\t\t\tif ( 'videoexperience' === this.model.get( 'mediaType' ) ) {\n\t\t\t\t\tthis.detailsView = new MediaDetailsView( {\n\t\t\t\t\t\tmodel : new MediaModel( this.model.attributes ),\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 wpbc.broadcast.trigger( 'toggle:insertButton', 'enabled' );\n\t\t\t\t\tthis.model.get( 'media-collection-view' ).$el.addClass( 'menu-visible' );\n\t\t\t\t}\n\t\t\t} else if ( 'editVideo' === mode ) {\n\n\t\t\t\tthis.toolbar.$el.hide();\n\n\t\t\t\tcontentContainer = this.$el.find( '.media-frame-content' );\n\n\t\t\t\tcontentContainer.empty();\n\t\t\t\tthis.editView.render();\n\t\t\t\tthis.editView.delegateEvents();\n\t\t\t\tthis.editView.$el.appendTo( contentContainer );\n\t\t\t\tthis.$el.find( '.brightcove.media-frame-content' ).addClass( 'edit-view' );\n\n\t\t\t} else if ( 'editPlaylist' === mode ) {\n\n\t\t\t\tthis.toolbar.$el.hide();\n\n\t\t\t\tcontentContainer = this.$el;\n\n\t\t\t\tcontentContainer.empty();\n\t\t\t\tcontentContainer.html( '' );\n\n\t\t\t\tcontentContainer = contentContainer.find( '.playlist-edit-container' );\n\n\t\t\t\tthis.editView.render();\n\t\t\t\tthis.editView.delegateEvents();\n\t\t\t\tthis.editView.$el.appendTo( contentContainer );\n\t\t\t\tcontentContainer.addClass( 'playlist' );\n\n\t\t\t} else if ( 'previewVideo' === mode ) {\n\n\t\t\t\tthis.toolbar.$el.hide();\n\n\t\t\t\tcontentContainer = this.$el.find( '.media-frame-content' );\n\n\t\t\t\tcontentContainer.empty();\n\t\t\t\tthis.previewView.render();\n\t\t\t\tthis.detailsView.render( {detailsMode : 'preview'} );\n\t\t\t\tthis.previewView.delegateEvents();\n\t\t\t\tthis.previewView.$el.appendTo( contentContainer );\n\t\t\t\tthis.$el.find( '.brightcove.media-frame-toolbar' ).hide();\n\t\t\t\tbrightcove.createExperiences();\n\n\t\t\t}\n\n\t\t\tif ( 'editPlaylist' !== mode ) {\n\t\t\t\tthis.$el.find( '.media-frame-content' ).removeClass( 'playlist' );\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t}\n);\n","var BrightcoveModalView = BrightcoveView.extend(\n\t{\n\t\ttagName : 'div',\n\t\tclassName : 'media-modal brightcove',\n\t\ttemplate : wp.template( 'brightcove-media-modal' ),\n\n\t\tevents : {\n\t\t\t'click .brightcove.media-menu-item' : 'changeTab',\n\t\t\t'click .brightcove.media-button-insert' : 'insertIntoPost',\n\t\t\t'click .media-modal-close' : 'closeModal',\n\t\t\t'click .brightcove.save-sync' : 'saveSync',\n\t\t\t'click .brightcove.button.back' : 'back'\n\t\t},\n\n\t\tinitialize : function ( options ) {\n\t\t\tthis.model = new BrightcoveModalModel( {tab : options.tab} );\n\t\t\tthis.brightcoveMediaManager = new BrightcoveMediaManagerView( this.model.getMediaManagerSettings() );\n\t\t\tthis.registerSubview( this.brightcoveMediaManager );\n\t\t\tthis.listenTo( wpbc.broadcast, 'toggle:insertButton', function ( state ) {\n\t\t\t\tthis.toggleInsertButton( state );\n\t\t\t} );\n\t\t\tthis.listenTo( wpbc.broadcast, 'close:modal', this.closeModal );\n\t\t},\n\n\t\tsaveSync : function( evnt ) {\n\t\t\t// This event is triggered when the \"Save and Sync Changes\" button is clicked from edit video screen.\n\t\t\twpbc.broadcast.trigger( 'save:media', evnt );\n\t\t},\n\n\t\tback : function( evnt ) {\n\t\t\t// This event is triggered when the \"Back\" button is clicked from edit video screen.\n\t\t\twpbc.broadcast.trigger( 'back:editvideo', evnt );\n\t\t},\n\n\t\tinsertIntoPost : function ( evnt ) {\n\t\t\tevnt.preventDefault();\n\n\t\t\t// Exit if the 'button' is disabled.\n\t\t\tif ( $( evnt.currentTarget ).hasClass( 'disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twpbc.shortcode = $( '#shortcode' ).val();\n\n\t\t\t// Media Details will trigger the insertion since it's always active and contains\n\t\t\t// the model we're inserting\n\t\t\twpbc.broadcast.trigger( 'insert:shortcode' );\n\t\t},\n\n\t\ttoggleInsertButton : function ( state ) {\n\t\t\tvar button = this.$el.find( '.brightcove.media-button-insert' ),\n\t\t\t\tprocessing = $('.attachment.highlighted' ).find( '.processing' ).length;\n\n\t\t\tbutton.show();\n\n\t\t\tif ( 1 === processing ) {\n\t\t\t\tbutton.attr( 'disabled', 'disabled' );\n\t\t\t} else if ( 'enabled' === state ) {\n\t\t\t\tbutton.removeAttr( 'disabled' );\n\t\t\t} else if ( 'disabled' === state ) {\n\t\t\t\tbutton.attr( 'disabled', 'disabled' );\n\t\t\t} else if ( undefined !== button.attr( 'disabled' ) ) {\n\t\t\t\tbutton.removeAttr( 'disabled' );\n\t\t\t} else {\n\t\t\t\tbutton.attr( 'disabled', 'disabled' );\n\t\t\t}\n\t\t},\n\n\t\tchangeTab : function ( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( $( event.target ).hasClass( 'active' ) ) {\n\t\t\t\treturn; // Clicking the already active tab\n\t\t\t}\n\t\t\t$( event.target ).addClass( 'active' );\n\t\t\tvar tab = _.without( event.target.classList, 'media-menu-item', 'brightcove' )[0];\n\t\t\tvar tabs = ['videos', 'upload', 'playlists', 'video-experience', 'playlist-experience'];\n\t\t\t_.each( _.without( tabs, tab ), function ( otherTab ) {\n\t\t\t\t$( '.brightcove.media-menu-item.' + otherTab ).removeClass( 'active' );\n\t\t\t} );\n\n\t\t\tif ( _.contains( tabs, tab ) ) {\n\t\t\t\tthis.model.set( 'tab', tab );\n\t\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t\t\twpbc.broadcast.trigger( 'tabChange', this.model.getMediaManagerSettings() );\n\t\t\t}\n\n\t\t},\n\n\t\tcloseModal : function ( evnt ) {\n\n\t\t\t// If we are in the editVideo mode, switch back to the video view.\n\t\t\tif ( 'editVideo' === wpbc.modal.brightcoveMediaManager.model.get('mode') ) {\n\t\t\t\twpbc.broadcast.trigger( 'start:gridview' );\n\t\t\t}\n\n\t\t\t// Exit if the container button is disabled.\n\t\t\tif ( ! _.isUndefined( evnt ) && $( evnt.currentTarget ).parent().hasClass( 'disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.$el.hide();\n\t\t\t$( 'body' ).removeClass( 'modal-open' );\n\t\t},\n\n\t\tmessage : function ( message ) {\n\t\t\tvar messageContainer = this.$el.find( '.brightcove-message' );\n\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\tthis.$el.html( this.template( options ) );\n\n\t\t\tthis.brightcoveMediaManager.render();\n\t\t\tthis.brightcoveMediaManager.$el.appendTo( this.$el.find( '.media-frame-content' ) );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'edit:media', function( model, mediaType ) {\n\t\t\t\tif ( 'videos' === mediaType ) {\n\t\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\t\tthis.$el.find( '.brightcove.button.save-sync' ).show();\n\t\t\t\t\tthis.$el.find( '.brightcove.button.back' ).show();\n\t\t\t\t\tthis.$el.find( '.brightcove.media-button-insert' ).hide();\n\t\t\t\t} else {\n\t\t\t\t\t// When edit playlist screen is opened, hide all the buttons.\n\t\t\t\t\tthis.$el.find( '.brightcove.button.save-sync' ).hide();\n\t\t\t\t\tthis.$el.find( '.brightcove.button.back' ).hide();\n\t\t\t\t\tthis.$el.find( '.brightcove.media-button-insert' ).hide();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'save:media back:editvideo start:gridView', function() {\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' ).show();\n\t\t\t\twpbc.broadcast.trigger( 'toggle:insertButton' );\n\t\t\t} );\n\t\t}\n\n\t}\n);\n\n","var MediaDetailsView = BrightcoveView.extend(\n\t{\n\t\ttagName : 'div',\n\t\tclassName : 'media-details',\n\n\t\tattributes : function () {\n\t\t\treturn {\n\t\t\t\t'tabIndex' : 0,\n\t\t\t\t'role' : 'checkbox',\n\t\t\t\t'aria-label' : this.model.get( 'title' ),\n\t\t\t\t'aria-checked' : false,\n\t\t\t\t'data-id' : this.model.get( 'id' )\n\t\t\t};\n\t\t},\n\n\t\tevents : {\n\t\t\t'click .brightcove.edit.button' : 'triggerEditMedia',\n\t\t\t'click .brightcove.preview.button' : 'triggerPreviewMedia',\n\t\t\t'click .brightcove.back.button' : 'triggerCancelPreviewMedia',\n\t\t\t'click .playlist-details input[name=\"embed-style\"]' : 'togglePlaylistSizing',\n 'change #aspect-ratio' : 'toggleUnits',\n 'change .experience-details input[name=\"sizing\"],.experience-details input[name=\"embed-style\"]' : 'toggleExperienceUnits',\n 'change #video-player, #autoplay, #mute, input[name=\"embed-style\"], input[name=\"sizing\"], #aspect-ratio, #width, #height' : 'generateShortcode',\n\t\t\t'change #generate-shortcode' : 'toggleShortcodeGeneration',\n\t\t},\n\n\t\ttriggerEditMedia : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\twpbc.broadcast.trigger( 'edit:media', this.model, this.mediaType );\n\t\t},\n\n\t\ttriggerPreviewMedia : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tvar shortcode = $( '#shortcode' ).val();\n\t\t\twpbc.broadcast.trigger( 'preview:media', this.model, shortcode );\n\t\t},\n\n\t\ttriggerCancelPreviewMedia : function ( event ) {\n\t\t\twpbc.broadcast.trigger( 'cancelPreview:media', this.mediaType );\n\t\t},\n\n\t\ttogglePlaylistSizing: function( event ) {\n\t\t\tvar embedStyle = $( '.playlist-details input[name=\"embed-style\"]:checked' ).val(),\n\t\t\t\t$sizing = $( '#sizing-fixed, #sizing-responsive' );\n\n\t\t\tif ( 'iframe' === embedStyle ) {\n\t\t\t\t$sizing.removeAttr( 'disabled' );\n\t\t\t} else {\n\t\t\t\t$sizing.attr( 'disabled', true );\n\t\t\t}\n\t\t},\n\n\t\ttoggleUnits: function( event ) {\n\t\t\tvar value = $( '#aspect-ratio' ).val();\n\n\t\t\tif ( 'custom' === value ) {\n\t\t\t\t$( '#height' ).removeAttr( 'readonly' );\n\t\t\t} else {\n\t\t\t\tvar $height = $( '#height' ),\n\t\t\t\t\twidth = $( '#width' ).val();\n\n\t\t\t\t$height.attr( 'readonly', true );\n\n\t\t\t\tif ( width > 0 ) {\n\t\t\t\t\tif ( '16:9' === value ) {\n\t\t\t\t\t\t$height.val( width/( 16/9 ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$height.val( width/( 4/3 ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n toggleExperienceUnits: function( event ) {\n var $sizingField=$( 'input[name=\"sizing\"]:checked' );\n var $sizing = $sizingField.val();\n var $embedStyle = $( 'input[name=\"embed-style\"]:checked' ).val();\n var $height = $( '#height' );\n var $width = $( '#width' );\n var $inputSizing = $( 'input[name=\"sizing\"]' );\n var $sizingDiv = $('.embed-sizing-div');\n\n $height.removeAttr('readonly');\n $width.removeAttr('readonly');\n $sizingField.show();\n $sizingDiv.show();\n\n if ( 'responsive' === $sizing && 'javascript' === $embedStyle ) {\n $height.attr('readonly', true);\n }\n else if ( 'fixed' === $sizing && 'javascript' === $embedStyle ) {\n $height.removeAttr('readonly');\n $width.removeAttr('readonly');\n }\n else {\n \t$inputSizing.attr('checked',false);\n $('#sizing-fixed').attr('checked', true);\n $sizingDiv.hide();\n }\n\n },\n\n\t\tgenerateShortcode: function () {\n\t\t\tswitch (this.mediaType){\n\t\t\t\tcase 'videos':\n\t\t\t\t\tthis.generateVideoShortcode();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'videoexperience':\n\t\t\t\t\tthis.generateExperienceShortcode();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'playlistexperience':\n\t\t\t\t\tthis.generatePlaylistExperienceShortcode();\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.generatePlaylistShortcode();\n\t\t\t}\n\t\t},\n\n\t\tgenerateVideoShortcode: function () {\n\t\t\tvar videoId = this.model.get( 'id' ).replace( /\\D/g, '' ),\n\t\t\t\taccountId = this.model.get( 'account_id' ).replace( /\\D/g, '' ),\n\t\t\t\tplayerId = $( '#video-player' ).val(),\n\t\t\t\tautoplay = ( $( '#autoplay' ).is( ':checked' ) ) ? 'autoplay': '',\n\t\t\t\tmute = ( $( '#mute' ).is( ':checked' ) ) ? 'muted': '',\n\t\t\t\tembedStyle = $( 'input[name=\"embed-style\"]:checked' ).val(),\n\t\t\t\tsizing = $( 'input[name=\"sizing\"]:checked' ).val(),\n\t\t\t\taspectRatio = $( '#aspect-ratio' ).val(),\n\t\t\t\tpaddingTop = '',\n\t\t\t\twidth = $( '#width' ).val(),\n\t\t\t\theight = $( '#height' ).val(),\n\t\t\t\tunits = 'px',\n\t\t\t\tminWidth = '0px',\n\t\t\t\tmaxWidth = width + units,\n\t\t\t\tshortcode;\n\n\t\t\tif ( '16:9' === aspectRatio ) {\n\t\t\t\tpaddingTop = '56';\n\t\t\t} else if ( '4:3' === aspectRatio ) {\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 ( 'responsive' === sizing ) {\n\t\t\t\twidth = '100%';\n\t\t\t\theight = '100%';\n\t\t\t} else {\n\t\t\t\twidth = width + units;\n\t\t\t\theight = height + units;\n\n\t\t\t\tif ( 'iframe' === embedStyle ) {\n\t\t\t\t\tminWidth = width;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tshortcode = '[bc_video video_id=\"' + videoId + '\" account_id=\"' + accountId + '\" player_id=\"' + playerId + '\" ' +\n\t\t\t\t'embed=\"' + embedStyle + '\" padding_top=\"' + paddingTop + '%\" autoplay=\"' + autoplay + '\" ' +\n\t\t\t\t'min_width=\"' + minWidth + '\" max_width=\"' + maxWidth + '\" ' +\n\t\t\t\t'mute=\"' + mute + '\" width=\"' + width + '\" height=\"' + height + '\"' +\n\t\t\t\t']';\n\n\t\t\t$( '#shortcode' ).val( shortcode );\n\t\t},\n\t\tgenerateExperienceShortcode: function () {\n\t\t\tvar videoIds, accountId;\n\t\t\tif ( 'undefined' !== typeof this.model.get( 'id' ) ) {\n this.model.set( 'account_id', this.model.get( 'account' ) );\n videoIds = this.model.get( 'id' ).join( ',' );\n accountId = this.model.get( 'account_id' ).replace( /\\D/g, '' );\n\t\t\t} else {\n videoIds = '';\n accountId = document.getElementById( 'brightcove-media-source' ).value;\n\t\t\t}\n\n\t\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\n\t\t\tif ( 'responsive' === sizing ) {\n\t\t\t\twidth = '100%';\n\t\t\t\theight = '100%';\n\t\t\t} else {\n\t\t\t\twidth = width + units;\n\t\t\t\theight = height + units;\n\n\t\t\tif ( 'iframe' === embedStyle ) {\n\t\t\t\tminWidth = width;\n\t\t\t}\n\t\t}\n\n\t\tshortcode = '[bc_experience experience_id=\"' + experienceId + '\" account_id=\"' + accountId + '\" ' +\n\t\t'embed=\"' + embedStyle + '\" min_width=\"' + minWidth + '\" max_width=\"' + maxWidth + '\" ' +\n\t\t'width=\"' + width + '\" height=\"' + height + '\" ' +\n\t\t'video_ids=\"' + videoIds + '\" ' +\n\t\t']';\n\n\t\t$( '#shortcode' ).val( shortcode );\n\t\t},\n\n\n\t\tgeneratePlaylistShortcode: function () {\n\t\t var playlistId = this.model.get( 'id' ).replace( /\\D/g, '' ),\n\t\t\t\taccountId = this.model.get( 'account_id' ).replace( /\\D/g, '' ),\n\t\t\t\tplayerId = $( '#video-player' ).val(),\n\t\t\t\tautoplay = ( $( '#autoplay' ).is( ':checked' ) ) ? 'autoplay': '',\n\t\t\t\tmute = ( $( '#mute' ).is( ':checked' ) ) ? 'muted': '',\n\t\t\t\tembedStyle = $( 'input[name=\"embed-style\"]:checked' ).val(),\n\t\t\t\tsizing = $( 'input[name=\"sizing\"]:checked' ).val(),\n\t\t\t\taspectRatio = $( '#aspect-ratio' ).val(),\n\t\t\t\tpaddingTop = '',\n\t\t\t\twidth = $( '#width' ).val(),\n\t\t\t\theight = $( '#height' ).val(),\n\t\t\t units = 'px',\n\t\t\t minWidth = '0px;',\n\t\t\t maxWidth = width + units,\n\t\t\t\tshortcode;\n\n\t\t if ( 'in-page-vertical' === embedStyle ) {\n\t\t\t shortcode = '[bc_playlist playlist_id=\"' + playlistId + '\" account_id=\"' + accountId + '\" player_id=\"' + playerId + '\" ' +\n\t\t\t\t 'embed=\"in-page-vertical\" autoplay=\"' + autoplay + '\" mute=\"' + mute + '\" ' +\n\t\t\t\t 'min_width=\"\" max_width=\"\" padding_top=\"\" ' +\n\t\t\t\t 'width=\"' + width + units + '\" height=\"' + height + units + '\"' +\n\t\t\t\t ']';\n\t\t } else if ( 'in-page-horizontal' === embedStyle ) {\n\t\t\t shortcode = '[bc_playlist playlist_id=\"' + playlistId + '\" account_id=\"' + accountId + '\" player_id=\"' + playerId + '\" ' +\n\t\t\t\t 'embed=\"in-page-horizontal\" autoplay=\"' + autoplay + '\" mute=\"' + mute + '\" ' +\n\t\t\t\t 'min_width=\"\" max_width=\"\" padding_top=\"\" ' +\n\t\t\t\t 'width=\"' + width + units + '\" height=\"' + height + units + '\"' +\n\t\t\t\t ']';\n\t\t } else if ( 'iframe' === embedStyle ) {\n\t\t\t if ( '16:9' === aspectRatio ) {\n\t\t\t\t paddingTop = '56';\n\t\t\t } else if ( '4:3' === aspectRatio ) {\n\t\t\t\t paddingTop = '75';\n\t\t\t } else {\n\t\t\t\t paddingTop = ( ( height / width ) * 100 );\n\t\t\t }\n\n\t\t\t if ( 'responsive' === sizing ) {\n\t\t\t\t width = '100%';\n\t\t\t\t height = '100%';\n\t\t\t } else {\n\t\t\t \twidth = width + units;\n\t\t\t \theight = height + units;\n\n\t\t\t\t\tminWidth = width;\n\t\t\t }\n\n\t\t\t shortcode = '[bc_playlist playlist_id=\"' + playlistId + '\" account_id=\"' + accountId + '\" player_id=\"' + playerId + '\" ' +\n\t\t\t\t 'embed=\"iframe\" autoplay=\"' + autoplay + '\" mute=\"' + mute + '\" ' +\n\t\t\t\t 'min_width=\"' + minWidth + '\" max_width=\"' + maxWidth + '\" padding_top=\"' + paddingTop + '%\" ' +\n\t\t\t\t 'width=\"' + width + '\" height=\"' + height + '\"' +\n\t\t\t\t ']';\n\t\t }\n\n\t\t $( '#shortcode' ).val( shortcode );\n },\n\t\tgeneratePlaylistExperienceShortcode:function () {\n var playlistId = this.model.get( 'id' ).replace( /\\D/g, '' ),\n accountId = this.model.get( 'account_id' ).replace( /\\D/g, '' ),\n experienceId = $( '#video-player' ).val(),\n embedStyle = $( 'input[name=\"embed-style\"]:checked' ).val(),\n sizing = $( 'input[name=\"sizing\"]:checked' ).val(),\n width = $( '#width' ).val(),\n height = $( '#height' ).val(),\n units = 'px',\n minWidth = '0px',\n maxWidth = width + units,\n shortcode;\n\n\n if ( 'responsive' === sizing ) {\n width = '100%';\n height = '100%';\n } else {\n width = width + units;\n height = height + units;\n\n if ( 'iframe' === embedStyle ) {\n minWidth = width;\n }\n }\n\n shortcode = '[bc_experience experience_id=\"' + experienceId + '\" account_id=\"' + accountId + '\" ' +\n 'embed=\"' + embedStyle + '\" min_width=\"' + minWidth + '\" max_width=\"' + maxWidth + '\" ' +\n 'width=\"' + width + '\" height=\"' + height + '\" ' +\n 'playlist_id=\"' + playlistId + '\" ' +\n ']';\n\n $( '#shortcode' ).val( shortcode );\n },\n\n\t\ttoggleShortcodeGeneration: function () {\n\t\t var method = $( '#generate-shortcode' ).val(),\n $fields = $( '#video-player, #autoplay, input[name=\"embed-style\"], input[name=\"sizing\"], #aspect-ratio, #width, #height, #units' );\n\n\t\t if ( 'manual' === method ) {\n\t\t \t$( '#shortcode' ).removeAttr( 'readonly' );\n $fields.attr( 'disabled', true );\n\t\t\t} else {\n $( '#shortcode' ).attr( 'readonly', true );\n $fields.removeAttr( 'disabled' );\n\t\t\t}\n },\n\n\t\tinitialize : function ( options ) {\n\t\t\toptions = options || {};\n\t\t\tthis.type = options.type ? options.type : 'grid';\n\t\t\tthis.mediaType = options.mediaType;\n\t\t\tthis.listenTo( wpbc.broadcast, 'insert:shortcode', this.insertShortcode );\n\t\t\tthis.listenTo( this.model, 'change', this.render );\n\t\t},\n\n\t\t/**\n\t\t * @returns {wp.media.view.Media} Returns itself to allow chaining\n\t\t */\n\t\trender : function ( options ) {\n\t\t\toptions = _.extend( {}, options, this.model.toJSON() );\n\t\t\toptions.duration = this.model.getReadableDuration();\n\t\t\toptions.updated_at_readable = this.model.getReadableDate( 'updated_at' );\n\t\t\toptions.created_at_readable = this.model.getReadableDate( 'created_at' );\n\t\t\toptions.account_name = this.model.getAccountName();\n\n\t\t\tthis.template = wp.template( 'brightcove-media-item-details-' + this.mediaType );\n\n\t\t\tthis.$el.html( this.template( options ) );\n\n\t\t\tthis.delegateEvents();\n\t\t\tthis.generateShortcode();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/* Prevent this.remove() from removing the container element for the details view */\n\t\tremove : function () {\n\t\t\tthis.undelegateEvents();\n\t\t\tthis.$el.empty();\n\t\t\tthis.stopListening();\n\t\t\treturn this;\n\t\t}\n\t}\n);\n\n","var MediaView = BrightcoveView.extend(\n\t{\n\t\ttagName : 'li',\n\t\tclassName : 'attachment brightcove',\n\n\t\tattributes : function () {\n\t\t\treturn {\n\t\t\t\t'tabIndex' : 0,\n\t\t\t\t'role' : 'checkbox',\n\t\t\t\t'aria-label' : this.model.get( 'title' ),\n\t\t\t\t'aria-checked' : false,\n\t\t\t\t'data-id' : this.model.get( 'id' )\n\t\t\t};\n\t\t},\n\n\t\tevents : {\n\t\t\t'click .attachment-preview' : 'toggleDetailView',\n\t\t\t'click .video-move-up' : 'videoMoveUp',\n\t\t\t'click .video-move-down' : 'videoMoveDown',\n\t\t\t'click .trash' : 'removeVideoFromPlaylist',\n\t\t\t'click .add-to-playlist' : 'videoAdd',\n\t\t\t'click .edit' : 'triggerEditMedia',\n\t\t\t'click .preview' : 'triggerPreviewMedia'\n\t\t},\n\n\t\ttriggerEditMedia : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\twpbc.broadcast.trigger( 'edit:media', this.model );\n\t\t},\n\n\t\ttriggerPreviewMedia : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\twpbc.broadcast.trigger( 'preview:media', this.model );\n\t\t},\n\n\t\tbuttons : {},\n\n\t\tinitialize : function ( options ) {\n\t\t\toptions = options || {};\n\t\t\tthis.type = options.type ? options.type : 'grid';\n\n\t\t\t// We only care when a change occurs\n\t\t\tthis.listenTo( this.model, 'change:view', function ( model, type ) {\n\t\t\t\tif ( this.type !== type ) {\n\t\t\t\t\tthis.type = type;\n\t\t\t\t\tthis.render();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.render();\n\t\t},\n\n\t\trender : function () {\n\t\t\tvar options = this.model.toJSON();\n\t\t\toptions.duration = this.model.getReadableDuration();\n\t\t\toptions.updated_at_readable = this.model.getReadableDate( 'updated_at' );\n\t\t\toptions.account_name = this.model.getAccountName();\n\n\t\t\tif ( 'existingPlaylists' === options.viewType ) {\n\t\t\t\tthis.template = wp.template( 'brightcove-playlist-edit-video-in-playlist' );\n\t\t\t} else if ( 'libraryPlaylists' === options.viewType ) {\n\t\t\t\tthis.template = wp.template( 'brightcove-playlist-edit-video-in-library' );\n\t\t\t} else {\n\t\t\t\tthis.template = wp.template( 'brightcove-media-item-' + this.type );\n\t\t\t}\n\n\t\t\toptions.buttons = this.buttons;\n\n\t\t\tthis.$el.html( this.template( options ) );\n\n\t\t\tthis.$el.toggleClass( 'uploading', options.uploading );\n\n\t\t\treturn this;\n\t\t},\n\n\t\ttoggleDetailView : function () {\n\t\t\twpbc.broadcast.trigger( 'select:media', this );\n\t\t},\n\n\t\tvideoMoveUp : function () {\n\t\t\twpbc.broadcast.trigger( 'playlist:moveUp', this );\n\t\t},\n\n\t\tvideoMoveDown : function () {\n\t\t\twpbc.broadcast.trigger( 'playlist:moveDown', this );\n\t\t},\n\n\t\tvideoAdd : function () {\n\t\t\twpbc.broadcast.trigger( 'playlist:add', this );\n\t\t},\n\n\t\tremoveVideoFromPlaylist : function () {\n\t\t\twpbc.broadcast.trigger( 'playlist:remove', this );\n\t\t}\n\t}\n);\n","var PlaylistEditView = BrightcoveView.extend(\n\t{\n\t\ttagName : 'div',\n\t\tclassName : 'playlist-edit brightcove attachment-details',\n\t\ttemplate : wp.template( 'brightcove-playlist-edit' ),\n\n\t\tevents : {\n\t\t\t'click .brightcove.button.save-sync' : 'saveSync',\n\t\t\t'click .brightcove.playlist-back' : 'back',\n\t\t\t'change .brightcove-name' : 'updatedName'\n\t\t},\n\n\t\tdeleteVideo : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.model.set( 'mediaType', 'videos' );\n\t\t\tthis.model.destroy();\n\t\t},\n\n\t\tupdatedName : function ( event ) {\n\t\t\tvar name = this.model.get( 'name' );\n\t\t\tif ( name !== event.target.value ) {\n\t\t\t\tthis.model.set( 'name', event.target.value );\n\t\t\t\tthis.model.save();\n\t\t\t}\n\t\t},\n\n\t\tback : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\twpbc.broadcast.trigger( 'start:gridview' );\n\n\t\t},\n\n\t\tsaveSync : function ( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.model.set( 'name', this.$el.find( '.brightcove-name' ).val() );\n\t\t\tthis.model.set( 'description', this.$el.find( '.brightcove-description' ).val() );\n\t\t\tthis.model.set( 'long_description', this.$el.find( '.brightcove-long-description' ).val() );\n\t\t\tthis.model.set( 'tags', this.$el.find( '.brightcove-tags' ).val() );\n\t\t\tthis.model.set( 'mediaType', 'videos' );\n\t\t\tthis.model.save();\n\t\t},\n\n\t\tinitialize : function () {\n\t\t\tthis.listenTo( wpbc.broadcast, 'tabChange', function () {\n\t\t\t\t_.invoke( this.subviews, 'remove' );\n\t\t\t} );\n\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\toptions = this.model.toJSON();\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t\tthis.spinner = this.$el.find( '.spinner' );\n\n\t\t\tif ( options.video_ids ) {\n\t\t\t\tthis.killPendingRequests();\n\n\t\t\t\tthis.playlistVideosView = new MediaCollectionView( {\n\t\t\t\t\tel : this.$el.find( '.existing-videos' ),\n\t\t\t\t\tvideoIds : options.video_ids,\n\t\t\t\t\tactiveAccount : this.model.get( 'account_id' ),\n\t\t\t\t\tmediaCollectionViewType : 'existingPlaylists',\n\t\t\t\t\tmediaType : 'playlists'\n\t\t\t\t} );\n\n\t\t\t\tthis.libraryVideosView = new MediaCollectionView( {\n\t\t\t\t\tel : this.$el.find( '.library-videos' ),\n\t\t\t\t\texcludeVideoIds : options.video_ids,\n\t\t\t\t\tactiveAccount : this.model.get( 'account_id' ),\n\t\t\t\t\tmediaCollectionViewType : 'libraryPlaylists',\n\t\t\t\t\tmediaType : 'playlists'\n\t\t\t\t} );\n\n\t\t\t\tthis.registerSubview( this.playlistVideosView );\n\t\t\t\tthis.registerSubview( this.libraryVideosView );\n\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:changed', _.throttle( this.playlistChanged, 300 ) );\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'insert:shortcode', this.insertShortcode );\n\t\t\t}\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:on', function () {\n\t\t\t\tthis.spinner.addClass( 'is-active' ).removeClass( 'hidden' );\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:off', function () {\n\t\t\t\tthis.spinner.removeClass( 'is-active' ).addClass( 'hidden' );\n\t\t\t} );\n\t\t},\n\n\t\tplaylistChanged : function ( videoIds ) {\n\t\t\tthis.killPendingRequests();\n\t\t\tthis.model.set( 'video_ids', videoIds );\n\t\t\tthis.model.save();\n\t\t},\n\n\t\tkillPendingRequests : function () {\n\t\t\t// Kill all pending requests\n\t\t\t_.each( wpbc.requests, function ( request ) {\n\t\t\t\trequest.abort();\n\t\t\t} );\n\n\t\t\twpbc.requests = [];\n\t\t}\n\t}\n);\n","var UploadDetailsView = BrightcoveView.extend(\n\t{\n\t\tclassName : 'brightcove-pending-upload-details attachment-details',\n\t\ttagName : 'div',\n\t\ttemplate : wp.template( 'brightcove-pending-upload-details' ),\n\n\t\tevents : {\n\t\t\t'keyup .brightcove-name' : 'nameChanged',\n\t\t\t'keyup .brightcove-tags' : 'tagsChanged',\n\t\t\t'change .brightcove-media-source' : 'accountChanged'\n\t\t},\n\n\t\tinitialize : function ( options ) {\n\t\t\tthis.listenTo( wpbc.broadcast, 'pendingUpload:hideDetails', this.hide );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:fileUploaded', function ( file ) {\n\t\t\t\tif ( file.id === this.model.get( 'id' ) ) {\n\t\t\t\t\tthis.model.set( 'uploaded', true );\n\t\t\t\t\tthis.render();\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.model.set( 'ingestSuccess', true );\n\t\t\tthis.model.set( 'uploadSuccess', true );\n\t\t},\n\n\t\tnameChanged : function ( event ) {\n\t\t\tthis.model.set( 'fileName', event.target.value );\n\t\t},\n\n\t\ttagsChanged : function ( event ) {\n\t\t\tthis.model.set( 'tags', event.target.value );\n\t\t},\n\n\t\taccountChanged : function ( event ) {\n\t\t\tthis.model.set( 'account', event.target.value );\n\t\t},\n\n\t\thide : function () {\n\t\t\tthis.$el.hide();\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\toptions = options || {};\n\t\t\toptions.fileName = this.model.get( 'fileName' );\n\t\t\toptions.tags = this.model.get( 'tags' );\n\t\t\toptions.size = this.model.humanReadableSize();\n\t\t\toptions.accounts = this.model.get( 'accounts' );\n\t\t\toptions.account = this.model.get( 'account' );\n\t\t\toptions.uploaded = this.model.get( 'uploaded' );\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t}\n\n\t}\n);\n","UploadWindowView = BrightcoveView.extend(\n\t{\n\t\tclassName : 'uploader-window',\n\t\ttemplate : wp.template( 'brightcove-uploader-window' ),\n\n\t\tinitialize : function ( options ) {\n\t\t\t_.bindAll( this, 'uploaderFilesAdded' );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:queuedFilesAdded', this.hide );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:startUpload', this.uploaderStartUpload );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:clear', this.resetUploads );\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t\t_.defer( _.bind( this.afterRender, this ) );\n\t\t},\n\n\t\tresetUploads : function () {\n\t\t\tif ( this.uploader && this.uploader.files ) {\n\t\t\t\tthis.uploader.files = []; // Reset pending uploads\n\t\t\t}\n\t\t},\n\n\t\tafterRender : function () {\n\t\t\tthis.uploader = new plupload.Uploader( _.defaults( this.options, wpbc.preload.plupload ) );\n\n\t\t\t// Uploader has neither .on nor .listenTo\n\t\t\tthis.uploader.added = this.uploaderFilesAdded;\n\t\t\tthis.uploader.progress = this.uploaderUploadProgress;\n\t\t\tthis.uploader.bind( 'FilesAdded', this.uploaderFilesAdded );\n\t\t\tthis.uploader.bind( 'UploadProgress', this.uploaderUploadProgress );\n\t\t\tthis.uploader.bind( 'BeforeUpload', this.uploaderBeforeUpload );\n\t\t\tthis.uploader.bind( 'FileUploaded', this.uploaderFileUploaded );\n\n\t\t\tthis.uploader.bind( 'init', this.uploaderAfterInit );\n\n\t\t\tthis.uploader.init();\n\t\t\t$( 'html' ).on( 'dragenter', _.bind( this.show, this ) );\n\t\t\t/* the following dropzone function code is taken from the wp.Uploader code */\n\t\t\tvar drop_element = wpbc.preload.plupload.drop_element.replace( /[^a-zA-Z0-9-]+/g, '' );\n\t\t\tvar dropzone = $( '#' + drop_element );\n\t\t\tdropzone.on( 'dropzone:leave', _.bind( this.hide, this ) );\n\t\t},\n\n\t\tuploaderAfterInit : function ( uploader ) {\n\t\t\tvar drop_element = wpbc.preload.plupload.drop_element.replace( /[^a-zA-Z0-9-]+/g, '' );\n\t\t\tvar timer, active, dragdrop,\n\t\t\t dropzone = $( '#' + drop_element );\n\n\t\t\tdragdrop = uploader.features.dragdrop;\n\n\t\t\t// Generate drag/drop helper classes.\n\t\t\tif ( ! dropzone ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdropzone.toggleClass( 'supports-drag-drop', ! ! dragdrop );\n\n\t\t\tif ( ! dragdrop ) {\n\t\t\t\treturn dropzone.unbind( '.wp-uploader' );\n\t\t\t}\n\n\t\t\t// 'dragenter' doesn't fire correctly, simulate it with a limited 'dragover'.\n\t\t\tdropzone.bind( 'dragover.wp-uploader', function () {\n\t\t\t\tif ( timer ) {\n\t\t\t\t\tclearTimeout( timer );\n\t\t\t\t}\n\n\t\t\t\tif ( active ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tdropzone.trigger( 'dropzone:enter' ).addClass( 'drag-over' );\n\t\t\t\tactive = true;\n\t\t\t} );\n\n\t\t\tdropzone.bind( 'dragleave.wp-uploader, drop.wp-uploader', function () {\n\t\t\t\t// Using an instant timer prevents the drag-over class from\n\t\t\t\t// being quickly removed and re-added when elements inside the\n\t\t\t\t// dropzone are repositioned.\n\t\t\t\t//\n\t\t\t\t// @see https://core.trac.wordpress.org/ticket/21705\n\t\t\t\ttimer = setTimeout( function () {\n\t\t\t\t\tactive = false;\n\t\t\t\t\tdropzone.trigger( 'dropzone:leave' ).removeClass( 'drag-over' );\n\t\t\t\t}, 0 );\n\t\t\t} );\n\t\t},\n\n\t\tshow : function () {\n\t\t\tvar $el = this.$el.show();\n\n\t\t\t// Ensure that the animation is triggered by waiting until\n\t\t\t// the transparent element is painted into the DOM.\n\t\t\t_.defer( function () {\n\t\t\t\t$el.css( {opacity : 1} );\n\t\t\t} );\n\t\t},\n\n\t\thide : function () {\n\t\t\tvar $el = this.$el.css( {opacity : 0} );\n\n\t\t\twp.media.transition( $el ).done( function () {\n\t\t\t\t// Transition end events are subject to race conditions.\n\t\t\t\t// Make sure that the value is set as intended.\n\t\t\t\tif ( '0' === $el.css( 'opacity' ) ) {\n\t\t\t\t\t$el.hide();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// https://core.trac.wordpress.org/ticket/27341\n\t\t\t_.delay( function () {\n\t\t\t\tif ( '0' === $el.css( 'opacity' ) && $el.is( ':visible' ) ) {\n\t\t\t\t\t$el.hide();\n\t\t\t\t}\n\t\t\t}, 500 );\n\t\t},\n\n\t\tuploaderFilesAdded : function ( uploader, queuedFiles ) {\n\t\t\twpbc.broadcast.trigger( 'uploader:queuedFilesAdded', queuedFiles );\n\t\t},\n\n\t\tuploaderStartUpload : function () {\n\t\t\tthis.uploader.start();\n\t\t},\n\n\t\tuploaderUploadProgress : function ( up, file ) {\n\t\t\twpbc.broadcast.trigger( 'uploader:uploadProgress', file );\n\t\t},\n\n\t\tuploaderBeforeUpload : function ( up, file ) {\n\t\t\tup.settings.multipart_params = _.defaults(\n\t\t\t\twpbc.uploads[file.id],\n\t\t\t\twpbc.preload.plupload.multipart_params,\n\t\t\t\t{nonce : wpbc.preload.nonce}\n\t\t\t);\n\t\t},\n\n\t\tuploaderFileUploaded : function ( up, file, response ) {\n\t\t\tvar status = JSON.parse( response.response );\n\t\t\twpbc.broadcast.trigger( 'uploader:fileUploaded', file );\n\t\t\tif ( status.data.upload === 'success' && status.data.ingest === 'success' ) {\n\t\t\t\tif ( status.data.videoDetails ) {\n\t\t\t\t\t// Add newly uploaded file to preload list.\n\t\t\t\t\twpbc.broadcast.trigger( 'uploader:uploadedFileDetails', status.data.videoDetails );\n\t\t\t\t}\n\t\t\t\twpbc.broadcast.trigger( 'uploader:successfulUploadIngest', file );\n\t\t\t} else {\n\t\t\t\tfile.percent = 0;\n\t\t\t\tfile.status = plupload.UPLOADING;\n\t\t\t\tup.state = plupload.STARTED;\n\t\t\t\tup.trigger( 'StateChanged' );\n\t\t\t\twpbc.broadcast.trigger( 'uploader:failedUploadIngest', file );\n\t\t\t}\n\t\t}\n\t}\n);\n","var UploadView = BrightcoveView.extend(\n\t{\n\t\tclassName : 'brightcove-pending-upload',\n\t\ttagName : 'tr',\n\t\ttemplate : wp.template( 'brightcove-pending-upload' ),\n\n\t\tevents : {\n\t\t\t'click' : 'toggleRow'\n\t\t},\n\n\t\tinitialize : function () {\n\t\t\tthis.listenTo( wpbc.broadcast, 'pendingUpload:selectedRow', this.otherToggledRow );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:uploadProgress', this.uploadProgress );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:getParams', this.getParams );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:successfulUploadIngest', this.successfulUploadIngest );\n\t\t\tthis.listenTo( wpbc.broadcast, 'uploader:failedUploadIngest', this.failedUploadIngest );\n\n\t\t\tvar options = {\n\t\t\t\t'fileName' : this.model.get( 'name' ),\n\t\t\t\t'tags' : '',\n\t\t\t\t'accounts' : wpbc.preload.accounts, // All accounts.\n\t\t\t\t'account' : wpbc.preload.defaultAccount,\n\t\t\t\t'ingestSuccess' : false,\n\t\t\t\t'uploadSuccess' : false,\n\t\t\t\t'uploaded' : false\n\t\t\t};\n\n\t\t\tthis.model.set( options );\n\n\t\t\tthis.listenTo( this.model, 'change:fileName', this.render );\n\t\t\tthis.listenTo( this.model, 'change:account', this.render );\n\t\t},\n\n\t\trender : function ( options ) {\n\t\t\toptions = options || {};\n\t\t\toptions.fileName = this.model.get( 'fileName' );\n\t\t\toptions.size = this.model.humanReadableSize();\n\t\t\tvar sourceHash = this.model.get( 'account' );\n\t\t\toptions.accountName = wpbc.preload.accounts[sourceHash].account_name;\n\t\t\toptions.percent = this.model.get( 'percent' );\n\t\t\toptions.activeUpload = this.model.get( 'activeUpload' );\n\t\t\toptions.ingestSuccess = this.model.get( 'ingestSuccess' );\n\t\t\toptions.uploadSuccess = this.model.get( 'uploadSuccess' );\n\n\t\t\tthis.$el.html( this.template( options ) );\n\t\t\tif ( this.model.get( 'selected' ) ) {\n\t\t\t\tthis.$el.addClass( 'selected' );\n\t\t\t}\n\t\t\tif ( this.model.get( 'ingestSuccess' ) ) {\n\t\t\t\tthis.$el.addClass( 'ingest-success' );\n\t\t\t}\n\t\t\tif ( this.model.get( 'uploadSuccess' ) ) {\n\t\t\t\tthis.$el.addClass( 'upload-success' );\n\t\t\t}\n\t\t},\n\n\t\tgetParams : function ( fileId ) {\n\t\t\twpbc.broadcast.trigger( 'uploader:params', \"abcde\" );\n\t\t},\n\n\t\tfailedUploadIngest : function ( file ) {\n\t\t\t// Make sure we're acting on the right file.\n\t\t\tif ( file.id === this.model.get( 'id' ) ) {\n\t\t\t\twpbc.broadcast.trigger( 'uploader:errorMessage', wpbc.preload.messages.unableToUpload.replace( '%%s%%', this.model.get( 'fileName' ) ) );\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t},\n\n\t\tsuccessfulUploadIngest : function ( file ) {\n\t\t\t// Make sure we're acting on the right file.\n\t\t\tif ( file.id === this.model.get( 'id' ) ) {\n\t\t\t\twpbc.broadcast.trigger( 'uploader:successMessage', wpbc.preload.messages.successUpload.replace( '%%s%%', this.model.get( 'fileName' ) ) );\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Render if we're the active upload.\n\t\t * Re-render if we thought we were but we no longer are.\n\t\t * @param file Fired from UploadProgress on plUpload\n\t\t */\n\t\tuploadProgress : function ( file ) {\n\t\t\t// Make sure we're acting on the right file.\n\t\t\tif ( file.id === this.model.get( 'id' ) ) {\n\t\t\t\tthis.model.set( 'activeUpload', true );\n\t\t\t\tthis.model.set( 'percent', file.percent );\n\t\t\t\tthis.render();\n\t\t\t} else {\n\t\t\t\tif ( this.model.get( 'activeUpload' ) ) {\n\t\t\t\t\tthis.model.unset( 'activeUpload' );\n\t\t\t\t\tthis.render();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\ttoggleRow : function ( event ) {\n\t\t\tthis.$el.toggleClass( 'selected' );\n\t\t\tif ( this.$el.hasClass( 'selected' ) ) {\n\t\t\t\tthis.model.set( 'selected', true );\n\t\t\t\twpbc.broadcast.trigger( 'pendingUpload:selectedRow', this.cid );\n\t\t\t} else {\n\t\t\t\twpbc.broadcast.trigger( 'pendingUpload:hideDetails', this.cid );\n\t\t\t}\n\t\t},\n\n\t\totherToggledRow : function ( cid ) {\n\t\t\t// Ignore broadcast from self\n\t\t\tif ( cid !== this.cid ) {\n\t\t\t\tthis.$el.removeClass( 'selected' );\n\t\t\t\tthis.model.unset( 'selected' );\n\t\t\t} else {\n\t\t\t\twpbc.broadcast.trigger( 'pendingUpload:selectedItem', this.model );\n\t\t\t}\n\t\t}\n\t}\n);\n","var VideoEditView = BrightcoveView.extend(\n\t{\n\t\ttagName : 'div',\n\t\tclassName : 'video-edit brightcove attachment-details',\n\t\ttemplate : wp.template( 'brightcove-video-edit' ),\n\n\t\tevents : {\n\t\t\t'click .brightcove.button.save-sync' : 'saveSync',\n\t\t\t'click .brightcove.delete' : 'deleteVideo',\n\t\t\t'click .brightcove.button.back' : 'back',\n\t\t\t'click .setting .button' : 'openMediaManager',\n\t\t\t'click .attachment .check' : 'removeAttachment',\n\t\t\t'click .caption-secondary-fields .delete' : 'removeCaptionRow',\n\t\t\t'click .add-remote-caption' : 'addCaptionRow'\n\t\t},\n\n\t\tback : function ( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\t// Exit if the 'button' is disabled.\n\t\t\tif ( $( event.currentTarget ).hasClass( 'disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\twpbc.broadcast.trigger( 'start:gridview' );\n\t\t},\n\n\t\tdeleteVideo : function () {\n\t\t\tif ( confirm( wpbc.preload.messages.confirmDelete ) ) {\n\t\t\t\twpbc.broadcast.trigger( 'spinner:on' );\n\t\t\t\tthis.model.set( 'mediaType', 'videos' );\n\t\t\t\tthis.model.destroy();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Allow the user to attach a video still or thumbnail.\n\t\t *\n\t\t * @param {Event} evnt\n\t\t */\n\t\topenMediaManager: function ( evnt ) {\n\t\t\tevnt.preventDefault();\n\n\t\t\tvar elem = $( evnt.currentTarget ).parents( '.setting' ),\n\t\t\t\teditor = elem.data('editor'),\n\t\t\t\tmediaManager = wp.media.frames.brightcove = wp.media(),\n\t\t\t\tthat = this,\n\t\t\t\toptions = {\n\t\t\t\t\tstate: 'insert',\n\t\t\t\t\ttitle: wp.media.view.l10n.addMedia,\n\t\t\t\t\tmultiple: false\n\t\t\t\t};\n\n\t\t\t// Open the media manager\n\t\t\tmediaManager.open( editor, options );\n\n\t\t\t// Listen for selection of media\n\t\t\tmediaManager.on( 'select', function() {\n\t\t\t\tvar media = mediaManager.state().get( 'selection' ).first().toJSON(),\n\t\t\t\t\tfield = $( evnt ).parents( '.setting' );\n\n\t\t\t\t// Set the selected attachment to the correct field\n\t\t\t\tthat.setAttachment( media, field );\n\n\t\t\t\t// Make this action available to other areas of the application\n\t\t\t\twpbc.broadcast.trigger( 'media:selected' );\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Set the hidden input to the ID of the selected attachment.\n\t\t *\n\t\t * @param {Object} media\n\t\t * @param {String} field\n\t\t * @returns {boolean}\n\t\t */\n\t\tsetAttachment: function( media, field ) {\n\t\t\tvar field = field.prevObject[0].currentTarget,\n\t\t\t\tfield = $( field ).prev( 'input' ),\n\t\t\t\tattachment = field.parents( '.attachment' ),\n\t\t\t\tpreview = attachment.find( '.-image' );\n\n\t\t\t// Perform different setup actions based on the type of upload\n\t\t\tif ( attachment.context.className.indexOf( 'captions' ) > -1 ) {\n\t\t\t\t// Executed if the user is uploading a closed caption\n\t\t\t\tif ( 'vtt' === media.subtype ) {\n\t\t\t\t\tthis.addCaptionRow( false, media );\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' ).first().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\t} );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Executed if the user is uploading a poster image or thumbnail\n\t\t\t\tvar selectedMedia = {\n\t\t\t\t\turl: media.sizes.full.url,\n\t\t\t\t\twidth: media.sizes.full.width,\n\t\t\t\t\theight: media.sizes.full.height\n\t\t\t\t};\n\n\t\t\t\t// Set up our preview image\n\t\t\t\tvar image = document.createElement( 'img' );\n\n\t\t\t\t// Set image properties\n\t\t\t\timage.src = media.sizes.full.url;\n\t\t\t\timage.className = 'thumbnail';\n\n\t\t\t\t// Display a preview image\n\t\t\t\tattachment.addClass( 'active' );\n\t\t\t\tpreview.html( image ); // .html() considered okay because auth is required to view this screen\n\t\t\t}\n\n\t\t\t// Add our meta to the hidden field\n\t\t\tfield.val( JSON.stringify( selectedMedia ) );\n\t\t},\n\n\t\t/**\n\t\t * Allow the user to remove media from a given field.\n\t\t *\n\t\t * @param {Event} evnt\n\t\t * @returns {boolean}\n\t\t */\n\t\tremoveAttachment: function( evnt ) {\n\t\t\tvar container = $( evnt.currentTarget ).parents( '.attachment' ),\n\t\t\t\timage = container.find( '.-image' ),\n\t\t\t\tfield = container.next( 'input' );\n\n\t\t\t// Empty the field\n\t\t\tfield.val( '' );\n\n\t\t\t// Remove the preview image\n\t\t\tcontainer.removeClass( 'active' );\n\t\t\timage.empty();\n\t\t},\n\n\t\t/**\n\t\t * Add a caption row\n\t\t *\n\t\t * @param {Event} evnt\n\t\t * @param {Object} media\n\t\t */\n\t\taddCaptionRow: function( evnt, media ) {\n\t\t\t// If using the add remote file link, prevent the page from jumping to the top\n\t\t\tif ( evnt ) {\n\t\t\t\tevnt.preventDefault();\n\t\t\t}\n\n\t\t\tvar source = undefined;\n\t\t\tif ( media ) {\n\t\t\t\tsource = media.url;\n\t\t\t}\n\n\t\t\tthis.addCaption( source );\n\t\t},\n\n\t\taddCaption: function( source, language, label ) {\n\t\t\tvar newRow = $( document.getElementById( 'js-caption-empty-row' ) ).clone(),\n\t\t\t\tcontainer = document.getElementById( 'js-captions' ),\n\t\t\t\tcaptionUrl = document.getElementById( 'js-caption-url' );\n\n\t\t\t// Clean up our cloned row\n\t\t\tnewRow.find( 'input' ).prop( 'disabled', false );\n\t\t\tnewRow.removeAttr( 'id' );\n\t\t\tnewRow.removeClass( 'empty-row' );\n\n\t\t\tif ( source ) {\n\t\t\t\tnewRow.find( '.brightcove-captions' ).val( source );\n\t\t\t}\n\n\t\t\tif ( language ) {\n\t\t\t\tnewRow.find( '.brightcove-captions-language' ).val( language );\n\t\t\t}\n\n\t\t\tif ( label ) {\n\t\t\t\tnewRow.find( '.brightcove-captions-label' ).val( label );\n\t\t\t}\n\n\t\t\t// Append our new row to the container\n\t\t\t$( container ).append( newRow );\n\n\t\t\t// Update the context button text\n\t\t\tthis.updateCaptionText();\n\t\t},\n\n\t\t/**\n\t\t * Remove a caption\n\t\t *\n\t\t * @param {Event} evnt\n\t\t */\n\t\tremoveCaptionRow: function( evnt ) {\n\t\t\tevnt.preventDefault();\n\n\t\t\tvar caption = evnt.currentTarget,\n\t\t\t\tcontainer = $( caption ).parents( '.caption-repeater' ),\n\t\t\t\tsource = container.find( '.brightcove-captions' ),\n\t\t\t\tlanguage = container.find( '.brightcove-captions-launguage' ),\n\t\t\t\tlabel = container.find( '.brightcove-captions-label' );\n\n\t\t\t// Empty the input fields\n\t\t\t$( source ).val( '' );\n\t\t\t$( language ).val( '' );\n\t\t\t$( label ).val( '' );\n\n\t\t\t// Remove the container entirely\n\t\t\tcontainer.remove();\n\n\t\t\t// Update the context button text\n\t\t\tthis.updateCaptionText();\n\t\t},\n\n\t\t/**\n\t\t * Updates the caption text based on number of captions\n\t\t */\n\t\tupdateCaptionText: function() {\n\t\t\tvar button = $( '.captions .button-secondary' ),\n\t\t\t\tlink = $( '.add-remote-caption' );\n\n\t\t\tif ( 1 < document.getElementsByClassName( 'caption-repeater' ).length ) {\n\t\t\t\tbutton.text( wpbc.str_addcaption );\n\t\t\t\tlink.text( wpbc.str_addremote );\n\t\t\t} else {\n\t\t\t\tbutton.text( wpbc.str_selectfile );\n\t\t\t\tlink.text( wpbc.str_useremote );\n\t\t\t}\n\t\t},\n\n\t\tsaveSync : function ( evnt ) {\n\t\t\tevnt.preventDefault();\n\n\t\t\tvar $mediaFrame = $( evnt.currentTarget ).parents( '.media-modal' ),\n\t\t\t\t$allButtons = $mediaFrame.find( '.button, .button-link'),\n\t\t\t\tSELF = this;\n\n\t\t\t// Exit if the 'button' is disabled.\n\t\t\tif ( $allButtons.hasClass( 'disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Disable the button for the duration of the request.\n\t\t\t$allButtons.addClass( 'disabled' );\n\n\t\t\t// Hide the delete link for the duration of the request.\n\t\t\t$mediaFrame.find( '.delete-action' ).hide();\n\n\t\t\twpbc.broadcast.trigger( 'spinner:on' );\n\t\t\tthis.model.set( 'name', this.$el.find( '.brightcove-name' ).val() );\n\t\t\tthis.model.set( 'description', this.$el.find( '.brightcove-description' ).val() );\n\t\t\tthis.model.set( 'long_description', this.$el.find( '.brightcove-long-description' ).val() );\n\n\t\t\t// Trim whitespace and commas from tags beginning/end.\n\t\t\tthis.model.set( 'tags', this.$el.find( '.brightcove-tags' ).val().trim().replace(/(^,)|(,$)/g, '' ) );\n\t\t\tthis.model.set( 'height', this.$el.find( '.brightcove-height' ).val() );\n\t\t\tthis.model.set( 'width', this.$el.find( '.brightcove-width' ).val() );\n\t\t\tthis.model.set( 'mediaType', 'videos' );\n\t\t\tthis.model.set( 'poster', this.$el.find( '.brightcove-poster' ).val() );\n\t\t\tthis.model.set( 'thumbnail', this.$el.find( '.brightcove-thumbnail' ).val() );\n\n\t\t\t// Captions\n\t\t\tvar captions = [];\n\t\t\tthis.$el.find( '.caption-repeater.repeater-row' ).not( '.empty-row' ).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 ( 'vtt' === extension ) {\n\t\t\t\t\tcaptions.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'source' : fileName,\n\t\t\t\t\t\t\t'language': caption.find( '.brightcove-captions-language' ).val(),\n\t\t\t\t\t\t\t'label' : caption.find( '.brightcove-captions-label' ).val()\n\t\t\t\t\t\t}\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' ).first().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\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.model.set( 'captions', captions );\n\n\t\t\t// Custom fields\n\t\t\tvar custom = {},\n\t\t\t\tcustom_fields = this.model.get( 'custom' );\n\n\t\t\t_.each( this.$el.find( '.brightcove-custom-string, .brightcove-custom-enum' ), function( 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 ) { return item.id == key } );\n\t\t\t\t\tobj.value = val;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.model.set( 'custom_fields', custom );\n\t\t\tthis.model.set( 'custom', custom_fields );\n\n\t\t\tthis.model.save()\n\t\t\t\t.done( function() {\n\t\t\t\t\tif ( $mediaFrame.length > 0 ) {\n\t\t\t\t\t\t// Update the tag dropdown and wpbc.preload.tags with any new tag values.\n\t\t\t\t\t\tvar tagInput = $mediaFrame.find( '.brightcove-tags' ).val(),\n\t\t\t\t\t\t\teditTags,\n\t\t\t\t\t\t\tnewTags;\n\n\t\t\t\t\t\tif ( tagInput ) {\n\t\t\t\t\t\t\teditTags = tagInput.split( ',' );\n\t\t\t\t\t\t\tnewTags = _.difference( editTags, wpbc.preload.tags );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Add any new tags to the tags object and the dropdown.\n\t\t\t\t\t\t_.each( newTags, function( newTag ){\n\t\t\t\t\t\t\tnewTag = newTag.trim();\n\t\t\t\t\t\t\tif ( '' !== newTag ) {\n\t\t\t\t\t\t\t\twpbc.preload.tags.push( newTag );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\twpbc.preload.tags.sort();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.always( function() {\n\t\t\t\t\t// Re-enable the button when the request has completed.\n\t\t\t\t\t$allButtons.removeClass( 'disabled' );\n\n\t\t\t\t\t// Show the delete link.\n\t\t\t\t\t$mediaFrame.find( '.delete-action' ).show();\n\t\t\t\t} );\n\n\t\t\t// Hide the video edit screen after save.\n\t\t\twpbc.broadcast.trigger( 'start:gridview' );\n\t\t},\n\n\t\t/**\n\t\t * Render the actual view for the Video Edit screen.\n\t\t *\n\t\t * @param {Object} options\n\t\t */\n\t\trender : function ( options ) {\n\t\t\tthis.listenTo( wpbc.broadcast, 'save:media', this.saveSync );\n\t\t\tthis.listenTo( wpbc.broadcast, 'back:editvideo', this.back );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'insert:shortcode', this.insertShortcode );\n\t\t\toptions = this.model.toJSON();\n\n\t\t\t// Render the model into the template\n\t\t\tthis.$el.html( this.template( options ) );\n\n\t\t\t// Render custom fields into the template\n\t\t\tvar customContainer = this.$el.find( '#brightcove-custom-fields' ),\n\t\t\t\tstringTmp = wp.template( 'brightcove-video-edit-custom-string' ),\n\t\t\t\tenumTmp = wp.template( 'brightcove-video-edit-custom-enum' );\n\n\t\t\t_.each( this.model.get('custom'), function( custom ) {\n\t\t\t\tif ( '_change_history' === custom.id ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tswitch( custom.type ) {\n\t\t\t\t\tcase 'string':\n\t\t\t\t\t\tcustomContainer.append( stringTmp( custom ) );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'enum':\n\t\t\t\t\t\tcustomContainer.append( enumTmp( custom ) );\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Render the change history\n\t\t\tvar history = this.model.get( 'history' );\n\n\t\t\tif ( history !== undefined ) {\n\t\t\t\tvar historyStr = '';\n\n\t\t\t\t// Parse our fetched JSON object\n\t\t\t\thistory = JSON.parse( history );\n\n\t\t\t\t_.each( history, function( item ) {\n\t\t\t\t\thistoryStr += item.user + ' - ' + item.time + '\\n';\n\t\t\t\t} );\n\n\t\t\t\tif ( '' !== historyStr ) {\n\t\t\t\t\tthis.$el.find( 'textarea.brightcove-change-history' ).val( historyStr );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Configure a spinner to provide feedback during updates\n\t\t\tvar spinner = this.$el.find( '.spinner' );\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:on', function () {\n\t\t\t\tspinner.addClass( 'is-active' ).removeClass( 'hidden' );\n\t\t\t} );\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:off', function () {\n\t\t\t\tspinner.removeClass( 'is-active' ).addClass( 'hidden' );\n\t\t\t} );\n\n\t\t\t// If there's already a poster or thumbnail set, display it\n\t\t\tif ( this.model.get( 'poster' ) ) {\n\t\t\t\tthis.displayAttachment( 'poster' );\n\t\t\t}\n\n\t\t\tif ( this.model.get( 'thumbnail' ) ) {\n\t\t\t\tthis.displayAttachment( 'thumbnail' );\n\t\t\t}\n\n\t\t\t// Captions\n\t\t\tif ( this.model.get( 'captions' ) ) {\n\t\t\t\tvar captions = this.model.get( 'captions' );\n\t\t\t\tfor ( var i = 0, l = captions.length; i < l; i++ ) {\n\t\t\t\t\tvar caption = captions[i];\n\t\t\t\t\tthis.addCaption( caption.source, caption.language, caption.label );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\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\t'action':'bc_resolve_shortcode',\n\t\t\t\t'shortcode': this.shortcode,\n\t\t\t\t'video_id' : options.id,\n\t\t\t\t'account_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\t{\n\t\ttagName : 'ul',\n\t\tclassName : 'brightcove-media attachments',\n\n\t\tattributes : {\n\t\t\ttabIndex : - 1\n\t\t},\n\n\t\tevents : {\n\t\t\t/* scroll fired on playlist edits, but for media grids it's handled by firing 'scroll:mediaGrid' in brightcove-media-manager */\n\t\t\t'scroll' : 'scrollHandler'\n\t\t},\n\n\t\tloadMoreMediaItems : function () {\n\t\t\tthis.fetchingResults = true;\n\t\t\tthis.collection.fetch();\n\t\t},\n\n\t\tscrollHandler : function () {\n\t\t\t// We don't fetch for videos in an existing playlist\n\t\t\tif ( 'existingPlaylists' === this.collection.mediaCollectionViewType ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar scrollThreshold = 200; // How many px from bottom until we fetch the next page.\n\t\t\tif ( ! this.fetchingResults && this.el.scrollTop + this.el.clientHeight + scrollThreshold > this.el.scrollHeight ) {\n\t\t\t\tthis.collection.pageNumber += 1;\n\t\t\t\tthis.loadMoreMediaItems();\n\t\t\t}\n\t\t},\n\n\t\tinitialize : function ( options ) {\n\t\t\tthis.fetchingResults = false;\n\t\t\tthis.listenTo( wpbc.broadcast, 'fetch:finished', function () {\n\t\t\t\tthis.fetchingResults = false;\n\t\t\t} );\n\n\t\t\tthis.listenTo( wpbc.broadcast, 'fetch:apiError', this.handleAPIError );\n\n\t\t\tvar scrollRefreshSensitivity = wp.media.isTouchDevice ? 300 : 200;\n\t\t\tthis.scrollHandler = _.chain( this.scrollHandler ).bind( this ).throttle( scrollRefreshSensitivity ).value();\n\t\t\tthis.listenTo( wpbc.broadcast, 'scroll:mediaGrid', this.scrollHandler );\n\t\t\toptions = options || {};\n\t\t\tthis.el.id = _.uniqueId( '__attachments-view-' );\n\n\t\t\t// Occurs on playlist edit, existing videos.\n\t\t\tif ( ! this.collection && options.videoIds ) {\n\t\t\t\tthis.collection = new MediaCollection(\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tvideoIds : options.videoIds,\n\t\t\t\t\t\tactiveAccount : options.activeAccount,\n\t\t\t\t\t\tmediaCollectionViewType : options.mediaCollectionViewType\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:moveUp', this.videoMoveUp );\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:moveDown', this.videoMoveDown );\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:remove', this.videoRemove );\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:add', this.videoAdd );\n\t\t\t} else if ( ! this.collection && 'libraryPlaylists' === options.mediaCollectionViewType ) {\n\t\t\t\tthis.collection = new MediaCollection(\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\texcludeVideoIds : options.excludeVideoIds,\n\t\t\t\t\t\tactiveAccount : options.activeAccount,\n\t\t\t\t\t\tmediaCollectionViewType : options.mediaCollectionViewType\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:remove', this.videoRemove );\n\t\t\t\tthis.listenTo( wpbc.broadcast, 'playlist:add', this.videoAdd );\n\t\t\t}\n\n\t\t\t_.defaults( this.options, {\n\t\t\t\trefreshSensitivity : wp.media.isTouchDevice ? 300 : 200,\n\t\t\t\trefreshThreshold : 3,\n\t\t\t\tVideoView : wp.media.view.Video,\n\t\t\t\tsortable : false,\n\t\t\t\tresize : true,\n\t\t\t\tidealColumnWidth : 202\n\t\t\t} );\n\n\t\t\tthis._viewsByCid = {};\n\t\t\tthis.resizeEvent = 'resize.media-modal-columns';\n\n\t\t\tthis.listenTo( this.collection, 'add', function ( 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}, this );\n\n\t\t\tthis.listenTo( this.collection, 'remove', function ( 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}, this );\n\n\t\t\tthis.listenTo( this.collection, 'reset', this.render );\n\n\t\t\t// Throttle the scroll handler and bind this.\n\t\t\tthis.scroll = _.chain( this.scroll ).bind( this ).throttle( this.options.refreshSensitivity ).value();\n\n\t\t\tthis.options.scrollElement = this.options.scrollElement || this.el;\n\t\t\t$( this.options.scrollElement ).on( 'scroll', this.scroll );\n\n\t\t\t_.bindAll( this, 'setColumns' );\n\n\t\t\tif ( this.options.resize ) {\n\t\t\t\tthis.on( 'ready', this.bindEvents );\n\t\t\t\t// this.controller.on('open', this.setColumns);\n\n\t\t\t\t// Call this.setColumns() after this view has been rendered in the DOM so\n\t\t\t\t// attachments get proper width applied.\n\t\t\t\t_.defer( this.setColumns, this );\n\t\t\t}\n\t\t},\n\n\t\thandleAPIError: function() {\n\t\t\tthis.el.innerText = wpbc.str_apifailure;\n\t\t},\n\n\t\trender : function () {\n\t\t\t// hide the spinner when content has finished loading\n\t\t\tthis.listenTo( wpbc.broadcast, 'spinner:off', function() {\n\t\t\t\t$( '#js-media-loading' ).css( 'display', 'none' );\n\t\t\t} );\n\n\t\t\tthis.$el.empty();\n\t\t\tthis.collection.each( function ( mediaModel ) {\n\t\t\t\tmediaModel.view = new MediaView( {model : mediaModel} );\n\t\t\t\tthis.registerSubview( mediaModel.view );\n\t\t\t\tmediaModel.view.render();\n\t\t\t\tmediaModel.view.delegateEvents();\n\t\t\t\tmediaModel.view.$el.appendTo( this.$el );\n\n\t\t\t\twpbc.broadcast.trigger( 'spinner:off' );\n\t\t\t}, this );\n\t\t},\n\n\t\tsetViewType : function ( type ) {\n\t\t\tthis.collection.each( function ( mediaModel ) {\n\t\t\t\tmediaModel.set( 'view', type );\n\t\t\t}, this );\n\t\t},\n\n\t\tbindEvents : function () {\n\t\t\tthis.$window.off( this.resizeEvent ).on( this.resizeEvent, _.debounce( this.setColumns, 50 ) );\n\t\t},\n\n\t\tsetColumns : function () {\n\t\t\tvar prev = this.columns,\n\t\t\t width = this.$el.width();\n\n\t\t\tif ( width ) {\n\t\t\t\tthis.columns = Math.min( Math.round( width / this.options.idealColumnWidth ), 12 ) || 1;\n\n\t\t\t\tif ( ! prev || prev !== this.columns ) {\n\t\t\t\t\tthis.$el.closest( '.media-frame-content' ).attr( 'data-columns', this.columns );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @param {wp.media.model.Video} attachment\n\t\t * @returns {wp.media.View}\n\t\t */\n\t\tcreateMediaView : function ( attachment ) {\n\t\t\tattachment.set( 'viewType', this.collection.mediaCollectionViewType );\n\t\t\tvar view = new MediaView( {\n\t\t\t\tcontroller : this.controller,\n\t\t\t\tmodel : attachment,\n\t\t\t\tcollection : this.collection,\n\t\t\t\tselection : this.options.selection\n\t\t\t} );\n\t\t\tthis.registerSubview( view );\n\t\t\tthis._viewsByCid[attachment.cid] = view;\n\t\t\treturn view;\n\t\t},\n\n\t\tprepare : function () {\n\t\t\t// Create all of the Video views, and replace\n\t\t\t// the list in a single DOM operation.\n\t\t\tif ( this.collection.length ) {\n\t\t\t\tthis.views.set( this.collection.map( this.createMediaView, this ) );\n\n\t\t\t\t// If there are no elements, clear the views and load some.\n\t\t\t} else {\n\t\t\t\tthis.views.unset();\n\t\t\t\tthis.collection.more().done( this.scroll );\n\t\t\t}\n\t\t},\n\n\t\tready : function () {\n\t\t\t// Trigger the scroll event to check if we're within the\n\t\t\t// threshold to query for additional attachments.\n\t\t\tthis.scroll();\n\t\t},\n\n\t\tscroll : function () {\n\t\t\tvar view = this,\n\t\t\t el = this.options.scrollElement,\n\t\t\t scrollTop = el.scrollTop,\n\t\t\t toolbar;\n\n\t\t\t// The scroll event occurs on the document, but the element\n\t\t\t// that should be checked is the document body.\n\t\t\tif ( el === document ) {\n\t\t\t\tel = document.body;\n\t\t\t\tscrollTop = $( document ).scrollTop();\n\t\t\t}\n\n\t\t\tif ( 'function' !== this.collection.hasMore || ! $( el ).is( ':visible' ) || ! this.collection.hasMore() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttoolbar = this.views.parent.toolbar;\n\n\t\t\t// Show the spinner only if we are close to the bottom.\n\t\t\tif ( el.scrollHeight - ( scrollTop + el.clientHeight ) < el.clientHeight / 3 ) {\n\t\t\t\ttoolbar.get( 'spinner' ).show();\n\t\t\t}\n\n\t\t\tif ( el.scrollHeight < scrollTop + ( el.clientHeight * this.options.refreshThreshold ) ) {\n\t\t\t\tthis.collection.more().done( function () {\n\t\t\t\t\tview.scroll();\n\t\t\t\t\ttoolbar.get( 'spinner' ).hide();\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\tvideoMoveUp : function ( videoView ) {\n\t\t\tvar model = videoView.model;\n\t\t\tvar index = this.collection.indexOf( model );\n\t\t\tif ( index > 0 ) {\n\t\t\t\tthis.collection.remove( model, {silent : true} ); // silence this to stop excess event triggers\n\t\t\t\tthis.collection.add( model, {at : index - 1} );\n\t\t\t}\n\t\t\tthis.render();\n\t\t\tthis.playlistChanged();\n\t\t},\n\n\t\tvideoMoveDown : function ( videoView ) {\n\t\t\tvar model = videoView.model;\n\t\t\tvar index = this.collection.indexOf( model );\n\t\t\tif ( index < this.collection.models.length ) {\n\t\t\t\tthis.collection.remove( model, {silent : true} ); // silence this to stop excess event triggers\n\t\t\t\tthis.collection.add( model, {at : index + 1} );\n\t\t\t}\n\t\t\tthis.render();\n\t\t\tthis.playlistChanged();\n\t\t},\n\n\t\tvideoRemove : function ( videoView ) {\n\t\t\tvar model = videoView.model;\n\t\t\tif ( - 1 === this.collection.indexOf( model ) ) {\n\t\t\t\t// this is the library model\n\t\t\t\tthis.collection.add( model );\n\t\t\t} else {\n\t\t\t\t// this is the playlist collection\n\t\t\t\tthis.collection.remove( model, {silent : true} ); // silence this to stop excess event triggers\n\t\t\t\tthis.playlistChanged();\n\t\t\t}\n\t\t\tthis.render();\n\t\t},\n\n\t\tvideoAdd : function ( videoView ) {\n\t\t\t/**\n\t\t\t * Video add is heard by two collections, the one containing the videos for the playlists\n\t\t\t * and the one containing the videos that we can add to them.\n\t\t\t * We handle the add by adding from the collection where it doesn't exist (the playlist) and removing\n\t\t\t * where it does (the library).\n\t\t\t */\n\t\t\tvar model = videoView.model;\n\t\t\tif ( - 1 === this.collection.indexOf( model ) ) {\n\t\t\t\t// this is the playlist collection\n\t\t\t\tthis.collection.add( model );\n\t\t\t\tthis.playlistChanged();\n\t\t\t} else {\n\t\t\t\t// this is the library model\n\t\t\t\tthis.collection.remove( model, {silent : true} );\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t},\n\n\t\tplaylistChanged : function () {\n\t\t\tvar videoIds = [];\n\t\t\tthis.collection.each( function ( video ) {\n\t\t\t\tvideoIds.push( video.id );\n\t\t\t} );\n\t\t\tthis.videoIds = videoIds;\n\t\t\t// var syncPlaylist = _.throttle(_.bind(this.syncPlaylist, this), 2000);\n\t\t\tthis.syncPlaylist();\n\t\t},\n\n\t\tsyncPlaylist : function () {\n\t\t\twpbc.broadcast.trigger( 'playlist:changed', this.videoIds );\n\t\t}\n\n\t}\n);\n\n","\tvar App = {\n\t\trenderMediaManager: function(mediaType) {\n\t\t\tvar brightcoveMediaContainer = $('.brightcove-media-' + mediaType);\n\t\t\tvar content_ifr = document.getElementById('content_ifr');\n\t\t\tif ( brightcoveMediaContainer.length ) {\n\t\t\t\tvar brightcoveMediaManager = new BrightcoveMediaManagerView({\n\t\t\t\t\tel: brightcoveMediaContainer,\n\t\t\t\t\tdate: 'all',\n\t\t\t\t\tembedType: 'page',\n\t\t\t\t\tpreload: true,\n\t\t\t\t\tmode: 'manager',\n\t\t\t\t\tsearch: '',\n\t\t\t\t\taccounts: 'all',\n\t\t\t\t\ttags: 'all',\n\t\t\t\t\tmediaType: mediaType,\n\t\t\t\t\tviewType: 'grid'\n\t\t\t\t});\n\t\t\t\tbrightcoveMediaManager.render();\n\t\t\t}\n\t\t},\n\n\t\tload: function() {\n\t\t\twpbc.requests = [];\n\t\t\twpbc.responses = {};\n\t\t\twpbc.broadcast = _.extend({}, Backbone.Events); // pubSub object\n\n\t\t\tthis.loaded();\n\n\t\t},\n\n\t\tloaded: function() {\n\t\t\tvar brightcoveModalContainer = $('.brightcove-modal');\n\n\t\t\tvar router = new BrightcoveRouter;\n\t\t\twpbc.triggerModal = function() {\n\t\t\t\tif (!wpbc.modal) {\n\t\t\t\t\twpbc.modal = new BrightcoveModalView({\n\t\t\t\t\t\tel: brightcoveModalContainer,\n\t\t\t\t\t\ttab: 'videos'\n\t\t\t\t\t});\n\t\t\t\t\twpbc.modal.render();\n\t\t\t\t\twpbc.modal.$el.find( '.spinner' ).addClass( 'is-active' );\n\t\t\t\t} else {\n\t\t\t\t\twpbc.modal.$el.show();\n\t\t\t\t}\n\n\t\t\t\t// Prevent body scrolling by adding a class to 'body'.\n\t\t\t\t$( 'body' ).addClass( 'modal-open' );\n\t\t\t};\n\n\t\t\tvar bc_sanitize_ids = function( id ) {\n\t\t\t\treturn id.replace(/\\D/g,'');\n\t\t\t};\n\n\t\t\t// Load the appropriate media type manager into the container element,\n\t\t\t// We only support loading one per page.\n\t\t\t_.each(['videos', 'playlists'], function(mediaType){\n\t\t\t\tApp.renderMediaManager(mediaType);\n\t\t\t});\n\n\t\t\t$('.account-toggle-button').on('click',function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\t$(this).hide();\n\t\t\t\t$('.brightcove-account-row.hidden').show();\n\t\t\t});\n\n\t\t\t$('.brightcove-add-new-video').on('click', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\trouter.navigate('add-new-brightcove-video', { trigger:true });\n\t\t\t});\n\n\t\t\t$(document).on('click', '.brightcove-add-media', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\twpbc.triggerModal();\n\t\t\t\twpbc.modal.target = e.currentTarget.dataset.target;\n\t\t\t});\n\n\t\t\t$(document).keyup(function(e) {\n\t\t\t\tif (27 === e.keyCode) {\n\t\t\t\t\t// Close modal on ESCAPE if it's open.\n\t\t\t\t\twpbc.broadcast.trigger('close:modal');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$('a.brightcove-action-delete-source').on('click',function(e){\n\t\t\t\tvar message = $(this).data('alert-message');\n\t\t\t\tif( !confirm( message ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t}\n\t};\n\n\tjQuery( document ).ready( function() {\n\t\tApp.load();\n\t\tvar router = new BrightcoveRouter;\n\t\tif ( ! Backbone.History.started ) {\n\t\t\tBackbone.history.start();\n\t\t}\n\t} );\n"]}
\ No newline at end of file
diff --git a/assets/js/brightcove-admin.min.js b/assets/js/brightcove-admin.min.js
index e04f558f..f4c6547d 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"),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")});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){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")})}return Backbone.Model.prototype.sync.apply(this,arguments)},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(){var e=this.get("duration");if(e){e=Number(e/1e3);var t=Math.floor(e/3600),i=Math.floor(e%3600/60),a=Math.floor(e%3600%60);return(0');i.append(s),s.addClass(a).find(".message-text").text(e),s.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();var i=new UploadView({model:e});i.render(),i.$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: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")}),i=_.map(t,function(e){return e.get("id")});this.detailsView.model.set("id",i),_.isEmpty(i)&&"videoexperience"!==this.model.get("mediaType")?(wpbc.broadcast.trigger("toggle:insertButton"),$("#shortcode").val("")):wpbc.broadcast.trigger("toggle:insertButton","enabled")}else 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")):(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),this.model.get("media-collection-view").$el.addClass("menu-visible"),e.$el.addClass("highlighted"),wpbc.broadcast.trigger("toggle:insertButton","enabled"))})},clearPreview:function(){this.detailsView instanceof MediaDetailsView&&this.detailsView.remove(),this.model.get("media-collection-view").$el.find(".highlighted").removeClass("highlighted")},startGridView:function(){this.model.set("mode","manager"),this.render()},message:function(e,t,i){var a=this.$el.find(".brightcove-message");"success"===t?(a.addClass("updated"),a.removeClass("error")):"error"===t&&(a.addClass("error"),a.removeClass("updated"));var s=$("");s.text(e),a.append(s),a.removeClass("hidden"),i?(wpbc.permanentMessage&&wpbc.permanentMessage.remove(),wpbc.permanentMessage=s):(a.addClass("notice is-dismissible"),this.makeNoticesDismissible())},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=this.model.get("options"),i=this.model.get("mode");if(_.invoke(this.subviews,"remove"),"uploader"===i)this.template=wp.template("brightcove-uploader-container"),this.$el.empty(),this.$el.html(this.template(t)),this.uploader.render(),this.uploader.delegateEvents(),this.uploader.$el.appendTo($(".brightcove-uploader"));else if("manager"===i){this.template=wp.template("brightcove-media"),this.$el.html(this.template(t)),this.toolbar.render(),this.toolbar.delegateEvents(),this.toolbar.$el.show(),this.toolbar.$el.appendTo(this.$el.find(".media-frame-router"));var a=this.model.get("media-collection-view");a.render(),a.delegateEvents();var s=this.$el.find(".media-frame-content");s.on("scroll",this.scrollHandler),a.$el.appendTo(s),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"))}else"editVideo"===i?(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"===i?(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"===i&&(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());return"editPlaylist"!==i&&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?t.attr("disabled","disabled"):"enabled"===e?t.removeAttr("disabled"):"disabled"===e?t.attr("disabled","disabled"):void 0!==t.attr("disabled")?t.removeAttr("disabled"):t.attr("disabled","disabled")},changeTab:function(e){if(e.preventDefault(),!$(e.target).hasClass("active")){$(e.target).addClass("active");var t=_.without(e.target.classList,"media-menu-item","brightcove")[0],i=["videos","upload","playlists","video-experience","playlist-experience"];_.each(_.without(i,t),function(e){$(".brightcove.media-menu-item."+e).removeClass("active")}),_.contains(i,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 .experience-details input[name="sizing"],.experience-details input[name="embed-style"]':"toggleExperienceUnits",'change #video-player, #autoplay, #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();var t=$("#shortcode").val();wpbc.broadcast.trigger("preview:media",this.model,t)},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=$("#aspect-ratio").val();if("custom"===t)$("#height").removeAttr("readonly");else{var i=$("#height"),a=$("#width").val();i.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(s),s.addClass(a).find(".message-text").text(e),s.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();var i=new UploadView({model:e});i.render(),i.$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: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")}),i=_.map(t,function(e){return e.get("id")});this.detailsView.model.set("id",i),_.isEmpty(i)&&"videoexperience"!==this.model.get("mediaType")?(wpbc.broadcast.trigger("toggle:insertButton"),$("#shortcode").val("")):wpbc.broadcast.trigger("toggle:insertButton","enabled")}else 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")):(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),this.model.get("media-collection-view").$el.addClass("menu-visible"),e.$el.addClass("highlighted"),wpbc.broadcast.trigger("toggle:insertButton","enabled"))})},clearPreview:function(){this.detailsView instanceof MediaDetailsView&&this.detailsView.remove(),this.model.get("media-collection-view").$el.find(".highlighted").removeClass("highlighted")},startGridView:function(){this.model.set("mode","manager"),this.render()},message:function(e,t,i){var a=this.$el.find(".brightcove-message");"success"===t?(a.addClass("updated"),a.removeClass("error")):"error"===t&&(a.addClass("error"),a.removeClass("updated"));var s=$("");s.text(e),a.append(s),a.removeClass("hidden"),i?(wpbc.permanentMessage&&wpbc.permanentMessage.remove(),wpbc.permanentMessage=s):(a.addClass("notice is-dismissible"),this.makeNoticesDismissible())},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=this.model.get("options"),i=this.model.get("mode");if(_.invoke(this.subviews,"remove"),"uploader"===i)this.template=wp.template("brightcove-uploader-container"),this.$el.empty(),this.$el.html(this.template(t)),this.uploader.render(),this.uploader.delegateEvents(),this.uploader.$el.appendTo($(".brightcove-uploader"));else if("manager"===i){this.template=wp.template("brightcove-media"),this.$el.html(this.template(t)),this.toolbar.render(),this.toolbar.delegateEvents(),this.toolbar.$el.show(),this.toolbar.$el.appendTo(this.$el.find(".media-frame-router"));var a=this.model.get("media-collection-view");a.render(),a.delegateEvents();var s=this.$el.find(".media-frame-content");s.on("scroll",this.scrollHandler),a.$el.appendTo(s),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"))}else"editVideo"===i?(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"===i?(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"===i&&(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());return"editPlaylist"!==i&&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?t.attr("disabled","disabled"):"enabled"===e?t.removeAttr("disabled"):"disabled"===e?t.attr("disabled","disabled"):void 0!==t.attr("disabled")?t.removeAttr("disabled"):t.attr("disabled","disabled")},changeTab:function(e){if(e.preventDefault(),!$(e.target).hasClass("active")){$(e.target).addClass("active");var t=_.without(e.target.classList,"media-menu-item","brightcove")[0],i=["videos","upload","playlists","video-experience","playlist-experience"];_.each(_.without(i,t),function(e){$(".brightcove.media-menu-item."+e).removeClass("active")}),_.contains(i,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 .experience-details input[name="sizing"],.experience-details input[name="embed-style"]':"toggleExperienceUnits",'change #video-player, #autoplay, #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();var t=$("#shortcode").val();wpbc.broadcast.trigger("preview:media",this.model,t)},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=$("#aspect-ratio").val();if("custom"===t)$("#height").removeAttr("readonly");else{var i=$("#height"),a=$("#width").val();i.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)send_request( esc_url_raw( self::CMS_BASE_URL . $this->get_account_id() . '/playlists/' . $playlist_id . '/videos' ) );
+ }
+
/**
* Update a playlist in the Brightcove Video Cloud
*
@@ -426,9 +441,11 @@ public function video_list( $limit = 20, $offset = 0, $query = '', $sort = '-cre
$args['q'] = sanitize_text_field( $query );
}
- // rawurlencode will convert spaces to %20, and plus signs to %2b, which is required according to BC API Docs.
- $args = array_map( 'rawurlencode', $args );
+ if ( false === strpos( $args['q'], 'id:' ) ) {
+ $args = array_map( 'urlencode', $args );
+ }
+
$url = add_query_arg(
$args,
diff --git a/includes/class-bc-setup.php b/includes/class-bc-setup.php
index 11814439..77c6f852 100644
--- a/includes/class-bc-setup.php
+++ b/includes/class-bc-setup.php
@@ -107,6 +107,86 @@ public static function action_init_all() {
add_action( 'pre_get_posts', array( 'BC_Setup', 'redirect' ), 1 );
add_action( 'init', array( 'BC_Setup', 'register_post_types' ) );
+
+ if ( function_exists( 'register_block_type' ) ) {
+ wp_register_script(
+ 'brightcove-block',
+ BRIGHTCOVE_URL . 'assets/js/src/block.js',
+ array( 'wp-blocks', 'wp-element' )
+ );
+
+ wp_localize_script( 'brightcove-block', 'bcBlock', array( 'userPermission' => BC_Utility::current_user_can_brightcove() ) );
+
+ register_block_type( 'bc/brightcove', array(
+ 'editor_script' => 'brightcove-block',
+ 'render_callback' => array( 'BC_Setup', 'render_shortcode' ),
+ 'attributes' => array(
+ 'account_id' => array(
+ 'type' => 'int',
+ ),
+ 'player_id' => array(
+ 'type' => 'string',
+ ),
+ 'video_id' => array(
+ 'type' => 'int',
+ ),
+ 'playlist_id' => array(
+ 'type' => 'int',
+ ),
+ 'experience_id' => array(
+ 'type' => 'string',
+ ),
+ 'video_ids' => array(
+ 'type' => 'int',
+ ),
+ 'embed' => array(
+ 'type' => 'string',
+ ),
+ 'autoplay' => array(
+ 'type' => 'string',
+ ),
+ 'height' => array(
+ 'type' => 'string',
+ ),
+ 'width' => array(
+ 'type' => 'string',
+ ),
+ 'min_width' => array(
+ 'type' => 'string',
+ ),
+ 'max_width' => array(
+ 'type' => 'string',
+ ),
+ 'padding_top' => array(
+ 'type' => 'string',
+ ),
+ ),
+ ) );
+ }
+ }
+
+ /**
+ * Render our shortcodes for our custom block.
+ *
+ * Determine if this is an experience video, a
+ * normal video or playlist shortcode and use
+ * the proper rendering method for each.
+ *
+ * @param array $atts Shortcode attributes
+ * @return string
+ */
+ public static function render_shortcode( $atts ) {
+ $output = '';
+
+ if ( ! empty( $atts['experience_id'] ) ) {
+ $output = call_user_func( array( 'BC_Experiences_Shortcode', 'bc_experience' ), $atts );
+ } else if ( ! empty( $atts['video_id'] ) ) {
+ $output = call_user_func( array( 'BC_Video_Shortcode', 'bc_video' ), $atts );
+ } else if ( ! empty( $atts['playlist_id'] ) ) {
+ $output = call_user_func( array( 'BC_Playlist_Shortcode', 'bc_playlist' ), $atts );
+ }
+
+ return $output;
}
public static function add_brightcove_media_button( $editor_id ) {
@@ -155,15 +235,12 @@ public static function preload_params() {
$params['tags'] = $tags->get_tags();
$params['plupload'] = array(
- 'runtimes' => 'html5,silverlight,flash,html4',
'browse_button' => 'brightcove-select-files-button',
'container' => 'drop-target',
'drop_element' => 'drop-target',
'multiple_queues' => true,
'max_file_size' => wp_max_upload_size() . 'b',
'url' => admin_url( 'admin-ajax.php?action=bc_media_upload' ),
- 'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ),
- 'silverlight_xap_url' => includes_url( 'js/plupload/plupload.silverlight.xap' ),
'filters' => array( array( 'title' => esc_html__( 'Allowed Files' ), 'extensions' => '*' ) ),
'multipart' => true,
'urlstream_upload' => true,
diff --git a/languages/brightcove.pot b/languages/brightcove.pot
index dc50ed14..5daaf88a 100644
--- a/languages/brightcove.pot
+++ b/languages/brightcove.pot
@@ -2,10 +2,10 @@
# This file is distributed under the GPLv2+.
msgid ""
msgstr ""
-"Project-Id-Version: Brightcove Video Connect 1.5.0\n"
+"Project-Id-Version: Brightcove Video Connect 1.6.0\n"
"Report-Msgid-Bugs-To: "
"https://wordpress.org/support/plugin/brightcove-video-connect\n"
-"POT-Creation-Date: 2018-08-01 20:02:19+00:00\n"
+"POT-Creation-Date: 2018-09-19 17:39:07+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -18,57 +18,57 @@ msgstr ""
msgid "You do not have permission to use this Brightcove Account"
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:74
-#: includes/admin/api/class-bc-admin-media-api.php:80
+#: includes/admin/api/class-bc-admin-media-api.php:81
+#: includes/admin/api/class-bc-admin-media-api.php:87
msgid "Invalid Request"
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:183
+#: includes/admin/api/class-bc-admin-media-api.php:190
msgid "Type is not specified"
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:189
-#: includes/admin/api/class-bc-admin-media-api.php:296
+#: includes/admin/api/class-bc-admin-media-api.php:196
+#: includes/admin/api/class-bc-admin-media-api.php:303
msgid "No such account exists"
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:238
+#: includes/admin/api/class-bc-admin-media-api.php:245
msgid "Successfully updated "
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:242
+#: includes/admin/api/class-bc-admin-media-api.php:249
msgid "Failed to sync with WordPress!"
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:246
+#: includes/admin/api/class-bc-admin-media-api.php:253
msgid "Failed to update "
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:273
+#: includes/admin/api/class-bc-admin-media-api.php:280
msgid "Type is not specified!"
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:289
+#: includes/admin/api/class-bc-admin-media-api.php:296
msgid "Wrong type is specified!"
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:312
+#: includes/admin/api/class-bc-admin-media-api.php:319
msgid "Unable to remove video from Brightcove!"
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:316
+#: includes/admin/api/class-bc-admin-media-api.php:323
msgid "Successfully deleted your video."
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:326
+#: includes/admin/api/class-bc-admin-media-api.php:333
msgid "Unable to remove playlist from Brightcove!"
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:330
+#: includes/admin/api/class-bc-admin-media-api.php:337
msgid "Successfully deleted your playlist."
msgstr ""
-#: includes/admin/api/class-bc-admin-media-api.php:541
+#: includes/admin/api/class-bc-admin-media-api.php:548
msgid "Invalid Search Type"
msgstr ""
@@ -364,7 +364,7 @@ msgstr ""
#: includes/admin/class-bc-templates.php:142
#: includes/admin/class-bc-templates.php:165
-#: includes/admin/class-bc-templates.php:180 includes/class-bc-setup.php:222
+#: includes/admin/class-bc-templates.php:180 includes/class-bc-setup.php:299
msgid "Select File"
msgstr ""
@@ -376,7 +376,7 @@ msgstr ""
msgid "Closed Captions"
msgstr ""
-#: includes/admin/class-bc-templates.php:178 includes/class-bc-setup.php:220
+#: includes/admin/class-bc-templates.php:178 includes/class-bc-setup.php:297
msgid "Add Another Caption"
msgstr ""
@@ -863,69 +863,69 @@ msgid ""
"Writing to the syslog instead."
msgstr ""
-#: includes/class-bc-setup.php:115
+#: includes/class-bc-setup.php:195
msgid "Brightcove Media"
msgstr ""
-#: includes/class-bc-setup.php:167
+#: includes/class-bc-setup.php:244
msgid "Allowed Files"
msgstr ""
-#: includes/class-bc-setup.php:177
+#: includes/class-bc-setup.php:254
msgid ""
"Deleting this video will prevent it from showing in any existing posts. Are "
"you sure you want to delete?"
msgstr ""
-#: includes/class-bc-setup.php:178
+#: includes/class-bc-setup.php:255
msgid ""
"We are currently performing a sync of your new Brightcove source, you may "
"not see all videos and playlists until that is complete."
msgstr ""
-#: includes/class-bc-setup.php:179
+#: includes/class-bc-setup.php:256
msgid "Successfully uploaded file with name %%s%%."
msgstr ""
-#: includes/class-bc-setup.php:180
+#: includes/class-bc-setup.php:257
msgid ""
"We were unable to upload the file with name %%s%%. Please try reuploading "
"it again."
msgstr ""
-#: includes/class-bc-setup.php:218
+#: includes/class-bc-setup.php:295
msgid ""
"This file is not the proper format. Please use .vtt files, for more "
"information visit"
msgstr ""
-#: includes/class-bc-setup.php:221
+#: includes/class-bc-setup.php:298
msgid "Add another remote file"
msgstr ""
-#: includes/class-bc-setup.php:223
+#: includes/class-bc-setup.php:300
msgid "Use a remote file instead"
msgstr ""
-#: includes/class-bc-setup.php:224
+#: includes/class-bc-setup.php:301
msgid ""
"Sorry! We weren't able to reach the Brightcove API even after trying a few "
"times. Please try refreshing the page."
msgstr ""
-#: includes/class-bc-setup.php:330
+#: includes/class-bc-setup.php:407
msgid "Please configure Brightcove settings from"
msgstr ""
-#: includes/class-bc-setup.php:332
+#: includes/class-bc-setup.php:409
msgid "here"
msgstr ""
-#: includes/class-bc-setup.php:347
+#: includes/class-bc-setup.php:424
msgid "BC In Process Videos"
msgstr ""
-#: includes/class-bc-setup.php:375
+#: includes/class-bc-setup.php:452
msgid ""
"Brightcove Video Cloud Enhanced "
"has been deactivated because it's incompatibale with "
@@ -933,723 +933,723 @@ msgid ""
"4.2
"
msgstr ""
-#: includes/class-bc-utility.php:1232
+#: includes/class-bc-utility.php:1233
msgid "English"
msgstr ""
-#: includes/class-bc-utility.php:1233
+#: includes/class-bc-utility.php:1234
msgid "Abkhaz"
msgstr ""
-#: includes/class-bc-utility.php:1234
+#: includes/class-bc-utility.php:1235
msgid "Afar"
msgstr ""
-#: includes/class-bc-utility.php:1235
+#: includes/class-bc-utility.php:1236
msgid "Afrikaans"
msgstr ""
-#: includes/class-bc-utility.php:1236
+#: includes/class-bc-utility.php:1237
msgid "Akan"
msgstr ""
-#: includes/class-bc-utility.php:1237
+#: includes/class-bc-utility.php:1238
msgid "Albanian"
msgstr ""
-#: includes/class-bc-utility.php:1238
+#: includes/class-bc-utility.php:1239
msgid "Amharic"
msgstr ""
-#: includes/class-bc-utility.php:1239
+#: includes/class-bc-utility.php:1240
msgid "Arabic"
msgstr ""
-#: includes/class-bc-utility.php:1240
+#: includes/class-bc-utility.php:1241
msgid "Aragonese"
msgstr ""
-#: includes/class-bc-utility.php:1241
+#: includes/class-bc-utility.php:1242
msgid "Armenian"
msgstr ""
-#: includes/class-bc-utility.php:1242
+#: includes/class-bc-utility.php:1243
msgid "Assamese"
msgstr ""
-#: includes/class-bc-utility.php:1243
+#: includes/class-bc-utility.php:1244
msgid "Avaric"
msgstr ""
-#: includes/class-bc-utility.php:1244
+#: includes/class-bc-utility.php:1245
msgid "Avestan"
msgstr ""
-#: includes/class-bc-utility.php:1245
+#: includes/class-bc-utility.php:1246
msgid "Aymara"
msgstr ""
-#: includes/class-bc-utility.php:1246
+#: includes/class-bc-utility.php:1247
msgid "Azerbaijani"
msgstr ""
-#: includes/class-bc-utility.php:1247
+#: includes/class-bc-utility.php:1248
msgid "Bambara"
msgstr ""
-#: includes/class-bc-utility.php:1248
+#: includes/class-bc-utility.php:1249
msgid "Bashkir"
msgstr ""
-#: includes/class-bc-utility.php:1249
+#: includes/class-bc-utility.php:1250
msgid "Basque"
msgstr ""
-#: includes/class-bc-utility.php:1250
+#: includes/class-bc-utility.php:1251
msgid "Belarusian"
msgstr ""
-#: includes/class-bc-utility.php:1251
+#: includes/class-bc-utility.php:1252
msgid "Bengali"
msgstr ""
-#: includes/class-bc-utility.php:1252
+#: includes/class-bc-utility.php:1253
msgid "Bihari"
msgstr ""
-#: includes/class-bc-utility.php:1253
+#: includes/class-bc-utility.php:1254
msgid "Bislama"
msgstr ""
-#: includes/class-bc-utility.php:1254
+#: includes/class-bc-utility.php:1255
msgid "Bosnian"
msgstr ""
-#: includes/class-bc-utility.php:1255
+#: includes/class-bc-utility.php:1256
msgid "Breton"
msgstr ""
-#: includes/class-bc-utility.php:1256
+#: includes/class-bc-utility.php:1257
msgid "Bulgarian"
msgstr ""
-#: includes/class-bc-utility.php:1257
+#: includes/class-bc-utility.php:1258
msgid "Burmese"
msgstr ""
-#: includes/class-bc-utility.php:1258
+#: includes/class-bc-utility.php:1259
msgid "Catalan"
msgstr ""
-#: includes/class-bc-utility.php:1259
+#: includes/class-bc-utility.php:1260
msgid "Chomorro"
msgstr ""
-#: includes/class-bc-utility.php:1260
+#: includes/class-bc-utility.php:1261
msgid "Chechen"
msgstr ""
-#: includes/class-bc-utility.php:1261
+#: includes/class-bc-utility.php:1262
msgid "Chichewa"
msgstr ""
-#: includes/class-bc-utility.php:1262
+#: includes/class-bc-utility.php:1263
msgid "Chinese"
msgstr ""
-#: includes/class-bc-utility.php:1263
+#: includes/class-bc-utility.php:1264
msgid "Chuvash"
msgstr ""
-#: includes/class-bc-utility.php:1264
+#: includes/class-bc-utility.php:1265
msgid "Cornish"
msgstr ""
-#: includes/class-bc-utility.php:1265
+#: includes/class-bc-utility.php:1266
msgid "Corsican"
msgstr ""
-#: includes/class-bc-utility.php:1266
+#: includes/class-bc-utility.php:1267
msgid "Cree"
msgstr ""
-#: includes/class-bc-utility.php:1267
+#: includes/class-bc-utility.php:1268
msgid "Croatian"
msgstr ""
-#: includes/class-bc-utility.php:1268
+#: includes/class-bc-utility.php:1269
msgid "Czech"
msgstr ""
-#: includes/class-bc-utility.php:1269
+#: includes/class-bc-utility.php:1270
msgid "Danish"
msgstr ""
-#: includes/class-bc-utility.php:1270
+#: includes/class-bc-utility.php:1271
msgid "Divehi"
msgstr ""
-#: includes/class-bc-utility.php:1271
+#: includes/class-bc-utility.php:1272
msgid "Dutch"
msgstr ""
-#: includes/class-bc-utility.php:1272
+#: includes/class-bc-utility.php:1273
msgid "Dzongkha"
msgstr ""
-#: includes/class-bc-utility.php:1273
+#: includes/class-bc-utility.php:1274
msgid "Esperanto"
msgstr ""
-#: includes/class-bc-utility.php:1274
+#: includes/class-bc-utility.php:1275
msgid "Estonian"
msgstr ""
-#: includes/class-bc-utility.php:1275
+#: includes/class-bc-utility.php:1276
msgid "Ewe"
msgstr ""
-#: includes/class-bc-utility.php:1276
+#: includes/class-bc-utility.php:1277
msgid "Faroese"
msgstr ""
-#: includes/class-bc-utility.php:1277
+#: includes/class-bc-utility.php:1278
msgid "Fijian"
msgstr ""
-#: includes/class-bc-utility.php:1278
+#: includes/class-bc-utility.php:1279
msgid "Finnish"
msgstr ""
-#: includes/class-bc-utility.php:1279
+#: includes/class-bc-utility.php:1280
msgid "French"
msgstr ""
-#: includes/class-bc-utility.php:1280
+#: includes/class-bc-utility.php:1281
msgid "Fula"
msgstr ""
-#: includes/class-bc-utility.php:1281
+#: includes/class-bc-utility.php:1282
msgid "Galician"
msgstr ""
-#: includes/class-bc-utility.php:1282
+#: includes/class-bc-utility.php:1283
msgid "Georgian"
msgstr ""
-#: includes/class-bc-utility.php:1283
+#: includes/class-bc-utility.php:1284
msgid "German"
msgstr ""
-#: includes/class-bc-utility.php:1284
+#: includes/class-bc-utility.php:1285
msgid "Greek"
msgstr ""
-#: includes/class-bc-utility.php:1285
+#: includes/class-bc-utility.php:1286
msgid "Guarani"
msgstr ""
-#: includes/class-bc-utility.php:1286
+#: includes/class-bc-utility.php:1287
msgid "Gujarati"
msgstr ""
-#: includes/class-bc-utility.php:1287
+#: includes/class-bc-utility.php:1288
msgid "Haitian"
msgstr ""
-#: includes/class-bc-utility.php:1288
+#: includes/class-bc-utility.php:1289
msgid "Hausa"
msgstr ""
-#: includes/class-bc-utility.php:1289
+#: includes/class-bc-utility.php:1290
msgid "Hebrew"
msgstr ""
-#: includes/class-bc-utility.php:1290
+#: includes/class-bc-utility.php:1291
msgid "Herero"
msgstr ""
-#: includes/class-bc-utility.php:1291
+#: includes/class-bc-utility.php:1292
msgid "Hindi"
msgstr ""
-#: includes/class-bc-utility.php:1292
+#: includes/class-bc-utility.php:1293
msgid "Hiri Motu"
msgstr ""
-#: includes/class-bc-utility.php:1293
+#: includes/class-bc-utility.php:1294
msgid "Hungarian"
msgstr ""
-#: includes/class-bc-utility.php:1294
+#: includes/class-bc-utility.php:1295
msgid "Interlingua"
msgstr ""
-#: includes/class-bc-utility.php:1295
+#: includes/class-bc-utility.php:1296
msgid "Indonesian"
msgstr ""
-#: includes/class-bc-utility.php:1296
+#: includes/class-bc-utility.php:1297
msgid "Irish"
msgstr ""
-#: includes/class-bc-utility.php:1297
+#: includes/class-bc-utility.php:1298
msgid "Igbo"
msgstr ""
-#: includes/class-bc-utility.php:1298
+#: includes/class-bc-utility.php:1299
msgid "Inupiaq"
msgstr ""
-#: includes/class-bc-utility.php:1299
+#: includes/class-bc-utility.php:1300
msgid "Icelandic"
msgstr ""
-#: includes/class-bc-utility.php:1300
+#: includes/class-bc-utility.php:1301
msgid "Italian"
msgstr ""
-#: includes/class-bc-utility.php:1301
+#: includes/class-bc-utility.php:1302
msgid "Inuktitut"
msgstr ""
-#: includes/class-bc-utility.php:1302
+#: includes/class-bc-utility.php:1303
msgid "Japanese"
msgstr ""
-#: includes/class-bc-utility.php:1303
+#: includes/class-bc-utility.php:1304
msgid "Javanese"
msgstr ""
-#: includes/class-bc-utility.php:1304
+#: includes/class-bc-utility.php:1305
msgid "Kalaallisut"
msgstr ""
-#: includes/class-bc-utility.php:1305
+#: includes/class-bc-utility.php:1306
msgid "Kannada"
msgstr ""
-#: includes/class-bc-utility.php:1306
+#: includes/class-bc-utility.php:1307
msgid "Kanuri"
msgstr ""
-#: includes/class-bc-utility.php:1307
+#: includes/class-bc-utility.php:1308
msgid "Kashmiri"
msgstr ""
-#: includes/class-bc-utility.php:1308
+#: includes/class-bc-utility.php:1309
msgid "Kazakh"
msgstr ""
-#: includes/class-bc-utility.php:1309
+#: includes/class-bc-utility.php:1310
msgid "Khmer"
msgstr ""
-#: includes/class-bc-utility.php:1310
+#: includes/class-bc-utility.php:1311
msgid "Kikuyu"
msgstr ""
-#: includes/class-bc-utility.php:1311
+#: includes/class-bc-utility.php:1312
msgid "Kinyarwanda"
msgstr ""
-#: includes/class-bc-utility.php:1312
+#: includes/class-bc-utility.php:1313
msgid "Kyrgyz"
msgstr ""
-#: includes/class-bc-utility.php:1313
+#: includes/class-bc-utility.php:1314
msgid "Komi"
msgstr ""
-#: includes/class-bc-utility.php:1314
+#: includes/class-bc-utility.php:1315
msgid "Kongo"
msgstr ""
-#: includes/class-bc-utility.php:1315
+#: includes/class-bc-utility.php:1316
msgid "Korean"
msgstr ""
-#: includes/class-bc-utility.php:1316
+#: includes/class-bc-utility.php:1317
msgid "Kurdish"
msgstr ""
-#: includes/class-bc-utility.php:1317
+#: includes/class-bc-utility.php:1318
msgid "Kwanyama"
msgstr ""
-#: includes/class-bc-utility.php:1318
+#: includes/class-bc-utility.php:1319
msgid "Latin"
msgstr ""
-#: includes/class-bc-utility.php:1319
+#: includes/class-bc-utility.php:1320
msgid "Luxembourgish"
msgstr ""
-#: includes/class-bc-utility.php:1320
+#: includes/class-bc-utility.php:1321
msgid "Ganda"
msgstr ""
-#: includes/class-bc-utility.php:1321
+#: includes/class-bc-utility.php:1322
msgid "Limburgish"
msgstr ""
-#: includes/class-bc-utility.php:1322
+#: includes/class-bc-utility.php:1323
msgid "Lingala"
msgstr ""
-#: includes/class-bc-utility.php:1323
+#: includes/class-bc-utility.php:1324
msgid "Lao"
msgstr ""
-#: includes/class-bc-utility.php:1324
+#: includes/class-bc-utility.php:1325
msgid "Lithuanian"
msgstr ""
-#: includes/class-bc-utility.php:1325
+#: includes/class-bc-utility.php:1326
msgid "Luba-Katanga"
msgstr ""
-#: includes/class-bc-utility.php:1326
+#: includes/class-bc-utility.php:1327
msgid "Latvian"
msgstr ""
-#: includes/class-bc-utility.php:1327
+#: includes/class-bc-utility.php:1328
msgid "Manx"
msgstr ""
-#: includes/class-bc-utility.php:1328
+#: includes/class-bc-utility.php:1329
msgid "Macedonian"
msgstr ""
-#: includes/class-bc-utility.php:1329
+#: includes/class-bc-utility.php:1330
msgid "Malagasy"
msgstr ""
-#: includes/class-bc-utility.php:1330
+#: includes/class-bc-utility.php:1331
msgid "Malay"
msgstr ""
-#: includes/class-bc-utility.php:1331
+#: includes/class-bc-utility.php:1332
msgid "Malayalam"
msgstr ""
-#: includes/class-bc-utility.php:1332
+#: includes/class-bc-utility.php:1333
msgid "Maltese"
msgstr ""
-#: includes/class-bc-utility.php:1333
+#: includes/class-bc-utility.php:1334
msgid "Maori"
msgstr ""
-#: includes/class-bc-utility.php:1334
+#: includes/class-bc-utility.php:1335
msgid "Marathi"
msgstr ""
-#: includes/class-bc-utility.php:1335
+#: includes/class-bc-utility.php:1336
msgid "Marshallese"
msgstr ""
-#: includes/class-bc-utility.php:1336
+#: includes/class-bc-utility.php:1337
msgid "Mongolian"
msgstr ""
-#: includes/class-bc-utility.php:1337
+#: includes/class-bc-utility.php:1338
msgid "Nauruan"
msgstr ""
-#: includes/class-bc-utility.php:1338
+#: includes/class-bc-utility.php:1339
msgid "Navajo"
msgstr ""
-#: includes/class-bc-utility.php:1339
+#: includes/class-bc-utility.php:1340
msgid "Northern Ndebele"
msgstr ""
-#: includes/class-bc-utility.php:1340
+#: includes/class-bc-utility.php:1341
msgid "Nepali"
msgstr ""
-#: includes/class-bc-utility.php:1341
+#: includes/class-bc-utility.php:1342
msgid "Ndonga"
msgstr ""
-#: includes/class-bc-utility.php:1342
+#: includes/class-bc-utility.php:1343
msgid "Norwegian Bokmal"
msgstr ""
-#: includes/class-bc-utility.php:1343
+#: includes/class-bc-utility.php:1344
msgid "Norwegian Nyorsk"
msgstr ""
-#: includes/class-bc-utility.php:1344
+#: includes/class-bc-utility.php:1345
msgid "Norwegian"
msgstr ""
-#: includes/class-bc-utility.php:1345
+#: includes/class-bc-utility.php:1346
msgid "Nuosu"
msgstr ""
-#: includes/class-bc-utility.php:1346
+#: includes/class-bc-utility.php:1347
msgid "Southern Ndebele"
msgstr ""
-#: includes/class-bc-utility.php:1347
+#: includes/class-bc-utility.php:1348
msgid "Occitan"
msgstr ""
-#: includes/class-bc-utility.php:1348
+#: includes/class-bc-utility.php:1349
msgid "Ojibwe"
msgstr ""
-#: includes/class-bc-utility.php:1349
+#: includes/class-bc-utility.php:1350
msgid "Oromo"
msgstr ""
-#: includes/class-bc-utility.php:1350
+#: includes/class-bc-utility.php:1351
msgid "Oriya"
msgstr ""
-#: includes/class-bc-utility.php:1351
+#: includes/class-bc-utility.php:1352
msgid "Ossetian"
msgstr ""
-#: includes/class-bc-utility.php:1352
+#: includes/class-bc-utility.php:1353
msgid "Panjabi"
msgstr ""
-#: includes/class-bc-utility.php:1353
+#: includes/class-bc-utility.php:1354
msgid "Pali"
msgstr ""
-#: includes/class-bc-utility.php:1354
+#: includes/class-bc-utility.php:1355
msgid "Persian"
msgstr ""
-#: includes/class-bc-utility.php:1355
+#: includes/class-bc-utility.php:1356
msgid "Polish"
msgstr ""
-#: includes/class-bc-utility.php:1356
+#: includes/class-bc-utility.php:1357
msgid "Pashto"
msgstr ""
-#: includes/class-bc-utility.php:1357
+#: includes/class-bc-utility.php:1358
msgid "Portuguese"
msgstr ""
-#: includes/class-bc-utility.php:1358
+#: includes/class-bc-utility.php:1359
msgid "Quechua"
msgstr ""
-#: includes/class-bc-utility.php:1359
+#: includes/class-bc-utility.php:1360
msgid "Romanian"
msgstr ""
-#: includes/class-bc-utility.php:1360
+#: includes/class-bc-utility.php:1361
msgid "Romanish"
msgstr ""
-#: includes/class-bc-utility.php:1361
+#: includes/class-bc-utility.php:1362
msgid "Russian"
msgstr ""
-#: includes/class-bc-utility.php:1362
+#: includes/class-bc-utility.php:1363
msgid "Sanskrit"
msgstr ""
-#: includes/class-bc-utility.php:1363
+#: includes/class-bc-utility.php:1364
msgid "Sardinian"
msgstr ""
-#: includes/class-bc-utility.php:1364
+#: includes/class-bc-utility.php:1365
msgid "Sindhi"
msgstr ""
-#: includes/class-bc-utility.php:1365
+#: includes/class-bc-utility.php:1366
msgid "Northern Sami"
msgstr ""
-#: includes/class-bc-utility.php:1366
+#: includes/class-bc-utility.php:1367
msgid "Samoan"
msgstr ""
-#: includes/class-bc-utility.php:1367
+#: includes/class-bc-utility.php:1368
msgid "Sango"
msgstr ""
-#: includes/class-bc-utility.php:1368
+#: includes/class-bc-utility.php:1369
msgid "Serbian"
msgstr ""
-#: includes/class-bc-utility.php:1369
+#: includes/class-bc-utility.php:1370
msgid "Scottish Gaelic"
msgstr ""
-#: includes/class-bc-utility.php:1370
+#: includes/class-bc-utility.php:1371
msgid "Shona"
msgstr ""
-#: includes/class-bc-utility.php:1371
+#: includes/class-bc-utility.php:1372
msgid "Sinhala"
msgstr ""
-#: includes/class-bc-utility.php:1372
+#: includes/class-bc-utility.php:1373
msgid "Slovak"
msgstr ""
-#: includes/class-bc-utility.php:1373
+#: includes/class-bc-utility.php:1374
msgid "Slovene"
msgstr ""
-#: includes/class-bc-utility.php:1374
+#: includes/class-bc-utility.php:1375
msgid "Somali"
msgstr ""
-#: includes/class-bc-utility.php:1375
+#: includes/class-bc-utility.php:1376
msgid "Southern Sotho"
msgstr ""
-#: includes/class-bc-utility.php:1376
+#: includes/class-bc-utility.php:1377
msgid "Spanish"
msgstr ""
-#: includes/class-bc-utility.php:1377
+#: includes/class-bc-utility.php:1378
msgid "Sudanese"
msgstr ""
-#: includes/class-bc-utility.php:1378
+#: includes/class-bc-utility.php:1379
msgid "Swahili"
msgstr ""
-#: includes/class-bc-utility.php:1379
+#: includes/class-bc-utility.php:1380
msgid "Swati"
msgstr ""
-#: includes/class-bc-utility.php:1380
+#: includes/class-bc-utility.php:1381
msgid "Swedish"
msgstr ""
-#: includes/class-bc-utility.php:1381
+#: includes/class-bc-utility.php:1382
msgid "Tamil"
msgstr ""
-#: includes/class-bc-utility.php:1382
+#: includes/class-bc-utility.php:1383
msgid "Telugu"
msgstr ""
-#: includes/class-bc-utility.php:1383
+#: includes/class-bc-utility.php:1384
msgid "Tajik"
msgstr ""
-#: includes/class-bc-utility.php:1384
+#: includes/class-bc-utility.php:1385
msgid "Thai"
msgstr ""
-#: includes/class-bc-utility.php:1385
+#: includes/class-bc-utility.php:1386
msgid "Tigrinya"
msgstr ""
-#: includes/class-bc-utility.php:1386
+#: includes/class-bc-utility.php:1387
msgid "Tibetan"
msgstr ""
-#: includes/class-bc-utility.php:1387
+#: includes/class-bc-utility.php:1388
msgid "Turkmen"
msgstr ""
-#: includes/class-bc-utility.php:1388
+#: includes/class-bc-utility.php:1389
msgid "Tagalog"
msgstr ""
-#: includes/class-bc-utility.php:1389
+#: includes/class-bc-utility.php:1390
msgid "Tswana"
msgstr ""
-#: includes/class-bc-utility.php:1390
+#: includes/class-bc-utility.php:1391
msgid "Tonga"
msgstr ""
-#: includes/class-bc-utility.php:1391
+#: includes/class-bc-utility.php:1392
msgid "Turkish"
msgstr ""
-#: includes/class-bc-utility.php:1392
+#: includes/class-bc-utility.php:1393
msgid "Tsonga"
msgstr ""
-#: includes/class-bc-utility.php:1393
+#: includes/class-bc-utility.php:1394
msgid "Tatar"
msgstr ""
-#: includes/class-bc-utility.php:1394
+#: includes/class-bc-utility.php:1395
msgid "Twi"
msgstr ""
-#: includes/class-bc-utility.php:1395
+#: includes/class-bc-utility.php:1396
msgid "Tahitian"
msgstr ""
-#: includes/class-bc-utility.php:1396
+#: includes/class-bc-utility.php:1397
msgid "Uyghur"
msgstr ""
-#: includes/class-bc-utility.php:1397
+#: includes/class-bc-utility.php:1398
msgid "Ukrainian"
msgstr ""
-#: includes/class-bc-utility.php:1398
+#: includes/class-bc-utility.php:1399
msgid "Urdu"
msgstr ""
-#: includes/class-bc-utility.php:1399
+#: includes/class-bc-utility.php:1400
msgid "Uzbek"
msgstr ""
-#: includes/class-bc-utility.php:1400
+#: includes/class-bc-utility.php:1401
msgid "Venda"
msgstr ""
-#: includes/class-bc-utility.php:1401
+#: includes/class-bc-utility.php:1402
msgid "Vietnamese"
msgstr ""
-#: includes/class-bc-utility.php:1402
+#: includes/class-bc-utility.php:1403
msgid "Volapuk"
msgstr ""
-#: includes/class-bc-utility.php:1403
+#: includes/class-bc-utility.php:1404
msgid "Walloon"
msgstr ""
-#: includes/class-bc-utility.php:1404
+#: includes/class-bc-utility.php:1405
msgid "Welsh"
msgstr ""
-#: includes/class-bc-utility.php:1405
+#: includes/class-bc-utility.php:1406
msgid "Wolof"
msgstr ""
-#: includes/class-bc-utility.php:1406
+#: includes/class-bc-utility.php:1407
msgid "Western Frisian"
msgstr ""
-#: includes/class-bc-utility.php:1407
+#: includes/class-bc-utility.php:1408
msgid "Xhosa"
msgstr ""
-#: includes/class-bc-utility.php:1408
+#: includes/class-bc-utility.php:1409
msgid "Yiddish"
msgstr ""
-#: includes/class-bc-utility.php:1409
+#: includes/class-bc-utility.php:1410
msgid "Yoruba"
msgstr ""
-#: includes/class-bc-utility.php:1410
+#: includes/class-bc-utility.php:1411
msgid "Zhuang"
msgstr ""
-#: includes/class-bc-utility.php:1411
+#: includes/class-bc-utility.php:1412
msgid "Zulu"
msgstr ""
diff --git a/package.json b/package.json
index b5f58df7..806c0f45 100644
--- a/package.json
+++ b/package.json
@@ -2,8 +2,8 @@
"name": "brightcove-video-connect",
"private": true,
"title": "brightcove-video-connect",
- "description": "A Brightclove plugin for WordPress.",
- "version": "1.5",
+ "description": "A Brightcove plugin for WordPress.",
+ "version": "1.6.0",
"homepage": "https://wordpress.org/plugins/brightcove-video-connect/",
"author": {
"name": "10up",
@@ -25,7 +25,8 @@
"grunt-contrib-cssmin": "*",
"load-grunt-tasks": "*",
"grunt-autoprefixer": "*",
- "grunt-wp-i18n": "*"
+ "grunt-wp-i18n": "*",
+ "node-sass": "*"
},
"keywords": []
}
diff --git a/readme.txt b/readme.txt
index d7cfd40a..bf833fc8 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,7 +5,7 @@ Donate link: https://supporters.eff.org/donate
Tags: brightcove, 10up, videos, video
Requires at least: 4.2
Tested up to: 4.9
-Stable tag: 1.5.0
+Stable tag: 1.6.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -22,6 +22,16 @@ For installation, usage, and Frequently Asked Question please see the [Brightcov
== Changelog ==
+= 1.6.0 =
+
+* Enhancement: Gutenberg support.
+* Fix: Fixed a bug causing video previews not to show.
+* Fix: Fixed a bug causing playlist videos to not be listed.
+* Fix: Update to the 'brightcove_media_query_results' filter to allow $processed_results to be used.
+* Fix: Removal of deprecated options for Plupload.
+* Fix: Adding last two parameters to add_action to remove PHP 7.2 warnings.
+* Fix: Removal of hardcoded video page height.
+
= 1.5.0 =
* Enhancement: Video Experience player.