diff --git a/.gitignore b/.gitignore index 0036fdcb..df93c4f2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ node_modules release .sass-cache -vendor \ No newline at end of file +vendor +.DS_Store diff --git a/.wordpress-org/banner-1544x500.jpg b/.wordpress-org/banner-1544x500.jpg index 3a39ab38..46a0faea 100644 Binary files a/.wordpress-org/banner-1544x500.jpg and b/.wordpress-org/banner-1544x500.jpg differ diff --git a/.wordpress-org/banner-1544x500.png b/.wordpress-org/banner-1544x500.png new file mode 100644 index 00000000..9fc1cf59 Binary files /dev/null and b/.wordpress-org/banner-1544x500.png differ diff --git a/.wordpress-org/banner-772x250.jpg b/.wordpress-org/banner-772x250.jpg index dc1e0dd7..baab3f3c 100644 Binary files a/.wordpress-org/banner-772x250.jpg and b/.wordpress-org/banner-772x250.jpg differ diff --git a/.wordpress-org/banner-772x250.png b/.wordpress-org/banner-772x250.png new file mode 100644 index 00000000..e4256578 Binary files /dev/null and b/.wordpress-org/banner-772x250.png differ diff --git a/CHANGELOG.md b/CHANGELOG.md index 7aafbbcc..caad27ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,25 @@ All notable changes to this project will be documented in this file, per [the Ke ### Security --> +## [2.8.5] - 2023-04-22 + +### Changed +- Add Select field for labels. Props [@burhandodhy](https://github.com/burhandodhy) via [#378](https://github.com/10up/brightcove-video-connect/pull/378). +- Cache the API response and display a message from where user can retry the API again. Props [@burhandodhy](https://github.com/burhandodhy) and [@jonnynews](https://github.com/jonnynews) via [#380](https://github.com/10up/brightcove-video-connect/pull/380). +- Update readme and assets. Props [@jeffpaul](https://github.com/jeffpaul) via [#375](https://github.com/10up/brightcove-video-connect/pull/375). + +### Fixed +- First parameter type of add_submenu_page() when no parent slug is sent. Props [@jonnynews](https://github.com/jonnynews) via [#365](https://github.com/10up/brightcove-video-connect/pull/365). +- Display error message when the previous request is aborted. Props [@burhandodhy](https://github.com/burhandodhy) via [#368](https://github.com/10up/brightcove-video-connect/pull/368). +- PHP warning while editing a label. Props [@MARQAS](https://github.com/MARQAS) and [@felipeelia](https://github.com/felipeelia) via [#369](https://github.com/10up/brightcove-video-connect/pull/369). +- PHP warning while saving a video. Props [@MARQAS](https://github.com/MARQAS) and [@felipeelia](https://github.com/felipeelia) via [#370](https://github.com/10up/brightcove-video-connect/pull/370). +- Move playlist notice above controls bar. Props [@MARQAS](https://github.com/MARQAS) and [@felipeelia](https://github.com/felipeelia) via [#371](https://github.com/10up/brightcove-video-connect/pull/371). +- Clicking on the "Edit" and "Preview" buttons for the inactive videos breakes the layout. Props [@burhandodhy](https://github.com/burhandodhy) and [@felipeelia](https://github.com/felipeelia) via [#372](https://github.com/10up/brightcove-video-connect/pull/372). +- Add support for special characters. Props [@burhandodhy](https://github.com/burhandodhy) and [@cr0ybot](https://github.com/cr0ybot) via [#373](https://github.com/10up/brightcove-video-connect/pull/373). +- Search box alignment in Media modal. Props [@MARQAS](https://github.com/MARQAS) and [@felipeelia](https://github.com/felipeelia) via [#376](https://github.com/10up/brightcove-video-connect/pull/376). +- Limit API calls on unwanted admin pages. Props [@burhandodhy](https://github.com/burhandodhy) via [#379](https://github.com/10up/brightcove-video-connect/pull/379). +- Video update API fails when labels are empty. Props [@burhandodhy](https://github.com/burhandodhy) via [#381](https://github.com/10up/brightcove-video-connect/pull/381). + ## [2.8.4] - 2023-11-30 ### Added @@ -99,7 +118,7 @@ All notable changes to this project will be documented in this file, per [the Ke - Video and Playlist experiences displays wrong block settings. Props [@Rahmon](https://github.com/Rahmon), and [@oscarssanchez](https://github.com/oscarssanchez) via [#250](https://github.com/10up/brightcove-video-connect/pull/250). - Update attribute type from int to string. Props [@Rahmon](https://github.com/Rahmon), and [@oscarssanchez](https://github.com/oscarssanchez) via [#246](https://github.com/10up/brightcove-video-connect/pull/246). - Pass sizing attribute to determine if responsiveness should be enabled. Props [@Rahmon](https://github.com/Rahmon), and [@oscarssanchez](https://github.com/oscarssanchez) via [#249](https://github.com/10up/brightcove-video-connect/pull/249). -- Fix broken Brightcove experiences embedding. Props [@Rahmon](https://github.com/Rahmon), and [@oscarssanchez](https://github.com/oscarssanchez) via [#248](https://github.com/10up/brightcove-video-connect/pull/248) +- Fix broken Brightcove experiences embedding. Props [@Rahmon](https://github.com/Rahmon), and [@oscarssanchez](https://github.com/oscarssanchez) via [#248](https://github.com/10up/brightcove-video-connect/pull/248). ## [2.5.0] - 2021-12-21 @@ -136,7 +155,7 @@ All notable changes to this project will be documented in this file, per [the Ke ### Breaking Changes - BC_Utility API changed: - See `set_cache_item` and `delete_cache_item` in `includes/class-bc-utility.php`. - - Removed `remove_deleted_players` function. + - Removed `remove_deleted_players` function. ### Fixed - Undefined index warnings. Props [@sanketio](https://github.com/sanketio) via [#197](https://github.com/10up/brightcove-video-connect/pull/197). - Typo for the `$allowedtags` global used in conjunction with wp_kses. Props [@theskinnyghost](https://github.com/theskinnyghost) via [#203](https://github.com/10up/brightcove-video-connect/pull/203). @@ -443,6 +462,7 @@ All notable changes to this project will be documented in this file, per [the Ke - First release [Unreleased]: https://github.com/10up/brightcove-video-connect/compare/master...develop +[2.8.5]: https://github.com/10up/brightcove-video-connect/compare/2.8.4...2.8.5 [2.8.4]: https://github.com/10up/brightcove-video-connect/compare/2.8.3...2.8.4 [2.8.3]: https://github.com/10up/brightcove-video-connect/compare/2.8.2...2.8.3 [2.8.2]: https://github.com/10up/brightcove-video-connect/compare/2.8.1...2.8.2 diff --git a/README.md b/README.md index 4ff9f21c..c6346163 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Are you looking to handle your [Brightcove](https://www.brightcove.com/en/online-video-platform) Video and Playlist library natively from within WordPress? -With this plugin, developed by [10up](http://10up.com), you have the power to handle multiple accounts and video libraries, upload videos and add them to playlists, render shortcodes with your videos and all from within the WordPress admin interface. +With this plugin, you have the power to handle multiple accounts and video libraries, upload videos and add them to playlists, render shortcodes with your videos and all from within the WordPress admin interface. ## Support Notice @@ -115,7 +115,7 @@ However, in order for it to work you need to make sure you have multiple audio t ## Support Level -**Active:** 10up is actively working on this, and we expect to continue work for the foreseeable future including keeping tested up to the most recent version of WordPress. Bug reports, feature requests, questions, and pull requests are welcome. +**Active:** Brightcove is actively working on this, and we expect to continue work for the foreseeable future including keeping tested up to the most recent version of WordPress. Bug reports, feature requests, questions, and pull requests are welcome. ## Changelog diff --git a/assets/css/brightcove_video_connect.css b/assets/css/brightcove_video_connect.css index de75655d..08df1569 100644 --- a/assets/css/brightcove_video_connect.css +++ b/assets/css/brightcove_video_connect.css @@ -89,6 +89,7 @@ div.brightcove-uploader div.brightcove-messages .updated { .brightcove-modal .brightcove .media-toolbar-primary.search-form input[type=search] { float: left; + margin: 0; padding-bottom: 0px; width: 200px; } @@ -129,7 +130,9 @@ div.brightcove-uploader div.brightcove-messages .updated { .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 { +.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 { @@ -633,15 +636,41 @@ div.brightcove-uploader div.brightcove-messages .updated { .brightcove.video-edit .caption-secondary-fields label:nth-child(1) { padding-right: 1em; } .brightcove.video-edit .caption-secondary-fields label span, - .brightcove.video-edit .caption-secondary-fields label input[type="text"], + .brightcove.video-edit .caption-secondary-fields label input[type='text'], .brightcove.video-edit .caption-secondary-fields label select { margin: 0; min-width: 100%; text-align: left; width: 100%; } - .brightcove.video-edit .caption-secondary-fields label input[type="checkbox"] { + .brightcove.video-edit .caption-secondary-fields label input[type='checkbox'] { margin: auto; } +.brightcove.video-edit .bc-labels-list { + margin: 0; + text-align: left; } + .brightcove.video-edit .bc-labels-list li { + background-color: #fff; + border-radius: 4px; + border: 1px solid #8c8f94; + display: inline-block; + margin: 0 10px 10px 0; + white-space: nowrap; } + .brightcove.video-edit .bc-labels-list button { + background-color: #f6f7f7; + border-bottom-left-radius: 4px; + border-right: 1px solid #8c8f94; + border-top-left-radius: 4px; + border: none; + cursor: pointer; + padding: 10px; } + .brightcove.video-edit .bc-labels-list span { + float: none; } + .brightcove.video-edit .bc-labels-list .label-name { + padding: 10px; } + +.brightcove.video-edit .add-labels-container select { + margin-left: 0; } + .playlist-edit.brightcove.attachment-details { width: 100%; height: auto; diff --git a/assets/css/brightcove_video_connect.min.css b/assets/css/brightcove_video_connect.min.css index 6c145fd0..6aaa4a95 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:first-child{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:5px;padding-top:5px}.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-content .brightcove-datetime-wrapper,.playlist-edit-container .brightcove-datetime-wrapper{display:-ms-flexbox;display:flex}.brightcove.media-frame-content .brightcove-datetime-colon,.playlist-edit-container .brightcove-datetime-colon{width:10px;min-width:auto;margin-right:0;font-size:14px}.brightcove.media-frame-content .schedule-end-date,.brightcove.media-frame-content .schedule-start-date,.playlist-edit-container .schedule-end-date,.playlist-edit-container .schedule-start-date{margin-right:calc(4% + 7px)}.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 .inpageexperiences-info,.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 .inpageexperiences-info .inpageexperiences-name,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .playlist-name,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-name,.brightcove.media-frame-menu .attachment-detail .playlist-info .inpageexperiences-name,.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 .inpageexperiences-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 .inpageexperiences-info .bc-video-section,.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 .inpageexperiences-info .brightcove-player,.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 .inpageexperiences-info .account-name,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .created-date,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .playlist-id,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .playlist-type,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .updated-date,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-created,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-description,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-long-description,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-updated,.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 .inpageexperiences-info .account-name .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .created-date .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .playlist-id .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .playlist-type .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .updated-date .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-created .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-description .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-long-description .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-updated .title,.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 .inpageexperiences-details .left-col,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-details label,.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 .inpageexperiences-details .right-col,.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 .inpageexperiences-details .clear,.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 .inpageexperiences-details input[type=number],.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 .inpageexperiences-details input[type=checkbox],.brightcove.media-frame-menu .attachment-detail .playlist-details input[type=checkbox],.brightcove.media-frame-menu .attachment-detail .video-details input[type=checkbox]{margin-left:10px}.brightcove.media-frame-menu .attachment-detail .inpageexperiences-details textarea,.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 .inpageexperiences-details #custom,.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:inline-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 .label-repeater.empty-row{display:none}.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:last-child{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 input.brightcove-labels{clear:both;margin-top:.7em;margin-bottom:.2em;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%;margin-bottom:3px}.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:first-child{padding-right:1em}.brightcove.video-edit .caption-secondary-fields label input[type=text],.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%}.brightcove.video-edit .caption-secondary-fields label input[type=checkbox]{margin:auto}.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}.brightcove-labels-column{padding:8px} \ 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:first-child{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;margin:0;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:5px;padding-top:5px}.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-content .brightcove-datetime-wrapper,.playlist-edit-container .brightcove-datetime-wrapper{display:-ms-flexbox;display:flex}.brightcove.media-frame-content .brightcove-datetime-colon,.playlist-edit-container .brightcove-datetime-colon{width:10px;min-width:auto;margin-right:0;font-size:14px}.brightcove.media-frame-content .schedule-end-date,.brightcove.media-frame-content .schedule-start-date,.playlist-edit-container .schedule-end-date,.playlist-edit-container .schedule-start-date{margin-right:calc(4% + 7px)}.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 .inpageexperiences-info,.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 .inpageexperiences-info .inpageexperiences-name,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .playlist-name,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-name,.brightcove.media-frame-menu .attachment-detail .playlist-info .inpageexperiences-name,.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 .inpageexperiences-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 .inpageexperiences-info .bc-video-section,.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 .inpageexperiences-info .brightcove-player,.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 .inpageexperiences-info .account-name,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .created-date,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .playlist-id,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .playlist-type,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .updated-date,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-created,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-description,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-long-description,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-updated,.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 .inpageexperiences-info .account-name .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .created-date .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .playlist-id .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .playlist-type .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .updated-date .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-created .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-description .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-long-description .title,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-info .video-updated .title,.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 .inpageexperiences-details .left-col,.brightcove.media-frame-menu .attachment-detail .inpageexperiences-details label,.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 .inpageexperiences-details .right-col,.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 .inpageexperiences-details .clear,.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 .inpageexperiences-details input[type=number],.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 .inpageexperiences-details input[type=checkbox],.brightcove.media-frame-menu .attachment-detail .playlist-details input[type=checkbox],.brightcove.media-frame-menu .attachment-detail .video-details input[type=checkbox]{margin-left:10px}.brightcove.media-frame-menu .attachment-detail .inpageexperiences-details textarea,.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 .inpageexperiences-details #custom,.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:inline-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 .label-repeater.empty-row{display:none}.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:last-child{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 input.brightcove-labels{clear:both;margin-top:.7em;margin-bottom:.2em;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%;margin-bottom:3px}.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:first-child{padding-right:1em}.brightcove.video-edit .caption-secondary-fields label input[type=text],.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%}.brightcove.video-edit .caption-secondary-fields label input[type=checkbox]{margin:auto}.brightcove.video-edit .bc-labels-list{margin:0;text-align:left}.brightcove.video-edit .bc-labels-list li{background-color:#fff;border-radius:4px;border:1px solid #8c8f94;display:inline-block;margin:0 10px 10px 0;white-space:nowrap}.brightcove.video-edit .bc-labels-list button{background-color:#f6f7f7;border-bottom-left-radius:4px;border-right:1px solid #8c8f94;border-top-left-radius:4px;border:none;cursor:pointer;padding:10px}.brightcove.video-edit .bc-labels-list span{float:none}.brightcove.video-edit .bc-labels-list .label-name{padding:10px}.brightcove.video-edit .add-labels-container select{margin-left:0}.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}.brightcove-labels-column{padding:8px} \ No newline at end of file diff --git a/assets/css/jquery-ui-datepicker.min.css b/assets/css/jquery-ui-datepicker.min.css index 09ca60fd..e700798b 100644 --- a/assets/css/jquery-ui-datepicker.min.css +++ b/assets/css/jquery-ui-datepicker.min.css @@ -58,4 +58,8 @@ * http://jqueryui.com * Includes: core.css, datepicker.css, theme.css * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px +* Copyright jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-next-hover,.ui-datepicker .ui-datepicker-prev-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:700}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:400;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:4px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}/*! jQuery UI - v1.11.4 - 2021-11-11 +* http://jqueryui.com +* Includes: core.css, datepicker.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px * Copyright jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-next-hover,.ui-datepicker .ui-datepicker-prev-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:700}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:400;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:4px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file diff --git a/assets/js/brightcove-admin.js b/assets/js/brightcove-admin.js index 9b8ca6de..7d51d2d3 100644 --- a/assets/js/brightcove-admin.js +++ b/assets/js/brightcove-admin.js @@ -512,14 +512,14 @@ var MediaCollection = Backbone.Collection.extend({ return fallback.sync.apply(this, arguments); }, - fetchFail: function () { + fetchFail: function (response, textStatus) { if (this.pageNumber > 1) { this.pageNumber--; } wpbc.broadcast.trigger('fetch:finished'); wpbc.broadcast.trigger('spinner:off'); - wpbc.broadcast.trigger('fetch:apiError'); - if (status === 'abort') { + if (textStatus !== 'abort') { + wpbc.broadcast.trigger('fetch:apiError'); } }, @@ -2843,9 +2843,8 @@ var VideoEditView = BrightcoveView.extend({ 'click .caption-secondary-fields .delete': 'removeCaptionRow', 'click .add-remote-caption': 'addCaptionRow', 'change .brightcove-variant': 'changeVariant', - 'click .add-bc-label': 'addLabelRow', - 'keypress .brightcove-labels': 'labelAutocomplete', - 'click .bc-label-secondary-fields .delete': 'removeLabelRow', + 'click .bc-labels-list .remove-label': 'removeLabel', + 'click .bc-add-label': 'addLabel', }, /** @@ -3008,75 +3007,6 @@ var VideoEditView = BrightcoveView.extend({ image.empty(); }, - /** - * Add a label row - * - * @param {Event} evnt - * @param {Object} media - */ - addLabelRow: function (evnt, media) { - var source = undefined; - if (media) { - source = media.url; - } - - this.addLabel(source); - }, - - /** - * Adds a label - * - * @param source - * @param language - * @param label - * @param defaultcap - */ - addLabel: function (source, language, label, defaultcap) { - let newRow = $(document.getElementById('js-bc-label-empty-row')).clone(), - container = document.getElementById('js-bc-labels'); - - // Clean up our cloned row - newRow.find('input').prop('disabled', false).val(''); - newRow.removeAttr('id'); - newRow.removeClass('empty-row'); - - // Append our new row to the container - $(container).append(newRow); - }, - - /** - * Fires the autocomplete function - * - * @param {Event} evnt - */ - labelAutocomplete: function (evnt) { - jQuery('.brightcove-labels').autocomplete({ - source: wpbc.preload.labels, - select: function () { - $(this).parent('.bc-label-repeater.empty-row').removeClass('empty-row'); - }, - appendTo: '.media-modal', - }); - }, - - /** - * Removes a label row - * @param {Event} evnt - */ - removeLabelRow: function (evnt) { - evnt.preventDefault(); - - let label = evnt.currentTarget, - container = $(label).parents('.bc-label-repeater'), - source = container.find('.brightcove-labels'); - - // Empty the input fields - $(source).val(''); - - // Remove the container entirely - container.remove(); - }, - /** * Add a caption row * @@ -3286,17 +3216,8 @@ var VideoEditView = BrightcoveView.extend({ this.model.set('captions', captions); // Labels - var labels = []; - this.$el - .find('.bc-label-repeater.repeater-row') - .not('.empty-row') - .each(function () { - var label = $(this), - Name = label.find('.brightcove-labels').val(); - - labels.push(Name); - }); - + let labels = this.$el.find('.bc-labels-value').val(); + labels = labels !== '' ? labels.split(',') : []; this.model.set('labels', labels); // Custom fields @@ -3400,6 +3321,52 @@ var VideoEditView = BrightcoveView.extend({ this.model.set('custom', custom); }, + /** + * Adds a label. + * @param {Event} event + */ + addLabel: function (event) { + event.preventDefault(); + + const elem = this.el.querySelector('.brightcove-labels'); + const labelsValElem = this.el.querySelector('.bc-labels-value'); + const value = elem.value; + + elem.querySelector('option[value="' + value + '"]').setAttribute('disabled', true); + elem.selectedIndex = 0; + + const listItem = `
  • + + ${value} +
  • `; + + this.el.querySelector('.bc-labels-list').insertAdjacentHTML('beforeend', listItem); + + labelsValElem.value = labelsValElem.value ? labelsValElem.value + ',' + value : value; + }, + + /** + * Removes a label. + * @param {Event} event + */ + removeLabel: function (event) { + event.preventDefault(); + + const label = event.currentTarget.dataset.label; + const labelsValElem = this.el.querySelector('.bc-labels-value'); + const labelElem = this.el.querySelector('.brightcove-labels'); + const selectedLabels = labelsValElem.value.split(','); + + var index = selectedLabels.indexOf(label); + if (index > -1) { + selectedLabels.splice(index, 1); + } + + labelsValElem.value = selectedLabels.join(','); + labelElem.querySelector('option[value="' + label + '"]').removeAttribute('disabled'); + event.currentTarget.parentElement.remove(); + }, + /** * Render the actual view for the Video Edit screen. * diff --git a/assets/js/brightcove-admin.js.map b/assets/js/brightcove-admin.js.map index 9a444c10..808b5e65 100644 --- a/assets/js/brightcove-admin.js.map +++ b/assets/js/brightcove-admin.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/models/media.js","src/models/media-collection.js","src/models/brightcove-media-manager.js","src/models/brightcove-modal.js","src/models/upload-collection.js","src/models/upload.js","src/views/brightcove.js","src/views/toolbar.js","src/views/upload-video-manager.js","src/views/brightcove-media-manager.js","src/views/brightcove-modal.js","src/views/media-details.js","src/views/media.js","src/views/playlist-edit.js","src/views/upload-details.js","src/views/upload-window.js","src/views/upload.js","src/views/video-edit.js","src/views/video-preview.js","src/views/media-collection.js","src/app.js"],"names":[],"mappings":"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","file":"brightcove-admin.js","sourcesContent":["/**\n * Media model for Media CPT\n */\n\nvar MediaModel = Backbone.Model.extend({\n\t/**\n\t * Copied largely from WP Attachment sync function\n\t * Triggered when attachment details change\n\t * Overrides Backbone.Model.sync\n\t *\n\t * @param {string} method\n\t * @param {wp.media.model.Media} model\n\t * @param {Object} [options={}]\n\t *\n\t * @returns {Promise}\n\t */\n\tsync: function (method, model, options) {\n\t\tvar accountHash = null;\n\n\t\t// Set the accountHash to the wpbc.preload.accounts[*] where the account_id\n\t\t// matches this media objects account_id.\n\t\t_.find(\n\t\t\twpbc.preload.accounts,\n\t\t\tfunction (account, hash) {\n\t\t\t\tif (account.account_id === this.get('account_id')) {\n\t\t\t\t\taccountHash = hash;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\t// If the attachment does not yet have an `id`, return an instantly\n\t\t// rejected promise. Otherwise, all of our requests will fail.\n\t\tif (_.isUndefined(this.id)) {\n\t\t\treturn $.Deferred().rejectWith(this).promise();\n\t\t}\n\n\t\t// Overload the `read` request so Media.fetch() functions correctly.\n\t\tif (method === 'read') {\n\t\t\toptions = options || {};\n\t\t\toptions.context = this;\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taction: 'bc_media_fetch',\n\t\t\t\tid: this.id,\n\t\t\t});\n\n\t\t\treturn wp.media.ajax(options);\n\n\t\t\t// Overload the `update` request so properties can be saved.\n\t\t}\n\t\tif (method === 'update') {\n\t\t\toptions = options || {};\n\t\t\toptions.context = this;\n\t\t\t// Set the action and ID.\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taccount: accountHash,\n\t\t\t\taction: 'bc_media_update',\n\t\t\t\tdescription: this.get('description'),\n\t\t\t\tlong_description: this.get('long_description'),\n\t\t\t\tname: this.get('name'),\n\t\t\t\tnonce: wpbc.preload.nonce,\n\t\t\t\ttags: this.get('tags'),\n\t\t\t\told_folder_id: this.get('old_folder_id'),\n\t\t\t\tfolder_id: this.get('folder_id'),\n\t\t\t\ttype: this.get('mediaType'),\n\t\t\t\tcustom_fields: this.get('custom_fields'),\n\t\t\t\thistory: this.get('_change_history'),\n\t\t\t\tposter: this.get('poster'),\n\t\t\t\tthumbnail: this.get('thumbnail'),\n\t\t\t\tcaptions: this.get('captions'),\n\t\t\t\tlabels: this.get('labels'),\n\t\t\t\tsub_type: this.get('subType'),\n\t\t\t\tlanguage: this.get('language'),\n\t\t\t});\n\n\t\t\tvar video_ids = this.get('video_ids');\n\t\t\tif (video_ids) {\n\t\t\t\toptions.data.playlist_id = this.id;\n\t\t\t\toptions.data.playlist_videos = video_ids;\n\t\t\t\toptions.data.type = 'playlists';\n\t\t\t} else {\n\t\t\t\toptions.data.video_id = this.id;\n\t\t\t\toptions.data.state = this.get('state');\n\t\t\t\toptions.data.scheduled_start_date = this.get('scheduled_start_date');\n\t\t\t\toptions.data.scheduled_end_date = this.get('scheduled_end_date');\n\t\t\t}\n\n\t\t\toptions.success = this.successFunction;\n\t\t\toptions.error = this.failFunction;\n\n\t\t\twpbc.broadcast.trigger('spinner:on');\n\t\t\treturn wp.media.ajax(options);\n\n\t\t\t// Overload the `delete` request so attachments can be removed.\n\t\t\t// This will permanently delete an attachment.\n\t\t}\n\t\tif (method === 'delete') {\n\t\t\toptions = options || {};\n\t\t\tvar self = this;\n\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taccount: accountHash,\n\t\t\t\taction: 'bc_media_delete',\n\t\t\t\tid: this.get('id'),\n\t\t\t\tnonce: wpbc.preload.nonce,\n\t\t\t\ttype: this.get('mediaType'),\n\t\t\t});\n\n\t\t\treturn wp.media\n\t\t\t\t.ajax(options)\n\t\t\t\t.done(function (response) {\n\t\t\t\t\tself.destroyed = true;\n\t\t\t\t\twpbc.broadcast.trigger('delete:successful', response);\n\t\t\t\t\tif (\n\t\t\t\t\t\tself.get('mediaType') === 'videos' ||\n\t\t\t\t\t\t!_.isUndefined(self.get('video_ids'))\n\t\t\t\t\t) {\n\t\t\t\t\t\twpbc.preload.videos = undefined;\n\t\t\t\t\t} else {\n\t\t\t\t\t\twpbc.preload.playlists = undefined;\n\t\t\t\t\t}\n\t\t\t\t\twpbc.responses = {};\n\t\t\t\t})\n\t\t\t\t.fail(function (response) {\n\t\t\t\t\tself.destroyed = false;\n\t\t\t\t\twpbc.broadcast.trigger('videoEdit:message', response, 'error');\n\t\t\t\t\twpbc.broadcast.trigger('spinner:off');\n\t\t\t\t});\n\n\t\t\t// Otherwise, fall back to `Backbone.sync()`.\n\t\t}\n\t\t/**\n\t\t * Call `sync` directly on Backbone.Model\n\t\t */\n\t\treturn Backbone.Model.prototype.sync.apply(this, arguments);\n\t},\n\n\t/**\n\t * Convert date strings into Date objects.\n\t *\n\t * @param {Object} resp The raw response object, typically returned by fetch()\n\t * @returns {Object} The modified response object, which is the attributes hash\n\t * to be set on the model.\n\t */\n\tparse: function (resp) {\n\t\tif (!resp) {\n\t\t\treturn resp;\n\t\t}\n\n\t\tresp.date = new Date(resp.date);\n\t\tresp.modified = new Date(resp.modified);\n\t\treturn resp;\n\t},\n\n\tgetAccountName: function () {\n\t\tvar account_id = this.get('account_id');\n\t\tvar matchingAccount = _.findWhere(wpbc.preload.accounts, {\n\t\t\taccount_id: this.get('account_id'),\n\t\t});\n\t\treturn undefined === matchingAccount\n\t\t\t? this.getSelectedAccountName()\n\t\t\t: matchingAccount.account_name;\n\t},\n\n\tgetSelectedAccountName: function () {\n\t\tvar elt = document.getElementById('brightcove-media-source');\n\n\t\tif (elt.selectedIndex === -1) {\n\t\t\treturn 'unavailable';\n\t\t}\n\n\t\treturn elt.options[elt.selectedIndex].text;\n\t},\n\n\tgetReadableDuration: function () {\n\t\tvar duration = this.get('duration');\n\n\t\tif (duration) {\n\t\t\tduration = Number(duration / 1000);\n\t\t\tvar hours = Math.floor(duration / 3600);\n\t\t\tvar minutes = Math.floor((duration % 3600) / 60);\n\t\t\tvar seconds = Math.floor((duration % 3600) % 60);\n\t\t\treturn (\n\t\t\t\t(hours > 0 ? hours + ':' + (minutes < 10 ? '0' : '') : '') +\n\t\t\t\tminutes +\n\t\t\t\t':' +\n\t\t\t\t(seconds < 10 ? '0' : '') +\n\t\t\t\tseconds\n\t\t\t);\n\t\t}\n\t\treturn duration;\n\t},\n\n\tgetReadableDate: function (field) {\n\t\tvar updated_at = this.get(field);\n\n\t\tif (updated_at) {\n\t\t\tvar date = new Date(updated_at);\n\n\t\t\tvar hour = date.getHours();\n\t\t\tvar min = date.getMinutes();\n\t\t\tvar year = date.getFullYear();\n\t\t\tvar mon = date.getMonth() + 1;\n\t\t\tvar day = date.getDate();\n\t\t\tvar ampm = hour >= 12 ? 'pm' : 'am';\n\n\t\t\thour %= 12;\n\t\t\thour = hour || 12;\n\n\t\t\tmin = min < 10 ? '0' + min : min;\n\n\t\t\tvar readableDate = year + '/' + mon + '/' + day + ' - ' + hour + ':' + min + ' ' + ampm;\n\t\t\treturn readableDate;\n\t\t}\n\t\treturn updated_at;\n\t},\n\n\tsuccessFunction: function (message) {\n\t\twpbc.broadcast.trigger('videoEdit:message', message, 'success');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t\tif (_.isArray(this.get('video_ids')) && wpbc.preload && wpbc.preload.playlists) {\n\t\t\tvar id = this.get('id');\n\t\t\t_.each(\n\t\t\t\twpbc.preload.playlists,\n\t\t\t\tfunction (playlist, index) {\n\t\t\t\t\tif (playlist.id === id) {\n\t\t\t\t\t\twpbc.preload.playlists[index] = this.toJSON();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\t\t}\n\t\twpbc.responses = {};\n\t\tif (this.get('mediaType') === 'videos' || !_.isUndefined(this.get('video_ids'))) {\n\t\t\twpbc.preload.videos = undefined;\n\t\t} else {\n\t\t\twpbc.preload.playlists = undefined;\n\t\t}\n\t},\n\n\tfailFunction: function (message) {\n\t\twpbc.broadcast.trigger('videoEdit:message', message, 'error');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t},\n});\n","var MediaCollection = Backbone.Collection.extend({\n\tmodel: MediaModel,\n\t/**\n\t * @param {Array} [models=[]] Array of models used to populate the collection.\n\t * @param {Object} [options={}]\n\t */\n\tinitialize: function (models, options) {\n\t\toptions = options || {};\n\t\tif (options.activeAccount) {\n\t\t\tthis.activeAccount = options.activeAccount;\n\t\t}\n\n\t\tthis.additionalRequest = false;\n\n\t\tthis.pageNumber = this.pageNumber || 1;\n\n\t\tif (\n\t\t\t!this.mediaType &&\n\t\t\t(this.mediaCollectionViewType === 'existingPlaylists' ||\n\t\t\t\tthis.mediaCollectionViewType === 'libraryPlaylists')\n\t\t) {\n\t\t\tthis.mediaType = 'videos';\n\t\t}\n\n\t\tthis.mediaCollectionViewType = options.mediaCollectionViewType || 'grid';\n\n\t\tif (options.excludeVideoIds && options.mediaCollectionViewType === 'libraryPlaylists') {\n\t\t\tthis.excludeVideoIds = options.excludeVideoIds;\n\t\t}\n\n\t\tif (options.videoIds && !models) {\n\t\t\tthis.mediaType = 'videos';\n\t\t\tthis.videoIds = options.videoIds;\n\t\t\tthis.fetch();\n\t\t} else if (options.mediaType !== 'playlists') {\n\t\t\tthis.mediaType = 'videos';\n\t\t\tthis.fetch();\n\t\t}\n\n\t\tthis.mediaType = options.mediaType;\n\n\t\tif (this.mediaType === 'videos') {\n\t\t\tthis.listenTo(wpbc.broadcast, 'uploader:uploadedFileDetails', function (video) {\n\t\t\t\t// Add the newly uploaded file\n\t\t\t\tthis.add(video, { at: 0 });\n\t\t\t});\n\t\t}\n\n\t\tthis.activeAccount = options.activeAccount || 'all';\n\t\tthis.searchTerm = options.searchTerm || '';\n\t\tthis.dates = options.dates || 'all';\n\t\tthis.tag = options.tag || '';\n\t\tthis.folder_id = options.folder_id || '';\n\t\tthis.old_folder_id = options.old_folder_id || '';\n\t\tthis.labelPath = options.labelPath || '';\n\t\tthis.oldLabelPath = options.oldLabelPath || '';\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:activeAccount', function (accountId) {\n\t\t\tthis.activeAccount = accountId;\n\t\t\twp.heartbeat.enqueue('brightcove_heartbeat', { accountId: accountId }, true);\n\t\t\tthis.fetch();\n\t\t});\n\n\t\t$(document).on('heartbeat-tick.brightcove_heartbeat', function (event, data) {\n\t\t\tif (data.hasOwnProperty('brightcove_heartbeat')) {\n\t\t\t\twp.heartbeat.enqueue(\n\t\t\t\t\t'brightcove_heartbeat',\n\t\t\t\t\t{ accountId: data.brightcove_heartbeat.account_id },\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:searchTerm', function (searchTerm) {\n\t\t\tthis.searchTerm = searchTerm;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:tag', function (tag) {\n\t\t\tif (tag === 'all') {\n\t\t\t\ttag = '';\n\t\t\t}\n\n\t\t\tthis.tag = tag;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:folder', function (folder_id) {\n\t\t\tthis.old_folder_id = this.folder_id;\n\n\t\t\tif (folder_id === 'all') {\n\t\t\t\tfolder_id = '';\n\t\t\t}\n\n\t\t\tthis.folder_id = folder_id;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:label', function (labelPath) {\n\t\t\tthis.oldLabelPath = this.labelPath;\n\n\t\t\tif (labelPath === 'all') {\n\t\t\t\tlabelPath = '';\n\t\t\t}\n\n\t\t\tthis.labelPath = labelPath;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:stateChanged', function (state) {\n\t\t\tthis.oldState = this.state;\n\t\t\tthis.state = state;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'change:date', function (date) {\n\t\t\tthis.date = date;\n\t\t\tthis.fetch();\n\t\t});\n\n\t\tthis.listenTo(wpbc.broadcast, 'tabChange', function (settings) {\n\t\t\tthis.killPendingRequests();\n\t\t\tif (settings.mediaType !== this.mediaType) {\n\t\t\t\tthis.mediaType = settings.mediaType;\n\t\t\t\tvar preload = wpbc.preload[this.mediaType];\n\t\t\t\tvar model;\n\t\t\t\t// Remove all models from the collection\n\t\t\t\twhile ((model = this.first())) {\n\t\t\t\t\tthis.remove(model);\n\t\t\t\t}\n\t\t\t\tif (preload !== undefined) {\n\t\t\t\t\tthis.add(preload);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fetch();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tkillPendingRequests: function () {\n\t\t// Kill all pending requests\n\t\t_.each(wpbc.requests, function (request) {\n\t\t\trequest.abort();\n\t\t});\n\n\t\twpbc.requests = [];\n\t},\n\n\tchecksum: function (object) {\n\t\tif (!_.isString(object)) {\n\t\t\tif (_.isFunction(object.toJSON)) {\n\t\t\t\tobject = object.toJSON();\n\t\t\t} else {\n\t\t\t\tobject = JSON.stringify(object);\n\t\t\t}\n\t\t}\n\t\tvar checksum = 0x12345678;\n\n\t\tfor (var i = 0; i < object.length; i++) {\n\t\t\tchecksum += object.charCodeAt(i) * (i + 1);\n\t\t}\n\n\t\treturn checksum;\n\t},\n\n\t/**\n\t * Overrides Backbone.Collection.sync\n\t *\n\t * @param {String} method\n\t * @param {Backbone.Model} model\n\t * @param {Object} [options={}]\n\t * @returns {Promise}\n\t */\n\tsync: function (method, model, options) {\n\t\tvar args, fallback;\n\n\t\t// Overload the read method so Media.fetch() functions correctly.\n\t\tif (method === 'read') {\n\t\t\toptions = options || {};\n\t\t\toptions.data = _.extend(options.data || {}, {\n\t\t\t\taction: 'bc_media_query',\n\t\t\t\taccount: this.activeAccount || wpbc.preload.defaultAccountId,\n\t\t\t\tdates: this.date,\n\t\t\t\tposts_per_page: wpbc.posts_per_page,\n\t\t\t\tpage_number: this.pageNumber,\n\t\t\t\tnonce: wpbc.preload.nonce,\n\t\t\t\tsearch: this.searchTerm,\n\t\t\t\ttags: this.tag,\n\t\t\t\tlabels: this.labels,\n\t\t\t\tlabelPath: this.labelPath,\n\t\t\t\toldLabelPath: this.oldLabelPath,\n\t\t\t\told_folder_id: this.old_folder_id,\n\t\t\t\tfolder_id: this.folder_id,\n\t\t\t\tstate: this.state,\n\t\t\t\toldState: this.oldState,\n\t\t\t\ttagName: wpbc.preload.tags[this.tag],\n\t\t\t\ttype: this.mediaType || 'videos',\n\t\t\t});\n\n\t\t\tvar previousRequest = _.pick(\n\t\t\t\toptions.data,\n\t\t\t\t'account',\n\t\t\t\t'dates',\n\t\t\t\t'posts_per_page',\n\t\t\t\t'search',\n\t\t\t\t'tags',\n\t\t\t\t'type',\n\t\t\t\t'folder_id',\n\t\t\t\t'tagName',\n\t\t\t\t'state',\n\t\t\t);\n\n\t\t\t// Determine if we're infinite scrolling or not.\n\t\t\tthis.additionalRequest = _.isEqual(previousRequest, wpbc.previousRequest);\n\t\t\tif (!this.additionalRequest) {\n\t\t\t\toptions.data.page_number = 1;\n\t\t\t}\n\t\t\t/* Prevent reloading on the playlist edit as the playlist videos are one request and library videos another */\n\t\t\tif (this.mediaCollectionViewType !== 'existingPlaylists') {\n\t\t\t\twpbc.previousRequest = previousRequest;\n\t\t\t}\n\n\t\t\tif (this.videoIds) {\n\t\t\t\toptions.data.videoIds = this.videoIds.length ? this.videoIds : 'none';\n\t\t\t}\n\n\t\t\toptions.data.query = args;\n\n\t\t\tif (\n\t\t\t\t!_.contains(['libraryPlaylists', 'existingPlaylists'], this.mediaCollectionViewType)\n\t\t\t) {\n\t\t\t\tthis.killPendingRequests();\n\t\t\t}\n\n\t\t\tvar requestChecksum = this.checksum(options.data);\n\n\t\t\tif (!_.isUndefined(wpbc.responses[requestChecksum])) {\n\t\t\t\tthis.parse({ data: wpbc.responses[requestChecksum] }, 'cached');\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tvar request = $.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: wp.ajax.settings.url,\n\t\t\t\tcontext: this,\n\t\t\t\tdata: options.data,\n\t\t\t})\n\t\t\t\t.done(function (response, status, request) {\n\t\t\t\t\tthis.parse(response, status, request, requestChecksum);\n\t\t\t\t})\n\t\t\t\t.fail(this.fetchFail);\n\n\t\t\twpbc.requests.push(request);\n\t\t\twpbc.broadcast.trigger('spinner:on');\n\n\t\t\treturn request;\n\n\t\t\t// Otherwise, fall back to Backbone.sync()\n\t\t}\n\t\t/**\n\t\t * Call wp.media.model.MediaCollection.sync or Backbone.sync\n\t\t */\n\t\tfallback = MediaCollection.prototype.sync ? MediaCollection.prototype : Backbone;\n\t\treturn fallback.sync.apply(this, arguments);\n\t},\n\n\tfetchFail: function () {\n\t\tif (this.pageNumber > 1) {\n\t\t\tthis.pageNumber--;\n\t\t}\n\t\twpbc.broadcast.trigger('fetch:finished');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t\twpbc.broadcast.trigger('fetch:apiError');\n\t\tif (status === 'abort') {\n\t\t}\n\t},\n\n\t/**\n\t * A custom AJAX-response parser.\n\t *\n\t * See trac ticket #24753\n\t *\n\t * @param {Object|Array} resp The raw response Object/Array.\n\t * @param {Object} xhr\n\t * @returns {Array} The array of model attributes to be added to the\n\t * collection\n\t */\n\tparse: function (response, status, request, checksum) {\n\t\twpbc.broadcast.trigger('fetch:finished');\n\t\twpbc.broadcast.trigger('spinner:off');\n\t\tif (\n\t\t\t!_.contains(['success', 'cached'], status) ||\n\t\t\t(status !== 'cached' && !response.success)\n\t\t) {\n\t\t\twpbc.broadcast.trigger('fetch:apiError');\n\t\t\treturn false;\n\t\t}\n\n\t\tvar data = response.data;\n\n\t\tif (status === 'success') {\n\t\t\twpbc.responses[checksum] = data;\n\t\t}\n\n\t\tif (data === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!_.isArray(data)) {\n\t\t\tdata = [data];\n\t\t}\n\n\t\t/**\n\t\t * In playlist video search, we remove the videos that already exist in\n\t\t * the playlist.\n\t\t */\n\t\tif (_.isArray(this.excludeVideoIds)) {\n\t\t\t_.each(this.excludeVideoIds, function (videoId) {\n\t\t\t\tdata = _.without(data, _.findWhere(data, { id: videoId }));\n\t\t\t});\n\t\t}\n\n\t\tif (data.length === 0) {\n\t\t\twpbc.broadcast.trigger('videoEdit:message', 'No videos found.', 'error', true);\n\t\t}\n\n\t\tvar allMedia = _.map(\n\t\t\tdata,\n\t\t\tfunction (attrs) {\n\t\t\t\tvar id, media, newAttributes;\n\n\t\t\t\tif (attrs instanceof Backbone.Model) {\n\t\t\t\t\tid = attrs.get('id');\n\t\t\t\t\tattrs = attrs.attributes;\n\t\t\t\t} else {\n\t\t\t\t\tid = attrs.id;\n\t\t\t\t}\n\n\t\t\t\tmedia = this.findWhere({ id: id });\n\t\t\t\tif (!media) {\n\t\t\t\t\tmedia = this.add(attrs);\n\t\t\t\t} else {\n\t\t\t\t\tnewAttributes = media.parse(attrs);\n\n\t\t\t\t\tif (!_.isEqual(media.attributes, newAttributes)) {\n\t\t\t\t\t\tmedia.set(newAttributes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tmedia.set('viewType', this.mediaCollectionViewType);\n\t\t\t\treturn media;\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\tif (this.additionalRequest) {\n\t\t\tthis.add(allMedia);\n\t\t} else {\n\t\t\tthis.set(allMedia);\n\t\t}\n\t},\n});\n","var BrightcoveMediaManagerModel = Backbone.Model.extend({\n\tdefaults: {\n\t\tview: 'grid',\n\t\tdate: 'all',\n\t\ttags: 'all',\n\t\ttype: null, // enum[playlist, video]\n\t\tpreload: true,\n\t\tsearch: '',\n\t\taccount: wpbc.preload.defaultAccountId,\n\t\tposter: {},\n\t\tthumbnail: {},\n\t},\n\tinitialize: function (options) {\n\t\t_.defaults(options, this.defaults);\n\n\t\twp.heartbeat.enqueue(\n\t\t\t'brightcove_heartbeat',\n\t\t\t{ accountId: wpbc.preload.defaultAccountId },\n\t\t\ttrue,\n\t\t);\n\n\t\tvar collection = new MediaCollection([], { mediaType: options.mediaType });\n\t\tcollection.reset();\n\t\t/* Prevent empty element from living in our collection */\n\n\t\tif (options.preload && options.preload.length) {\n\t\t\tcollection.add(options.preload);\n\t\t}\n\n\t\toptions.preload = !!options.preload; // Whether or not a preload var was present.\n\n\t\tthis.set('media-collection-view', new MediaCollectionView({ collection: collection }));\n\t\tthis.set('options', options);\n\t},\n});\n","/**\n * Media model for Media CPT\n */\n\nvar BrightcoveModalModel = Backbone.Model.extend({\n\tgetMediaManagerSettings: function () {\n\t\tvar tab = this.get('tab');\n\t\tvar settings = {\n\t\t\tupload: {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'videos',\n\t\t\t\tmode: 'uploader',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t\tposter: {},\n\t\t\t\tthumbnail: {},\n\t\t\t},\n\t\t\tvideos: {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'videos',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t\tplaylists: {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'playlists',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t\t'video-experience': {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'videoexperience',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t\t'playlist-experience': {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'playlistexperience',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t\t'in-page-experiences': {\n\t\t\t\taccounts: 'all',\n\t\t\t\tdate: 'all',\n\t\t\t\tembedType: 'modal',\n\t\t\t\tmediaType: 'inpageexperiences',\n\t\t\t\tmode: 'manager',\n\t\t\t\tpreload: true,\n\t\t\t\tsearch: '',\n\t\t\t\ttags: 'all',\n\t\t\t\tviewType: 'grid',\n\t\t\t},\n\t\t};\n\n\t\tif (undefined !== settings[tab]) {\n\t\t\treturn settings[tab];\n\t\t}\n\t\treturn false;\n\t},\n});\n","/**\n * Collection model to contain pending uploads\n */\n\nvar UploadModelCollection = Backbone.Collection.extend({\n\tinitialize: function (options) {\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:queuedFilesAdded', this.queuedFilesAdded);\n\t},\n\n\tqueuedFilesAdded: function (queuedFiles) {\n\t\t_.each(\n\t\t\tqueuedFiles,\n\t\t\tfunction (queuedFile) {\n\t\t\t\tthis.add(new UploadModel(queuedFile));\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\t},\n});\n","/**\n * Model to contain pending upload\n */\n\nvar UploadModel = Backbone.Model.extend({\n\tinitialize: function (options) {},\n\n\thumanReadableSize: function () {\n\t\tvar bytes = this.get('size');\n\t\tif (bytes === 0) {\n\t\t\treturn '0 Byte';\n\t\t}\n\t\tvar k = 1000;\n\t\tvar sizes = ['Bytes', 'KB', 'MB', 'GB'];\n\t\tvar i = Math.floor(Math.log(bytes) / Math.log(k));\n\t\treturn (bytes / k ** i).toPrecision(3) + ' ' + sizes[i];\n\t},\n});\n","var BrightcoveView = wp.Backbone.View.extend({\n\tsubviews: null,\n\n\tregisterSubview: function (view) {\n\t\tthis.subviews = this.subviews || [];\n\t\tthis.subviews.push(view);\n\t},\n\n\tremove: function () {\n\t\t_.invoke(this.subviews, 'remove');\n\t\twp.Backbone.View.prototype.remove.call(this);\n\t},\n\n\tinsertShortcode: function () {\n\t\tif (!this.model) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar shortcode = wpbc.shortcode;\n\n\t\tif (undefined === this.mediaType) {\n\t\t\tvar template = wp.template('brightcove-mediatype-notice');\n\n\t\t\t// Throw a notice to the user that the file is not the correct format\n\t\t\t$('#lost-connection-notice').before(template);\n\n\t\t\t// Allow the user to dismiss the notice\n\t\t\t$('#js-mediatype-dismiss').on('click', function () {\n\t\t\t\t$('#js-mediatype-notice')\n\t\t\t\t\t.first()\n\t\t\t\t\t.fadeOut(500, function () {\n\t\t\t\t\t\t$(this).remove();\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tif (wpbc.modal.target === 'content') {\n\t\t\twindow.send_to_editor(shortcode);\n\t\t} else {\n\t\t\t$(wpbc.modal.target).val(shortcode);\n\t\t\t$(wpbc.modal.target).change();\n\t\t}\n\n\t\twpbc.broadcast.trigger('close:modal');\n\t},\n});\n","/**\n * This is the toolbar to handle sorting, filtering, searching and grid/list\n * view toggles. State is captured in the brightcove-media-manager model.\n */\nvar ToolbarView = BrightcoveView.extend({\n\ttagName: 'div',\n\tclassName: 'media-toolbar wp-filter',\n\ttemplate: wp.template('brightcove-media-toolbar'),\n\n\tevents: {\n\t\t'click .view-list': 'toggleList',\n\t\t'click .view-grid': 'toggleGrid',\n\t\t'click .brightcove-toolbar': 'toggleToolbar',\n\t\t'change .brightcove-media-source': 'sourceChanged',\n\t\t'change .brightcove-media-dates': 'datesChanged',\n\t\t'change .brightcove-media-tags': 'tagsChanged',\n\t\t'change .brightcove-media-folders': 'foldersChanged',\n\t\t'change .brightcove-media-labels': 'labelsChanged',\n\t\t'change .brightcove-empty-playlists': 'emptyPlaylistsChanged',\n\t\t'change .brightcove-media-state-filters': 'stateChanged',\n\t\t'click #media-search': 'searchHandler',\n\t\t'keyup .search': 'enterHandler',\n\t\t'input #media-search-input': 'handleEmptySearchInput',\n\t},\n\n\trender: function () {\n\t\tvar mediaType = this.model.get('mediaType');\n\t\tvar options = {\n\t\t\taccounts: wpbc.preload.accounts,\n\t\t\tdates: {},\n\t\t\tmediaType: mediaType,\n\t\t\ttags: wpbc.preload.tags,\n\t\t\tfolders: wpbc.preload.folders,\n\t\t\tlabels: wpbc.preload.labels,\n\t\t\tlabelPath: this.model.get('labelPath'),\n\t\t\tfolder_id: this.model.get('folder_id'),\n\t\t\taccount: this.model.get('account'),\n\t\t};\n\n\t\tvar dates = wpbc.preload.dates;\n\t\tvar date_var = this.model.get('date');\n\t\t/* @todo: find out if this is working */\n\t\tif (\n\t\t\tdates !== undefined &&\n\t\t\tdates[mediaType] !== undefined &&\n\t\t\tdates[mediaType][date_var] !== undefined\n\t\t) {\n\t\t\toptions.dates = dates[mediaType][date_var];\n\t\t}\n\n\t\tthis.$el.html(this.template(options));\n\t\tvar spinner = this.$el.find('.spinner');\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:on', function () {\n\t\t\tspinner.addClass('is-active').removeClass('hidden');\n\t\t});\n\t\tthis.listenTo(wpbc.broadcast, 'spinner:off', function () {\n\t\t\tspinner.removeClass('is-active').addClass('hidden');\n\t\t});\n\t},\n\n\t// List view Selected\n\ttoggleList: function () {\n\t\tthis.trigger('viewType', 'list');\n\t\tthis.$el.find('.view-list').addClass('current');\n\t\tthis.$el.find('.view-grid').removeClass('current');\n\t},\n\n\t// Grid view Selected\n\ttoggleGrid: function () {\n\t\tthis.trigger('viewType', 'grid');\n\t\tthis.$el.find('.view-grid').addClass('current');\n\t\tthis.$el.find('.view-list').removeClass('current');\n\t},\n\n\t// Toggle toolbar help\n\ttoggleToolbar: function () {\n\t\tvar template = wp.template('brightcove-tooltip-notice');\n\n\t\t// Remove any existing tooltip notice\n\t\t$('#js-tooltip-notice').remove();\n\n\t\t// Throw a notice to the user that the file is not the correct format\n\t\t$('.brightcove.media-frame-router').before(template);\n\t\t// Allow the user to dismiss the notice\n\t\t$('#js-tooltip-dismiss').on('click', function () {\n\t\t\t$('#js-tooltip-notice')\n\t\t\t\t.first()\n\t\t\t\t.fadeOut(500, function () {\n\t\t\t\t\t$(this).remove();\n\t\t\t\t});\n\t\t});\n\t},\n\n\t// Brightcove source changed\n\tsourceChanged: function (event) {\n\t\t// Store the currently selected account on the model.\n\t\tthis.model.set('account', event.target.value);\n\t\twpbc.broadcast.trigger('change:activeAccount', event.target.value);\n\t\t// Update wpbc object for later use on upload-details.js\n\t\twpbc.preload.defaultAccountId = event.target.value;\n\t\twpbc.preload.defaultAccount =\n\t\t\tevent.target.options[event.target.selectedIndex].getAttribute('data-hash');\n\t},\n\n\tdatesChanged: function (event) {\n\t\twpbc.broadcast.trigger('change:date', event.target.value);\n\t},\n\n\ttagsChanged: function (event) {\n\t\twpbc.broadcast.trigger('change:tag', event.target.value);\n\t},\n\n\tfoldersChanged: function (event) {\n\t\tthis.model.set('old_folder_id', this.model.get('folder_id'));\n\t\tthis.model.set('folder_id', event.target.value);\n\t\twpbc.broadcast.trigger('change:folder', event.target.value);\n\t},\n\n\tlabelsChanged: function (event) {\n\t\tthis.model.set('oldLabelPath', this.model.get('labelPath'));\n\t\tthis.model.set('labelPath', event.target.value);\n\t\twpbc.broadcast.trigger('change:label', event.target.value);\n\t},\n\n\temptyPlaylistsChanged: function (event) {\n\t\tvar emptyPlaylists = $(event.target).prop('checked');\n\t\twpbc.broadcast.trigger('change:emptyPlaylists', emptyPlaylists);\n\t},\n\n\tenterHandler: function (event) {\n\t\tif (event.keyCode === 13) {\n\t\t\tthis.searchHandler(event);\n\t\t}\n\t},\n\n\thandleEmptySearchInput: function (event) {\n\t\tif (this.model.get('search') && !event.target.value) {\n\t\t\tthis.model.set('search', '');\n\t\t\twpbc.broadcast.trigger('change:searchTerm', '');\n\t\t}\n\t},\n\n\tstateChanged: function (event) {\n\t\tthis.model.set('oldState', 'oldstate');\n\t\tthis.model.set('state', 'newstate');\n\t\twpbc.broadcast.trigger('change:stateChanged', event.target.value);\n\t},\n\n\tsearchHandler: function (event) {\n\t\tvar searchTerm = $('#media-search-input').val();\n\n\t\tif (searchTerm.length > 2 && searchTerm !== this.model.get('search')) {\n\t\t\tthis.model.set('search', searchTerm);\n\t\t\twpbc.broadcast.trigger('change:searchTerm', searchTerm);\n\t\t} else if (searchTerm.length === 0) {\n\t\t\twpbc.broadcast.trigger('change:searchTerm', '');\n\t\t}\n\t},\n});\n","var UploadVideoManagerView = BrightcoveView.extend({\n\tclassName: 'brightcove-file-uploader',\n\n\tevents: {\n\t\t'click .brightcove-start-upload': 'triggerUpload',\n\t},\n\n\tinitialize: function (options) {\n\t\t/**\n\t\t * If you're looking for the Plupload instance, you're in the wrong place, check the UploadWindowView\n\t\t */\n\t\tthis.collection = new UploadModelCollection();\n\t\tif (options) {\n\t\t\tthis.options = options;\n\n\t\t\tthis.successMessage = options.successMessage || this.successMessage;\n\t\t}\n\n\t\tthis.uploadWindow = new UploadWindowView();\n\n\t\tthis.listenTo(this.collection, 'add', this.fileAdded);\n\t\tthis.listenTo(wpbc.broadcast, 'pendingUpload:selectedItem', this.selectedItem);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:prepareUpload', this.prepareUpload);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:successMessage', this.successMessage);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:errorMessage', this.errorMessage);\n\t\tthis.listenTo(wpbc.broadcast, 'uploader:clear', this.resetUploads);\n\t\tthis.listenTo(wpbc.broadcast, 'upload:video', this.resetUploads);\n\t},\n\n\tresetUploads: function () {\n\t\twhile ((model = this.collection.first())) {\n\t\t\tthis.collection.remove(model);\n\t\t}\n\t},\n\n\terrorMessage: function (message) {\n\t\tthis.message(message, 'error');\n\t},\n\n\tsuccessMessage: function (message) {\n\t\tthis.message(message, 'success');\n\t},\n\n\tmessage: function (message, type) {\n\t\tvar messages = this.$el.find('.brightcove-messages');\n\t\tvar messageClasses = '';\n\t\tif (type === 'success') {\n\t\t\tmessageClasses = 'notice updated';\n\t\t} else if (type === 'error') {\n\t\t\tmessageClasses = 'error';\n\t\t}\n\t\tvar newMessage = $(\n\t\t\t'

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

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

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

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

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

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

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

    "));t.text(e),a.html(t),a.removeClass("hidden"),i?(wpbc.permanentMessage&&wpbc.permanentMessage.remove(),wpbc.permanentMessage=t):(a.addClass("notice is-dismissible"),this.makeNoticesDismissible()),$("html, body").animate({scrollTop:0},"fast")},makeNoticesDismissible:function(){$(".notice.is-dismissible").each(function(){var t=$(this),e=$(''),i=commonL10n.dismiss||"";e.find(".screen-reader-text").text(i),e.on("click.wp-dismiss-notice",function(e){e.preventDefault(),t.fadeTo(100,0,function(){t.slideUp(100,function(){t.addClass("hidden").css({opacity:1,"margin-bottom":0,display:""}).empty()})})}),t.append(e)})},showUploader:function(){this.model.set("mode","uploader"),this.render()},permanentMessage:function(e){this.message(e,"error",!0)},render:function(){var e,t,i=this.model.get("options"),a=this.model.get("mode");return _.invoke(this.subviews,"remove"),"uploader"===a?(this.template=wp.template("brightcove-uploader-container"),this.$el.empty(),this.$el.html(this.template(i)),this.uploader.render(),this.uploader.delegateEvents(),this.uploader.$el.appendTo($(".brightcove-uploader"))):"manager"===a?(this.template=wp.template("brightcove-media"),this.$el.html(this.template(i)),this.toolbar.render(),this.toolbar.delegateEvents(),this.toolbar.$el.show(),this.toolbar.$el.appendTo(this.$el.find(".media-frame-router")),(i=this.model.get("media-collection-view")).render(),i.delegateEvents(),(t=this.$el.find(".media-frame-content")).on("scroll",this.scrollHandler),i.$el.appendTo(t),wpbc.initialSync&&(wpbc.broadcast.trigger("remove:permanentMessage"),wpbc.broadcast.trigger("permanent:message",wpbc.preload.messages.ongoingSync)),"videoexperience"===this.model.get("mediaType")&&(this.detailsView=new MediaDetailsView({model:new MediaModel(this.model.attributes),el:$(".brightcove.media-frame-menu"),mediaType:this.model.get("mediaType")}),this.registerSubview(this.detailsView),this.detailsView.render(),this.detailsView.$el.toggle(!0),wpbc.broadcast.trigger("toggle:insertButton","enabled"),this.model.get("media-collection-view").$el.addClass("menu-visible"))):"editVideo"===a?(this.toolbar.$el.hide(),(e=this.$el.find(".media-frame-content")).empty(),this.editView.render(),this.editView.delegateEvents(),this.editView.$el.appendTo(e),this.$el.find(".brightcove.media-frame-content").addClass("edit-view")):"editPlaylist"===a?(this.toolbar.$el.hide(),(e=this.$el).empty(),e.html('
    '),e=e.find(".playlist-edit-container"),this.editView.render(),this.editView.delegateEvents(),this.editView.$el.appendTo(e),e.addClass("playlist")):"previewVideo"===a&&(this.toolbar.$el.hide(),(e=this.$el.find(".media-frame-content")).empty(),this.previewView.render(),this.detailsView.render({detailsMode:"preview"}),this.previewView.delegateEvents(),this.previewView.$el.appendTo(e),this.$el.find(".brightcove.media-frame-toolbar").hide(),brightcove.createExperiences()),"editPlaylist"!==a&&this.$el.find(".media-frame-content").removeClass("playlist"),this}}),BrightcoveModalView=BrightcoveView.extend({tagName:"div",className:"media-modal brightcove",template:wp.template("brightcove-media-modal"),events:{"click .brightcove.media-menu-item":"changeTab","click .brightcove.media-button-insert":"insertIntoPost","click .media-modal-close":"closeModal","click .brightcove.save-sync":"saveSync","click .brightcove.button.back":"back"},initialize:function(e){this.model=new BrightcoveModalModel({tab:e.tab}),this.brightcoveMediaManager=new BrightcoveMediaManagerView(this.model.getMediaManagerSettings()),this.registerSubview(this.brightcoveMediaManager),this.listenTo(wpbc.broadcast,"toggle:insertButton",function(e){this.toggleInsertButton(e)}),this.listenTo(wpbc.broadcast,"close:modal",this.closeModal)},saveSync:function(e){wpbc.broadcast.trigger("save:media",e)},back:function(e){wpbc.broadcast.trigger("back:editvideo",e)},insertIntoPost:function(e){e.preventDefault(),$(e.currentTarget).hasClass("disabled")||(wpbc.shortcode=$("#shortcode").val(),wpbc.broadcast.trigger("insert:shortcode"))},toggleInsertButton:function(e){var t=this.$el.find(".brightcove.media-button-insert"),i=$(".attachment.highlighted").find(".processing").length;t.show(),1!==i&&("enabled"===e||"disabled"!==e&&void 0!==t.attr("disabled"))?t.removeAttr("disabled"):t.attr("disabled","disabled")},changeTab:function(e){var t;e.preventDefault(),$(e.target).hasClass("active")||($(e.target).addClass("active"),e=_.without(e.target.classList,"media-menu-item","brightcove")[0],t=["videos","upload","playlists","in-page-experiences","video-experience","playlist-experience"],_.each(_.without(t,e),function(e){$(".brightcove.media-menu-item."+e).removeClass("active")}),_.contains(t,e)&&(this.model.set("tab",e),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 #autoplay":"toggleAutoplay","change #pictureinpicture":"toggleIframe","change #languagedetection":"toggleIframe",'change .experience-details input[name="sizing"],.experience-details input[name="embed-style"]':"toggleExperienceUnits",'change #video-player, #applicationid, #autoplay, #pictureinpicture, #languagedetection, #playsinline, #mute, input[name="embed-style"], input[name="sizing"], #aspect-ratio, #width, #height':"generateShortcode","change #generate-shortcode":"toggleShortcodeGeneration"},triggerEditMedia:function(e){e.preventDefault(),wpbc.broadcast.trigger("edit:media",this.model,this.mediaType)},triggerPreviewMedia:function(e){e.preventDefault();e=$("#shortcode").val();wpbc.broadcast.trigger("preview:media",this.model,e)},triggerCancelPreviewMedia:function(e){wpbc.broadcast.trigger("cancelPreview:media",this.mediaType)},togglePlaylistSizing:function(e){var t=$('.playlist-details input[name="embed-style"]:checked').val(),i=$("#sizing-fixed, #sizing-responsive");"iframe"===t?i.removeAttr("disabled"):i.attr("disabled",!0)},toggleUnits:function(e){var t,i,a=$("#aspect-ratio").val();"custom"===a?$("#height").removeAttr("readonly"):(t=$("#height"),i=$("#width").val(),t.attr("readonly",!0),0{Object.keys(i).forEach(e=>{t.id===e&&(t.value=i[e])})}),this.model.set("custom",e)},addLabel:function(e){e.preventDefault();var e=this.el.querySelector(".brightcove-labels"),t=this.el.querySelector(".bc-labels-value"),i=e.value,e=(e.querySelector('option[value="'+i+'"]').setAttribute("disabled",!0),e.selectedIndex=0,`
  • + + ${i} +
  • `);this.el.querySelector(".bc-labels-list").insertAdjacentHTML("beforeend",e),t.value=t.value?t.value+","+i:i},removeLabel:function(e){e.preventDefault();var t=e.currentTarget.dataset.label,i=this.el.querySelector(".bc-labels-value"),a=this.el.querySelector(".brightcove-labels"),s=i.value.split(","),o=s.indexOf(t);-1this.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) 1) { this.pageNumber--; } wpbc.broadcast.trigger('fetch:finished'); wpbc.broadcast.trigger('spinner:off'); - wpbc.broadcast.trigger('fetch:apiError'); - if (status === 'abort') { + if (textStatus !== 'abort') { + wpbc.broadcast.trigger('fetch:apiError'); } }, diff --git a/assets/js/src/views/video-edit.js b/assets/js/src/views/video-edit.js index dba6de59..3fd7b067 100644 --- a/assets/js/src/views/video-edit.js +++ b/assets/js/src/views/video-edit.js @@ -12,9 +12,8 @@ var VideoEditView = BrightcoveView.extend({ 'click .caption-secondary-fields .delete': 'removeCaptionRow', 'click .add-remote-caption': 'addCaptionRow', 'change .brightcove-variant': 'changeVariant', - 'click .add-bc-label': 'addLabelRow', - 'keypress .brightcove-labels': 'labelAutocomplete', - 'click .bc-label-secondary-fields .delete': 'removeLabelRow', + 'click .bc-labels-list .remove-label': 'removeLabel', + 'click .bc-add-label': 'addLabel', }, /** @@ -177,75 +176,6 @@ var VideoEditView = BrightcoveView.extend({ image.empty(); }, - /** - * Add a label row - * - * @param {Event} evnt - * @param {Object} media - */ - addLabelRow: function (evnt, media) { - var source = undefined; - if (media) { - source = media.url; - } - - this.addLabel(source); - }, - - /** - * Adds a label - * - * @param source - * @param language - * @param label - * @param defaultcap - */ - addLabel: function (source, language, label, defaultcap) { - let newRow = $(document.getElementById('js-bc-label-empty-row')).clone(), - container = document.getElementById('js-bc-labels'); - - // Clean up our cloned row - newRow.find('input').prop('disabled', false).val(''); - newRow.removeAttr('id'); - newRow.removeClass('empty-row'); - - // Append our new row to the container - $(container).append(newRow); - }, - - /** - * Fires the autocomplete function - * - * @param {Event} evnt - */ - labelAutocomplete: function (evnt) { - jQuery('.brightcove-labels').autocomplete({ - source: wpbc.preload.labels, - select: function () { - $(this).parent('.bc-label-repeater.empty-row').removeClass('empty-row'); - }, - appendTo: '.media-modal', - }); - }, - - /** - * Removes a label row - * @param {Event} evnt - */ - removeLabelRow: function (evnt) { - evnt.preventDefault(); - - let label = evnt.currentTarget, - container = $(label).parents('.bc-label-repeater'), - source = container.find('.brightcove-labels'); - - // Empty the input fields - $(source).val(''); - - // Remove the container entirely - container.remove(); - }, - /** * Add a caption row * @@ -455,17 +385,8 @@ var VideoEditView = BrightcoveView.extend({ this.model.set('captions', captions); // Labels - var labels = []; - this.$el - .find('.bc-label-repeater.repeater-row') - .not('.empty-row') - .each(function () { - var label = $(this), - Name = label.find('.brightcove-labels').val(); - - labels.push(Name); - }); - + let labels = this.$el.find('.bc-labels-value').val(); + labels = labels !== '' ? labels.split(',') : []; this.model.set('labels', labels); // Custom fields @@ -569,6 +490,52 @@ var VideoEditView = BrightcoveView.extend({ this.model.set('custom', custom); }, + /** + * Adds a label. + * @param {Event} event + */ + addLabel: function (event) { + event.preventDefault(); + + const elem = this.el.querySelector('.brightcove-labels'); + const labelsValElem = this.el.querySelector('.bc-labels-value'); + const value = elem.value; + + elem.querySelector('option[value="' + value + '"]').setAttribute('disabled', true); + elem.selectedIndex = 0; + + const listItem = `
  • + + ${value} +
  • `; + + this.el.querySelector('.bc-labels-list').insertAdjacentHTML('beforeend', listItem); + + labelsValElem.value = labelsValElem.value ? labelsValElem.value + ',' + value : value; + }, + + /** + * Removes a label. + * @param {Event} event + */ + removeLabel: function (event) { + event.preventDefault(); + + const label = event.currentTarget.dataset.label; + const labelsValElem = this.el.querySelector('.bc-labels-value'); + const labelElem = this.el.querySelector('.brightcove-labels'); + const selectedLabels = labelsValElem.value.split(','); + + var index = selectedLabels.indexOf(label); + if (index > -1) { + selectedLabels.splice(index, 1); + } + + labelsValElem.value = selectedLabels.join(','); + labelElem.querySelector('option[value="' + label + '"]').removeAttribute('disabled'); + event.currentTarget.parentElement.remove(); + }, + /** * Render the actual view for the Video Edit screen. * diff --git a/assets/scss/components/_modals.scss b/assets/scss/components/_modals.scss index 9e4a5166..104387c1 100644 --- a/assets/scss/components/_modals.scss +++ b/assets/scss/components/_modals.scss @@ -1,83 +1,91 @@ .brightcove-modal { - .media-frame-title, - .media-frame-router, - .media-frame-content, - .media-frame-toolbar { - left: 0; - } + .media-frame-title, + .media-frame-router, + .media-frame-content, + .media-frame-toolbar { + left: 0; + } - .brightcove-media { - overflow: hidden; - } + .brightcove-media { + overflow: hidden; + } - .brightcove { - .wp-filter { - border: 0; - box-shadow: none; - right: 0; - width: 100%; - margin: 0; - } - .media-toolbar-secondary { - padding: 0; - min-width: 280px; - } - .media-toolbar-primary.search-form{ - input[type=search] { - float: left; - padding-bottom: 0px; - width: 200px; - } - } + .brightcove { + .wp-filter { + border: 0; + box-shadow: none; + right: 0; + width: 100%; + margin: 0; + } - #media-search { - float: left; - margin-left: 10px; - margin-right: 5px; - } - } + .media-toolbar-secondary { + padding: 0; + min-width: 280px; + } - .pending-uploads { - width: calc(100% - 40px); - display: block; - margin: 20px; - } + .media-toolbar-primary.search-form { + input[type=search] { + float: left; + margin: 0; + padding-bottom: 0px; + width: 200px; + } + } - .brightcove-upload-queued-files { - border: 0; - width: 100%; - } + #media-search { + float: left; + margin-left: 10px; + margin-right: 5px; + } + } - .brightcove.media-frame-content { - padding: 0 20px; - width: 100%; - @media screen and (min-width: 700px){ - width: calc(100% - 390px); - } - } + .pending-uploads { + width: calc(100% - 40px); + display: block; + margin: 20px; + } - .brightcove.video-preview { - margin-top: 20px; - } + .brightcove-upload-queued-files { + border: 0; + width: 100%; + } - .video-preview-frame { - .brightcove { - &.media-frame-content { - padding: 20px; - box-sizing: border-box; - border-right: 1px solid #ddd; - transform: translate3d(0,0,0); - } - &.brightcove.media-frame-menu { - padding-top: 20px; - } - } - } -} -.media-frame:not(.hide-menu) .media-frame-menu{ - @media screen and (max-width: 900px){ - width: 300px; + .brightcove.media-frame-content { + padding: 0 20px; + width: 100%; + @media screen and (min-width: 700px) { + width: calc(100% - 390px); } + } + + .brightcove.video-preview { + margin-top: 20px; + } + + .video-preview-frame { + .brightcove { + &.media-frame-content { + padding: 20px; + box-sizing: border-box; + border-right: 1px solid #ddd; + transform: translate3d(0, 0, 0); + } + &.brightcove.media-frame-menu { + padding-top: 20px; + } + } + } } -.brightcove.media-frame-menu .attachment-detail .playlist-details label.experiencelabel, .brightcove.media-frame-menu .attachment-detail .video-details label.experiencelabel, select.experienceplayer { width: 100%; } +.media-frame:not(.hide-menu) .media-frame-menu { + @media screen and (max-width: 900px) { + 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%; +} diff --git a/assets/scss/components/_video-edit.scss b/assets/scss/components/_video-edit.scss index cc78f4c5..f70600ae 100644 --- a/assets/scss/components/_video-edit.scss +++ b/assets/scss/components/_video-edit.scss @@ -2,7 +2,7 @@ .image-preview, .setting { margin-bottom: 8px; - .description{ + .description { margin-left: 0px; @media screen and (min-width: 900px) { margin-left: 252px; @@ -135,16 +135,52 @@ } span, - input[type="text"], + input[type='text'], select { margin: 0; min-width: 100%; text-align: left; width: 100%; } - input[type="checkbox"] { + input[type='checkbox'] { margin: auto; } } } -} \ No newline at end of file + + & .bc-labels-list { + margin: 0; + text-align: left; + + & li { + background-color: #fff; + border-radius: 4px; + border: 1px solid #8c8f94; + display: inline-block; + margin: 0 10px 10px 0; + white-space: nowrap; + } + + & button { + background-color: #f6f7f7; + border-bottom-left-radius: 4px; + border-right: 1px solid #8c8f94; + border-top-left-radius: 4px; + border: none; + cursor: pointer; + padding: 10px; + } + + & span { + float: none; + } + + & .label-name { + padding: 10px; + } + } + + & .add-labels-container select { + margin-left: 0; + } +} diff --git a/brightcove-video-connect.php b/brightcove-video-connect.php index 368ad631..428a0946 100644 --- a/brightcove-video-connect.php +++ b/brightcove-video-connect.php @@ -1,16 +1,24 @@ videos->update_bc_video( $updated_data, sanitize_text_field( $_POST['sub_type'] ) ); + $sub_type = isset( $_POST['sub_type'] ) ? sanitize_text_field( $_POST['sub_type'] ) : ''; + if ( 'variant' === $sub_type ) { + $status = $this->videos->update_bc_video( $updated_data, $sub_type ); } else { $status = $this->videos->update_bc_video( $updated_data ); diff --git a/includes/admin/class-bc-admin-labels-page.php b/includes/admin/class-bc-admin-labels-page.php index 395636e7..9b7a1a3f 100644 --- a/includes/admin/class-bc-admin-labels-page.php +++ b/includes/admin/class-bc-admin-labels-page.php @@ -35,6 +35,7 @@ public function __construct() { * Renders html of the edit labels page */ public function render_edit_label_page() { + $label_name = isset( $_GET['update_label'] ) ? $_GET['update_label'] : ''; // phpcs:ignore WordPress.Security.NonceVerification ?>

    @@ -46,13 +47,13 @@ public function render_edit_label_page() {
    - + - + diff --git a/includes/admin/class-bc-admin-menu.php b/includes/admin/class-bc-admin-menu.php index bff41251..1399b559 100644 --- a/includes/admin/class-bc-admin-menu.php +++ b/includes/admin/class-bc-admin-menu.php @@ -31,8 +31,8 @@ public function register_admin_menu() { add_submenu_page( 'brightcove', esc_html__( 'Brightcove Labels', 'brightcove' ), esc_html__( 'Labels', 'brightcove' ), 'manage_options', 'brightcove-labels', array( $this, 'render_labels_page' ) ); // These have no parent menu slug so they don't appear in the menu - add_submenu_page( null, esc_html__( 'Add Source', 'brightcove' ), esc_html__( 'Add Source', 'brightcove' ), 'manage_options', 'page-brightcove-edit-source', array( $this, 'render_edit_source_page' ) ); - add_submenu_page( null, esc_html__( 'Edit Label', 'brightcove' ), esc_html__( 'Edit Label', 'brightcove' ), 'manage_options', 'page-brightcove-edit-label', array( $this, 'render_edit_label_page' ) ); + add_submenu_page( '', esc_html__( 'Add Source', 'brightcove' ), esc_html__( 'Add Source', 'brightcove' ), 'manage_options', 'page-brightcove-edit-source', array( $this, 'render_edit_source_page' ) ); + add_submenu_page( '', esc_html__( 'Edit Label', 'brightcove' ), esc_html__( 'Edit Label', 'brightcove' ), 'manage_options', 'page-brightcove-edit-label', array( $this, 'render_edit_label_page' ) ); remove_submenu_page( 'brightcove', 'brightcove' ); } diff --git a/includes/admin/class-bc-templates.php b/includes/admin/class-bc-templates.php index 2210404b..dc4a2ade 100644 --- a/includes/admin/class-bc-templates.php +++ b/includes/admin/class-bc-templates.php @@ -21,11 +21,24 @@ public function __construct() { * Adds all templates for Backbone application */ public function add_templates() { + global $pagenow; ?> @@ -724,14 +733,14 @@ class="brightcove-datetime brightcove-end-date"
    <# if ('preview' === data.detailsMode) { #> - + <# } else { #> <# if ( data.images && data.images.thumbnail && data.images.thumbnail.src ) { #> - - + + <# } else { #> - - + + <# } #> <# } #>
    @@ -1275,34 +1284,37 @@ class="brightcove-datetime brightcove-end-date" <# }); #> <# }#> + + <# if( data.mediaType === 'videoexperience' ) { #> +
    +

    + +

    +
    +
    +

    + +

    +
    + <# } #> - <# if( data.mediaType === 'videoexperience' ) { #> -
    -

    - -

    -
    -
    -

    - -

    -
    - <# } #> - - <# if ( data.mediaType === 'playlistexperience' ) { #> -
    -

    - -

    -
    - <# } #> - - <# if( data.mediaType === 'playlists' || data.mediaType === 'playlistexperience' ) { #> + <# if ( data.mediaType === 'playlistexperience' ) { #>

    - +

    + <# } #> + + <# if( data.mediaType === 'playlists' ) { #> +
    +

    + +

    +
    + <# } #> + + <# if( data.mediaType === 'playlists' || data.mediaType === 'playlistexperience' ) { #>

    diff --git a/includes/api/class-bc-api.php b/includes/api/class-bc-api.php index b6cecebe..30326bee 100644 --- a/includes/api/class-bc-api.php +++ b/includes/api/class-bc-api.php @@ -56,7 +56,6 @@ protected function get_account_id() { global $bc_accounts; return $bc_accounts->get_account_id(); - } /** @@ -90,7 +89,6 @@ public function get_last_error() { } return end( array_values( $this->errors ) ); - } /** @@ -98,9 +96,10 @@ public function get_last_error() { * * @param string $url the url to call * @param array $args the arguments to pass to the API call + * @param bool $cache_fail_response whether or not to cache the api fail response * @return array|false|mixed|WP_Error */ - private function cached_get( $url, $args ) { + private function cached_get( $url, $args, $cache_fail_response = false ) { global $bc_accounts; @@ -113,7 +112,9 @@ private function cached_get( $url, $args ) { $account_id = $bc_accounts->get_account_id(); $transient_key = BC_Utility::generate_transient_key( '_brightcove_req_', $account_id . BC_Utility::get_hash_for_object( $url ) ); $request = BC_Utility::get_cache_item( $transient_key ); - if ( false === $request ) { + $force_refresh = ! empty( $_GET['bc_refresh'] ) && '1' === $_GET['bc_refresh'] && ! empty( $_GET['nonce'] ) && wp_verify_nonce( $_GET['nonce'], 'bc_refresh' ); + + if ( false === $request || $force_refresh ) { if ( function_exists( 'vip_safe_wp_remote_get' ) ) { $request = vip_safe_wp_remote_get( $url, '', 3, 3, 20, $args ); } else { @@ -121,7 +122,20 @@ private function cached_get( $url, $args ) { } $successful_response_codes = array( 200, 201, 202, 204 ); - if ( in_array( wp_remote_retrieve_response_code( $request ), $successful_response_codes, true ) ) { + /** + * Filter whether to cache the api fail response. + * + * @since 2.8.5 + * @hook brightcove_cache_api_fail_response + * @param {bool} $cache_fail_response Whether to cache the response. + * @param {string} $url The URL of the request. + * @param {array} $args The arguments of the request. + * + * @return bool Whether to cache the fail response. + */ + $cache_fail_response = apply_filters( 'brightcove_cache_api_fail_response', $cache_fail_response, $url, $args ); + + if ( in_array( wp_remote_retrieve_response_code( $request ), $successful_response_codes, true ) || $cache_fail_response ) { BC_Utility::set_cache_item( $transient_key, '', $request, $cache_time_in_seconds ); } } @@ -139,10 +153,11 @@ private function cached_get( $url, $args ) { * @param string $method the http method to use * @param array $data array of further data to send to the server * @param boolean $force_new_token whether or not to force obtaining a new oAuth token + * @param boolean $cache_fail_response whether or not to cache the api fail response * * @return mixed the return data from the call of false if a failure occurred */ - protected function send_request( $url, $method = 'GET', $data = array(), $force_new_token = false ) { + protected function send_request( $url, $method = 'GET', $data = array(), $force_new_token = false, $cache_fail_response = false ) { $method = strtoupper( sanitize_text_field( $method ) ); @@ -206,7 +221,7 @@ protected function send_request( $url, $method = 'GET', $data = array(), $force_ switch ( $method ) { case 'GET': - $request = $this->cached_get( $url, $args ); + $request = $this->cached_get( $url, $args, $cache_fail_response ); break; @@ -225,7 +240,6 @@ protected function send_request( $url, $method = 'GET', $data = array(), $force_ $request = wp_remote_request( $url, $args ); break; - } if ( 401 === wp_remote_retrieve_response_code( $request ) ) { @@ -266,11 +280,9 @@ protected function send_request( $url, $method = 'GET', $data = array(), $force_ if ( isset( $body[0] ) && isset( $body[0]['error_code'] ) ) { $message = $body[0]['error_code']; - } elseif ( isset( $body['message'] ) ) { $message = $body['message']; - } $this->errors[] = array( @@ -285,18 +297,17 @@ protected function send_request( $url, $method = 'GET', $data = array(), $force_ if ( 204 === wp_remote_retrieve_response_code( $request ) ) { return true; - } if ( is_wp_error( $request ) ) { - $this->errors[] = array( - 'url' => $url, - 'error' => $request, - ); + $this->errors[] = array( + 'url' => $url, + 'error' => $request, + ); - BC_Logging::log( sprintf( 'BC API ERROR: %s', $request->get_error_message() ) ); + BC_Logging::log( sprintf( 'BC API ERROR: %s', $request->get_error_message() ) ); - return false; + return false; } if ( $transient_key && $body && ( ! defined( 'WP_DEBUG' ) || false === WP_DEBUG ) ) { @@ -305,7 +316,6 @@ protected function send_request( $url, $method = 'GET', $data = array(), $force_ } return $body; - } /** @@ -340,6 +350,5 @@ protected function get_authorization_header( $force_new_token = false ) { } return 'Bearer ' . $token; - } } diff --git a/includes/api/class-bc-player-management-api2.php b/includes/api/class-bc-player-management-api2.php index eda1837b..395723c8 100644 --- a/includes/api/class-bc-player-management-api2.php +++ b/includes/api/class-bc-player-management-api2.php @@ -64,7 +64,7 @@ public function get_all_players() { $bc_accounts->set_current_account_by_id( $account_id ); $url = esc_url_raw( self::BASE_URL . $account_id . '/players/' ); - $account_players = $this->send_request( $url ); + $account_players = $this->send_request( $url, 'GET', [], false, true ); if ( ! $account_players || is_wp_error( $account_players ) ) { return []; diff --git a/includes/class-bc-labels.php b/includes/class-bc-labels.php index be6fcc5d..d48197d0 100644 --- a/includes/class-bc-labels.php +++ b/includes/class-bc-labels.php @@ -137,8 +137,15 @@ public function add_label() { ) { $label_name = sanitize_text_field( $_POST['label-name'] ); $label_path = ! empty( $_POST['label-path'] ) ? $_POST['label-path'] : ''; - $this->cms_api->add_label( $label_name, $label_path ); - wp_safe_redirect( admin_url( 'admin.php?page=brightcove-labels&add_label=1&refresh_labels=1' ) ); + + $redirect_url = admin_url( 'admin.php?page=brightcove-labels&refresh_labels=1' ); + + if ( ! empty( $label_name ) || ! empty( $label_path ) ) { + $this->cms_api->add_label( $label_name, $label_path ); + $redirect_url = add_query_arg( 'add_label', '1', $redirect_url ); + } + + wp_safe_redirect( $redirect_url ); exit; } } diff --git a/includes/class-bc-setup.php b/includes/class-bc-setup.php index f6b016a7..aaa0068e 100644 --- a/includes/class-bc-setup.php +++ b/includes/class-bc-setup.php @@ -270,7 +270,6 @@ public static function add_brightcove_media_modal_container() { * @return array|false */ public static function preload_params() { - global $bc_accounts; $tags = new BC_Tags(); @@ -283,8 +282,7 @@ public static function preload_params() { if ( BC_Utility::current_user_can_brightcove() ) { - $cms_api = new BC_CMS_API(); - $admin_media_api = new BC_Admin_Media_API(); + $cms_api = new BC_CMS_API(); if ( false !== strpos( $uri, BC_Admin_Menu::get_playlists_page_uri_component() ) ) { $type = 'playlists'; @@ -298,7 +296,9 @@ public static function preload_params() { $params['nonce'] = wp_create_nonce( '_bc_ajax_search_nonce' ); $params['tags'] = $tags->get_tags(); $params['folders'] = array(); - if ( BC_Utility::current_user_can_brightcove() ) { + + $current_page = get_current_screen(); + if ( BC_Utility::current_user_can_brightcove() && ( 'post' === $current_page->id || false !== strpos( $current_page->id, 'brightcove_page' ) ) ) { $params['folders'] = $cms_api->fetch_folders(); $params['labels'] = $cms_api->get_account_labels(); } @@ -342,7 +342,6 @@ public static function preload_params() { $params['defaultAccountId'] = ! empty( $default_account['account_id'] ) ? $default_account['account_id'] : ''; return $params; - } /** @@ -355,19 +354,11 @@ public static function brightcove_enqueue_assets() { $suffix = BC_Utility::get_suffix(); - $player_api = new BC_Player_Management_API2(); - $players = $player_api->get_all_players(); - - $experiences_api = new BC_Experiences_API(); - $experiences = $experiences_api->get_experiences(); - $js_variable = array( 'path' => esc_url( BRIGHTCOVE_URL . 'assets/js/src/' ), 'preload' => self::preload_params(), 'wp_version' => $wp_version, 'languages' => BC_Utility::languages(), - 'players' => $players, - 'experiences' => $experiences, 'str_badformat' => esc_html__( 'This file is not the proper format. Please use .vtt files, for more information visit', 'brightcove' ), 'badformat_link' => esc_url( 'https://support.brightcove.com/en/video-cloud/docs/adding-captions-videos#captionsfile' ), 'str_addcaption' => esc_html__( 'Add Another Caption', 'brightcove' ), @@ -378,6 +369,18 @@ public static function brightcove_enqueue_assets() { 'posts_per_page' => absint( apply_filters( 'brightcove_posts_per_page', 100 ) ), // phpcs:ignore WordPress.WP.PostsPerPage.posts_per_page_posts_per_page ); + $current_page = get_current_screen(); + if ( 'post' === $current_page->id ) { + $player_api = new BC_Player_Management_API2(); + $players = $player_api->get_all_players(); + + $experiences_api = new BC_Experiences_API(); + $experiences = $experiences_api->get_experiences(); + + $js_variable['experiences'] = $experiences; + $js_variable['players'] = $players; + } + wp_register_script( 'brightcove', '//sadmin.brightcove.com/js/BrightcoveExperiences.js', array(), BRIGHTCOVE_VERSION, false ); wp_enqueue_script( 'tinymce_preview', esc_url( BRIGHTCOVE_URL . 'assets/js/src/tinymce.js' ), array( 'mce-view' ), BRIGHTCOVE_VERSION, true ); @@ -390,7 +393,6 @@ public static function brightcove_enqueue_assets() { ); $dependencies = array( - 'jquery-ui-autocomplete', 'jquery', 'backbone', 'wp-backbone', @@ -471,7 +473,6 @@ public static function mime_types( $mime_types ) { } return $mime_types; - } /** @@ -494,12 +495,20 @@ public static function bc_admin_notices() { } if ( count( $bc_accounts->get_sanitized_all_accounts() ) > 0 && empty( $players ) && is_array( $players ) ) { + $force_refresh_url = add_query_arg( + [ + 'bc_refresh' => 1, + 'nonce' => wp_create_nonce( 'bc_refresh' ), + ], + admin_url( 'admin.php?page=brightcove-sources' ) + ); + $notices[] = array( 'message' => sprintf( - '%s %s', - esc_html__( 'It looks like one or more of your accounts API authentication changed recently. Please update your settings ', 'brightcove' ), + // translators: %1$s: Update settings URL, %2$s: Force refresh URL. + esc_html__( 'It looks like one or more of your accounts API authentication has changed recently. Please update your settings here. Or click here to try again.', 'brightcove' ), esc_url( admin_url( 'admin.php?page=brightcove-sources' ) ), - esc_html__( 'here', 'brightcove' ) + esc_url( $force_refresh_url ) ), 'type' => 'error', ); diff --git a/includes/class-bc-utility.php b/includes/class-bc-utility.php index c195b8f4..a29a0fc0 100644 --- a/includes/class-bc-utility.php +++ b/includes/class-bc-utility.php @@ -310,7 +310,7 @@ public static function sanitize_payload_args_recursive( $args ) { if ( is_array( $value ) ) { $args[ $index ] = self::sanitize_payload_args_recursive( $value ); } else { - $args[ $index ] = utf8_uri_encode( sanitize_text_field( $value ) ); + $args[ $index ] = sanitize_text_field( $value ); } } @@ -329,7 +329,7 @@ public static function sanitize_payload_item( $item ) { return self::sanitize_payload_args_recursive( $item ); } - return utf8_uri_encode( sanitize_text_field( $item ) ); + return sanitize_text_field( $item ); } /** @@ -745,13 +745,7 @@ public static function set_cache_item( $key, $type, $value, $expiration = 600 ) $type = sanitize_text_field( $type ); $expiration = absint( $expiration ); - $transient_value = get_transient( $key ); - - if ( false === $transient_value ) { - return set_transient( $key, $value, $expiration ); - } - - return true; // already cached + return set_transient( $key, $value, $expiration ); } /** diff --git a/includes/sync/class-bc-videos.php b/includes/sync/class-bc-videos.php index c74e413b..952f7673 100644 --- a/includes/sync/class-bc-videos.php +++ b/includes/sync/class-bc-videos.php @@ -54,7 +54,7 @@ public function update_bc_video( $sanitized_post_data, $subtype = false ) { $update_data = array(); if ( array_key_exists( 'name', $sanitized_post_data ) && '' !== $sanitized_post_data['name'] ) { - $update_data['name'] = utf8_uri_encode( sanitize_text_field( $sanitized_post_data['name'] ) ); + $update_data['name'] = BC_Utility::sanitize_payload_item( $sanitized_post_data['name'] ); } if ( array_key_exists( 'description', $sanitized_post_data ) && ! empty( $sanitized_post_data['description'] ) ) { diff --git a/languages/brightcove.pot b/languages/brightcove.pot index 64c34c46..848dd0f4 100644 --- a/languages/brightcove.pot +++ b/languages/brightcove.pot @@ -1,15 +1,15 @@ -# Copyright (C) 2023 10up +# Copyright (C) 2024 Brightcove # This file is distributed under the GPLv2+. msgid "" msgstr "" -"Project-Id-Version: Brightcove Video Connect 2.8.4\n" +"Project-Id-Version: Brightcove Video Connect 2.8.5\n" "Report-Msgid-Bugs-To: " "https://wordpress.org/support/plugin/brightcove-video-connect\n" -"POT-Creation-Date: 2023-11-30 13:14:55+00:00\n" +"POT-Creation-Date: 2024-04-22 05:57:16+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2023-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2024-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "X-Generator: grunt-wp-i18n 1.0.3\n" @@ -28,127 +28,132 @@ msgid "Type is not specified" msgstr "" #: includes/admin/api/class-bc-admin-media-api.php:239 -#: includes/admin/api/class-bc-admin-media-api.php:358 +#: includes/admin/api/class-bc-admin-media-api.php:359 msgid "No such account exists" msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:300 +#: includes/admin/api/class-bc-admin-media-api.php:301 msgid "Successfully updated " msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:304 +#: includes/admin/api/class-bc-admin-media-api.php:305 msgid "Failed to sync with WordPress!" msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:308 +#: includes/admin/api/class-bc-admin-media-api.php:309 msgid "Failed to update " msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:335 +#: includes/admin/api/class-bc-admin-media-api.php:336 msgid "Type is not specified!" msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:351 +#: includes/admin/api/class-bc-admin-media-api.php:352 msgid "Wrong type is specified!" msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:374 +#: includes/admin/api/class-bc-admin-media-api.php:375 msgid "Unable to remove video from Brightcove!" msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:378 +#: includes/admin/api/class-bc-admin-media-api.php:379 msgid "Successfully deleted your video." msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:388 +#: includes/admin/api/class-bc-admin-media-api.php:389 msgid "Unable to remove playlist from Brightcove!" msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:392 +#: includes/admin/api/class-bc-admin-media-api.php:393 msgid "Successfully deleted your playlist." msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:522 +#: includes/admin/api/class-bc-admin-media-api.php:523 msgid "Invalid Search Type" msgstr "" -#: includes/admin/api/class-bc-admin-media-api.php:966 +#: includes/admin/api/class-bc-admin-media-api.php:967 msgid "Failed to upload caption." msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:43 +#: includes/admin/class-bc-admin-labels-page.php:44 #: includes/admin/class-bc-admin-menu.php:35 msgid "Edit Label" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:56 +#: includes/admin/class-bc-admin-labels-page.php:54 +#: includes/admin/class-bc-templates.php:375 +#: includes/admin/class-bc-templates.php:409 +msgid "Label" +msgstr "" + +#: includes/admin/class-bc-admin-labels-page.php:57 msgid "Enter the new label name." msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:79 +#: includes/admin/class-bc-admin-labels-page.php:80 #: includes/admin/class-bc-admin-menu.php:31 msgid "Brightcove Labels" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:88 +#: includes/admin/class-bc-admin-labels-page.php:89 msgid "Add New Label" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:93 +#: includes/admin/class-bc-admin-labels-page.php:94 msgid "Label Name" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:95 +#: includes/admin/class-bc-admin-labels-page.php:96 msgid "The name of the label" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:98 +#: includes/admin/class-bc-admin-labels-page.php:99 msgid "Parent Label" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:100 +#: includes/admin/class-bc-admin-labels-page.php:101 msgid "" "Type the hierarchy you want your label to have. Example " "\"/animals/mammals/\" Leave blank if you do not wish to add a hierarchy." msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:120 -#: includes/admin/class-bc-admin-labels-page.php:169 +#: includes/admin/class-bc-admin-labels-page.php:121 +#: includes/admin/class-bc-admin-labels-page.php:170 msgid "Select bulk action" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:122 +#: includes/admin/class-bc-admin-labels-page.php:123 msgid "Bulk actions" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:123 -#: includes/admin/class-bc-templates.php:425 +#: includes/admin/class-bc-admin-labels-page.php:124 +#: includes/admin/class-bc-templates.php:434 msgid "Delete" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:131 -#: includes/admin/class-bc-admin-labels-page.php:162 +#: includes/admin/class-bc-admin-labels-page.php:132 +#: includes/admin/class-bc-admin-labels-page.php:163 msgid "Select All" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:131 -#: includes/admin/class-bc-admin-labels-page.php:163 -#: includes/admin/class-bc-templates.php:137 -#: includes/admin/class-bc-templates.php:581 -#: includes/admin/class-bc-templates.php:1362 +#: includes/admin/class-bc-admin-labels-page.php:132 +#: includes/admin/class-bc-admin-labels-page.php:164 +#: includes/admin/class-bc-templates.php:150 +#: includes/admin/class-bc-templates.php:590 +#: includes/admin/class-bc-templates.php:1374 msgid "Name" msgstr "" -#: includes/admin/class-bc-admin-labels-page.php:151 -#: includes/admin/class-bc-templates.php:688 -#: includes/admin/class-bc-templates.php:730 -#: includes/admin/class-bc-templates.php:733 -#: includes/admin/class-bc-templates.php:1052 +#: includes/admin/class-bc-admin-labels-page.php:152 +#: includes/admin/class-bc-templates.php:697 +#: includes/admin/class-bc-templates.php:739 +#: includes/admin/class-bc-templates.php:742 +#: includes/admin/class-bc-templates.php:1061 msgid "Edit" msgstr "" -#: includes/admin/class-bc-admin-menu.php:27 -#: includes/admin/class-bc-templates.php:481 +#. Author of the plugin/theme msgid "Brightcove" msgstr "" @@ -158,9 +163,9 @@ msgid "Brightcove Videos" msgstr "" #: includes/admin/class-bc-admin-menu.php:28 -#: includes/admin/class-bc-templates.php:487 -#: includes/admin/class-bc-templates.php:673 -#: includes/admin/class-bc-templates.php:1041 +#: includes/admin/class-bc-templates.php:496 +#: includes/admin/class-bc-templates.php:682 +#: includes/admin/class-bc-templates.php:1050 msgid "Videos" msgstr "" @@ -170,7 +175,7 @@ msgid "Brightcove Playlists" msgstr "" #: includes/admin/class-bc-admin-menu.php:29 -#: includes/admin/class-bc-templates.php:488 +#: includes/admin/class-bc-templates.php:497 msgid "Playlists" msgstr "" @@ -184,7 +189,7 @@ msgid "Settings" msgstr "" #: includes/admin/class-bc-admin-menu.php:31 -#: includes/admin/class-bc-templates.php:247 +#: includes/admin/class-bc-templates.php:260 msgid "Labels" msgstr "" @@ -193,7 +198,7 @@ msgid "Add Source" msgstr "" #: includes/admin/class-bc-admin-playlists-page.php:59 -#: includes/class-bc-utility.php:1106 +#: includes/class-bc-utility.php:1100 msgid "" "A specified Source does not have a playlist capable player here. Or click here to try again." msgstr "" -#: includes/class-bc-setup.php:502 includes/class-bc-setup.php:520 -msgid "here" +#: includes/class-bc-setup.php:527 +msgid "Please configure Brightcove settings from" msgstr "" -#: includes/class-bc-setup.php:518 -msgid "Please configure Brightcove settings from" +#: includes/class-bc-setup.php:529 +msgid "here" msgstr "" -#: includes/class-bc-setup.php:538 +#: includes/class-bc-setup.php:547 msgid "BC In Process Videos" msgstr "" -#: includes/class-bc-utility.php:1321 +#: includes/class-bc-utility.php:1315 msgid "English" msgstr "" -#: includes/class-bc-utility.php:1322 +#: includes/class-bc-utility.php:1316 msgid "Abkhaz" msgstr "" -#: includes/class-bc-utility.php:1323 +#: includes/class-bc-utility.php:1317 msgid "Afar" msgstr "" -#: includes/class-bc-utility.php:1324 +#: includes/class-bc-utility.php:1318 msgid "Afrikaans" msgstr "" -#: includes/class-bc-utility.php:1325 +#: includes/class-bc-utility.php:1319 msgid "Akan" msgstr "" -#: includes/class-bc-utility.php:1326 +#: includes/class-bc-utility.php:1320 msgid "Albanian" msgstr "" -#: includes/class-bc-utility.php:1327 +#: includes/class-bc-utility.php:1321 msgid "Amharic" msgstr "" -#: includes/class-bc-utility.php:1328 +#: includes/class-bc-utility.php:1322 msgid "Arabic" msgstr "" -#: includes/class-bc-utility.php:1329 +#: includes/class-bc-utility.php:1323 msgid "Aragonese" msgstr "" -#: includes/class-bc-utility.php:1330 +#: includes/class-bc-utility.php:1324 msgid "Armenian" msgstr "" -#: includes/class-bc-utility.php:1331 +#: includes/class-bc-utility.php:1325 msgid "Assamese" msgstr "" -#: includes/class-bc-utility.php:1332 +#: includes/class-bc-utility.php:1326 msgid "Avaric" msgstr "" -#: includes/class-bc-utility.php:1333 +#: includes/class-bc-utility.php:1327 msgid "Avestan" msgstr "" -#: includes/class-bc-utility.php:1334 +#: includes/class-bc-utility.php:1328 msgid "Aymara" msgstr "" -#: includes/class-bc-utility.php:1335 +#: includes/class-bc-utility.php:1329 msgid "Azerbaijani" msgstr "" -#: includes/class-bc-utility.php:1336 +#: includes/class-bc-utility.php:1330 msgid "Bambara" msgstr "" -#: includes/class-bc-utility.php:1337 +#: includes/class-bc-utility.php:1331 msgid "Bashkir" msgstr "" -#: includes/class-bc-utility.php:1338 +#: includes/class-bc-utility.php:1332 msgid "Basque" msgstr "" -#: includes/class-bc-utility.php:1339 +#: includes/class-bc-utility.php:1333 msgid "Belarusian" msgstr "" -#: includes/class-bc-utility.php:1340 +#: includes/class-bc-utility.php:1334 msgid "Bengali" msgstr "" -#: includes/class-bc-utility.php:1341 +#: includes/class-bc-utility.php:1335 msgid "Bihari" msgstr "" -#: includes/class-bc-utility.php:1342 +#: includes/class-bc-utility.php:1336 msgid "Bislama" msgstr "" -#: includes/class-bc-utility.php:1343 +#: includes/class-bc-utility.php:1337 msgid "Bosnian" msgstr "" -#: includes/class-bc-utility.php:1344 +#: includes/class-bc-utility.php:1338 msgid "Breton" msgstr "" -#: includes/class-bc-utility.php:1345 +#: includes/class-bc-utility.php:1339 msgid "Bulgarian" msgstr "" -#: includes/class-bc-utility.php:1346 +#: includes/class-bc-utility.php:1340 msgid "Burmese" msgstr "" -#: includes/class-bc-utility.php:1347 +#: includes/class-bc-utility.php:1341 msgid "Catalan" msgstr "" -#: includes/class-bc-utility.php:1348 +#: includes/class-bc-utility.php:1342 msgid "Chomorro" msgstr "" -#: includes/class-bc-utility.php:1349 +#: includes/class-bc-utility.php:1343 msgid "Chechen" msgstr "" -#: includes/class-bc-utility.php:1350 +#: includes/class-bc-utility.php:1344 msgid "Chichewa" msgstr "" -#: includes/class-bc-utility.php:1351 +#: includes/class-bc-utility.php:1345 msgid "Chinese" msgstr "" -#: includes/class-bc-utility.php:1352 +#: includes/class-bc-utility.php:1346 msgid "Chuvash" msgstr "" -#: includes/class-bc-utility.php:1353 +#: includes/class-bc-utility.php:1347 msgid "Cornish" msgstr "" -#: includes/class-bc-utility.php:1354 +#: includes/class-bc-utility.php:1348 msgid "Corsican" msgstr "" -#: includes/class-bc-utility.php:1355 +#: includes/class-bc-utility.php:1349 msgid "Cree" msgstr "" -#: includes/class-bc-utility.php:1356 +#: includes/class-bc-utility.php:1350 msgid "Croatian" msgstr "" -#: includes/class-bc-utility.php:1357 +#: includes/class-bc-utility.php:1351 msgid "Czech" msgstr "" -#: includes/class-bc-utility.php:1358 +#: includes/class-bc-utility.php:1352 msgid "Danish" msgstr "" -#: includes/class-bc-utility.php:1359 +#: includes/class-bc-utility.php:1353 msgid "Divehi" msgstr "" -#: includes/class-bc-utility.php:1360 +#: includes/class-bc-utility.php:1354 msgid "Dutch" msgstr "" -#: includes/class-bc-utility.php:1361 +#: includes/class-bc-utility.php:1355 msgid "Dzongkha" msgstr "" -#: includes/class-bc-utility.php:1362 +#: includes/class-bc-utility.php:1356 msgid "Esperanto" msgstr "" -#: includes/class-bc-utility.php:1363 +#: includes/class-bc-utility.php:1357 msgid "Estonian" msgstr "" -#: includes/class-bc-utility.php:1364 +#: includes/class-bc-utility.php:1358 msgid "Ewe" msgstr "" -#: includes/class-bc-utility.php:1365 +#: includes/class-bc-utility.php:1359 msgid "Faroese" msgstr "" -#: includes/class-bc-utility.php:1366 +#: includes/class-bc-utility.php:1360 msgid "Fijian" msgstr "" -#: includes/class-bc-utility.php:1367 +#: includes/class-bc-utility.php:1361 msgid "Finnish" msgstr "" -#: includes/class-bc-utility.php:1368 +#: includes/class-bc-utility.php:1362 msgid "French" msgstr "" -#: includes/class-bc-utility.php:1369 +#: includes/class-bc-utility.php:1363 msgid "Fula" msgstr "" -#: includes/class-bc-utility.php:1370 +#: includes/class-bc-utility.php:1364 msgid "Galician" msgstr "" -#: includes/class-bc-utility.php:1371 +#: includes/class-bc-utility.php:1365 msgid "Georgian" msgstr "" -#: includes/class-bc-utility.php:1372 +#: includes/class-bc-utility.php:1366 msgid "German" msgstr "" -#: includes/class-bc-utility.php:1373 +#: includes/class-bc-utility.php:1367 msgid "Greek" msgstr "" -#: includes/class-bc-utility.php:1374 +#: includes/class-bc-utility.php:1368 msgid "Guarani" msgstr "" -#: includes/class-bc-utility.php:1375 +#: includes/class-bc-utility.php:1369 msgid "Gujarati" msgstr "" -#: includes/class-bc-utility.php:1376 +#: includes/class-bc-utility.php:1370 msgid "Haitian" msgstr "" -#: includes/class-bc-utility.php:1377 +#: includes/class-bc-utility.php:1371 msgid "Hausa" msgstr "" -#: includes/class-bc-utility.php:1378 +#: includes/class-bc-utility.php:1372 msgid "Hebrew" msgstr "" -#: includes/class-bc-utility.php:1379 +#: includes/class-bc-utility.php:1373 msgid "Herero" msgstr "" -#: includes/class-bc-utility.php:1380 +#: includes/class-bc-utility.php:1374 msgid "Hindi" msgstr "" -#: includes/class-bc-utility.php:1381 +#: includes/class-bc-utility.php:1375 msgid "Hiri Motu" msgstr "" -#: includes/class-bc-utility.php:1382 +#: includes/class-bc-utility.php:1376 msgid "Hungarian" msgstr "" -#: includes/class-bc-utility.php:1383 +#: includes/class-bc-utility.php:1377 msgid "Interlingua" msgstr "" -#: includes/class-bc-utility.php:1384 +#: includes/class-bc-utility.php:1378 msgid "Indonesian" msgstr "" -#: includes/class-bc-utility.php:1385 +#: includes/class-bc-utility.php:1379 msgid "Irish" msgstr "" -#: includes/class-bc-utility.php:1386 +#: includes/class-bc-utility.php:1380 msgid "Igbo" msgstr "" -#: includes/class-bc-utility.php:1387 +#: includes/class-bc-utility.php:1381 msgid "Inupiaq" msgstr "" -#: includes/class-bc-utility.php:1388 +#: includes/class-bc-utility.php:1382 msgid "Icelandic" msgstr "" -#: includes/class-bc-utility.php:1389 +#: includes/class-bc-utility.php:1383 msgid "Italian" msgstr "" -#: includes/class-bc-utility.php:1390 +#: includes/class-bc-utility.php:1384 msgid "Inuktitut" msgstr "" -#: includes/class-bc-utility.php:1391 +#: includes/class-bc-utility.php:1385 msgid "Japanese" msgstr "" -#: includes/class-bc-utility.php:1392 +#: includes/class-bc-utility.php:1386 msgid "Javanese" msgstr "" -#: includes/class-bc-utility.php:1393 +#: includes/class-bc-utility.php:1387 msgid "Kalaallisut" msgstr "" -#: includes/class-bc-utility.php:1394 +#: includes/class-bc-utility.php:1388 msgid "Kannada" msgstr "" -#: includes/class-bc-utility.php:1395 +#: includes/class-bc-utility.php:1389 msgid "Kanuri" msgstr "" -#: includes/class-bc-utility.php:1396 +#: includes/class-bc-utility.php:1390 msgid "Kashmiri" msgstr "" -#: includes/class-bc-utility.php:1397 +#: includes/class-bc-utility.php:1391 msgid "Kazakh" msgstr "" -#: includes/class-bc-utility.php:1398 +#: includes/class-bc-utility.php:1392 msgid "Khmer" msgstr "" -#: includes/class-bc-utility.php:1399 +#: includes/class-bc-utility.php:1393 msgid "Kikuyu" msgstr "" -#: includes/class-bc-utility.php:1400 +#: includes/class-bc-utility.php:1394 msgid "Kinyarwanda" msgstr "" -#: includes/class-bc-utility.php:1401 +#: includes/class-bc-utility.php:1395 msgid "Kyrgyz" msgstr "" -#: includes/class-bc-utility.php:1402 +#: includes/class-bc-utility.php:1396 msgid "Komi" msgstr "" -#: includes/class-bc-utility.php:1403 +#: includes/class-bc-utility.php:1397 msgid "Kongo" msgstr "" -#: includes/class-bc-utility.php:1404 +#: includes/class-bc-utility.php:1398 msgid "Korean" msgstr "" -#: includes/class-bc-utility.php:1405 +#: includes/class-bc-utility.php:1399 msgid "Kurdish" msgstr "" -#: includes/class-bc-utility.php:1406 +#: includes/class-bc-utility.php:1400 msgid "Kwanyama" msgstr "" -#: includes/class-bc-utility.php:1407 +#: includes/class-bc-utility.php:1401 msgid "Latin" msgstr "" -#: includes/class-bc-utility.php:1408 +#: includes/class-bc-utility.php:1402 msgid "Luxembourgish" msgstr "" -#: includes/class-bc-utility.php:1409 +#: includes/class-bc-utility.php:1403 msgid "Ganda" msgstr "" -#: includes/class-bc-utility.php:1410 +#: includes/class-bc-utility.php:1404 msgid "Limburgish" msgstr "" -#: includes/class-bc-utility.php:1411 +#: includes/class-bc-utility.php:1405 msgid "Lingala" msgstr "" -#: includes/class-bc-utility.php:1412 +#: includes/class-bc-utility.php:1406 msgid "Lao" msgstr "" -#: includes/class-bc-utility.php:1413 +#: includes/class-bc-utility.php:1407 msgid "Lithuanian" msgstr "" -#: includes/class-bc-utility.php:1414 +#: includes/class-bc-utility.php:1408 msgid "Luba-Katanga" msgstr "" -#: includes/class-bc-utility.php:1415 +#: includes/class-bc-utility.php:1409 msgid "Latvian" msgstr "" -#: includes/class-bc-utility.php:1416 +#: includes/class-bc-utility.php:1410 msgid "Manx" msgstr "" -#: includes/class-bc-utility.php:1417 +#: includes/class-bc-utility.php:1411 msgid "Macedonian" msgstr "" -#: includes/class-bc-utility.php:1418 +#: includes/class-bc-utility.php:1412 msgid "Malagasy" msgstr "" -#: includes/class-bc-utility.php:1419 +#: includes/class-bc-utility.php:1413 msgid "Malay" msgstr "" -#: includes/class-bc-utility.php:1420 +#: includes/class-bc-utility.php:1414 msgid "Malayalam" msgstr "" -#: includes/class-bc-utility.php:1421 +#: includes/class-bc-utility.php:1415 msgid "Maltese" msgstr "" -#: includes/class-bc-utility.php:1422 +#: includes/class-bc-utility.php:1416 msgid "Maori" msgstr "" -#: includes/class-bc-utility.php:1423 +#: includes/class-bc-utility.php:1417 msgid "Marathi" msgstr "" -#: includes/class-bc-utility.php:1424 +#: includes/class-bc-utility.php:1418 msgid "Marshallese" msgstr "" -#: includes/class-bc-utility.php:1425 +#: includes/class-bc-utility.php:1419 msgid "Mongolian" msgstr "" -#: includes/class-bc-utility.php:1426 +#: includes/class-bc-utility.php:1420 msgid "Nauruan" msgstr "" -#: includes/class-bc-utility.php:1427 +#: includes/class-bc-utility.php:1421 msgid "Navajo" msgstr "" -#: includes/class-bc-utility.php:1428 +#: includes/class-bc-utility.php:1422 msgid "Northern Ndebele" msgstr "" -#: includes/class-bc-utility.php:1429 +#: includes/class-bc-utility.php:1423 msgid "Nepali" msgstr "" -#: includes/class-bc-utility.php:1430 +#: includes/class-bc-utility.php:1424 msgid "Ndonga" msgstr "" -#: includes/class-bc-utility.php:1431 +#: includes/class-bc-utility.php:1425 msgid "Norwegian Bokmal" msgstr "" -#: includes/class-bc-utility.php:1432 +#: includes/class-bc-utility.php:1426 msgid "Norwegian Nyorsk" msgstr "" -#: includes/class-bc-utility.php:1433 +#: includes/class-bc-utility.php:1427 msgid "Norwegian" msgstr "" -#: includes/class-bc-utility.php:1434 +#: includes/class-bc-utility.php:1428 msgid "Nuosu" msgstr "" -#: includes/class-bc-utility.php:1435 +#: includes/class-bc-utility.php:1429 msgid "Southern Ndebele" msgstr "" -#: includes/class-bc-utility.php:1436 +#: includes/class-bc-utility.php:1430 msgid "Occitan" msgstr "" -#: includes/class-bc-utility.php:1437 +#: includes/class-bc-utility.php:1431 msgid "Ojibwe" msgstr "" -#: includes/class-bc-utility.php:1438 +#: includes/class-bc-utility.php:1432 msgid "Oromo" msgstr "" -#: includes/class-bc-utility.php:1439 +#: includes/class-bc-utility.php:1433 msgid "Oriya" msgstr "" -#: includes/class-bc-utility.php:1440 +#: includes/class-bc-utility.php:1434 msgid "Ossetian" msgstr "" -#: includes/class-bc-utility.php:1441 +#: includes/class-bc-utility.php:1435 msgid "Panjabi" msgstr "" -#: includes/class-bc-utility.php:1442 +#: includes/class-bc-utility.php:1436 msgid "Pali" msgstr "" -#: includes/class-bc-utility.php:1443 +#: includes/class-bc-utility.php:1437 msgid "Persian" msgstr "" -#: includes/class-bc-utility.php:1444 +#: includes/class-bc-utility.php:1438 msgid "Polish" msgstr "" -#: includes/class-bc-utility.php:1445 +#: includes/class-bc-utility.php:1439 msgid "Pashto" msgstr "" -#: includes/class-bc-utility.php:1446 +#: includes/class-bc-utility.php:1440 msgid "Portuguese" msgstr "" -#: includes/class-bc-utility.php:1447 +#: includes/class-bc-utility.php:1441 msgid "Quechua" msgstr "" -#: includes/class-bc-utility.php:1448 +#: includes/class-bc-utility.php:1442 msgid "Romanian" msgstr "" -#: includes/class-bc-utility.php:1449 +#: includes/class-bc-utility.php:1443 msgid "Romanish" msgstr "" -#: includes/class-bc-utility.php:1450 +#: includes/class-bc-utility.php:1444 msgid "Russian" msgstr "" -#: includes/class-bc-utility.php:1451 +#: includes/class-bc-utility.php:1445 msgid "Sanskrit" msgstr "" -#: includes/class-bc-utility.php:1452 +#: includes/class-bc-utility.php:1446 msgid "Sardinian" msgstr "" -#: includes/class-bc-utility.php:1453 +#: includes/class-bc-utility.php:1447 msgid "Sindhi" msgstr "" -#: includes/class-bc-utility.php:1454 +#: includes/class-bc-utility.php:1448 msgid "Northern Sami" msgstr "" -#: includes/class-bc-utility.php:1455 +#: includes/class-bc-utility.php:1449 msgid "Samoan" msgstr "" -#: includes/class-bc-utility.php:1456 +#: includes/class-bc-utility.php:1450 msgid "Sango" msgstr "" -#: includes/class-bc-utility.php:1457 +#: includes/class-bc-utility.php:1451 msgid "Serbian" msgstr "" -#: includes/class-bc-utility.php:1458 +#: includes/class-bc-utility.php:1452 msgid "Scottish Gaelic" msgstr "" -#: includes/class-bc-utility.php:1459 +#: includes/class-bc-utility.php:1453 msgid "Shona" msgstr "" -#: includes/class-bc-utility.php:1460 +#: includes/class-bc-utility.php:1454 msgid "Sinhala" msgstr "" -#: includes/class-bc-utility.php:1461 +#: includes/class-bc-utility.php:1455 msgid "Slovak" msgstr "" -#: includes/class-bc-utility.php:1462 +#: includes/class-bc-utility.php:1456 msgid "Slovene" msgstr "" -#: includes/class-bc-utility.php:1463 +#: includes/class-bc-utility.php:1457 msgid "Somali" msgstr "" -#: includes/class-bc-utility.php:1464 +#: includes/class-bc-utility.php:1458 msgid "Southern Sotho" msgstr "" -#: includes/class-bc-utility.php:1465 +#: includes/class-bc-utility.php:1459 msgid "Spanish" msgstr "" -#: includes/class-bc-utility.php:1466 +#: includes/class-bc-utility.php:1460 msgid "Sudanese" msgstr "" -#: includes/class-bc-utility.php:1467 +#: includes/class-bc-utility.php:1461 msgid "Swahili" msgstr "" -#: includes/class-bc-utility.php:1468 +#: includes/class-bc-utility.php:1462 msgid "Swati" msgstr "" -#: includes/class-bc-utility.php:1469 +#: includes/class-bc-utility.php:1463 msgid "Swedish" msgstr "" -#: includes/class-bc-utility.php:1470 +#: includes/class-bc-utility.php:1464 msgid "Tamil" msgstr "" -#: includes/class-bc-utility.php:1471 +#: includes/class-bc-utility.php:1465 msgid "Telugu" msgstr "" -#: includes/class-bc-utility.php:1472 +#: includes/class-bc-utility.php:1466 msgid "Tajik" msgstr "" -#: includes/class-bc-utility.php:1473 +#: includes/class-bc-utility.php:1467 msgid "Thai" msgstr "" -#: includes/class-bc-utility.php:1474 +#: includes/class-bc-utility.php:1468 msgid "Tigrinya" msgstr "" -#: includes/class-bc-utility.php:1475 +#: includes/class-bc-utility.php:1469 msgid "Tibetan" msgstr "" -#: includes/class-bc-utility.php:1476 +#: includes/class-bc-utility.php:1470 msgid "Turkmen" msgstr "" -#: includes/class-bc-utility.php:1477 +#: includes/class-bc-utility.php:1471 msgid "Tagalog" msgstr "" -#: includes/class-bc-utility.php:1478 +#: includes/class-bc-utility.php:1472 msgid "Tswana" msgstr "" -#: includes/class-bc-utility.php:1479 +#: includes/class-bc-utility.php:1473 msgid "Tonga" msgstr "" -#: includes/class-bc-utility.php:1480 +#: includes/class-bc-utility.php:1474 msgid "Turkish" msgstr "" -#: includes/class-bc-utility.php:1481 +#: includes/class-bc-utility.php:1475 msgid "Tsonga" msgstr "" -#: includes/class-bc-utility.php:1482 +#: includes/class-bc-utility.php:1476 msgid "Tatar" msgstr "" -#: includes/class-bc-utility.php:1483 +#: includes/class-bc-utility.php:1477 msgid "Twi" msgstr "" -#: includes/class-bc-utility.php:1484 +#: includes/class-bc-utility.php:1478 msgid "Tahitian" msgstr "" -#: includes/class-bc-utility.php:1485 +#: includes/class-bc-utility.php:1479 msgid "Uyghur" msgstr "" -#: includes/class-bc-utility.php:1486 +#: includes/class-bc-utility.php:1480 msgid "Ukrainian" msgstr "" -#: includes/class-bc-utility.php:1487 +#: includes/class-bc-utility.php:1481 msgid "Urdu" msgstr "" -#: includes/class-bc-utility.php:1488 +#: includes/class-bc-utility.php:1482 msgid "Uzbek" msgstr "" -#: includes/class-bc-utility.php:1489 +#: includes/class-bc-utility.php:1483 msgid "Venda" msgstr "" -#: includes/class-bc-utility.php:1490 +#: includes/class-bc-utility.php:1484 msgid "Vietnamese" msgstr "" -#: includes/class-bc-utility.php:1491 +#: includes/class-bc-utility.php:1485 msgid "Volapuk" msgstr "" -#: includes/class-bc-utility.php:1492 +#: includes/class-bc-utility.php:1486 msgid "Walloon" msgstr "" -#: includes/class-bc-utility.php:1493 +#: includes/class-bc-utility.php:1487 msgid "Welsh" msgstr "" -#: includes/class-bc-utility.php:1494 +#: includes/class-bc-utility.php:1488 msgid "Wolof" msgstr "" -#: includes/class-bc-utility.php:1495 +#: includes/class-bc-utility.php:1489 msgid "Western Frisian" msgstr "" -#: includes/class-bc-utility.php:1496 +#: includes/class-bc-utility.php:1490 msgid "Xhosa" msgstr "" -#: includes/class-bc-utility.php:1497 +#: includes/class-bc-utility.php:1491 msgid "Yiddish" msgstr "" -#: includes/class-bc-utility.php:1498 +#: includes/class-bc-utility.php:1492 msgid "Yoruba" msgstr "" -#: includes/class-bc-utility.php:1499 +#: includes/class-bc-utility.php:1493 msgid "Zhuang" msgstr "" -#: includes/class-bc-utility.php:1500 +#: includes/class-bc-utility.php:1494 msgid "Zulu" msgstr "" @@ -1919,15 +1923,11 @@ msgid "" "Brightcoveâ„¢ Capabilities" msgstr "" -#. Author of the plugin/theme -msgid "10up" -msgstr "" - #. Author URI of the plugin/theme -msgid "http://10up.com" +msgid "https://brightcove.com" msgstr "" -#: includes/admin/class-bc-templates.php:619 +#: includes/admin/class-bc-templates.php:628 msgctxt "Uploader: Drop files here - or - Select Files" msgid "or" msgstr "" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d38257e9..f22c1111 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "brightcove-video-connect", - "version": "2.8.4", + "version": "2.8.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "brightcove-video-connect", - "version": "2.8.4", + "version": "2.8.5", "devDependencies": { "@10up/cypress-wp-utils": "github:10up/cypress-wp-utils#build", "@10up/eslint-config": "^2.3.5", diff --git a/package.json b/package.json index 88548425..6d2be547 100644 --- a/package.json +++ b/package.json @@ -3,11 +3,11 @@ "private": true, "title": "brightcove-video-connect", "description": "A Brightcove plugin for WordPress.", - "version": "2.8.4", + "version": "2.8.5", "homepage": "https://wordpress.org/plugins/brightcove-video-connect/", "author": { - "name": "10up", - "email": "sales@10up.com" + "name": "Brightcove", + "email": "sales@brightcove.com" }, "scripts": { "watch": "grunt watch", diff --git a/readme.txt b/readme.txt index 1dc020d9..a03db5ea 100644 --- a/readme.txt +++ b/readme.txt @@ -1,20 +1,19 @@ === Brightcove Video Connect === -Contributors: 10up, oscarssanchez, collinsinternet, ivankk, technosailor, ChrisWiegman, tott, eduardmaghakyan, mattonomics, phoenixfireball, karinedo, foobuilder, helen, tlovett1, jonathantneal, brightcove, adamsilverstein, jonbellah, sudar, bctbaldwin, rahmohn -Donate link: https://supporters.eff.org/donate -Tags: brightcove, 10up, videos, video -Requires at least: 4.2 -Tested up to: 6.4 -Stable tag: 2.8.4 -License: GPLv2 or later -License URI: http://www.gnu.org/licenses/gpl-2.0.html +Contributors: brightcove, 10up, oscarssanchez, collinsinternet, ivankk, technosailor, ChrisWiegman, tott, eduardmaghakyan, mattonomics, phoenixfireball, karinedo, foobuilder, helen, tlovett1, jonathantneal, adamsilverstein, jonbellah, sudar, bctbaldwin, rahmohn +Donate link: https://supporters.eff.org/donate +Tags: brightcove, videos, video +Tested up to: 6.5 +Stable tag: 2.8.5 +License: GPLv2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html Brightcove integration plugin, manage your Brightcove video cloud from within WordPress, using the latest APIs == Description == Are you looking to handle your Brightcove Video and Playlist library natively from within WordPress or use Brightcove's Gallery In-Page video experiences? -With this plugin, developed by 10up.com, you have the power to handle multiple accounts and video libraries, upload videos and add them to playlists, render shortcodes with your videos and all from within the WordPress admin interface. +With this plugin, you have the power to handle multiple accounts and video libraries, upload videos and add them to playlists, render shortcodes with your videos and all from within the WordPress admin interface. == Installation and Usage and FAQ == @@ -40,6 +39,27 @@ For installation, usage, and Frequently Asked Question please see the [Brightcov == Changelog == += 2.8.5 - 2023-04-22 = + +__Changed:__ + +* Add Select field for labels. Props [@burhandodhy](https://github.com/burhandodhy). +* Cache the API response and display a message from where user can retry the API again. Props [@burhandodhy](https://github.com/burhandodhy) and [@jonnynews](https://github.com/jonnynews). +* Update readme and assets. Props [@jeffpaul](https://github.com/jeffpaul). + +__Fixed:__ + +* First parameter type of add_submenu_page() when no parent slug is sent. Props [@jonnynews](https://github.com/jonnynews). +* Display error message when the previous request is aborted. Props [@burhandodhy](https://github.com/burhandodhy). +* PHP warning while editing a label. Props [@MARQAS](https://github.com/MARQAS) and [@felipeelia](https://github.com/felipeelia). +* PHP warning while saving a video. Props [@MARQAS](https://github.com/MARQAS) and [@felipeelia](https://github.com/felipeelia). +* Move playlist notice above controls bar. Props [@MARQAS](https://github.com/MARQAS) and [@felipeelia](https://github.com/felipeelia). +* Clicking on the "Edit" and "Preview" buttons for the inactive videos breakes the layout. Props [@burhandodhy](https://github.com/burhandodhy) and [@felipeelia](https://github.com/felipeelia). +* Add support for special characters. Props [@burhandodhy](https://github.com/burhandodhy) and [@cr0ybot](https://github.com/cr0ybot). +* Search box alignment in Media modal. Props [@MARQAS](https://github.com/MARQAS) and [@felipeelia](https://github.com/felipeelia). +* Limit API calls on unwanted admin pages. Props [@burhandodhy](https://github.com/burhandodhy). +* Video update API fails when labels are empty. Props [@burhandodhy](https://github.com/burhandodhy). + = 2.8.4 - 2023-11-30 = __Added:__ @@ -189,7 +209,7 @@ Security * Bump `hosted-git-info` from 2.8.8 to 2.8.9 (props [@dependabot](https://github.com/dependabot) via [#212](https://github.com/10up/brightcove-video-connect/pull/212)) * Bump `normalize-url` from 4.5.0 to 4.5.1 (props [@dependabot](https://github.com/dependabot) via [#213](https://github.com/10up/brightcove-video-connect/pull/213)) -= 2.1.4 = += 2.1.4 = * Fix: Default Source field when is submitted unchecked. * Fix: Adjust the position of media details in the editing modal. @@ -468,4 +488,4 @@ Fixed issues with "Insert into Post" button = 1.1.3 = -1.1.3 solves many JavaScript errors that users have been experiencing and is recommended for all users \ No newline at end of file +1.1.3 solves many JavaScript errors that users have been experiencing and is recommended for all users

    - +