CINXE.COM

Simpleview DAM - Digital Asset Management for DMOs

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="description" content="Simpleview DAM Systems provide online archival management, and distribution solutions for video, image and data resources."> <meta name="keywords" content="asset management, stockphoto, digital asset, distribution, archival, videos, images, stock video, DMO, DAM"> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta name="robots" content="noindex, nofollow"> <title>Simpleview DAM - Digital Asset Management for DMOs</title> <link rel="shortcut icon" href="/images/favicon.ico" /> <!--[if lt IE 9]> <link rel="stylesheet" type="text/css" href="./css/barberstock/ie.css" /> <![endif]--> <link href='//fonts.googleapis.com/css?family=Open+Sans:300,600' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css"> <link rel="stylesheet" href="/css/barberstock/datepicker3.css"> <link rel="stylesheet" href="/css/barberstock/main.css"> <link rel="stylesheet" href="/css/barberstock/ui-preview.css"> <link rel="stylesheet" href="/css/barberstock/nav.css"> <link rel="stylesheet" href="/css/barberstock/players.css"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link rel="stylesheet" href="/css/barberstock/bem/download_request.css"/> <style type="text/css"> ._search-sorting { display: none; } #inputSearchTerms { border-radius: 4px; } #sidebar { display: none; } .main-content-container a[data-sidenav-toggle] { display: none !important; } #page-content { margin-left: 10px; } #loading { width: 95%; } .fileToggles { display: none; } .login-links { display: block; } #btnLogin, div.login-creds input { display: block !important; } div.login-creds { padding-top: 0; margin-right: 10px; } div.login-creds input { margin-bottom: 3px; } #btnLogout, .login-creds .name { display: none !important; } </style> <script> let publicUser; publicUser = {"0":"","id":"5793","1":"","firstname":"","2":"","lastname":"chan ns pub","3":"","type":"public","4":"","permalink":"nova-scotia","5":"","asset_owner":"Nova Scotia","6":"","custom_options":{"assetUpload":{"active":1,"administrators":["searsmt@gov.ns.ca","pamela.wamback@novascotia.ca","johnsp@gov.ns.ca","tanya.johnson@novascotia.ca","sarah.hennebury@novascotia.ca","Dana.Edgar@novascotia.ca","braggcl@gov.ns.ca","meaghan.giffin@novascotia.ca","hannah.crawford@novascotia.ca","Patricia.Pardy@novascotia.ca","barberstock@novascotia.ca","emily.hiltz@novascotia.ca","bob.pember@simpleviewinc.com"],"emailAdminOnUserUpload":1,"emailNotifyUser":1,"batchAdmin":["dam-processing-notifications@simpleviewinc.com"],"emailBatchAdmin":1,"insertAsset":{"active":1,"bsDigits":"010"}},"assetUploadAdmin":1,"audioMediaType":0,"autoKeywordsImages":{"active":1,"activationDate":"0000-00-00"},"carouselGroup":1447,"contacts":{"quickContact":["barberstock@novascotia.ca"]},"csvStatistics":1,"customLoginPage":1,"enableAssetKeywords":0,"features":{"groups":{"max":20,"multi":1}},"formats":{"proxy":1},"forms":{"newUserSignup":{"title":"Nova Scotia Registration","intro":"Fill out this form to register to view\/download the assets on this site.","captcha":false,"fields":[{"name":"first_name","label":"First name","required":true,"type":"text"},{"name":"last_name","label":"Last name","required":true,"type":"text"},{"name":"email","label":"Email\/Username","required":true,"type":"email"},{"name":"company","label":"Company","required":true,"type":"text"},{"name":"address","label":"Address","required":true,"type":"text"},{"name":"city","label":"City","required":true,"type":"text"},{"name":"province","label":"State\/Province","required":true,"type":"text"},{"name":"country","label":"Country","required":true,"type":"countrySelect"},{"name":"postal_code","label":"Zip\/Postal code","required":true,"type":"text"},{"name":"telephone","label":"Telephone","required":true,"type":"phone"},{"name":"reason","label":"How will you be using these digital assets?","required":true,"type":"textarea"}]}},"hideEpsSizes":0,"languages":["en"],"legacy":{"mode":"public","platform_config":{"cssUrl":"css\/nova-scotia\/jquery-ui-1.7.3.custom.css","logoUrl":"\/images\/nova-scotia\/logo.gif","footerText":"&copy; {{system.date.year}} Tourism Nova Scotia","assetOwner":"nova-scotia"},"alwaysShowTermsOnLogin":0},"linkDocuments":1,"multiLanguage":1,"multipleAccessGroups":1,"platformWarning":0,"publicPage":{"loginOnly":0,"selfRegistration":0},"requestAuthEmails":["Dana.Edgar@novascotia.ca","barberstock@novascotia.ca","Emily.Hiltz@novascotia.ca"],"requestAuthorization":0,"requestAuthorizationReqApproval":1,"requestCheckAssetOwner":1,"requestDownload":1,"saveKeywordSearches":1,"searchOtherFileFormats":1,"searchSort":1,"searchdefault":{"type":"video","size":"50","noFrameRate":1,"searchExternalOwners":0,"externalOwners":[30,27,29]},"uploadAssetsMasterLock":0,"userFeatureList":0}}; </script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-133170400-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-133170400-1'); window['GoogleAnalyticsObject'] = 'ga'; window['ga'] = window['ga'] || function() { (window['ga'].q = window['ga'].q || []).push(arguments) }; ga('create', 'UA-133170400-1', 'auto'); </script> <script src="/js/barberstock/fileTypeHelper.js" type="text/javascript"></script> <script src="/js/pendo.js"></script> <script id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=dd7047e7-0c04-4bf5-8082-dd7acdf80d7c"></script> <script src="https://cdn.lr-in-prod.com/LogRocket.min.js" crossorigin="anonymous"></script> <script>window.LogRocket && window.LogRocket.init('tpmbsg/sv-bbs-testbed');</script> <script> sessionStorage.clear(); </script> <link id="themeCss" rel="stylesheet" href="" onload="document.getElementsByTagName('body')[0].style.display ='block'"> </head> <body style="display:none" class="lang- ui-orig"> <div class="container-fluid splash-page cloak"> <div class="row"> <div class="slideshow-container" id="slider"> <div class="slideshow-overlay-container"> <div class="slideshow-overlay"> <div id='btnPrev'> <svg class="slideshow-button"> <circle cx="20" cy="20" r="19" fill="none" stroke-width="1" stroke="#fff"></circle> <polygon points="28, 7 28, 33 6, 21" fill="#fff"></polygon> </svg> </div> <div class="logo-container"> <img src="/clients/nova-scotia/images/login_logo.png" alt="Nova Scotia" /> </div> <div id='btnNext'> <svg class="slideshow-button"> <circle cx="20" cy="20" r="19" fill="none" stroke-width="1" stroke="#fff"></circle> <polygon points="12, 7 12, 33 34, 21" fill="#fff"></polygon> </svg> </div> </div> <div class="bottom-header"> <h3> Digital Asset Library</h3> </div> <div class="slideshow-dots" style="text-align:center"> <span class="dot active" data-id="0"></span> <span class="dot " data-id="1"></span> <span class="dot " data-id="2"></span> <span class="dot " data-id="3"></span> <span class="dot " data-id="4"></span> </div> <div id="sliderContent"> <div class="sliderImage" style="background-image:url('https://s3.amazonaws.com/barberstock/carousel/010-3-5584.jpeg')"> </div> <div class="sliderImage" style="background-image:url('https://s3.amazonaws.com/barberstock/carousel/010-3-5038.jpeg')"> </div> <div class="sliderImage" style="background-image:url('https://s3.amazonaws.com/barberstock/carousel/010-3-5434.jpeg')"> </div> <div class="sliderImage" style="background-image:url('https://s3.amazonaws.com/barberstock/carousel/010-3-4474.jpeg')"> </div> <div class="sliderImage" style="background-image:url('https://s3.amazonaws.com/barberstock/carousel/010-3-5551.jpeg')"> </div> </div> </div> </div> </div> </div> <script> var altLinkText = "Staff Library Login"; var loginInvitationText = "To download this asset and to explore the full library, please login or register at the top right-hand side of the page."; var closeButtonText = "Close"; </script> <!-- navbar --> <div class="navbar navbar-default navbar-fixed-top"> <div class="container-fluid"> <!-- maintenance mode --> <div class="navbar-header hide-text navbar-left"> <div class="navbar-brand"><img id="newHeaderLogo" src="./images//logo.gif" /></div> <a href='#' data-search-toggle><i class="fas fa-bars platform-color"></i></a> </div> <div class="navbar-collapse collapse search-toggle" data-search-nav> <div class="navbar-left btn-group search-bar"> <form autocomplete="off"> <input type="hidden" id="media_type" value="image" /> <div class="input-group"> <input name="searchText" type="text" class="form-control" id="inputSearchTerms" autocomplete="off"> <input type="hidden" id="perpage" value="50" /> <input type="hidden" id="sorting" value="Rank" /> <input type="hidden" id="group_id" value="0" /> </div> </form> <div class="media-type-container"> <div class="btn-group media-type-selector"> <button type="button" class="btn btn-default" data-val="image" disabled="disabled">Images</button> <button type="button" class="btn btn-default" data-val="video"> Videos </button> </div> </div> <button id="btnSearch">Search</button> </div> <div class="navbar-right login-area"> <div class="login-links"> <a href="#" id="_register">Register</a> | <a href="/forgot-password">Forgot Password</a> </div> <div class="login-creds"> <span class="name">Hello!</span> <input type="text" id="username" class="form-control" placeholder="Username"> <input type="password" id="password" class="form-control" placeholder="Password"> </div> <button id="btnLogin" class="platform-button">Login</button> <button id="btnLogout">Logout</button> </div> </div> </div> </div> <!-- Content --> <div class="container-fluid main-content-container"> <div class="row main" id="container"> <!-- Sidebar --> <a href='#' data-sidenav-toggle> <i class="fas fa-arrow-right platform-color"></i><i class="fas fa-arrow-left platform-color"></i> </a> <!-- Page Content --> <div id="page-content"> <div class="modal fade" id="uploadsModal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span>&times;</span><span class="sr-only">Close</span></button> <h4 class="modal-title">Saved</h4> </div> <div class="modal-body"> Thank you for your submission. </div> <div class="modal-footer"> <button type="button" class="btn btn-default platform-button-reverse" data-dismiss="modal">Close</button> </div> </div> </div> </div> <div class="modal fade" id="submitMsgModal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <!-- <button type="button" class="close" data-dismiss="modal"><span>&times;</span><span class="sr-only">Close</span></button> --> <h4 class="modal-title"></h4> </div> <div class="modal-body"> </div> <div class="modal-footer"> <!-- <button type="button" class="btn btn-default platform-button-reverse" data-dismiss="modal">Close</button> --> </div> </div> </div> </div> <div class="_container" id="loading"> <div><span>Just a moment,</span> we're refreshing the page.</div> <div class="progress" id="jq-refresh-progress"> <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"> </div> </div> </div> <div id="legacyReactContainer" class='_container' style="display:none;" ></div> <div class="_container subview" id="searchResults"> <div class="bsbreadcrumb _bsbreadcrumb"></div> <div id="searchResultsList"></div> </div> <div class="_container subview" id="queueList"></div> <div class="_container subview" id="setResults"></div> <div class="_container subview" id="uploadTermsAndConditions"> <h1>Notice</h1> <p>You must accept the Upload Terms &amp; Conditions to upload assets.</p> <div class="modal fade" id="uploadTermsModal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span>&times;</span><span class="sr-only">Close</span></button> <h4 class="modal-title">Upload Terms &amp; Conditions</h4> </div> <div class="modal-body"> </div> <div class="modal-footer"> <button type="button" class="btn btn-default platform-button-reverse" data-accept-asset-upload-terms data-dismiss="modal">Accept</button> <button type="button" class="btn btn-default platform-button-reverse" data-dismiss="modal">Reject</button> </div> </div> </div> </div> </div> <div class="_container subview" id="assetUpload"> <h1>Upload Assets</h1> <div id="uploader">Your browser doesn't have Flash, Silverlight or HTML5 support.</div> <div id="userUploads"> <table class="table table-fixed no-margin"> <thead> <tr> <th width="86%" class="no-border"> <h2 id='userUploadsLabel'> My Uploads </h2> </th> <th width="14%" class="no-border"> <button type="button" class="btn btn-default platform-button-reverse" id="jq-upload-more">Upload More Files</button> </th> </tr> </thead> <tbody></tbody> </table> <div id="optionsBar" class=""> <table class="table table-fixed"> <thead> <tr> <th width="86%" class="no-border"> <div class="btn-group perpagelist" id="jq-user-uploads-page-buttons" role="group"> <button class="btn btn-default" data-val="10" type="button" disabled="">10</button> <button class="btn btn-default" data-val="20" type="button">20</button> <button class="btn btn-default" data-val="50" type="button">50</button> <button class="btn btn-default" data-val="100" type="button">100</button> </div> </th> <th width="14%" class="no-border"> <div class="paginate" id="jq-user-uploads-pagination"></div> </th> </tr> </thead> <tbody></tbody> </table> </div> <table class="table table-striped table-fixed" id="userUploadData"> <thead> <tr> <th width="4%" class="text-center"><label>Select All</label><input type="checkbox" id="jq-select-all" style="vertical-align: top; margin: 0;"/></th> <th width="11%"></th> <th width="47%"> <button type="button" class="btn btn-default platform-button-reverse" id="jq-batch-enter-metadata">Batch Enter Metadata</button> </th> <th width="12%">Status</th> <th width="12%">Submit Date</th> <th width="14%"> <button type="button" class="btn btn-default platform-button-reverse" id="jq-submit-all-uploads">Submit All</button> </th> </tr> </thead> <tbody></tbody> </table> </div> </div> <div class="_container subview" id="adminReports" > <iframe id="adminReportsContent" src="/loader.html" frameBorder="0" frameborder="0" style="width:100%; height: 100vh; min-height: 100%;"></iframe> </div> <div class="_container subview" id="termsConditions"> <div class="_legal"> <div class="btn-group legal-terms"> <button data-val="client" class="btn btn-default" type="button" disabled="">Client Terms</button> <button data-val="bsterm" class="btn btn-default" type="button">Simpleview DAM Terms</button> <button data-val="uploadterm" class="btn btn-default" type="button">Upload Terms &amp; Conditions</button> </div> <div class="tab-content"> <div class="tab-pane _legalContainer active" id="client"></div> <div class="tab-pane" id="uploadterm"> </div> <div class="tab-pane" id="bsterm"> <h2>TERMS OF SERVICE (Users)</h2> <p> By visiting our website (novascotia.barberstock.com) and/or downloading content, you engage in our "Service" and agree to be bound by the following terms and conditions These Terms of Service apply to all users of the site, including without limitation users who are browsers, vendors, customers, merchants, and/ or contributors of content. </p> <p> Please read these Terms of Service carefully before accessing or using our website. By accessing or using any part of the site, you agree to be bound by these Terms of Service. If you do not agree to all the Terms of Service of this agreement, then you may not access the website or use any services. </p> <h3>License to use website</h3> <p> Unless otherwise stated, Simpleview DAM's Client whose material is placed on our website owns the intellectual property rights to such material on the website. Subject to the license below, all these intellectual property rights are reserved. </p> <p> You may view and download content from the website for your own personal use, subject to the restrictions set out below and set out by the Client. </p> <p> You must not: </p> <ul> <li>sell, rent or sub-license material from the website;</li> <li>exploit material on this website for a commercial purpose; or</li> <li>edit or otherwise modify any material on the website.</li> </ul> <h3>Acceptable Use</h3> <p> You must not use this website in any way that causes, or may cause, damage to the website or impairment of the availability or accessibility of the website; or in any way which is unlawful, illegal, fraudulent or harmful, or in connection with any unlawful, illegal, fraudulent or harmful purpose or activity. </p> <p> You must not use this website to copy, store, host, transmit, send, use, publish or distribute any material which consists of (or is linked to) any spyware, computer virus, Trojan horse, worm, keystroke logger, rootkit or other malicious computer software. </p> <p> You must not conduct any systematic or automated data collection activities (including without limitation scraping, data mining, data extraction and data harvesting) on or in relation to this website without Simpleview DAM's express written consent. </p> <h3>User Access</h3> <p> Users are provided with a user ID and password to enable you to access restricted areas of this website. Users are responsible for the maintenance, confidentiality, and security of all passwords related to your User account, and any and all activities that occur under your User account (with or without your permission). </p> <p> Users are responsible for notifying Simpleview DAM as soon as possible after you obtain or receives knowledge of (a) any unauthorized use of your User Account or password related to your User account, or (b) any other breach of security with respect to your User account. </p> Simpleview DAM may disable your user ID and password at our sole discretion without notice or explanation. </p> <h3>Contributor Users</h3> <p> In these terms and conditions, "your user content" means material (including without limitation text, images, audio material, video material, documents, and audio-visual material) that you submit to this website, for whatever purpose. </p> <p> You grant to Simpleview DAM and the Client a worldwide, irrevocable, non-exclusive, royalty-free license to use, reproduce, adapt, publish, translate and distribute your user content in any existing or future media unless otherwise stated. You also grant to Simpleview DAM and the Client the right to sub-license these rights, and the right to bring an action for infringement of these rights. </p> <p> Your user content must not be illegal or unlawful, must not infringe any third party's legal rights, and must not be capable of giving rise to legal action whether against you or Simpleview DAM and the Client or a third party (in each case under any applicable law). </p> <p> You must not submit any user content to the website that is or has ever been the subject of any threatened or actual legal proceedings or other similar complaint. </p> <p> Simpleview DAM reserves the right to edit or remove any material submitted to this website, or stored on our servers, or hosted or published upon this website. </p> <h3>Limitations of liability</h3> <p> Simpleview DAM and our Client whose material is placed on our website will not be liable to you (whether under the law of contact, the law of torts or otherwise) in relation to the contents of, or use of, or otherwise in connection with, this website: </p> <ul> <li>to the extent that the website is provided free-of-charge, for any direct loss;</li> <li>for any indirect, special or consequential loss; or</li> <li>for any business losses, loss of revenue, income, profits or anticipated savings, loss of contracts or business relationships, loss of reputation or goodwill, or loss or corruption of information or data.</li> </ul> <h3>Indemnity</h3> <p> You agree to indemnify, defend and hold harmless Simpleview DAM and our client whose material is placed on our website, and each such entity’s parent, subsidiaries, affiliates, partners, officers, directors, agents, contractors, licensors, service providers, subcontractors, suppliers, interns and employees, harmless from any claim or demand, including reasonable attorneys' fees, made by any third-party due to or arising out of your breach of these Terms of Service or the documents they incorporate by reference, or your violation of any law or the rights of a third-party. </p> <h3>Severability</h3> <p> In the event that any provision of these Terms of Service is determined to be unlawful, void or unenforceable, such provision shall nonetheless be enforceable to the fullest extent permitted by applicable law, and the unenforceable portion shall be deemed to be severed from these Terms of Service, such determination shall not affect the validity and enforceability of any other remaining provisions. </p> <h3>Breaches of these Terms of Service</h3> <p> Without prejudice to Simpleview DAM's other rights under these Terms of Service, if you breach these Terms of Service in any way, Simpleview DAM may take such action as deemed appropriate to deal with the breach, including suspending your access to the website, prohibiting you from accessing the website, blocking computers using your IP address from accessing the website, contacting your internet service provider to request that they block your access to the website and/or bringing court proceedings against you. </p> <h3>Variation</h3> <p> You can review the most current version of the Terms of Service at any time on this page. We reserve the right to update, change or replace any part of these Terms of Service by posting updates and/or changes to our website. It is your responsibility to check this page periodically for changes. Your continued use of or access to the website following the posting of any changes constitutes acceptance of those changes. </p> <h3>Law and jurisdiction</h3> <p> These terms and conditions will be governed by and construed in accordance with the province of British Columbia, and any disputes relating to these terms and conditions will be subject to the exclusive jurisdiction of the courts of the province of British Columbia. </p> <p> If you have any questions regarding Simpleview DAM's Terms & Conditions, please email: <a href="mailto:damsupport@simpleviewinc.com">damsupport@simpleviewinc.com</a> </p> </div> </div> </div> </div> </div> </div> </div> <!-- status message --> <div class="_statusMessageHelper statusMessageHelper"> <div> <span id="statusMessage"></span> </div> </div> <!-- Modal --> <div class="modal fade" id="generalModal" tabindex="-1"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span>&times;</span></button> <h4 class="modal-title"></h4> </div> <div class="modal-body"> </div> <div class="modal-footer"> </div> </div> </div> </div> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script> <script src="/js/barberstock/bootstrap-datepicker.js"></script> <script src="/js/barberstock/main.js"></script> <script src="/js/barberstock/downloadRequest-min.js"></script> <script> var jq = jQuery.noConflict(); var userSet = []; var formiFrameLoaded = function(form_frame_name){ if(form_frame_name === undefined){ form_frame_name = 'form_frame'; } $('#loader_frame').remove(); $('#'+form_frame_name).css({ height: '99%' }); } var submitAssetFromUserUploads = function(asset_id, asset_description, cb){ var modal = jq('#submitMsgModal'); modal.find('.modal-title').html('File Upload in Progress').css('text-transform', 'none'); $('#submitMsgModal').find('.modal-body').addClass('center-block'); msg = "<p>Please DO NOT close or navigate away from this page.</p>"; var progressBarHTML = '<div class="progress progress-striped active"><div class="progress-bar" id="upload-asset-loading" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div></div>'; var uploadProgress; var showUploadProgress = function() { $('.progress-bar').width(0); $('#upload-asset-loading').show(0, function() { uploadProgress = setInterval(uploadProgressBar, 800); }); }; var uploadProgressBar = function () { var uploadBar = $('.progress-bar'); if (uploadBar.width() >= 400) { clearInterval(uploadProgress); } else { uploadBar.width(uploadBar.width() + 50); } }; jq('#submitMsgModal').find('.modal-body').html(msg).append(progressBarHTML); showUploadProgress(); jq('#submitMsgModal').modal('show'); loadSelfUploadedAssets(0); document.activeElement.blur(); jq.ajax('/ajax/asset_upload.php?action=userSave', { type: 'POST', dataType: 'json', data: { id: asset_id, description: asset_description }, success: function(res) { jq('#submitMsgModal').modal('hide'); var msg = res.response; var title = res.title; if (res.success == false) { var modal = jq('#generalModal'); modal.find('.modal-title').html('Missing Metadata'); modal.find('.modal-body').text('Please enter Keywords, Credit, and Use Information in Enter Metadata.'); modal.modal('show'); return; } else { var modal = jq('#uploadsModal'); modal.find('.modal-title').html(title).css('text-transform', 'none'); jq('#uploadsModal').find('.modal-body').html(msg); jq('#uploadsModal').modal('show'); setTimeout( function(){ document.querySelector('#uploadsModal .modal-footer button[data-dismiss="modal"]').focus(); }, 500); loadSelfUploadedAssets(0); if(cb !== undefined){ cb(res); } } } }); } var removeAssetFromUserUploads = function(asset_id, cb){ jq.ajax('/ajax/asset_upload.php?action=userRemove', { type: 'POST', dataType: 'json', data: { id: asset_id }, success: function(res) { cb(); } }); } var removeBulkAssetFromUserUploads = function(asset_ids, cb){ jq.ajax('/ajax/asset_upload.php?action=userBulkRemove', { type: 'POST', dataType: 'json', data: { ids: asset_ids }, success: function(res) { cb(); } }); } var submitBulkAssetsFromUserUploads = function(assetIds, cb){ var modal = jq('#submitMsgModal'); modal.find('.modal-title').html('File Upload in Progress').css('text-transform', 'none'); msg = "<p>Please DO NOT close or navigate away from this page.</p>"; jq('#submitMsgModal').find('.modal-body').html(msg); jq('#submitMsgModal').modal('show'); loadSelfUploadedAssets(0); var uploadAllInProgressHTML = '<div class="progress progress-striped active"><div class="progress-bar" id="upload-assets-loading" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div></div>'; var uploadAllInProgress; var showUploadAllInProgress = function() { $('.progress-bar').width(0); $('#upload-assets-loading').show(0, function() { uploadAllInProgress = setInterval(uploadAllProgressBar, 800); }); }; var uploadAllProgressBar = function () { var uploadAllBar = $('.progress-bar'); if (uploadAllBar.width() >= 400) { clearInterval(uploadAllInProgress); } else { uploadAllBar.width(uploadAllBar.width() + 50); } }; jq('#submitMsgModal').find('.modal-body').html(msg).append(uploadAllInProgressHTML); showUploadAllInProgress(); jq('#submitMsgModal').modal('show'); loadSelfUploadedAssets(0); jq.ajax('/ajax/asset_upload.php?action=userSubmitAll', { type: 'POST', dataType: 'json', data: { ids: assetIds, }, success: function(res) { jq('#submitMsgModal').modal('hide'); if (res.success == 0) { var modal = jq('#generalModal'); modal.find('.modal-title').html('Missing Metadata'); modal.find('.modal-body').html('Please enter Keywords, Credit, and Use Information in Enter Metadata.'); modal.modal('show'); loadSelfUploadedAssets(0); return; } else { var modal = jq('#uploadsModal'); modal.find('.modal-title').html('Thank you for your submission!'); msg = "<p>Your uploads will be reviewed by an Administrator."; msg += "<p>You will be notified once they are approved or declined.</p>"; msg += "<p>Only the assets you can see on THIS page have been submitted.</p>"; msg += "<p>Please go to the next page. You may have more assets to submit.</p>"; jq('#uploadsModal').find('.modal-body').html(msg); jq('#uploadsModal').modal('show'); loadSelfUploadedAssets(0); $('#jq-select-all').attr('checked',false); if(cb !== undefined){ cb(); } } } }); } var editBulkAssetMetadataFromUserUploads = function(assetIds, react_origin){ var modal = jq('#generalModal'); modal.find('.modal-dialog').width(650); modal.find('.modal-title').html('Batch Enter Metadata'); modal.find('.modal-footer').hide(); if (assetIds.length <= 0) { modal.find('.modal-body') .css('height', jq(window).height()*.2) .html('<div>Please select assets to batch edit first.</div>'); } else { var href = '/actions/batch_edit_uau_metadata.php?mode=edit&id='+ assetIds.join(','); if(react_origin){ href += '&reactOrigin=true'; } modal.find('.modal-body') .css('height', jq(window).height()*.8) .html('<iframe src="'+href+'" style="width: 99%; height: 99%;" frameBorder="0" frameborder="0">'); } modal.modal('show'); } var linkBulkAssetsFromUserUploads = function(assetIds, react_origin){ var modal = jq('#generalModal'); modal.find('.modal-dialog').width(650); modal.find('.modal-title').html('Batch Link Documents'); modal.find('.modal-footer').hide(); if (assetIds.length <= 0) { modal.find('.modal-body') .css('height', jq(window).height()*.2) .html('<div>Please select assets to batch edit first.</div>'); } else { var href = '/administration5/edit_link_documents.php?upload_ids='+ assetIds.join(',') +'&inline=1'; if(react_origin){ href += '&reactOrigin=true'; } modal.find('.modal-body') .css('height', jq(window).height()*.8) .html('<iframe src="'+href+'" style="width: 99%; height: 99%;" frameBorder="0" frameborder="0">'); } modal.modal('show'); } var editAssetMetadataFromUserUploads = function(asset_id, react_origin){ var uploadId = asset_id; var href = '/actions/edit_uau_metadata.php?mode=edit&id='+uploadId; if(react_origin){ href += '&reactOrigin=true'; } var modal = jq('#generalModal'); modal.find('.modal-dialog').width(650); modal.find('.modal-title').html('Enter Metadata'); modal.find('.modal-footer').hide(); modal.find('.modal-body') .css('height', jq(window).height()*.8) .html('<iframe src="/loader.html" style="width: 99%; height: 99%;" frameBorder="0" frameborder="0" id="loader_frame"></iframe><iframe id="form_frame" onload="formiFrameLoaded();" src="'+href+'" style="width: 99%; height: 0%;" frameBorder="0" frameborder="0"></iframe>'); modal.modal('show'); } var editLinkDocumentsFromUserUploads = function(asset_id, react_origin){ var id = asset_id; var href = '/administration5/edit_link_documents.php?upload_id='+id+'&inline=1'; if(react_origin){ href += '&reactOrigin=true'; } var modal = jq('#generalModal'); modal.find('.modal-dialog').width(650); modal.find('.modal-title').html('Link Documents'); modal.find('.modal-footer').hide(); modal.find('.modal-body') .css('height', jq(window).height()*.8) .html('<iframe src="/loader.html" style="width: 99%; height: 99%;" frameBorder="0" frameborder="0" id="loader_frame"></iframe><iframe id="form_frame" onload="formiFrameLoaded();" src="'+href+'" style="width: 99%; height: 0%;" frameBorder="0" frameborder="0"></iframe>'); modal.modal('show'); } jq(document).ready(function() { jq('#themeCss').bind('load', function () { jq('body').show(); }); $('._container:has(iframe)').addClass('has_iframe'); showProgress(); // show progress bar on initial load jq.expr[':'].icontains = function(a, i, m) { return jq(a).text().toUpperCase() .indexOf(m[3].toUpperCase()) >= 0; }; var publicUser = {"0":"","id":"5793","1":"","firstname":"","2":"","lastname":"chan ns pub","3":"","type":"public","4":"","permalink":"nova-scotia","5":"","asset_owner":"Nova Scotia","6":"","custom_options":{"assetUpload":{"active":1,"administrators":["searsmt@gov.ns.ca","pamela.wamback@novascotia.ca","johnsp@gov.ns.ca","tanya.johnson@novascotia.ca","sarah.hennebury@novascotia.ca","Dana.Edgar@novascotia.ca","braggcl@gov.ns.ca","meaghan.giffin@novascotia.ca","hannah.crawford@novascotia.ca","Patricia.Pardy@novascotia.ca","barberstock@novascotia.ca","emily.hiltz@novascotia.ca","bob.pember@simpleviewinc.com"],"emailAdminOnUserUpload":1,"emailNotifyUser":1,"batchAdmin":["dam-processing-notifications@simpleviewinc.com"],"emailBatchAdmin":1,"insertAsset":{"active":1,"bsDigits":"010"}},"assetUploadAdmin":1,"audioMediaType":0,"autoKeywordsImages":{"active":1,"activationDate":"0000-00-00"},"carouselGroup":1447,"contacts":{"quickContact":["barberstock@novascotia.ca"]},"csvStatistics":1,"customLoginPage":1,"enableAssetKeywords":0,"features":{"groups":{"max":20,"multi":1}},"formats":{"proxy":1},"forms":{"newUserSignup":{"title":"Nova Scotia Registration","intro":"Fill out this form to register to view\/download the assets on this site.","captcha":false,"fields":[{"name":"first_name","label":"First name","required":true,"type":"text"},{"name":"last_name","label":"Last name","required":true,"type":"text"},{"name":"email","label":"Email\/Username","required":true,"type":"email"},{"name":"company","label":"Company","required":true,"type":"text"},{"name":"address","label":"Address","required":true,"type":"text"},{"name":"city","label":"City","required":true,"type":"text"},{"name":"province","label":"State\/Province","required":true,"type":"text"},{"name":"country","label":"Country","required":true,"type":"countrySelect"},{"name":"postal_code","label":"Zip\/Postal code","required":true,"type":"text"},{"name":"telephone","label":"Telephone","required":true,"type":"phone"},{"name":"reason","label":"How will you be using these digital assets?","required":true,"type":"textarea"}]}},"hideEpsSizes":0,"languages":["en"],"legacy":{"mode":"public","platform_config":{"cssUrl":"css\/nova-scotia\/jquery-ui-1.7.3.custom.css","logoUrl":"\/images\/nova-scotia\/logo.gif","footerText":"&copy; {{system.date.year}} Tourism Nova Scotia","assetOwner":"nova-scotia"},"alwaysShowTermsOnLogin":0},"linkDocuments":1,"multiLanguage":1,"multipleAccessGroups":1,"platformWarning":0,"publicPage":{"loginOnly":0,"selfRegistration":0},"requestAuthEmails":["Dana.Edgar@novascotia.ca","barberstock@novascotia.ca","Emily.Hiltz@novascotia.ca"],"requestAuthorization":0,"requestAuthorizationReqApproval":1,"requestCheckAssetOwner":1,"requestDownload":1,"saveKeywordSearches":1,"searchOtherFileFormats":1,"searchSort":1,"searchdefault":{"type":"video","size":"50","noFrameRate":1,"searchExternalOwners":0,"externalOwners":[30,27,29]},"uploadAssetsMasterLock":0,"userFeatureList":0}}; if (publicUser) { $.ajax({ url: "ajax/ajax_logged_in.php", dataType: 'JSON', method: 'POST', success: function(data) { // if user is expired or doesn't exist, kill cookie and kick back to login screen if (data.id != null && !data.error) { _.defer(function() { window.location.href = '/main.php'; }); } } }); } var resetSelectors = (function() { jq('.media-type-selector button').prop('disabled', false); var media_type = jq('#media_type').val(); jq('.media-type-selector button[data-val='+media_type+']').prop('disabled', true); })(); jq('.media-type-selector button').on('click', function(ev) { var media_type = jq(ev.target).attr('data-val'); $("#asset_owner").val() || (currentUser && currentUser.permalink) bs.trackEvent({category : 'UI Element - click', action: 'header media type selection', label: media_type}); jq('.media-type-selector button').prop('disabled', false); jq(this).prop('disabled', true); jq('#media_type').val(media_type); bs.folders.clearSelection(); $('#btnSearch').click(); //click event from old code }); jq('#search-options').on('click', function(ev) { showProgress(); // Update dropdown selection if (jq(ev.target).hasClass('jq-search-sort')) { jq('.jq-search-sort').removeClass('sort-selected'); jq(ev.target).addClass('sort-selected'); bs.trackEvent({category : 'UI Element - click', action: 'header view dropdown sort', label: jq(ev.target).attr('data-val')}); jq('#sorting').val(jq(ev.target).attr('data-val')); } else if (jq(ev.target).hasClass('jq-view-option')) { jq('.jq-view-option').removeClass('view-selected'); jq(ev.target).addClass('view-selected'); var groupid = jq(ev.target).attr('data-groupid'); bs.trackEvent({category : 'UI Element - click', action: 'header view dropdown group', label: groupid}); jq('#group_id').val(groupid); } $('#btnSearch').click(); //click event from old code }); jq('[data-accept-asset-upload-terms]').click(function(){ if(document.getElementById('showUploadsPage-bridge-nav-item') !== null) { document.getElementById('showUploadsPage-bridge-nav-item').click(); } else { jq('._container').hide(); jq('#assetUpload').show(); } }); handleAssetUploadClick = function(evt){ var uploader = jq('#uploader').pluploadQueue({ // General settings runtimes : 'html5,flash,silverlight', url : "/ajax/asset_upload_proxy.php", // move to another server for image processing? rename : true, dragdrop: true, filters : { // Maximum file size max_file_size : '500mb', }, // Flash settings // flash_swf_url : '/js/barberstock/plupload/Moxie.swf', // Silverlight settings // silverlight_xap_url : '/js/barberstock/plupload/Moxie.xap', init: { UploadComplete: function(up, files) { loadSelfUploadedAssets(0); jq('#jq-upload-more').show(); } }, preinit: { Init: function (up, info) { jq('#uploader_container').removeAttr("title"); var uploadGuidelines = "/pdfs/upload-asset-guideline.pdf"; var uploadGuidelineLink = jq('.jq-AssetsGuideline'); uploadGuidelineLink.attr('href', uploadGuidelines); }, }, }); loadSelfUploadedAssets(0); } jq('.jq-assetUpload').on('click', handleAssetUploadClick); // Submit single asset jq('#userUploads').on('click', function(ev) { var clickTarget = jq(ev.target); if (clickTarget.hasClass('jq-save-asset')) { submitAssetFromUserUploads(jq(ev.target).attr('data-val'), jq(ev.target).parents('tr').find('textarea').val(), function(res){ clickTarget.parents('tr').find('td:nth-child(3)').text(res.status); clickTarget.parents('tr').find('td:nth-child(2) textarea').prop('disabled', true); clickTarget.parent().find('button').prop('disabled', true); }); } else if (clickTarget.hasClass('jq-remove-asset')) { removeAssetFromUserUploads( clickTarget.attr('data-val'), function(){ clickTarget.parents('tr').remove(); loadSelfUploadedAssets(0); }); } else if (clickTarget.hasClass('jq-edit-asset-metadata')) { editAssetMetadataFromUserUploads(clickTarget.attr('data-val'), false); } else if (clickTarget.hasClass('jq-link-document')) { editLinkDocumentsFromUserUploads(clickTarget.attr('data-val')); } }); jq(window).resize(function() { // Try to fix Search Results Borders when window is resized... @TODO - not working // var itemsPerRow = parseInt(jq('#searchResultsList').width() / 200); $('#searchResultsList > .resultContainer > .videoThumbnail').removeClass('resultNoBorder'); // $('#searchResultsList > .resultContainer:nth-child('+itemsPerRow+'n)').find('.videoThumbnail').addClass('resultNoBorder'); }); handleAssetEditClick = function(args){ var href = '/administration5/edit_'+args.type+'_plain.php?mode=edit&id='+args.vid+'&inline=true&modalReturn=1'; href += '&reactOrigin=true'; var modal = jq('#generalModal'); var popupId = 'editSingle'+args.vid; modal.find('.modal-dialog').width(650); modal.find('.modal-title').html('Edit '+ (args.type=='other' ? 'Document' : args.type)); modal.find('.modal-footer').hide(); modal.find('.modal-body') .css('height', jq(window).height()*.8) .html('<iframe src="/loader.html" style="width: 99%; height: 99%;" frameBorder="0" frameborder="0" id="loader_frame"></iframe><iframe onload="formiFrameLoaded(`editAssets`);" id="editAssets" src="'+href+'" style="width: 99%; height: 0%;" frameBorder="0" frameborder="0"></iframe>'); modal.modal('show'); } handleUserUploadEditClick = function(args){ var href = '/actions/edit_uau_metadata.php?mode=edit&id='+args.vid+'&inline=true&modalReturn=1'; href += '&reactOrigin=true'; var modal = jq('#generalModal'); var popupId = 'editSingle'+args.vid; modal.find('.modal-dialog').width(650); modal.find('.modal-title').html('Edit Upload Metadata'); modal.find('.modal-footer').hide(); modal.find('.modal-body') .css('height', jq(window).height()*.8) .html('<iframe src="/loader.html" style="width: 99%; height: 99%;" frameBorder="0" frameborder="0" id="loader_frame"></iframe><iframe d="form_frame" onload="formiFrameLoaded();" src="'+href+'" style="width: 99%; height: 99%;" frameBorder="0" frameborder="0"></iframe>'); modal.modal('show'); } handleUserUploadApproval = function(args) { var modal = jq('#generalModal'); if(Array.isArray(args.data) === false){ args.data = [args.data]; } var uploadIds = Array(); for( var uploadsCt = 0; uploadsCt < args.data.length; uploadsCt++ ){ if((args.data[uploadsCt].status).toString() === "Pending") { uploadIds[uploadsCt] = parseInt(args.data[uploadsCt].id); } } if(uploadIds.length > 0) { jq.ajax('/ajax/asset_upload.php?action=setapproval&reactOrigin=true', { method: 'POST', data: { approval: (args.approval).toString(), id: uploadIds }, complete: function(data) { resetViewContainersForReact(true); modal.modal('hide'); } }); } else { resetViewContainersForReact(true); modal.modal('hide'); } } handleLinkedDocumentClick = function(args){ var href = '/actions/view_linked_documents.php?video_id='+args.video_id; var modal = jq('#generalModal'); modal.find('.modal-dialog').width(650); modal.find('.modal-title').html('Assigned Documents'); modal.find('.modal-footer').hide(); modal.find('.modal-body') .css('height', jq(window).height()*.8) .html('<iframe src="/loader.html" style="width: 99%; height: 99%;" frameBorder="0" frameborder="0" id="loader_frame"></iframe><iframe id="form_frame" onload="formiFrameLoaded();" src="'+href+'" style="width: 99%; height: 0%;" frameBorder="0" frameborder="0"></iframe>'); modal.modal('show'); } handleDownloadDetailsClick = function(args){ jq.getJSON('/ajax/admin/get_download_count.php?videoId='+args.video_id, function(data) { var modal = jq('#generalModal'); var html= $('<table class="downloadDetails">'); if (data.downloads && data.downloads.length) { $.each(data.downloads, function(i,v) { var firstname = $.trim(v.first_name); var name = (firstname.length) ? firstname.charAt(0) + '. ' + v.last_name : v.last_name; var started = v.started.split(' ')[0]; html.append('<tr><td>'+started+'</td><td>'+name+'</td></tr>'); }); } else { html.append('<tr><td>No completed downloads</td></tr>'); } modal.find('.modal-dialog').width(650); modal.find('.modal-title').html('Download Details'); modal.find('.modal-footer').hide(); modal.find('.modal-body') .css('height', jq(window).height()*.8) .html(html); modal.modal('show'); }); } handleAssetDeleteClick = function(args){ var modal = jq('#generalModal'); modal.find('.modal-dialog').width(600); modal.find('.modal-title').html("Delete the Selected Asset/Assets?"); modal.find('.modal-body').html("<p>Deleting asset(s) is permanent.</p><p>All data associated with the selected asset(s) will be deleted as well. You may want to deactivate the asset(s) instead.</p>").height(150); modal.find('.modal-footer').empty(); modal.find('.modal-footer').show(); modal.find('.modal-footer').append('<button type="button" class="platform-button-reverse btn" data-dismiss="modal" style="font-weight: bold;">No, Don\'t Delete</button><button type="button" id="delete-asset" class="platform-button-reverse delete-asset btn">Delete Permanently</button>'); modal.modal('show'); modal.on('click', function(ev) { if (!$(ev.target).hasClass('delete-asset')) return false; modal.find('.modal-body').html("<p><strong>Deleting asset(s) in progress...</strong></p>"); jq.ajax({ url: "/ajax/asset_deletion.php", data: { asset_ids: (args.asset_ids).toString() }, dataType: 'JSON', method: 'POST', complete: function(data) { resetViewContainersForReact(true); modal.modal('hide'); } }); }); } // Edit Modal jq('#searchResultsList').on('click', function(ev) { var target = jq(ev.target); if (target.hasClass('_editSingle')) { handleAssetEditClick({ vid : target.attr('vid'), type: target.attr('vtype') }); } // Results Per Page else if (target.parent().hasClass('jq-results-per-page')) { jq('div.jq-results-per-page > button').prop('disabled', false); jq(target).prop('disabled', true); jq('.jq-results-per-page').removeClass('per-page-selected'); jq(target).addClass('per-page-selected'); var perpage = jq(ev.target).attr('data-val'); $footerCheck = target.closest('#pagination_b'); $headerCheck = target.closest('#paginator'); if($headerCheck.length > 0){ bs.trackEvent({category : 'UI Element - click', action: 'header query pagination size', label: perpage}); } if($footerCheck.length > 0){ bs.trackEvent({category : 'UI Element - click', action: 'footer query pagination size', label: perpage}); } jq('#perpage').val(perpage); showSearchPage(1); } // Pagination Button else if (target.hasClass('page-selector-btn')) { jq(target).hide(); jq(target.parent().find('.page-selector')).show(); } // Linked Documents else if (target.hasClass('_linkedDocs')) { handleLinkedDocumentClick({ video_id : target.attr('data-videoid') }); } }).on('keyup', function(ev) { var target = jq(ev.target); if (target.hasClass('page-selector')) { var code = ev.which; if(code==13)ev.preventDefault(); if(code==32||code==13||code==188||code==186) { var value = parseInt(target.val()); var totalPages = parseInt(jq('.totalPages:first').text()); if (value > 0 && value <= totalPages) bs.trackEvent({category : 'UI Element - submit', action: 'pagination input', label : value}); showSearchPage(value); } } }); // Collections Modal jq('#queueList, #setResults').on('click', function(ev) { var target = jq(ev.target); var containerId = $(ev.currentTarget).find('_container').context.id; var setId = target.attr('sid'); // Save as a Collection if (target.hasClass('_saveList')) { var modal = jq('#generalModal'); var fnSubmit = function() { var context = jq('#' + containerId), setName = modal.find('._setName').val(), /*setVideos = [],*/ isOverwrite = modal.find('._isOverwrite').is(':checked'), overwriteSid = modal.find('input[name="set[overwriteSetId]"]').val(); if (!setName && !(isOverwrite && overwriteSid)) { bs.s.show(translate("Please enter a name for this collection, or choose a collection to overwrite"), 'error', 1); return; } var qs = modal.find('._saveSet').serialize(); jq.post('/ajax/get_sets.php', qs, function(data) { if (data.output) { bs.s.show(translate("Collection successfully saved!"), 'success', 1); modal.modal('hide'); // reload current list if editing var currentSetId = jq('#tabbedContent ._toptabs ._set.ui-state-active').attr('sid'); // reload lists at the top bs.getSetTabs(currentSetId); // reload public link information if(setId !== undefined) { bs.getColl(setId, false, document.getElementById('loadCollections') === null); } if(document.getElementById('reactUpdateTriggerFlag') !== null){ document.getElementById('reactUpdateTriggerFlag').value = new Date(); document.getElementById('reactUpdateTriggerFlag').dispatchEvent(new Event('change')); } } else { bs.s.show(data.error || translate("An error occurred, please try again later"), 'error', 1); } }, 'json'); }; var title = (setId == undefined || setId == null) ? 'Create a new Collection' : 'Edit Collection'; var html = '<form class="_saveSet collectionsForm">'; if (title === "Edit Collection") { html += '<div class="_inactiveMessage" style="color: red;font-size: 20px;font-weight: bold;margin-bottom: 5px;"></div>'; } html += '<div class="form-group">' + '<label>Collection Name</label>' + '<input type="text" name="set[name]" class="_setName form-control" value="" />' + '</div>' + '<div class="form-group">' + '<label>Expiry Date for Public Collection</label>' + '<input type="text" name="set[expiry]" class="_setExpiry form-control datepicker" value="" data-provide="datepicker"/>' + '</div>' + '<div class="_overwriteSet"></div>' + '<div class="form-group">' + '<label>Choose users to share this collection with</label>' + '<input class="_userFilter form-control" type="text" placeholder="Type to filter results below..." />' + '</div>' + '<div>' + '<span style="padding-left: 1px;"><label style="font-weight: normal;"><input type="checkbox" class="_allToggle" /> Select All</label></span>' + '</div>' + '<div style="height: 50%">' + '<div class="_users users"></div>' + '</div>' + '<div class="submitSection">' + '<button class="btn platform-button-bordered" data-dismiss="modal" href="#">Cancel</button>' + '<button class="btn platform-button-reverse _submit" type="submit" style="margin-left: 10px;">Submit</button>' + '</div>'+ '</form>'; modal.find('.modal-dialog').width(600); modal.find('.modal-title').html(title); modal.find('.modal-footer').hide(); modal.find('.modal-body') .css('height', jq(window).height()*.8) .css('overflow', 'scroll') .html(html); modal.modal('show'); if (!navigator.userAgent.match(/msie [89]/i)) { // jq('input._setName').attr('placeholder', 'Name'); } jq.getJSON('/ajax/get_sets.php?action=popup&sid=' + setId, function(data) { var defaultSetName = ""; var setExpiry = ""; if (setId !== undefined && data.output.ownedSets[setId] !== undefined) { defaultSetName = data.output.ownedSets[setId].name; setExpiry = data.output.ownedSets[setId].expiry; } else { modal.find('._inactiveMessage').html('This collection is currently inactive'); } if(setExpiry != null && typeof setExpiry == 'object'){ setExpiry = setExpiry.split(' '); setExpiry = setExpiry[0]; } if (setExpiry) { setExpiry = (new Date(setExpiry)).toLocaleDateString('en-US', {month: '2-digit', day: '2-digit', year: 'numeric', timeZone: 'UTC'}); } userSet = data.output.users; userSet.forEach(function(v, i) { userSet[i].full_name = fnCleanPage(v.first_name + ' ' + v.last_name); }); // add users var usersHtml = ''; userSet.forEach(function(v, i) { usersHtml += compileUserListItem(v); }); modal.find('._users').append(usersHtml); // find existing sets to overwrite, if we are adding, not editing if (setId) { modal.find('._overwriteSet').append('<input type="hidden" name="set[overwriteSetId]" value="'+setId+'" /><input type="hidden" name="set[isOverwrite]" value="1" />').hide(); modal.find('._setName').val(defaultSetName); modal.find('._setExpiry').val(setExpiry); } }); modal.find('._allToggle').click(function() { // Handle user clicking 'Select All' var checkboxes = modal.find('._users input[type=checkbox]:visible'); if (jq(this).is(':checked')) { checkboxes.prop('checked', true); } else { checkboxes.prop('checked', false); } }); function isPartialMatch(partial, user){ return user.full_name.indexOf(partial) > -1; } function buildFilterUserListItem(user, selections, selectedUsers){ var selectedUser = jq.inArray(user.id, selections) > -1; if(selectedUser){ selectedUsers.push(user.id); } return '<label style="display:block; margin: 4px 0; white-space: nowrap; font-weight: normal;">' + '<input style="margin-right: 5px" type="checkbox" name="set[users][]" value="' + user.id + '" ' + ( selectedUser ? 'checked="checked"' : '') + ' />' + '<span class="full_name" datauserid="' + user.id + '">' + fnCleanPage(user.first_name + ' ' + user.last_name) + '</span></label>'; } function buildFilterUserHiddenListItem(id){ return '<input type="hidden" name="set[users][]" value="' + id + '"/>'; } var fullFilterUserSet = []; var lastFilterSet = []; var lastSearchPartial = ""; modal.find('._userFilter').bind('keyup', function(e) { //prep filtering set if(fullFilterUserSet.length < 1){ fullFilterUserSet = userSet; fullFilterUserSet.forEach(function(u){ u.full_name = u.full_name.toUpperCase().trim(); }); lastFilterSet = fullFilterUserSet; } //build searchPartial var searchPartial = jq(this).val().toUpperCase().trim(); //do we actually need to search? if(lastSearchPartial != searchPartial){ var newUsersHTML = ""; var currentSelections = modal.find('[name="set[users][]"]:checked, [name="set[users][]"][type="hidden"]').map( function(_, el) { return $(el).val(); } ).get(); if(searchPartial.indexOf(lastSearchPartial) === -1){ //see if we can search our subset or need to deal with the full set lastFilterSet = fullFilterUserSet; } //record new result array and search term lastFilterSet = lastFilterSet.filter(function(user){ return isPartialMatch(searchPartial, user)}); selectedUsers = []; lastFilterSet.forEach(function(user){ newUsersHTML += buildFilterUserListItem(user, currentSelections, selectedUsers); }); currentSelections.forEach(function(id){ var alreadyIn = jq.inArray(id, selectedUsers) > -1; if(!alreadyIn){ newUsersHTML += buildFilterUserHiddenListItem(id); } }); modal.find('._users').html(newUsersHTML); lastSearchPartial = searchPartial; } }); modal.find('._submit').on('click', function() { fnSubmit(); return false; }); } else if (target.hasClass('_addToList')) { var modal = jq('#generalModal'); var fnSubmit = function() { var /*context = jq('#queueList, #setResults').filter(':visible'), setVideos = [],*/ overwriteSid = modal.find('input[name="set[overwriteSetId]"]:checked').val(); if (overwriteSid == undefined) { bs.s.show(translate("Please select a collection."), 'error', 1); return; } /*context.children('div[video_id]').each(function() { var $video = jq(this), format = $video.find(':checkbox:checked').attr('format'), str = encodeURIComponent('set[setVideos][]') + '=' + $video.attr('video_id') + ',' + format; if (!format) return true; // skip this item if it's not checked setVideos.push(str); });*/ var qs = modal.find('._addToSet').serialize(); jq.ajax('/ajax/get_sets.php?action=addtoset', { type: 'POST', data: qs, dataType: 'json', success: function(data) { if (data.output) { bs.s.show(translate("Collection successfully saved!"), 'success', 1); modal.modal('hide'); } } }); }; var html = '<form class="_addToSet collectionsForm">' + '<div class="_overwriteSet"></div>' + '<div class="submitSection">' + '<button class="btn platform-button-bordered" data-dismiss="modal" href="#">Cancel</button>' + '<button class="btn platform-button-reverse _submit" type="submit" style="margin-left: 10px;">Submit</button>' + '</div>'+ '</form>'; resetModalProperties(modal); modal.find('.modal-dialog').width(600); modal.find('.modal-title').html('Add Items to Existing Collection'); modal.find('.modal-footer').hide(); modal.find('.modal-body').html(html); modal.modal('show'); jq.getJSON('/ajax/get_sets.php?action=popup&sid=' + setId, function(data) { var defaultSetName = ""; var setExpiry = ""; if (setId !== undefined && data.output.ownedSets[setId] !== undefined) { defaultSetName = data.output.ownedSets[setId].name; setExpiry = data.output.ownedSets[setId].expiry; } else { modal.find('._inactiveMessage').html('This collection is currently inactive'); } if (setExpiry) { setExpiry = setExpiry.substring(0, setExpiry.indexOf(" ")); } // find existing sets to overwrite, if we are adding, not editing if (setId) { modal.find('._overwriteSet').append('<input class="item" type="hidden" name="set[overwriteSetId]" value="'+setId+'" /><input type="hidden" name="set[isOverwrite]" value="1" />').hide(); modal.find('._setName').val(defaultSetName); modal.find('._setExpiry').val(setExpiry); } else { var overwriteHtml = ''; // Alphabetically sort the collection set var resultArray = $.map(data.output.existingSets, function(value, index) { return [value]; }); alphaItems = resultArray.sort(function(a, b){ var nameA=a.name.toLowerCase(), nameB=b.name.toLowerCase() if (nameA < nameB) //sort string ascending return -1 if (nameA > nameB) return 1 return 0 //default return value (no sorting) }); jq.each(alphaItems, function(i,v) { var sid = v.id, name = v.name; overwriteHtml += '<label style="float: left; width: 50%; font-weight: normal;"><input style="margin-right: 5px" type="radio" name="set[overwriteSetId]" value="' + sid + '" />' + fnCleanPage(name) + '</label>'; }); if (overwriteHtml.length) { overwriteHtml = '<div id="collectionList" class="form-group">'+ overwriteHtml + '</div>'; modal.find('._overwriteSet').append(overwriteHtml) .find('input._isOverwrite').bind('click', function() { if (jq(this).is(':checked')) { jq.find('input._setName').val(''); // clear name } }).end() .find('input[type="radio"]').bind('click', function() { modal.find('input._isOverwrite').attr('checked', 'checked'); }); } } }); modal.find('._submit').on('click', function() { fnSubmit(); return false; }); } else if (target.hasClass('_duplicateList')) { var modal = jq('#generalModal'); var setId = target.attr('sid'); var html = '<form class="collectionsForm _duplicateSet">' + '<div class="form-group">' + '<label for="description">Collection Name</label>'+ '<input type="text" class="form-control" id="name" name="name">'+ '</div>'+ '<div class="submitSection">' + '<button class="btn platform-button-reverse _submit" type="submit" style="margin-left: 10px; float: right;">Submit</button>' + '</div>'+ '</form>'; modal.find('.modal-dialog').width(600); modal.find('.modal-title').html('Duplicate Collection'); modal.find('.modal-footer').hide(); modal.find('.modal-body') .css('height', 'auto') .css('overflow', 'scroll') .html(html); modal.modal('show'); modal.find('._submit').on('click', function() { var name = modal.find('input[name="name"]').val(); if (name == '') { alert('Please enter a Name.'); } var qs = modal.find('._duplicateSet').serialize(); jq.post('/ajax/get_sets.php?action=duplicate&sid='+setId, qs, function(data) { if (data.output) { bs.s.show(translate("Collection successfully saved!"), 'success', 1); modal.modal('hide'); if(document.getElementById('reactUpdateTriggerFlag') !== null){ document.getElementById('reactUpdateTriggerFlag').value = new Date(); document.getElementById('reactUpdateTriggerFlag').dispatchEvent(new Event('change')); } // reload current list if editing var currentSetId = jq('#tabbedContent ._toptabs ._set.ui-state-active').attr('sid'); // reload lists at the top bs.getSetTabs(currentSetId); } else { bs.s.show(data.error || translate("An error occurred, please try again later"), 'error', 1); } }, 'json'); return false; }); } }); // Asset Upload Paging jq('#jq-user-uploads-pagination').on('click', function(ev) { var target = jq(ev.target); if (target.hasClass('paging')) { var startPos = target.attr('data-startpos'); if (startPos >= 0) loadSelfUploadedAssets(startPos); } }); jq('#jq-user-uploads-page-buttons').on('click', function(ev) { var target = jq(ev.target); if (target.hasClass('btn')) { var items = target.attr('data-val'); selfUploadsPageItems = parseInt(items); jq('#jq-user-uploads-page-buttons > .btn').prop('disabled', false); target.prop('disabled', true); loadSelfUploadedAssets(0); } }); // Asset Upload Submit All jq('#jq-submit-all-uploads').on('click', function(ev) { var uploads = jq('.jq-save-asset'); var ids = []; uploads.each(function(i, up) { var id = jq(up).attr('data-val'); var desc = jq(up).parents('tr').find('textarea').val(); ids.push({'id': id, 'desc': desc}); }); submitBulkAssetsFromUserUploads(ids); }); // Asset Upload More jq('#jq-upload-more').on('click', function(ev) { if(document.getElementById('showUploadsPageTerms-bridge-nav-item') !== null) { document.getElementById('showUploadsPageTerms-bridge-nav-item').click(); handleAssetUploadClick(); } else if(document.getElementById('showUploadsPage-bridge-nav-item') !== null) { document.getElementById('showUploadsPage-bridge-nav-item').click(); } else { jq(window).scrollTop(0); jq('.jq-assetUpload').click(); } }); // Asset Upload Batch Enter Metadata jq('#jq-batch-enter-metadata').on('click', function(ev) { var assetIds = []; jq('.batch-enter-metadata:checked').each(function(key, value) { assetIds.push(value.id); }); editBulkAssetMetadataFromUserUploads(assetIds, false); }); // Batch Link Documents jq('#jq-batch-link-documents').on('click', function(ev) { var assetIds = []; jq('.batch-enter-metadata:checked').each(function(key, value) { assetIds.push(value.id); }); linkBulkAssetsFromUserUploads(assetIds); }); // Batch Select All jq('#jq-select-all').on('click', function(ev) { $('input:checkbox').prop('checked', this.checked); }); // Folders jq('.jq-edit-category').on('click', function(ev) { bs.folders.manage(jq('#media_type').val()); }); jq('.jq-edit-category-specific').on('click', function(ev) { bs.folders.manage($(this).data('category')); }); // Collapsing Menu jq('h3._collapsable').on('click', function(ev) { ev.preventDefault(); ev.stopPropagation(); if(jq(ev.target).attr('data-target') == ""){ return false; } bs.trackEvent({category : 'UI Element - click', action: 'sidebar collapse section', label: jq(ev.target).attr('data-target')}); var collapseTarget = '._'+jq(ev.target).attr('data-target'); jq(collapseTarget).prev('h3').find('span.arrow').toggleClass('open'); jq(collapseTarget).slideToggle(); }); jq('.folders-container ul li a').on('click', function(ev) { // handle non-JSTree active nav items ev.preventDefault(); ev.stopPropagation(); }); // Setting active state for admin nav items jq('#sidebar .side-link').on('click', function(ev){ if(!$(this)[0].classList.contains('passive-button')) { jq('#sidebar .item, #sidebar .side-link').removeClass('active'); jq(this).addClass('active'); } }); jq('#sidebar .item').on('click', function(ev){ ev.preventDefault(); ev.stopPropagation(); if(ev.currentTarget.hasAttribute('data-no-hide')) { return; } jq('#dataViewContainer').hide(); jq('#sidebar .item, #sidebar .side-link').removeClass('active'); jq(this).addClass('active'); // handle JSTree active states jq("#sidebar").find("a").removeClass('jstree-clicked'); //jq("#sidebar").find('span.arrow').removeClass('open'); }); jq('#sidebar .item.subNavToggle').on('click', function(ev){ jq('#sidebar .item').find('.subNavToggle').removeClass('open'); jq(this).addClass('open'); }); // Terms & Conditions jq('#jq-terms-conditions').on('click', function(ev) { $('#adminReports iframe').attr('src', '/loader.html'); jq('._container').hide(); jq('#termsConditions').show(); jq(window).scrollTop(0); }); jq('#jq-faq').on('click', function(ev) { window.open('https://help.simpleviewinc.com/hc/en-us/articles/360058685454'); ev.preventDefault(); return true; }); jq('._legal .btn-group button').on('click', function(ev) { if( $(this).data('val') != undefined ){ jq('._legal .btn-group button').prop('disabled', false); $(this).prop('disabled', true); jq('._legal .tab-content .active').removeClass('active'); jq('._legal .tab-content #'+$(this).data('val')).addClass('active'); }else if( $(this).data('admin-url') != undefined ){ $('#adminReports iframe').attr('src', $(this).data('admin-url')); bs.layout.show('adminReports'); $('#adminReports').show(); } }); searchPlaceHolderText(); }); //ready function imgError(image) { var img = new Image(); img.src = image.src.replace('-00002.jpg', '-00001.jpg'); img.onload = function() { image.src = img.src; }; img.onerror = function() { img.src = "/css/barberstock/placeholder.png"; image.src = img.src; }; return true; } var progress; var showProgress = function() { jq('._container').hide(); jq('.progress-bar').width(0); jq('#loading').show(0, function() { progress = setInterval(progressBar, 100); }); }; var progressBar = function () { var bar = jq('.progress-bar'); if (bar.width() >= 300) { clearInterval(progress); jq('.progress').removeClass('active'); } else { bar.width(bar.width() + 100); } }; var selfUploadsPageItems = 10; var loadSelfUploadedAssets = function(startPos) { jq.ajax('/ajax/asset_upload.php?action=list', { data: { startPos: startPos, numItems: selfUploadsPageItems }, dataType: 'json', success: function(res) { if (res.results == undefined) { if ($('#optionsBar') && $('#optionsBar').show()) { $('#optionsBar').hide(); } if ($('#userUploadData') && $('#userUploadData').show()) { $('#userUploadData').hide(); } if ($('#userUploadsLabel') && $('#userUploadsLabel').show()) { $('#userUploadsLabel').hide(); } return; } else { if ($('#optionsBar') && $('#optionsBar').hide()) { $('#optionsBar').show(); } if ($('#userUploadData') && $('#userUploadData').hide()) { $('#userUploadData').show(); } if ($('#userUploadsLabel') && $('#userUploadsLabel').hide()) { $('#userUploadsLabel').show(); } } var paging = jq('#jq-user-uploads-pagination'); paging.html(''); var total = parseInt(res.total); var pages = Math.ceil(total / selfUploadsPageItems); var html = ''; var startPosInt = parseInt(startPos); var currpage = Math.ceil(startPosInt / selfUploadsPageItems) + 1; currpage = (currpage <= 0) ? 1 : currpage; // Previous Page if(parseInt(startPos) > 0) { paging.append("<span class='paging' data-startpos='" + (startPosInt-selfUploadsPageItems) + "'>&lsaquo;</span>"); } paging.append("<span>Page " + currpage + " of " + pages + "</span>"); // Next Page if((startPosInt + selfUploadsPageItems) < total) { paging.append("<span class='paging' data-startpos='" + (startPosInt+selfUploadsPageItems) + "'>&rsaquo;</span>"); } var tbody = jq('#userUploads > #userUploadData > tbody'); tbody.empty(); $.each(res.results, function(k, val) { var html = assetUploadTemplate.render({ url: val.url, thumbnail: val.thumbnail, approved: val.approved, date: val.date, description: val.description, id: val.id, metadata: val.metadata }); tbody.append(html); }); jq('#userUploads').show(); var permalink = (currentUser && currentUser.permalink) ? currentUser.permalink : null; var anyNotApproved = _.some(res.results, function(item) { return item.approved == "Not Submitted"; }); if (!anyNotApproved) { jq('#jq-submit-all-uploads').prop('disabled', true); } else { jq('#jq-submit-all-uploads').prop('disabled', false); } }, error: function() { // console.log('failed'); } }); } var searchPlaceHolderText = function () { if (!navigator.userAgent.match(/msie [89]/i)) { jq('#inputSearchTerms').attr('placeholder', translate('Search')); jq('#username').attr('placeholder', translate('Username')); jq('#password').attr('placeholder', translate('Password')); } }; var resetModalProperties = function (modal) { modal.find('.modal-dialog').width(600); modal.find('.modal-body') .css('height', 'auto') .css('overflow', 'scroll'); } // utils from old script function fnCleanPage(str, isLineBreak) { if (typeof str !== 'string') { return ''; } var newStr = str.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/[\\]+/g, ""); if (isLineBreak) { newStr = newStr.replace(/\n/g, '<br />'); } return newStr; }; /** * Compile HTML for output to user in the user list modal. * @param {object} v * @return {String} * */ function compileUserListItem(v) { return '<label style="display:block; margin: 4px 0; white-space: nowrap; font-weight: normal;">' + '<input style="margin-right: 5px" type="checkbox" name="set[users][]" value="' + v.id + '" ' + (v.set_id ? 'checked="checked"' : '') + ' />' + '<span class="full_name" datauserid="' + v.id + '">' + fnCleanPage(v.first_name + ' ' + v.last_name) + '</span></label>'; } </script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script> <script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script> <script type="text/javascript" src="js/jquery.layout.min.js"></script> <script type="text/javascript" src="js/jquery.tools.min.js"></script> <script type="text/javascript" src="js/jquery.cookie.min.js"></script> <script type="text/javascript" src="js/flowplayer-3.1.4.min.js"></script> <script type="text/javascript" src="js/jquery.jsoncookie.min.js"></script> <script type="text/javascript" src="js/ejs_production.js"></script> <script type="text/javascript" src="js/underscore-1.1.4.min.js"></script> <script type="text/javascript" src="/js/jstree/jquery.jstree.min.js"></script> <script type="text/javascript" src="/js/jquery.placeholder.min.js"></script> <script src="/js/barberstock/folders.js"></script> <script type="text/javascript" src="//player.vimeo.com/api/player.js"></script> <script type="text/javascript" src="https://cloudfront.loggly.com/js/loggly.tracker-latest.min.js" async></script> <script> var _LTracker = _LTracker || []; _LTracker.push({ 'logglyKey': 'bb5d534d-02b0-4d72-bdce-9b75c1166777', 'sendConsoleErrors' : false, 'tag' : 'javascript' }); </script> <script type="text/javascript"> jQuery.fn.log = function (msg) { console.log("%s: %o", msg, this); return this; }; // add :Contains (note the capital C), works case insensitive jQuery.expr[':'].Contains = function(a,i,m){ return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0; }; window.mobilecheck = function() { var check = false; (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|ipad|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera); return check; } var mainLayout; var headerLayout; var assetowner = ""; var currentpage = 1; var searching = false; var videoformats = {"hd":{"__className":"stdClass","ID":1,"extension":"mov","directory":"hd","media_type":"0"},"ntsc":{"__className":"stdClass","ID":2,"extension":"mov","directory":"ntsc","media_type":"0"},"pal":{"__className":"stdClass","ID":3,"extension":"mov","directory":"pal","media_type":"0"},"web":{"__className":"stdClass","ID":7,"extension":"mov","directory":"web","media_type":"0"},"flash":{"__className":"stdClass","ID":8,"extension":"flv","directory":"flv","media_type":"0"},"thumb":{"__className":"stdClass","ID":9,"extension":"jpg","directory":"thumb","media_type":"1"},"preview":{"__className":"stdClass","ID":13,"extension":"jpg","directory":"previmg","media_type":"1"},"jpeg":{"__className":"stdClass","ID":11,"extension":"jpg","directory":"jpeg","media_type":"1"},"eps":{"__className":"stdClass","ID":12,"extension":"eps","directory":"eps","media_type":"1"},"jpegl":{"__className":"stdClass","ID":14,"extension":"jpg","directory":"jpegl","media_type":"1"},"jpegm":{"__className":"stdClass","ID":15,"extension":"jpg","directory":"jpegm","media_type":"1"},"jpegs":{"__className":"stdClass","ID":16,"extension":"jpg","directory":"jpegs","media_type":"1"},"epsl":{"__className":"stdClass","ID":17,"extension":"eps","directory":"epsl","media_type":"1"},"epsm":{"__className":"stdClass","ID":18,"extension":"eps","directory":"epsm","media_type":"1"},"epss":{"__className":"stdClass","ID":19,"extension":"eps","directory":"epss","media_type":"1"},"mobile":{"__className":"stdClass","ID":20,"extension":"m4v","directory":"mobile","media_type":"0"},"hd25":{"__className":"stdClass","ID":21,"extension":"mov","directory":"hd25","media_type":"0"},"other":{"__className":"stdClass","ID":23,"extension":"*","directory":"other","media_type":"2"},"mp4":{"__className":"stdClass","ID":24,"extension":"mp4","directory":"mp4","media_type":"0"},"tif":{"__className":"stdClass","ID":25,"extension":"tif","directory":"tif","media_type":"1"},"raw":{"__className":"stdClass","ID":26,"extension":"raw","directory":"raw","media_type":"1"},"dng":{"__className":"stdClass","ID":27,"extension":"dng","directory":"dng","media_type":"1"},"crw":{"__className":"stdClass","ID":28,"extension":"crw","directory":"crw","media_type":"1"},"nef":{"__className":"stdClass","ID":29,"extension":"nef","directory":"nef","media_type":"1"},"4k":{"__className":"stdClass","ID":30,"extension":"4k","directory":"4k","media_type":"0"},"hd720p":{"__className":"stdClass","ID":31,"extension":"hd720p","directory":"hd720p","media_type":"0"},"4kl":{"__className":"stdClass","ID":32,"extension":"4kl","directory":"4kl","media_type":"0"},"2k7":{"__className":"stdClass","ID":33,"extension":"2k7","directory":"2k7","media_type":"0"},"wav":{"__className":"stdClass","ID":34,"extension":"wav","directory":"wav","media_type":"0"},"aiff":{"__className":"stdClass","ID":35,"extension":"aiff","directory":"aiff","media_type":"0"},"4kw":{"__className":"stdClass","ID":36,"extension":"4kw","directory":"4kw","media_type":"0"},"mp3":{"__className":"stdClass","ID":37,"extension":"mp3","directory":"mp3","media_type":"3"},"4k169":{"__className":"stdClass","ID":38,"extension":"4k169","directory":"4k169","media_type":"0"},"360video":{"__className":"stdClass","ID":39,"extension":"mp4","directory":"360video","media_type":"0"},"4k239":{"__className":"stdClass","ID":40,"extension":"4k239","directory":"4k239","media_type":"0"},"4k1716":{"__className":"stdClass","ID":41,"extension":"4k1716","directory":"4k1716","media_type":"0"},"qhd+":{"__className":"stdClass","ID":42,"extension":"mov","directory":"qhdplus","media_type":"0"},"4k1572":{"__className":"stdClass","ID":43,"extension":"mov","directory":"4k1572","media_type":"0"},"3k":{"__className":"stdClass","ID":44,"extension":"mov","directory":"3k","media_type":"0"},"potx":{"__className":"stdClass","ID":45,"extension":"potx","directory":"other","media_type":"2"},"dotx":{"__className":"stdClass","ID":46,"extension":"dotx","directory":"other","media_type":"2"},"thumbhires":{"__className":"stdClass","ID":47,"extension":"jpg","directory":"thumb_hi_res","media_type":"1"},"ogg preview":{"__className":"stdClass","ID":48,"extension":"ogg","directory":"previewOgg","media_type":"3"},"mp3 preview":{"__className":"stdClass","ID":49,"extension":"mp3","directory":"previewMp3","media_type":"3"}}; var isPublicUser = 0, currentUser = {}; var allowedTypes = ["HD", "NTSC", "PAL", "Mobile", "hd25", "JPEG", "EPS", "JPEGL", "JPEGM", "JPEGS", "EPSL", "EPSM", "EPSS", "other", "MP4", "TIF", "4K", "HD720P", "4KL", "2K7", "WAV", "AIFF", "4KW", "4K169", "360VIDEO", "4K239", "4K1716", "4K1572", "QHDPLUS", "3K"]; var imageSizesJpg = ['JPEG', 'JPEGL', 'JPEGM', 'JPEGS', 'TIF'], imageSizesEps = ['EPS', 'EPSL', 'EPSM', 'EPSS'], imageDpiList = [300, 150, 72]; maxSimultaneousDownloads = 3; downloadAll = false; var $popup = null; var $registrationPopupExists = false; var bs = {}; // global public bs.variables = {}; //global variables holder bs.timeouts = {}; bs.timeouts.cache = {}; bs.timeouts.set = function(name, r) { bs.timeouts.clear(name); bs.timeouts.cache[name] = r; }; bs.timeouts.clear = function(name) { try { if (bs.timeouts.cache[name]) { clearTimeout(bs.timeouts.cache[name]); delete bs.timeouts.cache[name]; } } catch (ex) { console.log(ex) } }; bs.ejs = function(o) { o = $.extend({}, o, {cache: false }); var t = new EJS(o); return t; }; bs.c = {}; bs.c.foldersEnabled = /.*/; bs.c.setsEnabled = /.*/; ///barberstock|tourism\-vancouver|jasper|rocky\-mountaineer|bc\-ferries|visit\-denver|travel\-oregon|grapevine\-tx|city\-of\-richmond|moraine\-lake\-lodge|cathedral\-mountain\-lodge|capilano\-suspension\-bridge|capilano\-group\-of\-companies|nova\-scotia|gainesville\-fl|newfoundland|palm\-beach\-fl|atlanta|macon\-bibb|san\-francisco|laguna|visit\-indy|park\-city\-utah|tourism\-victoria|tourism\-kamloops|visit\-oakland|coast\-hotels|grand\-rapids|tourism\-vancouver\-island|new\-brunswick|port\-metro\-vancouver/i; bs.c.publicSets = /.*/; ///visit\-denver\-demo|travel\-oregon|coast\-hotels|new\-brunswick|port\-metro\-vancouver/i; bs.c.inlineEditEnabled = /.*/; // /barberstock|travel\-oregon|nova\-scotia|new\-orleans\-cvb/i; bs.c.S3_ROOT = ((document.location.protocol.indexOf('https') !== -1) ? 'https' : 'http') + '://barberstock.s3.amazonaws.com'; // translation bs.translate = {}; bs.translate.hash = {}; var translate = function(str) { if (bs.translate.hash && bs.translate.hash[str]) return bs.translate.hash[str]; return str; }; bs.translate.change = function(lang) { if (!lang.match(/^(fr|en|jp)$/)) { lang = ''; } $.cookie('bs_lang', lang); setTimeout(function() { //window.location.href = '/'; var curUrl = window.location.href.replace('#', ''); setTimeout(function() { window.location.href = curUrl; // reload page }, 1); }, 1); }; //get URL params function getUrlParams(k){ var p={}; location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){p[k]=v}) return k?p[k]:p; } /** * Clear all fields on registration form. * @return void */ function emptyRegistrationFields() { $('form.registration input, form.registration textarea').val(''); } //hoisted for use in React's navBridge function resetViewContainersForReact(update){ if(update != undefined && update === true){ document.getElementById('reactUpdateTriggerFlag').value = new Date(); document.getElementById('reactUpdateTriggerFlag').dispatchEvent(new Event('change')); } setTimeout(() => { $('._container').hide(); $('#dataViewContainer').show(); $('#dataViewContainer').css('width', '100%'); window.scrollTo(0, 0); }, 100); window.scrollTo(0, 0); } /** * Reset the search parameters and display all items */ function fnViewAllItems() { bs.folders.clearSelection(); $('#inputSearchTerms').val(''); resetViewContainersForReact(); if (isPublicUser) { showProgress(); // from jq functionality showSearchPage(1, null, null, null, ''); } bs.folders.show($('#media_type').val()); } $(function(){ var reFoldersEnabled = bs.c.foldersEnabled; // LAYOUT bs.layout = {}; bs.layout.show = function(section) { var $container = $('#container'), $sections = $container.find('._container'), callback = function() {}; switch (section) { case 'searchResults': //callback = function() { showSearchPage(1); }; // @TODO: we need to handle logged in... break; case 'queueList': //callback = loadExistingQueue; break; default: break; } $sections.hide(); $('#'+section).show(); $(window).scrollTop(0); setTimeout( function(){ window.dispatchEvent(new Event('resize')); }, 500); //handle overlay resizing for overflow callback(); }; var sidebarclick; // bind sidebar functionality $('#sidebar').find('._search').click(fnViewAllItems).end() .find('._download').click(function() { clearTimeout(sidebarclick); showProgress(); sidebarclick = setTimeout(loadExistingQueue, 800); }); /*** * global flags */ var _isAdmin = false; /*** * post-login Init code */ // LEGAL var _hasScrolledLegal = false; function fnShowLegal(isForceShow) { if (!currentUser.ao){ return; } // Allows interior Terms and Conditions > Client Terms to show if (currentUser.ao.legal_copy) { $('#termsConditions ._legal').show().find('._legalContainer').html(currentUser.ao.legal_copy); }else{ $('#termsConditions .legal-terms').hide(); } // Customization for Hawaii, Hawaiiteam, and Capetown to suppress double popups if(bs.variables.suppressDefaultTermsAndConditions != undefined && bs.variables.suppressDefaultTermsAndConditions) { return; } if (currentUser.user_type.match(/tier1|admin|master/i) && currentUser.ao.legal_copy_sidebar_tier1) { $('#termsConditions ._legal').show().find('._legalContainer').html(currentUser.ao.legal_copy_sidebar_tier1); } if (!currentUser.ao.legal_copy) { $('#bsterm').show(); } if (currentUser.ao.legal_copy && (isForceShow || !currentUser.accepted_legal) ) { var content = currentUser.ao.legal_copy; if (currentUser.user_type == 'tier1_user' && currentUser.ao.legal_copy_popup_tier1) { content = currentUser.ao.legal_copy_popup_tier1; } var $popup = $('<div id="legalPopup" class="termsOfServicePopup"></div>'), html = '<div class="legal-content">'+content+'</div><div class="term-buttons"><button type="submit" class="_accept ui-state-default ui-corner-all">' + translate("Accept") + '</button><button type="submit" class="_decline ui-state-default ui-corner-all">' + translate("Decline and logout") + '</button></div>'; $popup .empty() .html(html) .dialog({ autoOpen: false, title: 'Accept User Agreement', closeOnEscape: false, modal: true, position: ['center', 40], resizable: false, width: 1000 }) .dialog('open') .find('._decline').click(function() { const buttons = document.querySelectorAll('.term-buttons > button'); buttons.forEach(b => b.disabled = true); systemLogOut(); }).end() .find('._accept').click(function() { if (currentUser.permalink == 'newfoundland' && !_hasScrolledLegal) { bs.s.show(translate("You must read the legal agreement before accepting"), 'error', true); return; } $popup.dialog('close'); bs.s.reset(); $.getJSON('/ajax/accept_legal.php', function(data){}); }).end() .find('.legal-content').scroll(function() { _hasScrolledLegal = true; }).end() .closest('.ui-dialog').find('.ui-dialog-titlebar-close').hide(); } } bs.legal = {}; bs.legal.show = fnShowLegal; function showLegalUponDownload() { var termsAndConditions = currentUser.ao.legal_copy; var $popup = $('<div id="legalPopup"></div>'), html = '<style>.legal-content li { border:none; list-style-type:inherit; margin-left:20px; padding:0; }</style>' + '<div class="legal-content" style="margin-bottom: 40px; max-height: 250px; overflow-y: scroll; font-size: 12px;">'+termsAndConditions+'</div><div style="position:absolute; bottom:10px;"></div>'; $popup .empty() .html(html) .dialog({ autoOpen: false, title: 'Terms and Conditions', closeOnEscape: false, modal: true, position: ['center', 75], resizable: false, width: 600 }) .dialog('open') } function fnShowAddVideoToCollectionPopup(videoId, formatId) { var id = 'addVideoToCollectionPopup', html = '<p>Select a collection</p>'; bs.s.show(translate("Loading..."), 'success', 1); $.getJSON('/ajax/get_sets.php', function(data) { bs.s.reset(); var errorMsg = ''; if (data.error) { errorMsg = data.error; } else if (!data.output.length) { errorMsg = translate("You have not created any Collections yet!"); } if (errorMsg.length) { bs.s.show(errorMsg, 'error', 1); return; } var arrRows = []; $.each(data.output, function(i,v) { arrRows.push('<label><input type="radio" name="collection" value="'+v.id+'" />'+fnCleanPage(v.name)+'</label>'); }); html += arrRows.join('<br />') + '<div><button class="ui-state-default ui-corner-all _submit">'+ translate("Add") + '</button></div>'; if (!$('#'+id).length) { $('body').append('<div id="' + id + '"></div>'); } var $popup = $('#'+id); $popup .empty() .html(html) .dialog({ autoOpen: false, title: 'Add to Collection', closeOnEscape: true, // just in case modal: true, position: ['center', 20], resizable: false, width: 300 }) .dialog('open') .find('._submit').click(function() { var $selected = $popup.find('input[name="collection"]').filter(':checked'); if (!$selected.length) { bs.s.show(translate("Please select a Collection"), 'error', 1); return false; } $.getJSON('/ajax/get_sets.php?action=addvideo&sid='+$selected.val()+'&vid='+videoId+'&fid='+formatId, function(data) { if (data.output) { $popup.dialog('close').remove(); bs.s.show(translate("Successfully added to Collection"), 'success', 1); } else { var m = translate("An error occurred, please try again"); if (data.error) m = data.error; bs.s.show(m, 'error', 1); } }); }).end(); }); } function buildRoleSelect(label, inputOnly, required){ var platformOptions = ''; if(required === undefined){ required = ''; } if(inputOnly == undefined || inputOnly == false){ var returnString = '<label><span class="label_text">'+translate(label)+'</span><span class="required">*</span><br /><select '+required+' name="user[role]"><option value="">'+translate('Please choose a role')+'</option>'+platformOptions+'</select></label>'; }else{ var returnString = '<select '+required+' name="user[role]"><option value="">'+translate('Please choose a role')+'</option>'+platformOptions+'</select></label>'; } return returnString; } function bulidCountrySelect(args){ if(args.name == undefined ) { return ''; } return '<select name="' + args.name + '">' + '<option value="US">UNITED STATES</option>'+ '<option value="CA">CANADA</option>' + '<option value="AF">AFGHANISTAN</option>'+ '<option value="AX">ALAND ISLANDS</option>'+ '<option value="AL">ALBANIA</option>'+ '<option value="DZ">ALGERIA</option>'+ '<option value="AS">AMERICAN SAMOA</option>'+ '<option value="AD">ANDORRA</option>'+ '<option value="AO">ANGOLA</option>'+ '<option value="AI">ANGUILLA</option>'+ '<option value="AQ">ANTARCTICA</option>'+ '<option value="AG">ANTIGUA AND BARBUDA</option>'+ '<option value="AR">ARGENTINA</option>'+ '<option value="AM">ARMENIA</option>'+ '<option value="AW">ARUBA</option>'+ '<option value="AU">AUSTRALIA</option>'+ '<option value="AT">AUSTRIA</option>'+ '<option value="AZ">AZERBAIJAN</option>'+ '<option value="BS">BAHAMAS</option>'+ '<option value="BH">BAHRAIN</option>'+ '<option value="BD">BANGLADESH</option>'+ '<option value="BB">BARBADOS</option>'+ '<option value="BY">BELARUS</option>'+ '<option value="BE">BELGIUM</option>'+ '<option value="BZ">BELIZE</option>'+ '<option value="BJ">BENIN</option>'+ '<option value="BM">BERMUDA</option>'+ '<option value="BT">BHUTAN</option>'+ '<option value="BO">BOLIVIA</option>'+ '<option value="BA">BOSNIA AND HERZEGOVINA</option>'+ '<option value="BW">BOTSWANA</option>'+ '<option value="BV">BOUVET ISLAND</option>'+ '<option value="BR">BRAZIL</option>'+ '<option value="IO">BRITISH INDIAN OCEAN TERRITORY</option>'+ '<option value="BN">BRUNEI DARUSSALAM</option>'+ '<option value="BG">BULGARIA</option>'+ '<option value="BF">BURKINA FASO</option>'+ '<option value="BI">BURUNDI</option>'+ '<option value="KH">CAMBODIA</option>'+ '<option value="CM">CAMEROON</option>'+ '<option value="CV">CAPE VERDE</option>'+ '<option value="KY">CAYMAN ISLANDS</option>'+ '<option value="CF">CENTRAL AFRICAN REPUBLIC</option>'+ '<option value="TD">CHAD</option>'+ '<option value="CL">CHILE</option>'+ '<option value="CN">CHINA</option>'+ '<option value="CX">CHRISTMAS ISLAND</option>'+ '<option value="CC">COCOS (KEELING) ISLANDS</option>'+ '<option value="CO">COLOMBIA</option>'+ '<option value="KM">COMOROS</option>'+ '<option value="CG">CONGO</option>'+ '<option value="CD">CONGO, THE DEMOCRATIC REPUBLIC OF THE</option>'+ '<option value="CK">COOK ISLANDS</option>'+ '<option value="CR">COSTA RICA</option>'+ '<option value="CI">COTE D\'IVOIRE</option>'+ '<option value="HR">CROATIA</option>'+ '<option value="CU">CUBA</option>'+ '<option value="CY">CYPRUS</option>'+ '<option value="CZ">CZECH REPUBLIC</option>'+ '<option value="DK">DENMARK</option>'+ '<option value="DJ">DJIBOUTI</option>'+ '<option value="DM">DOMINICA</option>'+ '<option value="DO">DOMINICAN REPUBLIC</option>'+ '<option value="EC">ECUADOR</option>'+ '<option value="EG">EGYPT</option>'+ '<option value="SV">EL SALVADOR</option>'+ '<option value="GQ">EQUATORIAL GUINEA</option>'+ '<option value="ER">ERITREA</option>'+ '<option value="EE">ESTONIA</option>'+ '<option value="ET">ETHIOPIA</option>'+ '<option value="FK">FALKLAND ISLANDS (MALVINAS)</option>'+ '<option value="FO">FAROE ISLANDS</option>'+ '<option value="FJ">FIJI</option>'+ '<option value="FI">FINLAND</option>'+ '<option value="FR">FRANCE</option>'+ '<option value="GF">FRENCH GUIANA</option>'+ '<option value="PF">FRENCH POLYNESIA</option>'+ '<option value="TF">FRENCH SOUTHERN TERRITORIES</option>'+ '<option value="GA">GABON</option>'+ '<option value="GM">GAMBIA</option>'+ '<option value="GE">GEORGIA</option>'+ '<option value="DE">GERMANY</option>'+ '<option value="GH">GHANA</option>'+ '<option value="GI">GIBRALTAR</option>'+ '<option value="GR">GREECE</option>'+ '<option value="GL">GREENLAND</option>'+ '<option value="GD">GRENADA</option>'+ '<option value="GP">GUADELOUPE</option>'+ '<option value="GU">GUAM</option>'+ '<option value="GT">GUATEMALA</option>'+ '<option value="GG">GUERNSEY</option>'+ '<option value="GN">GUINEA</option>'+ '<option value="GW">GUINEA-BISSAU</option>'+ '<option value="GY">GUYANA</option>'+ '<option value="HT">HAITI</option>'+ '<option value="HM">HEARD ISLAND AND MCDONALD ISLANDS</option>'+ '<option value="VA">HOLY SEE (VATICAN CITY STATE)</option>'+ '<option value="HN">HONDURAS</option>'+ '<option value="HK">HONG KONG</option>'+ '<option value="HU">HUNGARY</option>'+ '<option value="IS">ICELAND</option>'+ '<option value="IN">INDIA</option>'+ '<option value="ID">INDONESIA</option>'+ '<option value="IR">IRAN, ISLAMIC REPUBLIC OF</option>'+ '<option value="IQ">IRAQ</option>'+ '<option value="IE">IRELAND</option>'+ '<option value="IM">ISLE OF MAN</option>'+ '<option value="IL">ISRAEL</option>'+ '<option value="IT">ITALY</option>'+ '<option value="JM">JAMAICA</option>'+ '<option value="JP">JAPAN</option>'+ '<option value="JE">JERSEY</option>'+ '<option value="JO">JORDAN</option>'+ '<option value="KZ">KAZAKHSTAN</option>'+ '<option value="KE">KENYA</option>'+ '<option value="KI">KIRIBATI</option>'+ '<option value="KP">KOREA, DEMOCRATIC PEOPLE\'S REPUBLIC OF</option>'+ '<option value="KR">KOREA, REPUBLIC OF</option>'+ '<option value="KW">KUWAIT</option>'+ '<option value="KG">KYRGYZSTAN</option>'+ '<option value="LA">LAO PEOPLE\'S DEMOCRATIC REPUBLIC</option>'+ '<option value="LV">LATVIA</option>'+ '<option value="LB">LEBANON</option>'+ '<option value="LS">LESOTHO</option>'+ '<option value="LR">LIBERIA</option>'+ '<option value="LY">LIBYAN ARAB JAMAHIRIYA</option>'+ '<option value="LI">LIECHTENSTEIN</option>'+ '<option value="LT">LITHUANIA</option>'+ '<option value="LU">LUXEMBOURG</option>'+ '<option value="MO">MACAO</option>'+ '<option value="MK">MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF</option>'+ '<option value="MG">MADAGASCAR</option>'+ '<option value="MW">MALAWI</option>'+ '<option value="MY">MALAYSIA</option>'+ '<option value="MV">MALDIVES</option>'+ '<option value="ML">MALI</option>'+ '<option value="MT">MALTA</option>'+ '<option value="MH">MARSHALL ISLANDS</option>'+ '<option value="MQ">MARTINIQUE</option>'+ '<option value="MR">MAURITANIA</option>'+ '<option value="MU">MAURITIUS</option>'+ '<option value="YT">MAYOTTE</option>'+ '<option value="MX">MEXICO</option>'+ '<option value="FM">MICRONESIA, FEDERATED STATES OF</option>'+ '<option value="MD">MOLDOVA, REPUBLIC OF</option>'+ '<option value="MC">MONACO</option>'+ '<option value="MN">MONGOLIA</option>'+ '<option value="ME">MONTENEGRO</option>'+ '<option value="MS">MONTSERRAT</option>'+ '<option value="MA">MOROCCO</option>'+ '<option value="MZ">MOZAMBIQUE</option>'+ '<option value="MM">MYANMAR</option>'+ '<option value="NA">NAMIBIA</option>'+ '<option value="NR">NAURU</option>'+ '<option value="NP">NEPAL</option>'+ '<option value="NL">NETHERLANDS</option>'+ '<option value="AN">NETHERLANDS ANTILLES</option>'+ '<option value="NC">NEW CALEDONIA</option>'+ '<option value="NZ">NEW ZEALAND</option>'+ '<option value="NI">NICARAGUA</option>'+ '<option value="NE">NIGER</option>'+ '<option value="NG">NIGERIA</option>'+ '<option value="NU">NIUE</option>'+ '<option value="NF">NORFOLK ISLAND</option>'+ '<option value="MP">NORTHERN MARIANA ISLANDS</option>'+ '<option value="NO">NORWAY</option>'+ '<option value="OM">OMAN</option>'+ '<option value="PK">PAKISTAN</option>'+ '<option value="PW">PALAU</option>'+ '<option value="PS">PALESTINIAN TERRITORY, OCCUPIED</option>'+ '<option value="PA">PANAMA</option>'+ '<option value="PG">PAPUA NEW GUINEA</option>'+ '<option value="PY">PARAGUAY</option>'+ '<option value="PE">PERU</option>'+ '<option value="PH">PHILIPPINES</option>'+ '<option value="PN">PITCAIRN</option>'+ '<option value="PL">POLAND</option>'+ '<option value="PT">PORTUGAL</option>'+ '<option value="PR">PUERTO RICO</option>'+ '<option value="QA">QATAR</option>'+ '<option value="RE">REUNION</option>'+ '<option value="RO">ROMANIA</option>'+ '<option value="RU">RUSSIAN FEDERATION</option>'+ '<option value="RW">RWANDA</option>'+ '<option value="SH">SAINT HELENA</option>'+ '<option value="KN">SAINT KITTS AND NEVIS</option>'+ '<option value="LC">SAINT LUCIA</option>'+ '<option value="PM">SAINT PIERRE AND MIQUELON</option>'+ '<option value="VC">SAINT VINCENT AND THE GRENADINES</option>'+ '<option value="WS">SAMOA</option>'+ '<option value="SM">SAN MARINO</option>'+ '<option value="ST">SAO TOME AND PRINCIPE</option>'+ '<option value="SA">SAUDI ARABIA</option>'+ '<option value="SN">SENEGAL</option>'+ '<option value="RS">SERBIA</option>'+ '<option value="SC">SEYCHELLES</option>'+ '<option value="SL">SIERRA LEONE</option>'+ '<option value="SG">SINGAPORE</option>'+ '<option value="SK">SLOVAKIA</option>'+ '<option value="SI">SLOVENIA</option>'+ '<option value="SB">SOLOMON ISLANDS</option>'+ '<option value="SO">SOMALIA</option>'+ '<option value="ZA">SOUTH AFRICA</option>'+ '<option value="GS">SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS</option>'+ '<option value="ES">SPAIN</option>'+ '<option value="LK">SRI LANKA</option>'+ '<option value="SD">SUDAN</option>'+ '<option value="SR">SURINAME</option>'+ '<option value="SJ">SVALBARD AND JAN MAYEN</option>'+ '<option value="SZ">SWAZILAND</option>'+ '<option value="SE">SWEDEN</option>'+ '<option value="CH">SWITZERLAND</option>'+ '<option value="SY">SYRIAN ARAB REPUBLIC</option>'+ '<option value="TW">TAIWAN, PROVINCE OF CHINA</option>'+ '<option value="TJ">TAJIKISTAN</option>'+ '<option value="TZ">TANZANIA, UNITED REPUBLIC OF</option>'+ '<option value="TH">THAILAND</option>'+ '<option value="TL">TIMOR-LESTE</option>'+ '<option value="TG">TOGO</option>'+ '<option value="TK">TOKELAU</option>'+ '<option value="TO">TONGA</option>'+ '<option value="TT">TRINIDAD AND TOBAGO</option>'+ '<option value="TN">TUNISIA</option>'+ '<option value="TR">TURKEY</option>'+ '<option value="TM">TURKMENISTAN</option>'+ '<option value="TC">TURKS AND CAICOS ISLANDS</option>'+ '<option value="TV">TUVALU</option>'+ '<option value="UG">UGANDA</option>'+ '<option value="UA">UKRAINE</option>'+ '<option value="AE">UNITED ARAB EMIRATES</option>'+ '<option value="GB">UNITED KINGDOM</option>'+ '<option value="UM">UNITED STATES MINOR OUTLYING ISLANDS</option>'+ '<option value="UY">URUGUAY</option>'+ '<option value="UZ">UZBEKISTAN</option>'+ '<option value="VU">VANUATU</option>'+ '<option value="VE">VENEZUELA</option>'+ '<option value="VN">VIET NAM</option>'+ '<option value="VG">VIRGIN ISLANDS, BRITISH</option>'+ '<option value="VI">VIRGIN ISLANDS, U.S.</option>'+ '<option value="WF">WALLIS AND FUTUNA</option>'+ '<option value="EH">WESTERN SAHARA</option>'+ '<option value="YE">YEMEN</option>'+ '<option value="ZM">ZAMBIA</option>'+ '<option value="ZW">ZIMBABWE</option>' + '</select>'; } function buildInput(args){ if( args.type == undefined || args.name == undefined ){ return ''; } var required = ( args.required == undefined || args.required == false ) ? '' : ' required '; var placeholder = ( args.placeholder == undefined ) ? "" : ' placeholder="' + args.placeholder + '" '; switch( args.type ){ case 'message' : return ''; break; case 'countrySelect' : return bulidCountrySelect({ name : 'user[country]' }); break; case 'roleSelect' : return buildRoleSelect('', true, required); break; case 'terms' : if( args.args.termsOverview == undefined || args.args.termsLinks == undefined ) { return ''; } var linkList = '<ul>'; for( var linkCtr = 0; linkCtr < args.args.termsLinks.length; linkCtr++ ){ var link = args.args.termsLinks[linkCtr]; linkList += '<li>Link to <a href="' + link.link + '" target="_blank">' + link.label + '</a></li>'; } linkList += '</ul>'; return '<p><input type="checkbox" name="user[' + args.name + ']" style="width: auto" /> ' + translate(args.args.termsOverview) + '</p>' + linkList; break; case 'textarea' : return '<textarea ' + required + placeholder + ' name="user[' + args.name + ']"></textarea>'; break; default: var typeMap = { 'phone' : 'tel' }; var type = ( typeMap[args.type] == undefined ) ? args.type : typeMap[args.type]; return '<input type="' + type + '" ' + required + placeholder + ' name="user[' + args.name + ']"/>'; break; } } function buildField(args){ if ( args.field == undefined || args.field.name == undefined || args.field.label == undefined || args.field.type == undefined ){ return ''; } var field = args.field; if ( field.required == undefined ) { field['required'] = false; } var label = translate(field.label); var required = ( field.required == false ) ? '' : '<span class="required">*</span>'; var input = buildInput({ name : field.name, type : field.type, required : field.required, placeholder : field.placeholder, args : ( field.args == undefined ) ? {} : field.args }); var returnField = '<label><span class="label_text">' + label + '</span>' + required + '<br/>' + input + '</label>'; if(args.field.type === 'message'){ returnField = '<p>' + label + '</p>'; } return returnField; } function buildPublicSignupForm(args){ if ( args.config == undefined ) { return ''; } var returnString = '<form class="registration">' + '<p class="error _error" style="display: none;"></p>'; if( args.config.intro != undefined ) { returnString += '<p>' + translate( args.config.intro ) + '</p>' }; returnString += '<p>' + translate ( 'All fields marked with * are required.' ) + '</p>'; for( var fieldCtr = 0; fieldCtr < args.config.fields.length; fieldCtr++ ) { var fieldArgs = args.config.fields[fieldCtr]; returnString += buildField( { field : fieldArgs } ); } returnString += '</form>' + '<div class="_legal" style="display:none;"></div>'; if( args.config.captcha != undefined && args.config.captcha == true ){ returnString += '<div id="recaptcha_div"></div>'; } returnString += '<div class="submitSection">' + '<a class="_cancel" href="#">' + translate('cancel') + '</a>' + '<button class="ui-state-default ui-corner-all _submit" type="submit">' + translate('Submit') + '</button>' + '<span class="working">' + translate('Working...') + '</span>' + '</div>'; return returnString; } function getFormConfig(args){ var defaultForm = { title : args.assetOwner + " Registration", intro : "Fill out this form to register to view/download the assets on this site.", captcha: true, fields : [ { name : "first_name", label : "First name", required : true, type : "text" }, { name : "last_name", label : "Last name", required : true, type : "text" }, { name : "email", label : "Email/Username", required : true, type : "email" } ] }; if (currentUser.custom_options && currentUser.custom_options.publicPage && currentUser.custom_options.publicPage.selfRegistration) { defaultForm.fields.push( { name : "password", label : "Password", required : true, type : "password" }, { name : "password_confirm", label : "Confirm password", required : true, type : "password" } ); } defaultForm.fields.push( { name : "company", label : "Company", required : true, type : "text" }, { name : "address", label : "Address", required : false, type : "text" }, { name : "city", label : "City", required : false, type : "text" }, { name : "province", label : "State/Province", required : false, type : "text" }, { name : "country", label : "Country", required : false, type : "countrySelect" }, { name : "postal_code", label : "Zip/Postal code", required : false, type : "text" }, { name : "telephone", label : "Telephone", required : false, type : "phone" }, { name : "reason", label : "How will you be using these digital assets?", required : true, placeholder : "Please be as detailed as possible.", type : "textarea" } ); var formConfig = ( currentUser !== undefined && currentUser.custom_options !== undefined && currentUser.custom_options.forms !== undefined && currentUser.custom_options.forms.newUserSignup !== undefined ) ? currentUser.custom_options.forms.newUserSignup : defaultForm; return formConfig; } //public signup function fnShowPublicSignupDialog(permalink, assetOwner) { if($registrationPopupExists){ $popup.dialog('open'); return; } var id = 'publicsignupPopup'; var formConfig = getFormConfig({permalink, assetOwner}); var html = buildPublicSignupForm({ config : formConfig}); var title = formConfig.title; if (!$('#'+id).length) { $('body').append('<div id="' + id + '"></div>'); } if (currentUser.custom_options && currentUser.custom_options.publicPage && currentUser.custom_options.publicPage.selfRegistration) { var captchaCheck = setInterval(function() { if (typeof grecaptcha !== 'undefined') { clearTimeout(captchaCheck); $popup.find('._pw').show(); // special display like legal @TODO move this to db if (false && permalink.match(/visit\-salt\-lake/i)) { var legal = ''; $popup.find('._legal').show() .text(legal); } } }, 100); } $popup = $('#'+id); //nyc only customization to enable or disable self registration based on user role. var disableSelfRegistraitonForCurrentRole = false; $popup .empty() .html(html) .dialog({ autoOpen: false, title: title, closeOnEscape: true, // just in case modal: true, position: ['center', 20], resizable: false, width: 600, closeText: translate("Close"), close: function() { if (currentUser.custom_options.publicPage.selfRegistration && typeof grecaptcha !== 'undefined') { grecaptcha.reset(); } }, open: function() { if(!$registrationPopupExists && currentUser.custom_options.publicPage.selfRegistration){ grecaptcha.render('recaptcha_div', { 'sitekey': '6LeHPKsUAAAAAJqnoyLMGZWwNG-dbfck5BFHaL7-' }); } else { emptyRegistrationFields(); } $registrationPopupExists = true; //hack to deal with z-indexing issue on opening for slider based home pages. var $dialog = $(this); var maxZ = 0; $('*').each(function () { var thisZ = $(this).css('zIndex'); thisZ = (thisZ === 'auto' ? (Number(maxZ) + 1) : thisZ); if (thisZ > maxZ) maxZ = thisZ; }); $(".ui-widget-overlay").css("zIndex", (maxZ + 1)); $dialog.parent().css("zIndex", (maxZ + 2)); } }) .dialog('open') .find('a._cancel').click(function() { $popup.dialog('close'); return false; }) .end() .find('select[name="user[role]"]').change(function() { //nyc only customization to enable or disable self registration based on user role. if( permalink !== 'nycgo' ) { return; } if( $(this).val().toLowerCase() !== 'other' ){ //self registration disableSelfRegistraitonForCurrentRole = false; $popup.find('._pw, #recaptcha_div').show(); }else{ //approval required disableSelfRegistraitonForCurrentRole = true; $popup.find('._pw, #recaptcha_div').hide(); } }) .end() .find('._submit').click(function() { $popup.find('._error').empty(); if($popup.hasClass('processing')){ return false; } // validation var isValid = true; $popup.find('label:visible').each(function() { var $label = $(this), isRequired = $label.find('span.required').length, $input = $label.find(':input'), isFilled = $input.attr('type') === 'checkbox' ? $input.is(':checked') : !!$input.val(); if (isRequired && !isFilled) { $popup.find('._error').empty().html($label.find('.label_text').text() + ' is required').show(); $(window).scrollTop(0); isValid = false; return false; // break } }); if (!validateEmail($popup.find('input[name="user[email]"]').val())){ isValid = false; $popup.find('._error').empty().html('Email must be valid.').show(); } if (!isValid) { return false; } else if (currentUser.custom_options.publicPage.selfRegistration && !disableSelfRegistraitonForCurrentRole) { var pw = $popup.find('input[name="user[password]"]').val(), pwconf = $popup.find('input[name="user[password_confirm]"]').val(); if ($.trim(pw) !== $.trim(pwconf)) { $popup.find('._error').empty().html('Your password and password confirmation do not match').show(); $(window).scrollTop(0); return false; } if ( !$.trim(grecaptcha.getResponse())){ $popup.find('._error').empty().html('Please prove you are not a robot').show(); $(window).scrollTop(0); return false; } } $popup.addClass('processing'); var postData = 'ao=' + encodeURIComponent(permalink) + '&disableSelfRegistraitonForCurrentRole=' + disableSelfRegistraitonForCurrentRole + '&' + $popup.find('form').serialize(); postData += '&bs_lang=' + $.cookie("bs_lang"); $.post('/ajax/public_user_signup_form.php', postData, function(data) { if (data && typeof data === 'string') { data = $.parseJSON(data); } $popup.removeClass('processing'); $popup.dialog('close'); // success message if (data && data.error) { showStatus(data.error, 'error', 1); } else if (currentUser.custom_options.publicPage.selfRegistration && !disableSelfRegistraitonForCurrentRole) { showStatus(translate('Account created, please check your email for login details'), 'success', 1); } else { if (encodeURIComponent(permalink) == 'austin') { showStatus('Your request has been submitted for approval, and will be processed within 1-2 business days.', 'success', 1); } else { showStatus('Your request has been submitted and will be processed by the first available member of our team.', 'success', 1); } } }); return false; }); _.defer(function() { $('.ui-widget-overlay').height( $(document).height() ); }); bs.trackEvent('SelfRegistration', 'open', assetOwner); } function validateEmail(email) { var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(String(email).toLowerCase()); } function fnPostLogin(userData) { bs.trackEvent({category : 'Post Login', action: (userData && userData.asset_owner || 'unknown asset owner'), label: (userData && userData.user_type || 'unknown type')}); $('#header').show(); // re-enable the header var isAdminLevel = (userData && userData.user_type && userData.user_type.match(/master_user|user_admin/i)); var disableAdminControls = (userData && userData.disable_admin_controls); var isContributor = $.cookie("has_contributor_group"); //check for contact us nav item if( userData.custom_options !== undefined && userData.custom_options.contacts !== undefined && userData.custom_options.contacts.quickContact !== undefined && userData.custom_options.contacts.quickContact !== null && userData.custom_options.contacts.quickContact.length > 0 && document.getElementById('contact-us-nav-item') !== null ){ document.getElementById('contact-us-nav-item').classList.remove('hidden'); } if (!userData || !isAdminLevel || (isAdminLevel && disableAdminControls)) { $('#sidebar').find('._master').remove(); if (!isContributor && ['palm-springs', 'visitsanluisobispocounty', 'peoples-coast'].indexOf(userData.permalink) === -1) { $('.jq-assetUpload, button[data-val="uploadterm"]').remove(); } if (['palm-springs', 'visitsanluisobispocounty', 'peoples-coast'].indexOf(userData.permalink) === -1) { $('.editCategory').remove(); } if (userData.permalink == 'coast-hotels' || userData.permalink == 'visit-bellevue') { $('.search-dropdown').remove(); var allowed_admin_pages = ['administration5/edit_account.php']; var allowed_collapsable_sections = [ 'categories' ,'collections' ,'user' ] removeNavItems(allowed_admin_pages, allowed_collapsable_sections); } if (userData.permalink == 'palm-springs') { var allowed_admin_pages = [ 'administration5/edit_account.php' ,'ajax/admin5/report_list_images.php' ,'/ajax/admin5/report_list_videos.php' ,'/ajax/admin5/report_list_audio.php' ,'/ajax/admin5/report_list_others.php' ,'/ajax/admin5/report_list_sets.php' ]; var allowed_collapsable_sections = [ 'categories' ,'collections' ,'user' ,'review' ] // Joyce Kiehl (22358) can create collections, upload assets. 20721 can be used for testing. if (userData.id == 22358) { $('.search-dropdown').remove(); $('.editCategory').remove(); $('#review').remove(); var css = []; css.push('.inline-edit-container { visibility: hidden; }'); $('head').append('<style>' + css.join('\n') + '</style>'); // Ashlee Ciora, Jill Philbrook and Jan Maguire can only create collections. } else if (userData.id == 22345 || userData.id == 22355 || userData.id == 22352) { $('.search-dropdown').remove(); $('.editCategory').remove(); $('#review').remove(); $('.jq-assetUpload').remove(); var css = []; css.push('.inline-edit-container { visibility: hidden; }'); $('head').append('<style>' + css.join('\n') + '</style>'); }else{ allowed_admin_pages.push('/ajax/admin5/report_list_uploads.php'); allowed_admin_pages.push('/ajax/admin5/report_list_statistics.php'); allowed_admin_pages.push('/ajax/admin5/report_list_groups.php'); } removeNavItems(allowed_admin_pages, allowed_collapsable_sections); } if (userData.permalink == 'alaska') { var allowed_admin_pages = ['administration5/edit_account.php']; var allowed_collapsable_sections = [ 'categories' ,'collections' ,'user' ] //thompson pr, erica hedman see Add User and review > admins & users if((userData.id == 19389) || (userData.id == 19388)){ allowed_admin_pages.push('/administration5/edit_user_plain.php?mode=add'); allowed_admin_pages.push('ajax/admin5/report_list_images.php'); allowed_admin_pages.push('/ajax/admin5/report_list_videos.php'); allowed_admin_pages.push('/ajax/admin5/report_list_sets.php'); allowed_collapsable_sections.push('review'); } removeNavItems(allowed_admin_pages, allowed_collapsable_sections); } if (userData.permalink == 'oregon-mt-hood') { $('.search-dropdown').remove(); $('#queueList').find('#queueListSaveSet').remove(); var allowed_admin_pages = [ 'administration5/edit_account.php' ,'/administration5/edit_user_plain.php?mode=add' ]; var allowed_collapsable_sections = [ 'categories' ,'user' ,'account' ] removeNavItems(allowed_admin_pages, allowed_collapsable_sections); } if (userData.permalink == 'visitsanluisobispocounty' || userData.permalink == 'peoples-coast') { var allowed_admin_pages = [ 'administration5/edit_account.php' ,'ajax/admin5/report_list_images.php' ,'/ajax/admin5/report_list_videos.php' ,'/ajax/admin5/report_list_audio.php' ,'/ajax/admin5/report_list_others.php' ,'/ajax/admin5/report_list_sets.php' ]; var allowed_collapsable_sections = [ 'categories' ,'collections' ,'user' ,'review' ] removeNavItems(allowed_admin_pages, allowed_collapsable_sections); } // In Download Request-disabled platforms, 'user' is Restricted User - cannot see file checkboxes and download queue if (userData.user_type == 'user') { if (!userData.custom_options.requestDownload) { userData.restricted_user = true; } } if (userData.user_type == 'restricted_user') { userData.restricted_user = true; } if (disableAdminControls && ['palm-springs', 'visitsanluisobispocounty', 'peoples-coast'].indexOf(userData.permalink) === -1) { var css = []; css.push('.inline-edit-container { visibility: hidden; }'); $('head').append('<style>' + css.join('\n') + '</style>'); } } else { if (userData.user_type && userData.user_type.match(/user_admin/i)) { $('#sidebar').find('._master').remove(); } } cleanUpNav(); function removeNavItems(allowed_admin_pages, allowed_collapsable_sections){ $('#sidebar').find('div.item[adminpage]').each(function(){ if($.inArray($(this).attr('adminpage'), allowed_admin_pages) < 0){ $(this).remove(); } }); $('#sidebar').find('._collapsable').each(function(){ if($.inArray($(this).attr('id'), allowed_collapsable_sections) < 0){ $(this).remove(); } }); } function cleanUpNav(){ var reservedIds = ['collections', 'categories']; // only show toggle subnavs if they still have content $('#sidebar').find('[data-subnav]').each(function(){ if($(this).children().length < 1){ var target = $(this).data('subnav'); $('#sidebar').find('[data-subnav-target="'+target+'"]').remove(); $(this).remove(); } }); //remove any non-reserved empty collapsable nav items $('#sidebar').find('._collapsable').each(function(){ var id = $(this).attr('id'); $collapseContainer = $('#sidebar').find('._'+id); if($collapseContainer.children().length < 1 && $.inArray(id, reservedIds) == -1 ){ $collapseContainer.remove(); $(this).remove(); } }); } //currentUser = userData; //currentUser.customOptions = userData['custom_options']; // @TODO // @TODO: move these messages to db var loginPrompt = 'For access to ' + userData.asset_owner + '\'s library, login below', regPrompt = translate('Don\'t have an account yet?'), regBtn = translate('Register Now'); // display usage instructions stored in db if (currentUser.custom_options.legacy && currentUser.custom_options.legacy.usageInstr) { if (!isPublicUser) { // popup var html = currentUser.custom_options.legacy.usageInstr, $popup = $('<div>').html(html).appendTo('body').dialog({ title: 'How to Navigate the Library and Find Imagery', modal: true, width: $(window).width(), height: $(window).height(), left: 0, right: 0 }); } } $('#splashpage').remove(); _isAdmin = userData && userData.permalink && userData.permalink.match(/barberstock/i) && currentUser && typeof currentUser.user_type == 'string' && !!currentUser.user_type.match(/user_admin|master_user/i); var $loginform = $('#loginform'); $loginform.find('._loginMessage').html(loginPrompt); // public page, user registration //if (userData.permalink.match(/barberstock|jasper|bc\-ferries|rocky\-mountaineer|visit\-denver|grapevine\-tx|travel\-oregon|newfoundland|tourism\-vancouver/i) && isPublicUser) { // hide for non-spokane if (isPublicUser) { var isLoginOnly = currentUser['custom_options'] && currentUser['custom_options'].publicPage && currentUser['custom_options'].publicPage.loginOnly; var $targetLocation = $('#header ._login, .login-area'); if (!isLoginOnly) { $('#btnLogin').show(); $('#btnLogout').hide(); $('#username').show(); $('#password').show(); $('.login-creds .name').hide(); $('.login-links').show(); $targetLocation = $('#header div._user').empty(); // need to put a login form in here $targetLocation.append('<div class="publicLogin _publicLogin"><input type="text" class="_pubLoginUser" placeholder="'+ translate("Email") + '" /><input type="password" class="_pubLoginPass pubLoginPass" /><span class="_publicLoginBtn btn ui-widget-header ui-corner-all">' + translate("Login") + '</span></div>'); var $publicLogin = $targetLocation.find('div._publicLogin'); $publicLogin.find('._pubLoginPass').bind('keydown', function(e) { var key = (window.event) ? window.event.keyCode : e.which; if (key == 13) { $publicLogin.find('._publicLoginBtn').trigger('click'); } }).end() .find('._publicLoginBtn').click(function() { $.post("/ajax/ajax_login3.php", { email: $publicLogin.find('._pubLoginUser').val(), password: $publicLogin.find('._pubLoginPass').val(), current_page: "thispage", platform_id: 'novascotia', action: "login" }, function(data) { if (typeof data == 'string') data = JSON.parse(data); if (data.error) { //popupMessage("Error","Login failed."); var msg = translate("Login failed, please enter a valid username and password"); bs.s.show(msg, 'error', true); $publicLogin.find('._pubLoginPass').val(''); return false; } else { // just refresh the page as we've altered it too much to continue working with login _.defer(function() { window.location.href = '/main.php'; }); return; } }); }); // handle search bar width var $window = $(window); $window.resize(function() { if ($window.width() <= 1100) { $('#inputSearchTerms').css('width', '100%'); } else { $('#inputSearchTerms').css('width', ''); } }); _.defer(function() { $window.resize(); }); } $targetLocation .append('<div class="register">'+regPrompt+'<span class="_register btn ui-widget-header ui-corner-all">'+regBtn+'</span></div>') .find('._register, #_register').click(function() { fnShowPublicSignupDialog(userData.permalink, userData.asset_owner); }); if (!isLoginOnly) { $targetLocation.append('<div style="text-align: right; padding-top: 6px;"><a href="/forgot-password">' + translate("Forgot your password?") + '</a></div>'); } if (/(\?|\&)register/i.test(window.location.href)) { setTimeout(function() { $targetLocation.find('._register').click(); }, 600); } } $('#_register').click(function() { fnShowPublicSignupDialog(userData.permalink, userData.asset_owner); }); //fnGetSetTabs(); // @FEATURE: enable sets if (userData.permalink.match(bs.c.setsEnabled)) { if (userData.user_type == 'master_user' || userData.user_type == 'user_admin') { $('#setsReport').show(); } else { $('#queueListSaveSet').remove(); $('#queueListAddToSet').remove(); $('#setsReport').remove(); } } else { // disable sets $('#setsReport').remove(); $('#queueListSaveSet').remove(); $('#queueListAddToSet').remove(); } // @FEATURE: enable groups if (userData.custom_options && userData.custom_options.features && userData.custom_options.features.groups){// || !userData.user_type == 'master_user') { // enable groups if (userData.id != 1673) { // @TODO: remove if (!userData.user_type || !userData.user_type.match(/master_user/i)) { // no access to add groups $('#adminSidebar') .find('div.item[adminpage="/ajax/admin/report_list_groups.html"]') .remove().end() .find('div.item[adminpage="/administration/edit_group.php?mode=add"]') .remove(); } } } else { // no access to add groups $('#adminSidebar') .find('div.item[adminpage="/ajax/admin/report_list_groups.html"]') .remove().end() .find('div.item[adminpage="/administration/edit_group.php?mode=add"]') .remove(); } // handle new header if (userData.user_type != 'public') { $('.login-creds > .name').text(translate('Hello ')+$.trim(userData.firstname)+'!'); } //force legal? var forceShow = (currentUser.custom_options.legacy !== undefined && currentUser.custom_options.legacy.alwaysShowTermsOnLogin !== undefined) ? currentUser.custom_options.legacy.alwaysShowTermsOnLogin : false; fnShowLegal(forceShow); //platform switcher custom error messages var errMsg = ''; var platformSwitch = getUrlParams('switch_platform'); if(platformSwitch) { var errCode = getUrlParams('data'); var errMap = { '1' : 'There was an error switching platforms', '2' : 'Your account has expired. Please email: damsupport@simpleviewinc.com for more information.', '3' : 'Your account has expired. Please contact Lauren Rushing: lrushing@atlanta.net or Alecia Zackery: azackery@atlanta.net to reactivate your account' }; if(errCode !== undefined) { errMsg = errMap[errCode]; } else { errMsg= errMap['1']; } // alert on failed platform switch bs.s.show(translate(errMsg), 'error', true); } // handle multi-client if (userData.asset_owners && _.keys(userData.asset_owners).length > 1) { var $div = $('#multiAssetContent'); _.each(userData.asset_owners, function(v) { if (v.name != userData.asset_owner) { $div.append('<li><a href="#" data-value="' + v.id + '">' + v.name + '</a></li>'); } }); $div.bind('click', function(ev) { var val = $(ev.target).attr('data-value'); if (!val) return; bs.s.show(translate("Switching platforms..."), 'info'); $(location).attr('href','/platformSwitch.php?aoId='+val+'&currentAoId='+currentUser.asset_owners[currentUser.asset_owner].id); }); $('#switchLibrary').show(); } if (!isPublicUser && !userData.restricted_user) { bs.queue.updateCount(); } if (userData.restricted_user) { $('._download').hide(); } } //<<<<<<<<<< end post login code /************ * splash page code */ window.bs.splash = {}; var fnInitSplashPage = function() { $('#header').show(); }; window.bs.splash.init = fnInitSplashPage; /************ * init Loader */ fnLoaderPage = function(section) { $('#adminReports').show(); $('#adminReports iframe').attr('src', '/loader.html'); setTimeout(function(){ fnLoadAdminSection(section); }, 100); }; /************ * admin iframe */ fnLoadAdminSection = function(url) { var $iframe = $('#adminReports iframe'); $iframe.attr('src', url); bs.layout.show('adminReports'); $('#dataViewContainer').css('width', 'initial'); }; //ajax/admin/report_list_administrators_frame.html $('#sidebar .item[adminpage]').click(function() { fnLoaderPage($(this).attr('adminpage')); }); //window.bs.fnLoadAdminSection = fnLoaderPage; ////////////////////////////////// /********************************* * keyword folders NEW */ bs.folders = BSFolders($); bs.folders.getSelectedId = function() { var $container = $('#sidebar ._folderscontainer'), $target = $container.jstree('get_selected'); return $target.data('id') || null; }; /////////////////////////////////////// // Hoisted Log Out systemLogOut = function() { var redirectStub = ''; var domains = window.location.hostname.split("."); //check for old style url var customStub = (currentUser && currentUser.ao && currentUser.ao.custom_stub) || ''; if( domains[0] != customStub ){ redirectStub = customStub; } // just delete all cookies and refresh deleteAllCookies(); $.post("/ajax/ajax_log_out.php", {}, function() { _.defer(function() { location.reload(); }); return } ); } /*** * queue item helpers */ bs.queueItem = {}; bs.queueItem.download = async function(queueEl) { const downloadPromise = new Promise((resolve, reject) => { var $queueItem = $(queueEl), $checked = $queueItem.find('input:checked'), fileSize = $checked.attr('file-size'), filename = $checked.attr('value') || $checked.val(); // validate quota if (fileSize > currentUser.remaining_quota) { bs.s.show(translate("You have reached your download quota of %d MB. To request an increase of your quota, use the Contact Us option. If you have recently been granted a higher quota, please refresh the page and try again.").replace('%d', currentUser.max_quota), 'error', true); bs.timeouts.clear('monitorProgress'); // clear out the monitorProgress return false; } // special handling for showing credit info if (currentUser.permalink == 'newfoundland') {// && currentUser.user_type == 'tier2_user') { bs.s.show(translate("Whenever you use our images and videos, you must give copyright credit to the talented photographer who is noted in the photo details, as well as Newfoundland and Labrador Tourism."), 'info', true); } let success = false; $.ajax({ url: "/ajax/downloadavailabilitycheckandlogger.php?"+"filename=" + filename + "&t=" + (+new Date()), }).done(function(res) { var resData = JSON.parse(res); if(resData.available === true){ currentUser.remaining_quota -= fileSize; if (!mobilecheck()) { var downloadIframe = $("<iframe\/>"); downloadIframe.attr("src", resData.url); downloadIframe.addClass("hiddenIframe"); $queueItem.append(downloadIframe); downloadIframe.load(function(e) { $.ajax({ url: resData.url }).fail(function(loadError) { if (loadError.status && loadError.status === 404 && _LTracker !== undefined){ _LTracker.push({ container : "ui", env: document.getElementById('siteHeaderContainer').getAttribute('data-current-env'), data : { ...loadError, debug: "Download logger 404 response", filename: filename } }); } }); }); } else { window.open(resData.url, '_blank'); } }else{ bs.s.show(translate('This file is not currently available for download.'), true); } resolve(res); }).fail(function(error){ reject(error); }); }); return downloadPromise; }; /**** * file helper */ bs.fileHelper = new FileTypeHelper; /*** * sets */ bs.queueTemplate = bs.ejs({url: '/js/templates/queue-item5.ejs'}); var setHtml = '<div class="item _set" sid="<%= id %>"><span class="icon icon-19"></span><%= bs.cleanPage(name) %></div>', setTemplate = bs.ejs({text: setHtml}); function fnEnableSets() { var userData = currentUser; if (userData.permalink.match(bs.c.setsEnabled)) { if (userData.user_type == 'master_user' || userData.user_type == 'user_admin') { $('#setsReport').show(); } else { try { $('#queueListSaveSet').hide(); $('#queueListAddToSet').hide(); $('#setsReport').hide(); $.getJSON('/ajax/enable_sets.php', function(data) { if (data.enabled === true) { $('#setsReport').show(); } else { $('#queueListSaveSet').remove(); $('#queueListAddToSet').remove(); $('#setsReport').remove(); } }); } catch (e) { $('#queueListSaveSet').remove(); $('#queueListAddToSet').remove(); $('#setsReport').remove(); } } } else { // disable sets $('#setsReport').remove(); $('#queueListSaveSet').remove(); $('#queueListAddToSet').remove(); } } function fnGetSetTabs(setIdToShow, callback) { // don't load sets if we are showing a public page if (!currentUser || (currentUser && currentUser.user_type == 'public' && currentUser.custom_options && currentUser.custom_options.publicPage && !currentUser.custom_options.publicPage.loginOnly)) return; var $setContainer = $('#sidebar ._collections'); fnRemoveAll = function() { $setContainer.empty(); }; callback = (callback && $.isFunction(callback)) ? callback : function(){}; $.getJSON('/ajax/get_sets.php', function(data) { fnRemoveAll(); if (data.output && data.output.length) { var html = ''; $.each(data.output, function(i,setData) { html += setTemplate.render(setData); }); $setContainer.html(html); $('#sidebar ._set').die().live('click', function() { bs.trackEvent({category : 'UI Element - click', action: 'sidebar collection', label: $(this).attr('sid')}); bs.s.reset(); $('#sidebar .item, #sidebar .side-link').removeClass('active'); $(this).addClass('active'); // handle JSTree active states $('#sidebar').find('a').removeClass('jstree-clicked'); $('#sidebar').find('.arrow-cont').next('span.arrow').removeClass('open'); fnLoadSet($(this).attr('sid')); }); // show set sidebar $('#sidebar').find('._collection, ._collections').show(); callback(); } }); } // expose for report window.bs.loadSet = fnLoadSet; function fnLoadSet(sid, reportView, suppressCollectionsButton = false) { var defaultHtml = '<div class="_setId" setid="'+sid+'"></div><div class="downloadButtonContainer">' + (!suppressCollectionsButton ? '<button id="loadCollections" class="platform-button">Collections</button>' : '') + '<button class="_makeListPublic platform-button" type="submit" sid="'+sid+'" style="display:none;">Make Collection Public/Private</button>' + '<button class="_duplicateList platform-button" type="submit" sid="'+sid+'">Duplicate Collection</button>' +'<button class="platform-button _saveList" type="submit" sid="'+sid+'">Edit Collection</button>' +'<button class="platform-button _deleteList" type="submit" sid="'+sid+'">Delete Collection</button>' +'<div class="_publicUrl" style="display:none; margin: 10px 0;"><strong>'+translate('This Collection can be publicly accessed through this link')+':</strong>' +'<br /><input type="text" style="width: 600px; padding: 4px 10px; background-color: #ddd" readonly="readonly" /></div></div>'; var $setResults = $('#setResults').show(), fnEmptyResult = function() { $setResults.html(defaultHtml + 'No items in this collection!'); }; $setResults.empty(); if (!sid) { fnEmptyResult(); return; }; $setUrl = '/ajax/get_sets.php?sid='+sid; if(reportView == true){ $setUrl += '&reportView=true' } let expiryDate; $.getJSON($setUrl, function(data) { if (data.output && data.output.items && data.output.items.length) { $setResults.html(defaultHtml); if(document.getElementById('loadCollections') !== null){ document.getElementById('loadCollections').addEventListener('click', ()=>{ if(document.getElementById('reactReloadTransitionalPage') !== null) { document.getElementById('reactReloadTransitionalPage').value=new Date(); document.getElementById('reactReloadTransitionalPage').dispatchEvent(new Event('change')); } }); } let userAssetsAuthorizationStatus = []; if ($('._setId') !== undefined && $('._setId').attr('setid') !== undefined) { const set_id = $('._setId').attr('setid'); jq.ajax('/ajax/request_download.php', { dataType: 'json', async : false, data: { action: 'getusercollectionauthorizationstatus', set_id }, success: function(res) { if (res.data !== undefined) { userAssetsAuthorizationStatus = (res.data).reduce(function(userAssetsAuthorization, asset) { userAssetsAuthorization[asset.video_id] = asset.authorization return userAssetsAuthorization; },{}); } } }); } $.each(data.output.items, function(i, item) { if (Object.keys(userAssetsAuthorizationStatus).includes(item.video_id)) { item.request_auth = userAssetsAuthorizationStatus[item.video_id]; if (userAssetsAuthorizationStatus[item.video_id] === "request_pending") { item.request_auth = null; item.request_required = "reason"; } else if (userAssetsAuthorizationStatus[item.video_id] === "request_no_authorization_user") { if (currentUser.custom_options.requestAuthorization !== undefined && currentUser.custom_options.requestAuthorization === 1) { item.request_auth = null; item.request_required = "reason_no_auth"; } else { item.request_auth = 'authorized'; item.request_required = null; } } } var filestem = item.file_name.split("_", 1), thumbnail = filestem.toString() + "_flvImg.jpg", videoThumbnail = filestem.toString() + "_flvImg.jpg", imageThumbnail = filestem.toString() + "_thumb.jpg", preview = filestem.toString() + "_preview.mov", flashfile = filestem.toString() + "_flash.flv", video_id = item.video_id, video_format_id = item.video_format_id, // selected_format_id? isImage = item.media_type == 1, isVideo = item.media_type == 0, src = bs.c.S3_ROOT+'/thumb/'+imageThumbnail; //'/images/thumb/' + imageThumbnail; if ( item.media_type == 0 && typeof(item.files['Web']) !== 'undefined' ) { if (item.files['Web']['user_asset_upload_id'] > 0) { videoThumbnail = filestem.toString() + "_flvImg-00002.jpg" } } addSetItem(item, (isVideo ? videoThumbnail : imageThumbnail), preview, video_id, video_format_id, item.selected_format_id, data.output.set); //if (data.output.set && data.output.set.creator_id != currentUser.id) { if ( !currentUser.user_type.match(/master_user|user_admin/i) && (data.output.set && data.output.set.creator_id != currentUser.id) ) { $setResults.find('._saveList, ._deleteList, ._makeListPublic, ._duplicateList, ._addToList').remove(); // not owner, no edit } }); if(document.getElementById('loadCollections') !== null) { document.getElementById('loadCollections').addEventListener('click', function(){ document.getElementById('adminCollectionReviewReact').click(); }) } // public var stub = data.output.set.stub, aoPermalink = data.output.set.ao_permalink; if (stub && aoPermalink) { var url = 'https://novascotia.barberstock.com/collection/'+aoPermalink+'/'+stub; $('#setResults') .find('._publicUrl input').val(url) .bind('click', function() { this.select(); }); } // set expiryDate for use below expiryDate = data.output.set.expiry; // check whether to show the public collection URL if the user is an admin or owns the collection if ((currentUser.user_type.match(/master_user|user_admin/i) || data.output.set.creator_id == currentUser.id) && +data.output.set.is_public) { // show the field $('#setResults') .find('._makeListPublic').show().end() .find('._publicUrl').show(); } } else { fnEmptyResult(); if(document.getElementById('loadCollections') !== null) { document.getElementById('loadCollections').addEventListener('click', function(){ document.getElementById('adminCollectionReviewReact').click(); }) } } // enable public set button if (currentUser && currentUser.permalink.match(bs.c.publicSets)) { $setResults.find('._makeListPublic').show(); } // if there's an expiration date and it's before today at 12am, hide public link and disable public/private button if (expiryDate !== null && (new Date(expiryDate) < new Date())) { $('#setResults') .find('._publicUrl').hide(); document.querySelector('._makeListPublic').disabled = true; document.querySelector('._makeListPublic').classList.add('btn','disabled'); } }); bs.layout.show('setResults'); // show it // #setresults events $("#setResults").unbind('click').click(function(event){ downloadAll = false; // global...so sad var $target = $(event.target), setId = sid; if ($target.is('._deleteList')) { fnDeleteSet(setId); if(document.getElementById('reactUpdateTriggerFlag') !== null){ document.getElementById('reactUpdateTriggerFlag').value = new Date(); document.getElementById('reactUpdateTriggerFlag').dispatchEvent(new Event('change')); } return false; } if ($target.is('._makeListPublic')) { // only fire the behavior if button is not disabled if (document.querySelector('._makeListPublic').disabled === false) { $.getJSON('/ajax/get_sets.php?sid='+$target.attr('sid')+'&action=togglepublic', function(data) { if (data.output) { $('#setResults').find('._publicUrl').toggle(); } }); if(document.getElementById('reactUpdateTriggerFlag') !== null){ document.getElementById('reactUpdateTriggerFlag').value = new Date(); document.getElementById('reactUpdateTriggerFlag').dispatchEvent(new Event('change')); } } return false; } if ($target.is(".buttonDownload")) { if(!downloadAll) { if ($(event.target).hasClass('request_required')) { requireRequest(event); } else { bs.queueItem.download($(event.target).closest('.queueItem')); } } } if ($target.is(".buttonDelete")) { var $set = $target.closest('.queueItem'), videoId = $set.attr('video_id'); $.getJSON('/ajax/get_sets.php?action=deletevideo&sid='+setId+'&vid='+videoId, function(data) { if (data.output) { $set.remove(); } else if (data.error) { bs.s.show(data.error, 'error', true); } if(document.getElementById('reactUpdateTriggerFlag') !== null){ document.getElementById('reactUpdateTriggerFlag').value = new Date(); document.getElementById('reactUpdateTriggerFlag').dispatchEvent(new Event('change')); } }); } if ($target.is(".buttonPreview")) { var filename = $target.attr("filename"), video_id = $target.closest('.queueItem').attr("video_id"); $.getJSON("ajax/queue_preview_details.php",{video_id:video_id},showAjaxPreview); // where is showAjaxPreview? } // this is to handle the queue checkboxes if ($target.is(".fileToggleCheckbox")) { var title = "", description = "", preview = "", thumbnail = "", $checkbox = $target, $queueItem = $checkbox.closest('.queueItem'), videoId = $queueItem.attr('video_id'), isChecked = $checkbox.is(":checked"); if (isChecked) { // update title with selected file name and size $queueItem.find('.meta h4').html('File Size: ' + $checkbox.attr('file-size') + ' MB'); // uncheck others $checkbox.closest('.fileToggles').find(':checkbox:enabled').removeAttr('checked'); $checkbox.attr('checked', 'checked'); } } }); } function addSetItem(item, thumbnailSrc, preview, video_id, video_format_id, selected_format_id, setData) { // Request Status var requestStatus = checkRequestStatus(item.request_required, item.request_timestamp, item.request_auth); // End Request Status var html = bs.queueTemplate.render({ title: item.name, description: item.description, filename: item.file_name, preview: preview, "video_id": video_id, "video_format_id": selected_format_id, //video_format_id, files: item.files, "media_type": item.media_type, "use_information": item.use_information, "release_information": item.release_information, thumbnailSrc: thumbnailSrc, isSet: false, credit: item.credit, location: item.location, neighborhood: item.neighborhood, borough: item.borough, copyright: item.copyright, request_required: item.request_required, request_timestamp: item.request_timestamp, request_signature: item.request_signature, request_date: item.request_date, request_auth: item.request_auth, request_css_class: requestStatus.request_css_class, request_css_type_class: requestStatus.request_css_type_class, request_disabled: requestStatus.request_disabled, downloadText: requestStatus.downloadText, status: requestStatus.status, }); $("#setResults").append(html); return; } function fnDeleteSet(setId) { if (!confirm("Are you sure you want to permanently delete this collection?")) { return false; } $.getJSON('/ajax/get_sets.php?action=delete&sid=' + setId, function(data) { if (data.output) { bs.s.show(translate("Collection successfully deleted"), 'success', 1); $('#sidebar ._search').click(); } else { bs.s.show(data.error, 'error', 1); } }); } // expose bs.getSetTabs = fnGetSetTabs; bs.getColl = fnLoadSet; bs.enableSets = fnEnableSets; //<<<<<<<<<<< end sets code fnCleanupMouseoverPreview = function($imgDiv){ var $mediaType = $imgDiv.attr('data-type'); $pane = $('#mouseoverPreview'); // Implementation of the new Vimeo preview - still maintaining existing Flash player if($mediaType === "video" || $mediaType === "audio") { // bind on body to remove $('body').bind('click.mouseoverpreview', function() { var $target = $(this); if (!$target.closest('#mouseoverPreview').length) { $pane.remove(); $('body').unbind('click.mouseoverpreview'); } }); } else { $pane.remove(); } } /*** * mouseover preview for images * 480 x 370 * /images/thumb/012-3-0017_thumb.jpg * /images/preview/012-3-0017_preview.jpg */ fnMouseoverPreview = function($imgDiv, evt) { $imgDiv = $($imgDiv); oriPos = $imgDiv.position(); bs.trackEvent({category : 'UI Element - hover', action: 'asset preview', label : $imgDiv.find('.videoThumbnail').attr('id')}); var newUI = $imgDiv.data('new-ui'); var isImage = $imgDiv.find('.videoThumbnail').is('.videoThumbnail.image'); var isVimeo = $imgDiv.attr('data-vimeo'); var isPublicVimeo = $imgDiv.find('.previewImage').attr('data-vimeo'); var html = ''; var path = ''; var $pane = $('<div id="mouseoverPreview"></div>'); var $oriThumb = $imgDiv.find('._previewImage'); var mp3Source = ( $imgDiv.attr('data-mp3') === undefined ) ? $oriThumb.attr('data-mp3') : $imgDiv.attr('data-mp3'); var oggSource = ( $imgDiv.attr('data-ogg') === undefined ) ? $oriThumb.attr('data-ogg') : $imgDiv.attr('data-ogg'); var html = ''; if(newUI == true){ if( $imgDiv.attr('data-disable-preview') == 'true' || $imgDiv.attr('data-disable-preview') == true ) { return; } if( $imgDiv.attr('data-type') != undefined ){ isImage = false; if ( $imgDiv.attr('data-type') == 'image' || $imgDiv.attr('data-type') == 'document' || $imgDiv.attr('data-type') == 'upload_preview'){ $oriThumb = $imgDiv; isImage = true; } } //the grid uses flexbox so use offset intead of position for calculating pop-up measurements oriPos = $imgDiv.offset(); } if (!isImage) { // Implementation of the new Vimeo preview - still maintaining existing Flash player var videoContainer = "vimeoPlayerPreview"; // 480 x 270 // For now we will load Vimeo if the key exists otherwise use Flowplayer if(isVimeo) { html = '<div id="'+videoContainer+'"></div>'; } else { html = '<table><tr><td class="media" valign="middle"><a id="flowPlayerPreview" href="" style=""> </a></td></tr></table>'; } if(mp3Source && oggSource){//load audio player html = '<div class="audio_player" id="audioPlayerBackground">'; html += '<audio controls="controls" autoplay="true" id="audioPlayer" class="player">'; html += '<source src="'+oggSource+'" type="audio/ogg" />'; html += '<source src="'+mp3Source+'" type="audio/mpeg" />'; html += '<p>No browser support for the audio element. Attempting to load Flash Player.</p>'; html += '<table><tr><td class="media" valign="middle"><a id="flowPlayerPreview" href="" style=""> </a></td></tr></table>'; html += '</audio>'; html += '<div class="controls" id="audioControlsBackground">'; html += '<button class="play_button" id="audioPlayerPlayButton" type="button"aria-label="play pause toggle"><i class="material-icons" id="playButtonIcon">pause</i></button>'; html += '<input type="range" min="0" max="100" value="0" class="progress_slider" id="progressSlider"/>'; html += '<span class="progress_timer" id="progressTimer" aria-label="timer">00:00 / 00:00</span>'; html += '<div class="volume_controls">'; html += '<input type="range" min="0" max="100" value="50" class="volume_slider" id="volumeSlider"/>'; html += '<button class="mute_button" id="audioPlayerMuteButton" type="button" aria-label="mute unmute toggle"><i class="material-icons" id="volumeMuteButtonIcon">volume_up</i></button>'; html += '</div>'; html += '</div>'; html += '</div>'; }else{ // 480 x 270 // For now we will load Vimeo if the key exists otherwise use Flowplayer if(isVimeo) { html = '<div id="'+videoContainer+'"></div>'; } else { html = '<table><tr><td class="media" valign="middle"><a id="flowPlayerPreview" href="" style=""> </a></td></tr></table>'; } } } else { var thumbPath = $oriThumb.attr('src'); // var isUserUpload = thumbPath.match(/file_/i); // file_56a91e8eb25f6_Youngberg_preview.jpg var fileName = thumbPath.split('/').reverse()[0].split('_')[0]; var thumbWidth = $oriThumb.width(); var thumbHeight = $oriThumb.height(); var thumbScale = 'width: 100%'; var fallbackPath = ''; var fallbackScale = ''; var isGif = thumbPath.match(/^.*\.gif$/i); if (isGif) { path = bs.c.S3_ROOT+'/previmg/'+fileName+'_preview.gif' + "?" + new Date().getTime(); } else { path = bs.c.S3_ROOT+'/previmg/'+fileName+'_preview.jpg' + "?" + new Date().getTime(); } if ( thumbHeight > thumbWidth || thumbHeight == thumbWidth ) { thumbScale = 'height: 100%'; } //there are no lo-res previewss for upload_previews if($imgDiv.attr('data-type') == 'upload_preview'){ path = ''; }else{ fallbackPath = thumbPath; fallbackScale = thumbScale; thumbPath = '/images/loader.gif'; thumbScale = ''; } html = '<table><tr><td class="media" valign="middle"><img class="_thumb" src="'+thumbPath+'" style="'+thumbScale+'" /></td></tr></table>'; } // if (true || $imgDiv.data('description') || $imgDiv.data('useinformation')) { var previewData; if ($imgDiv.attr('data-title') === undefined) { previewData = { title: ($imgDiv.data('title') !== undefined && $imgDiv.data('title') !== null ? $imgDiv.data('title') : ""), description: ($imgDiv.data('description') !== undefined && $imgDiv.data('description') !== null ? $imgDiv.data('description') : ""), useinformation: ($imgDiv.data('useinformation') !== undefined && $imgDiv.data('useinformation') !== null ? $imgDiv.data('useinformation') : ""), neighborhood: ($imgDiv.data('neighborhood') !== undefined && $imgDiv.data('neighborhood') !== null ? $imgDiv.data('neighborhood') : ""), borough: ($imgDiv.data('borough') !== undefined && $imgDiv.data('borough') !== null ? $imgDiv.data('borough') : ""), copyright: ($imgDiv.data('copyright') !== undefined && $imgDiv.data('copyright') !== null ? $imgDiv.data('copyright') : ""), credit: ($imgDiv.data('credit') !== undefined && $imgDiv.data('credit') !== null ? $imgDiv.data('credit') : ""), location: ($imgDiv.data('location') !== undefined && $imgDiv.data('location') !== null ? $imgDiv.data('location') : "") }; } else { previewData = { title: ($imgDiv.attr('data-title') !== undefined && $imgDiv.attr('data-title') !== null ? $imgDiv.attr('data-title') : ""), description: ($imgDiv.attr('data-description') !== undefined && $imgDiv.attr('data-description') !== null ? $imgDiv.attr('data-description') : ""), useinformation: ($imgDiv.attr('data-useinformation') !== undefined && $imgDiv.attr('data-useinformation') !== null ? $imgDiv.attr('data-useinformation') : ""), neighborhood: ($imgDiv.attr('data-neighborhood') !== undefined && $imgDiv.attr('data-neighborhood') !== null ? $imgDiv.attr('data-neighborhood') : ""), borough: ($imgDiv.attr('data-borough') !== undefined && $imgDiv.attr('data-borough') !== null ? $imgDiv.attr('data-borough') : ""), copyright: ($imgDiv.attr('data-copyright') !== undefined && $imgDiv.attr('data-copyright') !== null ? $imgDiv.attr('data-copyright') : ""), credit: ($imgDiv.attr('data-credit') !== undefined && $imgDiv.attr('data-credit') !== null ? $imgDiv.attr('data-credit') : ""), location: ($imgDiv.attr('data-location') !== undefined && $imgDiv.attr('data-location') !== null ? $imgDiv.attr('data-location') : "") }; } html += '<div class="description">'; html += '<h3>'+previewData.title+'</h3>'; html += (previewData.description !== "" ? bs.cleanPage(previewData.description, true)+'<br /><br />' : ''); html += (previewData.useinformation !== "" ? translate('<span class="useinfo"><strong>Use Information:</strong> ') +bs.cleanPage(previewData.useinformation, true)+'</span>' : ''); html += (previewData.neighborhood !== "" ? '<span class="neighborhood"><strong>Neighborhood: </strong>'+bs.cleanPage(previewData.neighborhood, true)+'</span>' : ''); html += (previewData.borough !== "" ? '<span class="borough"><strong>Borough: </strong>'+bs.cleanPage(previewData.borough, true)+'</span>' : ''); html += (previewData.copyright !== "" ? '<span class="copyright"><strong>Copyright: </strong>'+bs.cleanPage(previewData.copyright, true)+'</span>' : ''); html += '</div>'; // } if (previewData.credit !== "") { html += translate('<div class="credit"><strong>Credit:</strong> ') + previewData.credit + '</div>'; } if (previewData.location !== "") { html += '<div class="location"><strong>'+translate('Location')+':</strong> ' + previewData.location + '</div>'; } $pane.append(html); if(mp3Source && oggSource){ $.getScript( "/js/audioPlayer/index.js", function(){} ); } $('#mouseoverPreview').remove(); $('body').append($pane); // do calculations to position the pane var MARGIN = 10, $win = $(window), oriWidth = $imgDiv.width(), oriHeight = $imgDiv.height(), paneWidth = $pane.outerWidth(), paneHeight = $pane.outerHeight(), scrollTop = $win.scrollTop(), myTop = myLeft = 0; var leftOffset = 0; if ($win.width() < oriPos.left + oriWidth + paneWidth + leftOffset) { // left myLeft = oriPos.left - paneWidth - MARGIN + leftOffset; } else { myLeft = oriPos.left + oriWidth + MARGIN + leftOffset; } myTop = oriPos.top; if (scrollTop + $win.height() < myTop + paneHeight) { myTop = scrollTop + $win.height() - paneHeight - MARGIN; } if (myTop < scrollTop) { myTop = scrollTop; } if(myLeft < 0 || $('.main-content-container').hasClass('sidebar-open') && myLeft <= 230){ myLeft = MARGIN; if(myTop + paneHeight >= evt.pageY && myLeft + paneWidth >= evt.pageX){ myTop -= ((myTop + paneHeight) - evt.pageY); myTop -= 10; } } $pane.css({ top: myTop+'px', left: myLeft+'px', display: 'block' }); if (myTop < scrollTop) { myTop = 0; } if (isImage) { // insert preview img var $preview = $('<img class="_preview" style="display: none;" />'); $preview.bind('load', function() { $pane.find('.media') .find('._thumb').remove().end() .append($preview.detach().show()); }).attr('src', path).appendTo($pane); $preview.bind('error', function(){//handle missing previews (e.g highrez generation in progress) $preview.attr('src', fallbackPath).attr('style', fallbackScale); }); } else { // init video // Implementation of the new Vimeo preview - still maintaining existing Flash player var video_id = ""; if(isVimeo) { var url = isVimeo; var video_id = url.split('/videos/')[1]; //temp because video_previews entries are wrong var options = { url: "https://vimeo.com/" + video_id, width: 480, height: 370, autoplay: true, byline: false, portrait: false, title: false }; var videoPlayer = new Vimeo.Player('vimeoPlayerPreview', options); videoPlayer.on('play', function() { //options }); } else { var url = $imgDiv.data('flv'); $f('flowPlayerPreview', '/library/swf/flowplayer.commercial-3.1.5.swf', { key: '#$e34d9b6c485b610c835', logo: false, clip: { url: url, autoPlay: true, autoBuffering: true, scaling: "fit" }, onFullscreen: function(){ this.play(url); }, plugins: { controls: { url: 'flowplayer.controls-3.1.5.swf', play: true, volume: false, mute: true, time: true, stop: false, playlist: false, fullscreen: true, scrubber: true, bottom: 0 } } }); //display processing message if preview is unavailable. let el = document.getElementById("flowPlayerPreview"); if(el !== undefined) { const parentElement = el.parentElement; var thumb_src = $imgDiv.attr('src'); parentElement.removeChild(el); //parentElement.innerHTML = "<h2>The video preview is being prepared, please check back soon</h2>"; parentElement.innerHTML = "<div><img src='" + thumb_src + "' style='width: 100%; height: 100%; display:block'></div>"; } } } }; // GA tracking bs.trackEvent = function(params) { var category; var values = {}; // check arguments if (arguments.length > 1) { var limit = Math.max(arguments.length, 4); for (var i = 0; i < limit; i++) { if (i == 0) category = arguments[i]; else if (i == 1) values.action = arguments[i]; else if (i == 2) values.label = arguments[i]; else if (i == 3) values.value = arguments[i]; } } else { if ('category' in params) category = params.category; if ('action' in params) values.action = params.action; if ('label' in params) values.label = params.label; if ('value' in params) values.value = params.value; if ('fieldsObject' in params) values.fieldsObject = params.fieldsObject } ga('send', 'event', category, values.action, values.label, values.value, values.fieldsObject); }; ///////////////******************/////////////// // end feature functions ///////////////******************/////////////// $(document).ready(function() { var openTimeout = null, fnClearTimeout = function() { if (openTimeout) clearTimeout(openTimeout); }, fnOpen = function(evt) { fnClearTimeout(); var _this = this; var _evt = evt; openTimeout = setTimeout(function() { fnMouseoverPreview($(_this).closest('.resultContainer'), _evt); }, 750); }; $('#searchResults').delegate('._previewImage', 'mouseenter', function(e) { //fnMouseoverPreview($(this).closest('.videoThumbnail')); //fnDebouncedPreview.call(this, null); fnOpen.call(this, e); }).delegate('._previewImage', 'mouseleave', function() { fnClearTimeout(); fnCleanupMouseoverPreview($(this)); }) ; // just incase the preview is stuck on screen, mousing over it will remove it $('#dataViewContainer').live('mouseleave', function() { var $this = $(this); // Implementation of the new Vimeo preview - still maintaining existing Flash player if($this.find('#vimeoPlayerPreview').length || $this.find('#flowPlayerPreview').length){ $this.remove(); } }); // remove on blur $('window').bind('blur', function() { $('#mouseoverPreview').remove(); }); $('.search-bar form').submit(function(e){ e.preventDefault(); return false; }); }); // images previews open Preview pane when clicked $('._previewImage').live('click', function() { $(this).closest('div.videoThumbnail').find('h3').click(); }); /* * Layout code */ $("#tabbedContent").tabs({ select: function(event, ui){ if ($(ui.tab).is('._downloadQueueTab')) { loadExistingQueue(); $('#setResults').hide(); } bs.timeouts.clear('monitorProgress'); setTimeout(resizeContent, 5000); } }); $("#popupmsg").dialog({ autoOpen: false, modal: true, width: 500, height: 300, title: "", buttons: { Close: function() { $(this).dialog('close'); } } }); $("#asset_owner").change(changeAssetOwner()); $("#media_type").change(function(){ $("#searchResultsList").empty(); $("#tabs").show(); $("staticContent").empty(); //contentLayout.open("north"); $("#tabbedContent").tabs("select",0); showSearchPage(1); bs.folders.show($('#media_type').val()); }); $("#inputSearchTerms").change(function(){ // Change default "sort by" if search term is entered if($('#inputSearchTerms').val().trim() !== "") { $("#sorting").val("Rank"); } showSearchPage(1); }); $("#perpage").change(function(){ showSearchPage(1); }); /* ***************************** * searchResults Event Handling */ $('#searchResults').delegate('._formatToggle', 'change', function() { var $input = $(this); if ($input.is(':checked')) { var toFormat = $input.attr('format'), fromFormat = toFormat == 'jpeg' ? 'eps' : 'jpeg'; var $fileToggles = $input.closest('._fileToggles'), $formatChanges = $fileToggles.find('._formatChange'); $formatChanges.each(function() { var $node = $(this); if ($node.is('.sizes')) { $node.removeClass('_'+fromFormat).addClass('_'+toFormat); } else if ($node.is('.fileToggle')) { var sizeName = $node.attr('sizename'); $node.removeClass(fromFormat.toUpperCase()+sizeName).addClass(toFormat.toUpperCase()+sizeName); } else if ($node.is('._attrFormat')) { $node.attr('format', $node.attr(toFormat+'format')); } }); if (toFormat === 'tif') { // hide all but original $formatChanges.each(function () { var $curr = $(this); if ($curr.attr('sizename')) { $curr.hide(); } }); } else { // show all $formatChanges.show(); } if (currentUser && currentUser.custom_options && currentUser.custom_options.hideEpsSizes) { if ((toFormat === 'eps') || (toFormat === 'tif')) { // hide all but original $formatChanges.each(function () { var $curr = $(this); if ($curr.attr('sizename')) { $curr.hide(); } }); } else { // show all $formatChanges.show(); } } } }).delegate('._showEmbedPopup', 'click', function () { // get variables var $result = $(this).closest('.videoThumbnail'); if (!$result.length) { return false; } var vid = $result.attr('id').replace(/[^\d]+/g, ''); var $hd = $result.find('._fileToggles .fileToggle.HD').find('input.fileToggleCheckbox'); if (!$hd.length) { return false; } var fileName = $hd.attr('value'); var $popup = $('#embedPopup').length ? $('#embedPopup') : $('<div id="embedPopup">').appendTo('body'); var userId = currentUser.id; var assetOwnerId = currentUser.asset_owners[currentUser.asset_owner].id; var embedTrackHtml = '<script src="https://novascotia.barberstock.com/js/vid/embed.php?id='+vid+'&aoid='+assetOwnerId+'&u='+userId+'"><\/script>'; // build HTML var html = '<div class="panel-group" id="accordion">' + '<div class="panel panel-default" id="panel1">' + '<div class="panel-heading">' + '<h4 class="panel-title">' + '<a data-toggle="collapse" data-target="#direct-video" href="#" id="direct-video-link">Direct video link</a>' + '</h4></div>' + '<div id="direct-video" class="panel-collapse collapse">' + '<div class="panel-body"><input readonly="readonly" style="width: 100%; background-color: #ddd; border: 1px solid rgb(169, 169, 169)" value="https://barberstock.s3.amazonaws.com/stream/' + fileName + '" /></div></div></div></div>' + '<div class="panel panel-default" id="panel2">' + '<div class="panel-heading">' + '<h4 class="panel-title">' + '<a data-toggle="collapse" data-target="#embed-code" href="#" class="collapsed" id="embed-code-link">Embed code</a>' + '</h4></div>' + '<div id="embed-code" class="panel-collapse collapse">' + '<div class="panel-body">' + '<div><textarea readonly="readonly" style="width: 100%; height: 240px; background-color: #ddd">' + '<div style="width:720px;height:480px"><script src="https://barberstock.s3.amazonaws.com/flowplayer/flowplayer-3.2.13.min.js"><\/script>' + embedTrackHtml + '<a id="bs-embed-' + vid + '" href="mp4:stream/' + fileName + '" style="background-color:black;display:block"></a><script type="text/javascript">$f("bs-embed-' + vid + '", "https://barberstock.s3.amazonaws.com/flowplayer/flowplayer-3.2.18.swf", { clip: { provider: \'rtmp\', autoPlay: false, autoBuffering: true }, plugins: { rtmp: { url: \'https://barberstock.s3.amazonaws.com/flowplayer/flowplayer.rtmp-3.2.13.swf\', netConnectionUrl: \'rtmp://s34dii843pflf6.cloudfront.net/cfx/st\' }, controls: { autoHide: \'fullscreen\' }}});<\/script><\/div>' + '</textarea></div></div></div></div>'; $popup .empty() .html(html) .dialog({ autoOpen: false, title: 'Get video links', closeOnEscape: true, // just in case modal: true, position: ['center', 20], resizable: false, width: 600, close: function() { } }) .dialog('open') .find('._close').click(function() { $popup.dialog('close'); return false; }).end(); $popup .undelegate() .delegate('#panel1', 'click', function () { $.ajax({ type: 'POST', url: '/library/features.streamingStats.php', data: { action: 'direct_link', videoId: vid, userId: userId, assetOwnerId: assetOwnerId } }); }).delegate('#panel2', 'click', function () { $.ajax({ type: 'POST', url: '/library/features.streamingStats.php', data: { action: 'embed_link', videoId: vid, userId: userId, assetOwnerId: assetOwnerId } }); }); return false; }); $('#searchResults').click(function(event){ if ($(event.target).is(".fileToggleCheckbox")) { $("#message").html("Clicked a Checkbox"); $("#message").append($(event.target).attr("value")); $("#message").append(" checked "); var $videoThumbnail = $(event.target).closest('.videoThumbnail'); videoId = $videoThumbnail.attr('id').replace("vid", ""); childrenMatchingTitle = $videoThumbnail.children('h3'); childrenMatchingDescription = $videoThumbnail.children('.description'); childrenMatchingThumbnail = $videoThumbnail.find('.thumbnailContainer'); childrenMatchingPreview = $videoThumbnail.find('.Web').find("input[type=checkbox]"); var title = ""; var description = ""; var preview = ""; $.each(childrenMatchingTitle, function(i, val){ title = $(val).html(); }); $.each(childrenMatchingDescription, function(i, val){ description = $(val).html(); }); $.each(childrenMatchingThumbnail, function(i, val){ thumbnail = $(val).html(); }); $.each(childrenMatchingPreview, function(i, val){ preview = $(val).val(); }) // Rebuild the files object for this video. <====================================== files = new Array(); //$(event.target).parent().parent().parent().children(".fileToggles").children(".fileToggle").each(function(i){ $videoThumbnail.find('.fileToggle').each(function(i){ //alert($(this).html()); // Get the file type if ($(this).is(".HD")) { fileFormat = "HD"; fileFormatId = 1; } else if ($(this).is(".NTSC")) { fileFormat = "NTSC"; fileFormatId = 2; } else if ($(this).is(".PAL")) { fileFormat = "PAL"; fileFormatId = 3; } else if ($(this).is(".Web")) { fileFormat = "Web"; fileFormatId = 7; } else if ($(this).is(".Flash")) { fileFormat = "Flash"; fileFormatId = 8; } else if ($(this).is(".Thumb")) { fileFormat = "Thumb"; fileFormatId = 9; } else if ($(this).is(".Preview")) { fileFormat = "Preview"; fileFormatId = 10; } else if ($(this).is(".JPEG")) { fileFormat = "JPEG"; fileFormatId = 11; } else if ($(this).is(".EPS")) { fileFormat = "EPS"; fileFormatId = 12; } else if ($(this).is(".JPEGL")) { fileFormat = 'JPEGL'; fileFormatId = 14; } else if ($(this).is(".JPEGM")) { fileFormat = 'JPEGM'; fileFormatId = 15; } else if ($(this).is(".JPEGS")) { fileFormat = 'JPEGS'; fileFormatId = 16; } else if ($(this).is(".EPSL")) { fileFormat = 'EPSL'; fileFormatId = 17; } else if ($(this).is(".EPSM")) { fileFormat = 'EPSM'; fileFormatId = 18; } else if ($(this).is(".EPSS")) { fileFormat = 'EPSS'; fileFormatId = 19; } else if ($(this).is(".Mobile")) { fileFormat = 'Mobile'; fileFormatId = 20; } else if ($(this).is(".hd25")) { fileFormat = 'hd25'; fileFormatId = 21; } else if ($(this).is(".MP4")) { fileFormat = 'MP4'; fileFormatId = 24; } else if ($(this).is(".TIF")) { fileFormat = 'TIF'; fileFormatId = 25; } else if ($(this).is(".4K")) { fileFormat = '4K'; fileFormatId = 30; } else if ($(this).is(".HD720P")) { fileFormat = 'HD720P'; fileFormatId = 31; } else if ($(this).is(".4KL")) { fileFormat = '4KL'; fileFormatId = 32; } else if ($(this).is(".2K7")) { fileFormat = '2K7'; fileFormatId = 33; } else if ($(this).is(".WAV")) { fileFormat = 'WAV'; fileFormatId = 34; } else if ($(this).is(".AIFF")) { fileFormat = 'AIFF'; fileFormatId = 35; } else if ($(this).is(".4KW")) { fileFormat = '4KW'; fileFormatId = 36; } else if ($(this).is(".MP3")) { fileFormat = 'MP3'; fileFormatId = 37; } else if ($(this).is(".4K169")) { fileFormat = '4K169'; fileFormatId = 38; } else if ($(this).is(".360VIDEO")) { fileFormat = '360VIDEO'; fileFormatId = 39; } else if ($(this).is(".4K239")) { fileFormat = '4K239'; fileFormatId = 40; } else if ($(this).is(".4K1716")) { fileFormat = '4K1716'; fileFormatId = 41; } else if ($(this).is(".4K1572")) { fileFormat = '4K1572'; fileFormatId = 43; } else if ($(this).is(".QHDPLUS")) { fileFormat = 'QHDPLUS'; fileFormatId = 43; } else if ($(this).is(".3K")) { fileFormat = '3K'; fileFormatId = 44; } else { fileFormat = '.other'; fileFormatId = 23; video_format = 'other'; } filename = $(this).children(".fileToggleCheckbox").val(); fileproperties = new Array(); fileproperties["name"] = filename; fileproperties["format"] = fileFormatId; files[fileFormat] = fileproperties; }); // Assign the video format id's depending on the class name if ($(event.target).parent().hasClass("HD")) { video_format = "HD"; } if ($(event.target).parent().hasClass("NTSC")) { video_format = "NTSC"; } if ($(event.target).parent().hasClass("PAL")) { video_format = "PAL"; } if ($(event.target).parent().hasClass("Web")) { video_format = "Web"; } if ($(event.target).parent().hasClass("Flash")) { video_format = "Flash"; } if ($(event.target).parent().hasClass("Thumb")) { video_format = "Thumb"; } if ($(event.target).parent().hasClass("Preview")) { video_format = "Preview"; } if ($(event.target).parent().hasClass("JPEG")) { video_format = "JPEG"; } if ($(event.target).parent().hasClass("EPS")) { video_format = "EPS"; } if ($(event.target).parent().hasClass("JPEGL")) { video_format = "JPEGL"; } if ($(event.target).parent().hasClass("JPEGM")) { video_format = "JPEGM"; } if ($(event.target).parent().hasClass("JPEGS")) { video_format = "JPEGS"; } if ($(event.target).parent().hasClass("EPSL")) { video_format = "EPSL"; } if ($(event.target).parent().hasClass("EPSM")) { video_format = "EPSM"; } if ($(event.target).parent().hasClass("EPSS")) { video_format = "EPSS"; } if ($(event.target).parent().hasClass("Mobile")) { video_format = "Mobile"; } if ($(event.target).parent().hasClass("hd25")) { video_format = "hd25"; } if ($(event.target).parent().hasClass("MP4")) { video_format = "MP4"; } if ($(event.target).parent().hasClass("TIF")) { video_format = "TIF"; } if ($(event.target).parent().hasClass("4K")) { video_format = "4K"; } if ($(event.target).parent().hasClass("HD720P")) { video_format = "HD720P"; } if ($(event.target).parent().hasClass("4KL")) { video_format = "4KL"; } if ($(event.target).parent().hasClass("2K7")) { video_format = "2K7"; } if ($(event.target).parent().hasClass("WAV")) { video_format = "WAV"; } if ($(event.target).parent().hasClass("AIFF")) { video_format = "AIFF"; } if ($(event.target).parent().hasClass("MP3")) { video_format = "MP3"; } if ($(event.target).parent().hasClass("4KW")) { video_format = "4KW"; } if ($(event.target).parent().hasClass("4K169")) { video_format = "4K169"; } if ($(event.target).parent().hasClass("360VIDEO")) { video_format = "360VIDEO"; } if ($(event.target).parent().hasClass("4K239")) { video_format = "4K239"; } if ($(event.target).parent().hasClass("4K1716")) { video_format = "4K1716"; } if ($(event.target).parent().hasClass("4K1572")) { video_format = "4K1572"; } if ($(event.target).parent().hasClass("QHDPLUS")) { video_format = "QHDPLUS"; } if ($(event.target).parent().hasClass("3K")) { video_format = "3K"; } filename = $(event.target).val(); if ($(event.target).is(":checked")) { targetChecked = true; } else { targetChecked = false; } video_format = video_format.toLowerCase(); // Uncheck all previously checked boxes, clearing the database queue record. $videoThumbnail.find('.fileToggleCheckbox').each(function() { //$($(event.target).parent().parent().children()).each(function(){ if ($(this).is(":checked") && $(this).val() != $(event.target).val()) { $(this).attr("checked", false); } }); if (targetChecked) { dbAddQueueItem(filename, videoId, videoformats[video_format]["ID"]); bs.trackEvent({category : 'UI Element - click', action: 'asset format checkbox', label : video_format, value: videoId}); //TODO: Add FILES to the parameters list //addQueueItem(title, description, thumbnail, filename, preview, videoId, videoformats[video_format]["ID"], files ); } else { dbRemoveQueueItem(filename, videoId, videoformats[video_format]["ID"]); // TODO: Refresh the Queue } } if ($(event.target).is(".pageLink")) { bs.trackEvent({category : 'UI Element - click', action: 'pagination click', label : $(event.target).data('traverse-target')}); showSearchPage($(event.target).attr("page_no")); } }); /* ************************ * queueList Event Handling (queueevents) * */ $("#queueList").click(function(event){ if ($(event.target).is("#removeAll")) { // Remove the queue of the logged in user from the database. $.getJSON("/ajax/remove_user_queue2.php", function(data){ // Remove all queue items in the interface $(".queueItem").remove(); bs.queue.items = []; setUpGlobalActionButtons(); // Uncheck all items in the current search $(".fileToggleCheckbox").attr("checked", false); // reset queue count $('#sidebar ._download ._count').html('0'); if (document.getElementById('inputSearchTermsReact') != null) { document.getElementById('inputSearchTermsReact').dispatchEvent(new CustomEvent('queueUpdateEvent', { detail : { queue : [] } } )); } }); } const downloadAllRequested = async() => { var modal = jq('#downloadAllModal'); var fileSizeTotal = 0; var queueSize = filterAssetsByStatus('download').length; if(filterAssetsByStatus('request').length > 0) { if (!modal.length) { modal = jq('#generalModal').clone().prop('id', 'downloadAllModal'); modal.find('.modal-title').html(translate('Download Request')); modal.find('.modal-footer').html('<button class="btn platform-button-reverse" data-dismiss="modal" href="#">' + translate('Close') + '</button>'); modal.find('.modal-footer').show(); modal.appendTo('body'); } var message = 'Some assets in your Download Queue must be requested prior to downloading.'; modal.find('.modal-body').html(message); modal.modal('show'); return false; } if (queueSize <= 500) { // Limit downloads to no more than 500 $.each(filterAssetsByStatus('download'), function(i, item) { fileSizeTotal += parseFloat(item.file_size); }); if (fileSizeTotal <= currentUser.remaining_quota) { const downloadsToCheck = filterAssetsByStatus('download'); for(let i = 0; i < downloadsToCheck.length; i++) { const item = downloadsToCheck[i]; await bs.queueItem.download($('#queue' + item.video_id)); } } else { var message = ('You have reached your download quota of %d MB. To request an increase of your quota, use the Contact Us option. If you have recently been granted a higher quota, please refresh the page and try again.').replace('%d', currentUser.max_quota); showStatus(message, 'error', true); return false; } } else { var message = ('Download queues are limited to no more than 500 downloads at one time. Your queue is exceeding the maximum limit. Please reduce your download queue to 500 or less to use Download All.').replace('%d', currentUser.max_quota); showStatus(message, 'error', true); return false; } } if ($(event.target).is("#downloadAll")) { downloadAllRequested(); } if ($(event.target).is("#requestAll")) { if($('.reason_custom_form').length == 0){ requireAllRegularRequest(event); } else if ((currentUser.custom_options.requestUseCustomForm && currentUser.custom_options.requestUseCustomForm === 1) || (currentUser.custom_options.requestUseCustomFormReqApproval && currentUser.custom_options.requestUseCustomFormReqApproval === 1)) { requireAllCustomRequest(event); } else { requireAllRegularRequest(event); } } if ($(event.target).is(".buttonDownload")) { if(!downloadAll) { if ($(event.target).hasClass('request_required')) { requireRequest(event); } else { bs.queueItem.download($(event.target).closest('.queueItem')); } } } if ($(event.target).is(".buttonDelete")) { videoId = $(event.target).parent().parent().attr("id"); videoId = videoId.replace("queue", ""); filename = $(event.target).parent().parent().find(":checkbox:checked").val(); videoFormat = getVideoFormat($(event.target).parent().parent().find(":checkbox:checked").parent()); videoFormatId = videoformats[videoFormat]["ID"]; dbRemoveQueueItem(filename, videoId, videoFormatId); // alert(videoId + " " + filename + " " + videoFormatId); $(event.target).parent().parent().remove(); // Clear the checkboxes for in search results for this item. $("#vid" + videoId).find(":checkbox:checked").attr("checked", false); } if ($(event.target).is(".buttonPreview")) { filename = $(event.target).attr("filename"); video_id = $(event.target).parent().parent().attr("id").substring(5); $.getJSON("ajax/queue_preview_details.php",{video_id:video_id},showAjaxPreview); } // this is to handle the queue checkboxes if ($(event.target).is(".fileToggleCheckbox")) { var title = ""; var description = ""; var preview = ""; var thumbnail = ""; var targetChecked = false; $("#message").html("Clicked a Checkbox"); $("#message").append($(event.target).attr("value")); $("#message").append(" checked "); var $checkbox = $(event.target); var $queueItem = $checkbox.closest('.queueItem'); videoId = $queueItem.attr('id').replace('queue',''); // update title with selected file name and size $queueItem.find('.meta h4').html('File Size: ' + $checkbox.attr('file-size') + ' MB'); // Assign the video format id's depending on the class name video_format = $.trim($checkbox.parent().get(0).className.replace('fileToggle', '')); video_format = video_format.toLowerCase(); filename = $(event.target).val(); if ($(event.target).is(":checked")) { targetChecked = true; } else { targetChecked = false; } // Uncheck all previously checked boxes, clearing the database queue record. $queueItem.find('.fileToggleCheckbox:checked').each(function() { var $this = $(this); if ($this.val() != $checkbox.val()) $this.removeAttr('checked'); }); if (targetChecked) { dbAddQueueItem(filename, videoId, videoformats[video_format]["ID"]); } else { dbRemoveQueueItem(filename, videoId, videoformats[video_format]["ID"]); $queueItem.remove(); } } }); $("#advancedSearchButton").click(function(){ //middleLayout.toggle("north"); contentLayout.resizeAll(); $("#advancedSearchButton").toggleClass("ui-state-highlight"); saveState(); }); $("input[type=radio]").click(function(){ saveState(); }); $("#btnSearch").click(function(){ bs.trackEvent({category : 'UI Element - click', action: 'header search button'}); showSearchPage(1); bs.folders.show($('#media_type').val()); }); $(".fg-button").hover(function(){ $(this).addClass("ui-state-hover"); }, function(){ $(this).removeClass("ui-state-hover"); }); /*** * login section */ var $loginSection = $('.login-creds'); $loginSection .find('#password').bind('keydown', function(e) { var key = (window.event) ? window.event.keyCode : e.which; if (key == 13) { $('#btnLogin').trigger('click'); } }).end(); //.find $("#btnLogin").click(function(){ bs.trackEvent({category : 'UI Element - click', action: 'header login button'}); $.post("ajax/ajax_login3.php", { email: $('#username').val(), password: $('#password').val(), current_page: "thispage", platform_id: 'novascotia', action: "login" }, function(data) { if (typeof data == 'string') data = JSON.parse(data); if (data.error) { var msg = data.errorMsg || translate("Login failed, please enter a valid username and password"); bs.s.show(msg, 'error', true); $loginSection.find('._pass').val(''); } else { // just refresh the page as we've altered it too much to continue working with login _.defer(function() { window.location.href = '/main.php'; }); // @TODO: change to main.php when deployed return; } }, "json"); }); function deleteAllCookies() { var cookies = document.cookie.split(";"); for (var i = 0; i < cookies.length; i++) { var domains = window.location.hostname.split("."); var cookie = cookies[i]; var eqPos = cookie.indexOf("="); var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; while(domains.length > 1){ document.cookie = $.trim(name) + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;domain=."+domains.join('.')+";path=/"; domains.shift(); } } } $("#btnLogout").click(function(){ bs.trackEvent({category : 'UI Element - click', action: 'header logout button'}); systemLogOut(); }); formdata = "assetowner=" + assetowner; // Initial Query formdata += "&perpage=" + $("#perpage").val(); formdata += "&callback=?"; // Initialise form display // TODO Change the initial form state depending on whether the user is logged in. <============= // add support for public users if (publicUser) { isPublicUser = 1; var data = publicUser; //currentUser.customOptions = data['custom_options']; currentUser = data; // check publicPage custom_options if (currentUser['custom_options'] && currentUser['custom_options'].publicPage) { var publicPageOptions = currentUser['custom_options'].publicPage; if (publicPageOptions.loginOnly) { // hide everything, login only $('#main').remove(); $('#header') .find('.user').remove().end() .find('._search').remove().end() .find('._login').show(); $('html,body').css({width:'100%',height:'100%'}); $('body').addClass('loginOnly'); } } $('#loggedinmessage').hide(); // hide logged in message, but keep login box shown $("#headerbar button, #headerbar select, #headerbar input, #headerbar span").show(); // show only images if (publicUser.permalink == 'rocky-mountaineer') { // force images currentUser['custom_options'].searchdefault = currentUser['custom_options'].searchdefault || {}; currentUser['custom_options'].searchdefault.type = 'image'; } changeAssetOwner({ mediaType: currentUser['custom_options'] && currentUser['custom_options'].searchdefault && currentUser['custom_options'].searchdefault.type || null, perPage: currentUser['custom_options'] && currentUser['custom_options'].searchdefault && currentUser['custom_options'].searchdefault.size || null }); $('body').addClass('publicPage'); $('body').addClass('public-splash-page'); // hide items from public view $("#ReportsMenu").remove(); $('._downloadQueueTab').remove(); // display contact info above login var welcomeText = ''; switch (publicUser.permalink) { } if (welcomeText.length) { _.defer(function() { $('#loginbox') .find('._loginMessage').html(welcomeText).end() .find('.side').css('width', ''); //.css('padding', '16px 20px').prepend('<div style="padding: 0 0 10px 0">'+welcomeText+'</div>'); }); } fnPostLogin(publicUser); } }); // END Document Load function showSearchResults(data){ bs.layout.show('searchResults'); var $container = $('#searchResultsList').empty(); bs.s.reset(); if(!data || !data.page || !data.page.totalitems) { // No records found so show an error. var errorMessage = "<br><br><p>" + translate("Sorry, there are no assets found. Please try the following solutions:") + "</p>"; if ($.cookie('bs_lang') != 'jp') { errorMessage += "<p><strong>Refine Your Search</strong> – try using different search terms.</p>"; errorMessage += "<p><strong>Search Sub-Categories</strong> – if you are searching within a parent Category, try searching within the Sub-Categories.</p>"; } else { errorMessage += "<p>" + translate("Refine Your Search") + "</p>"; errorMessage += "<p>" + translate("Search Sub-Categories") + "</p>"; } errorMessage += "<p>" + translate("If you still cannot find what you are looking for, you may have limited-access to the digital library. Please email damsupport@simpleviewinc.com for more details.") + "</p><p>"; errorMessage += "<strong>" + translate("Media Type") + ":</strong> "; errorMessage += translate($('#media_type').val()); errorMessage += "<br/>"; errorMessage += "<strong>" + translate("Search Terms") + ":</strong> "; errorMessage += $('#inputSearchTerms').val(); errorMessage += "<br/>"; if($("#advancedSearchButton").hasClass("ui-state-highlight")) { // Only show Advanced if appropriate errorMessage += "<strong>Search For:</strong> "; errorMessage += $("input[name=searchScope]:checked").val(); errorMessage += "<br/>"; errorMessage += "<strong>Occuring:</strong> "; errorMessage += $("input[name=searchLocation]:checked").val(); } errorMessage += "</p>"; $container.html(errorMessage); } else { // Set 'Sort By' drop-down to reflect selected sort var sorting = $('#sorting').val(); $('.sort-selected').removeClass('sort-selected'); $('.jq-search-sort[data-val=' + sorting +']').addClass('sort-selected'); var itemsPerRow = parseInt($('#searchResultsList').width() / 200); for (var i = 0; i < data.results.length; i++) { // Add video for each result in the data var videoData = { id: data.results[i].video_id, thumb: data.results[i].thumbnail, title: data.results[i].name, description: data.results[i].description, files: data.results[i].files, mediatype: data.results[i].media_type, keywords: data.results[i].keywords, searchData: data.results[i], useinformation: data.results[i].use_information, credit: data.results[i].credit, location: data.results[i].location, neighborhood: data.results[i].neighborhood, borough: data.results[i].borough, copyright: data.results[i].copyright, vimeo_preview : data.results[i].vimeo_preview, vimeo_hash : data.results[i].vimeo_hash }; addVideo(videoData); } // Add Vertical Borders to relevant Items $('#searchResultsList > .resultContainer:nth-child('+itemsPerRow+'n)').find('.videoThumbnail').addClass('resultNoBorder'); showPagination(parseInt(data.page.currentpage), parseInt(data.page.totalpages), parseInt(data.page.itemsperpage), parseInt(data.page.totalitems)); $("a.videoThumbnailPlayer:not([flowplayer])").flowplayer( { src: "/library/swf/flowplayer.commercial-3.1.5.swf", allowfullscreen: false }, { key: "#$e34d9b6c485b610c835", logo: { fullscreenOnly: true, opacity: 0.4 }, clip: { autoPlay: true, autoBuffering: true, scaling: "fit" }, onFullscreen: function(){ return false; }, plugins: { controls: { url: 'flowplayer.controls-3.1.5.swf', play: true, volume: false, mute: true, time: true, stop: false, playlist: false, fullscreen: false, scrubber: false, bottom: 0 } } }).attr('flowplayer', 1); var fnUnloadVideo = function(el) { $f(el).unload(); window.isPlaying = false; }, fnHover = function(el, isUnload) { setTimeout(function() { var f = $f(el); if (isUnload) { fnUnloadVideo(el); } else { if (window.isPlaying) return; window.isPlaying = true; f.load(); } },100); }, debouncedVideoLoad = _.debounce(fnHover, 100); $(".videoThumbnailPlayer").unbind('mouseenter mouseleave').mouseenter(function(){ debouncedVideoLoad(this); }).mouseleave(function(){ debouncedVideoLoad(this, true); // $f(this).unload(); }); } searching = false; } var searchResultTemplate = bs.ejs({url: '/js/templates/search-result5.ejs'}); function addVideo(videoData){ try { var $container = $('#searchResultsList'), html = searchResultTemplate.render(videoData), $html = $(html); $html.data(videoData); $container.append($html); } catch(e) { console.log(e); } return; } function addQueueItem(queueItem){ var html = bs.queueTemplate.render(queueItem); $("#queueList").append(html); return; } function generateImageFormatRows($elToAppendTo, files, qId, selectedFilename) { var queueId = "#queue" + qId, $imageSizesListJpeg = $('<div class="sizes _jpeg">').append('<div class="heading">JPEG</div>'), $imageSizesListEps = $('<div class="sizes _eps">').append('<div class="heading">EPS</div>'), resCache = {}; $.each(imageSizesJpg, function(i,formatName) { var $item = $('<div class="fileToggle ' + formatName + '">'), $checkbox = $('<input class="fileToggleCheckbox" type="checkbox" />'), label = formatName, resolution = '', size = formatName.replace('JPEG',''); if (!size.length) { size = 'Original'; } if (!(formatName in files)) { $item.addClass('disabled'); $checkbox.attr('disabled', 'disabled'); } else { $checkbox.attr({ 'file-size': files[formatName].size, 'value': files[formatName].name, 'format': files[formatName].format || '' }); if (files[formatName].resolution) { resCache[size] = files[formatName].resolution; $checkbox.attr('resolution', files[formatName].resolution); resolution = '(' + files[formatName].resolution + ')'; } else { resolution = '(' + files[formatName].size + ' MB)'; } if (qId && $(queueId).length) { if ($(queueId + " input:checked").parent().hasClass(formatName)) { $checkbox.attr("checked", true); } } if (selectedFilename && files[formatName].name == selectedFilename) { $checkbox.attr('checked', 'checked'); } } // determine label label = size + '<div class="res">' + resolution + '</div>'; $item.append($checkbox).append(label).appendTo($imageSizesListJpeg); }); $.each(imageSizesEps, function(i,formatName) { var $item = $('<div class="fileToggle ' + formatName + '">'), $checkbox = $('<input class="fileToggleCheckbox" type="checkbox" />'), label = formatName, resolution = '', size = formatName.replace('EPS',''); if (!size.length) { size = 'Original'; } var resInfo = resCache[size]; if (!(formatName in files)) { $item.addClass('disabled'); $checkbox.attr('disabled', 'disabled'); } else { $checkbox.attr({ 'file-size': files[formatName].size, 'value': files[formatName].name, 'format': files[formatName].format || '' }); if (files[formatName].resolution) { $checkbox.attr('resolution', files[formatName].resolution); resolution = '(' + files[formatName].resolution + ')'; } else { if (resInfo) resolution = '(' + resInfo + ')'; //'(' + files[formatName].size + ' MB)'; } if (qId && $(queueId).length) { if ($(queueId + " input:checked").parent().hasClass(formatName)) { $checkbox.attr("checked", true); } } if (selectedFilename && files[formatName].name == selectedFilename) { $checkbox.attr('checked', 'checked'); } } // determine label label = size + '<div class="res">' + resolution + '</div>'; $item.append($checkbox).append(label).appendTo($imageSizesListEps); }); $elToAppendTo.append($imageSizesListJpeg).append($imageSizesListEps); } function generateVideoFormatRows(elementToAppendTo, files, qId, videoId, selectedFormat) { var order = ['hd', 'hd25', 'ntsc', 'pal', 'mobile'], queueId = qId && '#queue' + qId, $sizes = $('<div class="sizes">'), noFrameRate = currentUser['custom_options'] && currentUser['custom_options'].searchdefault && currentUser['custom_options'].searchdefault.noFrameRate, formats = currentUser['custom_options'] && currentUser['custom_options'].formats || {}, isShowProxy = formats && formats.proxy; if (isShowProxy) { order.push('preview'); } // exclude formats $.each(formats, function(k,v) { if (v) return true; // continue, not excluding this one var idx = order.indexOf(k); if (idx > -1) { order.splice(idx, 1); } }); // @TODO: sort the display order on the search server, this is highly inefficient $.each(order, function(i, currentFileType) { $.each(files, function(fileType, file) { //if (fileType.toLowerCase() != currentFileType || fileType.match(/^(?:jpeg|eps)/i)) return true; if (fileType.toLowerCase() != currentFileType) return true; var resName = resNumber = '', typeDisplayName = fileType; switch(fileType.toLowerCase()) { case 'hd': resName = noFrameRate && '&nbsp;' || '24p'; resNumber = '(1920x1080)'; break; case 'ntsc': resName = noFrameRate && '&nbsp;' || '59.94i'; resNumber = '(720x480)'; break; case 'pal': resName = noFrameRate && '&nbsp;' || '50i'; resNumber = '(720x576)'; break; case 'mobile': resName = noFrameRate && '&nbsp;' || '24p'; resNumber = '(320x180)'; break; case 'hd25': typeDisplayName = 'HD'; resName = noFrameRate && '&nbsp;' || '25p'; resNumber = '(1920x1080)'; break; case 'preview': typeDisplayName = 'Proxy'; resName = noFrameRate && '&nbsp;' || '24p'; resNumber = '(1280x720)'; break; case 'mp4': typeDisplayName = 'MP4'; // resName = noFrameRate && '&nbsp;' || '24p'; // resNumber = '(1920x1080)'; break; case '4k': typeDisplayName = '4K (UHD)'; // resName = noFrameRate && '&nbsp;' || '24p'; // resNumber = '(1920x1080)'; break; case '4kl': typeDisplayName = '4K'; // resName = noFrameRate && '&nbsp;' || '24p'; // resNumber = '(1920x1080)'; break; case '2k7': typeDisplayName = '2.7K'; // resName = noFrameRate && '&nbsp;' || '24p'; // resNumber = '(1920x1080)'; break; } var $fileToggle = $('<div class="fileToggle ' + fileType + '">'), html = '<input type="checkbox" value="' + file.name + '" class="fileToggleCheckbox" style="float:left;" />' + typeDisplayName + ' ' + resName + '<div class="res">' + resNumber + '</div><div style="clear:both;"></div>'; $fileToggle.html(html); var $checkbox = $fileToggle.find('input[type="checkbox"]'); // set meta data //$checkbox.attr('file-size', file.size); $checkbox.attr({ 'file-size': file.size, 'format': file.format || '' }); if (queueId) { if ($(queueId).length) { if ($(queueId + " input:checked").parent().hasClass(fileType)) { $checkbox.attr("checked", 'checked'); } } } if (videoId && selectedFormat && selectedFormat == file.format) { $checkbox.attr("checked", 'checked'); var videoSearchID = "#vid" + videoId + " div." + fileType + " input:checkbox"; $(videoSearchID).attr("checked", true); } $sizes.append($fileToggle); }); }); if (queueId) { // is search result list elementToAppendTo.append($sizes.children()); } else { // is queue list elementToAppendTo.append($sizes); } } function addDownload(title, description, thumbnail, id, percent){ queueMarkup = $("<div\/>"); queueMarkup.addClass("queueItem"); queueMarkup.addClass("ui-helper-clearfix"); queueMarkup.addClass("testing"); queueThumbnail = $("<div\/>"); queueThumbnail.addClass("thumbnail"); queueThumbnailImage = $("<img\/>"); queueThumbnailImage.attr("src", thumbnail); queueThumbnail.append(queueThumbnailImage); queueMeta = $("<div\/>"); queueMeta.addClass("meta"); queueMetaTitle = $("<h3\/>"); queueMetaTitle.addClass("title"); queueMetaTitle.append(title); queueMetaDescription = $("<p\/>"); queueMetaDescription.addClass("description"); queueMetaDescription.append(description); queueMetaProgress = $("<div\/>"); queueMetaProgress.addClass("progress"); queueMetaProgress.attr("id", "progress" + id); thisProgressId = "#progress" + id; queueMeta.append(queueMetaTitle); queueMeta.append(queueMetaDescription); queueMeta.append(queueMetaProgress); queueButtons = $("<div\/>"); queueButtons.addClass("buttons"); queueButtonDownload = $("<a\/>"); queueButtonDownload.addClass("fg-button"); queueButtonDownload.addClass("fg-button-icon-left"); queueButtonDownload.addClass("ui-state-default"); queueButtonDownload.addClass("ui-corner-all"); queueButtonDownload.attr("href", "#"); queueButtonDownloadIcon = $("<span\/>"); queueButtonDownloadIcon.addClass("ui-icon"); queueButtonDownloadIcon.addClass("ui-icon-disk"); queueButtonDownload.append(queueButtonDownloadIcon); queueButtonDownload.append("Download"); queueButtonDelete = $("<a\/>"); queueButtonDelete.addClass("fg-button"); queueButtonDelete.addClass("fg-button-icon-left"); queueButtonDelete.addClass("ui-state-default"); queueButtonDelete.addClass("ui-corner-all"); queueButtonDelete.attr("href", "#"); queueButtonDeleteIcon = $("<span\/>"); queueButtonDeleteIcon.addClass("ui-icon"); queueButtonDeleteIcon.addClass("ui-icon-trash"); queueButtonDelete.append(queueButtonDeleteIcon); queueButtonDelete.append("Delete"); queueButtons.append(queueButtonDownload); queueButtons.append(queueButtonDelete); queueMarkup.append(queueThumbnail); queueMarkup.append(queueMeta); queueMarkup.append(queueButtons); $("#queueList").append(queueMarkup); $(thisProgressId).progressbar(); $(thisProgressId).progressbar("value", percent); } function removeQueuedItem(filename){ var searchRef = ".searchId-" + safeName(filename); $(searchRef).attr("checked", false); var queueRef = ".queueId-" + safeName(filename); $(queueRef).remove(); $("#message").html(searchRef); } function removeQueueItem(videoId){ $("#queue" + videoId).remove(); } function safeName(name){ // Generates a "safe" name for use in DOM element classnames and id attributes. name = name.replace(" ", "-"); name = name.replace(".", "-"); return name; } function monitorProgress(){ var fnCheckFinished = function() { // Flag recently completed items for removal $(".downloadProgress").each(function(i){ if ($(this).progressbar("option", "value") == 100) { var $video = $(this).parent(), filename = $video.find(":checkbox:checked").val(), videoId = $video.attr('video_id'), thisFileToggle = $video.find(":checkbox:checked").parent(), videoFormat = getVideoFormat(thisFileToggle), videoFormatId = videoformats[videoFormat]["ID"]; if (!$video.is('._setItem')) { dbRemoveQueueItem(filename, videoId, videoFormatId); //$itemToRemove.addClass("removeItem"); $video.fadeOut(300, function() { $('#vid'+videoId).find(':checkbox:checked').removeAttr('checked'); // remove the queued item $video.remove(); }); } else { $video.addClass('_downloaded') .find('.downloadProgress').remove(); } } }); }; var isSet = $('#setResults').is(':visible'); $.getJSON("ajax/active_download_list2.php", function(data){ $.each(data.downloads, function(i, node){ progressBarId = "#progress-" + safeName(node.filename).toLowerCase(); if ($(progressBarId).length) { $(progressBarId).progressbar("value", node.percentdownloaded); /* if (node.percentdownloaded == 100) { $(progressBarId).parent().addClass("ui-state-disabled"); } */ } }); // update quota currentUser.remaining_quota = data.remainingQuota; fnCheckFinished(); var queueLength = isSet ? $('#setResults ._setItem').not('._downloaded').length : countTotalItems(); var activeDownloads = countActiveDownloads(); var completedDownloads = countCompletedDownloads(); // Check whether we're automatically downloading if (downloadAll) { if (queueLength > 0) { // There are active downloads if (activeDownloads < maxSimultaneousDownloads) { // Limit the nummber simultaneous downloads if (queueLength > (activeDownloads + completedDownloads)) { // There are items left to process startNextDownload(); } } // Set a timeout once the data has come down bs.timeouts.set('monitorProgress', setTimeout("monitorProgress()", 5000)); } } }); } function showPagination(currentpage, totalpages, itemsperpage, totalitems) { var $container = $('#searchResultsList'); var pageLink; startpage = 1; endpage = totalpages; var paginationContainer = $("<div\/>"); paginationContainer.attr("id", "paginator"); var pageLinkDiv = $("<div class='pageLinkDiv'/>"); // Current Page if(parseInt(currentpage) > 1) { previous = currentpage - 1; pageLink = $("<span\/>"); pageLink.addClass("pageLink").addClass("pageTraverse"); pageLink.append("&lsaquo;"); pageLink.attr("data-traverse-target", "previous"); pageLink.attr("page_no",previous); pageLinkDiv.append(pageLink); } pageLink = '<div class="pageSelector">'+ '<button type="button" class="btn btn-default page-selector-btn">'+currentpage+'</button>'+ '<input type="text" class="form-control form-control-reverse page-selector"/>'+ '</div>'; // pageLink = $("<span class='currentPage'></span>").html(currentPage); pageLinkDiv.append(pageLink); pageLinkDiv.append("<span>of</span>"); // Total Pages pageLink = $("<span class='totalPages'></span>").html(totalpages); pageLinkDiv.append(pageLink); if(parseInt(currentpage) < endpage) { next = currentpage + 1; pageLink = $("<span\/>"); pageLink.addClass("pageLink").addClass("pageTraverse"); pageLink.append("&rsaquo;"); pageLink.attr("data-traverse-target", "next"); pageLink.attr("page_no",next); pageLinkDiv.append(pageLink); } paginationContainer.append(pageLinkDiv); if (currentpage == totalpages && currentpage == 1) paginationContainer.html(''); // append number of results per page var resultsPerPage = '<div class="btn-group jq-results-per-page">'+ '<button type="button" class="btn btn-default" data-val="10">10</button>'+ '<button type="button" class="btn btn-default" data-val="20">20</button>'+ '<button type="button" class="btn btn-default" data-val="50">50</button>'+ '<button type="button" class="btn btn-default" data-val="100">100</button>'+ '<button type="button" class="btn btn-default" data-val="250">250</button>'+ '</div>'; paginationContainer.append(resultsPerPage); var $bottomPagination = paginationContainer.clone(true).attr('id', 'pagination_b').css({'clear': 'both', 'display': 'block'}); $container.prepend(paginationContainer).append($bottomPagination); // set perpage button var perpage = $('#perpage').val(); $('.jq-results-per-page > button').each(function(i) { if ($(this).attr('data-val') == perpage) { $(this).prop('disabled', true); } }); } function showSearchPage(page, mediaType, callback, perPage, searchQuery, folderToSearch){ if (!callback) callback = showSearchResults; // default callback var $mediaType = $('#media_type'), searchMediaType = mediaType || $mediaType.val() || $mediaType.find('option').eq(0).val(), $perPage = $('#perpage'), searchPerPage = perPage || $perPage.val() || $perPage.find('option').eq(0).val(); if(!searching) { bs.trackEvent({category : 'Search', action: $("#asset_owner").val() || (currentUser && currentUser.permalink), label: searchQuery || searchQuery === '' ? searchQuery : $("#inputSearchTerms").val()}); currentPage = page; // bs.s.show(translate("Loading..."), 'info'); formdata = "q=" + encodeURIComponent(searchQuery || searchQuery === '' ? searchQuery : $("#inputSearchTerms").val()); formdata += "&assetowner=" + ($("#asset_owner").val() || (currentUser && currentUser.permalink)); //if (middleLayout.state.north.isClosed) { formdata += "&searchtype=basic"; formdata += "&perpage=" + searchPerPage; formdata += "&page=" + page; formdata += "&media_type=" + searchMediaType; formdata += "&callback=?"; // jsonp if (isPublicUser) { formdata += '&public=1'; } var groupid = $('#group_id').val(); if (groupid > 0) { formdata += "&groupid=" + groupid; } if (folderToSearch) { formdata += '&kw='+encodeURIComponent(folderToSearch); } else { var selectedFolderPath = bs.folders.getSelectedId(); if (selectedFolderPath) { formdata += '&kw='+encodeURIComponent(selectedFolderPath); } } // set tier data var userTier = (currentUser && currentUser.user_type && currentUser.user_type) || '';//.match(/\d+/); //userTier = userTier && userTier[0] || ''; formdata += '&t='+userTier; // make sure the dropdown is synced with the search type if (searchMediaType && searchMediaType != $mediaType.val()) { $mediaType.val(searchMediaType); } if (searchPerPage && searchPerPage != $perPage.val()) { $perPage.val(searchPerPage); } var sorting = $('#sorting').val(); formdata += '&sort=' + sorting; // Set MediaType jq('.media-type-selector button').prop('disabled', false); jq('.media-type-selector button[data-val='+ $mediaType.val() +']').prop('disabled', true); if(isPublicUser){ // Search Server searching = true; $.getJSON( "/ajax/search.php" , formdata, callback ); saveState(); } bs.getSetTabs(); bs.breadcrumb.set(); } bs.queue.updateCount(); } function resizeContent(height){ } function set_request_auth(request_auth, request_object) { request_object.request_css_class = "request_required"; switch (request_auth) { case 'declined': request_object.downloadText = "Declined"; request_object.status = "declined"; request_object.request_disabled = "disabled"; break; case 'pending': request_object.downloadText = "Pending"; request_object.status = "pending"; request_object.request_disabled = "disabled"; break; case 'authorized': request_object.downloadText = "Download"; request_object.status = "download"; request_object.request_css_class = ""; request_object.request_css_type_class = ""; break; case 'restricted': request_object.status = "restricted"; break; default: request_object.downloadText = "Request" request_object.status = "request"; break; } return request_object; } // Determine Request Status function checkRequestStatus(request_required, request_timestamp, request_auth) { // Set default request_object var request_object = { downloadText: "Download", status: "download", request_css_class: "", request_css_type_class: "", request_disabled: "" }; if (currentUser.custom_options.requestDownload) { // check if asset requires request checking and if user has requested checked if (!(request_required == 'none' || request_required == '' || request_required == null) && request_timestamp === null) { request_object.downloadText = "Request"; request_object.status = "request"; request_object.request_css_class = "request_required"; request_object.request_css_type_class = request_required; if (request_required.indexOf('reason') >= 0) { request_object = set_request_auth(request_auth, request_object); } } // check if limited user if (currentUser.user_type == "user" || currentUser.limited_user) { request_object.downloadText = "Request"; request_object.status = "request"; request_object.request_css_class = "request_required"; if (request_object.request_css_type_class === '') { if (currentUser.custom_options.requestPhase2) { request_object.request_css_type_class = "reason_custom_form_no_auth"; } else if (currentUser.custom_options.requestAuthorizationReqApproval) { request_object.request_css_type_class = "reason"; } else if (currentUser.custom_options.requestAuthorization) { request_object.request_css_type_class = "reason_no_auth"; } } request_object = set_request_auth(request_auth, request_object); } // check if tier1_user // check if tier2_user: tier2_user should also be Regular User. selfRegistration users are added as tier2_user. if (currentUser.user_type == "tier1_user" || currentUser.user_type == "tier2_user") { if (request_required === 'reason_custom_form' || request_required === 'reason' || (currentUser.custom_options.requestPhase2 && !(request_required == 'none' || request_required == '' || request_required == null))) { request_object = set_request_auth(request_auth, request_object); } } if (request_auth == 'restricted') { request_object = set_request_auth(request_auth, request_object); } } return request_object; } /** * Add the download request status to each of the items */ function setDownloadRequestStatus(items) { if(typeof items == 'undefined') { return items; } $.each(items, function(i, item) { items[i].status = checkRequestStatus(item.request_required, item.request_timestamp, item.request_auth).status; }); return items; } function loadExistingQueue(){ bs.layout.show('queueList'); var requestAllButton = ''; requestAllButton = '<button id="requestAll" class="platform-button _requestAll" type="submit" style="display:none">' + translate("Request All") + '</button>'; //DAM-DAM-478 disabled for now requestAllButton = ''; var htmlButtons = '<div format="zzz" id="downloadActions">'+ '<button id="downloadAll" class="platform-button _downloadAll" type="submit" style="display:none">' + translate("Download All") + '</button>'+ requestAllButton+ '<button id="removeAll" class="platform-button" type="submit" style="display:none">' + translate("Remove All") + '</button>'+ '<button id="queueListSaveSet" class="platform-button _saveList" type="submit" style="display:none;">Save as a Collection</button>'+ '<button id="queueListAddToSet" class="platform-button _addToList" type="submit">Add to Existing Collection</button>'+ '</div>'; $container = $('#queueList').empty().append(htmlButtons); bs.enableSets(); // load the download queue if no setId passed in var url = '/ajax/queued_item_list2.php'; $.getJSON(url, function(data){ var $queueList = $('#queueList'); var has_pending_request = false; var request_types = {}; var hasDownloads = false; // 'user' User Type exists in older platforms (possibly without Download Request) so check if the platform has Download Request when determining Limited User. var isLimitedUser = currentUser.custom_options.requestDownload && currentUser.user_type == "user"; // hawaii-tourism-authority var assetOwnerHasMultiDownloadRequestOptions = currentUser.custom_options.requestUseCustomFormReqApproval && currentUser.custom_options.requestAuthorization; var assetOwnerHasBasicDownloadRequest = currentUser.custom_options.basicRequest; if(typeof data.items == "object" ) { bs.queue.items = setDownloadRequestStatus(data.items); $queueList.find('._noItemMsg').hide(); $.each(data.items, function(i, item) { var filestem = item.file_name.split("_", 1); var thumbnail = filestem.toString() + "_flvImg.jpg"; var videoThumbnail = filestem.toString() + "_flvImg.jpg"; var imageThumbnail = filestem.toString() + "_thumb.jpg"; var preview = filestem.toString() + "_preview.mov"; var flashfile = filestem.toString() + "_flash.flv"; video_id = item.video_id; video_format_id = item.video_format_id; // Generating markup for preview var thumbnailName = (item.media_type == 1 || item.media_type == 2) ? imageThumbnail : videoThumbnail; if ( item.media_type == 0 && typeof(item.files['Web']) !== 'undefined' ) { if (item.files['Web']['user_asset_upload_id'] > 0) { thumbnailName = filestem.toString() + "_flvImg-00002.jpg" } } // End of markup Generation // Request Status var requestStatus = checkRequestStatus(item.request_required, item.request_timestamp, item.request_auth); // End Request Status var queueItem = { title: item.name, description: item.description, thumbnailSrc: thumbnailName, filename: item.file_name, preview: preview, video_id: video_id, video_format_id: video_format_id, files: item.files, media_type: item.media_type, use_information: item.use_information, release_information: item.release_information, credit: item.credit, location: item.location, neighborhood: item.neighborhood, borough: item.borough, copyright: item.copyright, request_required: item.request_required, request_timestamp: item.request_timestamp, request_signature: item.request_signature, request_date: item.request_date, request_auth: item.request_auth, isSet: false, downloadText: requestStatus.downloadText, request_css_class: requestStatus.request_css_class, request_css_type_class: requestStatus.request_css_type_class, request_disabled: requestStatus.request_disabled, status: requestStatus.status }; addQueueItem(queueItem); switch (item.request_required) { case "basic": request_types.basic = "basic"; break; case "signed": request_types.signed = "signed"; break; case "reason": request_types.reason = "reason"; break; case "reason_no_auth": request_types.reason_no_auth = "reason_no_auth"; break; case "reason_custom_form": request_types.reason_custom_form = "reason_custom_form"; break; case "reason_custom_form_no_auth": request_types.reason_custom_form_no_auth = "reason_custom_form_no_auth"; break; default: break; } if (!has_pending_request && (!(item.request_required == 'none' || item.request_required == '' || item.request_required == null) && item.request_timestamp === null)) { has_pending_request = true; } if (requestStatus.downloadText == 'Download') { hasDownloads = true; } }); } else { bs.queue.items = null; } $queueList.append('<div class="_noItemMsg" style="text-align: center; padding-top: 40px">'+translate("No items in queue yet! Add items from the search results and download them here.")+'</div>'); setUpGlobalActionButtons(); }); } function setUpGlobalActionButtons() { if(filterAssetsByStatus('request').length > 0) { $('#requestAll').show(); } else { $('#requestAll').hide(); } if (filterAssetsByStatus('download').length > 0) { $('#downloadAll').show(); } else { $('#downloadAll').hide(); } if(bs.queue.items !== null && bs.queue.items.length > 0) { $('#removeAll').show(); $('#queueListSaveSet').show(); $('#queueListAddToSet').show(); $('#queueList').find('._noItemMsg').hide(); } else { $('#removeAll').hide(); $('#queueListSaveSet').hide(); $('#queueListAddToSet').hide(); $('#queueList').find('._noItemMsg').show(); } } var assetUploadTemplate = bs.ejs({url: '/js/templates/assetUpload.ejs'}); // download queue bs.queue = {}; bs.queue.updateCount = function() { $.getJSON('/ajax/queued_item_list2.php', function(data) { var count = 0; if (data && data.items) { count = data.items.length; } $('#sidebar .item._download ._count').text(count); if (document.getElementById('reactQueueInfo') != null) { document.getElementById('reactQueueInfo').dispatchEvent(new CustomEvent('queueUpdateEvent', { detail : { queue : (data.items != undefined) ? data.items : [] } } )); } bs.queue.items = setDownloadRequestStatus(data.items); setTimeout(function() { if (bs.queue.items != null) { for (var i in bs.queue.items) { $('.fileToggleCheckbox[value="'+bs.queue.items[i].file_name+'"]').attr('checked', 'checked'); } } }, 1500); }); }; function dbAddQueueItem(filename, videoId, videoFormatId){ $.getJSON("/ajax/add_queued_item2.php", { "filename": filename, "videoId": videoId, "videoFormatId": videoFormatId }, function(data){ // TODO: error trapping; // loadExistingQueue(); // Is the still used - if not remove it if (data && data.status === 'OK') { bs.s.show(translate("Item successfully added to Download Queue"), 'success', true, 4000); bs.queue.updateCount(); } }); } function removeQueueItemLocally(videoId) { if(bs.queue.items.length == 1) { bs.queue.items = []; return; } returnArray = []; for(i = 0; i < bs.queue.items.length; i++) { if(bs.queue.items[i].video_id != videoId) { returnArray.push(bs.queue.items[i]); } } bs.queue.items = returnArray; } function dbRemoveQueueItem(filename, videoId, videoFormatId){ $.getJSON("/ajax/remove_queued_item2.php", { "filename": filename, "videoId": videoId, "videoFormatId": videoFormatId }, function(data){ removeQueueItemLocally(videoId); setUpGlobalActionButtons(); bs.queue.updateCount(); }); } function getVideoFormat(item){ var arrClasses = $(item).get(0).className.split(' '), videoformats = allowedTypes.concat(['PAL', 'Web', 'Flash', 'Thumb', 'Preview']), output = ''; $.each(arrClasses, function(i,v) { if ($.inArray(v, videoformats) > -1) { output = v; return false; // break } }); return output.toLowerCase(); } function startDownload(videoId){ var isSet = $('#setResults:visible').length; var queueItemId = (isSet ? '#setItem_' : "#queue") + videoId; var queueItem = $(queueItemId); filename = queueItem.find(":checkbox:checked").val(); downloadProgress = $("<div\/>"); downloadProgress.addClass("downloadProgress"); progressId = "progress-" + safeName(filename); progressId = progressId.toLowerCase(); downloadProgress.attr("id", progressId); queueItem.append(downloadProgress); $("#" + progressId).progressbar(); currentTime = new Date(); downloadLink = "ajax/downloadlogger.php?filename=" + filename + "&t=" + currentTime.getTime(); downloadIframe = $("<iframe\/>"); downloadIframe.attr("src", downloadLink); downloadIframe.addClass("hiddenIframe"); queueItem.append(downloadIframe); } function countActiveDownloads(){ count = 0; $(".queueItem").find(".downloadProgress").each(function(i){ if ($(this).progressbar('option', 'value') < 100) { count++; }; }); return count; } function countCompletedDownloads(){ count = 0; $(".queueItem").find(".downloadProgress").each(function(i){ if ($(this).progressbar('option', 'value') == 100) { count++; }; }); return count; } /* * Returns the total number of items in the queue */ function countTotalItems(){ return $(".queueItem").length; } /* * Starts the next download. */ function startNextDownload(){ downloadStarted = false; $(".queueItem:visible").each(function(i){ if (($(this).find(".downloadProgress").length == 0) && !downloadStarted) { var videoId = $(this).attr("video_id"); //videoId = videoId.replace("queue", ""); startDownload(videoId); downloadStarted = true; } }); } function clearFlowplayers(){ if( typeof($f()) == "object" ) { $f().unload(); } } /** * language html generation * * I don't believe this function gets called any longer. See bbsClientsJs.php->getflagDiv() */ function fnInitLanguagePicker(target) { target = target || 'body'; var flagFr = "<span class='_langFlag' href='#' data-lang='fr' style='cursor:pointer; text-decoration:underscore' title='Change language to French'>FR</span>"; var flagEn = "<span class='_langFlag' href='#' data-lang='en' style='cursor:pointer; text-decoration:underscore' title='Change Language to English'>EN</span>"; var flagJp = "<span class='_langFlag' href='#' data-lang='jp' style='cursor:pointer; text-decoration:underscore' title='Change Language to Japanese'>日本語</span>"; var flagDiv = "<div id='langPicker'>" + flagEn + "&nbsp;/&nbsp;" + flagFr + "</div>"; var permalink = (currentUser && currentUser.permalink) ? currentUser.permalink : null; if (permalink == 'brand-usa-demo' || permalink == 'hawaii-tourism-authority') { flagDiv = '<div id="langPicker">' + flagEn + '&nbsp;/&nbsp;' + flagJp + '</div>'; } else if (permalink == 'hawaii-team') { flagDiv = ''; } $(target).append(flagDiv) $('#langPicker').delegate('._langFlag', 'click', function() { var $flag = $(this), lang = $flag.data('lang'); bs.translate.change(lang); }); } /* * Changes the current asset owner */ function changeAssetOwner(params) { var assetOwnerId = currentUser && currentUser.permalink || null; //$("#asset_owner").val(); if(assetOwnerId) { var cssUrl = 'css/nova-scotia/jquery-ui-1.7.3.custom.css', logoUrl = '/images/nova-scotia/logo.gif', footerText = "&copy; 2025 Tourism Nova Scotia", logoClickUrl = '', assetOwner = 'nova-scotia', hasLanguageSelection = true, flagDiv = "<div id='langPicker'><span class='_langFlag' href='#' data-lang='en' style='cursor:pointer; text-decoration:underscore' title='Change Language to English'>EN</span>&nbsp;/&nbsp;<span class='_langFlag' href='#' data-lang='fr' style='cursor:pointer; text-decoration:underscore' title='Change language to French'>FR</span></div>", platformCSSUrl = "css/" + assetOwnerId + "/platform.css"; footerImg = "<img id='bsfooterimg' src='/images/logo-simpleview-reverse-footer.png'/>"; if (hasLanguageSelection) { $('#footer').prepend(footerImg + flagDiv + footerText).parent().delegate('._langFlag', 'click', function() { var $flag = $(this), lang = $flag.data('lang'); bs.trackEvent({category : 'UI Element - click', action: 'footer language link', label: lang}); bs.translate.change(lang); }); } else { $('#footer').prepend(footerImg + footerText); } var betaSwitchURL = "/ajax/update_beta_status.php?beta_status=1"; var betaSwitcher = "<div><strong><a href='javascript:void(0)' onClick='location.href=\"" + betaSwitchURL + "\"'>" + translate('Try the Simpleview DAM Beta!') + "</a></strong></div>"; $('#themeCss').attr('href', platformCSSUrl); $('#header .logo img, #newHeaderLogo').attr('src', logoUrl); if (currentUser && currentUser['custom_options'] && currentUser['custom_options'].loginOnly) { // do not search } else { var mediaType = params && params.mediaType || null, perPage = 50; //params && params.perPage || 50; // default to 50 up from 20 if (currentUser && currentUser.default_image) { mediaType = 'image'; } showSearchPage(1, mediaType, null, perPage); bs.folders.show(mediaType); } } } /* * Displays a popup message using JQuery UI's dialog applied to a div with ID popupmsg. */ function popupMessage(title, message) { $("#popupmsg").dialog("option","title",title); $("#popupmsg").html(message); $("#popupmsg").dialog("open"); } /* * Sorts the queue - videos first, then images */ function sortQueue() { $("#queueList>div").tsort({attr: "format",order: "desc"}); } /* * Saves the current state of the interface in a cookie. */ function saveState() { if (isPublicUser) return; // don't save state for public users } /* * Loads the current state of the interface from a cookie. */ function loadState() { return; // deprecated } function requestGet(modal, video_id) { jq.ajax('/ajax/request_download.php', { dataType: 'json', data: { action: 'getrequest', video_id: video_id }, success: function(res) { modal.data('video_id', video_id); // if there's no agreement, remove the large white sapce if (res.text === '<p style="color: rgb(51, 51, 51);"><br></p>') { modal.find('.modal-body').hide(); } else { modal.find('.modal-body').show(); modal.find('.modal-body').html(res.text); } } }); } function requestModal(id, reasonQuestion){ var form = '<form action="POST" action="/ajax/request_download.php?action=agree" data-download-request-form class="downloadRequest">' + '<div class="request-modal-footer">'; if(typeof reasonQuestion == "object"){ form += bs.downloadRequest.build(reasonQuestion, "form"); }else{ reasonQuestion = reasonQuestion.length > 0 ? reasonQuestion : translate('How will you be using this asset?'); form += '<div class="signature"><label>Full Name</label> <input id="request_signature" type="text" name="signature"/></div>' + '<div class="date"><label>Date</label> <input id="request_date" type="date" name="sign_date" placeholder="MM/DD/YYYY" pattern="(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d"/></div>' + '<div class="reason form-group"><label>' + reasonQuestion + '</label><textarea id="request_reason" class="form-control" name="reason"></textarea><div class="notice">' + translate('A valid reason is required for your request to be approved.') + '</div></div>'; } form += '<div class="submit">' + '<button class="btn platform-button-bordered" data-dismiss="modal" href="#">' + translate('Cancel') + '</button>' + '<button class="btn platform-button-reverse _requestSubmit" type="submit" style="margin-left: 10px;">' + translate('Agree') + '</button>' + '</div>' + '</div>' + '</form>'; id = id.length > 0 ? id : 'requestModal'; modal = jq('#generalModal').clone().prop('id', id); modal.find('.modal-header .close').hide(); modal.find('.modal-title').html(translate('Download Request')); modal.find('.modal-footer').html(form); modal.find('.modal-footer').show(); modal.appendTo('body'); modal.modal({ backdrop: 'static', keyboard: false }); return modal; } function getRequestAllVideoIds(){ requestItems = filterAssetsByStatus('request'); var video_ids = []; requestItems.forEach(function(item, i){ video_ids.push(item.video_id); }); return video_ids; } function filterAssetsByStatus(status){ var assets = []; if(bs.queue.items === null) { return assets; } bs.queue.items.forEach(function(item, i){ if(item.status === status) { assets.push(item); } }); return assets; } function requireAllRegularRequest(event) { var requestAuthorizationAO = currentUser.custom_options.requestAuthorization && currentUser.custom_options.requestAuthorization === 1; var requestAuthorizationReqApprovalAO = currentUser.custom_options.requestAuthorizationReqApproval && currentUser.custom_options.requestAuthorizationReqApproval === 1; var basicRequest = currentUser.custom_options.basicRequest && currentUser.custom_options.basicRequest === 1; var modal = jq('#requestAllModal'); if (!modal.length) { requestContent = translate('How will you be using these assets?'); if(currentUser.custom_options.requestFormJSON != undefined && typeof currentUser.custom_options.requestFormJSON == 'object'){ requestContent = { source: 'json' }; } modal = requestModal('requestAllModal', requestContent); } var form = modal.find('form'); form.off('submit'); form.on('submit', function(ev) { $('._requestSubmit').attr('disabled', 'disabled'); if($(this).data('download-request-form') != undefined && $(this).find('input[name="data-source"]').length > 0 && $(this).find('input[name="data-source"]').val() == 'json'){ var request_from = bs.downloadRequest.build({ source: 'json' }, "content", $(this).serializeArray()); modal.find('#request_reason').val(request_from); } var video_ids = []; $('.queueItem').each(function(i, item){ if($(item).attr('data-request-type') === undefined || $(item).attr('data-request-type') !== 'none'){ video_ids.push($(item).attr('video_id')); } }); var reasonTxt = modal.find('#request_reason').val(); if ((requestAuthorizationAO || requestAuthorizationReqApprovalAO) && reasonTxt.trim() == '') { alert('Reason is empty. Please enter a valid reason.'); $('._requestSubmit').removeAttr('disabled'); return false; } jq.ajax('/ajax/request_download.php?action=agreeall', { type: 'post', dataType: 'json', data: { video_ids: video_ids, reason: reasonTxt }, success: function(res) { if (res.success) { loadExistingQueue(); } }, complete: function() { modal.modal('hide'); var cmodal = jq('#requestConfirmModal'); if (!cmodal.length) { cmodal = jq('#generalModal').clone().prop('id', 'requestConfirmModal'); cmodal.find('.modal-title').html(translate('Download Request')); cmodal.find('.modal-footer').html('<button class="btn platform-button-reverse" data-dismiss="modal" href="#">' + translate('Close') + '</button>'); cmodal.find('.modal-footer').show(); cmodal.appendTo('body'); } var message = 'Thank you. '; if (requestAuthorizationReqApprovalAO) { message += 'Your request will be reviewed and you will be notified via email when the asset is ready for download.'; } else if (requestAuthorizationAO || basicRequest) { message += 'You will now be able to download the asset.'; } cmodal.find('.modal-body').html(message); cmodal.modal('show'); $('._requestSubmit').removeAttr('disabled'); } }); return false; }); modal.find('input, textarea').each(function(){ if($(this).data('auto-fill') != undefined){ if($(this).val().length < 1){ $(this).val($(this).data('auto-fill')); } }else{ if($(this).val().length > 0){ $(this).val(''); } } }); jq('#requestAllModal #request_reason').val(''); modal.find('.modal-footer .signature').hide(); modal.find('.modal-footer .date').hide(); if (requestAuthorizationAO || requestAuthorizationReqApprovalAO) { modal.find('.modal-footer .reason').show(); } else { modal.find('.modal-footer .reason').hide(); } requestGet(modal, $('.queueItem').attr('video_id')); modal.modal('show'); } function requireRequest(event) { var use_custom_form = jq(event.target).hasClass('reason_custom_form') || jq(event.target).hasClass('reason_custom_form_no_auth'); if (((currentUser.custom_options.requestUseCustomForm && currentUser.custom_options.requestUseCustomForm == 1) || (currentUser. custom_options.requestUseCustomFormReqApproval && currentUser.custom_options.requestUseCustomFormReqApproval == 1)) && (use_custom_form || currentUser.user_type == 'user')) { requireCustomRequest(event); } else { requireRegularRequest(event); } } function requireRegularRequest(event) { var modal = jq('#requestModal'); if (!modal.length) { requestContent = ''; if(currentUser.custom_options.requestFormJSON != undefined && typeof currentUser.custom_options.requestFormJSON == 'object'){ requestContent = { source: 'json' }; } modal = requestModal('requestModal', requestContent); } var is_request_reason_no_auth = $(event.target).hasClass('reason_no_auth'); var is_request_reason = $(event.target).hasClass('reason'); var is_basic_request = $(event.target).hasClass('basic'); var auth_required; (is_request_reason_no_auth || is_basic_request) ? auth_required = false : auth_required = true; var form = modal.find('form'); form.off('submit'); form.on('submit', function(ev) { $('._requestSubmit').attr('disabled', 'disabled'); if($(this).data('download-request-form') != undefined && $(this).find('input[name="data-source"]').length > 0 && $(this).find('input[name="data-source"]').val() == 'json'){ var request_from = bs.downloadRequest.build({ source: 'json' }, "content", $(this).serializeArray()); modal.find('#request_reason').val(request_from); } var vid = jq(ev.target).parents('.modal').data('video_id'); var data = jq(ev.target).serialize() + '&video_id=' + vid; var is_request_signed = jq('.request-modal-footer .signature').is(':visible'); if ((is_request_reason || is_request_reason_no_auth) && jq('#requestModal #request_reason').val().trim() == '') { alert('Reason is empty. Please enter a valid reason.'); $('._requestSubmit').removeAttr('disabled'); return false; } if (is_request_signed && (jq('#request_signature').val() == '' || jq('#request_date').val() == '')) { alert('Please enter a Signature and Date.'); return false; } jq.ajax('/ajax/request_download.php?action=agree', { type: 'post', dataType: 'json', data: data, success: function(res) { if (res.success) { if (currentUser.user_type === "user" || (currentUser.user_type === "tier1_user" && $(event.target).hasClass('request_required') === true && $(event.target).hasClass('reason_no_auth') !== true)) { if ($(event.target).hasClass('request_required') === true) { $(event.target).removeClass('request_required'); } if ($(event.target).attr('disabled') !== true) { $(event.target).prop('disabled', true); } $(event.target).html('Pending'); } else if (currentUser.user_type === "tier1_user" && $(event.target).hasClass('reason_no_auth') === true && currentUser.custom_options.requestAuthorization !== undefined && currentUser.custom_options.requestAuthorization === 1) { if ($(event.target).hasClass('request_required') === true) { $(event.target).removeClass('request_required'); } $(event.target).removeClass('reason_no_auth'); $(event.target).html('Download'); } } }, complete: function() { modal.modal('hide'); showRequestConfirmationModal(auth_required); $('._requestSubmit').removeAttr('disabled'); } }); return false; }); modal.find('input, textarea').each(function(){ if($(this).data('auto-fill') != undefined){ if( $(this).val() != $(this).data('auto-fill') ){ $(this).val($(this).data('auto-fill')); } }else{ if( $(this).val().length > 0 ){ $(this).val(''); } } }); jq('#requestModal #request_reason').val(''); if ($(event.target).hasClass('signed')) { modal.find('.modal-footer .signature').show(); modal.find('.modal-footer .date').show(); } else { modal.find('.modal-footer .signature').hide(); modal.find('.modal-footer .date').hide(); } if ($(event.target).hasClass('reason') || $(event.target).hasClass('reason_no_auth')) { modal.find('.modal-footer .reason').show(); } else { modal.find('.modal-footer .reason').hide(); } var video_id = $(event.target).parents('.queueItem').attr('video_id'); modal.find('.modal-body').text(''); requestGet(modal, video_id); modal.modal('show'); } function showRequestConfirmationModal(auth_required) { var cmodal = jq('#requestConfirmModal'); if (!cmodal.length) { cmodal = jq('#generalModal').clone().prop('id', 'requestConfirmModal'); cmodal.find('.modal-title').html(translate('Download Request')); cmodal.find('.modal-footer').html('<button class="btn platform-button-reverse" data-dismiss="modal" href="#">' + translate('Close') + '</button>'); cmodal.find('.modal-footer').show(); cmodal.appendTo('body'); } var message = translate('Thank you. '); if (auth_required) { message += translate('Your request will be reviewed and you will be notified via email when the asset is ready for download.'); } else { message += translate('You will now be able to download the asset.'); } cmodal.find('.modal-body').html(message); cmodal.modal('show'); } function requireCustomRequest(event) { var modal = jq('#requestCustomModal'); if (!modal.length) { modal = jq('#generalModal').clone().prop('id', 'requestCustomModal'); modal.find('.modal-title').html(translate('Download Request')); modal.appendTo('body'); modal.height("100%"); modal.find('.modal-body').height($(window).height()*.8); } var video_id = $(event.target).parents('.queueItem').attr('video_id'); var request_type = $(event.target).parents('.queueItem').data('request-type'); modal.find('.modal-body').html("<iframe src='./actions/view_custom_request_form.php?video_id="+video_id+"&amp;request_type="+request_type+"' style='width: 99%; height: 99%;' frameborder='0'></iframe>"); modal.find('.modal-footer').hide(); modal.modal('show'); } function requireAllCustomRequest(event) { var modal = jq('#requestCustomModal'); if (!modal.length) { modal = jq('#generalModal').clone().prop('id', 'requestCustomModal'); modal.find('.modal-title').html(translate('Download Request')); modal.appendTo('body'); modal.height("100%"); modal.find('.modal-body').height($(window).height()*.8); } // var video_id = $(event.target).parents('.queueItem').attr('video_id'); var video_ids = getRequestAllVideoIds(); var request_type = $('.queueItem').first().data('request-type'); modal.find('.modal-body').html("<iframe src='./actions/view_custom_request_form.php?video_id="+video_ids+"&amp;request_type="+request_type+"' style='width: 99%; height: 99%;' frameborder='0'></iframe>"); modal.find('.modal-footer').hide(); modal.modal('show'); } function loadIntoElement(el, path) { $('._container').hide(); document.getElementById(el).src = path; $('#adminReports').show(); $(window.document).scrollTop(0); $('#dataViewContainer').css('width', 'initial'); } // maintenance mode: if user clicks anywhere on the page, refresh and show the maintenance page // $('html').click(function(){ // location.reload(); // bs.s.show(("Barberstock will be temporarily unavailable from 9PM PST on Wednesday, Oct 19, 2016 for 2 hours due to scheduled maintenance."), 'success', 1); // bs.s.show(("We are currently experiencing an issue with Amazon S3. Please avoid uploading or downloading any files at this time. We apologize for the inconvenience and will be back as soon as possible."), 'success', 1); // }); $(document).load(function(){ bs = setUpStatusMessage(bs); }); $('[data-dismiss="modal"]').click(function(e){ Cookies.remove('auto'); document.cookie = "video=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/"; if($('#editAssets').length > 0){ $('#editAssets').attr('src', ''); } }); jq('#userUploadData').on('click', '[data-uau-enter-metadata-button]', function(){ Cookies.remove('uauMetaAuto'); }); //misc tracking clicks $('[data-track-click]').click(function(){ var clickObject = { category : 'UI Element - click' } if( $(this).data('track-action') != undefined ){ clickObject['action'] = $(this).data('track-action'); } if( $(this).data('track-label') != undefined ){ clickObject['label'] = $(this).data('track-label'); } if( $(this).data('track-value') != undefined ){ clickObject['value'] = $(this).data('track-value'); } bs.trackEvent(clickObject); }); $('#newHeaderLogo').click(function(){ bs.trackEvent({category : 'UI Element - click', action: 'header logo'}); }); $('.side-link, .sidebar-nav .item').click(function(){ bs.s.reset(); }); </script> <script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script> <script src="/js/barberstock/status-message.js" type="text/javascript"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script> var jQuery_3 = $.noConflict(true); var closeTimeout; var previewTimeoutDelay = 750; var previewDelayTimeout; jQuery_3(function(){ jQuery_3(document).on("mouseenter", '.transform_preview', function(event) { var jq_this = $(this); var jq_evt = event; previewDelayTimeout = setTimeout(function(){ fnMouseoverPreview(jq_this, jq_evt) }, previewTimeoutDelay); }); jQuery_3(document).on("mouseleave", '.transform_preview', function(event) { clearTimeout(previewDelayTimeout); fnCleanupMouseoverPreview($(this)); }); //force kill preview if they leave the DataView jQuery_3(document).on("mouseenter", '#mouseoverPreview, #dataViewContainer', function(event){ clearTimeout(closeTimeout); }); jQuery_3(document).on("mouseleave", '#dataViewContainer', function(event){ closeTimeout = setTimeout(function () { $('#mouseoverPreview').remove(); }, 500); clearTimeout(previewDelayTimeout); }); }); </script> <script src="/scripts/barberstock/breadcrumbs.js"></script> <script type="text/javascript" src="/js/barberstock/carousel.js"></script> <script src="/react/dist/bbs-main.js"></script> <script> $(document).ready(function() { $('input').placeholder(); $('#header table') .find('.label1:last').addClass('_passContainer').end() .find('.label2:last').addClass('_passContainer'); var loginLogoHtml = '<img src="/clients/nova-scotia/images/login_logo.png"/>'; var logoClickUrl = '' if (logoClickUrl.trim() !== '' && logoClickUrl !== 'view-all-items') { loginLogoHtml = '<a href="' + logoClickUrl + '" target="_blank">' + loginLogoHtml + '</a>'; } $('head').append('<link rel="stylesheet" type="text/css" href="/css/frontpage.css">'); $('head').append('<link rel="stylesheet" type="text/css" href="/css/nova-scotia/frontpage.css">'); $('#header').before('<div id="titleBar"><div id="loginPageLangPicker" style="position:absolute;right:10px;top:10px;"></div>' + loginLogoHtml + '</div>') $('#btnLogin').addClass('ui-corner-all'); $('#header ._forgotpassword').css({ // 'text-align': 'right', 'font-size': '12px', // 'padding-top': '4px', // 'position': 'absolute', // 'margin-top': '145px', // 'margin-left': '200px', 'color': '#ffffff' }).find('a').addClass('frontpage-forgot-password');//.css('color', 'white'); if (currentUser.asset_owner.match(/san.francisco/g)) { //$('#btnLogin').removeClass().addClass('btnWrap blue').html('<span>Login</span>'); } else if (currentUser.asset_owner.match(/capilano.group/i)) { $('._client').text($('._client').text() + '\''); } fnInitLanguagePicker('#loginPageLangPicker'); }); </script> <script type="text/javascript" src="https://www.google.com/recaptcha/api.js"></script> <script src="/js/barberstock/nav.js"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10